Historia de Hardware y Software

Historia de Hardware y Software Hardware Hardware es el substrato físico en el cual existe el software. El hardware abarca todas las piezas físicas d...
31 downloads 1 Views 228KB Size
Historia de Hardware y Software

Hardware Hardware es el substrato físico en el cual existe el software. El hardware abarca todas las piezas físicas de un ordenador (disco duro, placa base, memoria, tarjeta aceleradora o de vídeo, lectora de CD, microprocesadores, entre otras). Sobre el hardware es que corre el software que se refiere a todos los programas y datos almacenados en el ordenador. Se refiere a todos los aparatos, tarjetas (circuitos impresos electrónicos), y demás objetos físicos de los que está compuesto un PC.

Software El software es el conjunto de instrucciones que las computadoras emplean para manipular datos. Sin el software, la computadora sería un conjunto de medios sin utilizar. Al cargar los programas en una computadora, la máquina actuará como si recibiera una educación instantánea; de pronto "sabe" como pensar y como operar. El Software es un conjunto de programas, documentos, procedimientos, y rutinas asociadas con la operación de un sistema de cómputo. Historia de Hardware y Software La primera teoría sobre el software fue propuesta por Alan Turing en su ensayo de 1935 sobre números computables, con una aplicación destinada a la toma de decisiones. El término "software" fue utilizado por primera vez de forma escrita por John W. Tukey en 1958. ] El estudio de los campos académicos sobre el software se dividen en informática y la ingeniería de software. Como los programas cada vez entraban más en el reino de firmware y el hardware por si sólo se hacía más pequeño, más barato y más rápido debido a la ley de Moore, los elementos de la computación que primero se consideraban software, pasan a ser hardware. La mayoría de las compañías de hardware hoy en día tienen más programadores de software en nómina que diseñadores de hardware, ya que las herramientas de software han automatizado muchas de las tareas de los ingenieros de circuitos. Al igual que la industria automotriz, la industria del software ha crecido de unos pocos visionarios que operaban en su garaje con sus prototipos. Steve Jobs y Bill Gates fueron los Henry Ford y Chevrolet Luis de sus tiempos. En el caso del desarrollo de software, el despegue final es generalmente aceptado que se produce con la publicación en

la década de 1980 de las especificaciones para el IBM Personal Computer. Hoy su movimiento sería visto como un tipo de público-sourcing. Hasta ese momento, el software se incluye con el hardware de los fabricantes de equipos originales (OEM), tales como Data General, Digital Equipment y de IBM. Cuando un cliente compra una minicomputadora, esta incluye el software que es instalado por los ingenieros empleados por el OEM. Las empresas de informática de hardware, no sólo incluyen sus paquetes de software, sino que también asesoren sobre la ubicación de los equipos normalmente en un espacio refrigerado llamo sala de ordenadores. La mayoría de las empresas tenían su software en su contabilidad valorados 0 ya que no podían venderlo. Cuando Data General introdujo su software Data General Nova, una compañía llamada Digidyne intentó instalar este software que ya había adquirido en un equipo distinto. Data Gerenal se negó a darle una licencia para poder hacerlo y fueron a los Tribunales. La Corte Suprema dijo que si Digidyne había pagado era propietaria de ese software debía poder instalarlo en el equipo que quisiese, lo que se llamó Digidyne v. Poco después IBM publicó los registros de DOS y nació Microsoft. La decisión de la Corte Suprema permitió valorar el software, patentarlo y comerciar con el. Es difícil imaginar hoy que una vez la gente sentía que el software no valía nada sin una máquina. Hay muchas empresas de éxito hoy en día que venden sólo productos de software, aunque todavía hay muchos problemas comunes de concesión de licencias de software debido a la complejidad de los diseños y documentación, lo que lleva a los trolls de patentes. Con las especificaciones de software de código abierto y la posibilidad de concesión de licencias de software, nuevas oportunidades se levantaron de herramientas de software que luego se convirtieron en el estándar de facto, como DOS para los sistemas operativos, sino también diversos programas de procesamiento de texto y hojas de cálculo. En un patrón de crecimiento similar, los métodos de desarrollo de propiedad se convirtieron en la metodología estándar de desarrollo de software. PRIMERA ERA Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. Desde entonces el campo se ha desarrollado tremendamente. La programación de computadoras era un “arte de andar por casa” para el que existían pocos métodos sistemáticos. El desarrollo del software se realizaba virtualmente sin ninguna planificación, hasta que los planes comenzaron a descalabrarse y los costos a correr. Los programadores trataban de hacer las cosas bien, y con un esfuerzo heroico, a menudo salían con éxito. Los problemas a ser resueltos eran principalmente de una naturaleza técnica, el énfasis estaba en expresar algoritmos conocidos eficazmente en algún lenguaje de programación.

