编程语言的异同及选择

原创 2003年09月17日 08:58:00

编程语言的异同及选择

2003.9  (所有版权保留)

一、各种语言编程的共同点

1. 基本单位都是函数

绝大多数语言的基本单位都是函数。运行环境提供给我们的是函数入口,我们编程序时写的主要内容也是函数。
运行时,我们编写的程序内的函数或者直接调用操作系统的函数,或调用组件的接口内的函数,或调用虚拟机的函数,或调用运行环境的其他函数。

2. 函数内算法的实现差别不大

真正的价值是函数实现的算法(这里把功能或业务流程的实现也都算做算法)。单就一个函数内(或几个相关的函数)的算法实现的程序流程(注意不是功能业务流程)来看,各种语言间的差别不是很大。

二、各种语言的不同点

1. 运行环境的函数接口不同

这一点不用多说了。词法、语法的差别也不用说了。

2. 函数的组织方法不同

在传统的汇编、C、Basic、Pascal、Script等等语言中,函数是独立的,可以以代码文件或模块文件进行组织管理。

在OOP的C++、Java、C#等等语言中,函数组织成类或组件,以类或组件的形式进行组织管理。

3. 函数的规划设计方法不同

非OOP的项目中函数的规划设计完全没有统一模式,根据实际情况变化非常大。

OOP的项目中的函数规划设计以类为基本设计单位,确定了类之后再确定函数。现在已经有很多理论与工具来支持以类为基本单位的设计。

4. 函数的积累沉淀与重复利用

程序员、开发团队、软件公司在运行多年后,非OOP的函数积累成函数库,OOP的函数积累成类库或组件库。
非OOP的函数库内的函数可能部分依赖于OOP的函数库,反之亦然。

5. 函数的实现的编码、测试工作量

不管用那种语言,如果没有特别的运行环境函数支持或类库支持或组件支持的话,每个函数的编码与测试工作量没太大差别——前提是针对熟手,例如写一个特定的排序函数,汇编与 VB 的工作量差别不大。

但实际上针对不同的语言,运行环境提供的支持是不同的。

三、选择编程语言时的考虑

1. 操作系统或虚拟机的选择

操作系统或虚拟机的 API(包括越来越多的组件)非常重要的,这是基础,选择时最重要的考虑因素。

Linux 的优势在于源码公开。Java 的跨平台是指跨操作系统,不是跨虚拟机——说实话本人不知道有多少厂家实现了多少种 Java 的虚拟机,并且它们的 API 的定义是完全相同的。


2. 编程语言的运行环境的选择

一种编程语言可能有若干种开发、运行环境支持。打个比方,Basic 语言有 QBasic、VB6、VB.Net 等。开发、运行环境的支持也是非常重要的,它很可能提供了操作系统或虚拟机之上的更多的函数(如Delphi),同时也规定了词法与语法。

编程语言的运行环境的长期生命力也是很重要的。

编程语言的跨平台只能说是在不同的操作系统的上的开发、运行环境的函数保证一样,但不能保证操作系统的API一样——除非不调用操作系统的API。

3. 文档是否详细、源代码是否丰富

没有好的文档,再好的基础 API(或类库、组件)我们都找不见。
源代码是指 API 应用的源代码。没有丰富的源代码,再好的基础 API(或类库、组件)我们都不会用。
其实某种语言发展多年之后,几乎所有的 API(或类库、组件)的应用的源代码都可以搜索到,我们抄过来改一改就是了。

抄不来的是复杂算法(包括功能或业务流程)的源代码——抄过来我们也看不懂,更不敢简单改一下就卖给客户。

4. 第三方函数库、类库或组件库是否丰富

在操作系统或虚拟机的 API 之外,在开发、运行环境的 API(包括类或组件) 之外,还有多少已经写好的函数我们可以使用。但是实际上,对第三方的 API 的学习、适应、使用的工作量很大,风险非常高,所以这一条不用太重视。

