Yo diría que esto depende principalmente de cuán compleja será la aplicación. Abordaré los dos extremos del espectro y el brumoso término medio, pero debe tenerse en cuenta que hay un gradiente de complejidad entre considerar.
En el lado más claro, simplemente aumenta un sitio web tradicional. Es decir, agregar efectos visuales, algunos componentes simples de interfaz de usuario y comunicación asincrónica. Aquí es posible que no necesite la administración de complejidad proporcionada por algo como Backbone.js o JavascriptMVC. En mi empresa, en estas situaciones, utilizamos las clases MooTools y las utilidades principales (como Function.prototype.bind) para la organización del código, jQuery para la manipulación de dom y QUnit para las pruebas.
En el lado más complejo estaría construyendo una aplicación de cliente grueso, posiblemente de una sola página, donde todo menos la lógica comercial crítica se introduce en el cliente. En este caso, los frameworks mvc como SproutCore, Cappuccino Framework, JavascriptMVC o Backbone.js se vuelven extremadamente importantes para administrar la complejidad de interacción de la interfaz de usuario y el servidor.
- ¿Cuál es la diferencia entre un desarrollador de software y un ingeniero de software?
- Una vez que se ha creado la idea, ¿cuáles son los primeros pasos desde una perspectiva tecnológica para crear una plataforma en línea?
- ¿Cuál es la diferencia entre desarrollo web, desarrollo de software y desarrollo de aplicaciones web?
- ¿Por qué Python no se usa para el desarrollo de software profesional?
- ¿Qué son los softwares (editores) que las personas pueden usar para crear pequeñas aplicaciones más rigurosas y fáciles de mantener (y quizás menos flexibles) que las hojas de cálculo?
Si el nivel de complejidad se encuentra en algún punto entre esos dos extremos, reduciría la lista de los marcos de mvc mencionados anteriormente a Backbone.js. Es liviano pero aún le brinda la organización y la administración del estado necesarias para una experiencia de cliente “más rica”, sin los bits innecesarios que los otros incluyen (por ejemplo, un completo kit de herramientas de interfaz de usuario).