node.js vs meteor.js ¿cuál es la diferencia? [cerrado]

88

Así que he estado escuchando / leyendo mucho sobre meteor.js. Los tutoriales hacen que parezca muy deportivo como marco, pero todavía soy un poco novato en lo que respecta a la programación web.

He intentado durante el último mes y medio aprender realmente node.js y descubrir cómo se combina todo. Me gusta lo rápido y fácil que es comenzar a funcionar, y la comunidad que lo acompaña (que se ejemplifica con la increíble cantidad de marcos que puede obtener para Node).

Pero ¿qué pasa con los meteoritos? ¿Cuáles son las ventajas reales y cuál es la diferencia? ¿Alguien ha comenzado como usuario de node.js y se ha 'convertido' o es todavía más un marco nuevo y curioso?

ZacAttack
fuente

Respuestas:

159

Una analogía vaga es, "Meteor es para Node como Rails es para Ruby". Es un marco grande y obstinado que usa Node en el servidor. El nodo en sí es solo un marco de bajo nivel que proporciona funciones para enviar y recibir solicitudes HTTP y realizar otras E / S.

Meteor es radicalmente ambicioso: por defecto, cada página que sirve es en realidad una plantilla de Handlebars que se mantiene sincronizada con el servidor. Pruebe el ejemplo de la tabla de clasificación : crea una plantilla que simplemente dice "Enumere los nombres y las puntuaciones", y cada vez que un cliente cambia un nombre o una puntuación, la página se actualiza con los nuevos datos, no solo para ese cliente, sino para todos los que ven el página.

Otra diferencia: si bien Node en sí es estable y se usa ampliamente en producción, Meteor está en un estado de "vista previa". Hay errores graves y ciertas cosas que no encajan con el modelo conceptual centrado en datos de Meteor (como las animaciones) son muy difíciles de hacer.

Si te encanta jugar con las nuevas tecnologías, dale una vuelta a Meteor. Si desea un marco web más tradicional y estable construido en Node, eche un vistazo a Express .

Trevor Burnham
fuente
2
¿Meteor ha mejorado sus "errores graves" desde el año pasado?
danorton
3
@danorton Sí, definitivamente lo diría. Para ciertas aplicaciones, Meteor ahora es bastante viable, así como un placer absoluto desarrollar con él.
Trevor Burnham
4
También tenga en cuenta que esta respuesta eventualmente no será completamente precisa, ya que Meteor está en desarrollo activo y ha recibido contribuciones financieras considerables que aceleran el tiempo de desarrollo y, con suerte, lo sacarán de su etapa de "vista previa".
Goddard
12

Meteor es un marco construido sobre node.js. Utiliza node.js para implementar, pero tiene varias diferencias.

La clave es que utiliza su propio sistema de empaquetado en lugar del sistema basado en módulos del nodo. Facilita la creación de aplicaciones web con Node. Node se puede usar para una variedad de cosas y por sí solo es terrible para ofrecer contenido web dinámico. Las bibliotecas de Meteor facilitan todo esto.

Akshat
fuente
4
la versión 0.6.0 ahora tiene soporte directo para módulos NPM meteor.com/blog/2013/04/04/…
Max Hodges
9

La fortaleza de Meteor está en su función de actualizaciones en tiempo real que funciona bien para algunas de las aplicaciones sociales que ves hoy en día, donde ves las actualizaciones de todos para lo que estás trabajando. Estas actualizaciones se centran en replicar subconjuntos de una colección MongoDB debajo de las cubiertas como actualizaciones de la base de datos local mini-mongo (su subconjunto MongoDB del lado del cliente) en su navegador web (lo que hace que se activen múltiples eventos de renderizado en sus plantillas). La última parte sobre múltiples actualizaciones de renderizado también es la debilidad. Si desea que su interfaz de usuario controle cuándo se actualiza la interfaz de usuario (por ejemplo, las páginas clásicas de jQuery AJAX en las que carga el HTML y controla todas las llamadas AJAX y las actualizaciones de la interfaz de usuario), estará luchando contra este mecanismo.

Meteor usa una buena pila de complementos de Node.js (Handlebars.js, Spark.js, Bootstrap css, etc. pero usando su propio mecanismo de empaquetado en lugar de npm) debajo junto con MongoDB para la capa de almacenamiento que no tiene que hacer pensar en. Pero a veces terminas luchando contra él también ... por ejemplo, si quieres personalizar el tema de Bootstrap, estropea la secuencia de carga del archivo responsive.css de Bootstrap por lo que ya no responde (pero esto probablemente se solucionará solo cuando Bootstrap 3.0 se lanzará pronto).

Entonces, como todos los "frameworks de pila completa", las cosas funcionan muy bien siempre que su aplicación se ajuste a lo que se pretende. Una vez que vaya más allá de ese alcance y supere los límites del borde, podría terminar luchando contra el marco ...

Kenyee
fuente
2
Meteor V0.6.0 + tiene integración npm: meteor.com/blog/2013/04/04/…
Manav Kataria