Articulo de referencia

Historia del software

El software es un conjunto de instrucciones programadas que se almacenan en la memoria de las computadoras digitales de programa almacenado para su ejecución por el procesador. ...

El software es un conjunto de instrucciones programadas que se almacenan en la memoria de las computadoras digitales de programa almacenado para su ejecución por el procesador. El software es un desarrollo reciente en la historia de la humanidad y es fundamental para la Era de la Información .

Los programas de Ada Lovelace para la máquina analítica de Charles Babbage en el siglo XIX suelen considerarse los fundadores de la disciplina. Sin embargo, los esfuerzos de la matemática se limitaron a la teoría, ya que la tecnología de la época de Lovelace y Babbage resultó insuficiente para construir su ordenador. A Alan Turing se le atribuye ser el primero en desarrollar una teoría del software en 1935, lo que dio origen a los dos campos académicos de la informática y la ingeniería de software .

La primera generación de software para las primeras computadoras digitales con programas almacenados, a finales de la década de 1940, tenía sus instrucciones escritas directamente en código binario , generalmente para computadoras centrales . Posteriormente, el desarrollo de lenguajes de programación modernos , junto con el avance de la computadora personal, amplió enormemente el alcance y la variedad del software disponible, comenzando con el lenguaje ensamblador y continuando con los paradigmas de programación funcional y orientada a objetos .

Antes de las computadoras digitales con programas almacenados

Orígenes de la informática

El concepto de computación se remonta a la antigüedad, con dispositivos como el ábaco , el mecanismo de Anticitera , los astrolabios , los relojes astronómicos mecánicos y las calculadoras mecánicas . [ 1 ] El mecanismo de Anticitera es un ejemplo de un dispositivo astronómico mecánico antiguo de gran complejidad. [ 2 ]

Sin embargo, estos dispositivos eran puramente hardware y carecían de software; su capacidad de procesamiento estaba directamente ligada a su forma y diseño específicos.

El software requiere el concepto de un procesador de propósito general, lo que ahora se describe como una máquina de Turing , así como memoria de computadora en la que se pueden almacenar, iniciar y detener individualmente conjuntos reutilizables de rutinas y funciones matemáticas que componen los programas, y solo ha aparecido recientemente en la historia de la humanidad.

El primer algoritmo informático conocido fue escrito por Ada Lovelace en el siglo XIX para la máquina analítica , con el fin de traducir el trabajo de Luigi Menabrea sobre los números de Bernoulli a instrucciones para máquinas. [ 3 ] Sin embargo, esto se quedó solo en la teoría: el estado menos avanzado de la ingeniería en la época de estos dos matemáticos resultó insuficiente para construir la máquina analítica.

La primera teoría moderna del software fue propuesta por Alan Turing en su ensayo de 1935, Números computables con una aplicación al problema de decisión (Entscheidungsproblem) . [ 4 ]

Esto condujo finalmente a la creación de los campos académicos gemelos de la informática y la ingeniería de software , que estudian el software y su creación. La informática es más teórica (el ensayo de Turing es un ejemplo de informática), mientras que la ingeniería de software se centra en aspectos más prácticos.

Sin embargo, antes de 1946, el software tal como lo entendemos ahora —programas almacenados en la memoria de computadoras digitales de programa almacenado— aún no existía. Los primeros dispositivos de computación electrónica se recableaban para "reprogramarlos". La ENIAC , una de las primeras computadoras electrónicas, fue programada en gran parte por mujeres que habían trabajado previamente como " computadoras humanas" . [ 5 ] [ 6 ] Los ingenieros les daban a las programadoras los planos del cableado de la ENIAC y esperaban que ellas descubrieran cómo programar la máquina. [ 7 ] Las mujeres que trabajaban como programadoras prepararon la ENIAC para su primera presentación pública, conectando los paneles de conexiones para las demostraciones. [ 8 ] [ 9 ] [ 10 ] Kathleen Booth desarrolló el lenguaje ensamblador en 1950 para facilitar la programación de las computadoras en las que trabajaba en Birkbeck College . [ 11 ]  

