Lo que los Lenguajes Solucionan
Kevin Kelleher sugirió una forma interesante de comparar lenguajes de programación: describir cada uno en términos del problema que soluciona. Lo sorprendente es cuántos, y cuán bien, se pueden describir los lenguajes de esta manera.
Algol: El lenguaje ensamblador es demasiado básico.
Pascal: Algol no tiene suficientes tipos de datos.
Modula: Pascal es demasiado blando para la programación de sistemas.
Simula: Algol no es lo suficientemente bueno en simulaciones.
Smalltalk: No todo en Simula es un objeto.
Fortran: El lenguaje ensamblador es demasiado básico.
Cobol: Fortran da miedo.
PL/1: Fortran no tiene suficientes tipos de datos.
Ada: A todos los lenguajes existentes les falta algo.
Basic: Fortran da miedo.
APL: Fortran no es lo suficientemente bueno manipulando arrays.
J: APL requiere su propio conjunto de caracteres.
C: El lenguaje ensamblador es demasiado básico.
C++: C es demasiado básico.
Java: C++ es un arreglo improvisado. Y Microsoft nos va a aplastar.
C#: Java está controlado por Sun.
Lisp: Las Máquinas de Turing son una forma incómoda de describir la computación.
Scheme: MacLisp es un arreglo improvisado.
T: Scheme no tiene librerías.
Common Lisp: Hay demasiados dialectos de Lisp.
Dylan: Scheme no tiene librerías, y la sintaxis de Lisp da miedo.
Perl: Los scripts de shell/awk/sed no se parecen lo suficiente a los lenguajes de programación.
Python: Perl es un arreglo improvisado.
Ruby: Perl es un arreglo improvisado, y la sintaxis de Lisp da miedo.
Prolog: La programación no se parece lo suficiente a la lógica.