Co Naprawiają Języki

Kevin Kelleher zaproponował interesujący sposób porównywania języków programowania: opisać każdy z nich w kategoriach problemu, który rozwiązuje. Zaskakujące jest, jak wiele języków i jak dobrze można w ten sposób opisać.

Algol: Język asemblera jest zbyt niskopoziomowy.

Pascal: Algol nie ma wystarczająco dużo typów danych.

Modula: Pascal jest zbyt nieporadny do programowania systemowego.

Simula: Algol nie jest wystarczająco dobry do symulacji.

Smalltalk: Nie wszystko w Simuli jest obiektem.

Fortran: Język asemblera jest zbyt niskopoziomowy.

Cobol: Fortran jest przerażający.

PL/1: Fortran nie ma wystarczająco dużo typów danych.

Ada: Każdy istniejący język czegoś brakuje.

Basic: Fortran jest przerażający.

APL: Fortran nie jest wystarczająco dobry do manipulacji tablicami.

J: APL wymaga własnego zestawu znaków.

C: Język asemblera jest zbyt niskopoziomowy.

C++: C jest zbyt niskopoziomowy.

Java: C++ to fuszerka. A Microsoft nas zniszczy.

C#: Java jest kontrolowana przez Sun.

Lisp: Maszyny Turinga to niezgrabny sposób opisu obliczeń.

Scheme: MacLisp to fuszerka.

T: Scheme nie ma bibliotek.

Common Lisp: Istnieje zbyt wiele dialektów Lispa.

Dylan: Scheme nie ma bibliotek, a składnia Lispa jest przerażająca.

Perl: Skrypty powłoki/awk/sed nie są wystarczająco podobne do języków programowania.

Python: Perl to fuszerka.

Ruby: Perl to fuszerka, a składnia Lispa jest przerażająca.

Prolog: Programowanie nie jest wystarczająco podobne do logiki.