Grace Hopper y UNIVAC

Grace Hopper trabajó como una de las primeras programadoras de la Harvard Mark I. [ 12 ] Posteriormente creó un manual de 500 páginas para la computadora. [ 13 ] A menudo se le atribuye erróneamente a Hopper la creación de los términos "bug" y " debugging ", cuando encontró una polilla en la Mark II, causando un mal funcionamiento; [ 14 ] sin embargo, el término ya se utilizaba cuando encontró la polilla. [ 14 ] Hopper desarrolló el primer compilador y llevó su idea de trabajar en las computadoras Mark a trabajar en UNIVAC en la década de 1950. [ 15 ] Hopper también desarrolló el lenguaje de programación FLOW-MATIC para programar la UNIVAC. [ 14 ] Frances E. Holberton , también trabajando en UNIVAC, desarrolló un código , C-10, que permitía a los programadores usar entradas de teclado y creó el Generador de Ordenación y Combinación en 1951. [ 16 ] [ 17 ] Adele Mildred Koss y Hopper también crearon el precursor de un generador de informes . [ 16 ]

Los inicios del software informático (1948-1979)

En su manuscrito "Una teoría matemática de la comunicación", Claude Shannon (1916-2001) esbozó cómo implementar la lógica binaria para programar una computadora. Posteriormente, los primeros programadores utilizaron código binario para instruir a las computadoras en diversas tareas. Sin embargo, el proceso era muy laborioso. Los programadores debían proporcionar largas cadenas de código binario para indicar a la computadora qué tipo de datos debía almacenar. El código y los datos debían cargarse en las computadoras mediante diversos mecanismos tediosos, como accionar interruptores o perforar tarjetas en posiciones predefinidas e insertar estas tarjetas perforadas en la computadora. Con estos métodos, si se cometía un error, era necesario volver a cargar todo el programa desde el principio.

La primera vez que una computadora con programa almacenado guardó un programa en su memoria electrónica y lo ejecutó con éxito fue a las 11:00 del 21 de junio de 1948, en la Universidad de Manchester, en la computadora Manchester Baby . Fue escrita por Tom Kilburn y calculaba el factor más alto del entero 2^18 (262.144) . Partiendo de un divisor de prueba grande, realizaba una división de 262.144 mediante restas repetidas y luego comprobaba si el resto era cero. Si no lo era, decrementaba el divisor de prueba en uno y repetía el proceso. Google publicó un homenaje a la Manchester Baby, celebrándola como el "nacimiento del software" .

FORTRAN fue desarrollado por un equipo liderado por John Backus en IBM en la década de 1950. El primer compilador se lanzó en 1957. El lenguaje resultó tan popular para la computación científica y técnica que, para 1963, todos los principales fabricantes habían implementado o anunciado FORTRAN para sus computadoras. [ 18 ] [ 19 ]

COBOL fue concebido por primera vez cuando Mary K. Hawes convocó una reunión (que incluyó a Grace Hopper ) en 1959 para discutir cómo crear un lenguaje de programación que pudiera ser compartido entre empresas. [ 16 ] La innovación de Hopper con COBOL fue desarrollar una nueva forma simbólica de escribir programación. [ 13 ] Su programación era autodocumentada. [ 20 ] Betty Holberton ayudó a editar el lenguaje que fue presentado a la Oficina de Imprenta del Gobierno en 1960. [ 21 ] FORMAC fue desarrollado por Jean E. Sammet en la década de 1960. [ 21 ] Su libro, Programming Languages: History and Fundamentals (1969), se convirtió en un texto influyente. [ 21 ] [ 22 ]

Misión Apolo

Margaret Hamilton junto a la salida de la pila del código que ella y su equipo escribieron para las computadoras de la misión Apolo.

