Web开发杂谈(3) ——编程语言分类学

Web开发杂谈(3) ——编程语言分类学

TRACK  TOP

2009年04月29日 星期三 | 所在分类: Web开发杂谈
12 条评论

在上一篇文章中,我们介绍了一些编程语言最基本的知识,接下来,我们会分几次,介绍一些更实用的内容,重点谈谈比较常见的一些编程语言的情况,使初学者有一个宏观的了解。在你选择语言的时候可以,可以做一个参考。

如果你以为编程语言就是我们经常听说的C、C++、Java、PHP等这么几种,那就错了。目前世界上正在被使用的编程语言数量,有数百种之多:点击这里可以查看按字母排序的语言列表。今天从分类的角度说说着这几百种编程语言,读者不必深究,了解了解即可。

人类在研究任何领域的时候,“分类”都是一个重要的课题,例如生物学,就花了很大的力气把世界上个所有生物分为“界、门、纲、目、科、属、种”若干干个层次的类别,比如我们人类就属于:“动物界 > 哺乳纲 > 灵长目 > 人科”。西方自然科学的基本思想就是“解构”,分类基本上和“解构”是一个意思。一个领域中,“分类”的水平标志着整个领域研究的深入程度。

所以我们在学习一个新的领域时,最好首先对这个领域中的对象的分类情况有个了解,这对于整体认识是很有好处的。就好像我们新到一个城市生活,首先找一份地图,了解一下,这个城市大概分几个区,有几条主干道,是放射状的?还是环形的?有几条地铁线路,大致什么走向,有这样一个基本的大概了解,对你日后了解这个城市就很方便。

下面我们就来对“编程语言”做一点“分类学研究”,再次提醒,了解了解即可。不必深究。

按语言之间的承继关系分类:

除了按名称排序的列表,还可以按照承继关系来进行分类,比如C++语言就是在C语言的基础上,增加以及改造了一些特性以后形成的一个新语言。点击这里查看比较完整的编程语言的承继谱系关系

下图是从中截取了一个分支,各语言名称的缩进表示了承继的关系:

 

Language family

 

在庞大的谱系列表中,我们之所以选择上面这一段语言分枝,因为可以看到这个分支可以说是整个“编程语言社会”中,当今最“人丁兴旺”的一个家族了。你想想看,在计算机书店里,看到的编程书,是不是大都是我用红框标示的这几种语言?他们都是这个家族中的,只是辈分不同而已,但是它们都是有共同基因的语言。

按语言产生的时间分类:

如果按照产生的时间来进行归类,点击这里可以查看具体编程语言的年代归类表。随着技术的发展,研究的深入,编程语言也是在飞速进步的,所以晚出来的一些语言,通常会更多吸取一些以前的成功经验,避免掉一些以前的不足。

比如微软的 .NET平台的整体战略,就是针对Java的。.NET框架就对应于Java的虚拟机,C#也是针对着Java语言的。盖茨把Anders请到微软,操刀.NET和C#,如果单纯就语言的角度,C#确实在很多方面是比Java要更好一些,当然不是说Java不好。我对这方面也不是非常有研究,但是C#从1.0,到2.0引入泛型和匿名方法,3.0引入Linq,即将发布4.0将引入动态编称,进步实在是太大了。每一个新引入的特性都可以大大提升生产效率,而且这些改进是核心的改进,不仅仅是类库的改进。

但是语言的进步不像CPU的进步那样立竿见影,你把奔3的电脑换成奔4的电脑,立刻就难感觉到速度提高了。但是语言这个东西,是需要长期使用才会逐渐体会出来其中的韵味的。

按语言的功能特征分类:

上面这几种分类方法其实都不是最重要的,实际上对于程序员来说, 重要的是编程语言的具体行为功能特征,但是如果按照这个标准类分类,就没有非常明确、严格、一致的分类标准了,比如可以有“编译型语言”、“解释型语言”、“命令式语言”、“声明式语言”、“函数式语言”等等很多很多,总之非常复杂了,有兴趣的可以看这里的一个总结表

尽管有这么复杂的分类情况,但是其实写在这里,仅仅是为了展示一下而已了,对于90%以上的开发者,以及100%的初学者,实际上都是在使用这几个非常接近的,“流行度”很高的语言,比如上面红框框里面的语言,此外可能还有一些不在红框框,但是也都是差不多的编程语言,比如Basic、Pascal(Delphi)等等,他们也都是大同小异的。所以初学者,尽可以放心,不用管它有几百上千种语言,你只要先用好这些最常用的语言,就可以啦。

当然,要知道,这些“流行”的语言虽然接近,但毕竟也有差异的,而恰恰是这些差异来决定你选择哪种语言,这个以后的文章再谈。

思考题

1: “分类”是掌握一样东西的指标,你能再举一个例子说明这个道理吗?

2: 你熟悉或者了解过几种编程语言,按照不同的分类标准,你能否间接一下你了解的语言?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值