¿Qué marco JS es mejor, Backbone, Ember o Angular?

AngularJS

1. ¿Qué es AngularJS?
AngularJS es un marco JavaScript del lado del cliente que le permite organizar aplicaciones grandes y pesadas para el cliente en algo manejable.

2. ¿Qué hace Angular mejor que los marcos de la competencia?
Angular tiene características ingeniosas, como el enlace de datos bidireccional, la capacidad de crear etiquetas / atributos / comentarios HTML personalizados que encapsulan la funcionalidad y directivas integradas que amplían la funcionalidad del HTML normal. Angular también es muy versátil, se puede usar para proyectos de aplicaciones grandes de una página o para un pequeño elemento; no se requiere mucha configuración para comenzar a usar las directivas integradas de Angular.

3. ¿Dónde se queda corto Angular?
El mayor inconveniente de Angular es que puede haber muchas formas de hacer una cosa. Hasta que use Angular para algo bastante grande, puede ser difícil encontrar las mejores formas de hacer las cosas. Además, debe tener mucho cuidado al limpiar eventos y elementos DOM si trabaja con ellos de forma “no angular” o puede crear pérdidas de memoria.

4. ¿Qué tipo de aplicaciones se construyen mejor con Angular?
Angular es ideal para casi cualquier cosa que desee hacer con JavaScript en el navegador, grande o pequeño. Si desea un marco que haga que su HTML sea más declarativo y le brinde características ordenadas como directivas, AngularJS es una gran opción. Si desea un marco más obstinado que lo obligue a estructurar el código de una manera particular, entonces es posible que desee ver otra opción.

Algunas aplicaciones creadas con AngularJS incluyen:

  • YouTube para PS3
  • Más ejemplos encontrados en: Construido con AngularJS

Backbone.js

1. ¿Qué es Backbone.js?
Backbone.js es un marco minimalista de JavaScript que da estructura a las aplicaciones web al extraer su “verdad” – su modelo – de su DOM y dentro de los objetos Modelo, Colección y Vista de Backbone.

2. ¿Qué hace Backbone mejor que los marcos de la competencia?
Backbone es relativamente fácil de implementar en una pequeña porción de una página, y con solo 6 KB para toda la biblioteca de versiones de producción, un pequeño código puede significar mucha organización para su aplicación. Con muchos menos conceptos que comprender que Angular o Ember, Backbone es más fácil de comenzar y permite un mayor control sobre el método de implementación.

3. ¿Dónde se queda corto la columna vertebral?
El enfoque de “no intervención” de Backbone puede significar implementar muchas características que ya están en otros marcos. La red troncal no incluye enlace de datos, la capacidad de tener cambios en un lugar desencadena un cambio en otro lugar. Puede configurar esto según el caso, pero no es una característica central de Backbone.

4. ¿Qué tipo de aplicaciones se crean con Backbone?
Siendo uno de los primeros frameworks JavaScript MVC (o lo que la mayoría llama MVV), Backbone tiene una ventaja sobre otros frameworks que solo se han vuelto populares en el último año o dos.

Algunas aplicaciones creadas con Backbone.js incluyen:

  • academia Khan
  • Groupon Now
  • Raya
  • Web móvil de Airbnb
  • Más ejemplos encontrados en: Backbone.js

Ember.js

1. ¿Qué es Ember.js?
Ember es un marco para crear aplicaciones web JavaScript enriquecidas.

2. ¿Qué hace Ember mejor que los marcos de la competencia?
Ember tiene convenciones que pueden ayudar a los desarrolladores a ser más productivos y escribir mejor código. Estas convenciones ayudan a facilitar la colaboración entre diferentes desarrolladores que trabajan en el mismo proyecto. Ember también tiene un enrutador de primer nivel y manejo de URL.

3. ¿Dónde se queda corto Ember?
Después de pasar lo básico, la curva de aprendizaje de Ember puede ser un poco empinada. Dado que la API ha cambiado tan rápidamente, muchos de los ejemplos de código que puede encontrar en línea están desactualizados.

