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.