我的朋友曾对一位著名的操作系统专家说他想要设计一种真正优秀的编程语言。那位专家回答,这是浪费时间,优秀的语言不一定会被市场接受,很可能无人使用,因为语言的流行不取决于它本身。至少,那位专家设计的语言就遭遇到了这种情况。
那么,语言的流行到底取决于什么因素呢?流行的语言是否真的值得流行呢?还有必要尝试设计一种更好的语言吗?如果有必要的话,怎样才能做到这一点呢?
为了找到这些问题的答案,我想我们可以观察黑客,了解他们使用什么语言。编程语言本来就是为了满足黑客的需要而产生的,当且仅当黑客喜欢一种语言时,这种语言才能成为合格的编程语言,而不是被当作“指称语义”(denotational semantics)或者编译器设计。
流行的秘诀
没错,大多数人选择某一种编程语言,不是因为这种语言有什么独特的特点,而是因为听说其他人使用这种语言。但是我认为,外界因素对于编程语言的流行其实没有想象中那么大的影响力。我倒是觉得,问题出在对于什么是优秀编程语言,黑客的看法与大多数的语言设计者不一样。
大多数程序员也许无法分辨语言的好坏。但是,这不代表优秀的编程语言会被埋没,专家级黑客一眼就能认出它们,并且会拿来使用。虽然他们人数很少,但就是这样一小群人写出了人类所有优秀软件。他们有着巨大的影响力,他们使用什么语言,其他程序员往往就会跟着使用。老实说,很多时候这种影响力更像是一种命令,对于其他程序员来说,专家级黑客就像自己的老板或导师,他们说哪种语言好用,自己就会乖乖地跟进。
专家级黑客的看法不是决定一种语言流行程度的唯一因素,某些古老的软件(Fortran和Cobol的情况)和铺天盖地的广告宣传(Ada和Java的情况)也会起到作用。但是,我认为从长期来看,专家级黑客的看法是最重要的因素
即使不考虑语言本身的优秀是否能带动流行,我想单单流行本身就肯定会使得这种语言变得更好,只有流行才会让它保持优秀。编程语言的更高境界一直在发展之中。虽然语言的核心功能就像大海的深处,很少有变化,但是函数库和开发环境之类的东西就像大海的表面,一直在汹涌澎湃。
外部因素会影响到语言的流行。一种语言必须是某一个流行的计算机系统的脚本语言(scripting language),才会变得流行。Fortran和Cobol是早期IBM大型机的脚本语言。C是Unix的脚本语言,后来的Perl和Python也是如此。Tcl是Tk的脚本语言,Visual Basic是Windows的脚本语言,(某种形式的)Lisp是Emacs的脚本语言,PHP是 *** 服务器的脚本语言,Java和JavaScript是浏览器的脚本语言。
如果一种编程语言只有语法规则,没有一个好的实现(implementation),那么它就不能算完整的编程语言。这些都是很正常很合理的事情,编程语言本来就该如此。
当然,编程语言本来就需要一个好的实现,而且这个实现必须是免费的。商业公司愿意出钱购买软件,但是黑客作为个人不会愿意这样做,而你想让一种语言成功,恰恰就是需要吸引黑客。
编程语言还需要有一本介绍它的书。这本书应该不厚,文笔流畅,而且包含大量优秀的范例。布赖恩 · 柯尼汉和丹尼斯 · 里奇合写的《C程序设计语言》(C Programming Language)就是这方面的典范
编程语言还应该有在线文档。事实上,在线文档可以当作一本书来写,但是目前它还无法取代实体书。实体书并没有过时,它们读起来很方便,而且出版社对书籍内容的审核是一种很有用的质量保证机制(虽然做得很不完美)。书店则是程序员发现和学习新语言的最重要的场所之一
假定你的语言已经能够满足上面三项条件——一种免费的实现,一本相关书籍,以及语言所依附的计算机系统——那么还需要做什么才能使得黑客喜欢上你的语言?
黑客欣赏的一个特点就是简洁。黑客都是懒人,他们同数学家和现代主义建筑师一样,痛恨任何冗余的东西或事情。
不要觉得为用户着想就是让他们使用像英语一样又长又啰嗦的语法。这是不正确的做法,Cobol就是因为这个毛病而声名狼藉。如果你让黑客像下面这样求和:
10月31日,备受瞩目的中国共产党第十九届中央委员会第四次全体会议公报发布。坚持和完善中国特色社会主义制度、推进国家治理体系和治理能力现代化,十九届四中全会提出了总体目标,作出了重大部署。在五千多...
华为手机能不能查到位置轨迹呢?我们都知道苹果手机是可以查到的,尤其是去了那个地方去了多少次也能查到,那么华为手机有没有这个功能,会不会记录个人轨迹的位置呢?我们一起分析看看吧。 华为手...
韬光养晦是什么意思(韬光养晦书法含义) 很多朋友发现很多人喜欢在办公室或者书房悬挂着韬光养晦四个大字的书法作品,来提醒勉励自己。那么这这个书法作品的含义是什么?它是比喻隐藏才能,锋芒不外露,意...
指令:Level Goal终端和命令行东西详细缺点代码如下:彻底Bypass姿态的限制: Preventing CSRF首要,咱们经过其他的途径,运用metasploit在payload在方针机...
妊娠纹的产生和患者的年龄体质存在着紧密的联系,随着医学的进步,妊娠纹的祛除方式也变得越来越多样,不再像以前那么难易解决无法祛除。 那么祛除妊娠纹都有什么好方法? 1、 热敷法 正处于哺乳期的...
我们单位有一位小三,最近嫁给了相恋5年的丈夫。因为两人的社交聚会较多,工作繁忙,还没有申请婚假,更别说蜜月旅行了。 有一次,他们费了好大劲才把手头的工作暂时丢了,于是商量准了婚假,去一个风景优美的地...