viernes, mayo 18, 2007

Django Fever

La programación para la web no me había llamado la atención hasta hace poco, la idea de aprender PHP u otras cosas simplemente no me atraía. En ese aspecto soy privilegiado, nunca he tenido que usar cosas que no me gustan, y como todo lo que sé lo he aprendido por mi cuenta, nunca me he visto forzado a aprender cosas que no quiero; no sé si esto es bueno o malo pero así es. Ahora que estoy buscando chamba ha surgido la necesidad de aprender PHP, en verdad que anteriormente lo había tratado de aprender varias veces, pero no sé por qué siempre terminaba aburriéndome. Python lo usaba para crear scriptcillos o aplicaciones con interfaces gráficas pero nunca pensé en usarlo para la web aunque ya existían Zope, PSP, Webkit y otros.

Me topé con Django por primera vez al estar buscando ejemplos de aplicaciones escritas en Python para el taller que dí el año pasado en el congreso de Chetumal, en ese mismo congreso Fabien dió una conferencia y un taller sobre Rails, a muchos les gustó la forma en que Rails hace las cosas y no es para menos porque el desarrollo ágil es algo que ningún programador puede pasar por alto.
Entonces, ¿por qué no escogí Rails?, porque no estoy a gusto con Ruby; citando a Matz, el creador de Ruby, cuando le preguntaron por qué alguien familiarizado con Perl o con Python debería cambiar a Ruby respondió: "Si estás contento con con Perl o con Python no tienes que cambiar" y la verdad Python me hace muy feliz. ;-)
Django y Rails se parecen pero también es cierto que tienen sus diferencias, sería ocioso tratar de compararlos, pero como estoy ocioso mencionaré sólo algunas de las grandes diferencias:
  1. Rails es MVC, Django es MTV ;-)
  2. Django tiene una interfaz de administración muy perrona, Rails no.
  3. Rails tiene soporte para AJAX, Django no.
  4. Django tiene soporte para muchos idiomas incluyendo el galés xD, Rails usa plugins.
  5. Rails ya alcanzó la versión 1.0, Django no.
  6. Django es más rápido que Rails.
Por supuesto que la filosofía detrás de cada uno de estos frameworks es diferante y para ser justos aclararé los dos últimos puntos; aunque Django va en la versión estable 0.96, se ha utilizado en producción en sitios con alto tráfico ya que nació en un ambiente periodístico y en cuanto al performance diré que Python actualmente es más rápido que Ruby pero muchos esperan que la versión 2.0 sea más rápida, claro que también todos los pythonistas esperamos con ansias el Python 3000.
Sea cual fuere el framework o lenguaje de tu preferencia con toda seguridad éstos son unos ganadores, así que no dudes en usarlos. No creo que haya pasado la época de PHP pero ya es tiempo de darle agilidad a la web, y no, no me olvidé de CakePHP, sólo que dudo (por favor phperos no me linchen) que podamos comparar un lenguaje que no nació como lenguaje propiamente, es exclusivamente para la web (si ya sé que hay enfermos que usan PHP+GTK :P) y al que posteriormente se le añadió soporte para orientación a objetos con lenguajes que nacieron siendo orientados a objetos y de propósito general; digo PHP todavía tiene su nicho para rato, no por nada estoy tratando de aprenderlo, pero no creo que sería una buena comparación, finalmente el único argumento que da el creador de CakePHP es que el hosting ya está puesto para PHP, pero créanme que hosting como el de Webfaction o Dreamhost por mencionar los más conocidos soportan Django sin problemas y están muy chingones.

4 comentarios:

Anónimo dijo...

Django se mira muy bien, aunque los desarrolladores andan dandole bastante a Pylons + WSGI.

Yo en lo particular he encontrado en Turbogears un framework excelente para aplicaciones web dinámicas y me ha gustado mucho, ya que está muy bien documentado y como que devolada le agarras la onda.

Aunque lo que me gusta de todos es la utilización de SQLObject o SQLAlchemy para modelar están de poca madre, en serio que Python para las bases de datos es bien chingón.

My 2 cents :D.

urkonn dijo...

La mayoría de los frameworks pythonescos ya usan WSGI.

TurboGears también es un buen framework o megaframework, su creador juntó un montón de cosas que ya estaban hechas y las puso a trabajar.

Tienes razón, python está poca madre para manejar bases de datos.

A mi lo que me gusta de Django es su elegancia y sencillez, creo que muchos desarrolladores lo adoptarían si tuviera la misma clase de marketing que tiene Rails.

Anónimo dijo...

urkonn:
este post es bien ilustrativo. Gracias.
Mencionaste un par de servicios de hosting, ¿me puedes platoicar cuál prefieres para hospedar django y por qué?

saludos.

urkonn dijo...

Dependiendo de lo que necesites o prefieras para desplegar tu aplicación. Webfaction soporta django desde el inicio y puedes usar mod_python si mal no recuerdo, ya tuve un sitio corriendo allí y es bastante bueno; Dreamhost por otro lado es más barato, tiene soporte para Python pero el despliegue lo haces mediante FastCGI, que dicen que es más rápido que mod_python pero requiere un poco de trabajo adicional.
Existen otros servicios para hospedar tu proyecto además de estos http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts