SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
Historia del software en computación aplicado a la informática educativa.   95



3.6.3. Tercera Era (1965-1970).[37][35][7][32][45][46]
       A principios de la década de los sesenta casi todos los fabricantes de
computadoras disponían de dos líneas de producto distintas e incompatibles. Cada
fabricante tenía computadoras comerciales orientadas hacia los caracteres como la
1401, esta computadora era utilizada por bancos y compañías de seguros con la que
ordenaban sus datos e imprimían desde una cinta. En el otro extremo, los fabricantes
desarrollaban computadoras científicas a gran escala, orientadas hacia las palabras,
como la computadora 7094, que era utilizada para cálculos numéricos en ciencias e
ingeniería. Todo esto se realizaba entre una terrible competencia de los fabricantes.
Los fabricantes debían mantener las dos líneas para poder competir con los demás, lo
que les costaba grandes sumas de dinero aparte de que muchos clientes pedían una
máquina pequeña para empezar, lo que con la evolución del software rápidamente se
le quedaba pequeño, pues las prestaciones eran insuficientes. Estos usuarios requerían
una máquina más grande que ejecutara todos los programas que habían utilizado
hasta ahora, pero más rápido.

Sistemas operativos.
        La compañía IBM introdujo al mercado una serie de máquinas de software
compatible para resolver a la vez los problemas de las computadoras comerciales y las
computadoras científicas. Esta serie de máquinas se llamaban System/360 utilizadas
tanto en la computadora 1401 como en la computadora 7094. La arquitectura y el
conjunto de instrucciones de ambas computadoras era la misma por lo que todos los
programas escritos para una se podían ejecutar en las demás. La diferencia residía en
el rendimiento, pues tenían diferente memoria máxima, velocidad de procesador,
número de dispositivos de E/S permitidos y principalmente en el precio. Con esta serie
de máquinas la compañía IBM pretendía satisfacer las necesidades de todos los
clientes. En años posteriores IBM sacó al mercado máquinas sucesoras comparables a
la 360 como las series 370, 4300, 3080 y 3090 con tecnología más moderna.

 La System/360 fue la primera línea de computadoras que usaban circuitos integrados,
por lo que aventajaban tanto en el precio como en el rendimiento a las máquinas de la
segunda generación que se construían con transistores individuales. El software debía
funcionar en todos los modelos independientemente de su tamaño. Por un lado se
encontraba con sistemas pequeños en los que lo único que hacían era sustituir a la
computadora 1401 para copiar las tarjetas en cinta y, por otro, se encontraban los
sistemas grandes como el computador 7094 que fue sustituido para realizar
pronósticos de tiempo y otros trabajos de computación pesada. Este software tenía
que ser eficiente independientemente de que el computador tuviese muchos o pocos
periféricos. Este intento de abarcar todos los tipos de computadores fue su error. IBM
desarrolló un sistema operativo enorme muy complejo y con dos o tres órdenes de

Daniel Merchán López. 2013
96    Historia del software en computación aplicado a la informática educativa.


     magnitud mayor que el FMS. El sistema estaba compuesto por millones de líneas de
     lenguaje ensamblador escrito por miles de programadores con miles de errores. Para
     solucionar estos errores se creaban nuevas versiones, pero estas versiones corregían
     algunos o traían mas, de modo que los errores se mantenían constantes en el tiempo.
     A pesar de todos estos errores, este sistema operativo logró satisfacer a los usuarios
     de la época incluyendo varias técnicas que no se utilizaban en la segunda Era del
     software.

      La técnica que mayor influencia tuvo en esta Era del software fue la
     multiprogramación. Se impuso a otras técnicas por ser una forma de aprovechar el
     tiempo en las operaciones con los periféricos. La multiprogramación (Fig.55) consiste
     en mantener varios trabajos simultáneamente en memoria principal y realizar las
     operaciones de E/S por acceso directo a memoria, a fin de que se pueda aprovechar el
     tiempo perdido con otras técnicas.

      A la hora de realizar un trabajo, si este necesita una operación de E/S, el sistema
                                                      operativo se debe encargar de
                                                      congelar el trabajo solicitante,
                                                      después iniciar la operación por
                                                      DMA (Acceso directo a memoria) y
                                                      por último pasar a realizar otro
                                                      trabajo residente en memoria. Todas
                                                      estas tareas se realizan de forma
                                                      transparente al usuario.
                    Fig. 55. Multiprogramación.

      Con la multiprogramación se dividía la memoria en varias secciones, y en cada una de
     ellas había un trabajo distinto. De este modo, mientras un trabajo esperaba que
     terminara su E/S, otro trabajo distinto podía utilizar la CPU cargando la memoria
     principal y así la CPU estaba constantemente ocupada. Para proteger cada trabajo, la
     computadora 360 disponía de hardware especial porque al haber múltiples trabajos en
     memoria siempre había perjuicios en la empresa por parte de otros empleados.

      El tiempo compartido o timesharing (Fig.56) permiten que varios usuarios trabajen de
     forma interactiva o conversacional con la computadora desde diferentes terminales.
     En estos años los terminales eran teletipos electromecánicos. El sistema operativo
     repartía el tiempo de la CPU entre los usuarios, este tiempo lo asignaba en intervalos
     pequeños de forma rotativa también llamados time slice. Este tipo de sistemas hace
     que cada usuario piense que la computadora solo le atiende a él. De este modo
     aparecen los planificadores.




     Daniel Merchán López. 2013
Historia del software en computación aplicado a la informática educativa.   97




                      Fig. 56. Ejemplo de tiempo compartido o timesharing.


 Otros modos de funcionamiento son los multiprocesadores, el concepto de
independencia de dispositivo y, por primera vez, aparecen los sistemas en tiempo real.
Un multiprocesador está compuesto por varios procesadores que forman una sola
computadora de mayores prestaciones.

 Como se ha señalado anteriormente hay una independencia de dispositivo, pues el
