¿Qué debo aprender: Mithril, Vue o Angular?

Descargo de responsabilidad: soy el autor de Vue.js.

Me molesta que muchas respuestas salten directamente a las comparaciones técnicas o veredictos de “Ir con el marco X” sin siquiera preguntar qué está tratando de lograr el OP. Entonces, hagamos esa pregunta primero: ¿qué estás tratando de lograr al elegir un marco?

  1. Para conseguir un trabajo a corto plazo
  2. Para construir algo lo más rápido posible
  3. Como experiencia de aprendizaje para subir de nivel tu habilidad de JavaScript

Si su objetivo es únicamente (1), lo más probable es que vaya mejor con Angular o React (Nota: no Angular 2, al menos por ahora), ya que estos dos son los más maduros, más utilizados y le brindan mejor “capacidad de alquiler” en el mercado. Angular 1 es un poco más empresarial y React es más inicial.

Para el objetivo (2), depende más del tipo de aplicación que esté creando. ¿Es una aplicación en gran parte de back-end o un SPA puro? Para el primero, sería mejor con algo que sea más liviano, menos intrusivo, que no requiera herramientas específicas y que funcione bien con HTML (pista: Vue). Para los SPA, tenemos que sumergirnos en comparaciones técnicas reales sobre rendimiento, características, compatibilidad con API, soporte de herramientas, madurez del ecosistema y todo eso. Pero ese es un tema bastante amplio en sí mismo, y también puede ser subjetivo y altamente dependiente del proyecto.

Para el objetivo (3), nuevamente es mejor comenzar con algo más liviano, porque los marcos de solución completa como Angular / Ember arrojan demasiados conceptos por adelantado, y dado que cede el control al marco, termina aprendiendo principalmente sobre el marco. API y convenciones específicas en lugar de habilidades de aplicación universal. Por otro lado, las bibliotecas más pequeñas, debido a sus superficies API más pequeñas, lo obligan a tomar más control y comprender cómo encajan realmente las diferentes piezas (lo que de hecho lo ayuda a elegir marcos más grandes más adelante).

Ahora aquí está la sugerencia real: primero aprende JavaScript, y aprende muy bien. Esa es la apuesta más segura. Con conceptos básicos sólidos, deberías poder aprender los conceptos básicos de Vue / React / Mithril / Riot en cuestión de días. Luego, debe crear una pequeña aplicación con cada uno, sin herramientas complejas, solo para (1) comprender qué problemas resuelven estos marcos; (2) entienda su propia preferencia, es decir, qué estilo API lo hace más productivo. A partir de ahí, puede probar marcos más grandes porque ahora está mucho mejor preparado para ellos. Probablemente todo este proceso llevará algún tiempo, pero será una inversión que vale la pena, mucho mejor que sumergirse en un solo marco durante unos meses y luego darse cuenta de que no es para usted.

Por otro lado, también debe aprender sobre habilidades agnósticas de marcos como ES2015, Node.js básico, cómo funciona NPM, sistemas de módulos / paquetes (Browserify / Webpack / System.js): estas herramientas son inevitables en grandes SPA sin importar qué marco que está utilizando

La idea central es no poner todos sus huevos en una sola canasta. Elegir un marco de JavaScript no es un escenario de uno u otro; no tienes que quedarte con uno para siempre. Y no importa lo que digan los demás, es imposible tomar la mejor decisión por ti mismo sin probarlos y obtener una experiencia de primera mano. Si solo vas con uno e ignoras a los demás, es casi seguro que lo estás haciendo mal.

Como se esperaba, la verdadera respuesta es: “depende de lo que necesite”.

Angular (respaldado por Google) tiene la comunidad más concurrida y la red de contribuyentes. También la primera versión de estos marcos de nueva generación. Ahora se convirtió en algo viejo e incluso en los propios desarrolladores que hicieron cambios de diseño centrales para Angular v2.

React (respaldado por Facebook) se está volviendo más famoso cada día. No es una solución completa como Angular y tiene un paradigma totalmente diferente. Una vez que aprenda Angular v1, adaptarse a React no es tan fácil. Pero muchos desarrolladores lo hicieron, solo por un mejor rendimiento.

Vue, por otro lado, es como una mejor versión de Angular v1 y, aunque Angular v2 todavía está funcionando, Vue es un marco listo para usar con la mayoría de las correcciones en Angular v2. Es más fácil saltar de Angular v1 a Vue e incluso tiene un mejor rendimiento que React. No es tan conocido como otros, lo que significa una comunidad más pequeña.

Mithril, no sé lo suficiente para comentar.