En estos primeros años lo normal era que el hardware fuera de propósito general. Por otra parte, el software se diseña a medida para cada aplicación y tenía una distribución relativamente pequeña. El software como producto estaba en su infancia. La mayoría del software se desarrollaba y era utilizado por la misma persona un organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba. Debido a que la movilidad en el trabajo era baja, los ejecutivos estaban seguros de que esa persona estará allí cuando se encontrara algún error. Debido a este entorno personalizado del software, el diseño era un proceso implícito, realizado en la mente de alguien, y la documentación normalmente no existía. A lo largo de los primeros años aprendimos mucho sobre la implementación de sistemas informáticos, pero relativamente poco sobre la ingeniería de las computadoras. Sin embargo, en honor de la verdad, debemos reconocer que durante esa era se desarrollaron muchos sistemas informáticos excepcionales. Algunos de ellos todavía se siguen utilizando hoy y, por sus características, siguen siendo admirados con toda justicia. SEGUNDA ERA La segunda era en la evolución de los sistemas de computadora se extienden desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - máquina. Las técnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de sofisticación del hardware y del software. Los sistemas de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos en lugar de en minutos. Los avances en los dispositivos de almacenamiento en línea condujeron a la primera generación de sistemas de gestión de bases de datos. La segunda era se caracterizó también por el establecimiento del software ya 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 se aprestaban a “desarrollar el mejor paquete de software” y ganar así mucho dinero. Conforme crecía el número de sistemas informáticos, comenzaron a extenderse as 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 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. Aún peor, la naturaleza personalizada de muchos programas los hacía virtualmente imposibles de mantener. Había comenzado una crisis del “software”. TERCERA ERA La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continuó más allá de una década. El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentemente y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos. Las redes de área local y de área global, las comunicaciones digitales de alto ancho de banda y creciente demanda de acceso “instantáneo” a los datos, supusieron una fuente presión sobre los desarrolladores del software. Aún más, los sistemas y el software que lo permitían continuaron residiendo dentro de la industria y de la academia. El uso personal era extraño. La conclusión de la tercera era se caracterizó por la llegada y amplio uso de los microprocesadores. El microprocesador ha producido un extenso grupo de productos inteligentes, desde productos inteligentes, desde automóviles hasta hornos microondas, desde robots industriales a equipos de diagnóstico de suero sanguíneo, pero ninguno ha sido más importante que la computadora personal. En menos de una década, las computadoras llegarán a ser fácilmente accesibles al público. CUARTA ERA La cuarta era de la evolución de sistemas informáticos se aleja de las computadoras individuales y da los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas se han convertido en la norma. Las arquitecturas informáticas están cambiando de entornos centralizados de grandes computadoras a entornos descentralizados cliente/servidor. Las redes de información en todo el mundo proporcionan una infraestructura que iguala a expertos y políticos en pensar sobre una “superautopista de información” y una “conexión del ciberespacio”. De hecho internet se puede observar como un “software” al que pueden acceder usuarios individuales. La industria del software ya es la cuna de la economía del mundo. Las decisiones tomadas por gigantes de la industria tales como Microsoft arriesgan

