node.js vs. meteor.js qual é a diferença? [fechadas]

88

Portanto, tenho ouvido / lido muito sobre meteor.js. Os tutoriais fazem com que pareça muito esportivo como um framework, mas ainda sou um pouco novato quando se trata de programação web.

Eu tenho tentado ao longo do último mês e meio aprender realmente o node.js e descobrir como tudo funciona junto. Gosto da rapidez e facilidade de instalação e execução, e da comunidade que vem junto com isso (que é exemplificado pelo número alucinante de frameworks que você pode obter para o Node).

Mas e quanto ao meteoro? Quais são as vantagens reais disso e qual é a diferença? Alguém começou como um usuário node.js e 'converteu' ou é ainda mais um curioso novo framework?

ZacAttack
fonte

Respostas:

159

Uma analogia vaga é, "Meteor está para Node como Rails está para Ruby." É uma estrutura grande e opinativa que usa o Node no servidor. O próprio Node é apenas uma estrutura de baixo nível que fornece funções para enviar e receber solicitações HTTP e realizar outras E / S.

O Meteor é radicalmente ambicioso: por padrão, cada página que serve é, na verdade, um modelo de Handlebars que é mantido em sincronia com o servidor. Experimente o exemplo da Tabela de classificação : você cria um modelo que simplesmente diz "Liste os nomes e pontuações" e cada vez que qualquer cliente altera um nome ou pontuação, a página é atualizada com os novos dados - não apenas para esse cliente, mas para todos que visualizam o página.

Outra diferença: enquanto o próprio Node é estável e amplamente utilizado na produção, o Meteor está em um estado de "visualização". Existem erros sérios e certas coisas que não se encaixam no modelo conceitual centrado em dados do Meteor (como animações) são muito difíceis de fazer.

Se você adora brincar com novas tecnologias, experimente o Meteor. Se você deseja uma estrutura da web mais tradicional e estável construída no Node, dê uma olhada no Express .

Trevor Burnham
fonte
2
O Meteor melhorou seus “bugs graves” desde o ano passado?
danorton
3
@danorton Sim, eu definitivamente diria isso. Para certas aplicações, Meteor agora é bastante viável, bem como um prazer absoluto de desenvolver.
Trevor Burnham
4
Observe também que esta resposta eventualmente não será completamente precisa, já que o Meteor está em desenvolvimento ativo e obteve contribuições financeiras consideráveis ​​que aceleram o tempo de desenvolvimento, esperançosamente, tirando-o de seu estágio de "visualização".
Goddard
12

Meteor é uma estrutura construída sobre node.js. Ele usa node.js para implantar, mas tem várias diferenças.

A chave é que ele usa seu próprio sistema de empacotamento em vez do sistema baseado em módulo do nó. Torna mais fácil fazer aplicativos da web usando o Node. O Node pode ser usado para uma variedade de coisas e, por si só, é péssimo para servir conteúdo dinâmico da web. As bibliotecas do Meteor tornam tudo isso fácil.

Akshat
fonte
4
versão 0.6.0 agora tem suporte direto para módulos NPM meteor.com/blog/2013/04/04/…
Max Hodges
9

A força do Meteor está em seu recurso de atualizações em tempo real, que funciona bem para alguns dos aplicativos sociais que você vê hoje em dia, onde você vê as atualizações de todos para o que está trabalhando. Essas atualizações giram em torno da replicação de subconjuntos de uma coleção MongoDB por baixo das tampas como atualizações de banco de dados mini-mongo locais (seu subconjunto do MongoDB do lado do cliente) em seu navegador da web (o que faz com que vários eventos de renderização sejam disparados em seus modelos). A última parte sobre várias atualizações de renderização também é o ponto fraco. Se você deseja que sua IU controle quando a IU é atualizada (por exemplo, páginas jQuery AJAX clássicas onde você carrega o HTML e controla todas as chamadas AJAX e atualizações de IU), você estará lutando contra esse mecanismo.

Meteor usa uma boa pilha de plug-ins Node.js (Handlebars.js, Spark.js, Bootstrap css, etc., mas usando seu próprio mecanismo de empacotamento em vez de npm) embaixo junto com MongoDB para a camada de armazenamento que você não precisa pense sobre. Mas às vezes você acaba lutando também ... por exemplo, se você quiser personalizar o tema do Bootstrap, ele bagunça a sequência de carregamento do arquivo responsive.css do Bootstrap para que ele não responda mais (mas isso provavelmente se corrigirá quando o Bootstrap 3.0 será lançado em breve).

Assim, como todos os "frameworks full stack", as coisas funcionam muito bem, contanto que seu aplicativo se ajuste ao pretendido. Depois de ir além desse escopo e ultrapassar os limites, você pode acabar lutando contra a estrutura ...

Kenyee
fonte
2
Meteor V0.6.0 + tem integração com npm: meteor.com/blog/2013/04/04/…
Manav Kataria