言語が解決するもの
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++はごちゃごちゃしている。そしてMicrosoftが私たちを押しつぶそうとしている。
C#: JavaはSunによってコントロールされている。
Lisp: チューリングマシンは計算を記述するのに不器用な方法だ。
Scheme: MacLispはごちゃごちゃしている。
T: Schemeにはライブラリがない。
Common Lisp: Lispの方言が多すぎる。
Dylan: Schemeにはライブラリがなく、Lispの構文は怖い。
Perl: シェルスクリプト/awk/sedはプログラミング言語のようには十分ではない。
Python: Perlはごちゃごちゃしている。
Ruby: Perlはごちゃごちゃしていて、Lispの構文は怖い。
Prolog: プログラミングは論理のようには十分ではない。