谷歌打算要改变我们这个世界写软件的方法。近年来,这个搜索引擎巨头试图在这个星球中已经最广泛使用的编程语言上做改进,已经推出了2种新的编程语言。

有些语言诞生几十年了依然是世界上最流行的语言,比如C语言。有些语言虽然号称新兴的语言却很少有人使用。在编程语言这个领域里似乎不符合长江后浪推前浪这个规律。这恐怕不止语言本身的因素,里面的缘由值得研究者好好去探索一番。

通过一种叫Go的语言,谷歌试图拿它来替换年事已高的C或C++语言,希望它能提供一种更加快捷的在数据中心里开发大型软件平台的方法。而通过一种叫Dart的语言,谷歌想用它来替代JavaScript,改进我们开发运行在Web浏览器里的软件的方法。

澳门新葡亰 1语言之间是不平等的。图片来源:winnifredxoxo/Flickr

但是,不管这些新的编程语言多么的具有吸引力,我们不得不问一句,它们需要多久才能真正的流行起来——如果能够的话。毕竟,新的编程语言不停的诞生。但只有很少一部分能被广泛的接受。

近年来,谷歌一直致力于开发出自己的编程语言以取代当今世上最常用的C、C++和JavaScript。在系统语言方向,谷歌的Go语言能够为用户
在数据
中心内建立大型软件提供更多的便捷,有望取代C语言和C++的地位;而在网络开发方面,谷歌希望凭借Dart取代JavaScript。编程语言的世界里
可谓是江山代有人才出,可有那么一位引领风骚达数十年之久,它就是C语言。

在普林斯顿大学和伯克利的加州大学,两位研究人员试图在为什么有些编程语言能走进它们的黄金时代而众多余下的却不能的原因上贡献出自己的智慧。在一个他们自称为“业余研究”里,Leo
Meyerovich 和 澳门新葡亰,Ari
Rabkin
调查了数万个程序员,梳理了流行的代码库SourceForge上超过30万个项目——所有的这些努力都是为了能清楚为什么老的编程语言仍然处于霸权地位。

编程语言之间的竞争一天也没能停歇,长江后浪推前浪,一代更比一代强。它们之中只有屈指可数的少数能够被市场接纳,成为程序员们日日夜夜的伴侣。究
竟怎样
的编程语言才能够成为大浪淘沙中的幸运儿?普林斯顿大学(Princeton)和加州大学伯
克利分校(University of California at
Berkeley)的研究者雷欧·马耶若维奇(Leo Meyerovich)和阿里·拉布金(Ari
Rabkin)希望通过自己的研究,来解开编程语言世界的丛林法则。他们在探寻一个问题——为何C语言虽垂垂老矣却能屹而不倒?

“为什么没有语言能够真正的超越C语言?”Rabkin问道。自从C语言诞生以来的35年里,我们操作系统和软件设计都获得了巨大的飞跃,但是,虽说C语言中这段时间里有了加强,但也有很多新的非常成功的语言出现,可C语言仍然是开发语言中的中坚力量。

雷欧和阿里采访了数以万计的程序员,又在全球最大的软件仓库SourceForge梳理了超过30万份的程序。“为什么C语言没有被淘汰?”拉布金
提出了
这个问题。的确,C语言距问世之初已经有了35年的历史。在这期间里,计算机迈出了不可测量的发展步伐,软件和操作系统也早就今非昔比,编程语言中不乏叱
咤风云的新生代,而C语言也有了升级版。即便如此,C语言依旧风采不减当年。

“为什么我们不能真正的超越C语言?”
— Ari Rabkin

拉布金刚刚取得了加州大学伯克利分校的计算机博士学位,如今在普林斯顿大学攻读博士后学位。“在学术领域,现今的趋势是解决那些尚未出现的难题,”
拉布金
说,“学者们希望能够标新立异地建立起一个全新的语言系统,就没有考虑这么一套编程语言是否有实践的价值。编程语言的开发者们缺少一个明确的目标。”他指
出,有些编程语言甚至缺失了最基础的东西,比如缺省文件编制(Documentation);还有些开发者不停地在语言系统上画蛇添足,弄到最后搞的程序
员们只能因为它太“丰富”了不得不放弃。马耶若维奇认为:“我们发现这个问题事实上不是一个技术领域的问题,它是因为整个学术界不够注重实践需求所造成
的”。

部分的原因,他说,是因为语言的设计者并不都具有一个让这些语言实用化的目标。“学院派人的一个习惯就是喜欢去研究解决没有人真正遇到过的问题,”Rabkin说。
Rabkin最近刚刚获得了伯克利加州大学的计算机科学博士学位,现在在普林斯顿大学做博士后研究工作。

新兴编程语言Scale是一个很好的例子。数据分析机构Slice-Data的创始人之一张洋(音译)是Scale众多使用者中的一员,他从
2006年起
开始接触Scale。Scale在问世之初文件编制就存在很大的缺陷,这给用户的学习使用造成了很大的不便和痛苦。“我当时肯定是个受虐狂。”他回忆道。

Rabkin说,学院派的人经常想要开发出一种不同凡响的语言,但他们却从来不思考如何能让这种语言变的实用。在一些案例中,他们在一些最简单的事
情上都做的很失败,比如说为这种新语言写文档。在另一些案例中,设计者不停的往一种语言里添加新的的特征,成功的使试图使用这种语言的技术人员的大脑因超
载而宕机。

除却新兴语言本身的问题,这里面还有一个要素是程序员的学习能力。试验中收集的信息表明,因为学习新语言太辛苦困难了,程序员们在使用一款新型的编
程语言
前并不会认认真真地去学习一番。马耶若维奇拿Adobe公司开发的ActionScript作为例子。ActionScript是一款以用户为导向的编程
语言,程序员们普遍认为ActionScript的使用比较简单。可是当要用ActionScript做新的事时,比如从媒体开发转向游戏开发,因为没有
系统的学习过,他们就束手无策了。

“这样的问题的解决办法并非都是技术范畴,”Meyerovich说。“我们需要去发明一些能够被“大众了解”的语言。

我们普遍认为,程序员年龄越大,经验就越老道,掌握的语言就越多。事实又是怎样的呢?雷欧和阿里在试验中发现,多数程序员都掌握了3至4种程序语言,但当他们到了35-40岁时,很多人就会步入管理岗位。脱离了编程一线,学习新语言的动机和机会就大打折扣了。

网站地图xml地图