usuario ya no tiene que referenciar, en los programas que realice, la cinta magnética o
la impresora donde van a ir. Solo tiene que especificar que quiere grabar un archivo
concreto o imprimir unos resultados. El sistema operativo es el encargado de asignar el
dispositivo de E/S que esté disponible e indicar al operador que monte la cinta o el
papel correspondiente en la unidad seleccionada. En cuanto a la aparición de los
sistemas en tiempo real, son sistemas utilizados en aplicaciones militares y más
concretamente para la detención de ataques aéreos. La computadora se conecta a un
sistema externo que debe responder rápidamente las necesidades de ese sistema. Los
primeros sistemas de ese tipo estaban escritos en ensamblador y se ejecutaban sobre
la máquina desnuda, lo que hacía de estas aplicaciones sistemas muy complejos,
debemos señalar que una máquina desnuda carece de sistema operativo y en sí misma
no hace nada.

  En esta Era se desarrollaron varios sistemas operativos, uno de ellos es CTSS
(Compatible Time-Sharing System) que fue desarrollado en el MIT y se considera como
el primer sistema operativo de tiempo compartido. El grupo que lo desarrolló se
llamaba Proyecto MAC ( Machine-Aided Cognition o Multiple-Access Computers) y este
sistema operativo fue utilizado primero para una IBM 709 en 1961 y después en una
IBM 7094. Comparado con otros sistemas que se desarrollaron posteriormente se
puede considerar primitivo, pero funcionaba. Era muy simple, lo que minimizaba el
tamaño del monitor. Una ventaja era que los trabajos siempre se cargaban en las

Daniel Merchán López. 2013
98    Historia del software en computación aplicado a la informática educativa.


     mismas posiciones de memoria, no era necesario utilizar técnicas para reubicarlas
     durante la carga. Al ejecutar en una 7094, daba soporte como mucho a 32 usuarios. El
     sistema se ejecutaba con una memoria de 32.000 palabras de 36 bit con un monitor
     residente que consumía 5.000 de las mismas. Cuando se le asignaba el control a un
     usuario interactivo, el programa del usuario y los datos eran cargados en las restantes
     27.000 palabras de la memoria principal. El sistema también disponía de un reloj de
     sistema, que generaba interrupciones cada 0,2 segundos y en cada una de ellas el
     sistema se adueñaba del control y asignaba el procesador a otro usuario.

      Otro sistema también desarrollado en el MIT es el MULTICS (Multiplexed Information
     and Computing Service) por Bell Labs y General Electric. Con este sistema intentaban
     proporcionar potencia de cómputo a todos los usuarios de Boston. No pensaban que
     años después, computadores más potentes que su GE-645 se fueran a vender por poco
     dinero. Por ello, tanto Bell Labs como General Electric abandonaron este proyecto. Sin
     embargo MULTICS tuvo una gran influencia sobre los sistemas siguientes.

      Un gran avance en esta Generación es la aparición y crecimiento de las
     minicomputadoras como la PDP-1 en 1961. PDP-1 fue también el hardware original
     donde se jugó el primer videojuego computarizado de la historia, el Spacewar de Steve
     Russell. Un operario de Bell Labs que había trabajado en el proyecto de MULTICS, Ken
     Thompson se propuso escribir una versión de MULTICS reducida a un usuario para la
     minicomputadora PDP-1.

      Este trabajo evolucionó para convertirse en el sistema operativo UNIX,
     popularizándose en las dependencias del gobierno, el mundo académico y muchas
     otras compañías.




                           Fig. 57. Slogan que nos muestra la filosofía de UNIX.




     Daniel Merchán López. 2013
Historia del software en computación aplicado a la informática educativa.   99


 La filosofía de UNIX (Fig. 57) se basa en la idea de que un sistema informático potente
y complejo debe ser simple, general y extensible, y que esto proporciona importantes
beneficios tanto para los usuarios como para los que desarrollan programas. Otra
manera de expresar los objetivos de la filosofía UNIX es resaltar que, en toda su
complejidad y tamaño, el Sistema UNIX aún refleja la idea de que "lo pequeño es
bello". Este planteamiento queda reflejado en la forma que el sistema UNIX trata a los
archivos pues ve de la misma manera los directorios, los archivos ordinarios, los
dispositivos, y los teclados y terminales de pantalla. El sistema de archivos oculta al
usuario detalles del hardware sobre el que se ejecuta. Esta simplicidad le permite
concentrarse en lo realmente necesario: los datos y la información de cada archivo.

 El hecho de que la pantalla y el teclado se traten como archivos permite utilizar con
ellos los mismos programas u órdenes que con archivos almacenados de manera
ordinaria, tomando la entrada desde el terminal o visualizando la información sobre él.

Lenguajes de programación.[12][47][11]
        En esta Era nace en programación lo que se denomina programación
estructurada. Edsger W. Dijskstra expone en un trabajo suyo donde señala que el ser
humano es un ser incapaz de razonar en presencia de un número excesivo de detalles
y que la claridad de un razonamiento es inversamente proporcional a la cantidad de
elementos que intervienen en él. Eso explica el gran problema que había en la época:
programas voluminosos, lenguajes con construcciones inseguras y para probar que no
había errores sólo disponían de pocos casos de prueba. La prueba de programas
consistía en seleccionar un conjunto de casos de prueba y comprobar si después de
ejecutarlos el programa funcionaba. La programación estructurada utilizaba
construcciones simples para facilitar la tarea de razonamiento. Una de ellas es go to,
que la mayoría de los lenguajes de la época incluían. Esta construcción representa un
salto incondicional a un punto arbitrario del programa, con ella se puede salir de un
bucle o saltar a un punto arbitrario de un procedimiento.

 El lenguaje desarrollado para representar las ideas de la programación estructurada
es el Pascal, llamado así en honor a Blaise Pascal, autor de las primeras calculadoras
mecánicas (explicado en el apartado 2.4). El creador de este lenguaje de programación
fue Niklaus Wirth, profesor del Instituto Federal de Tecnología de Zurich. Este lenguaje
fue utilizado para iniciarse en la ciencia de la computación hasta los últimos años
ochenta. Hoy día el lenguaje dominante es el C. Fue creado para intentar solucionar
muchas deficiencias del lenguaje de la generación anterior Algol, aunque tenía su
misma simplicidad. Entre las construcciones nuevas que tenía respecto a éste se
encuentran los registros, punteros, separación entre for y while, instrucción case, etc.




