¡Java es el nuevo Perl!
Quiero empezar este pequeño análisis diciendo que yo adoro Perl; Yo lo aprendí por mi cuenta (si, para ese entonces no habían cursos de Perl y quizas el único manual autorizado era el libro del camello de O'Reilly). La versatilidad del lenguaje, la cantidad de librerías en CPAN y la enorme cantidad de código y ejemplos de como resolver problemas en la Internet lo hicieron el favorito.
Pero vamos a estar claros: Perl lleva años en el abandono. El modelo de "threads" es un fastidio, la orientación a objetos en Perl si bien no es difícil tiene varias diferencias comparada con otros lenguajes (y por ende es más difícil de aprender en mi opinión, al menos que a usted no le cause picazón el "bless") pero sobre todo, Parrot (el nuevo interprete de Perl 6) no termina de salir a la luz publica.
Y entonces viene Java con su soporte a lenguajes interpretados como Python (Jython), Ruby (JRuby) y sus lenguajes con merito propio como BeanShell y Groovy. Sin embargo nadie ha escrito un JPerl.
Mi tiempo es muy limitado estos días (trabajo, un niño pequeño) como para ponerme a inventar a aprender un lenguaje exótico el cual nunca voy a utilizar o sacar algún provecho; Sin embargo (y gracias a Java) he podido jugar con Jython en mi trabajo aprovechando código que ya tenemos escrito en Java mientras hago las mismas cosas que hubiera hecho en Perl. Por otro lado, tenemos ya código escrito en BeanShell lo cual significa que yo no seré el único en mi grupo que puede mantener el código.
Es muy interesante la experiencia, ya que por ejemplo aún sin saber la sintaxis completa de Python puedo resolver problemas ya que puedo importar clases de Java y utilizar sus funcionalidades. Si, es una muleta pero a la vez mantiene la productividad y me permite aprender el lenguaje al mismo tiempo. El mismo argumento va para JRuby.
¿Jython vs. JRuby en mi oficina? Bueno, Python se ve interesante, pero como dijo un PHD de mi grupo, "a quien se le ocurre utilizar un lenguaje que utiliza identación para definir alcance". También tuve problemas cuando traté de importar el modulo de expresiones regulares (import re).
¿Porque no un JPerl (no como el paquete JPerl, escrito en C++)? Quizas es la sintaxis, aunque no soy el primero que se hace la misma pregunta.
En fin, parece ser que la decisión de que usar como scripting languages en Java se reduce en mi caso a:
- Beanshell: No tiene curva de aprendizaje comparado con Jython, JRuby, además de que va a ser parte del JDK en un futuro no muy lejano (estandar de Java)
- JRuby: Más popular que Python (gracias a Rails). Y no usa identación como loco :)
Lo siento Perl. Pero Parrot te mató y le mundo se sigue moviendo. Por ahora, tu futuro está en la misma liga que el Kernel de GNU Hurd (el cual existe y a nadie le vale un bledo :)).
Buscar en otros sitios:
Blogalaxia:java, jperl, jruby, jython, beanshell
Technorati:java, jperl, jruby, jython, beanshell
To2blogs:java, jperl, jruby, jython, beanshell
Del.icio.us:java, jperl, jruby, jython, beanshell


