Programadores famosos

En un interesante post aparecido en el blog grok-code, se hace una análisis de que ha convertido a 222 seres humanos en programadores famosos, para ello se uso como base la lista de programadores famosos que aparece en wikipedia, y se analizaron las razones de por qué han logrado esa posición de super-estrellas de la cultura geek.

De los 222 programadores famosos estudiados y los 400 proyectos de software que desarrollaron, se han extraído algunas interesantes conclusiones, la primera es que sólo el 23% de ellos se han hecho famosos por desarrollar un lenguaje de programación, dentro de este grupo están por ejemplo James Gosling (Java), Alan Kay (SmallTalk) y Guido van Rossum (Python). Por otro lado de los 222 programadores famosos 97.07% han sido hombres, lo cuál es un dato interesante, aunque hay mucha mujeres en el campo de las TICs, estas no han alcanzado de manera proporcional a su número el estatus de programador famoso.

Otro dato importante es en cuantos proyectos de software uno debe participar para ser famoso, la respuesta es que basta con uno, de acuerdo a las estadísticas, el 53.36% de los programadores famosos sólo han intervenido en un proyecto de software, por ejemplo ese es el caso de Bill Gates, que sólo recibe el crédito por haber co-participado junto a Paul Allen, en el desarrollo del BASIC para el Altair. Aunque los hay prolíficos también, por ejemplo Lou Montulli ha recibido el crédito por haber creado el navegador Lynx, haber inventado las cookies, el tag de blink, la tecnología de server push y client pull, el proxy HTTP, el HTTP sobre SSL, la integración de los gráficos GIF dentro de los navegadores y haber fundado el grupo de trabajo de HTML en el W3C.

Un caso interesante de mencionar es el de Daniel McCracken, profesor del City College, de la Universidad de la Ciudad de New York, que alcanzó celebridad por su libro sobre programación en FORTRAN. Aunque en sí mismo no haya desarrollado un proyecto de software.

¿Hay espacio para ser reconocido como programador famoso aún en nuestros días?, pues claro que sí, y este estatus se puede alcanzar no sólo siendo un programador, sino también siendo el fundador de una empresa del sector o incluso escribiendo libros o artículos de divulgación sobre las nuevas tendencias de la programación.

COBOL no ha muerto

En un artículo aparecido en el portal Dr. Dobb’s, Michael Swaine trata de convencernos de que COBOL (COmmon Business-Oriented Language) sería uno de los lenguajes que tendríamos que aprender para volvernos más "empleables". En su largo artículo donde habla sobre las ventajas, longevidad y amplio uso del COBOL, básicamente dice que con la adición de la programación orientada a objetos, COBOL es una buena herramienta para hacer SOA, haber afirmado algo como eso, o sencillamente deslizar ese tipo de ideas puede tener dos explicaciones, o uno estuvo borracho cuando lo escribió, o recibió dinero por hacerlo.

Swaine dice de que hay 240 mil millones de líneas de programas escritos en COBOL que deben ser mantenidas y que es más fácil darles mantenimiento que portarlas a otro lenguaje, además incluye un dato importante, que la gran mayoría de estas líneas corren en aplicaciones desarrolladas en y para el sector financiero, pone el caso específico de Merril Lynch quien dice que el 70% de sus aplicaciones corren sobre COBOL. Bueno con sólo la mención del hecho anterior entiendo porque hay todo este completo desastre en el sector financiero en estos días.

Bromas aparte, no hay nada de malo en que una tecnología se vuelva obsoleta y sea reemplazada, el ciclo de la vida es nacimiento, crecimiento, madurez, reproducción, envejecimiento y muerte. Ocurre con todo organismo sano, aquello que no sigue ese ciclo sencillamente es una perversión, un cáncer. Cada célula de nuestro cuerpo cumple su ciclo de vida y es reemplazada, las que se recisten ha seguir ese ciclo se transforman en cáncer y ya no desempeñan su función aportando al conjunto, sino que se convierten en un parásito devorando el aporte de las otras células sanas que cumplen su función. Hace 40 años surgieron tres lenguajes padres por llamarlos de algún modo, FORTRAN (que dió origen a los lenguajes de programación imperativos), LISP (que dió origen a la programación funcional) y COBOL que no ha dado origen a nada más y cual Cronos moderno ha deborado a todos sus hijos.

COBOL ha crecido de una manera tan hipertrófica, incorporando nuevas tecnologías a su vieja y estricta sintaxis, que las empresas que lo usan, viven para mantenerlo, en lugar de que COBOL sea una herramienta para potenciar la estrategia de esa empresa. Casos como el problema del estado de California que no podía hacer un simple cambio en la planilla de sus trabajadores (leer "Atados al pasado" para más información) es una clara muestra de que la longevidad de COBOL no debe ser celebrada como un logro del lenguaje, sino temida como un síntoma de cáncer.

