domingo, 12 de octubre de 2008

Mis héroes programadores



Voy a hacer honor al título de mi blog, "opinologo TI", haciendo comentarios no tan técnicos sobre algunos programadores famosos, clasificandolos en "héroes" y "anti-héroes". Héroes son los que, cuando opinan algo sobre cualquier tema, los escucho con mucha atención y en forma positiva. Escucho también a los "anti-héroes" con mucha atención, pero en forma bastante critica y hasta para hacer exactamente lo contrario de lo que dicen.

Héroes
  • Gavin King / Hibernate, Seam: Sus proyectos hablan por si mismo. Además, es un gran comunicador y fue capaz de entrar en la "política" JEE para especificar JPA (Entity Beans v 3.0). Mi única critica es haberse ido a trabajar a jBoss en un momento que dicha empresa estaba muy criticada (cuando Marc Fleury enviaba spam en TheServerSide para progragandar jBoss).
  • Scott Ferguson / Resin, Hessian. Desarrollo solo un servidor de aplicación JEE. Gracias a su calidad técnica, Resin es bastante usado en internet: Salesforces lo usa y Netcraft lo registra en Septiembre como servidor web número 12 con 343,323 sitios. Mi única critica es que Scott sufre el síndrome NIH.
  • Chillenius / Wicket. Tengo respeto por todo el equipo de Wicket por "pensar distinto" y traer un framework refrescante cuando sobraban otras soluciones aburridas.
  • Arthur Van Hoff / Java. Arthur era miembro del equipo Java original y escribió gran parte de las primeras bibliotecas. Su énfasis en la simplicidad era notoria y nunca voy a olvidar su articulo sobre Java publicado en Dr Dobb's: allí descubrí el lenguaje y decidí nunca dejar de programar. Quizás Arthur no tuvo una buena idea al irse de Sun Micro y dejar Java en las manos de James Goesling.
  • David Pollak / Liftweb; estoy aprendiendo mucho de Scala gracias al código de Liftweb. Muchas gracias por eso.

Anti-héroes

  • Linus Torvalds / Kernel de Linux. Linus es un programador brillante, fue capaz de incentivar una comunidad enorme y dejar su nombre en un sistema operativo bastante popular. Le tengo una gran admiración, pero como este blog es para generar conversaciones lo tengo como anti-héroe. Mi razón, es porque Linus fue bastante conservador en sus decisiones tecnologicas: en la época, había bastante investigación en sistemas operativos y Linus eligió el camino conocido. un kernel monolítico basado en lenguaje C y usando la API de Unix. Es una de las razones del éxito de Linux pero, creo que Linus podría haberse arriesgado más.
  • James Goesling / Java Igual que con Linus tengo a James como anti-héroe para generar polémica: James es considerado el padre de Java y merece entonces toda mi admiración. Lo que le critico, es:
    • no pudo influir en las políticas internas de Sun. Tener Java, Netbeans, Glassfish Open Source era la decisión correcta. Hubo que esperar el cambio de CEO de Scott Mac Neally a Jonathan Schwartz para que se haga realidad.
    • La simplicidad inicial de Java se fue rápidamente a la cresta del cerro. Eso es un tema técnico donde James pudo haber tenido mucho más influencia.
  • Rod Johnson / Spring, Spring MVC, Spring Security, Spring Dinamic Modules, Spring hasta en la sopa. Tengo que reconocer que el retorno a la simplicidad en Java 5 le debe algo a Rod y que es también exagerado tenerlo como anti-héroe. Pero, hay varias cosas que no me gustan del framework Spring y del estilo de Rod:
    • Spring es una continuación espiritual de J2EE que el tanto critica: trata de solucionar TODO, hasta la paz mundial,
    • hereda algunas malas practicas de J2EE como el abuso de XML. Hay que recordar que Rod criticó duramente el uso de las anotaciones en Java EE 5 antes de retractarse.
    • Spring es solamente un thin-wrapper sobre el trabajo de otros: Spring necesita un ORM como Hibernate, un gestor transaccional JTA como Atomikos o simplemente un servidor de aplicación JEE completo para funcionar. Lo que agrega no es mucho. pero es lo que el programador usa directamente. Entonces, opino que los demás se llevan el trabajo sucio y Rod/Spring las flores y es injusto.
    • Rod trato de definir Interface21 como un vendedor ético. No se que significa eso y me causa mucha desconfianza: si es tan ético, habria tratado de ayudar la especificación JEE como lo hizo jBoss desde el principio y no ahora que necesita vender su propio servidor de aplicación.
  • Miguel de Icaza / Gnome, Mono. Es el vilano perfecto porque lo hago responsable del fracaso de Linux en el desktop y de intentar destruir Java. Me explico:
    • el primer desktop "end-user friendly" para Linux era KDE. Excusandose con temas religiosos (KDE usa Qt el cual no era GPL en la época) y en temas técnicos, proponiendo construir un modelo de componentes que nunca lograron, Miguel lanzo el proyecto Gnome. Eso creo una confusión bastante grande y provocó que ningún desktop superó al otro y una perdida de tiempo importante.
    • Cuando Miguel lanzó Mono (una implementación Open Source de .Net), Microsoft necesitaba contrarrestar el slogan WORA de Java y Mono ayudo claramente este objetivo.
    • En resumen, Miguel, ex empleado de Microsoft, le dio bastante ayuda a su ex empresa. Menos mal que en el segundo caso, fracaso por completo

No hay comentarios: