Pregunta

Hay muchos marcos de aplicaciones web disponibles en estos días, para casi todos los idiomas disponibles . En su experiencia, ¿cuáles son sus fortalezas, debilidades y características únicas? Suponiendo el lujo de la elección, ¿qué factores lo llevarían a considerar uno sobre el otro?

Estoy más interesado en la experiencia directa de las personas con uno o más marcos, en lugar de una comparación exhaustiva de todo lo que hay por ahí. Esperemos que la comunidad SO tenga programadores que tengan experiencias buenas y malas con cosas como Rails , ASP.NET , Django , TurboGears , o JSF . También sería bueno saber si alguien está utilizando uno de los marcos menos comunes como Seaside o Weblocks .

El lenguaje de programación es una diferencia obvia, pero un Java vs Ruby flamewar no será muy divertido, y la mayoría de estos marcos parecen ser al menos tanto una inversión en tecnología, herramientas y complejidad como su idioma de elección; así que estoy más interesado en cosas como:

  • Velocidad y conveniencia de desarrollo
  • Barreras de entrada: tanto en términos de capacitación de desarrolladores como de infraestructura necesaria
  • Bloqueo: ¿cuánto código podría mantener si tuviera que cambiar los marcos?
  • Flexibilidad: ¿el marco dicta su arquitectura o diseño? (Si eso sería algo bueno o malo, probablemente sea mejor dejarlo en otra discusión).
  • Rendimiento, escalabilidad y estabilidad, ¡obviamente dependiendo de los desarrolladores!
¿Fue útil?

Solución

Voy a abordar brevemente cada área para tres marcos populares de Python. Esto solo se basa en mis experiencias y observaciones personales.

Velocidad y conveniencia de desarrollo

Para TurboGears , Pylons y Django , la velocidad de desarrollo es aproximadamente igual. Al ser marcos modernos, es fácil comenzar en un nuevo sitio y comenzar a juntar páginas. Python es famoso por su rápido desarrollo y depuración, y pondría cualquier framework de Python con un tiempo de desarrollo más corto que cualquier otra configuración con la que haya trabajado (incluidos PHP, Perl, Embedded Perl y C # / ASP.Net).

Barreras de entrada: capacitación e infraestructura para desarrolladores

Si conoces Python y estás dispuesto a ver un tutorial de video de 20 minutos , Puede crear un sitio de tipo wiki bastante completo desde cero. O puede caminar por un tutorial del sitio de marcadores sociales en 30 minutos (incluida la instalación ). Estos son ejemplos de TurboGears, pero los otros dos marcos también tienen tutoriales casi idénticos.

La infraestructura de prueba / desarrollo que viene de la caja con estos marcos generalmente es suficiente para completar la mayoría de los sitios. En cualquier momento, puede intercambiar componentes para cumplir con los requisitos de su entorno de producción. Por ejemplo, SQLite está bien para configurar sus modelos y cargar datos de prueba, pero deseará instalar MySQL (por ejemplo) antes de publicar o almacenar grandes cantidades de datos.

En todos los casos, los requisitos son muy bajos y están totalmente dictados por sus requisitos de escalabilidad y no por las peculiaridades del marco. Si te sientes cómodo con un determinado idioma de plantilla u ORM, probablemente se conectará directamente.

Lock-in

Este es un problema generalizado en todos los marcos. Cuando selecciona un idioma, limita las opciones de reutilización de código. Cuando selecciona un templater, se le vuelve a bloquear (aunque es más fácil de cambiar, en general, que otras cosas). Lo mismo ocurre con su ORM, base de datos, etc. No hay nada que hagan específicamente estos marcos que ayuden o dificulten el bloqueo.

Flexibilidad

Se trata de MVC con estos tres marcos. Como dijiste, ¡esa es una discusión muy diferente!

Rendimiento, escalabilidad y estabilidad

Bueno, si escribes un buen código, ¡tu sitio funcionará bien! Una vez más, este es un problema en todos los marcos abordados por diferentes técnicas de desarrollo y probablemente esté fuera del alcance de este respuesta.

Otros consejos

Django vs Struts.

Velocidad y conveniencia de desarrollo.

Django: funcionando en el tiempo requerido para compilar el modelo (en Python), definir las asignaciones de administrador (2-3 líneas de código por clase de modelo) y crear plantillas HTML para trabajar con las vistas de detalles maestros predeterminadas.

Struts: tiene que definir una base de datos en SQL, luego definir las asignaciones ORM en iBatis. Luego defina, pruebe y genere varios componentes de aplicaciones, utilizando clases de acción y páginas de plantillas JSP. Ah, y necesito definir los EJB para mover los datos de la aplicación a los JSP. Todo tiene que compilarse y tengo que trabajar a través de numerosos detalles para obtener algo que se ajuste a las reglas de compilación.

Barreras de entrada , tanto en términos de capacitación de desarrolladores como de infraestructura necesaria

Constante en todos los marcos y lenguajes. Esto es más o menos un elemento no importa. Ningún lenguaje o marco es inherentemente fácil de entrenar. Todos los marcos web tienen requisitos de infraestructura similares.

Bloqueo : ¿cuánto código podría conservar si tuviera que cambiar los marcos?

Esto no tiene mucho sentido. Si cambia de Tomcat a cualquiera de los derivados de Tomcat, puede conservar una gran cantidad de código Java. De lo contrario, generalmente no conserva mucho código cuando cambia de marco.

Flexibilidad : ¿el marco dicta su arquitectura o diseño? (Si eso sería algo bueno o malo, probablemente sea mejor dejarlo en una discusión por separado).

En realidad, eso no es una discusión separada. Ese es el punto. Los marcos dictan tu arquitectura, y eso es algo bueno. De hecho, el marco es un código que no tiene que escribir, probar, depurar o admitir. Es bueno que su aplicación esté confinada por el marco a una estructura comprobada y viable.

Rendimiento, escalabilidad y estabilidad , ¡obviamente depende de los desarrolladores!

El rendimiento es el lenguaje (no el marco). Es diseño Hasta cierto punto, también es su configuración de implementación.

La escalabilidad es marco (no lenguaje). Es diseño y configuración.

La estabilidad está en todos los ámbitos: sistema operativo, lenguaje, marco, diseño, programación, control de calidad y configuración de la implementación.

Esta es una pregunta increíblemente subjetiva ... y esa es una etiqueta que debes agregar a tu pregunta. Como varios comentarios ya han sugerido, ya ha especificado una guía bastante buena; ¿Qué estás preguntando en realidad? ¡Hay mil millones de opiniones sobre este tipo de cosas y definitivamente no hay una respuesta correcta!

Personalmente, comencé a usar .html, me moví a php, probé ruby ??(lo odié), descubrí Python / DJango ... y desde entonces me siento feliz. Aunque es un camino muy único para tomar (probablemente), por lo que su millaje puede variar :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top