1. Historia del software
El primero se refiere al desarrollo de un algoritmo pensado
para una máquina en específico, como era en su época la
‘máquina analítica’ a mediados del siglo XIX. Esta máquina
al final no se llegó a realizar y el algoritmo no se puso en
práctica. La programadora de la primera ‘proto pieza’ de
software fue Ada Lovelace, la primera mujer programadora
de la historia.
El segundo suceso que se dio fue un trabajo de Alan Turing
que se basaba en números computables, por lo que
estaríamos ante la primera teoría del software de todos
los tiempos. Esto ocurrió poco antes de mediados del siglo
XX.
Sintetizando, se puede afirmar que el software es un
término que lleva relativamente pocos años en uso, por lo
que es una ciencia que todavía tiene mucho camino por
recorrer.
Etapas históricas del software
Podemos dividir la historia del software en las siguientes
etapas partiendo desde su origen hasta su situación en el
siglo XXI:
Etapa anterior a 1950: Son décadas en las que se sientan las
primeras bases y pinceladas del software. Como se ha
mencionado en el epígrafe anterior, Ada Lovelace y Alan Turing
son los precursores del concepto ‘software’.
Década de los 50’ 60’ y 70’: En estos años el software pasó de
ser un concepto teórico y abstracto a ser reconocido como un
factor indispensable para la invención y desarrollo de
dispositivos o máquinas. Se acuña por primera vez en una
conferencia de la OTAN el término ‘ingeniería de software’. Esto
es la primera muestra de una de las ciencias y profesiones más
estudiadas y demandadas correspondientemente. En aquella
época los lenguajes que más se utilizaban
eran COBOL y FORTRAN.
2. Década de los 80’ y 90’: En estas dos décadas se identifica un
problema, y es que la gran demanda superaba la oferta de
profesionales en la industria. Además, los profesionales no
podían abarcar tantas áreas de conocimiento sin
especialización previa. Surgieron los primeros colapsos en
proyectos y trabajos de complejidad avanzada. Sin ir más lejos,
en esta época se lanzan Windows en 1985 y Linux en 1992.
Además, la aparición del lenguaje HTML es gracias al auge del
Word Wide Web (WWW), uno de los principales hitos de la era
digital.
Cambios de Software a lo Largo de los
Años
Con el paso de los años el software se ha vuelto cada
vez más complejo. En los primeros días, los comandos
se escribían y el software solo aceptaba la entrada
por medio del teclado. Debido a que los disquetes solo
podían contener una cantidad muy pequeña de datos
y la mayoría de las computadoras personales no
tenían un disco duro real, el software tenía que ser
muy simple. Eso cambió cuando el hardware de la
computadora evolucionó.
Cuando los discos duros se hicieron populares en las
computadoras personales, el software se instalaba en
la computadora antes de que esta saliera del
3. distribuidor. Esto permitió a las compañías de
computadoras comenzar a vincular los sistemas
operativos con el software en las computadoras de
una manera que no habían podido antes. También
permitió cargar piezas de software más grandes en
las computadoras sin enviar al cliente una pila de
discos. Ahora los usuarios podían cambiar entre
diferentes programas sin cambiar los discos, algo que
hace que la computadora funcione mucho más eficaz.
Cuando los CD-ROM se hicieron populares, se podían
distribuir piezas de software más grandes de manera
rápida, fácil y bastante económica. Los CD podían
contener mucha más información que los disquetes, y
los programas que alguna vez se distribuyeron en una
docena de disquetes cabían en un CD. Rápidamente
los CD se convirtieron en un medio de distribución de
software y, a mediados de la década de 2000, las
unidades de disquete ya no eran parte de una
computadora estándar. La creación de DVD, que
contienen incluso más que CD, ha permitido colocar
paquetes de programas como Microsoft Office Suite
en un solo disco.
Sin embargo, gracias a Internet, ahora incluso los
DVD se están volviendo obsoletos. Muchas personas
compran y descargan su software directamente, sin
necesidad de ningún tipo de medio físico. Esto ayuda
a reducir el costo porque no es necesario fabricar ni
enviar nada al consumidor.
Siglo XXI: Desde principios del siglo XXI se han dado grandes
avances en todos los campos que abarca el software. Desde la
aparición de los revolucionarios smartphone, con un software
integrado que hace que un único dispositivo pueda realizar
tareas en las que antes se necesitaba un ordenador. Por otra
parte, también se han llegado a niveles de desarrollo en
tecnologías aún por investigar y desarrollar como lo son la IA o
4. las ya tan conocidas criptomonedas. Ejemplos de estos avances
son los asistentes de voz de grandes compañías como Apple,
Microsoft o Amazon, los cuales pueden imitar el
comportamiento humano. A estos efectos, se dan multitud de
lenguajes de programación en los que el objetivo del proyecto
determina qué lenguaje se debe utilizar y por ende, qué tipo
profesional en específico se necesita. Algunos lenguajes que
podemos mencionar son SWIFT (para aplicaciones en entornos
iOS), JavaScript (para entornos web) o PHP (destinado a tareas
y programación de servidores o máquinas físicas).
Como se ha podido observar la historia del software no es
excesivamente larga pero sí muy intensa, ya que surgen
muchas evoluciones y ramificaciones de esta a lo largo de
su recorrido histórico. Prueba de ello son los numerosos
lenguajes de programación y las decenas de miles de
proyectos que se han realizado en base a estos.
En los primeros días de los ordenadores, los sistemas
operativos, el software que controla las aplicaciones y recursos
del sistema, no existían. Tampoco existía el software
propiamente dicho. Los ordenadores se programaban
conectando manualmente circuitos de cálculo y cambiando el
cableado para cada nuevo cálculo a realizar. Esto cambió en
1945, cuando John Van Neumann inventó un ordenador que
almacenaba en memoria instrucciones que indicaban a las
unidades de cálculo lo que debía hacer. El 21 de junio de 1948
se ejecutó el primer programa en una máquina llamada Baby en
la Universidad de Manchester... y nació el software.
Sin embargo, los ordenadores seguían ejecutando un único
programa cada vez, y los operadores aún tenían que cargar
cada programa y sus datos correspondientes en memoria desde
cintas o tarjetas perforadas, ejecutar el programa y después
repetir todo el proceso para el programa siguiente. Y aunque
esto resultaba más rápido que cambiar el cableado, se seguía
perdiendo una gran cantidad de tiempo de ordenador.
A comienzos de los años cincuenta, las empresas que utilizaban
ordenadores estaban buscando formas de resolver ese
problema.
En 1955, algunos programadores en el Centro de
Investigaciones de General Motors encontraronuna solución
para su ordenador IBM 701: un programa monitor de procesos
5. Bach que permitía a los operadores incluir una serie de trabajos
en una única cinta magnética. Éste fue el primer paso hacia un
sistema operativo en toda escala. Los fabricantes de
ordenadores comenzaron pronto a ofrecer sus propios
monitores de proceso Bach. A comienzos de los años sesenta,
comenzaron a añadir las que se convertirían en funciones de
sistema operativo críticas. El Burroughs 5000 Master Control
Programa ofrecía memoria virtual y la capacidad de ejecutar
varios procesos simultáneamente. El sistema EXEC 1 de Unival
asignaba memoria, planificaba el tiempo de CPU y atendía a las
peticiones de entrada/salida de datos. Y el OS/360 de IBM
permitía que un mismo software funcionara en una variedad de
máquinas diferentes.
En 1963, un equipo del Massachusetts Instituto o Tecnología
dirigido por Fernando Corbato desarrolló el sistema CTSS
(Compatible Time Schering Sistema), que fue el primer sistema
operativo práctico que permitió a varios usuarios ejecutar
varios programas diferentes desde terminales. Una parte
importante de ese equipo se trasladó pronto a trabajar en un
sistema operativo bastante más ambicioso: Multicas, un
proyecto conjunto con General Electric y los Laboratorios Bell
de AT&T que ofrecía un sistema de ficheros de estructura en
árbol, una estructura por capas o niveles y muchas otras
funciones OS modernas.
Aunque AT&T se apartó del proyecto multicas en 1969, sus
programadoresKen Thompson y Dennis Ritchie comenzaron a
desarrollar su propia versión reducida de multicas, a la que
llamaron Unix. Unix era fácil de trasladar a nuevas
arquitecturas de ordenador y adquirió popularidad en las
universidades porque AT&T puso la codificación fuente de Unix
a disposición de estudiantes, para que pudieran estudiarla. Para
los años ochenta, Unix había dado lugar a una generación de
estaciones de trabajo y había desplazado a muchos sistemas
operativos ya existentes. Entretanto, a mitad de los años
setenta comenzaron a llegar los primeros ordenadores
personales de escritorio, con sistemas operativos que eran
poco más que los monitores de proceso de veinte años antes.
Cuando IBM comenzó a vender Pc en 1981, ofreció varios
sistemas operativos, pero el más económico y popular fue el PC
DOS, suministrado por una pequeña compañía conocida como
Microsoft.
6. Y llegó Microsoft... y luego Linux
Microsoft pronto dominó el mercado de sistemas operativos
para Pc, utilizando funciones de sus competidores, como la
interfaz gráfica de usuario Windows que tomó del ordenador
Macintosh de Apple Computar. Microsoft ofreció también el
sistema Xenix, la versión más popular de Unix para Pc, y
colaboró con IBM para desarrollar un sistema multitarea para
Pc, el OS/2, en 1982. Sin embargo, la colaboración de IBM y
Microsoft terminó, y esta última fusionó su producto OS/2 con
su popular sistema Windows para crear Windows NT en 1993.
Por su parte, el estudiante finlandés Linus Torvalds no estaba
intentando competir con Microsoft en 1991 cuando comenzó a
trabajar en un clónico de Unix al que llamó Linux. Después de
terminar una primera versión, Torvalds pidió ayuda a otros
programadoresen Internet y, para 1994, Linux era un sistema
operativo gratis en toda escala. En 1999, funcionaba en más
servidores web que los sistemas operativos de Microsoft y era
el competidor más importante de esta última. Hoy en día, Linux
funciona en todo tipo de dispositivos, desde teléfonos móviles a
mainframes, mientras que las versiones de Windows abarcan
casi la misma gama de productos. La forma en que se desarrolle
la competencia y la interoperabilidad entre Windows y Linux
podría determinar el futuro de la informática de empresa.
Y ahora, la historia sigue