PG Paul Graham 文集
100%
Part 5 · 早期文章 Early Essays

语言解决什么

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: 编程不够像逻辑。