我的朋友曾对一位著名的操作系统专家说他想要设计一种真正优秀的编程语言。那位专家回答,这是浪费时间,优秀的语言不一定会被市场接受,很可能无人使用,因为语言的流行不取决于它本身。至少,那位专家设计的语言就遭遇到了这种情况。
那么,语言的流行到底取决于什么因素呢?流行的语言是否真的值得流行呢?还有必要尝试设计一种更好的语言吗?如果有必要的话,怎样才能做到这一点呢?
为了找到这些问题的答案,我想我们可以观察黑客,了解他们使用什么语言。编程语言本来就是为了满足黑客的需要而产生的,当且仅当黑客喜欢一种语言时,这种语言才能成为合格的编程语言,而不是被当作“指称语义”(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就是因为这个毛病而声名狼藉。如果你让黑客像下面这样求和:
本文导读目录: 1、黑客帝国 主角一开始做什么工作 2、电影“黑客帝国”讲述的到底是个什么故事? 3、求一开始是梦境,醒来发现自己其实是在上班,或者是做白日梦被别人敲醒发现自己是在公司的电影或...
一、从哪里修改成绩怎么找黑客 1、任务 可靠吗黑客网站同时,EricRaymond更热衷于自由软件的开发和推广,并撰写了积极促进自由软件发展的演讲,为自由软件的发展做出了巨大贡献。从哪里修改成绩攻击实...
餐饮行业美食众多,要想在这个行业中大展身手,那就一定要对品牌的选择慎重,在众多优秀品牌中找到适合自己的也是非常不容易的。但是四道菜中餐加盟现在为大家提供了一个绝好的机会。四道菜中餐加盟不仅拥有丰富的基...
这女的没像翟欣欣逼死IT老公跳楼一样,小伙子你就谢天谢地吧,趁年轻远离这种渣女吧 西门庆勾搭潘金莲,武大郎只能含垢忍辱,最后一命呜呼。 绿地高管出轨女下属,女主老公录音取证,最后实名举报,引发全...
黑客分为哪几个等级 1、“骇客”常常和“黑客”混淆,骇客是“Cracker”的音译,我们经常在一些网络游戏发现“骇客”这个称呼,因为翻译的问题,台湾地区使用的是“骇客”一词。骇客就是“破解者”的意思。...
中新网西宁12月24日电 (记者 张添福)据中国地震台网正式测定,12月24日07时51分(北京时间),在青海省果洛州玛多县发生4.2级地震,震源深度7公里。 据悉,此次地震震中距玛多县黄河...