<p>ESR对语言的选择不仅基于范例,而且基于它们的使用,每种范式都有以下表现:</p>
<ol>
<L> C/C++:系统编程语言(金属)</LI>
<li>Lisp:功能范式(启蒙)</li>
<li>Java:面向对象(框架)</li>
<li>Perl:更好的shell语言(管理员)</li>
<li>Python:因为它是Python,doh。(天堂<a href="http://xkcd.com/353/" rel="nofollow">http://xkcd.com/353/</a>)</li>
</ol>
<p>更严重的是,python是一种设计最完善的语言;<em>它的所有特性都很好地结合在一起,形成了一种干净、设计良好、易于学习的语言,而不是一种玩具语言。它是一种多功能、全面、通用的语言,几乎可以在任何情况下使用:桌面应用程序、web应用程序、嵌入式脚本语言、系统管理等等,从最小的一行脚本到数十万行。它的亮点是语言本身的设计。阿飞,这个班没有其他语言。在</p>
<p>Perl代表一种用于shell脚本或作业自动化的语言,在这种语言中,您需要调用一系列程序,对其输出进行一些转换,并将结果作为另一个程序的输入提供。这个类中的其他语言是bash,但是bash缺少perl所具有的许多强大的字符串操作(不要开始说bash可以调用perl、sed或awk)。在</p>
<p>Java代表了一种在业界广泛使用的语言,在这些语言上投入了大量的时间和金钱。因为它们无处不在,所以几乎任何东西都有一个好的库和框架;如果你能想到一个问题,很可能这个问题已经被别人解决了,而且他们已经为它编写了一个库。黑客应该知道这些语言,因为如果你能避免写任何代码(或者避免写太多代码),那么它会提高效率。这个类中的其他语言/框架是.NET、Django、RoR。在</p>
<p>Lisp代表了函数范式。了解如何在函数范式中思考和写作有很多好处,我在这里将不再赘述。另外,Lisp具有非常强大的元编程特性,这几乎是Lisp所独有的。这个类中的其他语言(函数式的,不是元编程的)包括Haskell、Scheme、Clojure、F#等</p>
<P> C/C++表示用于编写OS内核、设备驱动程序和速度关键代码的低级语言。这类语言的语义接近于裸露的金属(特别是C,C++中的不那么多),黑客应该知道CPU如何工作,否则他不能称自己为黑客。这个类中的另一种语言是Assembly,但我认为甚至ESR也认为Assembly太低级了,不能做任何有成效的事情。在</p>
虽然他提到的许多语言都有很大一部分重叠(例如Python、C++、Perl支持OOP);每一类语言都有一个独特的亮点,这是它自己的类所独有的。在</p>
<p>就我个人而言,如果我有机会添加一种其他语言,我会将PHP加入其中。Web应用越来越普遍。PHP代表一种用于web应用程序的语言,这个类中的其他语言包括JSP、ColdFusion等</p>
<p>简而言之,黑客是指:</p>
<ol>
<li>了解计算机在低水平下是如何工作的</li>
<li>知道如何抽象地思考</li>
<li>知道如何恰当地使用框架</li>
<li>知道如何管理自己的系统</li>
<li>会设计一门好的语言</li>
</ol>