La misión Apolo a la Luna dependía de software para programar las computadoras en los módulos de aterrizaje. [ 23 ] [ 24 ] Las computadoras fueron programadas con un lenguaje llamado "Basic" (sin relación con el lenguaje de programación BASIC desarrollado en Dartmouth aproximadamente al mismo tiempo). [ 25 ] El software también tenía un intérprete que estaba compuesto por una serie de rutinas y un ejecutivo (como un sistema operativo moderno ), que especificaba qué programas ejecutar y cuándo. [ 25 ] Ambos fueron diseñados por Hal Laning . [ 25 ] Margaret Hamilton , quien previamente había estado involucrada en problemas de confiabilidad de software cuando trabajaba en el sistema de defensa aérea SAGE de EE. UU., también fue parte del equipo de software del Apolo. [ 23 ] [ 26 ] Hamilton estaba a cargo del software de vuelo a bordo para las computadoras del Apolo. [ 23 ] Hamilton creía que las operaciones de software no eran solo parte de la máquina, sino que también estaban intrínsecamente relacionadas con las personas que operaban el software. [ 25 ] Hamilton también acuñó el término " ingeniería de software " mientras trabajaba en la NASA. [ 27 ]

El software real de las computadoras de las misiones Apolo estaba compuesto por cables que se enhebraban a través de núcleos magnéticos. [ 28 ] Donde el cable pasaba por un núcleo magnético, representaba un "1" y donde lo rodeaba, representaba un "0". [ 28 ] Cada núcleo almacenaba 64 bits de información. [ 28 ] Hamilton y otros creaban el software perforando tarjetas perforadas, que luego se procesaban en una computadora central Honeywell donde se podía simular el software. [ 23 ] Cuando el código estaba "sólido", se enviaba a Raytheon para ser tejido en los núcleos magnéticos , donde mujeres conocidas como "ancianitas" trabajaban en los cables. [ 23 ] El programa en sí era "indestructible" e incluso podía resistir descargas eléctricas, como le sucedió al Apolo 12. [ 28 ] El cableado de las computadoras tomó varias semanas, lo que paralizó el desarrollo del software durante ese tiempo. [ 29 ]

Mientras utilizaba los simuladores para probar la programación, Hamilton descubrió formas en que el código podía producir errores peligrosos cuando se cometían errores humanos al usarlo. [ 23 ] La NASA creía que los astronautas no cometerían errores debido a su entrenamiento. [ 30 ] A Hamilton no se le permitió programar código para prevenir errores que pudieran provocar el fallo del sistema, por lo que anotó el código en la documentación del programa. [ 23 ] Su idea de añadir código de comprobación de errores fue rechazada por considerarse "excesiva". [ 23 ] Sin embargo, exactamente lo que Hamilton predijo que sucedería ocurrió en el vuelo del Apolo 8 , cuando un error humano provocó que la computadora borrara todos los datos de navegación. [ 23 ]

Posteriormente, los fabricantes de equipos originales (OEM), como Data General , Digital Equipment e IBM, comenzaron a vender software a múltiples clientes incluyéndolo junto con el hardware. Cuando un cliente compraba una minicomputadora , que en aquel entonces era la computadora más pequeña del mercado, esta no venía con software preinstalado , sino que debía ser instalada por ingenieros del OEM.

Esta agrupación atrajo la atención de los reguladores antimonopolio estadounidenses, quienes demandaron a IBM por prácticas de "vinculación" indebida en 1969, alegando que constituía una violación de las leyes antimonopolio que los clientes que deseaban obtener su software también tuvieran que comprar o arrendar su hardware para poder hacerlo. Sin embargo, el Departamento de Justicia de EE. UU. desestimó el caso, tras muchos años de litigio, al concluir que carecía de fundamento. [ 31 ]

