Hace ya tiempo que James Iry escribió su desternillante «A Brief, Incomplete, and Mostly Wrong History of Programming Languages» y no he encontrado traducciones completas del texto en castellano, por lo que he decidido hacer mi propia adaptación propia.
1801: Joseph Marie Jacquard utiliza tarjetas perforadas para indicarle a un telar que teja «hola, mundo» en un tapiz. Los Redditers de la época no están impresionados debido a la falta de recursividad de las llamadas finales, simultaneidad o capitalización adecuada.
1842: Ada Lovelace escribe el primer programa. Sus esfuerzos se ven frustrados por el pequeñísimo inconveniente de que no tiene ningún ordenador real para ejecutar su código. Posteriormente, los arquitectos empresariales volverán a aprender sus técnicas para poder programar en UML.
1936: Alan Turing inventa todos los lenguajes de programación que existen, pero la inteligencia británica le coacciona para ser 007 antes de que pueda patentarlos.
1936 – Alonzo Church también inventa todos los lenguajes que existen, pero lo hace mejor. La gente pasa de su cálculo lambda porque no es lo suficientemente parecido a C, todo ello a pesar de que C aún no se ha inventado.
Años 40: se «programan» varias «ordenadores» mediante cableado directo e interruptores. Los ingenieros hacen esto para evitar el debate entre tabs y espacios.
1957: John Backus e IBM crean FORTRAN. No hay nada gracioso sobre lo que hacer chistes de IBM o FORTRAN. Es un error de sintaxis escribir FORTRAN sin llevar corbata azul.
1958: John McCarthy y Paul Graham inventan LISP. Debido al alto coste causados por el agotamiento de la reserva estratégica de paréntesis de la posguerra, LISP nunca llega a ser popular [1]. A pesar de su falta de popularidad, LISP (ahora «Lisp» o, a veces, «Arc») sigue siendo un lenguaje influyente en «técnicas algorítmicas clave como la recursividad y la condescendencia» [2].
1959 – Después de perder una apuesta con L. Ron Hubbard, Grace Hopper y otros sádicos inventan el «Lenguaje Orientado a Formulismos Todo en Mayúsculas» (Capitalization Of Boilerplate Oriented Language, COBOL). Años más tarde, en una represalia sexista y equivocada contra el trabajo de la almirante Hopper sobre COBOL , las conferencias de Ruby empiezan a incluir material misógino.
1964: John Kemeny y Thomas Kurtz crean BASIC, un lenguaje de programación no estructurado para los no informáticos o simplemente, muggles.
1965 – Kemeny y Kurtz GOTO 1964.
1970: Guy Steele y Gerald Sussman crean Scheme. Su trabajo conduce a una serie de artículos sobre «Lambda the Ultimate» que culminan en «Lambda the Ultimate Kitchen Utensil» («Lambda, la herramienta de cocina definitiva»). Este artículo se convierte en la base de una serie de publirreportajes nocturnos de larga duración. Las lambdas quedan relegadas a una relativa oscuridad hasta que Java las hace populares al no tenerlas.
1970 – Niklaus Wirth crea Pascal, un lenguaje procedimental. Los críticos inmediatamente denuncian a Pascal porque usa la sintaxis «x := x + y» en lugar de la más familiar tipo C «x = x + y». Todo ello a pesar de que C aún no se ha inventado.
1972: Dennis Ritchie inventa una poderosa arma que dispara hacia adelante y hacia atrás a la vez. No satisfecho con el número de muertes y mutilaciones permanentes que provoca este invento, crea C y Unix.
1972 – Alain Colmerauer diseña el lenguaje lógico Prolog. Su objetivo es crear un lenguaje con la inteligencia de un niño de dos años. Demuestra que ha alcanzado su objetivo mostrando una sesión de Prolog que siempre dice «No» a cualquier consulta.
1973: Robin Milner crea ML, un lenguaje basado en la teoría de tipos M&M. ML engendra SML que tiene una semántica formalmente definida. Cuando se le pregunta por una semántica formal de la semántica formal, la cabeza de Milner revienta. Otros lenguajes conocidos de la familia ML incluyen OCaml, F# y Visual Basic.
1980: Alan Kay crea Smalltalk e inventa el término «orientado a objetos». Cuando se le pregunta qué significa eso, responde: «Los programas de Smalltalk son sólo objetos». Cuando se le pregunta de qué están hechos los objetos, responde: «objetos». Cuando se le vuelve a preguntar, dice «mire, son todos objetos hasta abajo. Hasta llegar a las tortugas».
1983 – En honor a la capacidad de Ada Lovelace para crear programas que nunca se ejecutaron, Jean Ichbiah y el Departamento de Defensa de EE.UU. crean el lenguaje de programación Ada. A pesar de la falta de evidencia de que algún programa significativo de Ada se complete alguna vez, los historiadores creen que Ada es un proyecto de obras públicas de éxito que mantiene entretenidos y fuera de las bandas a los miles de contratistas de defensa ambulantes.
1983: Bjarne Stroustrup integra todo lo que ha oído hablar en C para crear C++. El lenguaje resultante es tan complejo que los programas deben enviarse al futuro para ser compilados por la inteligencia artificial Skynet. Los tiempos de construcción sufren. Los motivos de Skynet para prestar el servicio aún no están claros, pero los portavoces del futuro dicen «Hasta la vista, Baby», con un plano acento austriaco. Se especula que Skynet no es más que un desbordamiento del buffer con ínfulas.
1986: Brad Cox y Tom Love crean Objective-C y anuncian que «este lenguaje combina la seguridad de memoria de C con toda la increíble velocidad de Smalltalk». Los historiadores modernos sospechan que los dos eran disléxicos.
1987 – Larry Wall se queda dormido y se golpea la frente con el teclado. Al despertar, Larry Wall decide que la cadena de caracteres en el monitor de Larry Wall no es aleatoria sino un programa de ejemplo en un lenguaje de programación que Dios quiere que su profeta, Larry Wall, diseñe. Y así nace Perl.
1990 – Un comité formado por Simon Peyton-Jones, Paul Hudak, Philip Wadler, Ashton Kutcher y Personas para el Trato Ético de los Animales crea Haskell, un lenguaje funcional, puro y no estricto. Haskell encuentra cierta resistencia debido a la complejidad del uso de mónadas para controlar los efectos secundarios. Wadler intenta apaciguar a los críticos explicando que «una mónada es un monoide en la categoría de endofunctores, ¿cuál es el problema?»
1991: el programador holandés Guido van Rossum viaja a Argentina para una misteriosa operación. Regresa con una gran cicatriz craneal, inventa Python. Legiones de seguidores lo declaran Dictador Absoluto y anuncia al mundo que «Sólo hay una manera de hacerlo». Polonia se pone nerviosa.
1995 – En un restaurante italiano de barrio, Rasmus Lerdorf se da cuenta de que su plato de espaguetis es un modelo excelente para comprender la World Wide Web y que las aplicaciones web deberían imitar su medio. En el reverso de su servilleta diseña Pasta Hipervinculada Programable (PHP). La documentación PHP permanece en esa servilleta hasta el día de hoy.
1995 – Yukihiro «Mad Matz» Matsumoto crea Ruby para evitar un apocalipsis poco concreto que dejará a Australia en un desierto gobernado por guerreros con crestas y Tina Turner. Posteriormente, su verdadero inventor, David Heinemeier Hansson, rebautizó el lenguaje como Ruby on Rails. [La parte acerca de que Matsumoto inventó un lenguaje llamado Ruby nunca sucedió y será mejor que se elimine en la próxima revisión de este artículo – DHH].
1995: Brendan Eich analiza cada error cometido al diseñar un lenguaje de programación, inventa algunos más y crea LiveScript. Más tarde, en un esfuerzo por sacar provecho de la popularidad de Java, el lenguaje pasó a llamarse JavaScript. Más tarde aún, en un esfuerzo por sacar provecho de la popularidad de las enfermedades de la piel, el lenguaje pasa a llamarse ECeMAScript (ECMAScript).
1996: James Gosling inventa Java. Java es un lenguaje con recolección de basura, basado en clases, con tipado estático, basado en clases y orientado a objetos con herencia simple de clases y herencia múltiple de interfaces. Sun proclama que Java es la gran novedad.
2001: Anders Hejlsberg inventa C#. C# es un lenguaje con recolección de basura, basado en clases, con tipado estático, basado en clases y orientado a objetos con herencia simple de clases y herencia de interfaz múltiple. Microsoft proclama que C# es la gran novedad.
2003 – Martin Odersky, borracho, ve un anuncio de mantequilla de cacahuete de Reese en el que la mantequilla de alguien se mancha con el chocolate de otro alguien y tiene una idea: Crea Scala, un lenguaje que unifica construcciones de lenguajes funcionales y orientados a objetos. Esto cabrea a los seguidores de ambos paradigmas y ambos declaran el inicio de la yihad.
Notas a pie de página
- Afortunadamente para la informática, la oferta de llaves y corchetes angulares sigue estando garantizado.
- Catch as you can de Verity Stob
Y hasta aquí el texto, espero que os haya gustado.