billones de dólares. A medida que la cuarta generación progresa, han comenzado a surgir nuevas tecnologías. Las tecnologías orientadas a objetos están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones. Aunque las predicciones de las computadoras de “quinta generación”” continúan eludiéndonos, “las técnicas de cuarta generación” para el desarrollo del software están cambiando en forma en que la comunidad del software construye programas informáticos. Los sistemas expertos y el software de inteligencia artificial han salido del laboratorio para entrar en aplicaciones prácticas de una gran variedad de problemas del mundo real. El software de redes neuronales artificiales junto con la aplicación de lógica difusa ha abierto posibilidades excitantes para el reconocimiento de patrones y habilidades de procesamiento de información de carácter humano. La programación de realidad virtual y los sistemas multimedia ofrecen formas radicalmente diferentes de comunicar información al usuario final. “Los algoritmos genéricos” ofrecen el potencial para el software que reside dentro de las computadoras biológicas masivamente en paralelo. Sin embargo, un conjunto de problemas relacionados con el software ha persistido a través de la evolución de los sistemas basados en computadora, y estos problemas continúan aumentado. El software es una producción inmaterial del cerebro humano y tal vez una de las estructuras más complicadas que la humanidad conoce. De hecho, los expertos en computación aún no entienden del todo cómo funciona, su comportamiento, sus paradojas y sus límites. Básicamente, el software es un plan de funcionamiento para un tipo especial de máquina, una máquina ``virtual'' o ``abstracta''. Una vez escrito mediante algún lenguaje de programación, el software se hace funcionar en ordenadores, que temporalmente se convierten en esa máquina para la que el programa sirve de plan. El software permite poner en relación al ser humano y a la máquina y también a las máquinas entre sí. Sin ese conjunto de instrucciones programadas, los ordenadores serían objetos inertes, como cajas de zapatos, sin capacidad siquiera para mostrar algo en la pantalla. Los ordenadores sólo procesan lenguaje binario, pero para las personas este no es un modo válido de comunicarse (salvo a nivel sináptico :-). Si bien en los tiempos heroicos de los primeros ordenadores no les quedaba otro remedio que hacerlo, los programadores hace mucho que no escriben su código en lenguaje binario (denominado técnicamente ``código-máquina''), pues es terriblemente tedioso, improductivo y muy sujeto a errores. Hace tiempo que los programadores escriben las instrucciones que ha de ejecutar el procesador de la máquina mediante lenguajes formales, llamados ``de alto nivel'', bastante cercanos al inglés, si bien con rígidas reglas sintácticas que lo asemejan a los lenguajes lógico-formales. Esto facilita enormemente la tarea de escribir programas pero, para que esas instrucciones sean comprensibles para el

procesador, deben ser convertidas antes a código-máquina. Esa conversión se realiza cómodamente con programas especiales, llamados compiladores. A lo que escribe el programador se le denomina ``código-fuente''. Al resultado de la ``conversión'' (compilación) en lenguaje-máquina, se le denomina ``códigoobjeto'', ``binarios'' o ``ficheros ejecutables''. En principio, al usuario común sólo le importa este último nivel, los ``binarios'', pero conviene tener clara la distinción entre fuentes y binarios pues es clave para entender el empeño de los partidarios del software libre en disponer de las fuentes. Pero el software libre es mucho más que el derecho de los programadores y de los hackers a disponer de las fuentes del código: significa también la libertad de copiar y redistribuir esos programas. Esos derechos, o su ausencia, condicionan a cualquiera que use un ordenador y han configurado la industria del software y de la informática tal y como la conocemos hoy día. También ha dado lugar a un movimiento social --el del software libre-- cuya historia reconstruiremos brevemente en las próximas líneas.

ERA







AÑOS

1950 - 1965

1965 - 1972

1972 - 1989

CARACTERÍSTICAS 

Se trabajaba con la idea de “Codificar y Corregir”.



No existía un planteamiento previo.