Data General también se enfrentó a problemas legales relacionados con la agrupación de productos , aunque en este caso, se debió a una demanda civil de un posible competidor. Cuando Data General presentó el Data General Nova , una empresa llamada Digidyne quiso utilizar su sistema operativo RDOS en su propio clon de hardware . Data General se negó a licenciar su software y reclamó sus "derechos de agrupación". La Corte Suprema de los Estados Unidos sentó un precedente en el caso Digidyne v. Data General en 1985 al mantener la decisión de un tribunal de apelaciones del Noveno Circuito sobre el caso, y Data General finalmente se vio obligada a licenciar el sistema operativo porque se dictaminó que restringir la licencia solo al hardware de DG era un acuerdo de vinculación ilegal . [ 32 ] Aunque el Tribunal de Distrito señaló que "ningún jurado razonable podría concluir que dentro de este mercado grande y dinámico con competidores mucho mayores", Data General "tuviera el poder de mercado para restringir el comercio mediante un acuerdo de vinculación ilegal", la vinculación del sistema operativo al hardware se dictaminó como ilegal per se en apelación. [ 33 ] 

En 2008, Apple Inc. demandó a Psystar Corporation por distribuir clones no autorizados de Macintosh con OS X preinstalado, y Apple presentó una contrademanda. Uno de los argumentos de la contrademanda, que citaba el caso Data General, era que Apple dominaba el mercado de ordenadores compatibles con OS X al vincular ilegalmente el sistema operativo a los ordenadores Apple. El juez del Tribunal de Distrito, William Alsup, rechazó este argumento, afirmando, como el Tribunal de Distrito había dictaminado en el caso Data General más de 20 años antes, que el mercado relevante no era simplemente un sistema operativo (Mac OS), sino todos los sistemas operativos para PC, incluido Mac OS, y señalando que Mac OS no gozaba de una posición dominante en ese mercado más amplio. La sentencia de Alsup también señaló que el sorprendente precedente de Data General, según el cual la vinculación de productos con derechos de autor siempre era ilegal, había sido "implícitamente anulado" por el veredicto en el caso Illinois Tool Works Inc. v. Independent Ink, Inc. [ 34 ]

Software empaquetado (finales de la década de 1960 hasta la actualidad)

Una industria que producía software empaquetado de forma independiente —software que no se producía como un producto único para un cliente individual, ni se incluía con el hardware de la computadora— comenzó a desarrollarse a finales de la década de 1960. [ 35 ]

Unix (década de 1970-presente)

Unix fue uno de los primeros sistemas operativos que se popularizó y se volvió muy influyente, y aún existe hoy en día. La variante más popular de Unix actualmente es macOS (anteriormente conocida como OS X y Mac OS X), mientras que Linux está estrechamente relacionado con Unix.

El auge de las microcomputadoras

En enero de 1975, Micro Instrumentation and Telemetry Systems comenzó a vender su kit de microcomputadora Altair 8800 por correo. Microsoft lanzó su primer producto, Altair BASIC, ese mismo año, y los aficionados comenzaron a desarrollar programas para ejecutar en estos kits. Tiny BASIC se publicó como un programa de entrada de texto en la revista Dr. Dobb's Journal y fue desarrollado en colaboración.

En 1976, por ejemplo, Peter R. Jennings creó su programa Microchess para el kit KIM-1 de MOS Technology , pero como este no incluía una unidad de cinta, enviaba el código fuente en un pequeño folleto a sus clientes por correo, quienes debían teclear todo el programa a mano. En 1978, Kathe y Dan Spracklen publicaron el código fuente de su programa Sargon (ajedrez) en una revista de informática. Posteriormente, Jennings optó por vender cintas de papel y, finalmente, casetes compactos con el programa grabado.

Introducir el código fuente de una revista informática era un proceso engorroso y lento, y un solo carácter mal escrito —o peor aún, mal impreso— podía dejar el programa inoperable; sin embargo, la gente seguía haciéndolo. ( La tecnología de reconocimiento óptico de caracteres , que en teoría podría haberse utilizado para escanear los listados en lugar de transcribirlos a mano, aún no estaba muy extendida).  

