15 de noviembre de 2009

La Guerra de Los Frameworks (parece una publicidad de cumbia)

Ya hablé por encima sobre frameworks PHP. Ahora quiero plantear el panorama de una manera más amplia.

En estos días estuve planteando la posiblidad de comenzar nuevos proyectos web bastante amplios y hacerlo planteando un cambio de "tecnología". Hasta ahora, todo desarrollo web profesional que realicé fue hecho en PHP, sin frameworks en un comienzo y apoyado en cakePHP sobre el final.

En los últimos días me surgió las ganas de cambiar un poco de aires. Esto es, de lenguaje. Este cambio implica, por supuesto, pensar en un nuevo ambiente, en un nuevo servidor, probablemente nuevo IDE... en fin.. varios aspectos que son bastante amplios.

¿Por qué tanto cambio? En primer lugar, porque busco diversión. Aires nuevos, investigación, exploración... nada más divertido.

El tema es.. ¿vale la pena? PHP es un lenguaje con pinta de obsoleto, muy estructurado en su espíritu y bastante más aburrido que la ""nueva"" onda de Ruby, Groovy, Python y similares, quienes todos están inspirados en cierta manera en Smalltalk y su fantástica manera de trabajo.

Así que, como dije, me puse a investigar en busca del candidato a nuevo lenguaje a utilizar, nuevo ambiente, nuevo mundo. ¿Cuáles son las opciones?





Ruby on Rails

El afamado framework de desarrollo web que se apoya en Ruby, un lenguaje de exquisita programación. Es un framework que labura bajo el modelo MVC y que agiliza todo al mango. De hecho, cakePHP y una innumerable cantidad de otros frameworks se basan en RoR.

MVC y Active Record son el corazón de este framework. He hablado con algunas personas que creen que Active Record es algo propio de RoR. En realidad, nos referimos a un patrón de diseño de objetos para el mapeo objeto-relacional que se usa mucho en aplicaciones empresariales. Lo que no hay duda es que la implementación de RoR es probablemente la más afamada.

Está promocionado como la solución definitiva (¿quién no promociona así?) de una manera extrema, pero realmente me han saltados mis dudas. RoR en sí me parece genial, pero todos sabemos que la máquina virtual de Ruby apesta y, buscando en la red, no encontré un sólo ejemplo de sitio grande o sistema web de dimensiones fuertes en RoR, salvando por Tweeter y que, según dicen, está abandondando lentamente Ruby on Rails por problemas de rendimiento y escalabilidad.

Entonces, si Ruby es tan copado y su framework estrella realmente agiliza mucho el trabajo... ¿dejar de usarlo porque la máquina virtual es malísima?


Ruby on Rails con JRuby

JRuby es una implementación de Ruby para que corra en la JVM. En casi todos los benkmarch que se puede encontrar en internet, se puede apreciar una velocidad muy superior a la de Ruby sobre su máquina nativa, aunque siempre consumiendo más memoria (de todas maneras, todos sabemos el consumo de memoria que tiene la JVM).

Se busca de JRuby sea 100% compatible con Ruby (y así se promociona), pero, navegando en foros, se descubre que no es del todo cierto, aunque seguramente se estén acercando muchísimo con el paso de las versiones.

Por otro lado (y en esto Ruby también tiene complicaciones), disponemos de un IDE potentísimo y muy completo. Me estoy refieriendo por supuesto a NetBeans, ya que Sun (u Oracle), se esforzó bastante en darle soporte a JRuby.

Si sumamos que podemos encajar librerías Java en nuestro código JRuby (como pasa con Jython), gracias a la gran cantidad de repositorios que tenemos, estamos ante una interesante propuesta.

La promoción es simple: "La simplicidad de Ruby, el poder de Java".

Grails

El santo Grial, "La búsqueda ha finalizado", como ellos lo promocionan. Grails es un framework web que se labura con el lenguaje de programación Groovy, otro lenguaje que está implementado sobre la JVM y que parece muy divertido de programar.

Como dijimos antes.. usar la plataforma Java (sin Java..) trae muchos beneificios, como Hibernate, Spring..etc, tecnologías de probadísimo funcionamiento.

Grails está, como se pueden imaginar, basado en Rails, pero utilizar Groovy en lugar de Ruby.

¿Qué te hace elegir Groovy en lugar de Jruby? Bueno.. supongo que gusto y el poder que tengan las publicidades de los diversos contendientes en tu corazón.


Django

En esta caso, el framework ulitiza el simplísimo Python. También se explota el MVC, pero, a diferencia de Rails, no te encasilla tanto en este modelo.

Cambia un poco los nombres (los controladores se llaman Views, y no son las Views de Rails, que acá se llaman templates) pero es básicamente muy parecido.

Al igual que RoR, este framework fue utilizado primero en producción y luego liberado al público.

En cuanto al servidor web, por lo que pude leer, se recomienda utilizar Apache con mod_python en producción y PostgreSQL como motor de base de datos.


Conclusión

Ruby on Rails es el más afamado, lejos. Pero, creo yo, esto se debe a un magnífico laburo de publicidad. Y no digo esto porque RoR sea malo, nada más lejo de la realidad, sino porque existen otros frameworks que lo imitan y tienen mejor rendimiento gracias a un ambiente más potente.

Dejando esto de lado, todos los frameworks analizados laburan de manera muy similar, todos tienen sus pro y contra... seguimos en la misma que siempre:



En lo personal... ya obtuve la diversión que buscaba haciendo pruebitas en cada uno y jugando un rato... así que.. en lo profesional, voy a continuar con PHP que es aún (más allá de ser un lenguaje aburrido..) algo que funciona bárbaro. Yahoo, Wikipedia, Facebook, YouTube son ejemplos de que php es una herramienta impuesta y que funciona (en Facebook quizás no tanto... xD). Así que.. seguiré esperando algún cambio más grande para pensar en algo
distinto

¿Qué opinan?

No hay comentarios: