A principios del siglo XIX se empiezan a desarrollar distintos tipos de maquinaria automática. El método empleado inicialmente para programar este tipo de maquinaria consistía en el uso de tarjetas perforadas (telar de Jacquard, 1801).
Más adelante en este siglo Ada Lovelace realiza distintos trabajos sobre notas de Charles BaBBage y especifica un método para calcular números de Bernoulli con una máquina propuesta por este último, el “Motor Analítico”. Éste algoritmo aplicado sobre una máquina se aproxima al concepto de programa de ordenador.
A finales de este siglo se populariza el uso de tarjetas perforadas para almacenar datos, empleandose a partir de 1890 en la realización de censos.
A mediados del siglo XX con los avances en electrónica, se produce un rápido desarrollo de los lenguajes de programación.
En la década de los 40 se emplea principalmente código máquina (ensamblador) en producción, aunque se comienza a investigar las bases teóricas que posteriormente darán como resultado los lenguajes de alto nivel.
En los años 50 y 60 aparecen distintos lenguajes compilados e interpretados. Algunos de ellos aún empleados en la actualidad (normalmente mejorados y actualizados respecto a sus versiones iniciales).
En los años 70 y 80 el una vez superada la fase de crear lenguajes que mejorasen la productividad del programador, se inicia la búsqueda de paradigmas de programación que permitan abordar desarrollos más complejos; como la programación orientada a objetos y lenguajes especializados en ciertos campos (facilidad de acceso a la máquina física para creación de drivers y sistemas operativos, mayor abstracción para permitir portabilidad, desarrollo rápido de aplicaciones y scripts …).
A finales de los años 80 y 90 se mejora la modularidad, gestión de memoria y eficiencia, además de continuar el desarrollo de lenguajes y entornos de desarrollo orientados al desarrollo de aplicaciones gráficas.
En el siglo XXI el mayor desarrollo se está produciendo en la creación de lenguajes que permitan el desarrollo de aplicaciones distribuidas y componentes capaces de comunicarse con otros sistemas o aplicaciones a través de interfaces. También se ha avanzado en el desarrollo de lenguajes que permitan multiples hilos de ejecución y procesamiento de cantidades masivas de datos en paralelo aprovechando características de las GPU.
Entre los lenguajes más destacados podemos citar cronológicamente:
- 1954 FORTRAN
- 1958 LISP
- 1958 ALGOL
- 1959 COBOL
- 1962 Simula
- 1964 BASIC
- 1968 Logo
- 1970 Pascal
- 1972 C
- 1972 Smalltalk
- 1972 Prolog
- 1973 ML
- 1978 SQL
- 1980 C++
- 1983 Ada
- 1985 Eiffel
- 1987 Perl
- 1988 Tcl
- 1990 Haskell
- 1991 Python
- 1991 VisualBasic
- 1993 Ruby
- 1995 Java
- 1995 Delphi
- 1995 JavaScrip
- 1995 PHP
- 2001 C#
- 2001 Visual Basic .NET
- 2002 F#