domingo, 6 de abril de 2014

Los 20 mejores programadores de la historia

Últimamente he sentido un creciente interés por conocer algo más sobre el pasado de una profesión ya no tan joven. No soy el único, hay bastantes fuentes de información en Internet sobre este tema.

Aquí os dejo una de esas listas de las que se suele decir: "son todos los que están pero no están todos los que son". Llama poderosamente la atención la profusión de nombres europeos, especialmente escandinavos (hay hasta un Groenlandés), aunque luego sean los americanos quiénes se lleven el gato al agua.

La máquina de Anticitera: comenzamos mal, el autor de este anacrónico mecanismo permanece en el más absoluto anonimato. Es, sin embargo, uno de los grandes genios de la antigüedad, un programador capaz de concebir una de las primeras máquinas de engranajes y, sin duda, la más compleja conocida.

La Máquina de Anticitera es una calculadora astronómica fechada en el año 87 a.C, probablemente una evolución del, aún más arcano. Planetario de Arquímedes. Disponía de 37 engranajes diferenciales que le permitían predecir los movimientos de la Luna, el Sol y algunos planetas como Venus y Mercurio con cierta precisión. Hasta el siglo dieciséis no hay referencias a una tecnología que pueda competir con esta (ver "Dos increíbles inventos de la actualidad que pudieron cambiar el mundo pero que no lo hicieron").

Ada Lovelace: casi todas las listas que he consultado comienzan con esta matemática en cuyo honor se bautizó el lenguaje de programación Ada. Hija del poeta Lord Byron, nació acompañando el crepúsculo de 1815 para continuar con una existencia un tanto azarosa. Es considerada como el primer programador de la historia (la inventora del software) gracias al algoritmo que diseñó para calcular números de Bernouille empleando la calculadora mecánica concebida por Charles Babbage (también se la conoce como la Máquina Analítica, un ingenio que jamás llegó a construirse).

Libertina, jugadora, científica y matemática fue también una gran visionaria. Mientras sus coetáneos se concentraban en las posibilidades de cálculo de los nuevos ingenios mecánicos, ella supo augurarles un futuro más amplio. También propuso el uso de tarjetas perforadas para instruir a las máquinas de cákculo.

Alan Turing: si aún no lo habéis hecho, os recomiendo la lectura de "El Criptonomicón", de Neal Stephenson, un libro a veces catalogado dentro de la ciencia ficción y siempre presente en la mesilla de noche de cualquier hacker que se precie de serlo. Narra las peripecias de los aliados para desencriptar el código de la máquina Enigma de los alemanes, proceso en el que Alan Turing tuvo un gran protagonismo; es, por méritos propios, uno de los principales artífices de la victoria aliada en la Segunda Guerra Mundial.

Volviendo al tema que nos ocupa, Turing es considerado como el padre de la computación y precursor de la informática moderna. Diseñó una de las primeras máquinas electrónicas programables (de esas en las que miles de tubos de vacío copaban enormes hangares), el ACE. Su vida acabó mal, acusado y condenado por homosexualidad, se suicidó.el 7 de Junio de 1954. Han tenido que pasar 60 años para que la reina Isabel II se dignara a rectificar este gran error, exonerando a Alan Turin de todos los "delitos" cometidos el 24 de Diciembre del 2013. La máquina de Turing, el test de Turing, las máquinas oracle, los primeros trabajos sobre la cibernética y la inteligencia artificial son sólo parte de su legado.


ENIAC (Electronic Numerical Integrator and Computer) es considerado como el primero ordenador de propósito general de la historia (los alemanes ya habían desarrollado el Z1 aunque era un ingenio mecánico más que electrónico). Fue desarrollado por John Presper Eckert y John Wiliam Mauchly. Ocupaba 167 m2 y podía realizar 5000 sumas por segundo y 300 multiplicaciones (los ordenadores actuales superan con facilidad los miles de millones). Como me han hecho ver en algún foro, fueron 6 mujeres las encargadas de programar este ingenio Betty Snyder HolbertonJean Jennings BartikKathleen McNulty Mauchly AntonelliMarlyn Wescoff MeltzerRuth Lichterman Teitelbaum y Frances Bilas Spence y lo lograron inventando la programación a medida que se iban necesitando nuevos cálculos (más información...), toda una proeza.

Y hablando de mujeres en la informática, no podemos olvidarnos de Frances Elisabeth Allen primera mujer ganadora del premio Turing (el nóvel de la informática) por sus trabajos en compiladores, optimización de código y computación en paralelo.

