python - Django vs web2py para un desarrollador principiante
(4)
(descargo de responsabilidad: yo soy el líder del proyecto para web2py)
Django ha sido alrededor de 5 años más que web2py, por lo tanto, tiene más usuarios y más aplicaciones para presumir. Django tiene lo que ellos llaman "admin", que no es lo mismo que "admin" de web2py, sino más bien "appadmin" de web2py. El "administrador" de Django es mejor y más personalizable que "appadmin" de web2py. Django no tiene el equivalente del "administrador" de web2py. (perdón por el nombre de confusión).
web2py es más compacto y tiene más funcionalidades listas para usar (bases de datos más compatibles, IDE basado en web, sistema de tickets, ejecuciones en GAE sin parches, múltiples métodos de inicio de sesión, control de acceso basado en roles, interfaz de traducción basada en web, soporte para múltiples conexiones de bases de datos, transacciones distribuidas, y más).
Para mí, la funcionalidad más importante de web2py son las migraciones automáticas. Django no los proporciona fuera de la caja.
Para web2py la compatibilidad hacia atrás a largo plazo es un objetivo principal, junto con la seguridad. Django es comparable a web2py en términos de seguridad (excepto que web2py tenía prevención de CSRF y escapando por defecto en las plantillas antes que ellos), pero Django rompió la compatibilidad con versiones anteriores cuando se lanzó 1.0. web2py nunca lo hizo desde octubre de 2007.
Para mí, la sintaxis web2py es más natural:
db(db.tablename.fieldname <= value).select() # web2py
Tablename.objects.filter(fieldname__lt=value) # Django
No conozco ninguna funcionalidad de web2py que no esté presente en Django. He hecho esa pregunta muchas veces porque, si la hay, queremos agregarla a web2py, pero aún no he recibido una respuesta satisfactoria.
Por supuesto, hay cosas que ambos hacemos, pero de manera diferente. Django sigue "explícito es mejor que implícito". web2py no lo hace y en su lugar sigue "todo debería tener un comportamiento predeterminado". Creo que esto hace que el código y la configuración de web2py sean más compactos.
De todos modos, sea lo que sea que elija, son marcos web sólidos demasiado buenos y las similitudes son menores que las diferencias. Los desarrolladores de Django son personas muy inteligentes.
La comunidad web2py es muy amigable. Debería intentar hacer una pregunta en el grupo web2py google y en el grupo Django. Solo como un experimento.
¿Cuál de estos dos marcos es más adecuado para un desarrollador con 11 meses de experiencia? Decidí aprender Python para la codificación del lado del servidor y quería saber cuál de estos sería más adecuado para alguien de mi nivel de habilidad. Acabo de pasar unos días jugando con web2py y realmente me gusta y me pregunto si Django ofrece algo más que me estoy perdiendo.
PD. ACTUALIZACIÓN: Gracias a todos por la maravillosa contribución, después de comprar tres libros django y pasar por algunos pequeños proyectos / tutoriales tanto para django como para web2py, me he decidido por web2py. Este es un marco maravilloso, que hace que el desarrollo web sea realmente divertido para un newbe. Recomendaría a todos los novatos aprender este marco, ya que será general en el futuro. Django también es un marco maravilloso, pero web2py es mejor en mi opinión de experiencia limitada.
En muchas palabras: (según entendí)
Web2py es definitivamente más fácil y hace que el código sea más simple y limpio. Pero Django te ofrece una mejor comprensión de lo que está sucediendo y también más poder para modificar el diseño / proceso.
Web2py se centra más en "lo simple es mejor que lo complejo", pero Django se centra más en "lo explícito es mejor que lo implícito". Dos partes de The Zen of Python, por lo que es muy difícil decir qué marco es más Pythonic.
Soy un completo novato tanto con Web2py como con DJango, pero quería un framework web con el que pythonic jugar, aprender y crear una interfaz para una base de datos simple. Miré en web2py pero no pude encontrar ningún tutorial decente, dirigido a novatos completos, cuando conseguí instalar web2py, lo cual era muy fácil, no sabía qué hacer a continuación, no parecía haber tutoriales que me guiaran en cómo construir una aplicación web simple, (no solo hola mundo). Por otro lado, DJango escribió su primera aplicación DJango, parte 1 . Esto ha sido realmente bueno, dando una introducción a un novato sobre cómo configurar y usar el marco escribiendo una aplicación web simple. Hasta que Web2Py lo ofrezca, mi voto va a DJango.
Tanto Django como web2py son excelentes marcos web de "pila completa" con características y capacidades similares: no te perderás tanto como principiante con cualquiera de los frameworks.
Es difícil responder a su pregunta sin saber más sobre lo que quiere hacer con su aprendizaje. Algunos dirían que existe el peligro de aprender el marco y no el idioma, por lo que sería mejor comprender primero el lenguaje Python y los marcos de menor peso (por ejemplo, Flask o wekzeug ) primero.
Habiendo dicho eso, web2py tiene una curva inicial de aprendizaje más baja que Django ya que fue diseñada específicamente como una herramienta de aprendizaje . Entonces diría que has hecho una buena elección. Nunca se desperdiciará aprendizaje y si decidió que necesita algo más en el futuro, las buenas técnicas que habrá aprendido utilizando web2py no se desperdiciarán.
Aunque hay más recursos de aprendizaje para Django, ya que ha durado más tiempo y tiene más usuarios, aprender web2py también es rápido debido al excelente book y las respuestas casi instantáneas a las preguntas del grupo de usuarios .
Si buscas un trabajo, hay más empleos en Django, eso podría ser un factor. Habiendo dicho eso, la comunidad web2py recientemente ha creado experts4solutions donde podría promover sus habilidades y disponibilidad en el futuro.
¡Que te diviertas!