¿El lenguaje de programación más antiguo?

30 noviembre, 2011

Después de repasar la eficiencia, popularidad y expresividad de los lenguajes de programación, desempolvamos los libros de historia (informática) para responder a la pregunta » ¿cuál es el lenguaje de programación más antiguo de alto nivel?
Vaaale, esta vez es fácil dar una respuesta directa: Fortran.  Pero para profundizar un poco más, vamos a repasar cuatro «viejas glorias» del mundo de la programación.
El repaso empieza con Fortran (Formula Translating System), que fue diseñado por IBM en 1957 a partir de una propuesta de John W Backus (si, ése Backus) en 1953. Hoy en día sigue usándose para simulaciones y aplicaciones científicas y de ingeniería. Y es que, a pesar de los años, sigue siendo un candidato a tener en cuenta para aplicaciones de cálculo numérico de alto rendimiento.
Sólo un año más tarde, en 1958, Lisp (List Processing) fue creado por el recientemente fallecido John McCarthy. Hablar de Lisp es hablar de inteligencia artificial, de GNU Emacs, … y también de paréntesis. ¡Muchos paréntesis! Hay informátic@s que siguen teniendo pesadillas por esta particular elección de la sintaxis. Este lenguaje también destaca por ser la fuente que inspira a lenguajes como Scheme o Clojure, que son dialectos de Lisp.
También en 1958, un comité de investigadores europeos y americanos diseñaron la primera versión del lenguaje ALGOL (Algorithmic Language), llamado en ese momento IAL (International Algorithmic Language). Aunque las diferentes versiones de ALGOL no han triunfado en la industria, han influido mucho en cómo se enseñan y se definen los lenguajes de programación, siendo un referente en la sintaxis de lenguajes posteriores como C o Pascal (he aquí el origen de los famosos BEGIN ... END).
Otro año más tarde, en 1959, Cobol (Common-Business Oriented Language) es desarrollado por CODASYL, (Conference on Data Systems Languages), un consorcio de miembros de la industria y el gobierno. En este punto, la informática abandona el mundo científico y pretende entrar en el campo de los negocios. El objetivo ahora es tener un lenguaje estándar para desarrollar aplicaciones de gestión. Y todavía está en uso en muchos mainframes y aplicaciones.
Desde entonces han pasado muchos años y lenguajes más actuales como C (1972), Smalltalk (1972), ML (1973), C++ (1983), Perl (1987), Haskell (1990), Python (1991) , Java (1995) , PHP (1995), C# (2001) o F# (2002) parecen niños al lado de nuestro cuarteto de ancianitos.
Pero el mundo de la tecnología no se para y el árbol familiar se va ampliando. Por ejemplo, este año 2011 se incorpora a la familia el recién nacido Dart, un lenguaje de programación web propuesto por Google para el desarrollo de aplicaciones web.
Para tener toda la perspectiva, os dejamos con algunos enlaces a timelines que muestran la evolución histórica de los lenguajes de programación y la genealogía de cada lenguaje:

  • El timeline original (actualizado hasta 2011, 13 páginas A4)
  • Un póster sobre la historia de los lenguajes de programación de la editorial O’Reilly (actualizado hasta 2004, póster tamaño 39″ x 17″)
  • Un diagrama de tamaño más modesto (actualizado hasta 1995)

EDITADO: No os perdáis los comentarios de esta entrada, ¡hay enlaces muy interesantes sobre el lenguaje de programación más antiguo!

(Visited 419 times, 2 visits today)
Autor / Autora
Robert Clarisó Viladrosa
Comentarios
Víctor30 noviembre, 2011 a las 1:00 pm

¡Arriba el COBOL! Almenos hasta que no os de por enseñarlo en universidades y ciclos. Que eso es lo que pasa con Java y otros OOP y que les pregunten cuanto cobran…
Eso sí, lo del Visual Cobol había oído hablar pero buscando en Softonic no había encontrado nada. Me tendré que actualizar por si puedo ser capaz de hacer programas COBOL sin necesidad de tener un trabajo (ahora difícil si no tienes tu propio mainframe o conexión al del trabajo).

Responder
LinuxUtil1 diciembre, 2011 a las 12:26 pm

Fortran no es el lenguaje más antiguo, de hecho IBM ya desarrollo previamente un antecesor denominado SpeedCoding. Además tambien existio otro lenguaje denominado IPL diseñado al mismo tiempo que Fortran, ademas de diferentes precursores experimentales.
Ademas de existir una serie de lenguajes tipicamente denominados JCL (Job Control Languages) que se utilizaban para la programación de sistemas, control de spoolers, etc… ya en tiempo de tarjetas perforadas y codigo maquina.
Aún así en aquellos tiempos pensar en «alto nivel» es discutible, ya el lenguaje ensamblador se considero de «alto nivel» en su momento. Alto nivel es una concepción que varia con el tiempo.

Responder
    LinuxUtil1 diciembre, 2011 a las 12:39 pm

    Una buena referencia para examinar la genealogia y aparición de los diferentes lenguajes, así como sus relaciones es:
    HOPL: an interactive Roster of Programming Languages
    http://hopl.murdoch.edu.au/
    y un esquema genealogico:
    http://hopl.murdoch.edu.au/images/genealogies/tester-endo.pdf

    Responder
    LinuxUtil1 diciembre, 2011 a las 12:45 pm

    De hecho, el real primer lenguaje de alto nivel que se conoce fue Plantalkul, incluso previo a la formulación de Von Neumann de la computación moderna, fue desarrollado en 1943-45:
    ver http://en.wikipedia.org/wiki/Plankalk%C3%BCl

    Responder
    LinuxUtil1 diciembre, 2011 a las 12:48 pm

    Y por ultimo, recogiendo las primeras aportaciones algoritmicas de Charles Baggage y Ada Lovelace:
    http://en.wikipedia.org/wiki/Timeline_of_programming_languages

    Responder
      robert2 diciembre, 2011 a las 11:14 am

      !Gracias por los enlaces! He añadido un comentario a la entrada para que no pasen desapercibidos.
      En esta entrada he mencionado lenguajes de programación con las siguientes características:
      – De alto nivel (entendido como «en algún momento han permitido generar código para diferentes plataformas»)
      – De propósito general (no orientados a tareas específicas, sino que permiten la resolución de cualquier tipo de problema)
      – Con un compilador disponible (por ejemplo, Plankalkul no llegó a tener compilador, no fue hasta el año 2000 que se desarrolló uno)
      Ciertamente, ha habido lenguajes anteriores para plataformas concretas («ensambladores de alto nivel»), o con un propósito específico, o propuestas de lenguajes que no tenían un compilador desarrollado. Toda la información aportada en los comentarios es correcta y ayuda mucho a hacerse una imagen de los origenes de los lenguajes de programación. ¡Gracias!

      Responder
Julià Minguillón2 diciembre, 2011 a las 10:31 am

genial esta serie sobre los lenguajes de programación
aquí teneis un gráfico sobre las relaciones entre lenguajes

Responder
    robert2 diciembre, 2011 a las 11:17 am

    ¡Muchas gracias Julià!
    Genial el gráfico y los comentarios sobre cada lenguaje…

    Responder
linux man11 marzo, 2013 a las 12:10 am

Excelente serie, gracias

Responder
delete history23 agosto, 2014 a las 7:47 pm

Muy interesante tanto el artículo como las aportaciones.

Responder
Deja un comentario