[pyar] framework web

Esteban Kuber ekuber en gmail.com
Sab Sep 25 01:15:23 ART 2010


> El único inconveniente que le encuentro (y en mi caso, este punto
> sería el que me llevaría a decidir si utilizar o no Django en otro
> proyecto), es algo con lo que me tocó lidiar en estos últimos días: si
> estás, como en mi caso, acostumbrado a resolver todo con queries
> íntegramente en SQL, de alta complejidad, es (aparentemente) imposible
> utilizar el Framework para esto. Por queries de alta complejidad, me
> refiero a sentencias que incluyan:
> - gran cantidad de joins
> - selects con funciones
> - queries formados dinámicamente

Hay algo que tener en cuenta:

Django nació en los sistemas internos de un diario. Por lo tanto está
optimizado y pensado para:
 - Gran cantidad de visitas
 - Prototipado ágil
 - Iteraciones de desarrollo muy ajustadas (5 de la tarde "che, sabés
que, podés armarte una comparación de todos los candidatos de esta
elección antes de que cierren las urnas a las 7? Gracias!")
 - Modelo de relaciones relativamente sensillo, o sea, hechos/datos.

No se encontraba pensado originalmente para flujos de trabajo o gran
cantidad de lógica de negocio, era una forma de mostrar data no
demasiado estructurada de una forma rápida. Ahora el permite muchísimo
más, obviamente.

> En definitiva, queries que por algún motivo, te obliguen a abandonar
> la idea de "objeto/modelo" de Django. Personalmente, esto lo vi
> reflejado al momento de tener que hacer reportes estadísticos
> globales.

Por suerte podés hacer tu camino, dejando de lado la ORM (y perdiendo
la admin), después de todo esto es Python puro :D, pero es el problema
de siempre con las capas de abstracción: en algún momento encontras un
techo a medida que crecés, ya sea la ORM, el sistema de template, el
GIL de Python, tu cerebro... etc. Lo bueno de Django es que a esta
altura la arquitectura te permite arrancarle un cacho y seguir usando
el resto. Si sos Mark Zuckerberg seguro vas a terminar no teniendo
nada de Django, pero podés facilmente empezar usandolo e ir cambiando
de a módulos a medida que chocas con los techos.

Charla muy recomendada: Snakes and Rubies
http://www.djangoproject.com/snakesandrubies (video directo
http://video.google.com/videoplay?docid=2939556954580527226) (la cual
termino de convencer que los rubiers son lo más agrandado que hay, si
no lo ves entero, mira la ultima media hora, que es el ping pong de
preguntas y respuestas.)


> Soy desarrollador independiente y en los ultimos años, vengo usando c#
> con Nhibernate como ORM en ambiente windows (anteriormente java, c...).
> No tengo experiencia de produccion en pyton pero me interesa comenzar
> a usarlo, fundamentalmente en plataforma linux.

Te recomiendo que vayas de shopping mirando
 - http://turbogears.org/, orientado más a aplicaciones completas, es
más complejo, más feo, más trabajo, mas escalable, más puro
 - Django: mas "Rails", mas facil de seguir un camino y una gran
comunidad. Es dificil que Django "no te sirva".
 - web2py: ganando tracción, varios en la lista a quienes les gusta.
Lo poco que me mostraron me gusto, pero me dio la sensación que
*tenés* que estar a mas bajo nivel que los dos anteriores.
But what do I know, I'm using webapp framework on Google App Engine
right now, too low level on some things, too high level on others.

(Mira http://wiki.python.org/moin/WebFrameworks y asustate con la
cantidad de opciones.)

Si te cierra la filosofía general de Django, usalo. Es dificil que te
quejes demasiado. Probalo para algun proyecto corto que hayas tenido
pensado hacer (si tenés el tiempo, obviamente) como para ver si te
sentís a gusto con la idiosincracia del framework. Si no me equiboco
armarse un blog es el "Hola mundo!" de Django :)

Asegurate de leer el Zen de Python ("import this" en la consola de
Python) y entender el mismo. Tratá de no traer Csharpismos y (peor
aún) Javismos a tus programas en Python, es el camino dificil.
</rant>

Que manera de escribir boludeces, me voy a dormir. No me des demasiada
bola, estoy con deprivación de sueño y de discuciones filosóficas en
el área del desarrollo informático.



More information about the pyar mailing list