4. ¿Qué tipo de aplicaciones se crean con Ember?
Ember se usa generalmente para crear aplicaciones de larga duración, como paneles de administración donde se espera que un usuario mantenga su navegador abierto durante muchas horas.

Algunos equipos que construyen con Ember.js incluyen:

  • Zendesk
  • Yahoo!
  • Travis CI
  • Más ejemplos encontrados en: Ember.js – Comunidad

Fuente:
Aprender haciendo – Code School

Hola,

La popularidad de JavaScript está creciendo enormemente y el ecosistema también está rodeado por él, con herramientas avanzadas, bibliotecas y, por supuesto, nuevos marcos. ¡Parece que cada dos semanas se lanza una nueva aplicación desarrollada en JavaScript y conmociona a toda la comunidad web! Ahora, la industria de desarrollo de software es cada vez más dinámica, diversa y se mueve a todo ritmo con las nuevas tecnologías. En lugar de usar JavaScript simple, los desarrolladores usan nuevos marcos frontend de JavaScript para desarrollar rápidamente aplicaciones web interactivas y se convierten en la columna vertebral de las aplicaciones de una sola página, proporcionando una mejora ilimitada para JavaScript simple.

Por otro lado, no es fácil, ya que pensaría crear una interfaz receptiva, fluida y mantenible para aplicaciones web, ya que hay datos que se envían de vuelta al servidor y se analizan los resultados, los almacenes de datos se actualizan y más hecho en el fondo. Permítanos explicar algunos de los marcos JavaScript influyentes y avanzados para el desarrollo front-end. Por favor, vaya al enlace dado aquí, los 5 mejores marcos frontend de JavaScript. Aquí, veremos los cinco mejores marcos JavaScript para aplicaciones web modernas.

Una vez que lea el artículo, podrá identificar uno de los marcos frontend de JavaScript, que es la mejor opción para sus necesidades. Estamos impresionados con AngularJS y ReactJS. Dicho esto, todos ellos son buenos sin embargo. En última instancia, el marco en el que elige invertir se aplicará a las preferencias personales y al tipo de requisitos / proyectos en los que desee trabajar. Sin embargo, si usted es un desarrollador, puede hojear cada marco y probarlo. Para los inversores, investigue o consulte con una buena empresa y sumérjase en una solución perfecta para su solución.

Espero que esto ayude. Avíseme si tiene alguna pregunta específica o comuníquese con el equipo de CronJ para obtener más ayuda. Gracias.

Eso depende de su definición de “mejor”. Basado en mi experiencia,

La columna vertebral es más fácil de aprender. Hay pocos conceptos que debe dominar: modelos, colecciones, vistas, enrutadores y eventos. Backbone es una biblioteca, y no un marco, y por esa razón, le brinda mucha más flexibilidad en términos de estructuración de su aplicación.

Angular es todo lo contrario. Es un marco completo, lo que significa que tiene menos flexibilidad. Tiene una curva de aprendizaje más alta debido a la cantidad de conceptos que necesita aprender para utilizar el marco. Pero una vez que domine esos conceptos, puede escribir menos código para lograr algunas tareas comunes que requieren más codificación con Backbone.

A algunos desarrolladores de Javascript no les gusta Angular porque creen que les está quitando el concepto de “programación”. Terminará utilizando muchos atributos de datos HTML5 para lograr alguna funcionalidad. Algunos desarrolladores ven esto como un beneficio. Prefieren escribir menos código y hacer las cosas más rápido. Pero de nuevo, eso viene con el costo de aprender.

Entonces todo vuelve a usted y lo que define como el “mejor”.

Si desea comenzar rápidamente y escribir código Javascript limpio, estructurado y mantenible, Backbone es probablemente una mejor opción. Si está dispuesto a invertir más tiempo en aprender y escribir menos código confiando más en el marco, Angular es una mejor opción.

