专栏首页程序员互动联盟为什么C语言屹立不倒?

为什么C语言屹立不倒?

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

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

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

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

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

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

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

马耶若维奇认为,他们正在研究的这个课题十分重要,关乎整个行业是否能够高速和健康地发展。他和拉布金把实验数据都发布在网络上,希望他人能够给出新的视角,同时为如何解决这一问题提供建议与帮助。

原文来自:http://www.guokr.com/article/222043/

本文分享自微信公众号 - 程序员互动联盟(coder_online)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员的追求是什么?

    上周我收到三位Halmstad大学学生的电子邮件,他们正在做一个为期三月的项目,内容是关于程序员在工作中追求的是什么,以及企业如何吸引有才华的程序员。下面是我对...

    程序员互动联盟
  • 有哪些编程语言会在未来20年内消失?

    编程语言据不完全统计全球已经有500多种,真正进入大众视线的也就几十种,真正用的多的不超过十种,而且排名还时刻在动,有一点是确认的任何编程语言都有存在的必要性,...

    程序员互动联盟
  • 本人c++开发2年经验,在平时自学一些知识点时,工作用不到,总是边学边忘,怎么办?

    学以致用不是学到的知识立即就有实践的空间,所以很多人在掌握的理论知识还没轮到实践的时候就已经把抛之脑后了,所以要真正意义上做到学以致用还是需要时间的,平时积累的...

    程序员互动联盟
  • 好的程序员做不出好的软件设计

      你不能看到一个程序员还不错,就把他推到系统分析师、软件设计师或软件架构师的位置上。   如果你在团队或公司里寻找一个能胜任软件架构师或设计师这样重要位置的人...

    用户1289394
  • 不该存在的语言之争

    G20在杭举行,各国首脑人物纷纷抵达。在二十国集团的领导人中,除我天朝首领习大大以外,最引人注目的莫过于美国总统奥巴马了。对于奥巴马的狗仔传闻,在峰会开幕前几天...

    用户1608022
  • 堕落 Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?

    关键时刻,第一时间送达! 2017 年,编程语言领域发生了巨大的变化,一方面,Java、Kotlin 等语言在企业和移动开发方面吸引了很多开发者的关注;另一方面...

    企鹅号小编
  • 计算机程序的思维逻辑 (4) - 整数的二进制表示与位运算

    上节我们提到正整数相乘的结果居然出现了负数,要理解这个行为,我们需要看下整数在计算机内部的二进制表示。 十进制 要理解整数的二进制,我们先来看下熟悉的十进制。十...

    swiftma
  • 3段认同的理念

    崔文远TroyCui
  • 手持 Python 利剑,一路向前

    学习 Python 课程究竟有什么用?Python 课程学员假牙运用课程所学,在工作中设置自动化检验脚本,为团队排除 bug 规避风险。「最难受的时候再坚持一下...

    企鹅号小编
  • 由优劣语言之争引起的思考

    作为高级工程师和架构师圈子里有着出色影响力的优秀公众号,在公开场合发表这种充满意识形态的争议性文字,实属罕见,我觉得应该是小编未能注意到作者在正文的某个角落夹杂...

    歪脖贰点零

扫码关注云+社区

领取腾讯云代金券