aboutsummaryrefslogtreecommitdiff
path: root/content/2011/01/django-o-la-fabrica-de-churros.gmi
diff options
context:
space:
mode:
authoralex <alex@pdp7.net>2021-03-13 11:43:27 +0100
committeralex <alex@pdp7.net>2021-03-13 11:43:27 +0100
commit71d53390b95dba0ffe9ca90a5ea346f8314e2afa (patch)
tree198683640c9fd7cd187dac30d06fc7feed655178 /content/2011/01/django-o-la-fabrica-de-churros.gmi
parent389ca805686f8ec7238dd6b994825380974dc001 (diff)
Initial (draft) build
Diffstat (limited to 'content/2011/01/django-o-la-fabrica-de-churros.gmi')
-rw-r--r--content/2011/01/django-o-la-fabrica-de-churros.gmi26
1 files changed, 26 insertions, 0 deletions
diff --git a/content/2011/01/django-o-la-fabrica-de-churros.gmi b/content/2011/01/django-o-la-fabrica-de-churros.gmi
new file mode 100644
index 00000000..72e89059
--- /dev/null
+++ b/content/2011/01/django-o-la-fabrica-de-churros.gmi
@@ -0,0 +1,26 @@
+# Django o la fábrica de churros
+2011-01-08
+
+Programar aburre, porque tendemos a programar lo mismo una y otra vez. Así, muchos caen en la tentación de buscar en exceso maneras de reducir el código. Dijo Wirth que algoritmos más estructuras de datos igual a programas; y cabe añadir que en la mayoría de programación web, poco algoritmo hay- así que con definir el esquema de datos, poco más deberíamos hacer, ¿no?
+
+Estos días me he encontrado frente a una web sencilla, pero que a mi juicio no era adecuada realizarla con un CMS (puede que en gran parte porque no he encontrado un CMS que me guste) y me he decidido a probar Django. Django es un framework Python cuyo lema es "batteries included"; alusión al hecho de que resuelve una gran parte de los problemas típicos de desarrollo web- cosa que certifico y a la que añado que los resuelve a mi gusto. El otro gran qué de Django es la interfaz administrativa que trae; mediante unas líneas declarativas, obtienes una web de gestión que permite añadir, editar, eliminar, etc. entidades del modelo de datos, reduciendo en una gran parte el trabajo que le queda a uno.
+
+¿A parte de esto, qué otras virtudes tiene Django?
+
+* Vistas genéricas. En particular, lista/detalle sobre los modelos de datos, resolviendo correctamente paginación, ordenación, filtrado, etc. Tiene también vistas y maquinaria para hacer CRUD, que supongo funcionan bien pero que no he usado
+* Usa HTML/HTTP "correcto" sin hacer cosas raras, añadir Javascripts innecesarios, serializaciones raras, etc. Todo muy limpio
+* Está documentado. No llega al nivel de Java o Spring, pero desde luego, comparado con Rails y otras estrellas de código libre...
+* No usa generación de código. Odiamos la generación de código.
+
+Pero también le encuentro algún que otro defecto:
+
+* Definimos los modelos en lenguaje "Django". Está bien, pero no es "SQL-completo". Hay modelos, restricciones, etc. que no podremos expresar en este modelo, como por ejemplo, claves primarias compuestas o "listas ordenadas" (relaciones 1-n con campo de ordenación). El lenguaje para consultas tiene las limitaciones típicas de todos los ORM.
+* No me gusta Python. Me gusta la sintaxis estilo C, y exijo grandes ventajas a los que la descartan. Me gusta el tipado estático, y no estoy seguro que haya mucha magia en Django que necesite realmente tipado dinámico. Me gusta que mi editor trabaje por mi.
+* El sistema de plantillas está muy bien, pero es "regular" y no "gramatical", con lo que no admite expresiones donde debería ni otras estructuras muy convenientes. JSP con fragmentos de tag es *muy* superior
+* Tengo la sospecha que el funcionamiento sobre JVM no será para tirar cohetes. Además, si nos interesa funcionar sobre JVM, nos tenemos que limitar a Django 1.1 y evitar 1.2 de momento.
+* En general el sistema de internacionalización está muy bien, pero no soporta internacionalización en el modelo de datos (i.e. campos multilingües en las entidades)
+* No viene con nada para hacer Javascript/AJAX, aunque seguramente no sería de mi agrado, claro
+
+A pesar de esto, creo que es el mejor "framework completo" que he visto. Como plataforma "básica", sigo prefiriendo Java + Spring + Servlets + JSP + JSTL, pero creo que Django puede tener un lugar bastante importante en el arsenal de un desarrollador web. La pregunta es, ¿cuál es ese lugar?
+
+En mi opinión, Django ofrece una velocidad de desarrollo elevadísima para proyectos pequeños y medianos (siempre que no nos topemos con alguno de sus problemas). Para cosas gordas y/o que no encajen bien en Django, es lo de siempre; ¿hacerlo de cero o partir de un framework? Hacerlo de cero lógicamente es más tiempo, pero uno acaba conociendo intimamente la plataforma que hace y está toda a su gusto; usar un framework nos puede ahorrar tiempo, pero al hurgar dentro, a saber qué nos encontramos. Sospecho que las entrañas de Django están muy bien, pero... la decisión sigue siendo difícil. Mi poco amor por Python hace que probablemente yo no vaya a a apostar por Django más que para proyectos rápidos, pero intuyo que para muchos será una decisión más que acertada. \ No newline at end of file