¿Que son los mitos de web2py? ============================== Los mitos son criticas (negativas), quizás por desconocimiento, a web2py. Por ej, en el `PyDay Rafaela 2010 `_, despues de la charla de `web2py `_ vino una charla de `django `_, y el orador, dijo que web2py no soporta URL "lindas", que siempre tienen el mismo esquema (justamente como comentabamos en el grupo, routes.py sirve para modificar las URLs). Para desmitificar estas afirmaciones que no se ajustan a la realidad, se creó esta página, para listarlas y explicar porque no son ciertas. ¿Cuales son los mitos de web2py? ================================ En concreto, algunos de los mitos sobre web2py y sus verdades: ---- Mito: web2py se lleva mal con los sistemas de versionado ------------------------------------------------------------------------------------ Falso, web2py tiene soporte para mercurial incorporado, y las aplicaciones pueden versionarse teniendo en cuenta la estructura de directorios (ver archivos .hgignore que ya contemplan estas cuestiones). Similar para otros sistemas de versionado y como en otros frameworks web. http://www.web2py.com/book/default/section/3/10?search=mercurial ---- Mito: web2py no tiene herramientas por consola (cli) ---------------------------------------------------------------------------- Falso, web2py trae incorporado dichos temas (shell interactivo, ejecución de scripts importando módulos y modelos, etc) La parte visual y la parte web es opcional. http://www.web2py.com/book/default/section/4/1?search=web2py.py Además trae una consola (shell) web incluida! http://www.web2py.com/book/default/section/1/6?search=shell ---- Mito: No se puede usar editores propios ni IDEs avanzadas con web2py ----------------------------------------------------------------------------------------------------------- Más allá de la IDE web que viene incorporado y es muy útil para editar código, html, etc. de manera rápida y ubicua, no es la única forma, y se puede usar el editor preferido, y configurando bien, cualquier otra IDE, con autocompletado, chequeos estáticos y demás, por ej.: * Wing IDE: http://wingware.com/doc/howtos/web2py * Eclipse: http://www.web2py.com/AlterEgo/default/show/37 También hasta se puede modificar el editor web y usar otro local (con mozilla): http://www.web2py.com/AlterEgo/default/show/73 ---- Mito: la DAL no es un ORM ------------------------------------------ Falso, si bien es una capa de abstracción de datos, se pueden usar campos virtuales y clases para hacer modelos similares que en SqlAlchemy o Django: http://www.web2py.com/AlterEgo/default/show/189 Lo que si es cierto es que un ORM no es una DAL, perdiendo en ocasiones la flexibilidad del modelo relacional ;-) Además, esto hace a la DAL mucho más fácil de aprender, sin necesidad de enseñar en un principio programación orientada a objetos. Inclusive, la DAL puede ser más rápido que un ORM: http://www.web2py.com/AlterEgo/default/show/76 ---- Mito: las URL de web2py son feas --------------------------------------------------- Totalmente equivocado, más allá de que las URL en web2py son mucho más prácticas y no requieren expresiones regulares, existe routes.py para reescribir las URL de entrada y salida: http://www.web2py.com/book/default/section/4/15?search=routes.py ---- Mito: web2py ejecuta los archivos en vez de importarlo, y eso es malo... ---------------------------------------------------------------------------------------------------------- Ocacionalmente web2py ha sido criticado por usar exec/execfile en vez de import/reload para ejecutar modelos y controladores. Afirmamos que el método de web2py es mejor por dos razones: * Permite ejecutar/importar en un contexto separado, por lo que no hay conflictos con las definiciones de clases y limpieza luego de descargar el módulo de memoria. * Es más rápido (5X aprox). Ver Comparación de velocidad. Además, la evaluación en tiempo de ejecución es una de las características que le dan dinamismo y flexibilidad a Python. A su vez, esto permite, por ejemplo, ante cualquier cambio, no tener que reiniciar el servidor web (apache), aún usando mod_wsgi. http://www.web2py.com/AlterEgo/default/show/131 ---- Mito: web2py no soporta pruebas de unidades (unittests) ----------------------------------------------------------------------------------- Falso. Si bien web2py viene incorporado con doctests, es posible realizar unittests completos (inclusive con acceso a la base de datos) y ejecutarlos, utilizando el shell por linea de comandos: http://www.web2py.com/AlterEgo/default/show/260 ---- Mitos: los formularios automáticos no son muy flexibles -------------------------------------------------------------------------------------- Falso. Se pueden personalizar completamente los formularios: http://www.web2py.com.ar/wiki/default/_page/Formas_personalizadas Incluso se pueden crear formularios manuales facilmente, reusando o redefiniendo los validadores definidos en el modelo (que accedan o no a una base de datos): http://www.web2py.com/AlterEgo/default/show/128 http://www.web2py.com/AlterEgo/default/show/146 Y más aún, se pueden crear nuevos widgets fácilmente: http://www.web2py.com/AlterEgo/default/show/170