编程语言的宗教狂热和十字军东征

原创 2003年08月22日 09:07:00

编程语言的宗教狂热和十字军东征

(本文首发于《中华读书报》2003年8月20日号)
熊节

  业余程序员最喜欢做的一件事就是对不同的语言进行比较。Java是否比C++好?C#是否会成为终极语言?凡此种种。从专业程序员的角度看来,这是最低级无趣的游戏。其一,在项目诸元确定之后,通常并没有选择语言的余地;其二,语言的生存本身就是一个达尔文主义的问题:设若两种语言有明确的可比较性,其中较劣的那一种必定早已被淘汰出局,又何来比较的必要?所以,有“C++之父”美称的Bjarne Stroustrup博士常常声明自己不会拿C++与其他语言比较——偏偏每次接受采访时,必定有外行的记者或听众提出这一类最令他反感的问题,这是题外话,按下不表。

  丢开实用主义的观点,从美学(或者说,计算机科学)的角度来看,语言的比较似乎并不像它通常所表现的那么低级。毕竟,既然维特根斯坦反复强调“语言制订游戏的规则”、“凡不可言说者必保持沉默”,可见语言并非仅仅是可通约的思想的映射,语言本身就决定思想的方式。使这个问题显得那么低级而业余的,往往是业余程序员讨论它的方式:仅仅凭着自己对几种语言一知半解的认识、仅仅凭着使用一种语言的习惯、甚至仅仅凭着一种宗教狂热来展开讨论,这样的讨论自然是不值一哂的。

  我是不是已经提到了“宗教狂热”这个词?如果说对语言的喜爱(或者憎恶)可以成为一种宗教狂热,就有那么一些人可以凭着宗教袢瓤际志亩鳎琁an Joyner无疑属于这种人。1992年,在Unisys用C++开发UNIXX.500时,Joyner感到C++让他“不自在”,于是就写了一篇题为《C++批判》的报告,张贴在Unisys的内部新闻组上。到此为止,一切都没有什么不同。但Joyner与其他宗教狂热者的区别在于:他有着远为深厚的理论基础,以及锲而不舍的毅力。于是,《C++批判》有了第二版和在Internet上广为流传的第三版。到1998年,这篇典型的论坛文章终于变成了一本书,“批判”也彻底变成了语言之间的比较(参与比较的另外两种语言是Java和Eiffel),这就是我手上的《对象揭秘:Java、Eiffel和C++》(Object Unencapsulated:Java,Eiffeland C++,人民邮电出版社2003年7月)。

  尽管宣称自己反对“宗教战争”,但显然Ian Joyner是深谙宗教战争之道的。从批评的方式来说,他与其他人并无不同:首先立论(“Eiffel是最好的语言”),然后不断变换角度批评对手——时而是数学理论的完备性、时而是使用的便利和可靠、时而是命名的清晰……论据的选取完全只是为论点服务。也正因为此,这本《对象揭秘》足以让绝大多数的语言比较者感到羞赧,因为在同样的批评套路上,Joyner探索的深度和广度令他们望尘莫及。譬如说,任何一个负责的语言比较者都必然会提到“继承和类型系统”这一话题,但Joyner却把这个话题写成了长达63页的一章(第5章,“类型扩展:继承与虚拟”),并在后面的章节(第9章,“类型转换”)中继续讨论相关的问题。抛开篇幅不谈,单是Joyner习以为常的文法解读、Lamda演算法和签名变化理论,就足以使不够水准的批评者自惭形秽了。

  因此,在我看来,这本《对象揭秘》完全有理由成为所有语言比较者的必读书目——也许说“入门书目”会更准确一些?因为你能想到的任何一条批评,Ian Joyner很可能早已做了鞭辟入里的阐述。如果在细读《对象揭秘》之前妄自作评,结果很可能是贻笑大方。另一方面,在批评的方法上,Joyner为后来者作出了表率:简单的反对与谩骂毫无意义,用钱钟书的话来说,“反其道以行也是一种模仿”;只有拿出充足的论据,再拿出合理的解决方案,才称得上一个高明的批评者。当然,这样的“入门书目”也许让门槛显得太高了一点。但对于“Java和C++谁更好”这样一个通常只会令人感到莫名烦躁的话题,门槛总是不厌其高的。

  像我一样的Java人常常会抱怨“Java的经典书籍太少了”。C++的经典好书总是层出不穷,实在令人艳羡——当然真正拥有这些书的人也同时拥有不少的烦恼,我就有最深切的体会。在这本《对象揭秘》中,IanJoyner顺便也半开玩笑地揭开了这个秘密。也许,这句半开玩笑的话会成为Java人喜爱这本书的另一个理由:

  “……学习C++要花那么长时间……,要比Eiffel和Java都长得多。花那么长时间还未必掌握编程或者面向对象设计技术。这也是为什么关于C++的书籍那么多而Eiffel和Java不需要那么多书的原因。”

