关于编程语言,一向有两种言论。一派是认为“没有最强的语言,只有最强的玩家”,另一派是认为语言有贵贱之分。持有前一种观点的人,主要的依据是编程语言最终都要翻译为机器语言,而不论何种语言,翻译后对于机器而言都没有什么差别。而持有后者观点的人,倾向于认为编程语言会对程序员的行为产生较为显著的影响。就我个人而言,经过这若干时间的感悟,我逐渐由认同前一种观点向认同后一种观点而转变。
说到编程语言对编程人员的影响,可以先论一论自然语言对各个国家的人的影响。当今世界是由多元文化组成的,而形成各种文化的单元,有的说是国家,有的说是民族。不论国家还是民族,语言都是分割不同文化的一个重要的因素。拥有相同语言的国家和地区倾向于有相似的世界观,因为人们如何去看待世界很多时候取决于人们怎样去描述世界,而不同语言对于世界的描述大不相同。比如日本人的语言中几乎没有脏话,所以日本人想要骂人的时候只能使用“敬语”,这也造就了日本人说话拐弯抹角的性格。比如德语被誉为最严谨的语言之一,甚至几乎没有发音完全相同的单词,这也造就了德国人严谨的性格。
编程语言对编程人员的影响,应该比自然语言对人的影响更甚,因为编程语言发明之初就承载了发明者的理念,有的语言甚至已经内置了用途。因此,语言之间几乎不是可以互相替代的。比如Java发明的理念就是降低使用者的门槛,因此在语言中强行加入了很多限制,比如静态的语言类型、强制垃圾回收、强制抛出异常。使用Java,从某种意义上讲,就是在“吃别人嚼烂的蘑菇”,也难怪Java程序员一直处于鄙视链的较末端。python设计的哲学是优雅、简洁,因此python的语言灵活、富于表现力。
大家在“程序员”这一称谓之前冠以语言之名,以表现对各种语言差异的认同。TIOBE等编程语言排行网站上,常年竞争着最流行的编程语言和最好的编程语言。有人跟风追赶潮流,有人固守阵地,坚持“城不倒人不退”。在我看来,选择语言一是看当前的大环境和未来的发展趋势,二是看应用场景,三是看自己的水平。Java长期霸占着流行语言榜的第一名,主要是因为Sun公司和一些相关的商业机构广告打得好,并在全球范围内建立起了强大的社区。Java代码运行在数以亿计的设备上运行,这使得Java在短期内不会被其他语言替代。但从长期的趋势上看,Java的颓势已不可挽回。Java为了跨平台以及兼容历史版本,牺牲了太多语言发展的空间。而Java语言本身的繁琐性,使得其开发效率其差。即便有Spring框架和Intellij idea这种开发神器的支撑,Java仍然难以在短时间内开发出应用,因此市面上有一个python等于两个php等于四个Java的说法。剩下Java值得炫耀的优势就只剩下健壮性以及大量造好的轮子了。由于当前时代程序员的时间远贵于计算机的时间,语言运行的速度很多情况下是可以忽略的。因此在不需要考虑性能和速度的应用场景中,使用开发速度快的脚本语言就很舒服。比如我用过python实现读取文件和解析json字符串等功能后,就几乎再没有使用过新建Java程序这样笨重的举动来完成这类事情。当然,有的语言是面向大神的,由于大神在程序员中是小众群体,因此这类语言就成了小众语言。比如《黑客与画家》的作者推荐的Lisp语言,对于大多数程序员来讲过于晦涩了。
在新语言层出不穷的今天,对各类编程语言的特性勤加学习和分析,就可以对大多数语言融会贯通,就可以在需要的时候使用最便捷的语言来开发了。
领取专属 10元无门槛券
私享最新 技术干货