La distinción entre la arquitectura de una máquina y el conjunto de programas que esta máquina puede ejecutar, se manifiesta ya desde los primeros trabajos de Alan Turing y su formalización matemática de un dispositivo polivalente de cálculo (la máquina de Turing). Esta división también estuvo presente anteriormente en la Máquina Analítica de Charles Babbage. A pesar de no ser construida por motivos tecnológicos, Ada Byron diseñó para ella el que fue el primer programa publicado de la historia. Estas dos caras de la misma moneda las conocemos hoy como hardware y software.
SOFTWARE
Aunque esta distinción parece perderse en el diseño del *ENIAC, uno de los primeros computadores electrónicos, construido por los EE.UU. durante la Segunda Guerra Mundial: la programación se realizaba girando conmutadores y conectando directamente los diferentes elementos del computador, dando como resultado programas muy complicados y próximos al hardware. Hay que destacar el trabajo de las ENIAC women como programadoras de este computador.
Precisamente para reducir el esfuerzo de programación, Kathleen Booth desarrolló en 1950 el primer lenguaje ensamblador en el Birkbeck College de Londres. De esta década son los primeros programas que, reuniendo trabajos que se ejecutarán por lotes, permitían aumentar la productividad. La evolución de estos programas que gestionan el acceso a los servicios que ofrece el hardware, conducirá con el tiempo al sistema operativo moderno.
Precisamente para reducir el esfuerzo de programación, Kathleen Booth desarrolló en 1950 el primer lenguaje ensamblador en el Birkbeck College de Londres. De esta década son los primeros programas que, reuniendo trabajos que se ejecutarán por lotes, permitían aumentar la productividad. La evolución de estos programas que gestionan el acceso a los servicios que ofrece el hardware, conducirá con el tiempo al sistema operativo moderno.
En la década de 1960 apareció lo OS/360, un sistema operativo de, inicialmente, 6 KB que evolucionó desde el procesamiento por lotes a la *multitarea, e incluía un lenguaje de control de procesos. A finales de esta década, John Backus desarrolló un compilador para FORTRAN, el primer lenguaje de programación moderno. FORTRAN surge con el fin de reducir el esfuerzo de programación de la IBM 704 y es todavía utilizado en aplicaciones de computación científica. UNIX, base de la gran mayoría de sistemas operativos actuales, apareció en 1969, el mismo año en que llegamos a la Luna.
En la década de los 70, las empresas informáticas desarrollaban tanto el hardware como las aplicaciones, y los dos se distribuían conjuntamente. Diferentes procesos judiciales en los EE.UU. determinaron ilegal esta manera de distribución, que forzaba al usuario a comprar o alquilar el hardware en el momento de la compra de un determinado software. Fue así como las empresas de informática fueron obligadas a licenciar de forma separada estos dos productos.
A finales de los años 70 aparecen las primeras computadoras suficientes económicas para llegar a los hogares. Esto impulsó una industria de desarrollo de aplicaciones independiente de las empresas que construían y comercializaban el hardware. Las aplicaciones se distribuían publicando su código en revistas periódicas, lo cual forzaba al usuario a introducirlo en sus computadoras, o bien en cintas magnéticas similares a las empleadas en la reproducción de música y que eran de uso común.
En los años 80 diferentes factores implicaron cambios profundos: por un lado la aparición y éxito de ventas del ordenador personal de IBM (y del sistema operativo MS-DOS) y, por otro, la aparición de versiones clónicas, más económicas, de la IBM PC que podían ejecutar el mismo sistema operativo y las mismas aplicaciones. En conjunto, esto provocó la explosión en el número de computadoras y un incremento de la demanda de muchos tipos de aplicaciones. Por ejemplo, WordPerfect para el procesamiento de textos, hojas de cálculo como Lotus1-2-3, bases de datos como dBase o CorelDraw para diseño gráfico.
La facilidad de copia y los nuevos y económicos apoyos de almacenamiento (discos flexibles principalmente), permitieron la copia no autorizada del software y su rápida difusión. De esta época data también la proliferación de libros y manuales sobre aplicaciones desatada de la documentación oficial.
De los años 80 es también el germen del Software Libre. El proyecto GNU, iniciado en 1983 por Richard Stallman, buscaba obtener un sistema operativo basado en UNIX, compatible con él, pero el código del cual fuente fuera público y gratuito. El software libre hoy no se limita al sistema operativo Linux e incluye aplicaciones como el navegador web Firefox o la suite ofimática LibreOffice.
La aparición de Internet en los años 90 modificó el escenario mundial y permitió la distribución de información codificada de manera digital, la más eficiente y económica de la historia. La vida del CD-ROM como apoyo de almacenamiento estaba sentenciada. El incremento del ancho de banda de la red y el advenimiento a principios del siglo XXI de dispositivos como tabletas y móviles, ha conducido a la distribución y actualización de software, incluso para los computadores tradicionales, a través de tiendas de aplicaciones vinculadas a un determinado sistema operativo.