编程的宗教狂热和十字军东征

       业余程序员最喜欢做的一件事就是对不同的语言进行比较。Java是否比C++好?C#是否会成为终极语言?凡此种种。从专业程序员的角度看来,这是最低级无趣的游戏。      其一,在项目诸元确...
  • jcgeneral
  • jcgeneral
  • 2008年03月02日 16:33
  • 1069

要塞:十字军东征中文版 修改器

要塞:十字军东征中文版 修改器以前高中打过要塞,后来在网吧里无意中看到还有个要塞:十字军东征,所以就下载下来玩了几次。按照往常的习惯,下了个修改器,结果发现只能对英文使用,中文版没有用,所以就想自己做...
  • scutxd
  • scutxd
  • 2007年10月24日 21:07
  • 9832

十字军东征一些君主AI的对话

[整理]十字军东征一些君主AI的对话. >>(rat skirmish speech) =>(耗子) >>You impudent upstart.  I shall take great delig...
  • xxxl
  • xxxl
  • 2008年11月09日 23:31
  • 2030

十字军东征

 十字军东征是西欧封建领主、意大利大商人和罗马天主教会,对地中海东岸地区发动的侵略性军事远征。      始于1095年,教皇乌尔班二世在法国南部克莱蒙召开宗教大会,以从异教徒手中夺回“圣地”耶路撤冷...
  • KimSoft
  • KimSoft
  • 2006年06月01日 10:32
  • 1896

十字军东征谁所为

  那夜王睡不著覺,就吩咐人取“歷史”來,念給他聽。(斯六:1)   歷史就是歷史,就是事實。可是歷史常被人遺忘、忽略、誤會,甚至曲解或改頭換面。 話說從頭   “基督徒”首見使徒行傳第十一章二十六節...
  • KimSoft
  • KimSoft
  • 2006年06月01日 11:17
  • 3231

狂热和许诺

  • zgqtxwd
  • zgqtxwd
  • 2008年04月25日 20:37
  • 168

爱因斯坦论宗教与自然科学的关系

北京大学学报(国内访问学者、进修教师论文专刊) 2001 年 哲学研究 爱因斯坦论宗教与自然科学的关系 宋惠芳 摘 要:爱因斯坦通过对宗教经验发展历程的分析, 提出了自己对宗教的一种新的看法与...
  • shine4j
  • shine4j
  • 2016年02月19日 13:14
  • 491

鲁迅的宗教信仰观

(…… 一个无信仰的人与一个有信仰的人是难以相提并论的,一个无信仰的民族与一个有信仰的民族是难以抗衡的。在我们当下,信仰尤其成为一个思想精神上的空白。……)   当20世纪初鲁迅提出“伪士当去,迷信可...
  • wfdmd
  • wfdmd
  • 2006年07月28日 08:59
  • 2453

NOI题库--图论 宗教信仰

宗教信仰
  • DaD3zZ
  • DaD3zZ
  • 2015年11月03日 21:48
  • 676

如果编程语言是一种宗教

http://www.nowamagic.net/librarys/veda/detail/1901 原文来自If programming languages were religion...
  • ajian005
  • ajian005
  • 2012年07月16日 19:08
  • 1365
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程语言的宗教狂热和十字军东征
举报原因:
原因补充:

(最多只允许输入30个字)