Ambos son geniales y tienen fortalezas en algunas áreas y debilidades en otras áreas. Por ejemplo, un área donde Backbone brilla es conectarse al servidor. Si tiene una API RESTful en el servidor, puede recuperar o conservar sus modelos fácilmente con la menor cantidad de esfuerzo. Lograr lo mismo con Angular requiere más codificación. Pero Angular es fuerte en la manipulación DOM. Por ejemplo, filtrar y ordenar los resultados de una lista basada en alguna selección en una lista desplegable y casilla de verificación.

Mi sugerencia: si tiene tiempo, aprenda ambos y elija el marco / biblioteca adecuado para el proyecto correcto.

En caso de que esté interesado en aprender Backbone, tengo un curso completo sobre Udemy donde le enseño todo desde cero junto con muchos ejemplos del mundo real y, finalmente, algunos temas avanzados como pruebas de unidades y modularización con RequireJS. Puedes obtener el curso con un descuento aquí:

Tutorial de Backbone.js: Aprenda Backbone desde cero

Cuando me hicieron la misma pregunta hace exactamente 1,5 años, elegí Backbone.js con Marionette.js y lo mantengo incluso hoy.

Para entonces, Angular 1 estaba en su apogeo. Pero sé que fundamentalmente Angular 1 está mal. Lo del bucle de resumen no va a durar es lo que descubrí y lo descarté. Angular 2 ha creado cosas realmente buenas. El único problema es el ecosistema. ¿Qué parte del ecosistema de Angular 1 será compatible y útil en caso de angular 2? Si no es compatible, ¿qué harás? ¿Sigue escribiendo todos los componentes (datepicker, clasificables, draggables, cargas de archivos, etc.) en angular 2? ¿Por cuanto tiempo lo harás? Responda estas preguntas antes de decidir Angular 2 como su próximo marco.

Ember.js fue y es bueno. En cierto modo, me gusta la forma de convención de Ember sobre la estrategia de configuración. Es lo mejor si tienes un gran equipo. Para desarrollos rápidos, la ascua no es realmente una buena opción. Tiene una curva de aprendizaje empinada que me impedirá desarrollar cosas rápidamente por lo que lo descarté. (He oído hablar de empresas que trabajan solo en Ember para todos sus proyectos de clientes porque han invertido su tiempo en ello durante mucho tiempo).

Allí estaba Backbone.js. Desafortunadamente, tuve una experiencia terrible con Backbone.js porque se te va de la mano muy fácilmente. Mantener eventos, definir modelos, conectarlos a vistas, volver a representar vistas cuando los modelos cambian, especialmente pérdidas de memoria (obviamente por descuido) y mucho agrega carga al mantenimiento.

Fue entonces cuando exploré Marionette.js que le dio a Backbone.js lo que le faltaba. Modulación adecuada, controladores, ventilaciones, rutas basadas en módulos y diferentes tipos de vistas que serán suficientes para cualquier tipo de aplicaciones.

Elegir un marco es nuevamente muy subjetivo para la aplicación que va a desarrollar. Elegiría Ember para un sitio de comercio electrónico, pero Angular.js para aplicaciones que tienen una alta tasa de cambio de datos. Si quiero que todo esté bajo mi control y quiero adoptar JS y ajustar la arquitectura de la aplicación en gran medida para el rendimiento, y eliminarlo según sea necesario, definitivamente elegiría Backbone con Marionette.js. Elija sabiamente en función de sus necesidades y haga un pequeño POC en cada marco para que pueda justificar sus acciones.

NOTA: No lea a continuación si es el tipo de persona que quiere hacer el trabajo y no le importa qué marco o herramienta utiliza.

OKAY. Veo que estás leyendo esto. Así que supongo que eres un entusiasta de JS y quieres ver mi punto de vista. Guay. Gracias por tu tiempo.

Hay otras razones por las que elegí Backbone.js con Marionette.js. Me gusta la arquitectura de aplicaciones. Diseñar cosas mediante la aplicación de patrones de diseño me hace feliz. Con ascua o angular, la elección de la arquitectura y la flexibilidad de diseñar su código es muy limitada, ya que ya han establecido los estándares. No hay forma de doblar las reglas, lo cual es bueno, pero no siempre. No es divertido si no puedes modificar las cosas por simplicidad y flexibilidad.

