Historia de los lenguajes de programación
Antes
de 0
Los primeros lenguajes de
programación preceden a la computadora moderna. En un inicio los lenguajes eran
códigos.
La máquina del telar de
Jacquard, creada en 1801, utilizaba los orificios en tarjetas perforadas para
representar los movimientos de un brazo de la máquina de tejer, con el objetivo
de generar patrones decorativos automáticamente.
Durante un período de nueve
meses entre 1842 y 1843, Ada Lovelace tradujo las memorias del matemático
italiano Luigi Menabrea acerca de la nueva máquina propuesta por Charles
Babbage, la Máquina Analítica. Con estos escritos, ella añadió unas notas en
las cuales especificaba en detalle un método para calcular los números de
Bernoulli con esta máquina, el cual es reconocido por muchos historiadores como
el primer programa de computadora del mundo.
Herman Hollerith se percató
de que podía codificar la información en tarjetas perforadas cuando observó a
los conductores de trenes codificar la apariencia de los tickets del tren con
la posición de los agujeros perforados en estos. En 1890 Hollerith codificó los
datos del censo en tarjetas perforadas.
Los
años 0
En la década de 1940 fueron
creadas las primeras computadoras modernas, con alimentación eléctrica. La
velocidad y capacidad de memoria limitadas forzaron a los programadores a
escribir programas, en lenguaje ensamblador muy afinados. Finalmente se dieron
cuenta de que la programación en lenguaje ensamblador requería de un gran
esfuerzo intelectual y era muy propensa a errores.
En 1948, Konrad Zuse publicó
un artículo acerca de su lenguaje de programación Plankalkül. Sin embargo, no
fue implementado en su vida y sus contribuciones fueron aisladas de otros
desarrollos.
·
Entre algunos lenguajes importantes que
fueron desarrollados en este período se encuentran:
1. 1943
- Plankalkül (Konrad Zuse), diseñado, pero sin implementar durante medio siglo
2. 1943
- el sistema de codificación ENIAC.
3. 1949
- 1954 -- una serie de conjuntos de instrucciones nemotécnicas, como la de
ENIAC, comenzando en 1949 con C-10 para BINAC (que luego evolucionaría en
UNIVAC). Cada conjunto de instrucciones estaba destinado a un fabricante
específico.
Las
décadas de 1950 y 1960
En los cincuenta, los tres
primeros lenguajes de programación modernos, cuyos descendientes aún continúan
siendo utilizados, son:
1. FORTRAN
(1955), creado por John Backus et al.;
2. LISP
(1958), creado por John McCarthy et al.;
3. COBOL
(1959), creado por el Short Range Committee, altamente influenciado por Grace
Hopper.
Otro hito a finales de 1950
fue la publicación, por un comité Americano y Europeo de científicos de la
computación, de un nuevo “lenguaje para algoritmos”; el Reporte de ALGOL 60
("ALGOrithmic Language"). Este reporte consolidó muchas ideas que
estaban circulando en aquel entonces, y proporcionó dos innovaciones
importantes para los lenguajes de programación:
Estructuras de bloques
anidadas: las secuencias de código y las declaraciones asociadas se pueden
agrupar en bloques sin tener que pertenecer explícitamente a procedimientos
separados; Ámbito léxico: un bloque puede tener sus propias variables,
procedimientos y funciones, invisible al código fuera de dicho bloque, por
ejemplo, ocultamiento de información. Otra innovación, relacionada con esto,
fue cómo el lenguaje fue descrito:
Una notación matemática
exacta, Backus-Naur Form (BNF), fue utilizada para describir la sintaxis del
lenguaje. Todos los subsecuentes lenguajes de programación han utilizado una
variante de BNF para describir la porción libre del contexto de su sintaxis.
1968-1979:
estableciendo paradigmas fundamentales
El período comprendido entre
finales de 1960 y finales de 1970 trajo un gran florecimiento de lenguajes de
programación. La mayoría de los paradigmas de lenguajes de programación más
importantes y actualmente en uso se inventaron en este período:
Simula, inventado en la
década de 1960 por Nygaard y Dahl como un súper conjunto de Algol 60, fue el
primer lenguaje diseñado para apoyar la programación orientada a objetos.
C, en principio un lenguaje
de programación de sistemas, fue desarrollado por Dennis Ritchie y Ken Thompson
en los Laboratorios Bell entre 1969 y 1973. Smalltalk (mediados de los 70)
proporcionaron un completo diseño de un lenguaje orientado a objetos. Prolog,
diseñado en 1972 por Colmerauer, Roussel y Kowalski, fue el primer lenguaje de
programación lógica. ML construyó un sistema de tipos polimórfico (inventado
por Robin Milner en 1973) en el tope de Lisp, pionero en los lenguajes
funcionales de programación con tipado estático. Cada uno de estos lenguajes
generó toda una familia de descendientes, y los lenguajes más modernos cuentan
al menos uno de ellos en su ascendencia.
Algunos lenguajes
importantes que se desarrollaron en este período fueron:
·
1968 - Logo
·
1969 - B (precursor C)
·
1970 - Pascal
·
1970 - Forth
·
1972 - C
·
1972 - Smalltalk
·
1972 - Prolog
·
1973 - ML
·
1975 - Scheme
La
década de 1980: consolidación, módulos, rendimiento
La década de 1980 fueron
años de consolidación relativa en los lenguajes imperativos. En vez de inventar
nuevos paradigmas, se comenzó a trabajar a partir de las ideas inventadas en la
década anterior. C++ combinaba la programación orientada a objetos y la
programación de sistemas. El gobierno de Estados Unidos estandarizó Ada, un
lenguaje de programación de sistemas destinado a ser utilizado por contratistas
de defensa. En Japón y en otras partes, se gastaron enormes sumas investigando
los llamados lenguajes de programación de quinta generación que incorporaban
construcciones de la programación lógica. La comunidad de los lenguajes
funcionales llevaron a cabo la estandarización de ML y Lisp. La investigación
en Miranda, un lenguaje funcional, con evaluación perezosa, comenzó a tomar
fuerza en esta década.
Una nueva tendencia
importante en el diseño de lenguajes era un mayor enfoque en la programación de
sistemas a gran escala a través del uso de módulos, una organización a gran
escala de unidades de código. Modula, Ada, y ML desarrollaron sistemas de
módulos notables en la década de 1980. Los sistemas de módulos eran
relacionados con frecuencia con construcciones de programación genéricas, que
serían, en esencia, módulos parametrizados (véase también polimorfismo en
programación orientada a objetos).
Algunos lenguajes
importantes que se desarrollaron en este período son:
·
1980 - C++ (C con clases, el nombre cambió en
julio de 1983)
·
1983
- Ada
·
1984
- Common Lisp
·
1984
- MATLAB
·
1985
- Eiffel
·
1986
- Objective-C
·
1986 - Erlang
·
1987 - Perl
·
1988 - Tcl
·
1988 - Mathematica
·
1989 - FL (Backus);
La
década de 1990: la era de Internet
El rápido crecimiento de
Internet en la década de 1990 fue el siguiente gran acontecimiento histórico
para los lenguajes de programación. Con la apertura de una plataforma
totalmente nueva para los sistemas informáticos, Internet creó una oportunidad
adoptar nuevos lenguajes. En particular, el lenguaje de programación Java se
hizo popular debido a su pronta integración con el navegador web Netscape
Navigator, y varios lenguajes de scripting alcanzaron un amplio uso en el
desarrollo de aplicaciones personalizadas para servidores web. La década de
1990 no vio ninguna novedad fundamental en los lenguajes imperativos, pero sí
mucha recombinación y la maduración de viejas ideas. Esta era comenzó la
difusión de los lenguajes funcionales. Una filosofía de conducción grande era
la productividad del programador. Surgieron muchos lenguajes de “aplicaciones
de desarrollo rápido” (RAD), los cuales usualmente venían con un IDE,
recolector de basura, y eran descendientes de lenguajes anteriores. Todos estos
lenguajes eran orientados a objeto. Estos incluían Object Pascal, Visual Basic
y Java. Java, en particular, recibió mucha atención.
Algunos lenguajes
importantes que se desarrollaron en este período son:
·
1990 - Haskell
·
1991 - Python
·
1991 - Visual Basic
·
1991 - HTML (lenguaje de marcado de
hipertexto)
·
1993 - Ruby
·
1993 - Lua
·
1994 - CLOS (parte del ANSI Common Lisp)
·
1995
- Java
·
1995
- Delphi (Object Pascal)
·
1995
- JavaScript
·
1995
- PHP
·
1996 - WebDNA
·
1997 - Rebol
· 1999 - D

Comentarios
Publicar un comentario