语言解决什么
Kevin Kelleher提出了一种有趣的比较编程语言的方法:根据每种语言所解决的问题来描述它。令人惊讶的是,有多少语言可以这样描述,而且描述得多么贴切。
Algol: 汇编语言过于底层。
Pascal: Algol 的数据类型不够丰富。
Modula: Pascal 在系统编程方面显得过于弱小。
Simula: Algol 在模拟方面表现不佳。
Smalltalk: Simula 中并非一切都是对象。
Fortran: 汇编语言过于底层。
Cobol: Fortran 令人望而生畏。
PL/1: Fortran 的数据类型不够丰富。
Ada: 每种现有语言都缺少某些东西。
Basic: Fortran 令人望而生畏。
APL: Fortran 在数组操作上不够强大。
J: APL 需要自定义字符集。
C: 汇编语言过于底层。
C++: C 语言过于底层。
Java: C++ 是个拼凑之物。而且微软会碾压我们。
C#: Java 由 Sun 公司控制。
Lisp: 图灵机是描述计算的笨拙方式。
Scheme: MacLisp 是个拼凑之物。
T: Scheme 没有库。
Common Lisp: Lisp 方言太多。
Dylan: Scheme 没有库,而且 Lisp 语法令人望而生畏。
Perl: Shell 脚本/awk/sed 不够像编程语言。
Python: Perl 是个拼凑之物。
Ruby: Perl 是个拼凑之物,而且 Lisp 语法令人望而生畏。
Prolog: 编程不够像逻辑。