Daniel Merchán López. 2013
100    Historia del software en computación aplicado a la informática educativa.


       El programa "Hola mundo" escrito en Pascal sería así:

      Program HolaMundo;
      Begin
        Write('¡Hola, Mundo!');
        ReadLn;
      End.


       Pascal era fácil de transportar debido a la estructura que tenía, además su compilador
      estaba escrito en el mismo lenguaje. Solo necesitaba reescribir el intérprete de código-
      P para ejecutarlo en el nuevo sistema. Era de un sólo paso, es decir recorría una sola
      vez el texto del programa de izquierda a derecha.

       Otra clave del éxito de Pascal es el desarrollo y difusión del P-kit, con el que se podía
      tener disponible Pascal en cualquier máquina sin casi ningún tipo de esfuerzo. Esta
      idea ha sido imitada por numerosos lenguajes posteriormente. El P-kit estaba
      compuesto por tres elementos: el código fuente del compilador, escrito en Pascal, el
      código P resultante de compilar el compilador y el intérprete de código-P, escrito en
      Pascal. La tarea que debía realizar el operador de la máquina X consistía en traducir
      manualmente el intérprete de código-P al lenguaje que utilizase en la máquina X.

       Otro lenguaje importante de esta época es el Simula 67. Incorpora por primera vez las
      ideas de lo que se conoce actualmente como la programación orientada a objetos
      (POO). Este lenguaje fue desarrollado por Kristen Nyaard y Olejohan Dahl, noruegos,
      en el Centro Noruego de Computación en Oslo entre 1962 y 1967. El objetivo de este
      lenguaje era definir un lenguaje de propósito específico para aplicaciones de
      simulación. La primera versión salió en 1964 e incluía pocos aspectos innovadores tales
      como la gestión dinámica de memoria y la introducción de la idea de procesos
      concurrentes aparte de proporcionar operaciones primitivas para su sincronización e
      interacción. Al mejorar lenguajes específicos de simulación como SIMSCRIPR y GPSS
      tuvo un gran éxito entre los usuarios americanos.

       "Hola mundo" escrito en Simula 67:

      Begin comment aquí comienza el programa ;
       OutText("¡Hola Mundo!");
       OutImage;
      End of program;


       Al ser un lenguaje orientado a objetos también se puede escribir utilizando una clase
      que se encarga de escribir el saludo:




      Daniel Merchán López. 2013
Historia del software en computación aplicado a la informática educativa.    101


Begin

 Class Saludos;
 Begin
  OutText("¡Hola Mundo!");
  OutImage;
 End of class saludos;

 REF(Saludos) objeto;
 objeto :- New Saludos;

End of module program;

 La primera innovación que se introducida fue la distinción entre una clase (texto
suministrado por el programador) de entidades y los objetos (ejemplares de la misma
creados y destruidos dinámicamente a lo largo de una ejecución completa) que se
derivan de ella. Esta innovación escapaba de la estructura de bloques de ALGOL 60,
pues a diferencia de las reglas que rigen la estructura de bloques, un objeto ha de
sobrevivir al procedimiento que lo crea y necesitaba un tipo de datos "referencia a un
objeto" que permitiera que una misma variable designara objetos en distintos
momentos. Este tipo, llamado ref, era un puntero.

 La otra gran innovación es el concepto de subclase. El objetivo era ahorrar
declaraciones cuando el comportamiento de una entidad era muy parecido al de la
otra. La idea esencial, en realidad es muy simple. Si una clase B ha de repetir
declaraciones de variables y de procedimientos que ya están en otra clase A, se indica
que la clase B es una subclase de la clase A y se definen en B tan sólo las variables y los
procedimientos que son específicos de B. Posteriormente esto es denominado por los
propios autores concatenación de clases, aunque el término original es el de prefijo.
Actualmente se le denomina herencia y decimos que la clase B hereda de la clase A.

Bases de datos.[44][48]
        El empleo generalizado de los discos duros a finales de los años 60 modificó el
procesamiento de los datos. Los discos duros permitían el acceso directo a los datos.
La ubicación de los datos en el disco no era importante, ya que se podía tener acceso a
cualquier posición del disco en sólo unas decenas de milisegundos. El acceso directo a
los datos era mucho más rápido que el acceso secuencial utilizado hasta la fecha, pues
no tenían que recorrer todo el disco para acceder a un dato. Gracias a la utilización de
los discos se pudieron crear las bases de datos en red y las bases de datos jerárquicas,
permitiendo que las estructuras de datos como las listas y los árboles pudieran
almacenarse en disco. Los programadores podían crear y manipular estas estructuras
de datos.




