viernes, julio 10, 2009

comparativa lenguajes programación

http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html

http://shootout.alioth.debian.org/

Una historia breve e incompleta de lenguajes de programación

http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html

Traducción de Una breve, incompleta y mayormente errónea historia de los lenguajes de programación , de James Iry. Algunas referencias son bastante sutiles o se refieren a asuntos de actualidad, que puede ser tan reciente como la semana pasada.


1801 - Joseph Marie Jacquard usa tarjetas perforadas para hacer que un telar escriba "hola mundo" en un tapiz. Los barrapunteros de la época critican su falta de recursividad y concurrencia, y el mal uso de las mayúsculas.

1842 - Ada Lovelace escribe el primer programa, un poco lastrada por el pequeño detalle de que no tiene un ordenador de verdad para ejecutar su código. Los arquitectos empresariales recrearán más tarde sus técnicas para programar en UML.

1936 - Alan Turing inventa todos los lenguajes que existirán, pero es coaccionado por el servicio secreto británico para convertirse en 007 antes de que consiga patentarlos.

1936 - Alonzo Church también inventa todos los lenguajes, pero mejor. Todo el mundo pasa de su cálculo lambda porque no se parece suficientemente a C, a pesar de que C no se ha inventado aún.

1940s - Varios "ordenadores" se "programan" mediante cableado e interruptores. Los ingenieros lo hacen así para no verse implicados en el debate de tabuladores contra espacios.

1957 - John Backus e IBM crean FORTRAN. No hay nada gracioso que decir sobre IBM o FORTRAN. Es un error de sintaxis escribir FORTRAN sin llevar una corbata azul.

1958 - John McCarthy y Paul Graham inventan LISP. A causa de su alto coste, provocado por el agotamiento de la reserva estratégica de paréntesis en la posguerra, LISP nunca se populariza [1]. A pesar de eso, LISP (ahora llamado "Lisp" o a veces "Arc") sigue siendo un lenguaje influyente en "técnicas algorítmicas clave como recursividad y condescendencia" [2].

1959 - Tras perder una apuesta con el teniente Ron Hubbard, Grace Hopper y varios sádicos más inventan el "Lenguaje orientado a formulismos todo en mayúsculas", en inglés "Capitalization Of Boilerplate Oriented Language" (COBOL). Años más tarde, en una venganza absurda y sexista contra contra el trabajo en COBOL de la almirante Hopper, las conferencias de Ruby suelen incluir material misógino.

1964 - John Kemeny y Thomas Kurtz crean BASIC, un lenguaje de programación no estructurado para los no informáticos.

1965 - Kemeny y Kurtz GOTO 1964.

1970 - Guy Steele y Gerald Sussman crean Scheme. Su trabajo conduce a una serie de artículos en "Lambda the Ultimate" que culminan en "Lambda the Ultimate Kitchen Utensil" ("Lambda, el utensilio de cocina definitivo"), que se convierte en la base de una prolongada, pero finalmente infructuosa emisión de publirreportajes a altas horas de la noche. Las lambdas quedan relegadas a una relativa oscuridad hasta que Java las hace populares por no tenerlas.

1970 - Niklaus Wirth crea Pascal, un lenguaje procedimental. Los críticos inmediatamente atacan Pascal por usar la sintaxis "x := x + y" en vez de la más familiar "x = x + y" como en C. Eso a pesar de que C todavía no se ha inventado.

1972 - Dennis Ritchie inventa una potente arma de fuego que dispara a la vez hacia delante y hacia atrás. No contento con el número de muertos y mutilados, inventa 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 haberlo conseguido enseñando una sesión de Prolog que dice "No." a todo.

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 especificada. Cuando se le pide una semántica formal de la semántica formal, la cabeza de Milner explota. Otros lenguajes bien conocidos de la familia de ML son OCaml, F# y Visual Basic.

1980 - Alan Kay crea Smalltalk e inventa el término "orientado a objetos". Cuando le preguntan qué significa responde: "los programas en Smalltalk son sólo objetos". Cuando le preguntan de qué están hechos los objetos, contesta: "de objetos". Cuando le preguntan otra vez, dice: "verá usted, son siempre objetos otra vez, hasta que llegas a las tortugas".