John George Kemeny y Thomas Kurtz: de las postrimerías de la Segunda Guerra mundial, pasamos a los psicodélicos años sesenta. Estos dos matemáticos desarrollaron el Dartmouth BASIC. Fue el pionero de los lenguajes de programación interactivos y también uno de los primeros en ser compilado. A las cuatro de la madrugada del 1 de Mayo de 1964 se ejecutó el primer programa desarrollado en BASIC, una fecha precisa que, sin duda, ha pasado a la historia.

Estos dos personajes democratizaron la informática, ofreciendo una línea interactiva de comandos que permitía al programador ir incorporando código al programa en tiempo real. Hasta entonces el software era sinónimo de perforaciones en tarjetas lo que suponía un largo proceso de diseño y codificación y recursos sólo disponibles en las grandes organizaciones.

Marvin Minsky: uno de los fundadores de la Inteligencia Artificial, disciplina que nació oficialmente en la famosa conferencia de ciencias de computación celebrada en el Darmouth College en 1956.

En la foto, acompañaban a Minsky genios de la talla de John McCarthy (fue él quien acuñó el término Inteligencia Artificial y, más recientemente, Cloud Computing), Allen Newel (autor del lenguaje IPL y de interesantes trabajos sobre la teoría cognitiva) o Herbert Simon (además de todo, premio Nobel en Economía). Volviendo a Minsky, este genio desarrolló en 1951 la primera red neuronal capaz de aprender, SNARC, para después centrar sus trabajos en el estudio de la cognición, la comprensión del lenguaje natural, la percepción visual y la robótica.

Tim Paterson: desarrolló, cuando tenía tan sólo 24 años, el QDOS (Quick and Dirty Operative System, Sistema Operativo Rápido y Sucio), el primer sistema operativo para el Intel 8086 de 16 bits. Tardó mes y medio en adaptar al nuevo microprocesador el código de otro sistema operativo mítico el CP/M (DR-DOS) desarrollado por Gary Kildall. También es autor de la interfaz gráfica GEM Destop y de alguna implementación de LOGO (el lenguaje educativo con una tortuga como estandarte).

Envuelto siempre en una cierta polémica sobre la originalidad de su sistema operativo, Patterson fue contratado por Microsoft en diversas ocasiones, lo que le permitió participar en el desarrollo de otro de los grandes: Visual Basic.

Bill Gates: genio de los negocios, filántropo, visionario, programador oportunista, el hecho es que por sus manos han pasado algunos de los programas claves para entender el desarrollo de la informática en las últimas décadas. Sea o no un gran programador, su éxito comenzó pactando con IBM la cesión del 50% de los derechos de Basic a una nueva empresa, Microsoft de la que es co-fundador junto con Paul Allen. Por aquel entonces IBM sólo estaba interesada en fabricar computadoras, el software era una herramienta necesaria pero menospreciada. Poco después Microsoft adquirió los derechos de QDOS  y lo transformó en MS-DOS (Microsoft Disk Operative System), sistema operativo omnipresente en todas las ordenadores personales de IBM hasta que fue sustituido, en los años 90, por MS-Windows.

Denis Ritche: el padre del lenguaje C (1972) y co-creador, junto con Ken Thompson, del Sistema Operativo Unix, dos de los grandes hitos de la informática de los últimos tiempos. El lenguaje C es considerado como uno de los más eficientes jamás concebido gracias a su inteligente fusión de aspectos de bajo y medio nivel. De su especificación han derivado lenguajes como el C++ (creado por un danés, Bjarne Stroustrup) o Java. Por su parte, Unix evolucionó al popular Linux y, más recientemente, a Android, la apuesta de Google para competir con el insultante dominio de Apple sobre las plataformas móviles.

Ritche fue un programador muy prolífico: en los laboratorios Bell colaboró en el desarrollo de Multics, BCPL, ALTRAN y B (obviamente el precursor de C). En Lucent participó en la creación de Plan 9, Inferno y Limbo

Edgar Frank Cood, el padre de las bases de datos relacionales. Más un teórico del modelado de datos que un programador, su trabajo ha tenido una influencia fundamental en la historia de la informática. En 1970 publico el libro "Un modelo relacional de datos para grandes bancos de datos compartidos" sobre el que se basó Larry Ellison para concebir Oracle. Su principal aportación es la definición de las tres formas normales de aplicación en el diseño de modelos de datos. Como ocurrió con las tres leyes de la robótica ideas por Isaac Asimov (estaba comenzando ya a preocuparme que no fuera capaz de nombrar a mi ídolo en este blog), las tres fundamentales fueron más tarde ampliadas con una cuarta conocida como la forma normal de Boyce-Cood.