Y la parte más importante es que, con Angular y Ember, piensas en términos de angular y ascua, y mucho menos en términos de JavaScript. ¿Qué hay de sus habilidades de diseño de código? ¿Realmente lo abrazan? No lo creo.

Soy un entusiasta serio de JavaScript y eso influyó mucho en mi decisión. Me encanta el idioma por sus peculiaridades. Nunca deja de sorprenderme. De hecho, siempre que sea posible, escribo módulos dentro de Backbone.js con construcciones JS no backbone puras (funciones simples, prototipos, manipulaciones DOM) que me ayudaron a pensar en muchos problemas de diseño. Con ES6 (literales de cadena, generadores, optimizaciones de llamada de cola, símbolos, mapas, módulos, funciones de flecha, etc., etc.), amo el lenguaje aún más. La cantidad de conocimiento que obtuve es enorme (tanto en términos de lenguaje como de diseño del código) que puedo escribir una aplicación completa con solo JavaScript (sin marco) que podría ser altamente mantenible. ¿Cuántos por ahí pueden reclamar tal hazaña?

Y tengo la flexibilidad de experimentar las nuevas características de JS convenientemente sin siquiera pensar en cómo funcionará con los marcos.

El siguiente problema es el mundo móvil. ¿Crees que alguno de estos marcos puede tener una oportunidad contra la condición de la red en la India? ¿Qué sucede si quiero dar una versión terriblemente reducida al mundo móvil? Cuán flexible será con los marcos dado que todos ellos tienen más de 15 KB como mínimo. ¿Qué sucede si utilizo esos 15 KB para ofrecer una solución significativa al usuario en lugar de entregar un marco?

Podemos escribir scripts NPM personalizados que pueden crear aplicaciones de manera diferente para entornos de escritorio y móviles (pero con la misma base de código). Para que eso funcione, necesitamos un diseño de código curado, solo así podemos entregar scripts basados ​​en el entorno.

Te daré un ejemplo de mi trabajo reciente. Tengo que desarrollar un formulario interactivo que debe funcionar dentro de mi aplicación y lo mismo debería funcionar fuera de mi aplicación en teléfonos móviles como una entidad independiente. Escribí el módulo en JS puro (sin marco) y lo usé dentro de mi aplicación junto con Backbone.js con los enlaces necesarios. El mismo fragmento de código si se coloca en un archivo html y se llama desde cualquier otro lugar funcionará exactamente, funciona en las aplicaciones. Odio escribir código redundante. Mi religión me enseñó religiosamente a escribir el código KISS DRYly. Entonces, para lograr KISS, DRY, he usado un poco de scripts NPM personalizados que crean el código necesario con separación de preocupación. Cuando se solicita desde el dispositivo móvil, se entrega al cliente una sola página html con js, css, html absolutamente necesarios, todos minimizados y destrozados. Cuando se solicita dentro de la aplicación, va con el flujo habitual de Backbone.js y require.js. Si algún marco es realmente flexible para hacer esto, aprenda eso y olvídese de JS para siempre.

Estaba tan feliz después de hacer la tarea anterior como se describió anteriormente porque he mejorado mis habilidades hasta el punto de pensar en términos de usuarios finales, tragedia de la red y aún así ofrecer la mejor experiencia posible. Y todo esto sucedió porque trabajo en gran medida fuera de los marcos que me ayudaron a pensar en este tipo de problemas de código monolítico. Espero que entiendas la alegría de ofrecer algo mejor y aprender algo bueno.

Como entusiasta de JS, me preocupa que la gente ya no esté preocupada por el lenguaje y se sienta totalmente atraída por los marcos. Reclutador llama preguntando si conozco Angular JS. Digo que sé JavaScript y soy rechazado, porque Angular JS no es JavaScript parece: P. Esto es lo que sucede alrededor. En lugar de adoptar el conocimiento básico del lenguaje, las personas están adoptando el conocimiento de los marcos. Entiendo que los marcos son por una buena razón. Pero eso no debería impedir que aprendas el idioma en profundidad.