Incluso con la popularización de los cartuchos y las cintas de casete en la década de 1980 para la distribución de software comercial, los programas gratuitos (como los programas educativos sencillos destinados a la enseñanza de técnicas de programación) todavía se imprimían con frecuencia, porque resultaba más económico que fabricar y pegar cintas de casete en revistas.

Sin embargo, finalmente, una combinación de cuatro factores puso fin a esta práctica de imprimir listados completos del código fuente de programas enteros en revistas de informática:

  • Los programas comenzaron a volverse muy grandes.
  • Los disquetes comenzaron a usarse para distribuir software y luego bajaron de precio.
  • La gente común empezó a usar ordenadores y quería una forma sencilla de ejecutar un programa. 
  • Las revistas de informática comenzaron a incluir cintas de casete o disquetes con versiones gratuitas o de prueba de software.

Muy pronto, el software comercial comenzó a ser pirateado , y los productores de software comercial estaban muy descontentos con esto. Bill Gates , cofundador de Microsoft , fue uno de los primeros en moralizar contra la piratería de software con su famosa Carta Abierta a los Aficionados en 1976. [ 36 ]

Década de 1980 hasta la actualidad

Disquetes MS-DOS de 6,2 V, 1993

Antes de la llegada de los microordenadores, un programa de software exitoso solía vender hasta 1000 unidades a un precio de entre 50 000 y 60 000 dólares cada una. A mediados de la década de 1980, el software para ordenadores personales vendía miles de copias a un precio de entre 50 y 700 dólares cada una. Empresas como Microsoft, MicroPro y Lotus Development tenían ventas anuales de decenas de millones de dólares. [ 37 ] De manera similar, dominaban el mercado europeo con versiones localizadas de productos que ya tenían éxito. [ 38 ] El gasto promedio por empresa en software para PC casi se triplicó entre 1989 y 1991, mientras que el gasto en software para mainframes no varió. [ 39 ]

Un momento crucial en la historia de la informática fue la publicación, en la década de 1980, de las especificaciones del IBM Personal Computer, elaboradas por Philip Don Estridge , empleado de IBM . Esto condujo rápidamente al dominio del PC en los mercados mundiales de ordenadores de sobremesa y, posteriormente, de portátiles , un dominio que perdura hasta nuestros días. Microsoft, al negociar con éxito con IBM el desarrollo del primer sistema operativo para PC ( MS-DOS ), se benefició enormemente del éxito del PC durante las décadas siguientes, gracias al éxito de MS-DOS y su sucesor, Microsoft Windows . Ganar la negociación fue un momento clave en la historia de Microsoft. 

Software libre y de código abierto

Mozilla Firefox 4 ejecutándose en Ubuntu Linux, 2011

El software libre y de código abierto (FOSS, por sus siglas en inglés) se refiere a aquel que está disponible gratuitamente y se distribuye bajo licencias que otorgan a los usuarios la libertad de acceder, modificar y compartir su código fuente. Este enfoque contrasta con el software propietario, cuyo código fuente suele ser cerrado y su uso está restringido por acuerdos de licencia. El FOSS fomenta la colaboración y la transparencia, permitiendo a desarrolladores y usuarios de todo el mundo contribuir a la mejora del software, adaptarlo a sus necesidades y compartir mejoras sin barreras legales ni financieras. Algunos ejemplos populares de FOSS incluyen sistemas operativos como Linux, navegadores web como Mozilla Firefox y lenguajes de programación como Python. La filosofía del FOSS no solo impulsa la innovación tecnológica, sino que también fomenta una comunidad global comprometida con la creación de software accesible y adaptable para diversas necesidades.

Novedades recientes

Tiendas de aplicaciones