No existía documentación de ningún tipo.



Existencia de pocos métodos formales y pocos creyentes en ellos.



Desarrollo a base de prueba y error.



Se busca simplificar código.



Aparición de Multiprogramación y Sistemas Multiusuarios.



Sistemas de Tiempo Real apoyan la toma de decisiones.



Aparición de Software como producto. (Casas de Software).



INICIO DE LA CRISIS DEL SOFTWARE.



Se buscan procedimientos para el desarrollo del Software.



Nuevo Concepto: Sistemas Distribuidos.



Complejidad en los Sistemas de Información.



Aparecen: Redes de área local y global, y Comunicadores Digitales.



Amplio Uso de Microprocesadores.



1989 - ¿?



Impacto Colectivo de Software.



Aparecen: Redes de Información, Tecnologías Orientadas a Objetos.



Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.



La información como valor preponderante dentro de las Organizaciones.

A continuación se presenta una lista de algunas personas que hicieron contribuciones significativas en la creación y crecimiento de la industria de productos de software 

Charles Bachman. Inventó la tecnología del banco de datos en los inicios de los sesentas.



John Backus. FORTRAN desarrollado para IBM (1954)



Bob Bemer. Uno de los diseñadores de COBOL y el ASCII normal para IBM (años sesenta); inventor de la sucesión del Escape, el mecanismo universal para toda la computadora.



Larry Constantine. Inventa los datos que fluyen en los diagramas, presentan primero en papel, los conceptos de un plan estructurado en 1968.



Peter Cunningham. Funda una de las primeras empresas de investigación de mercado para enfocar el software y comienza a comercializar los productos del software en 1974.



Tom DeMarco. El pionero en utilizar una metodología de caso, el autor, y consultor en los años setenta.



Wilfred J. Dixon. Empezó distribuyendo el software estadístico en 1962.



Frank Dodge. Co - fundó McCormack & el Regate qué vendió el primer software de contabilidad en 1969.



Larry Ellison. Dejó camino abierto para los DBMS.



Dave Ferguson. Logró vender el primer producto de software con éxito contra un programa de IBM.



Ken Orr. Crea la metodología de caso desarrollada en los años setenta. La historia del hardware de computadora comenzando en 1960 está marcada por la conversión desde el tubo de vacío a los dispositivos de estado sólido como el transistor y posteriormente el circuito integrado. Por 1959 los transistores discretos eran considerados suficientemente confiables y económicos que hicieron no competitivos los computadores de tubos de vacío. La memoria principal del computador lentamente se movió lejos de los dispositivos de memoria de núcleo magnético a la memoria de semiconductor estática y dinámica de estado sólido, que redujo grandemente el costo, tamaño y consumo de energía de los dispositivos del computador.

Eventualmente, el costo de los dispositivos de circuito integrado fue lo suficientemente bajo que los computadores caseros y los computadores personales llegaron a ser comunes. El hardware ha sido un componente importante del proceso de cálculo y almacenamiento de datos desde que se volvió útil para que los valores numéricos fueran procesados y compartidos. El hardware de computador más primitivo fue probablemente el palillo de cuenta; después grabado permitía recordar cierta cantidad de elementos, probablemente ganado o granos, en contenedores. Algo similar se puede encontrar cerca de las excavaciones de Minoan. Estos elementos parecen haber sido usadas por los comerciantes, contadores y los oficiales del gobierno de la época. Los dispositivos de ayuda provenientes de la computación han cambiado de simples dispositivos de grabación y conteo al ábaco, la regla de cálculo, el computadora analógica y los más recientes, la computadora u ordenador. Hasta hoy, un usuario experimentado del ábaco usando un dispositivo que tiene más de 100 años puede a veces completar operaciones básicas más rápidamente que una persona inexperta en el uso de las calculadoras electrónicas, aunque en el caso de los cálculos más complejos, los computadores son más efectivos que el humano más experimentado. Los

dispositivos

más

antiguos