Todo este soliloque no es el apropiado para la pregunta. Pero veo esas preguntas todos los días y veo tantos desarrolladores de frameworks JS (no desarrolladores js) y por eso quiero decirle al mundo, establecer sus fundamentos fuertes primero (aprender JS en profundidad) y luego pasar al siguiente nivel ( su elección de marco).

Hay otra buena estrategia que sugeriría es usar micro bibliotecas. En lugar de casarte con un marco, ten un grupo de amigos de la microbiblioteca que te llevarán sobre sus hombros; incluso si uno cae, tendrás otro para llevarte: P. Pruébalo y vive feliz para siempre. Que tengas un gran día. 🙂

Todos sabemos que Angular, Backbone & Ember son el marco MV * más popular y elegir el marco adecuado para su proyecto puede tener un gran impacto en su capacidad para entregar a tiempo y su capacidad para mantener su código en el futuro. Probablemente desee un marco sólido, estable y probado sobre el cual construir, pero no quiera estar limitado por su elección. La web está evolucionando rápidamente: surgen nuevas tecnologías y las viejas metodologías rápidamente se vuelven irrelevantes. ¿Sabe que estos tres tienen en común el concepto de vistas, eventos, modelos de datos y enrutamiento?

Seguramente elegiría Angular dentro de la lista que mencionaste, pero mi elección favorita es React. De todos modos vamos al punto. Lo primero es lo primero Angular 2 tiene grandes cambios en comparación con la generación actual. Angular 2 (escrito completamente en Typecript y cumple con la especificación ES6) es una reescritura completa de todo el marco en comparación con la última versión de Angular 1.5 y no lo trata como la actualización de 1.5. Ahora todo está basado en componentes y directivas (similar a ReactJS). El equipo central dejó caer los Controladores e introdujo Componentes, que pueden proporcionar prácticamente las mismas funcionalidades, y mucho más, y mucho mejor.

Más de 1.1 millones de desarrolladores han adoptado esta plataforma y creado miles de aplicaciones usándola. Escribir aplicaciones complejas en JavaScript puede ser un desafío, y Angular 2 lo hizo accesible.

Es rápido. Muy rapido. Aprovecha al máximo los navegadores web modernos y utiliza de manera predeterminada las capacidades que ofrecen para brindarle el mejor rendimiento. Si escribió la misma funcionalidad en Angular 2 que escribió para Angular 1, Angular 2 probablemente superará con creces el rendimiento de Angular 1. Es portátil y se basa en los nuevos estándares, utiliza polyfills para admitir casi todos los navegadores que conoce sobre incluir IE9.

Hay tantos desarrolladores que son altamente productivos con este marco y yo y mi equipo tenemos suficiente confianza para escribir código más confiable y más fácil de mantener. Sí, sé que Angular 2 está teniendo una curva de aprendizaje empinada y confía en mí que con este marco debes ser un poco inteligente y pensar de manera diferente y te va a gustar este marco.

Para ser sincero con usted, yo o mi equipo no hemos usado Ember o Backbone, así que simplemente compartí mi conocimiento sobre Angular 2 y nosotros en Custom Web Design & Development Studio | Por temas, utilizamos mucho ReactJS y Angular 2 como nuestra herramienta de desarrollo front-end favorita.

Cada uno es bueno para casos de uso específicos.

Todos son marcos JS para diseñar aplicaciones de una sola página [1].

La columna vertebral [2] es muy básica. Es liviano, lo cual es una ventaja si desea diseñar aplicaciones simples, pero se vuelve más desafiante cuando su aplicación crece en complejidad.

Angular [3] es un marco MVW completo. Es el más utilizado y tiene un ecosistema rico y una gran comunidad (a pesar de que los desarrolladores se han alejado recientemente).

Ember [4] es mi solución favorita. Es una solución más completa en comparación con Angular (viene con un CLI muy bueno [5]) pero se usa menos que Angular. También está mucho menos enfocado en HTML (esto es lo que lo hace atractivo para mí).