Daniel Merchán López. 2013
102    Historia del software en computación aplicado a la informática educativa.


       El sistema de bases de datos en red fue desarrollado por Charles Bachman que
      formaba parte de la CODASYL. La CODASYL (Conference on Data Systems Languages)
      era un consorcio de industrias informáticas que tenían como objetivo la regularización
      de un lenguaje de programación estándar que pudiera ser utilizado en multitud de
      ordenadores. El modelo en red de los datos permitió la creación de un estándar en los
      sistemas de bases de datos, gracias a la creación de nuevos lenguajes de sistemas de
      información.

        Los miembros de la CODASYL pertenecían a industrias e instituciones
      gubernamentales relacionadas con el proceso de datos, cuya principal meta era
      promover un análisis, diseño e implementación de los sistemas de datos más efectivos;
      y aunque trabajaron en varios lenguajes de programación como COBOL, nunca
      llegaron a establecer un estándar fijo, proceso que posteriormente llevó a cabo ANSI.

      La crisis del Software.[12][26]
             La crisis del software es un término informático acuñado en 1968, en la primera
      conferencia organizada por la OTAN sobre desarrollo de software, de la cual nació
      formalmente la rama de la ingeniería de software. El término se adjudica a F. L. Bauer,
      aunque previamente había sido utilizado por Edsger Dijkstra en su obra The Humble
      Programmer.

        La crisis se fundamentó básicamente en el tiempo de realización del software, pues
      no se obtenían los resultados deseados, costaba mucho hacerlo y no ofrecía mucha
      flexibilidad. Se puede decir que se produce un establecimiento del software. El
      software se desarrollaba para tener una amplia distribución en un mercado
      multidisciplinario. Los programas se distribuían para computadoras grandes y para
      minicomputadoras, a cientos e incluso a miles de usuarios. Los patronos de la
      industria, del gobierno y de la universidad tenían una gran rivalidad para desarrollar el
      mejor paquete de software y ganar así mucho dinero. Pretendían encontrar un
      lenguaje de programación que sirviera para todo. Éste debería disponer de una buena
      notación matemática para la expresión de cálculos numéricos, de suficientes
      facilidades para la descripción de datos, una entrada/salida versátil y eficiente, y
      mecanismos para la creación de estructuras dinámicas semejantes a las de LISP.
      También debería tener algunas características de los lenguajes especializados, tales
      como el tratamiento de cadenas de caracteres o facilidades para la multiprogramación.

       Conforme crecía el número de sistemas informáticos, comenzaron a extenderse las
      bibliotecas de software de computadora. Las casas desarrollaban proyectos en los que
      se producían programas de decenas de miles de sentencias fuente. Los productos de
      software comprados al exterior incorporaban cientos de miles de nuevas sentencias.
      Una nube negra apareció en el horizonte. Todos esos programas, todas esas sentencias
      fuente tenían que ser corregidos cuando se detectaban fallos, modificados cuando


      Daniel Merchán López. 2013
Historia del software en computación aplicado a la informática educativa.   103


cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardware
que se hubieran adquirido. Estas actividades se llamaron colectivamente
mantenimiento del software. El esfuerzo gastado en el mantenimiento del software
comenzó a absorber recursos en una medida alarmante.

 Para salir de la crisis algunos investigadores como C. A. R. Hoare y N. Wirth, se
apartaron del WG 2.1 ocupado en la definición de ALGOL 68 y crearon un nuevo grupo,
el WG 2.3, sobre metodología de la programación. Para obtener una metodología
adecuada para la concepción de programas se impuso un periodo de reflexión antes de
hacerlos. El problema era que las metodologías estaban aún por hacer. Para salir de la
crisis necesitaban lenguajes más simples cuyas construcciones fueran completamente
comprendidas, y sistemas de tipos más exigentes que eliminaran la mayor cantidad de
errores posibles durante la compilación.




Daniel Merchán López. 2013

Contenu connexe

Tendances

historia de los sistemas operativos
historia de los sistemas operativoshistoria de los sistemas operativos
historia de los sistemas operativosjuanmartinpalominoR
 
Historia y evolución de los sistemas operativos
Historia y evolución de los sistemas operativosHistoria y evolución de los sistemas operativos
Historia y evolución de los sistemas operativosoviedospablo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoebotellome
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativosAlejandro Luna
 
Informatica
InformaticaInformatica
Informaticamurillou
 
Evolucion de los sistemas
Evolucion de los sistemasEvolucion de los sistemas
Evolucion de los sistemasvane7857
 
Historia de la computadora 32
Historia de la computadora 32Historia de la computadora 32
Historia de la computadora 32equipo21
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativosdemoniac23
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosV Meza T
 

Tendances (19)

Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativos
 
historia de los sistemas operativos
historia de los sistemas operativoshistoria de los sistemas operativos
historia de los sistemas operativos
 
Historia y evolución de los sistemas operativos
Historia y evolución de los sistemas operativosHistoria y evolución de los sistemas operativos
Historia y evolución de los sistemas operativos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativos
 
Ensayo
EnsayoEnsayo
Ensayo
 
Vicente
VicenteVicente
Vicente
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Informatica
InformaticaInformatica
Informatica
 
Evolucion de los sistemas
Evolucion de los sistemasEvolucion de los sistemas
Evolucion de los sistemas
 
Historia de la computadora 32
Historia de la computadora 32Historia de la computadora 32
Historia de la computadora 32
 
Resumen Décadas S.O
Resumen Décadas S.OResumen Décadas S.O
Resumen Décadas S.O
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativos
 
Que es un sistema operativo
Que es un sistema operativoQue es un sistema operativo
Que es un sistema operativo
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
8. segunda era
8. segunda era8. segunda era
8. segunda era
 
Clase 4 -
Clase 4 -Clase 4 -
Clase 4 -
 
Sistemas
SistemasSistemas
Sistemas
 

En vedette

6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietarioDaniel Merchan
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticosDaniel Merchan
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticosDaniel Merchan
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánicaDaniel Merchan
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 

En vedette (10)

6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietario
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticos
 
10. cuarta era
10. cuarta era10. cuarta era
10. cuarta era
 
10. cuarta era
10. cuarta era10. cuarta era
10. cuarta era
 
11. quinta era
11. quinta era11. quinta era
11. quinta era
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticos
 
11. quinta era
11. quinta era11. quinta era
11. quinta era
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánica
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 

Similaire à Historia del software en la era 1965-1970

Historia y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosHistoria y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosalexitopico
 
Historia de los Sistemas Operativos.docx
Historia de los Sistemas Operativos.docxHistoria de los Sistemas Operativos.docx
Historia de los Sistemas Operativos.docxWarmanSamuelMateoSan
 
Historia de sistemas operativos S.O
Historia de sistemas operativos S.O Historia de sistemas operativos S.O
Historia de sistemas operativos S.O Tatiana Vergel
 
Historiayevoluciondelsistemaoperativo 120926212848-phpapp01
Historiayevoluciondelsistemaoperativo 120926212848-phpapp01Historiayevoluciondelsistemaoperativo 120926212848-phpapp01
Historiayevoluciondelsistemaoperativo 120926212848-phpapp01carlos sandrea
 
Historia y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosHistoria y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosJavier Collantes
 
Historia Sistemas Operativos
Historia Sistemas OperativosHistoria Sistemas Operativos
Historia Sistemas Operativosramos866
 