Mithril no solo es increíblemente eficiente, también tiene una API increíblemente pequeña y, como resultado, es increíblemente rápido de aprender. Lo encuentro mucho más intuitivo: su API simple le permite hacer cosas simples mucho más rápido, pero crucialmente cuando tiene un escenario complicado, me resulta más fácil razonar sobre los problemas con Mithril que los otros marcos más grandes, que tienden a necesitar más de una comprensión profunda de la base de código para resolver problemas genéricos. Pero también es muy joven y no tiene grandes nombres comerciales que lo respalden.

Angular tiene una API masiva, lo que significa que hay mucho más que aprender, pero tiene una gran cantidad de documentación que lo acompaña. También es mucho más popular. Al menos en Londres, hay un gran contrato para ‘desarrolladores angulares’, por lo que desde una perspectiva comercial, es ‘hot’.

React tiene algunos aspectos muy elegantes y, a diferencia de Angular, las personas que lo desarrollaron realmente lo usan en las aplicaciones de sus empresas. Al igual que con Angular, tiene la promesa de ser ampliamente respaldado.

Depende de cuáles sean sus objetivos, pero en general, creo que su elección del marco de JavaScript no es tan importante como comprender ese marco y el lenguaje JavaScript subyacente a un nivel profundo. Prueba esto:

  1. Solo elige uno. Lanza un dardo a la pared, no importa. Solo elige uno con convicción.
  2. Quédate con tu elección y domínala. Ignora los artículos que lees que afirman que x es mejor que y. Es todo JavaScript y todo lo que PUEDE manipular sea cual sea el marco que elija para aprovechar cualquier objeto brillante del que otras personas estén hablando.
  3. A medida que domine su marco, comience a explorar otros marcos. Hágalo con la mentalidad de que está tratando de entender cómo funciona el otro marco para que pueda extraer las mejores partes en cualquier marco en el que esté trabajando.

Claro, hay momentos en que desea cambiar por completo, pero mi punto principal es que la mayoría de las veces no tiene que hacerlo. Mithril, Vue, Angular, React, Ember … todos estos marcos activos de front-end son realmente buenos e IMO que no puedes perder.

He usado mucho Angular y he estado investigando Mithril, que es muy fácil de entender, por lo que al parecer, el único inconveniente de Mithril actualmente es que no tiene ninguna forma de vincular datos dentro del HTML. Su modelo de enlace en realidad depende de que usted escriba programáticamente su HTML para cada uno de sus componentes / módulos utilizando su paradigma m (…), como:

m (“div”, [m (“input”, {oninput: m.withAttr (“value”, autocompleter.vm.search)})])

O vistas de anidación como esta:
return m (“div”, [vm.userAC.view ({datos: vm.users, enlaces: vm.selectedUser}), vm.projectAC.view ({datos: vm.projects, enlaces: vm.selectedProject}), ]);

A algunas personas les puede gustar esto, pero personalmente prefiero escribir mi html como html y aplicar los enlaces a través de los atributos. Sin embargo, el modelo programático es atractivo para algunos y puede ser más poderoso.

Recomendaría React.js sobre todos los demás. Si bien Angular es actualmente el marco más popular, React es la próxima gran novedad y está explotando en popularidad en este momento.

Utiliza los conceptos de componentes, que es a lo que Google se está mudando con Polymer. Sin embargo, React funciona hoy, no se basa en componentes web y es muy eficiente.

Otro gran beneficio de usar React es que, a diferencia de Angular, no intenta hacer todo. TI maneja la capa de vista y la capa de controlador si así lo desea. Funciona muy bien con otras bibliotecas extremadamente bien (a diferencia de Angular, donde las cosas pueden ponerse difíciles sin integraciones angulares. Hay una razón por la que hay una integración angular para todo. Nada funciona bien de la caja).

Finalmente, y esto es realmente importante, React es muy fácil de aprender. Podrías comenzar a leer el tutorial y dominar los aspectos más importantes de React en un día. Angular, Knockout e incluso Backbone pueden tomar mucho más tiempo para comprender realmente a un nivel más profundo.

Nota: Mithril tiene un buen rendimiento y es una especie de biblioteca agradable, pero en su mayoría es compatible con una sola persona, y no es tan amigable como React, y viene con un conjunto diferente de características. Todavía es interesante mirarlo.

Elija Mithril: es fácil de aprender, es rápido y lo convertirá en un mejor desarrollador de Javascript.
Javascript es el lenguaje de la web, y dado que Mithril es solo una pequeña biblioteca de Javascript, pasará más tiempo aprendiendo el ecosistema Javascript que aprendiendo un marco.
No puedes equivocarte con Mithril: en el peor de los casos, mejorarás tus habilidades de Javascript