5. 语法与词法的选择

在考虑了上述的因素后,我的做法是最后考虑词法与语法。原因很简单,我懒。哪个语言的 API 多、词法及语法简单,我就用哪个——我说的是给老板给客户干活。如果是我有一段时间突然对某一个语言或技术有了兴趣而要自学一把,那另当别论。

我也见过有的人对某种语法有狂热的爱好,就像老夫子们出口必之乎者也,我觉得也挺让人佩服的。任何一种语言学精了用烂了都很了不起,贵在恒心。

6. 必须要会的语言

SQL 不用多说。在现在这个年代,Javascript + HTML 好像也必须学。

 

如何选择你的第一门编程语言

选择哪门语言作为学习的第一门语言,是刚进软件开发领域的人常问的问题,本文将提供一些参考意见。...
  • sinat_32582203
  • sinat_32582203
  • 2016年08月18日 18:48
  • 1020

谈谈编程语言的选择

常常有新人问我,我该学哪一门编程语言呢?编程语言太多了,我都不知道该选择哪一门编程语言来深入学习了!是的,我也曾被这个问题所困恼,当初学习软件编程时也经历了C/Java/C#这样的路线,后来我也接触并...
  • guwei4037
  • guwei4037
  • 2016年03月09日 10:53
  • 4650

当你选择编程语言时你在选择什么

我的微信订阅号“程序视界”有个“有问有答”栏目,上次发了“问答 | 我适合做软件开发吗”,这次我们来回答这个问题:我应该学哪种语言?...
  • foruok
  • foruok
  • 2016年01月25日 07:31
  • 6656

初学者该如何选择编程语言呢?

互联网大热,随之对技术、程序员的需求也是很大,因此,很多大学生或想转行从事计算机编程工作,但市场上编程语言众多,我们该选择哪种语言呢?今天我们大圣众包小编根据网络资源从多个角度分析该选择哪个语言! ...
  • dashenghuahua
  • dashenghuahua
  • 2016年11月15日 17:03
  • 419

你该选择哪种编程语言来开发App呢?

全球范围内App开发者数量有增无减,你选择哪种编程语言来开发App呢?你得研究过跨平台app设计,你得知道一些app开发的常见缺陷。这取决于你的受众和你所选择的平台,然后选择一门合适的语言。 你会选...
  • c1782746138
  • c1782746138
  • 2014年07月01日 16:43
  • 1378

编程语言分析及其应用

编程语言分析及其应用 主要要求实现以下三个部分: Lisp格式到C格式的转换 Lisp格式表达式的计算 Lisp格式表达式的类型检测 实现语言:C++...
  • ys676623
  • ys676623
  • 2017年06月16日 22:15
  • 212

VS2008学习3.切换编程语言

三种方法 1. 用命令:先关掉VS,打开一个VS命令行窗口Visual Studio 2008 Command Prompt. 输入命令"devenv /resetsettings vc.vsset...
  • rwerty
  • rwerty
  • 2016年05月30日 13:44
  • 232

各种语言主要用途整理

常用编程语言及其用途
  • qq_23879187
  • qq_23879187
  • 2017年07月31日 10:37
  • 92

十大编程语言特点及应用领域

计算机的发展,促使了一个新的职业的出现,程序员是近些年出现的并且得到了广泛关注的一个职业,相信这也是很多莘莘学子的职业梦想。但程序员也有很多种,并不是每一个程序员能够精通所有的编程语言。所谓术业有专攻...
  • wymrdjm
  • wymrdjm
  • 2018年01月05日 20:57
  • 102

主流编程语言的特点以及优缺点(一)

C语言 基本性 1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。[ 2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流...
  • zhangsj2016
  • zhangsj2016
  • 2016年12月03日 11:18
  • 5109
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程语言的异同及选择
举报原因:
原因补充:

(最多只允许输入30个字)