Alan Kay: participó, al principio de la década de los setenta, en la concepción de SmallTalk, uno de los primeros lenguajes de programación orientada a objetos.

Además de estos trabajos de investigación que le han permitido ser considerado como uno de los padres de la Ingeniería del Software, se interesó sobremanera por los interfaces de usuario creando el Dynabook, el precursor de los ordenadores portátiles y las tablets.

Richard Brodle: ahora orador motivacional y jugador de póquer profesional, desarrolló (junto con Charles Simonyl) la primera versión de Word en 1983 (tardaron apenas 7 meses). Este procesador de textos alcanzó una tremenda popularidad en 1989 cuando fue incorporado a Microsoft Windows para barrer de la faz de la tierra a su eterno competidor WordPerfect. Word comparte protagonismo con Excel, Powerpoint y el resto de las herramientas que conforman Microsoft Office, la gallina de los huevos de oro de Microsoft y, probablemente, el producto que le ha permitido sobrevivir en la batalla planteada por Apple y Google.

Brodle también es el autor del primer compilador de C de Microsoft y el creador del entrañable y casi inútil Notepad (un juego de niños comparado con logros anteriores pero, quizás, el programa más veces ejecutado de la historia en franca competencia con el Solitario o el Buscaminas)

Anders Hejlsberj: este danés centró sus esfuerzos en el desarrollo de diversos compiladores para PASCAL. Pronto llamó la atención de Borland quién, combinando el trabajo de Hejlsberj con otras herramientas, lanzó Turno Pascal en 1983. Fue un compilador revolucionario, responsable en gran medida de la democratización de la informática, al que siguieron otros como Turbo Prolog, Turbo Basic y Turbo C, el otro gran acierto de esta empresa.

Anders fue contratado por Borland donde dedicó unos cuantos años a potenciar y evolucionar Turbo Pascal y a diseñar Delphi, su sucesor. En 1996 fue contratado por Microsoft en donde desarrollo los lenguajes J++ (una versión de Java de éxito limitado) y C# (la base del desarrollo de la tecnología .Net). Ahora se encuentra embarcado en un nuevo proyecto, el lenguaje TypeScript.

Niklaus Wirth: si hablamos de Pascal, no podemos olvidar a su creador, este suizo responsable también del diseño de lenguajes tan populares como Euler, Modula o Modula-2 y de otros menos conocidos como Oberon.

Wirth es también reconocido por su trabajo en la Ingeniería del Software y, en particular, por el diseño de algoritmos y estructuras de datos. Una de sus frases más conocidas, conocida como la Ley de Wirth, viene a decir "el software se ralentiza mucho más rápidamente de lo que el hardware se acelerá", un gran verdad.

Bill Joy: cofundador de la Stanford Univeristy Network (SUN Microsystems) en 1982, dotó de software a la primera máquina comercializada por esta compañía que, en tan sólo 6 años, llegó a facturar mil millones de dólares.

Antes había diseñado parte del Unix de Berckley, el BSD Unix, el Sistema Operativo implantado en los primeros servidores de Intenet. Otro de sus logros (aunque sea menor) es el editor VI, un procesador de textos extraño, diseñado específicamente para los programadores, que exigía al usuario memorizar cientos de combinaciones de teclas; los que lo hemos usado aún lo echamos de menos. También promovió el lenguaje Java aunque su autoría debemos atribuírsela a James Gosling en 1995.

Sir Tim Berners-Lee: en 1989 nació oficialmente la Web, cuando se estableció en el CERN el primer canal de comunicación entre un cliente y un servidor a través del protocolo HTTP (Hyper Text Transfer Protocol). No menos importante es la concepción del lenguaje HTML (Hyper Text Markup Languaje) que dotó de contenidos a la nueva red de redes y la definición de la URL (Uniform Resource Locator), las direcciones que nos permiten navegar de una forma amigable.

Fundador del consorcio World Wide Web (W3C) que regula y estandariza las diferentes tecnologías que soportan Internet, este londinense puede no ser el programador más ingenioso de los que enorgullecen esta lista, pero es el que más influencia ha tenido sobre la sociedad y, quizás, el que obtenga un mayor reconocimiento con el paso del tiempo.

