web-dev-qa-db-fra.com

Quelles sont les différences entre Backbone.js et Node.js? Et quel est le meilleur?

Je me sens un peu confus, il y a tellement de frameworks pour les 'trucs' liés à Node.js. Quelqu'un pourrait-il me donner un aperçu de Quelles sont les différences entre Backbone.js et Node.js? Et quel est le meilleur? Merci d'avance.

25
Mohit Kumar

Je le cite à partir de quelques sources ici:

Tout d'abord, pour citer la question du débordement de pile ici :

La plupart des choses que vous avez répertoriées ne sont liées que parce qu'elles sont écrites ou utilisent autrement JavaScript. Les comparer, c'est un peu comme comparer des pommes à des oranges. C'est comme demander quelle est la différence entre une Toyota Camry et un moteur V6. Ils sont liés, mais font des choses différentes.

Noeud

Également connu sous le nom de Node.js, Node est l'environnement JavaScript sur lequel nous exécutons notre code JavaScript côté serveur. Il est basé sur le moteur JavaScript V8 . Tous le code JavaScript que vous écrivez, ou installez et exécutez à partir de packages de NPM, GitHub, etc. est exécuté par l'environnement d'exécution Node.

Squelette

Backbone peut être assimilé à un framework Model-View-Controller pour JavaScript. Je crois qu'il a été initialement écrit pour le navigateur; il aide à garder votre JavaScript côté client propre en implémentant les modèles MVC les plus courants (ainsi que quelques autres choses), vous permettant de connecter plus facilement votre JavaScript côté client à votre code côté serveur.

En outre, cela provient d'une réponse pour le même question sur Quora. Le mérite revient à Drew Harry:

Ils sont presque totalement indépendants. Traditionnellement, Backbone.js est une bibliothèque cliente et Node.js est un moyen d'écrire des applications côté serveur en Javascript. Backbone vise à être un système modèle + vue pour lier des modèles de données avec des éléments DOM qui représentent visuellement ce modèle dans une page Web. Backbone fournit également des collections de modèles, ainsi qu'un tas de fonctions utilitaires pour synchroniser ces modèles avec leurs représentations côté serveur.

Node.js est juste l'environnement d'exécution Javascript v8 empaqueté avec une bibliothèque standard pour faire des choses utiles côté serveur avec Javascript. Il existe de nombreux packages conçus pour Node (consultez npm pour savoir comment installer facilement ces packages, Backbone inclus) qui l'étendent pour faire toutes sortes de choses intéressantes. Il est possible d'utiliser Backbone.js avec Node.js, mais Backbone n'est pas spécialement conçu pour être utilisé sur le serveur.

Allez voter pour la ou les réponses ci-dessus si vous trouvez le matériel utile.

64

À peu près la seule chose que ces deux ont en commun, c'est qu'ils sont basés sur Javascript et ont beaucoup de battage médiatique qui les entoure (pas immérités cependant).

node.js est un framework pour Javascript applications serveur. Il comprend le moteur Javascript V8 développé pour Chrome. Il est asynchrone et piloté par les événements, il est donc idéal pour traiter un grand nombre de petites demandes.

backbone.js est un cadre pour les applications Web côté client, en particulier pour les soi-disant "applications Web à page unique" où une seule page HTML est envoyée au navigateur au début, et chaque interaction par la suite est gérée par AJAX requêtes et logique Javascript qui transforme la page.

Cela signifie que les deux peuvent également fonctionner efficacement ensemble: une application implémentée en utilisant backbone.js pour le frontend pourrait voir ses demandes AJAX gérées par une partie serveur utilisant node.js - une combinaison plutôt populaire depuis il vous permet d'avoir une application web entière utilisant uniquement Javascript.

11
Michael Borgwardt

Backbone.js est une bibliothèque javascript, similaire à jQuery ou YUI mais répondant à des besoins différents.

Node.js est un interpréteur javascript, similaire à Internet Explorer ou Firefox ou Safari mais répondant à des besoins différents.

Je ne sais pas grand chose sur backbone.js mais je pense que vous pouvez l'utiliser avec Node.js car il utilise du javascript standard. Vous aurez peut-être besoin d'une couche d'émulation DOM pour les éléments liés à DOM.


Réponse supplémentaire:

Un peu de recherche sur Google révèle qu'il y a des gens qui utilisent Backbone sur Node.js. L'avantage de ceci est évidemment que vous pourrez utiliser le même framework et réutiliser le code sur le client et le serveur.

Voir: http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product


Plus de réponse supplémentaire:

En ce qui concerne la sémantique, je vois que certaines personnes ne sont pas d'accord sur la signification de certains termes de l'informatique. Bien que les termes soient vaguement utilisés et bien qu'ils soient quelque peu interchangeables, ils ont des significations assez bien définies.

En général, un interpréteur est un exécutable, c'est-à-dire un programme qui prend en entrée certaines données et l'exécute comme un programme. Le V8 n'est pas ça. Il ne peut pas prendre javascript seul et l'exécuter. Il doit être compilé dans un autre programme, un interpréteur pour exécuter javascript.

La V8 est livrée avec un exemple de code pour construire un interpréteur. Cet interprète livré avec V8 s'appelle V8-Shell.

Un moteur est une bibliothèque qui implémente un interpréteur. C'est exactement ce qu'est le V8.

Les deux termes ci-dessus sont quelque peu interchangeables car le mot "interprète" peut également être valablement utilisé à la place de "moteur" pour décrire ce qu'une bibliothèque implémente. Mais cette utilisation de Word est similaire à l'utilisation de "MVC framework" ou "UI toolkit" dans la mesure où elle est utilisée comme adjectif. Il est donc correct de dire qu'un "interprète" est une sorte de bibliothèque.