1983 - Bjarne Stroustrup embute todo lo que ha oído en su vida sobre lenguajes y lo mete en C para crear C++. El lenguaje resultante es tan complejo, que los programas deben enviarse al futuro para que los compile Skynet, la inteligencia artificial. Los tiempos de compilación se alargan alarmantemente. Los motivos de Skynet para prestar ese servicio siguen sin estar demasiado claros, pero portavoces del futuro dicen que "no hay nada de que preocuparse, baby", en un monótono acento austríaco. Se especula con que Skynet no sea más que un pretencioso desbordamiento de buffer.

1986 - Brad Cox y Tom Love crean Objective-C, anunciando que "combina la seguridad de memoria del C con la velocidad de relámpago de Smalltalk". Los historiadores sospechan que eran disléxicos.

1987 - Larry Wall se queda dormido y la frente de Larry Wall cae sobre el teclado. Al despertar, Larry Wall decide que la cadena de caracteres del monitor de Larry Wall no es aleatoria, sino un ejemplo de un programa en un lenguaje para diseñar el cual, Dios ha elegido a Larry Wall, su profeta. Nace Perl.

1990 - Un comité formado por Simon Peyton-Jones, Paul Hudak, Philip Wadler, Ashton Kutcher, y "El pueblo por el tratamiento ético de los animales" crea Haskell, un lenguaje funcional, no estricto y puro. Encuentra algo de resistencia, debido a la complejidad de usar mónadas para controlar los efectos laterales. Wadler intenta aplacar a los críticos explicando que "una mónada no es más que un monoide de la categoría de los endofuntores, ¿qué problema hay?".

1991 - El programador holandés Guido van Rossum viaja a Argentina para una misteriosa operación. Al volver con una enorme cicatriz en el cráneo, inventa Python, legiones de seguidores lo declaran dictador vitalicio y anuncia al mundo que "sólo hay una forma de hacerlo". En Polonia cunde el nerviosismo.

1995 - Yukihiro "Mad Matz" Matsumoto crea Ruby para impedir un apocalipsis vagamente insinuado que dejaría Australia como un desierto poblado por guerreros rapados y Tina Turner. Más tarde "Ruby on Rails" es el nuevo nombre del lenguaje según su verdadero inventor, David Heinemeier Hansson. [Eso de que Matsumoto inventó un lenguaje llamado "Ruby" nunca sucedió y es mejor quitarlo del artículo - DHH]

1995 - Brendan Eich se fija en todos los errores cometidos en el diseño de otros lenguajes, añade algunos de su cosecha y crea LiveScript. Más tarde, en un intento para rentabilizar la popularidad de Java, le cambia el nombre a JavaScript. Y aun más tarde, en un esfuerzo de aprovechar la popularidad de las afecciones cutáneas, el lenguaje se renombra como ECMAScript.

1996 - James Gosling inventa Java. Es un lenguaje orientado a objetos, de invocación simple, estáticamente tipado, basado en clases, con recolección de basura y bastante largo de escribir, con herencia simple de clases y herencia múltiple de interfaces. Sun proclama a los cuatro vientos lo novedoso de Java.

2001 - Anders Hejlsberg inventa C#. Es un lenguaje orientado a objetos, de invocación simple, estáticamente tipado, basado en clases, con recolección de basura y bastante largo de escribir, con herencia simple de clases y herencia múltiple de interfaces. Microsoft proclama a los cuatro vientos lo novedoso de C#.

2003 - Martin Odersky, estando borracho, ve un anuncio de mantequilla de cacahuete Reese sobre el chocolate y tiene una idea. Crea Scala, un lenguaje que unifica las construcciones de los lenguajes funcionales y los orientados a objetos. Consigue cabrear a los partidarios de ambos tipos de lenguaje que declaran al unísono la jihad.
Notas:
Afortunadamente para la informática, el suministro de llaves y signos de mayor y menor está garantizado.
"Catch as catch can" de Verity Stob.