Linus Torvalds dejamos atrás los 80 para adentrarnos en los 90 con el finlandés diseñador del núcleo de Linux. Lo hizo tomando prestadas algunas ideas de Unix y Minix (el Sistema Operativo creado por Andrew Tanenbaum que se estudiaba en la mayoría de las universidades) pero podemos perdonárselo. No así ser el primer miembro de esta lista más joven que yo; supongo que tendría que preocuparme cuando, hablando de historia, me encuentro con eminencias a las que supero en edad.

Linux fue publicado en 1992 bajo Licencia Pública General (GPL) lo que permite su libre modificación y uso ilimitado, una de las principales causas de su enorme popularidad es la comunidades de desarrollo de código libre. Es más, Linus coordina ahora el proyecto GNU (es un curioso acrónimo recursivo, una pequeña broma: "Gnu is Not Unix"), el movimiento de desarrollo de software libre iniciado por Richard Stallman en 1985 con su famoso manifiesto.

Alan Cooper: en el otro lado de la fuerza (algunos dicen que en el lado oscuro) se encuentra este diseñador de software, padre del fabuloso Visual Basic, un lenguaje orientado a eventos de mi devoción. Visual Basic fue el precursor de los modernos entornos de desarrollo visuales y, por tanto, más amigables y fáciles de aprender. También introdujo el concepto de componente (los famosos VBX) que ahora son de uso tan acentuado bajo nombres dispares (Widgets, Gadgets, etc.).

Cooper, en su afán por socializar el software, publicó en 1995 el libro "About Face: The Essentials of User Interface Design", inspirador de las técnicas modernas de diseño de interfaces conocidas, comúnmente, como Interaction Design.

Jonh Carmack: es el diseñador de algunos juegos tan populares como Wolfenstein 3D, Doom y Quake. Los tres comparten el éxito gracias al manejo de la acción en primera persona, el modo multi-jugador y las innovadoras técnicas de cacheo de superficies 3D desarrolladas por Carmack  Desde su empresa id Software, ahora se dedica al diseño de los motores que utilizan juegos más modernos como Half Life o Medal of Honor.

Rasmus Lerdof: siguiendo con el código libre nos encontramos con este Groenlandés inventor del PHP (Personal Home Page) en 1995, uno de los lenguajes cliente-servidor más difundidos en la actualidad gracias a los trabajos de los israelís Andy Gutmans y Zeev Suraski.

En su concepción, PHP fue poco más que un experimento casero pero pronto se mostró especialmente útil para dotar de más dinamismo a las, hasta entonces, estáticas páginas Web. Ahora, el triunbirato formado por PHP, el Servidor Apache (creado por Brian Behlendor) y la Base de Datos MySQL constituye una de las herramientas más poderosas desarrolladas por la comunidad de software libre. Aunque quizás no dure demasiado; en 2008 Sun Microsystems compró todos los derechos de MySql y ahora los posee Oracle.

Larry Page: creador, junto con Serguéi Brin, del famoso motor de búsqueda Google, lanzado al mercado en 1998. El artículo que firmaron conjuntamente "The Anatomy of a Large-Scale Hypertextual Web Search Engine" se encuentra entre los diez artículos más citados de todos los tiempos.

El éxito de este buscador radica en el uso de la tecnología patentada PageRank, el algoritmo que permite al buscador clasificar los contenidos en función de diversos parámetros como el número de referencias que existen de ellos en Internet. Cada vez surgen más críticas en cuanto a su imparcialidad pero ahí sigue el buscador, dominando la red de redes.

Bram Cohen: cambiamos de siglo con el autor de los protocolos P2P (Peer to Peer) que permiten el intercambio de ficheros de gran tamaño entre usuarios sin necesidad de intermediarios.

En 2002, Cohen programó BitTorrent lo que le ha permitido ser considerado como uno de los responsables del declive de la industria disco y cinematográfica. Algunos dicen que la piratería, tal y como la concebimos actualmente, nació con BitTorrent y creció con eMule (la Mula) y Napster. Sin embargo, son meras herramientas para facilitar el intercambio de información entre usuarios y son, por tanto, inocentes del mal uso que pueda hacerse de ellas. Aplicaciones más nobles como Skype o LionShare se basan en los mismos conceptos.

Richard Bartle: participó, junto con Roy Trubshaw, en la concepción del primer mundo virtual (MUD1; Multi User Dungeon) allá por 1978. También estableció las bases para los modernos juegos de rol en su libro "Designing Virtual Worlds" y es, por tanto, fuente de inspiración de juegos y entornos virtuales tan populares como Dunegons & Dragons, Worldcraft, Second Life o los Sims. Como suele decir, "la vida es un gran juego"