Una de las métricas que más les gusta mostrar a los defesores de COBOL es el número de líneas del lenguaje que están en uso actualmente, pero hay que reflexionar sobre la calidad y no sólo la cantidad, Abraham Licoln dijo: "No es cuántos años has vivido, sino cuánta vida hay en tus años". El abundante número de líneas de código en COBOL tiene explicaciones muy simples, en primer lugar COBOL es un lenguaje que trata de copiar la verbalidad del idioma inglés, por lo tanto es muy protocolar, es decir para hacer lo mismo que haríamos con un puñado de líneas PHP, Python o Java, COBOL necesita varias páginas de código. El segundo factor que contribuye a esta abundancia de código en ejecución es que cada institución financiera desarrolla su propia aplicación, es decir cada banco o financiera intenta inventar por ellos mismos la rueda.

Además COBOL representa una corriente de pensamiento que sabemos es ineficiente, Google nos ha probado que un algoritmo sencillo, pero que accede a una gran cantidad de datos produce mucha mejor calidad de información que un algoritmo sofisticado accediendo sobre un reducido número de datos. La gram mayoría de programas COBOL manejan datos que son miles de veces inferiores en cantidad a los que manejan las aplicaciones más modernas. Los cientos de millones de PCs en el mundo corriendo aplicaciones sobre lenguajes de programación más modernos manipulan mucha más data que los programas COBOL por unidad de tiempo.

Pero por qué no eliminar a COBOL completamente entonces, la respuesta está en sus orígenes, mientras la gran mayoría de lenguajes de programación han sido desarrollados por programadores para programadores y han reflejado los cambios en los paradigmas de la programación, COBOL fue un lenguaje creado por gerentes, que querían de vez en cuándo controlar que estaban haciendo sus programadores, lo cuál era una buena idea cuándo las computadoras simples y los sistemas no eran muy complejos, pero es en nuestros días esta deformidad genética en el leguaje que ya no produce ningun beneficio, ya no hay ningun gerente que quiera leer un programa COBOL, pero tampoco hay ninguno con suficiente honestidad para aceptar que se cometió un error y corregirlo, poque si lo hubiera ocurrirían dos cosas, una que COBOL hace tiempo que no estaría en uso y la segunda es que no estaríamos en medio de toda esta crisis financiera.

Cursos gratis de Informática y Robótica en la Universidad de Stanford

La prestigiosa Universidad de Stanford, que ha sido el alma mater, de la gran mayoría de profesionales que dan vida a Silicon Valley, esta ofreciendo 10 cursos gratuítos en línea, en el área de Informática (Computer Science), Inteligencia Artificial y Robótica según he podido leer en DeviceGuru.

Los cursos ofrecidos a través del programa Stanford Engineering Everywhere (SEE), son a nivel introductorio y esta a disposición tanto de estudiantes como de profesores universitarios, los cursos incluyen los videos de las clases (que pueden ser descargados), ejercicios, temas para desarrollar, exámenes y transcripciones de las clases, lo cual facilitaría la traducción para el posterior subtitulado o doblaje de los videos a otros lenguajes, lo anterior es posible porque los contenidos están disponibles bajo la licencia Creative Commons.

Para participar de estos cursos no es necesario registrarse, pero no se tiene acceso a profesores o intructores de la Universidad de Stanford, sin embargo es posible estar en contacto con otros usuarios del servicio SEE, la forma de cómo hacerlo esta detallada en el FAQ del SEE.

Dentro de los 10 cursos disponibles actualmente a tavés del SEE, están:

El decano de la facultad de Ingeniería de Stanford, Jim Plummer, dice que esta muy entusiasmado con la idea de extender el método de enseñanza de su universidad y a la vez extender las posibilidades de educación al mundo entero a través del programa SEE, y a la vez espera que las personas que hagan uso del material alrededor del mundo también contribuyan con aportes e ideas al SEE.

Como comentario aparte, estudiar una profesión en la Universidad de Stanford, puede costar más de U.S.$ 100,000, así que el que Stanford ponga a libre disposición casi el mismo contenido que se ofrece en sus aulas es un regalo que debe ser explotado al máximo, especialmente el hecho de que los contenidos son Creative Commons, y pueden ser usados como parte de cursos en las universidades locales de toda latinoamérica, sin el temor de tener que enfrentar un juicio por derechos de autor.

Aunque varios de mis lectores me han dicho que suelo ser muy crudo en mis comentarios, no puedo evitar decir lo siguiente. Lo más probable es que las universidades que ya utilizan material este tipo pero pagando, pues no cambiaran su línea, pero la mayoría de universidades, que no utilizan este tipo de material, ahora que es gratis, tampoco lo utilizarán, y después seguiremos quejandonos de la falta de oportunidades y de la opresión de los países desarrollados sobre los países pobres, y extrañas teorías de conspiración mundial.

Corriendo OS X en las netbooks

Aspire One con OS XLa categoría netbook, que engloba a todas aquellas pequeñas computadoras con pantallas de 10" o menos y que por lo general están construídas en base al nuevo procesador de Intel Atom, y con un precio menor a los $400 han iniciado una transformación del sector de las portátiles. Aunque se puede alegar que el padre de esta nueva categoría de laptops fue el proyecto OLPC y su XO-1, lo cierto es que no fue sino hasta la aparición del Asus eeePC 701 que la verdadera revolución comenzó y cuándo Asus reportó ventas de millones en los primeros seis meses de su entrada al mercado, casi todos los otros fabricantes de laptos entraron a competir en el sector de las netbooks.

