2011年6月11日,第一稿
2011年9月5日,第二稿
2011年9月5日,第二稿
8.1 编程范式
来自TIOBE 2010年10月的最新统计的计算机语言排行榜显示,到目前为止,还没有任何一种计算机编程语言的使用者超过计算机编程语言使用者总数的20%(Java语言最多,约占18.166%,前5名编程语言的使用者之和也就在50%以内)。
为什么会有这样多的编程语言存在?为什么不同的使用者会选择不同的编程语言进行程序设计?
为什么会有这样多的编程语言存在?为什么不同的使用者会选择不同的编程语言进行程序设计?
8.1.1 编程
所谓编程就是使用特定的计算机语言进行程序设计。不同的计算机编程语言是不同的指令和数据的集合,它告诉或命令计算机如何执行任务。
我们期待计算机能够帮助我们解决一些复杂的问题,也正是因为这些问题的多样性和复杂性的存在,从而导致出现了数百种适合解决不同问题的计算机编程语言。这就是说,为了解决不同的问题,人们需要选择具有不同特点的计算机编程语言。因为没有任何一种计算机编程语言是万能的,期待一种语言能够解决我们面临的所有问题是根本就不现实。
许多人都认为,LabVIEW图形化编程语言更适合工业自动化方面的测试、测量的科学家和工程师使用。其实这个概念本身是片面的,因为LabVIEW本身已经具备了通用编程语言的基本特性,只是工业自动化测试、测量领域的科学家和工程师更喜爱使用它而已。喜爱的原因是图形化编程方式和性能优异的硬件及硬件驱动程序与LabVIEW的无缝连接。
大家喜爱LabVIEW的另外一个原因是:对于大多数工程设计者而言,他们并非是专业程序员出身。甚至很多人并没有掌握C语言等计算机编程语言,他们的优势是对硬件知识或测量知识了解的更多,对实现计算机的软件编程则显得有些力不从心或者说信心不足。LabVIEW的出现恰恰帮助他们弥补了这方面的不足,所以他们会特别喜欢使用LabVIEW。
我们期待计算机能够帮助我们解决一些复杂的问题,也正是因为这些问题的多样性和复杂性的存在,从而导致出现了数百种适合解决不同问题的计算机编程语言。这就是说,为了解决不同的问题,人们需要选择具有不同特点的计算机编程语言。因为没有任何一种计算机编程语言是万能的,期待一种语言能够解决我们面临的所有问题是根本就不现实。
许多人都认为,LabVIEW图形化编程语言更适合工业自动化方面的测试、测量的科学家和工程师使用。其实这个概念本身是片面的,因为LabVIEW本身已经具备了通用编程语言的基本特性,只是工业自动化测试、测量领域的科学家和工程师更喜爱使用它而已。喜爱的原因是图形化编程方式和性能优异的硬件及硬件驱动程序与LabVIEW的无缝连接。
大家喜爱LabVIEW的另外一个原因是:对于大多数工程设计者而言,他们并非是专业程序员出身。甚至很多人并没有掌握C语言等计算机编程语言,他们的优势是对硬件知识或测量知识了解的更多,对实现计算机的软件编程则显得有些力不从心或者说信心不足。LabVIEW的出现恰恰帮助他们弥补了这方面的不足,所以他们会特别喜欢使用LabVIEW。
8.1.2 编程范式
实际上,大家都十分清楚,编程的最终目的是想让计算机帮助我们解决实际问题。而对于不同的编程语言在处理待解问题时都可以有不同的解决思路和解决方法,所谓“条条道路通罗马”就是表述这样的一个意思。而这其中,某种编程语言所普遍适应、且行之有效的模式被归结为范式。每种范式都引导人们带其特有的倾向和思路去分析和解决问题。
所谓编程范式就是指某种计算机语言编程的基本风格或典范模式。或者说编程范式是将计算机要执行的任务按某种计算机语言编程的基本风格或典范模式进行概念化和结构化。
前面我们说过,现在可使用的计算机编程语言多达数百种,它们能共处于一个时代,其中必然有着各自的特点和用途。当然也就导致了不同编程范式的存在。编程范式提供了(同时决定了)程序员对程序执行的看法。 不同的编程语言会有不同的“编程范式”。
学习一种编程语言,学习它的语法、技巧和开发工具固然重要,其实更重要的就是学习领会它的编程范式。编程范式往往被看成是心法,因为编程范式体现了编程过程中的思维方式,这种思维方式会浅易莫化引导我们的程序设计。所以通过对编程范式的学习和理解,能够增强编程语言的语感[3]。
这里需要强调的概念是:编程范式只是一个抽象的概念,它不针对任何具体的编程语言。一种编程范式可以在不同的计算机语言中出现。同时一种计算机语言也可以支持多种范式,这种计算机语言又被称为:多范式计算机语言。因为程序员在进行程序设计时可能会使用多种范式来进行编程。
所谓编程范式就是指某种计算机语言编程的基本风格或典范模式。或者说编程范式是将计算机要执行的任务按某种计算机语言编程的基本风格或典范模式进行概念化和结构化。
前面我们说过,现在可使用的计算机编程语言多达数百种,它们能共处于一个时代,其中必然有着各自的特点和用途。当然也就导致了不同编程范式的存在。编程范式提供了(同时决定了)程序员对程序执行的看法。 不同的编程语言会有不同的“编程范式”。
学习一种编程语言,学习它的语法、技巧和开发工具固然重要,其实更重要的就是学习领会它的编程范式。编程范式往往被看成是心法,因为编程范式体现了编程过程中的思维方式,这种思维方式会浅易莫化引导我们的程序设计。所以通过对编程范式的学习和理解,能够增强编程语言的语感[3]。
这里需要强调的概念是:编程范式只是一个抽象的概念,它不针对任何具体的编程语言。一种编程范式可以在不同的计算机语言中出现。同时一种计算机语言也可以支持多种范式,这种计算机语言又被称为:多范式计算机语言。因为程序员在进行程序设计时可能会使用多种范式来进行编程。
8.1.3 编程范式与编程思想
我们说:编程范式是一个抽象的概念,它并不涉及或针对某特定的计算机编程语言。但是,当抽象的编程范式通过某种编程语言来具体体现时,就形成了该编程语言的核心编程理念,也就是形成该语言的编程思想。如:Java语言的核心编程理念就是面向对象编程。
那么编程范式与编程思想之间到底会有何不同之处呢?
应该讲,编程思想是针对某种特定的编程语言,并包含了该编程语言的全部特征。其中包括:范式、语法、结构、设计模式等等全部的内容。
同样可以说:编程思想的世界观体现在该编程语言的核心概念中,比如LabVIEW中的核心编程思想就是数据流。编程思想的方法论体现在该编程语言的表达机制中,比如LabVIEW中如何贯穿数据流编程的基本方式和方法(利用数据依赖性、公共线程等),以及它特有的设计模式(生产者/消费者、软件同步机制等)。
如果在学习LabVIEW之初,就能够将数据流编程思想贯穿到图形化程序设计之中,就可以编写出合格的图形化应用程序。无论你采用何种编程范式进行图形化程序设计,数据流编程思想必包含在其中。
所以深入理解和探讨编程语言的编程思想是非常必要的。
那么编程范式与编程思想之间到底会有何不同之处呢?
应该讲,编程思想是针对某种特定的编程语言,并包含了该编程语言的全部特征。其中包括:范式、语法、结构、设计模式等等全部的内容。
同样可以说:编程思想的世界观体现在该编程语言的核心概念中,比如LabVIEW中的核心编程思想就是数据流。编程思想的方法论体现在该编程语言的表达机制中,比如LabVIEW中如何贯穿数据流编程的基本方式和方法(利用数据依赖性、公共线程等),以及它特有的设计模式(生产者/消费者、软件同步机制等)。
如果在学习LabVIEW之初,就能够将数据流编程思想贯穿到图形化程序设计之中,就可以编写出合格的图形化应用程序。无论你采用何种编程范式进行图形化程序设计,数据流编程思想必包含在其中。
所以深入理解和探讨编程语言的编程思想是非常必要的。