Y, si hablamos de mundo virtuales, debemos mencionar a este chaval, Palmer Luckey, el inventor de las Oculus Rift, el casco de Realidad Virtual que ha revolucionado el mundo de la tecnología en los últimos años. Ya desde su adolescencia, su pasión por los vídeo-juegos le llevó a experimentar con todo tipo de interfaces de inmersión virtual. Frustrado por una tecnología que aún estaba en pañales, con 17 años optó por crear su propio casco de Realidad Virtual y publicar sus avances en MTBS3D, uno de esos foros que sólo interesan a unos cuantos frikis, muy frikis. Su intención era crear un kit "hazlo-tu-mismo" a través de un proceso de Crowfounding para popularizar una tecnología capaz de revolucionar el mundo de entretenimiento. Sin embargo, su trabajo llamó la atención de John Carmack, el creador del Doom y con él de los juegos en primera persona (otro de los grandes que quizás debería aparecer en esta lista por méritos propios), quién decidió invertir en su compañía y le instó a dejar de hacer públicos sus trabajos. Nació asi Oculus Rift, una empresa que sólo 4 años después de su fundación fue comprada por Facebook por la friolera de 2.000 millones de euros.

Fred Cohen: no podemos terminar esta lista sin hablar de los malos de la película. Cohen inventó el concepto de virus informático y programó el primero de ellos, un programa capaz de infectar una máquina, hacer copias de sí mismo y transmitirse unos ordenadores a otros. Es suya también la clasificación de este tipo de programas maliciosos como troyanos, gusanos y virus.

En esta categoría también cabe mencionar a Robert Tappan Morris (rtm), creador de uno de los primeros gusanos que se extendieron por los servidores de ARPANET (la precursora de Internet) o Keven Mitnick (Condor), uno de los hackers con más renombre en la actualidad, de esos que han robado al FBI, han sido encarcelados en repetidas ocasiones y, ahora, se dedican a asesorar a las grandes corporaciones en materia de seguridad.

A quién nos dejamos atrás:
  • Hablando de criptografía no podemos olvidar a Ronal RivestAdi Shamir y Leonard Adleman, creadores del RSA, uno de los algoritmos de codificación más seguros
  • A toda una leyenda, Donal Knuth, conocido como el Yoda de la programación, autor de Tex y de algunos de los algoritmos que facilitaron la creación de los primeros compiladores.
  • Mark Zuckerberg creador de la Red Social y de Facebook. Es otro de esos programadores visionarios que se han visto superados por su habilidad en los negocios.
  • Stephen Wozniak y Steve  Jobs, co-fundadores de Apple y responsables de la revolución de los ordenadores personales (especialmente en Estados Unidos). No están en la lista por ser más creadores de Hardware que de Software pero a nadie se le escapa que deben ser mencionados. Os dejo un Infografía que explica bastante bien la trayectoria de Steve Jobs (fuente http://ticsyformacion.com/)
Os dejo también un artículo que habla sobre los hackers españoles más conocidos. Y otro sobre el origen del nombre de 13 de lenguajes de programación más populares

¿Alguien más merece aparece en esta lista?. Seguramente sí, espero vuestras aportaciones para ir, poco a poco, ampliándola.


También puede interesarte:
Fuentes de información:
  • http://www.fogonazos.es/2009/05/diez-maravillas-tecnologicas-de-la.html
  • http://bitelia.com/2011/09/10-grandes-programadores-de-la-historia
  • http://www.taringa.net/posts/noticias/12415721/Los-Mejores-Hacker-y-Programadores-Del-Mundo.html
  • http://alt1040.com/2012/08/10-programadores-historia
  • http://micarreralaboralenit.wordpress.com/2012/08/20/los-mejores-10-programadores-de-la-hist/

8 comentarios:

  1. Aqui agregaria a Peter Norton programador destacado de los 80s y principios de los 90

    ResponderEliminar
    Respuestas
    1. Gracias, ya casi no me acordaba de las famosas Norton Utilities y de lo mucho que nos ayudaron a los que empezamos con esos PCs que casi (o sin casi) montábamos a mano. Sin quitarle mérito, creo su contribución a la informática no puede compararse con la de otras de las personas que aparecen en la lista. Pero es un opinión personal.

      Eliminar
  2. Respuestas
    1. Bueno, están las 6 mujeres del ENAC. Más recientemente hay algunas mujeres notables en informática y que comienzan a ganar galardones como el Turing pero creo que sus contribuciones aún no son tan relevantes, siempre desde mi punto de vista, como las de los aquí presentes aunque seguramente esto cambiará con el tiemppo

      Eliminar