编程语言解决了什么问题
Kevin Kelleher提出了一个有趣的比较编程语言的方法:描述每种语言解决了什么问题。令人惊讶的是,有多少语言,以及如何很好地可以用这种方式来描述。
Algol:汇编语言太底层了。
Pascal:Algol的数据类型不够多。
Modula:Pascal对于系统编程来说太弱了。
Python: Modula-3太吓人了。
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控制。
Javascript: Java太吓人了。
Lisp:图灵机是描述计算的笨拙方式。
Scheme:MacLisp是个大杂烩。
T:Scheme没有库。
Common Lisp:Lisp方言太多了。
Dylan:Scheme没有库,而且Lisp语法太吓人。
Curl: Lisp语法太吓人,而且XML是多余的。
Arc: Scheme没有库,而且两者都可以更简洁。
Perl:Shell脚本/awk/sed不够像编程语言。
Python:Perl是个大杂烩。
Ruby:Perl是个大杂烩,而且Lisp语法太吓人。
Prolog:编程不够像逻辑。
还有很多语言我无法用这种方式来描述。对于列表中缺失的任何语言,欢迎提供建议。
我寻找的并不是语言设计者的原始动机(Smalltalk最初是为儿童设计的),而是语言最初占据的利基。这种语言对它的第一批用户有什么吸引力?
英文版:paulgraham.com/fix.html|中文版:HiJiangChuan.com/paulgraham/015-what-languages-fix
更新记录:
- 2025-02-28 HiJiangChuan 初稿翻译,术语待验证;