Web开发杂谈(3) ——编程语言分类学
在上一篇文章中,我们介绍了一些编程语言最基本的知识,接下来,我们会分几次,介绍一些更实用的内容,重点谈谈比较常见的一些编程语言的情况,使初学者有一个宏观的了解。在你选择语言的时候可以,可以做一个参考。
如果你以为编程语言就是我们经常听说的C、C++、Java、PHP等这么几种,那就错了。目前世界上正在被使用的编程语言数量,有数百种之多:点击这里可以查看按字母排序的语言列表。今天从分类的角度说说着这几百种编程语言,读者不必深究,了解了解即可。
人类在研究任何领域的时候,“分类”都是一个重要的课题,例如生物学,就花了很大的力气把世界上个所有生物分为“界、门、纲、目、科、属、种”若干干个层次的类别,比如我们人类就属于:“动物界 > 哺乳纲 > 灵长目 > 人科”。西方自然科学的基本思想就是“解构”,分类基本上和“解构”是一个意思。一个领域中,“分类”的水平标志着整个领域研究的深入程度。
所以我们在学习一个新的领域时,最好首先对这个领域中的对象的分类情况有个了解,这对于整体认识是很有好处的。就好像我们新到一个城市生活,首先找一份地图,了解一下,这个城市大概分几个区,有几条主干道,是放射状的?还是环形的?有几条地铁线路,大致什么走向,有这样一个基本的大概了解,对你日后了解这个城市就很方便。
下面我们就来对“编程语言”做一点“分类学研究”,再次提醒,了解了解即可。不必深究。
按语言之间的承继关系分类:
除了按名称排序的列表,还可以按照承继关系来进行分类,比如C++语言就是在C语言的基础上,增加以及改造了一些特性以后形成的一个新语言。点击这里查看比较完整的编程语言的承继谱系关系。
下图是从中截取了一个分支,各语言名称的缩进表示了承继的关系:

在庞大的谱系列表中,我们之所以选择上面这一段语言分枝,因为可以看到这个分支可以说是整个“编程语言社会”中,当今最“人丁兴旺”的一个家族了。你想想看,在计算机书店里,看到的编程书,是不是大都是我用红框标示的这几种语言?他们都是这个家族中的,只是辈分不同而已,但是它们都是有共同基因的语言。
按语言产生的时间分类:
如果按照产生的时间来进行归类,点击这里可以查看具体编程语言的年代归类表。随着技术的发展,研究的深入,编程语言也是在飞速进步的,所以晚出来的一些语言,通常会更多吸取一些以前的成功经验,避免掉一些以前的不足。
比如微软的 .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: 你熟悉或者了解过几种编程语言,按照不同的分类标准,你能否间接一下你了解的语言?
5,355


I don鈥檛 know what to say to be good. Everyone can to have an oppinion, i say just our oppinion is not the same.My site:Honest reviews
有两处j a v a s c r i p t 给屏蔽掉了··
一直都觉得身边的人没有几个能像我这么爱电脑的。
同时也很迷恋网页设计。
满喜欢DIV+CSS、,可近来才知道jquery。
以前一直用的是表格。前几天刚从当当收到《精通 DIV+CSS 网页样式与布局这本书》然后才知道了前沿科技的教学网站。当时是因为特别多的人买了这本书,评价也不错。所以我才买的。后来收到书还是很满意的。特适合入门。
但是我的英语不强,不知道学习困难度大不大。现在用div设计网站还是有一点迷糊。以前一直都是垃圾站。现在想转型了,垃圾站越来越难做了。想自己弄一个精品站,好好的坚持下去。
这几天在设计模板,打算用织梦系统。
现在网站需要的技术越来越多,为了更好的留住顾客,增加网站的交互性,所以想努力的学习学习DIV+CSS和相关的技术。
老师们给我一点建议吧。
我不知道主要回复的是哪位老师,是曾顺老师还是温谦老师呢,或者是其他老师,书上有许多参与编著的老师名字,不知道在这里回复的是哪位老师。呵呵,老师好。
白菜一颗 ,
抱歉没有及时回复,我们最近很忙,下半年我们会拿出更多时间增加新内容的,欢迎来交流!
感谢您的留言,你说的对,做垃圾站是没有用的,做自己真正喜欢和擅长的有价值的东西,相信你会感觉更好,收获也更多!
老师你好。其实现在使用最多的就是PHP了。我也准备学好了JS后再仔细学PHP,虽然现在用PHP也可以做出一般的应用系统来,但感觉自己还是初级的。
五一后要去上班了。这是我第一份工作。主要是做WEB前端。
今天一位招聘的人给我打电话说做网页设计的美工要很好才行,否则只做代码没前途。呵呵。其实我对界面的设计也很感兴趣的,但是没有系统的学习过美术。虽然自己做的感觉还行。
老师,精通JS+JQ的看了三分之一,有几处错误,稍后我整理一下再回复给你。
祝你五一愉快!
Victor,
再补充一句,
我不清楚现在国内专门会把Web前端开发但分理出来的公司是不是很多,我总体感觉,如果你的PHP和JS都很过硬,找个好工作肯定没问题的。
而且我看了你的播客,版面设计也是你自己做的吗?我觉得不错了,如果是对于座开发的人,做到这个程度,已经足够了,而且可以看出你做事的风格还是很精细的,我觉得你做的不错。
加油!
Victor ,
我觉得你说的这个招聘的人似乎有点问题,不知道他所说的“制作代码没前途”中的“代码”指的是什么代码,是后台开发的代码,还是仅仅HTML代码。
那我们现在做的项目来说吧,如果一个5万块钱的项目,美工所做的工作最多占5000千块钱,剩下的工作都是些程序开发的工作。我不知道为什么说代写码没前途。当如果是说些HTML代码,那可能是没有太多工作了。
具体的情况,可以参考:http://learning.artech.cn/20071129.web-career-plan.html
总之,一句话,要么要靠美术功底,要么靠编程功底。这两样一般人你可能都擅长,但是一定要精通一样。
哦,老师别误会,呵呵。
那个人意思是做web前端的要美工好,只写前端代码(html , js)没什么前途;现在大部分公司都是要找会美工和前台代码的人,再后台程序员。
其实我知道专业的公司都是把这些分开的,做html js 的算是中间层。而我要去做的就是这个。
JS要精通 也不是随便的事情。。
支持
看了视频后 跟着做 觉得有几个小问题想问温谦老师
1,IE六中margin-height 和magin-width为0 不能出来效果而firefox中可以
2,我定位relative 时竟然出现了4个位置颠倒的现象啊 top和buttom left和right都反了
希望温谦老师能解答下 谢谢了
zphck ,
你说的上面这两个问题我都没有发现过,你把你的事迹代码发到我们的论坛上,我给你看看吧:
http://talking.artech.cn/thread-178-1-1.html
呵呵!来子个沙发了…我认为编程语言虽然挺多但是我们只需要掌握其中的一两样就行了吧!
keelii,
是的,先真正掌握好一个非常重要,如果一种语言真正掌握好了,以后如需要使用其他语言,也都是相同的,很快就可以掌握。