Entonces, la respuesta TL; DR es: entienda su caso de uso primero y luego elija la herramienta adecuada.

Espero que esto ayude.

Notas al pie

[1] Aplicación de una sola página – Wikipedia

[2] Backbone.js

[3] Marco de MVW de JavaScript superheroico

[4] Ember.js: un marco para crear aplicaciones web ambiciosas.

[5] EmberCLI y guión; Una utilidad de línea de comandos para crear aplicaciones web ambiciosas

“Lo mejor” es bastante subjetivo. No ha enumerado ninguno de los requisitos de su aplicación, por lo que es difícil decir cuál será el mejor para usted.

TodoMVC es un gran recurso para comparar marcos de Javascript populares. Han implementado una aplicación TODO básica en una variedad de marcos, lo que le permitiría tener una visión concreta de cómo difieren estos marcos y decidir qué funcionaría para usted.

Personalmente, me inclino hacia AngularJS cuando hago prototipos de algo que espero sea rico en funciones con muchas vistas (es decir, páginas) y EmberJS cuando espero muchos componentes de página ricos en datos.

Buena suerte.

Depende totalmente de sus requisitos.

Digamos que ya tiene el SPA construido en Backbone, entonces no tiene otra opción que Backbone.

Sin embargo, si vas desde cero. Aquí hay algunas cosas a tener en cuenta para elegir el marco Angular o Ember (Sí, sin backbone).

Angular está cambiando, Angular 2.0 presenta muchas otras características. Por lo tanto, puede esperar y aprenderlo antes de realmente codificar.

Comparar Angular y Ember es bastante difícil en términos de rendimiento o soporte nativo. El único punto en el que creo que Ember gana es el tipo de marco todo en uno. Lo que quiero decir con eso es que obtienes todo lo que necesitas (enrutamiento, http, etc.) en un marco para que ahorres mucho tiempo buscando otros módulos.

Aparte de eso, en mi opinión, no hay otra razón GRANDE para elegir Angular sobre Ember.

Backbone.js fue una de las mejores opciones hace unos años, sin embargo, actualmente no se prefiere ya que tiene alternativas como AngularJS, Ember o ReactJS. Todavía backbone.js es genial si quieres un marco mínimo, ya que Angular y Ember son un poco más pesados ​​en comparación con Backbone.js.

Personalmente, prefiero AngularJS, debido a conjuntos de características, documentaciones y tamaño de la comunidad, tutoriales y materiales disponibles. La elección de Angular es, extender HTML, enfoque modular, servicios, MVC, bibliotecas $ http y $ resource, junto con las mejores prácticas, muchas características. Yo no soy un usuario feliz de las plantillas de estilo Handlebar.

Todos los marcos son buenos. Debe elegir / intercambiar según sus requisitos. Hay una comparación entre estos marcos bien escritos https://www.airpair.com/js/javas
Espero que esto ayude.

Si ha estado usando JavaScript y quiere hacer más pero con menos código, entonces elegir un marco JS adecuado es la opción correcta para usted. De hecho, seleccionar el marco adecuado le dará la capacidad de entregar su proyecto a tiempo.

En esencia, se vuelve importante para usted seleccionar frameworks avanzados como Angular.js, Ember.js y Backbone.js. La web está llena de muchos recursos que lo ayudarán a comprender cuál de estos marcos se adapta mejor a sus necesidades. si

Descargo de responsabilidad: soy autor de Atoms.js

Pruebe Atoms.js en http://github.com/neurospeech/at …, es un framework completo basado en Silverlight y Flex. Si está familiarizado con JavaBeans, Silverlight, Flex, VB o WinForms, este es el más fácil de aprender e implementar.

Esto es difícil de responder porque es similar a la pregunta:
¿Qué auto es mejor, Ford o Chevy? Solo obtendrá respuestas subjetivas, sesgadas por experiencias personales.
Dicho esto, probablemente sea justo decir que Ember y Angular son más similares y más completos que Backbone.