eeePC con OS XPor lo general, para poder ofrecer un producto económico, la mayoría de fabricantes de netbooks ofrecen una versión de Linux instalada en el equipo o para aquellos que desean algo más familiar pueden adquirirlas con Windows XP Home Edition instalado. Como es lógico suponer las versiones Windows son ligeramente más costosas. Pero aunque he sabido que se ha podido instalar Windows Vista en dichos equipos, esto no me sorprendente. Sin embargo he encontrado que hay información en la red, con suficiente detalle para poder instalar el Mac OS X, en las netbooks equipadas con procesadores Atom, específicamente he encontrado información sobre como conseguir el OS X corriendo en la Asus eeePC, en la Acer Aspire One y en la MSI Wind.

Si uno piensa sobre el hecho de que comprar una MacBook Air, las ultralivianas laptop de Apple que cuestan $1800 en su configuración básica, comparado con una de estas netbooks que se puede conseguir por menos de $500, y si además es posible obtener la misma funcionalidad, entonces es obvio que el ahorro del 76% entusiasme a muchos a desafiar los téminos de licencia de Apple respecto a sus sistema operativo. Hay que recordar que de acuerdo a los téminos de licencia (EULA) del OS X, está terminantemente prohibido ejecutar el sistema operativo en un hardware distinto al de Apple.

Aquí les dejo un video en donde se puede ver como instalar el OS X Leopard en el MSI Wind, al parecer el OS X reconoce por defecto casi todo el hardware menos el Wifi:

Una unión contra natura

Hasta no hace mucho, había dos tipos claros de computadoras, las desktops (que en su versión con esteroides se convertian en servers) y las grandes Mainframes, que aún dominan el top-end de las grandes corporaciones. Pero la irrupción de Linux y la posibilidad de crear grandes cluesters de PCs baratas que pudieran ofrecer una perfomance similar a la de los Mainframes, redefinió el escenario e inicó un proceso que ha afectado la rentabilidad de empresas como Cray e IBM, que liderán el sector de los Mainframe. Casos que he comentado en éste blog como el de la bolsa de valores de New York o Paypal, que han migrado a cluesters de servidores con Linux en lugar de usar Mainframes, ilustran la naturaleza de la amenaza para empresas como Cray.

Por otro lado en el entorno de computadoras de escritorio (desktop), Windows a lo largo del tiempo ha consolidado una clara posición de liderazgo. Sin embargo en los últimos años, debido a la incompetencia de Microsoft y sus muchas desafortunadas aventuras en otros sectores (por ejemplo el caso de Zune), nuevos sistemas operativos emergentes como el Mac OS X y Linux Ubuntu, son una amenaza real en nuestros días, para su egemonía en los escritorios.

Al parecer, como resultado de la perversa lógica que dicta "el enemigo de mi enemigo es mi amigo", me he enterado el día de hoy que el fabricante más prestigioso de Mainframes, Cray se ha aliado con Microsoft para producir el Cray CX1. Según palabras del propio Microsoft es la supercomputadora más económica del mundo, claro $25,000 en la categoría que pretende competir es una ganga; pero Windows 2008 HPC, difícilmente califica como un sistema operativo serio, al menos en el nicho donde pretende incursionar. Esta alianza creo que califica en toda regla como una unión contra natura, algo parecido a un matrimonio entre una hormiga y un elefante, queda a criterio del lector decidir quién es quién.

Reflexionando sobre el asunto me he preguntado quién programará el anti-virus para el Windows 2008 HPC, sera el mismo Microsoft, Cray, Symantec o debe ser el propio usuario. Lo más divertido para mi será ver cómo hacen el manejo de volúmenes y particionamiento virtual de los procesadores, algo que es una utilidad por defecto en todo sistema operativo de supercomputadoras, como le agrada llamar Microsoft a su incursión en éste sector. Pero lo cierto es que poner muchos procesadores Intel dentro de un armario, no califica a un server vitaminizado como supercomputadora, al menos no bajo los cánones de los grandes centros de datos. Las supercomputadoras están diseñadas bajo un sólo objetivo proveer la mayor perfomance posible, algo que es imposible bajo el diseño de Windows, y su absurda compatibilidad binaria con la arquitectura PC, diseñada a inicios de los años 80.

Creo que Microsoft sigue sin encontrar la brújula, y no se da cuenta es que tratar de entrar a competir en un territorio que desconoce es la más segura receta para el fracaso, repitiendo más de una vez esta clase de errores. La idea de tratar de atacar a tu enemigo en donde él es más fuerte ha sido descartada de los manuales de estrategia, desde hace varios siglos.  Además debería de centrar sus esfuerzos en mejorar su sistema operativo de escritorio, que lo tiene tan descuidado, que hasta sus propios socios comerciales como HP, Dell o Intuit, como comenté en un post anterior están pesando seriamente sobre la viabilidad de otros sistemas operativos, como respuesta a la parálisis en Redmond para mejorar Windows.