En los últimos años, las aplicaciones para dispositivos móviles (teléfonos y tabletas) se denominan "apps". Apple optó por canalizar las ventas de aplicaciones para iPhone y iPad a través de su App Store , lo que le permite supervisar las aplicaciones y obtener una comisión por cada aplicación de pago vendida. Apple no permite aplicaciones que puedan utilizarse para eludir su tienda de aplicaciones (por ejemplo, máquinas virtuales como las de Java o Flash).

La plataforma Android , en cambio, cuenta con varias tiendas de aplicaciones disponibles, y los usuarios generalmente pueden seleccionar cuál usar (aunque Google Play requiere un dispositivo compatible o rooteado).

Esta medida se replicó en los sistemas operativos de escritorio con GNOME Software (para Linux), la Mac App Store (para macOS) y la Tienda Windows (para Windows). Todas estas plataformas siguen siendo, como siempre, no exclusivas: permiten instalar aplicaciones desde fuera de la tienda de aplicaciones, e incluso desde otras tiendas de aplicaciones.

El auge explosivo de las aplicaciones, sobre todo para iPhone pero también para Android, provocó una especie de " fiebre del oro ", en la que algunos programadores dedicaron una cantidad considerable de tiempo a crear aplicaciones con la esperanza de hacerse ricos. Sin embargo, no todos estos emprendedores tuvieron éxito.

Formalización del desarrollo de software

El desarrollo de planes de estudio en informática ha dado como resultado mejoras en el desarrollo de software. Los componentes de estos planes de estudio incluyen:

  1. Programación estructurada y orientada a objetos [ 40 ]
  2. Estructuras de datos [ 41 ]
  3. Análisis de algoritmos [ 42 ]
  4. Lenguajes formales [ 43 ] y construcción de compiladores [ 44 ]
  5. Algoritmos de gráficos por computadora [ 45 ]
  6. Clasificación y búsqueda [ 46 ]
  7. Métodos numéricos , [ 47 ] Optimización y estadística [ 48 ]
  8. Inteligencia Artificial [ 49 ] y Aprendizaje Automático [ 50 ]

Cómo el software ha afectado al hardware

A medida que más y más programas se integran en el firmware, y el hardware se vuelve más pequeño, más barato y más rápido, tal como predice la ley de Moore , un número creciente de funcionalidades informáticas, inicialmente realizadas por software, se han sumado al hardware, como por ejemplo las unidades de procesamiento gráfico . (Sin embargo, en ocasiones el cambio se ha producido en sentido contrario por motivos de coste u otras razones, como por ejemplo con los módems por software y el microcódigo ).

Actualmente, la mayoría de las empresas de hardware tienen más programadores de software en plantilla que diseñadores de hardware , ya que las herramientas de software han automatizado muchas tareas de los ingenieros de placas de circuito impreso (PCB).

Cronología del software informático y los lenguajes de programación

Las siguientes tablas incluyen la evolución año tras año de muchos aspectos diferentes del software informático, entre ellos:

1971–1974

1975–1978

1979–1982

1983–1986

1987–1990

1991–1994

1995–1998

1999–2002

2003–2006

2007–2010

2011–2014

Véase también