Historia y evolucion del sistema operativo
Historia y evolucion del sistema operativoHistoria y evolucion del sistema operativo
Historia y evolucion del sistema operativoslipkdany21
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosRurik Cabeza
 
Informatica
InformaticaInformatica
Informaticamurillou
 
Unidad 3 sistemas operativos
Unidad 3 sistemas operativosUnidad 3 sistemas operativos
Unidad 3 sistemas operativosJohnny Cabrera
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativoswilsoncolcha
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativoswilsoncolcha
 
01 generaciones-de-los-sistemas-operativos
01 generaciones-de-los-sistemas-operativos01 generaciones-de-los-sistemas-operativos
01 generaciones-de-los-sistemas-operativoserick villa
 

Similaire à Historia del software en la era 1965-1970 (19)

Historia y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosHistoria y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativos
 
Casotema2
Casotema2Casotema2
Casotema2
 
Historia de los Sistemas Operativos.docx
Historia de los Sistemas Operativos.docxHistoria de los Sistemas Operativos.docx
Historia de los Sistemas Operativos.docx
 
Evolucion sistemas operativos
Evolucion sistemas operativosEvolucion sistemas operativos
Evolucion sistemas operativos
 
Historia de sistemas operativos S.O
Historia de sistemas operativos S.O Historia de sistemas operativos S.O
Historia de sistemas operativos S.O
 
Vicente
VicenteVicente
Vicente
 
Historiayevoluciondelsistemaoperativo 120926212848-phpapp01
Historiayevoluciondelsistemaoperativo 120926212848-phpapp01Historiayevoluciondelsistemaoperativo 120926212848-phpapp01
Historiayevoluciondelsistemaoperativo 120926212848-phpapp01
 
Historia y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosHistoria y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativos
 
Historia Sistemas Operativos
Historia Sistemas OperativosHistoria Sistemas Operativos
Historia Sistemas Operativos
 
Historia y evolucion del sistema operativo
Historia y evolucion del sistema operativoHistoria y evolucion del sistema operativo
Historia y evolucion del sistema operativo
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Informatica
InformaticaInformatica
Informatica
 
Unidad 3 sistemas operativos
Unidad 3 sistemas operativosUnidad 3 sistemas operativos
Unidad 3 sistemas operativos
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
 
01 generaciones-de-los-sistemas-operativos
01 generaciones-de-los-sistemas-operativos01 generaciones-de-los-sistemas-operativos
01 generaciones-de-los-sistemas-operativos
 
Deber sistemas operativos
Deber sistemas operativosDeber sistemas operativos
Deber sistemas operativos
 
Deber sistemas operativos
Deber sistemas operativosDeber sistemas operativos
Deber sistemas operativos
 
Producto1 so l.h.
Producto1 so l.h.Producto1 so l.h.
Producto1 so l.h.
 

Plus de Daniel Merchan

6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietarioDaniel Merchan
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánicaDaniel Merchan
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcularDaniel Merchan
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcularDaniel Merchan
 
2. el cálculo a través de la historia
2. el cálculo a través de la historia2. el cálculo a través de la historia
2. el cálculo a través de la historiaDaniel Merchan
 
El cálculo a través de la historia
El cálculo a través de la historiaEl cálculo a través de la historia
El cálculo a través de la historiaDaniel Merchan
 
La noción de información
La noción de informaciónLa noción de información
La noción de informaciónDaniel Merchan
 
La noción de información
La noción de información La noción de información
La noción de información Daniel Merchan
 

Plus de Daniel Merchan (15)

7. primera era
7. primera era7. primera era
7. primera era
 
9. tercera era
9. tercera era9. tercera era
9. tercera era
 
8. segunda era
8. segunda era8. segunda era
8. segunda era
 
7. primera era
7. primera era7. primera era
7. primera era
 
5. tipos de software
5. tipos de software5. tipos de software
5. tipos de software
 
6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietario
 
5. tipos de software
5. tipos de software5. tipos de software
5. tipos de software
 
Modo de utilizar
Modo de utilizarModo de utilizar
Modo de utilizar
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánica
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcular
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcular
 
2. el cálculo a través de la historia
2. el cálculo a través de la historia2. el cálculo a través de la historia
2. el cálculo a través de la historia
 
El cálculo a través de la historia
El cálculo a través de la historiaEl cálculo a través de la historia
El cálculo a través de la historia
 
La noción de información
La noción de informaciónLa noción de información
La noción de información
 
La noción de información
La noción de información La noción de información
La noción de información
 

