言語が解決するもの

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: プログラミングは論理のようには十分ではない。