Angular tiene una curva de aprendizaje empinada (API muy grande), por lo tanto, cuando opta por Angular, se arriesga a aprender una API que puede cambiar en la próxima versión del marco (¡eso es exactamente lo que está sucediendo ahora mismo!).

La primera razón por la que Angular y React son tan populares es porque las personas tienen confianza en Google y Facebook, no porque sean los mejores marcos del mercado.

Angular se lanzó cuando no había tantas alternativas como ahora y Google ha impulsado mucho el marco.

Depende de lo que quieras hacer con él.

Los programas a gran escala respaldados por equipos se benefician enormemente de AngularJS. Inyección de dependencias, enlace de datos bidireccional, HTML como vista, soporte de pruebas profundas y un ecosistema sólido. Todas las excelentes características. Y AngularJS funciona bien con otro marco: se puede usar con Meteor y React con mucho éxito.

Las vistas complejas pueden beneficiarse de la inmutabilidad de React. Pero esto rara vez se necesita.

Los programas con modelos de eventos complejos pueden beneficiarse de Vue. De nuevo rara vez se necesita.

Mithril: no tengo idea. Parece más un marco para proyectos más pequeños y para pensar en aplicaciones de manera diferente.

Personalmente, no estoy tocando ningún marco para proyectos grandes que no tenga una estructura de proyecto clara, gestión de dependencia y estrategia de prueba. Actualmente eso es AngularJS.

Aprenda todos ellos, pero elija la solución que se ajuste a las necesidades generales del proyecto.

Hola, en mi opinión, javascript básico es la base de todos estos marcos.

Vue vs Angular

——————————

Parte de la sintaxis de Vue se verá muy similar a Angular (por ejemplo, v-if vs ng-if ). Esto se debe a que Angular hizo muchas cosas bien y esto fue una inspiración para Vue muy temprano en su desarrollo. Sin embargo, también hay muchos dolores que vienen con Angular, donde Vue ha intentado ofrecer una mejora significativa.

Complejidad

—————

Vue es mucho más simple que Angular 1, tanto en términos de API como de diseño. Aprender lo suficiente como para crear aplicaciones no triviales generalmente lleva menos de un día, lo que no es cierto para Angular 1.

Tampoco se utilizan otros scripts, pero según el mercado actual, Angular lidera en todos los sentidos.

Puede consultar este blog para encontrar la respuesta …

Vue.js es bueno, pero ¿es mejor que angular o reaccionar? – Valuecoders

Ve por angular.js. Está respaldado por Google y en los últimos dos tres años ha ido ganando popularidad sobre los otros marcos de JavaScript.

Pasé de la columna vertebral a la angular hace unos meses, y estoy enamorado del marco.

More Interesting

¿Qué es un desarrollador Full Stack? Cual es su papel? ¿Cómo te conviertes en un desarrollador de Full Stack?

¿Cuál es la forma más sencilla de crear una aplicación web con acceso a DB?

¿Cuál es la diferencia entre la representación del lado del cliente y del lado del servidor? ¿Por qué se requiere la representación del lado del servidor para React y Redux?

¿Cuál es la mejor compañía para hosting y registro de dominio?

¿Se puede usar Python para crear un sitio web?

¿Cuál es el mejor flujo de trabajo de Git para un solo individuo que construye una aplicación de rieles de producción? He visto el flujo de GitHub y el flujo de Git. ¿Cuáles son algunas recomendaciones de quienes han estado allí?

¿Deberían todos los nuevos desarrolladores web aprender y usar jQuery además de JavaScript?

¿Qué es el flujo de trabajo SDP?

¿Cuál sería el costo de crear un sitio web de redes sociales desde cero? ¿Qué porcentaje de capital se puede dar en lugar de dinero para cada tarea?

¿Cuál es la diferencia entre la solicitud Ajax y la solicitud XHR?

¿Cómo podemos verificar la disponibilidad del nombre de usuario desde una base de datos y devolver la disponibilidad sin recargar la página?

¿Cuáles son las convenciones de codificación comúnmente aceptadas para hojas de estilo en cascada, JavaScript (lenguaje de programación) y HTML?

¿Cuáles son los mejores marcos a los que debo referirme para desarrollar un sitio web educativo atractivo?

¿Es la práctica recomendada revisar su código todos los días cuando se realiza el desarrollo de Drupal?

¿Cuál es la mejor manera de crear boletines informativos receptivos?