La humanidad ha usado dispositivos de cómputo por milenios. Un ejemplo es el dispositivo para establecer la igualdad de peso: las clásicas balanzas. Una máquina más aritmética es el ábaco. Se piensa que la forma más antigua de este dispositivo —el ábaco de polvo— fue inventado en Babilonia. El ábaco egipcio del grano y del alambre data del año 500 A.C. En la antigüedad y en la edad media se construyeron algunos computadores analógicos para realizar cálculos de astronomía. Entre ellos estaba: el Mecanismo de Anticitera, un mecanismo de la antigua Grecia (aprox. 150100 aC), el Planisferio; algunas de las invenciones de Al-Biruni (aprox. 1000 d. C.), el Ecuatorio de Azarquiel (alrededor de AD 1015), y otros computadores analógicos de astrónomos e ingenieros musulmanes. Los computadores pueden ser separados en software y hardware. El hardware de computación es la máquina física, que bajo la dirección de un programa, almacena y manipula los datos. Originalmente, los cálculos fueron hechos por seres humanos, quienes fueron llamados computadores, como título del trabajo o profesión. Este artículo cubre los principales desarrollos en la historia del hardware de computación, y procura ponerlos en contexto. Para una detallada línea de tiempo vea el artículo línea de tiempo de la computación. El

artículo Historia de la computación trata de los métodos previstos para la pluma y el papel, con o sin la ayuda de tablas. Puesto que las calculadoras digitales confían en el almacenamiento digital, y tienden a estar limitadas por el tamaño y la velocidad de la memoria, la historia del almacenamiento de datos del computador está unido al desarrollo de las computadoras. El Hardware de Computador ha sido un componente importante del proceso de cálculo y a El El Hardware de Computador ha sido un componente importante del proceso de cálculo y almacenamiento de datos desde que se volvió útil para que los valores numéricos fueran procesados y compartidos. El hardware de computador más primitivo fue probablemente el palillo de cuenta; después grabado permitía recordar cierta cantidad de ítems, probablemente ganado o granos, en contenedores. Algo similar se puede encontrar cerca a las excavaciones de Minoan. Estos ítems parecen haber sido usadas por los comerciantes, contadores y los oficiales del gobierno de la época. Es importante mencionar algunas de los lenguajes de programación que fueron utilizados en sus respectivas eras. Esto nos ayudará a comprender mejor el objetivo que se perseguía en cada una de ellas. ERA





LENGUAJES

CARACTERÍSTICAS 

Fue el primer y principal lenguaje Científico.



Diseñado por IBM.



Fortran



Utilizado también para aplicaciones comerciales.



Basic



Desarrollado como lenguaje de tiempo compartido.



Logo





Cobol

Traza elementos gráficos estableciendo la geometría de lápiz.



Ampliamente usado minicomputadores.



Lenguaje Académico.



Sus características lenguajes.



Éxito comercial a través de Borland.



Desarrollado en Francia, 1973.



Aplicaciones en Inteligencia Artificial (IA).



Sistema de Multiprogramación.



Incluye su propia base de datos.



Utilizado en aplicaciones médicas.



Sintaxis muy diferente de los demás lenguajes.



Programa aplicaciones en IA.



Pascal



Prolog



Mumps



Lisp

en

son

programación

copiadas

por

en

otros



3ª  



C, C++ Modula-2 dBase



Desarrollado en los ochentas.



Se utiliza en aplicaciones comerciales.



C++, se utiliza para la tecnología orientada a objetos.



Versión mejorada de Pascal.



Desarrollada en 1979.



Lenguaje estándar para aplicaciones comerciales.



Ramas colaterales: Clipper, FoxBase.



Desarrollado por Microsoft.



Principalmente orientado a la tecnología de objetos.



Visual C++



Se utiliza para aplicaciones comerciales.



Visual Basic



Principalmente para aplicaciones comerciales.



Versión cotizada, ya que permite interactuar con tablas de manejadores de bases de datos y lenguaje SQL.