Historia del software en la era 1965-1970

  • 1. Historia del software en computación aplicado a la informática educativa. 95 3.6.3. Tercera Era (1965-1970).[37][35][7][32][45][46] A principios de la década de los sesenta casi todos los fabricantes de computadoras disponían de dos líneas de producto distintas e incompatibles. Cada fabricante tenía computadoras comerciales orientadas hacia los caracteres como la 1401, esta computadora era utilizada por bancos y compañías de seguros con la que ordenaban sus datos e imprimían desde una cinta. En el otro extremo, los fabricantes desarrollaban computadoras científicas a gran escala, orientadas hacia las palabras, como la computadora 7094, que era utilizada para cálculos numéricos en ciencias e ingeniería. Todo esto se realizaba entre una terrible competencia de los fabricantes. Los fabricantes debían mantener las dos líneas para poder competir con los demás, lo que les costaba grandes sumas de dinero aparte de que muchos clientes pedían una máquina pequeña para empezar, lo que con la evolución del software rápidamente se le quedaba pequeño, pues las prestaciones eran insuficientes. Estos usuarios requerían una máquina más grande que ejecutara todos los programas que habían utilizado hasta ahora, pero más rápido. Sistemas operativos. La compañía IBM introdujo al mercado una serie de máquinas de software compatible para resolver a la vez los problemas de las computadoras comerciales y las computadoras científicas. Esta serie de máquinas se llamaban System/360 utilizadas tanto en la computadora 1401 como en la computadora 7094. La arquitectura y el conjunto de instrucciones de ambas computadoras era la misma por lo que todos los programas escritos para una se podían ejecutar en las demás. La diferencia residía en el rendimiento, pues tenían diferente memoria máxima, velocidad de procesador, número de dispositivos de E/S permitidos y principalmente en el precio. Con esta serie de máquinas la compañía IBM pretendía satisfacer las necesidades de todos los clientes. En años posteriores IBM sacó al mercado máquinas sucesoras comparables a la 360 como las series 370, 4300, 3080 y 3090 con tecnología más moderna. La System/360 fue la primera línea de computadoras que usaban circuitos integrados, por lo que aventajaban tanto en el precio como en el rendimiento a las máquinas de la segunda generación que se construían con transistores individuales. El software debía funcionar en todos los modelos independientemente de su tamaño. Por un lado se encontraba con sistemas pequeños en los que lo único que hacían era sustituir a la computadora 1401 para copiar las tarjetas en cinta y, por otro, se encontraban los sistemas grandes como el computador 7094 que fue sustituido para realizar pronósticos de tiempo y otros trabajos de computación pesada. Este software tenía que ser eficiente independientemente de que el computador tuviese muchos o pocos periféricos. Este intento de abarcar todos los tipos de computadores fue su error. IBM desarrolló un sistema operativo enorme muy complejo y con dos o tres órdenes de Daniel Merchán López. 2013
  • 2. 96 Historia del software en computación aplicado a la informática educativa. magnitud mayor que el FMS. El sistema estaba compuesto por millones de líneas de lenguaje ensamblador escrito por miles de programadores con miles de errores. Para solucionar estos errores se creaban nuevas versiones, pero estas versiones corregían algunos o traían mas, de modo que los errores se mantenían constantes en el tiempo. A pesar de todos estos errores, este sistema operativo logró satisfacer a los usuarios de la época incluyendo varias técnicas que no se utilizaban en la segunda Era del software. La técnica que mayor influencia tuvo en esta Era del software fue la multiprogramación. Se impuso a otras técnicas por ser una forma de aprovechar el tiempo en las operaciones con los periféricos. La multiprogramación (Fig.55) consiste en mantener varios trabajos simultáneamente en memoria principal y realizar las operaciones de E/S por acceso directo a memoria, a fin de que se pueda aprovechar el tiempo perdido con otras técnicas. A la hora de realizar un trabajo, si este necesita una operación de E/S, el sistema operativo se debe encargar de congelar el trabajo solicitante, después iniciar la operación por DMA (Acceso directo a memoria) y por último pasar a realizar otro trabajo residente en memoria. Todas estas tareas se realizan de forma transparente al usuario. Fig. 55. Multiprogramación. Con la multiprogramación se dividía la memoria en varias secciones, y en cada una de ellas había un trabajo distinto. De este modo, mientras un trabajo esperaba que terminara su E/S, otro trabajo distinto podía utilizar la CPU cargando la memoria principal y así la CPU estaba constantemente ocupada. Para proteger cada trabajo, la computadora 360 disponía de hardware especial porque al haber múltiples trabajos en memoria siempre había perjuicios en la empresa por parte de otros empleados. El tiempo compartido o timesharing (Fig.56) permiten que varios usuarios trabajen de forma interactiva o conversacional con la computadora desde diferentes terminales. En estos años los terminales eran teletipos electromecánicos. El sistema operativo repartía el tiempo de la CPU entre los usuarios, este tiempo lo asignaba en intervalos pequeños de forma rotativa también llamados time slice. Este tipo de sistemas hace que cada usuario piense que la computadora solo le atiende a él. De este modo aparecen los planificadores. Daniel Merchán López. 2013
  • 3. Historia del software en computación aplicado a la informática educativa. 97 Fig. 56. Ejemplo de tiempo compartido o timesharing. Otros modos de funcionamiento son los multiprocesadores, el concepto de independencia de dispositivo y, por primera vez, aparecen los sistemas en tiempo real. Un multiprocesador está compuesto por varios procesadores que forman una sola computadora de mayores prestaciones. Como se ha señalado anteriormente hay una independencia de dispositivo, pues el usuario ya no tiene que referenciar, en los programas que realice, la cinta magnética o la impresora donde van a ir. Solo tiene que especificar que quiere grabar un archivo concreto o imprimir unos resultados. El sistema operativo es el encargado de asignar el dispositivo de E/S que esté disponible e indicar al operador que monte la cinta o el papel correspondiente en la unidad seleccionada. En cuanto a la aparición de los sistemas en tiempo real, son sistemas utilizados en aplicaciones militares y más concretamente para la detención de ataques aéreos. La computadora se conecta a un sistema externo que debe responder rápidamente las necesidades de ese sistema. Los primeros sistemas de ese tipo estaban escritos en ensamblador y se ejecutaban sobre la máquina desnuda, lo que hacía de estas aplicaciones sistemas muy complejos, debemos señalar que una máquina desnuda carece de sistema operativo y en sí misma no hace nada. En esta Era se desarrollaron varios sistemas operativos, uno de ellos es CTSS (Compatible Time-Sharing System) que fue desarrollado en el MIT y se considera como el primer sistema operativo de tiempo compartido. El grupo que lo desarrolló se llamaba Proyecto MAC ( Machine-Aided Cognition o Multiple-Access Computers) y este sistema operativo fue utilizado primero para una IBM 709 en 1961 y después en una IBM 7094. Comparado con otros sistemas que se desarrollaron posteriormente se puede considerar primitivo, pero funcionaba. Era muy simple, lo que minimizaba el tamaño del monitor. Una ventaja era que los trabajos siempre se cargaban en las Daniel Merchán López. 2013
  • 4. 98 Historia del software en computación aplicado a la informática educativa. mismas posiciones de memoria, no era necesario utilizar técnicas para reubicarlas durante la carga. Al ejecutar en una 7094, daba soporte como mucho a 32 usuarios. El sistema se ejecutaba con una memoria de 32.000 palabras de 36 bit con un monitor residente que consumía 5.000 de las mismas. Cuando se le asignaba el control a un usuario interactivo, el programa del usuario y los datos eran cargados en las restantes 27.000 palabras de la memoria principal. El sistema también disponía de un reloj de sistema, que generaba interrupciones cada 0,2 segundos y en cada una de ellas el sistema se adueñaba del control y asignaba el procesador a otro usuario. Otro sistema también desarrollado en el MIT es el MULTICS (Multiplexed Information and Computing Service) por Bell Labs y General Electric. Con este sistema intentaban proporcionar potencia de cómputo a todos los usuarios de Boston. No pensaban que años después, computadores más potentes que su GE-645 se fueran a vender por poco dinero. Por ello, tanto Bell Labs como General Electric abandonaron este proyecto. Sin embargo MULTICS tuvo una gran influencia sobre los sistemas siguientes. Un gran avance en esta Generación es la aparición y crecimiento de las minicomputadoras como la PDP-1 en 1961. PDP-1 fue también el hardware original donde se jugó el primer videojuego computarizado de la historia, el Spacewar de Steve Russell. Un operario de Bell Labs que había trabajado en el proyecto de MULTICS, Ken Thompson se propuso escribir una versión de MULTICS reducida a un usuario para la minicomputadora PDP-1. Este trabajo evolucionó para convertirse en el sistema operativo UNIX, popularizándose en las dependencias del gobierno, el mundo académico y muchas otras compañías. Fig. 57. Slogan que nos muestra la filosofía de UNIX. Daniel Merchán López. 2013
  • 5. Historia del software en computación aplicado a la informática educativa. 99 La filosofía de UNIX (Fig. 57) se basa en la idea de que un sistema informático potente y complejo debe ser simple, general y extensible, y que esto proporciona importantes beneficios tanto para los usuarios como para los que desarrollan programas. Otra manera de expresar los objetivos de la filosofía UNIX es resaltar que, en toda su complejidad y tamaño, el Sistema UNIX aún refleja la idea de que "lo pequeño es bello". Este planteamiento queda reflejado en la forma que el sistema UNIX trata a los archivos pues ve de la misma manera los directorios, los archivos ordinarios, los dispositivos, y los teclados y terminales de pantalla. El sistema de archivos oculta al usuario detalles del hardware sobre el que se ejecuta. Esta simplicidad le permite concentrarse en lo realmente necesario: los datos y la información de cada archivo. El hecho de que la pantalla y el teclado se traten como archivos permite utilizar con ellos los mismos programas u órdenes que con archivos almacenados de manera ordinaria, tomando la entrada desde el terminal o visualizando la información sobre él. Lenguajes de programación.[12][47][11] En esta Era nace en programación lo que se denomina programación estructurada. Edsger W. Dijskstra expone en un trabajo suyo donde señala que el ser humano es un ser incapaz de razonar en presencia de un número excesivo de detalles y que la claridad de un razonamiento es inversamente proporcional a la cantidad de elementos que intervienen en él. Eso explica el gran problema que había en la época: programas voluminosos, lenguajes con construcciones inseguras y para probar que no había errores sólo disponían de pocos casos de prueba. La prueba de programas consistía en seleccionar un conjunto de casos de prueba y comprobar si después de ejecutarlos el programa funcionaba. La programación estructurada utilizaba construcciones simples para facilitar la tarea de razonamiento. Una de ellas es go to, que la mayoría de los lenguajes de la época incluían. Esta construcción representa un salto incondicional a un punto arbitrario del programa, con ella se puede salir de un bucle o saltar a un punto arbitrario de un procedimiento. El lenguaje desarrollado para representar las ideas de la programación estructurada es el Pascal, llamado así en honor a Blaise Pascal, autor de las primeras calculadoras mecánicas (explicado en el apartado 2.4). El creador de este lenguaje de programación fue Niklaus Wirth, profesor del Instituto Federal de Tecnología de Zurich. Este lenguaje fue utilizado para iniciarse en la ciencia de la computación hasta los últimos años ochenta. Hoy día el lenguaje dominante es el C. Fue creado para intentar solucionar muchas deficiencias del lenguaje de la generación anterior Algol, aunque tenía su misma simplicidad. Entre las construcciones nuevas que tenía respecto a éste se encuentran los registros, punteros, separación entre for y while, instrucción case, etc. Daniel Merchán López. 2013
  • 6. 100 Historia del software en computación aplicado a la informática educativa. El programa "Hola mundo" escrito en Pascal sería así: Program HolaMundo; Begin Write('¡Hola, Mundo!'); ReadLn; End. Pascal era fácil de transportar debido a la estructura que tenía, además su compilador estaba escrito en el mismo lenguaje. Solo necesitaba reescribir el intérprete de código- P para ejecutarlo en el nuevo sistema. Era de un sólo paso, es decir recorría una sola vez el texto del programa de izquierda a derecha. Otra clave del éxito de Pascal es el desarrollo y difusión del P-kit, con el que se podía tener disponible Pascal en cualquier máquina sin casi ningún tipo de esfuerzo. Esta idea ha sido imitada por numerosos lenguajes posteriormente. El P-kit estaba compuesto por tres elementos: el código fuente del compilador, escrito en Pascal, el código P resultante de compilar el compilador y el intérprete de código-P, escrito en Pascal. La tarea que debía realizar el operador de la máquina X consistía en traducir manualmente el intérprete de código-P al lenguaje que utilizase en la máquina X. Otro lenguaje importante de esta época es el Simula 67. Incorpora por primera vez las ideas de lo que se conoce actualmente como la programación orientada a objetos (POO). Este lenguaje fue desarrollado por Kristen Nyaard y Olejohan Dahl, noruegos, en el Centro Noruego de Computación en Oslo entre 1962 y 1967. El objetivo de este lenguaje era definir un lenguaje de propósito específico para aplicaciones de simulación. La primera versión salió en 1964 e incluía pocos aspectos innovadores tales como la gestión dinámica de memoria y la introducción de la idea de procesos concurrentes aparte de proporcionar operaciones primitivas para su sincronización e interacción. Al mejorar lenguajes específicos de simulación como SIMSCRIPR y GPSS tuvo un gran éxito entre los usuarios americanos. "Hola mundo" escrito en Simula 67: Begin comment aquí comienza el programa ; OutText("¡Hola Mundo!"); OutImage; End of program; Al ser un lenguaje orientado a objetos también se puede escribir utilizando una clase que se encarga de escribir el saludo: Daniel Merchán López. 2013
  • 7. Historia del software en computación aplicado a la informática educativa. 101 Begin Class Saludos; Begin OutText("¡Hola Mundo!"); OutImage; End of class saludos; REF(Saludos) objeto; objeto :- New Saludos; End of module program; La primera innovación que se introducida fue la distinción entre una clase (texto suministrado por el programador) de entidades y los objetos (ejemplares de la misma creados y destruidos dinámicamente a lo largo de una ejecución completa) que se derivan de ella. Esta innovación escapaba de la estructura de bloques de ALGOL 60, pues a diferencia de las reglas que rigen la estructura de bloques, un objeto ha de sobrevivir al procedimiento que lo crea y necesitaba un tipo de datos "referencia a un objeto" que permitiera que una misma variable designara objetos en distintos momentos. Este tipo, llamado ref, era un puntero. La otra gran innovación es el concepto de subclase. El objetivo era ahorrar declaraciones cuando el comportamiento de una entidad era muy parecido al de la otra. La idea esencial, en realidad es muy simple. Si una clase B ha de repetir declaraciones de variables y de procedimientos que ya están en otra clase A, se indica que la clase B es una subclase de la clase A y se definen en B tan sólo las variables y los procedimientos que son específicos de B. Posteriormente esto es denominado por los propios autores concatenación de clases, aunque el término original es el de prefijo. Actualmente se le denomina herencia y decimos que la clase B hereda de la clase A. Bases de datos.[44][48] El empleo generalizado de los discos duros a finales de los años 60 modificó el procesamiento de los datos. Los discos duros permitían el acceso directo a los datos. La ubicación de los datos en el disco no era importante, ya que se podía tener acceso a cualquier posición del disco en sólo unas decenas de milisegundos. El acceso directo a los datos era mucho más rápido que el acceso secuencial utilizado hasta la fecha, pues no tenían que recorrer todo el disco para acceder a un dato. Gracias a la utilización de los discos se pudieron crear las bases de datos en red y las bases de datos jerárquicas, permitiendo que las estructuras de datos como las listas y los árboles pudieran almacenarse en disco. Los programadores podían crear y manipular estas estructuras de datos. Daniel Merchán López. 2013
  • 8. 102 Historia del software en computación aplicado a la informática educativa. El sistema de bases de datos en red fue desarrollado por Charles Bachman que formaba parte de la CODASYL. La CODASYL (Conference on Data Systems Languages) era un consorcio de industrias informáticas que tenían como objetivo la regularización de un lenguaje de programación estándar que pudiera ser utilizado en multitud de ordenadores. El modelo en red de los datos permitió la creación de un estándar en los sistemas de bases de datos, gracias a la creación de nuevos lenguajes de sistemas de información. Los miembros de la CODASYL pertenecían a industrias e instituciones gubernamentales relacionadas con el proceso de datos, cuya principal meta era promover un análisis, diseño e implementación de los sistemas de datos más efectivos; y aunque trabajaron en varios lenguajes de programación como COBOL, nunca llegaron a establecer un estándar fijo, proceso que posteriormente llevó a cabo ANSI. La crisis del Software.[12][26] La crisis del software es un término informático acuñado en 1968, en la primera conferencia organizada por la OTAN sobre desarrollo de software, de la cual nació formalmente la rama de la ingeniería de software. El término se adjudica a F. L. Bauer, aunque previamente había sido utilizado por Edsger Dijkstra en su obra The Humble Programmer. La crisis se fundamentó básicamente en el tiempo de realización del software, pues no se obtenían los resultados deseados, costaba mucho hacerlo y no ofrecía mucha flexibilidad. Se puede decir que se produce un establecimiento del software. El software se desarrollaba para tener una amplia distribución en un mercado multidisciplinario. Los programas se distribuían para computadoras grandes y para minicomputadoras, a cientos e incluso a miles de usuarios. Los patronos de la industria, del gobierno y de la universidad tenían una gran rivalidad para desarrollar el mejor paquete de software y ganar así mucho dinero. Pretendían encontrar un lenguaje de programación que sirviera para todo. Éste debería disponer de una buena notación matemática para la expresión de cálculos numéricos, de suficientes facilidades para la descripción de datos, una entrada/salida versátil y eficiente, y mecanismos para la creación de estructuras dinámicas semejantes a las de LISP. También debería tener algunas características de los lenguajes especializados, tales como el tratamiento de cadenas de caracteres o facilidades para la multiprogramación. Conforme crecía el número de sistemas informáticos, comenzaron a extenderse las bibliotecas de software de computadora. Las casas desarrollaban proyectos en los que se producían programas de decenas de miles de sentencias fuente. Los productos de software comprados al exterior incorporaban cientos de miles de nuevas sentencias. Una nube negra apareció en el horizonte. Todos esos programas, todas esas sentencias fuente tenían que ser corregidos cuando se detectaban fallos, modificados cuando Daniel Merchán López. 2013
  • 9. Historia del software en computación aplicado a la informática educativa. 103 cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardware que se hubieran adquirido. Estas actividades se llamaron colectivamente mantenimiento del software. El esfuerzo gastado en el mantenimiento del software comenzó a absorber recursos en una medida alarmante. Para salir de la crisis algunos investigadores como C. A. R. Hoare y N. Wirth, se apartaron del WG 2.1 ocupado en la definición de ALGOL 68 y crearon un nuevo grupo, el WG 2.3, sobre metodología de la programación. Para obtener una metodología adecuada para la concepción de programas se impuso un periodo de reflexión antes de hacerlos. El problema era que las metodologías estaban aún por hacer. Para salir de la crisis necesitaban lenguajes más simples cuyas construcciones fueran completamente comprendidas, y sistemas de tipos más exigentes que eliminaran la mayor cantidad de errores posibles durante la compilación. Daniel Merchán López. 2013