Software: Fue una mujer
Una mujer. Fue Ada Augusta Byron (1815-1852), condesa de Lovelace, quien ideó el primer lenguaje de programación de la historia.
Antes de esta revolucionaria idea, no existía el concepto de software. Tener un lenguaje permitió distinguir entre la parte física o hardware de la computadora y el programa o software.
Un antes y un después
Antes de la aparición del software (sets de instrucciones y los lenguajes de programación), las computadoras se programaban modificando manualmente el hardware. Sin lugar a dudas, modificar físicamente el hardware para cambiar el programa, llevaba mucho tiempo y además era muy propenso a errores.
Arquitecturas modernas
Pero no fué solo la invención del concepto de softwre la que permitió el desarrollo de las computadoras modernas.
Por un lado, Geroge Boole (1815-1864) desarrolló las Leyes del pensamiento matemático, donde por primera vez se habla del álgebra que puede tomar dos valores, 0 y 1, (que hoy conocemos como Álgebra Booleana). Boole describió además las tres funciones elementales, AND, OR y NOT, las cuales serían la base para la construcción de compuertas lógicas.
Por otra parte, Joseph Jackard (1752-1834) había ideado un telar que permitia tejer patrones basado en tarjetas perforadas. Fué Herman Hollerith (1860-1929) quien pensando en estas tarjetas perforadas, inventó una máquina que permitió relizar el censo de la población de Estados Unidos alrededor de 1890. Fue debido este trabajo que en el año 1929 se funda la empresa International Business Machines Corporation (IBM).
Pero estas invenciones seguían siendo elementos aislados y las computadoras seguían siendo difíciles de programar.
Fue John von Neumann, quien inspirado en los telares de tarjetas perforadas, introdujo el concepto de escribir un programa en dichas tarjetas para ejecutar cálculos matemáticos con una computadora.
Más tarde, von Neumann pensó que un algoritmo podía dividirse en un conjunto de operaciones elementales (lo que hoy llamamos instrucciones). Dicho programa, sería almacenado en una memoria central, compartida con la memoria para los datos. De esta forma, la manipulación de las instrucciones como si fueran datos, daría a la computadora la flexibilidad de poder reprogramarse a si misma y de manera sencilla.
Estas ideas de von Neumann dieron como resultado lo que hoy se conoce como la Arquitectura von Neumann, en la cual están basadas la mayoría de las computadoras modernas.