Mais le mot était à l'origine utilisé pour désigner le binaire qui exécute un langage de programmation. Lorsqu'il est utilisé de cette façon, on l'utilise comme un nom car il fait référence à quelque chose sur le système de fichiers. Cette méthode est similaire à l'utilisation du "compilateur". Par exemple, on appellerait clang un compilateur dans ce sens et on appellerait llvm, la bibliothèque utilisée par clang, un compilateur au sens précédent.

Jetons un œil à quelque chose qui n'est pas javascript comme exemple:

  • tcl est un langage de programmation

  • tcl est également la bibliothèque qui implémente l'interpréteur de tcl. En d'autres termes, le moteur.

  • tclsh est l'interpréteur tcl

Jetons un coup d'œil à un autre exemple:

  • Ruby est un langage de programmation

  • RubyC est l'un des nombreux moteurs de Ruby

  • Ruby est l'interpréteur qui utilise RubyC

Personne n'utilise le "framework" Word pour faire référence à l'interpréteur exécutable binaire pour les deux langues ci-dessus. Cela semble juste idiot.

Mais attendez, Node.js fait référence à plus que node.exe. Il fournit vraiment un tas de fonctionnalités supplémentaires qui peuvent être utilisées comme une bonne base pour écrire d'excellents programmes. En d'autres termes, un cadre.

Hé bien oui. Cela étant vrai, l'utilisation de Word "interpréteur" pour faire référence à node.exe n'est pas automatiquement invalide. De même que l'utilisation du mot "terre" pour désigner la planète ne rend pas automatiquement invalide l'utilisation du mot pour désigner le sol.

En plus, ces fonctionnalités supplémentaires? C'est vrai pour tcl et Ruby aussi. C'est aussi vrai pour C. Ces fonctionnalités supplémentaires comme fs et http sur Node.js sont traditionnellement appelées bibliothèque standard . Alors que le projet Node.js l'appelle un framework qui est leur choix. Presque personne d'autre n'appelle leur interprète + bibliothèque standard un framework. PHP par exemple est distribué exactement comme Node.js avec un tas de bibliothèques standard de très haut niveau mais personne n'appellerait PHP un framework. C'est aussi un peu idiot quand les gens écrivent des frameworks réels au dessus du nœud - des frameworks pour un framework. Mais je ne vais pas dire ils ont tort parce qu'ils choisissent de l'appeler ainsi. C'est juste leur façon de décrire ce qu'ils ont créé. Plus de pouvoir pour eux.

Ce que je dis, c'est que les gens qui disent que node.js n'est pas un interprète ignorent l'utilisation de Word à travers l'histoire de l'informatique. Je ne sais pas. Venant d'un milieu asiatique, il est naturel pour moi de supposer que tout appartient à plusieurs catégories. C'est peut-être une idée occidentale que les choses appartiennent strictement à des catégories spécifiques que je ne comprends pas très bien.

Voici donc les faits:

  1. Node.js n'est pas simplement une bibliothèque javascript. Vous avez besoin de node.exe pour utiliser les bibliothèques standard fournies avec node.

  2. Backbone.js est en revanche une bibliothèque javascript standard. Ce n'est pas un exécutable.

  3. Node.js est le seul exemple où un interpréteur + bibliothèque est appelé un framework jusqu'à présent. Tous les autres exemples de framework que je connais en programmation se réfèrent à des bibliothèques qui implémentent un modèle de conception.

  4. Appeler quelque chose "B" ne rend pas automatiquement l'appel "A" invalide.

Une dernière chose: les navigateurs Web sont également livrés avec une très grande bibliothèque standard de haut niveau pour javascript. Cela s'appelle le DOM (il y a aussi un tas d'autres choses comme Math et XMLHttpRequest mais le DOM est le plus grand). En conséquence, il faut appeler les frameworks javascript d'Internet Explorer et de Firefox, mais personne ne le fait.

2
slebetman

Les deux sont liés au javascript mais totalement différents.

Node est un interpréteur/plateforme pour exécuter du code javascript sur le serveur tel que JDK ou Ruby. Pour faire simple, vous devez installer NodeJS pour interpréter le script basé sur Backbone sur le serveur.

En ce qui concerne MVC côté serveur, Geddy, RailwayJS, Express, etc., sont considérés comme servant mieux que Backbone.

Alors que Backbone est un framework MVC champion du côté client.

1

Node.js:

Javascript pour le côté backend. (comme: php, Ruby on Rails, python, etc.)

Backbone.js:

Javascript pour le côté frontal (fonctionnant sur le navigateur de votre client) backbone.js utilise également jquery, plus de frameworks de javascript pour le côté client sont: 1. mootools 2. ExtJS 3. dojo 4. prototype et bien d'autres ...

0
IdanHen

Node.js est une plate-forme côté serveur conçue pour créer des applications réseau. Il est construit sur le moteur Javascript V8 de Google et utilise une approche événementielle asynchrone pour créer des applications. Backbone.js est une bibliothèque cliente simplement javascript qui facilite la création et la maintenance du code côté client et la conformité au modèle MVC. Par conséquent, ils ne peuvent pas être comparés.

Backbone.js propose de nombreuses alternatives qui utilisent une approche légèrement différente pour atteindre le même objectif. Les plus connus sont: knockout , ember.js et autres. Et il peut également être connecté à l'application node.js.

0
koss