El álgebra y las máquinas de calcular
A finales del siglo XVI y durante el siglo XVII se produjo un gran desarrollo del álgebra y las matemáticas. Hacia 1580 François Viéte (1540-1603) comenzó a utilizar letras para simbolizar valores desconocidos y con ello estableció las bases del álgebra. En 1614, John Napier (1550-1616) inventó los logaritmos (de “logos” y “aritmos” – conocimiento de los números), Edmund Gunter (1581-1626) inventó un precursor de la regla de cálculo en 1620, Galileo (1563-1642) sentó las bases de la formulación matemática, René Descartes (1596-1650) descubrió la geometría analítica…
Wilhelm Schickard diseñó y construyó, en 1623, lo que se considera la primera calculadora digital. La calculadora de Schickard permitía la realización automática de sumas y restas, y parcialmente automatizadas, multiplicaciones y divisiones. Desgraciadamente, Schickard y toda su familia murieron durante una epidemia, y su invento no tuvo difusión. Blaise Pascal (1623-1662) quien es considerado generalmente como el inventor de la calculadora, fabricó su ingenio veinte años después de Schickard y era menos avanzado. Se basaba en un sistema de ruedas dentadas y dada la tecnología de la época no consiguió fabricar ningún modelo fiable.
Otra figura importante de esta época fue Gottfried Wilhelm Leibniz (1646-1716). Leibniz fue a la vez un excelente pensador teórico y un destacado hombre pragmático. Fue, junto con Isaac Newton, el codescubridor del cálculo. Leibniz escribió:
«Es una pérdida de tiempo que personas cualificadas pierdan horas como esclavos en la labor de calcular, lo que podría ser delegado en cualquier otro si se pudieran utilizar máquinas.»
Basándose en los trabajos de Pascal construyó un dispositivo, conocido como la rueda de Leibniz. Este dispositivo podía realizar sumas, restas, multiplicaciones y divisiones automáticamente. Algunas máquinas basadas en los mismos principios que la de Leibniz han jugado un papel preponderante en la segunda guerra mundial, e incluso algunas están todavía en uso. Leibniz fue también el primer pensador occidental en investigar la aritmética binaria y sentó las bases de la lógica simbólica, basada en símbolos y variables abstrayendo la semántica de las proposiciones.
La primera programadora
Charles Babbage (1791-1871) fue uno de los miembros fundadores de la Royal Astronomical Society de Inglaterra. Propuso dos máquinas computadoras movidas por máquinas de vapor “la máquina de diferencia” y “la máquina analítica”. Esta última fue la primera máquina de propósito general concebida. O mejor dicho, sin propósito específico. Cada vez debía seguir las instrucciones de un “programa”. Fue Ada Byron, condesa de Lovelace, y colega de Babbage quien desarrolló los primeros “programas” para estas computadoras y estableció las bases de los lenguajes de programación.
Un inventor sueco, Pehr George Scheutz, consiguió en 1854 construir una máquina “diferencial” altamente especializada. Operaba utilizando tarjetas perforadas que contenían series de operaciones y datos. Babbage tomó la idea de utilizar tarjetas perforadas del telar de Jacquard pero, como Pascal, se vio limitado por la imprecisa tecnología de su tiempo y jamás consiguió construir un modelo que funcionase de su máquina analítica.
La lógica de un autodidacta
Un avance teórico, relativamente reciente, sobre los trabajos de Aristóteles acerca del razonamiento lo realizó Georges Boole (1815-1864). Boole nació en Londres, en el seno de una familia de clase media baja, y fue un auténtico autodidacta. Cuando tenía alrededor de dieciséis años aprendió por su cuenta latín y griego, y posteriormente aprendió francés, italiano y alemán. También de forma autodidacta, Boole aprendió prácticamente todas las matemáticas conocidas en su tiempo. Su contribución más destacada fue “Una investigación sobre las leyes de la Verdad”, publicado en 1854. En este trabajo estableció para el proceso del razonamiento una representación simbólica. Para ello utilizó variables que sólo podían adoptar dos valores “1” (verdadero) y “0” (falso), descartando cualquier valor de “media verdad”. Las ideas de Boole no tuvieron una gran repercusión en los siguientes cincuenta años hasta la aparición de una tesis de Claude E. Shannon quien demostró que el análisis de circuitos electrónicos complejos podía realizarse utilizando el álgebra de Boole.
El censo de los Estados Unidos
Las computadoras masivas
Antes de 1890, el censo de los Estados Unidos se realizaba de forma manual. Sin embargo, el rápido crecimiento que experimentó su población durante el siglo XIX, hizo inviable dicho procedimiento. En 1890 se utilizó para controlar el censo una tecnología basada en tarjetas perforadas creada por Herman Hollerit. Esta tecnología demostró ser más rápida y permitió realizar más preguntas en el cuestionario censal, consiguiendo así una información más útil. Este éxito animó a Hollerit a fundar en 1896 su propia compañía, la “Tabulating Machine Company” que más tarde se convertiría en “International Business Machines” (IBM).
El matemático más influyente de aquellos tiempos fue David Hilbert (1862-1943), que propuso a los matemáticos encontrar un sistema axiomático del cual pudieran derivarse todas las matemáticas. Hilbert pensaba que tal modelo debía ser consistente, en el sentido de que nunca nos podría conducir a la posibilidad de probar dos axiomas contradictorios. Sin embargo, Kurt Gódel (1906-1978) demostró en 1931 que la propuesta de Hilbert era inviable. Por tanto, el antiguo problema de los matemáticos, de sistematizar el razonamiento, avanzó hasta el extremo de descubrir el propio límite del razonamiento. Los trabajos de Gódel revolucionaron la visión que los matemáticos tenían de su disciplina.
El descubrimiento de Gódel tuvo efectos prácticos de forma inmediata; forzó a los matemáticos a revisar hasta qué punto podían afirmar que tenían un método para resolver un problema. Se publicaron varias respuestas a esta pregunta de las cuales la más trascendental fue la publicada en 1936 por el lógico inglés Alan Turing (1912-1954) quien demostró que un “cálculo efectivo” (realizable por un procedimiento finito) podía ser considerado como un tipo particular de máquina abstracta.
Howard T. Aiken (1900-1973) y sus asociados colaborando con un grupo de ingenieros de IBM diseñaron y construyeron, en 1944, una máquina electromecánica bautizada como Mark 1 capaz de multiplicar dos números en seis segundos y dividirlos en doce. “Bell Telephone Laboratories” construyó una máquina similar entre 1937 y 1940 y varias versiones mejoradas fueron construidas sucesivamente.
ENIAC
La madre de todas las computadoras
La primera computadora digital totalmente electrónica fue diseñada por el físico John V. Atanasoff (1903), un profesor asociado de la “Iowa State University”, con la ayuda de un estudiante de licenciatura llamado Clifford E. Berry. El principal interés de Atanasoff era encontrar un método eficaz de resolver sistemas de ecuaciones lineales. La ABC (Atanasoff Berry Computer) fue construida en 1940, utilizaba aritmética binaria y era de propósito único. Aunque nunca se la consideró una herramienta decisiva, sí supuso un paso importante en la informática ya que tuvo una influencia decisiva en John Mauchly, el diseñador de la ENIAC, la primera computadora digital de gran escala. La ENIAC fue diseñada entre finales de 1943 y comienzos de 1944 y se terminó a finales de 1945.
Durante la construcción de la ENIAC, John von Neumann (1903-1957), matemático, se interesó por el diseño de computadoras. Von Neumann consiguió el grado de doctor en matemáticas, graduado en física experimental y química, con sólo veintidós años. Cuando cumplió los veintitrés era ya un renombrado matemático en todo el mundo. Había realizado importantes estudios en lógica formal y colaboraba con Hilbert en sus intentos de axiomatizar las matemáticas. Sin embargo, von Neumann estaba interesado también en las matemáticas aplicadas, especialmente en problemas de dinámica de fluidos. Los modelos matemáticos aplicables requerían largos y tediosos cálculos. De esta forma, von Neumann conjugó dos antiguos intereses ya mencionados la sistematización de la lógica y la posibilidad de realizar cálculos de forma rápida y fiable.
Von Neumann comenzó a trabajar en el proyecto ENIAC en agosto de 1944. Tomó parte en las discusiones sobre el diseño de una nueva máquina, la EDVAC, que pretendía corregir las deficiencias de la ENIAC. Von Neumann asumió rápidamente la responsabilidad del diseño de la estructura lógica de la EDVAC la cual utilizaba notación binaria tanto para el almacenamiento como para la manipulación de números e instrucciones, al contrario de la ENIAC, que utilizaba aritmética decimal.
Estas contribuciones fueron tan transcendentales que, de hecho, hoy en día se utiliza el término “máquina de Von Neumann” para referirnos a las computadoras modernas.
Aprendiendo a hablar
Las primeras máquinas tenían que programarse con unos y ceros, hasta que a comienzos de 1950 se desarrollaron los primeros lenguajes simbólicos, denominados “lenguajes ensamblador”. A finales de los años cincuenta y comienzos de los sesenta se desarrollaron los primeros lenguajes de alto nivel. El primero fue FORTRAN (FORmula TRANslator) en 1954, y su creación se debe a John Backus. Otros lenguajes de alto nivel son COBOL (Common Business-Oriented Language) desarrollado en 1960 por Grace Hopper y otros; y Pascal, desarrollado por Niklaus Wirth en 1970.
Suma de dos números:
Código máquina | Lenguaje ensamblador | Lenguaje alto nivel |
10100101 00000001 | LOAD A | C = A + B |
01100101 00000010 | ADD B | |
10000101 00000011 | STO C |
Además los distintos lenguajes de programación tienen su propio vocabulario más o menos limitado, su gramática más o menos estricta y su semántica. Además cuantos más lenguajes conoces más fácil es entender un nuevo lenguaje y más fácil es confundirse al escribirlo. Pero como las computadoras siempre necesitan el “código máquina” cuando el programador escribe en un lenguaje de alto nivel su programa debe ser traducido. A este proceso se le llama “compilación” y lo realiza, curiosamente, otro programa. El código escrito por el programador es lo que se conoce como “código fuente” y el código traducido es lo que se conoce como “código binario”.
Las computadoras se comunican
El 4 de Octubre de 1957 la antigua Unión Soviética puso en órbita el primer satélite artificial, llamado SPUTNIK. Un año después, en plena guerra fría, se crea la Advanced Research Projects Agency (ARPA) dependiente del departamento de defensa de los EE.UU. En toda guerra la información es vital y el origen de Internet fue la necesidad de un sistema de comunicaciones que sobreviviera a un conflicto.
En 1962 J.C.R. Licklider escribió un ensayo sobre el concepto de Red Intergaláctica, donde todo el mundo está interconectado pudiendo acceder a programas y a datos desde cualquier lugar del planeta. En Octubre de ese año, Lickider es el primer director de ARPA. Así, entre 1962 y 1968 se trabajó el concepto de intercambio de paquetes en una red conocida como ARPANET. Se siguieron conectando computadores rápidamente a la ARPANET durante los años siguientes y en Octubre de 1972, Kahn organizó una demostración de ARPANET en la International Computer Communication Conference. Esta fue la primera demostración pública de la nueva tecnología de red. Fue también en 1972 cuando se introdujo la primera aplicación “estrella”: el correo electrónico. 1973 Vinton Cerf empezó el desarrollo del protocolo que más tarde se llamaría TCP/IP, un protocolo orientado a comunicar unas redes por otras, el protocolo de internet (IP: Internet Protocol).
Sin embargo no es hasta 1983 cuando se considera que nació realmente Internet, al separarse la parte militar y la civil de la red. En ese momento ya la compartían 500 servidores (ordenadores interconectados). Ese mismo año se creó el sistema de nombres de dominios (.com, .edu, .gov… más las siglas de los países), que prácticamente se ha mantenido hasta ahora. La constitución y crecimiento de esta nueva “red de redes” pronto contó con nodos en Europa. En 1984 William Gibson novelaba el nuevo mundo y acuñaba el término “ciberespacio”.
Y ahora qué
El mundo de la informática sigue en la década de los noventa en pleno desarrollo. Un área especialmente investigada es la de los procesadores paralelos. Los lenguajes de programación también se han desarrollado enormemente en los últimos años con la programación orientada a objetos y la programación extrema (que no consiste en programar sobre un acantilado). Otra de las áreas de interés es el desarrollo de redes de computadoras además de la inteligencia artificial y la robótica.
Pero eso también es otra historia para ser contada más adelante.
http://www.xtec.es/~jdomen28/article101.htm
http://webs.sinectis.com.ar/mcagliani/hnumeros.htm
http://www.persystems.net/historia/internet.htm