
Distrito financiero en Boston. ¿No adivina que lenguaje se usa en los bancos?Como se nota que me estoy poniendo viejo; Les voy a repetir una canción que he escuchado hasta el cansansio una y otra vez:
- C++ es mucho mejor que C; No hay que programar orientado a funciones, orientación a objetos es muy depinga y hay mejores librerías.
- Perl / CGI es lo máximo. Es mejor que utilizar C o C++ para hacer CGI. Perl es lo máximo.
- Python tiene mejor sintaxis orientada a objeto que Perl. Python va a desplazar a Perl como lenguaje de scripting.
- Java es mejor que Perl / CGI y que C++. Puede correr en todos lados y el desempeño es brutal.
- LAMP o Linux Apache MySQL y PHP (no, no Perl) es mucho mejor, además que más fácil de usar que Java / Servlets.
- ¿PHP? ¿Java? ¡No joda, eso es taaan 1990! Ruby on Rails es lo máximo. Es táaan fácil de usar y poderoso.
¿Me siguen? La onda de "mi lenguaje de programación" favorito se repita como una moda una y otra vez. Las ordas de programadores borregos cantan al unisono "
que arrecha es mi herramienta". El argumento lo he escuchado una y otra vez, pero el resultado es el mismo, seguimos haciendo programas inseguros, inestables, solo cambiamos el martillo de goma por el hidraulico.
Yo en particular he sido increiblemente sarcastico con PHP, porque lo considero una solución sucia (falta de madurez en su modelo de acceso a base datos, falta de separación con un modelo limpio
MVC); Sin embargo si lo que quiere es hacer un proyecto web rápido y no sabe mucho de computación, no se me ocurre un lenguaje tan fácil de usar como PHP. Para administración de sistemas,
Perl es lo mejor, sobre todo en UNIX ya que su facilidad de manejo de texto es simplemente insuperable. Ayuda que jode tener
modulos por doquier en CPAN; Por otro lado tenemos a Python el cual es mucho más elegante en cuanto a sintaxis y lo suficientemente versatil como para que aún sea utilizado en otras áreas, como
BioInformática (un negocio multimillonario en los Estados Unidos, particularmente en Boston. Sino vean la cantidad de articulos sobre ingenieros manipulando cadenas de proteinas y todo ese poco de cosas :)).
Y tenemos a Ruby on Rails. El entorno es fácil de instalar, tiene "magos" y niveles de abstracción los cuales permiten resolver problemas rápidamente y de manera mucho más elegante que PHP. Pero dificilmente lo llamaría un lenguaje para la empresa (no estoy siendo despectivo). Lo otro es que es nuevo y ¿
a quién no le gusta aprender algo nuevo, y más si sirve?
Esta semana ha sido la semana de decir que
Java está muerto, viva Ruby. Por ejemplo
en el blog de O'Reilly (uno de los pocos que se molestó en articular algo) se dijeron cosas como que Ruby es sencillo, flexible y poderozo. Yo creo que es cuestión de que tipo de problema quiera resolver usted, veamos algunos ejemplos
- Desarrollo de aplicaciones Web, con un buen patrón MVC: Ruby y Rails le permite hacer eso y bien; Java con su API de Servlets es poderozo y más complicado, pero al igual que Ruby usted puede utilizar bajo Java a Struts o al más moderno, flexible y fácil de usar Spring.
- La capa de persistencia en base de datos es muy fácil de usar con Ruby y Rails. En Java usted puede utilizar Hibernate (por ejemplo) o Spring JDBC, Spring DAO u otras alternativas para dedicarse a lo realmente importante, que es resolver el problema.
- Necesita escribir una aplicación gráfica de escritorio: Ruby, no sé pero Java tiene a Swing y si no le gusta puede utilizar SWT de Eclipse.
- Necesita escribir una aplicación para un dispositivo como un PDA: Con Ruby, no se puede. Java MicroEdition es soportado en Linux, PalmOS y Windows CE entre otros.
- Necesita que el lenguaje sea abierto: Ambos lo son. ¿Quiere una implementación OpenSource? Utilice el proyecto GNU ClassPath o espere por Apache Jeronimo.
- Necesita tolerancia a fallos, balanceo de cagas y soporte comercial: IBM, Sun, BEA, Oracle, Weblogic, Microsoft, Macromedia ofrecen soporte comercial.
- Necesita soporte comunitario: Ruby cuenta con una comunidad vibrante y apasionada. Java no se queda atrás (vease JBOSS, Jakarta, NetBeans, Eclipse, entre otros).
- No quiere mostrar su código a otros competidores: El código en Bytecode de Java se puede transformar (ofuscate es la palabra adecuada). Con Ruby es más dificil (aunque no debe ser imposible).
- Necesita una herramienta madura: Java ya tiene 10 años de vida, y sectores tan conservadores como finanzas lo utilizan a todos los niveles. Va a pasar un tiempo antes de qaue usted vea una aplicación con Rails en una compañia conservadora.
- Necesita hacer scripts: Con Java sólo no puede (eso va a cambiar con la siguiente máquina virtual de Sun, la cual incluira a Javascript como lenguaje). Pero si solamente instala unas librerías entonces puede utilizar Jhyton, Groovy, Javascript, BeanShell entre otros.
- Soporte amplio para cualquier base de datos: Ruby soporta las más populares, pero para algunas de ellas deberá programar su propio manejador. Java y JDBC... bueno, el reto es conseguir una base de datos que sirva que no tenga un manejador de JDBC :)

Los botes y los lenguajes de programación: Los hay de todos los tamaños, cada uno con un proposito¿Eso significa que Java es mejor que Ruby?. No necesariamente; Ruby tiene una curva de aprendizaje menos pronunciada que Java, no hay que compilar para ver resultados inmediatamante y en el caso de Rails, el entorno resuelve la mayoría de los problemas encontrados cuando se hacen aplicaciones web. Todo eso es buenisimo, ya que la idea de un lenguaje de programación es ayudar a resolver un problema rápido (por eso usted no programa en lenguaje ensamblador, aunque este sea más aparentemente más eficiente que un lenguaje de alto nivel).
Yo soy de los que prefiere saber un par de cosas, pero las sé usar bien. No se mucho de Python, mucho menos de Ruby y quizas me mude cuando las herramientas sean más maduras, en el caso de Ruby; Al menos Python ya tiene tiempo en eso, sino preguntele a la gente de Google,
que es lo primero que preguntan para sus posiciones de Ingenieria. Me parece bien
que Ruby en Rails sea tan depinga como dicen, me ladilla que digan que Java está muerto (
porqué es hablar sin argumentos) y me desespera no ver más programadores echando más código sino hablando de las herramientas que empezaron a utilizar una semana atrás (en la web hay como 1 articulo por cada 10 blogs de tecnología que repiten en tono automata como instalar Ruby en 10 minutos.
Lo que no dicen es como mantener todo el aparato corriendo por 10 meses ;)).
Así que sea inteligente. Aprenda una o dos herramientas pero bien. Enseñe a otros como usarla y lo mejor diviertase haciendolo.
Ahh, por cierto, la foto de la ruma de libros de Java comparado con los de Ruby; Es pura paja que usted necesite todo eso para programar bien y rápido aplicaciones en Java. De hecho, otra forma de verlo es que
Ruby no tiene tantas alternativas maduras como Java :)
Buscar en Technorati:
java,
ruby