Referencias

  1. Descubrimientos antiguos, Episodio 11: Robots antiguos , History Channel , archivado del original el 1 de marzo de 2014 , consultado el 6 de septiembre de 2008.
  2. Freeth, Tony (2009). "Decodificando una computadora antigua: la tecnología griega rastreaba los cielos" . Scientific American . 301 (6): 76– 83. Bibcode : 2009SciAm.301f..76F . doi : 10.1038/scientificamerican1209-76 . PMID 20058643. Recuperado el 15 de octubre de 2022 . 
  3. Evans 2018 , pág. 21.
  4. Hally, Mike (2005). Cerebros electrónicos/Historias de los albores de la era informática . Londres: British Broadcasting Corporation y Granta Books. pág. 79. ISBN  1-86207-663-4.
  5. Evans 2018 , pág. 39.
  6. Light 1999 , pág. 469.
  7. Light 1999 , pág. 470.
  8. Light 1999 , pág. 472.
  9. Light 1999 , pág. 473.
  10. Evans 2018 , pág. 51.
  11. Connolly, Cornelia; Hall, Tony; Lenaghan, Jim (10 de enero de 2018). "Las mujeres que abrieron camino en la programación informática" . RTE.ie. Consultado el 25 de noviembre de 2018 .
  12. Smith 2013 , pág. 6.
  13. 1 2 Smith 2013 , pág. 7.
  14. 1 2 3 Gürer 1995 , pág. 176.
  15. Ceruzzi 1998 , págs. 84-85.
  16. 1 2 3 Gürer 1995 , pág. 177.
  17. «Fallece Frances Holberton, pionera en lenguajes informáticos» . The Courier-Journal . 12 de diciembre de 2001. Consultado el 24 de noviembre de 2018 a través de Newspapers.com.
  18. Jean E. Sammet (1969). Lenguajes de programación: historia y fundamentos , Prentice Hall, Englewood Cliffs, Nueva Jersey.
  19. RW Bemer (1969). Una historia político-social de Algol , Annual Review in Automatic Programming, pp 151-237. Pergamon Press, Oxford.
  20. Ceruzzi 1998 , pág. 92.
  21. 1 2 3 Gürer 1995 , pág. 179.
  22. "Autoridad Informática hablará aquí" . The Times . 9 de abril de 1972. Consultado el 13 de octubre de 2018 a través de Newspapers.com.
  23. 1 2 3 4 5 6 7 8 9 Harvey IV, Harry Gould (13 de octubre de 2015). "Su código llevó a los humanos a la Luna y también inventó el software" . WIRED . Recuperado el 25 de noviembre de 2018 .
  24. "Las líneas de código que lo cambiaron todo: Apolo 11, el JPEG, el primer anuncio emergente y otros 33 programas informáticos que han transformado nuestro mundo" . Slate . 14 de octubre de 2019. Consultado el 17 de octubre de 2019 .
  25. ^ Mindell 2008 , pág . 149. 
  26. "Margaret Hamilton" . Museo de Historia de la Computación . Consultado el 25 de noviembre de 2018 .
  27. "Conozcan a Margaret Hamilton, la científica que nos legó la "ingeniería de software"" . IEEE Software Magazine | IEEE Computer Society . 2018-06-08 . Consultado el 2018-11-25 .
  28. ^ Mindell 2008 , pág . 154. 
  29. Mindell 2008 , pág. 157.
  30. Mindell 2008 , pág. 160.
  31. G. David Garson (enero de 2006). Tecnología de la información pública y gobierno electrónico: Gestión del Estado virtual . Jones & Bartlett Learning. págs. 229–. ISBN  978-0-7637-3468-8.
  32. Gary Myers (noviembre de 1985). "Acuerdos de vinculación y la industria informática: Digidyne Corp. contra Data General" . Duke Law Journal . 1985 (5): 1027–1056 . doi : 10.2307/1372482 . JSTOR 1372482 . 
  33. "DATA GENERAL CORP. v. DIGIDYNE CORP., 473 US 908 (1985)" . Justia Law . El juez WHITE, con quien se une el juez BLACKMUN, disiente.
  34. "Copia archivada" (PDF) . Archivado del original (PDF) el 1 de enero de 2017. Recuperado el 31 de diciembre de 2016 .{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace )
  35. Ensmenger, Nathan (2010). The Computer Boys Take Over . MIT Press. pág. 55. ISBN  978-0-262-05093-7.
  36. Brad Lockwood (13 de octubre de 2008). Bill Gates: Perfil de un emprendedor digital: Edición Easyread Super Large de 18 puntos . ReadHowYouWant.com. págs. 25–. ISBN  978-1-4270-9149-9.
  37. Caruso, Denise ( 1984-04-02). "Estrategias de empresa boomerang" . InfoWorld . págs. 80–83 . Recuperado el 10 de febrero de 2015 . 
  38. Schrage, Michael (17 de febrero de 1985). "IBM logra el dominio en el mercado europeo de computadoras" . Washington Post . ISSN 0190-8286 . Consultado el 29 de agosto de 2018 . 
  39. "Perspectivas del software de 1991" . Computerworld . Vol. XXV, n.º 20. 20 de mayo de 1991. pág. 142. Consultado el 1 de marzo de 2026 .   
  40. Booch, Grady (1997). Análisis y diseño orientado a objetos con aplicaciones . Addison-Wesley.
  41. Peter Brass. (2008) Estructuras de datos avanzadas , Cambridge University Press
  42. ^ Cormen, Thomas H .; Leiserson, Charles E .; Rivest, Ronald L. y Stein, Clifford . (2001) Introducción a los algoritmos , MIT Press y McGraw-Hill.
  43. Hopcroft, John E. y Jeffrey D. Ullman , (1979) Introducción a la teoría de autómatas, lenguajes y computación
  44. Aho, Alfred V. , Sethi, Ravi , y Ullman, Jeffrey D. (1988). Compiladores: Principios, técnicas y herramientas . Addison-Wesley.
  45. Shirley, Peter . (2009) Fundamentos de gráficos por computadora 3.ª edición 
  46. Knuth, Donald . (1998) El arte de la programación informática : Volumen 3: Ordenación y búsqueda
  47. Press, William H. , Saul A. Teukolsky , William T. Vetterling , Brian P. Flannery . (2007) Numerical Recipes, 3.ª edición: El arte de la computación científica.
  48. Baron, Michael. (2006) Probabilidad y estadística para científicos informáticos
  49. Russell, Stuart J. y Peter Norvig (2009) Inteligencia artificial: un enfoque moderno (3.ª edición)
  50. Mitchell, Tom . (1997) Aprendizaje automático .
  51. Aaby, Anthony (2004). Introducción a los lenguajes de programación
  52. Wexelblat, Richard L. Historia de los lenguajes de programación
  53. Stallings (2005). Sistemas operativos, aspectos internos y principios de diseño . Pearson
  54. Kurose, James; Ross, Keith (2005). Redes informáticas: un enfoque descendente . Pearson.
  55. Wayne Carlson (2003) Una historia crítica de los gráficos y la animación por computadora
  56. Ferguson, R. Stuart. (2013) Algoritmos prácticos para gráficos 3D por computadora
  57. Narayan, K. Lalit (2008). Diseño y fabricación asistidos por ordenador . Prentice Hall

Fuentes

  • Ceruzzi, Paul E. (1998). Historia de la informática . Cambridge, Massachusetts: MIT Press. ISBN 978-0-262-03255-1 vía EBSCOhost.
  • Evans, Claire L. (2018). Broad Band: La historia jamás contada de las mujeres que hicieron posible Internet . Nueva York: Portfolio/Penguin. ISBN 978-0-7352-1175-9.
  • Gürer, Denise (1995). "Mujeres pioneras en ciencias de la computación" (PDF) . Communications of the ACM . 38 (1): 45– 54. doi : 10.1145/204865.204875 . S2CID 6626310 . 
  • Light, Jennifer S. (1999). "Cuando las computadoras eran mujeres". Tecnología y cultura . 40 (3): 455– 483. doi : 10.1353/tech.1999.0128 . JSTOR 25147356. S2CID 108407884 .  
  • Mindell, David A. (2008). Apolo digital: El ser humano y la máquina en los vuelos espaciales . Cambridge, Massachusetts: The MIT Press. ISBN 978-0-262-26668-0.
  • Smith, Erika E. (2013). "Reconociendo una herencia colectiva a través de la historia de las mujeres en la informática" . CLCWeb: Literatura y cultura comparadas . 15 (1): 1– 9. doi : 10.7771/1481-4374.1972 .
  • Logotipo de Wikimedia CommonsContenido multimedia relacionado con la historia del software en Wikimedia Commons.