Mozilla veut sa propre implémentation de Node.js
« SpiderNode » repose sur un moteur JavaScript hybride entre SpiderMonkey et V8
Le 2011-04-20 11:17:39, par Idelways, Expert éminent sénior
La fondation Mozilla travaille sur un projet baptisé « SpiderNode », une nouvelle implémentation de la technologie Node.js à la base de son moteur JavaScript, SpiderMonkey.
Node.js est un framework événementiel destiné à développer des applications réseau facilement scalables en JavaScript.
Ce framework, fondé jusque-là uniquement sur le moteur JavaScript V8 des collègues (et néanmoins concurrents) de l'équipe Google Chrome, a énormément gagné en popularité récemment.
Node.js a donc de quoi intéresser la fondation Mozilla qui repose depuis toujours sur JavaScript pour construire la majeure partie des interfaces de ses logiciels. Mozilla veut donc pouvoir utiliser cette technologie aussi du côté serveur et promouvoir son utilisation par les développeurs avec sa propre implémentation.
Toutefois, dès les premiers pas du projet il y a quelques semaines, Paul O'Shannessey (son développeur en chef) affirme sur son blog que l'étroite intégration du moteur V8 à Node.js nécessite de casser la compatibilité et rend difficile, voir impossible de suivre les nouvelles versions officielles du framework.
D'où l'idée de créer (au moins dans un premier temps) un moteur JavaScript hybride nommé « V8Monkey », en ré implémentant l'interface de programmation (API) du V8 sur SpiderMonkey, le moteur JavaScript de Firefox et d'autres produits de la fondation.
Paul O'Shannessey espère par la suite voir son moteur JavaScript intégré dans le système de build de Node.js de sorte que les développeurs aient le choix entre les deux implémentations.
Le projet SpiderNode est encore à ses balbutiements, ses testeurs doivent donc s'attendre à des instabilités, met en garde Paul O'Shannessey
Les codes sources de V8Monkey et SpiderMonkey sont disponible sur GitHub
Source : blog de Paul O'Shannessey
Et vous ?
Que pensez-vous de la démarche de la fondation Mozilla ?
Node.js a-t-il besoin d'une autre implémentation ?
Utilisez-vous Node.js ? Parlez-nous-en ?
Node.js est un framework événementiel destiné à développer des applications réseau facilement scalables en JavaScript.
Ce framework, fondé jusque-là uniquement sur le moteur JavaScript V8 des collègues (et néanmoins concurrents) de l'équipe Google Chrome, a énormément gagné en popularité récemment.
Node.js a donc de quoi intéresser la fondation Mozilla qui repose depuis toujours sur JavaScript pour construire la majeure partie des interfaces de ses logiciels. Mozilla veut donc pouvoir utiliser cette technologie aussi du côté serveur et promouvoir son utilisation par les développeurs avec sa propre implémentation.
Toutefois, dès les premiers pas du projet il y a quelques semaines, Paul O'Shannessey (son développeur en chef) affirme sur son blog que l'étroite intégration du moteur V8 à Node.js nécessite de casser la compatibilité et rend difficile, voir impossible de suivre les nouvelles versions officielles du framework.
D'où l'idée de créer (au moins dans un premier temps) un moteur JavaScript hybride nommé « V8Monkey », en ré implémentant l'interface de programmation (API) du V8 sur SpiderMonkey, le moteur JavaScript de Firefox et d'autres produits de la fondation.
Paul O'Shannessey espère par la suite voir son moteur JavaScript intégré dans le système de build de Node.js de sorte que les développeurs aient le choix entre les deux implémentations.
Le projet SpiderNode est encore à ses balbutiements, ses testeurs doivent donc s'attendre à des instabilités, met en garde Paul O'Shannessey
Source : blog de Paul O'Shannessey
Et vous ?
-
sekaijinExpert éminentperso je pense que le projet node.js devrait proposer un spécification d'API pour la standardiser et laisser ainsi la possibilité de multiple implémentations tout en conservant une certain compatibilité.
pour le moment node.js n'est qu'un framework comme d'autre approche
je pense qu'un ensemble de lib standardisé pour JS serait le bien venu.
il existe des initiatives : http://www.commonjs.org/
ce genre de standard permettrait une évolution plus harmonieuse des différentes implémentation.
par exemple l'objet JSON avec les méthode parse et stringnify
qui ayant été standardisé entre peu à peu dans tout les moteurs js qu'il soit implémenté en js ou en langage natif
mieux lorsqu'il n'existe pas une librairie peut en js reproduire sa présence.
il manque aussi une API pour connaitre les capacités du moteur
une Gelstat-API
aujourd'hui on trouve dans toutes les lib des fonction qui permettent de savoir si on a à faire à WebKit Geko IE savoir si on a telle ou telle fonctionnalité
pour parvenir à savoir si une fonctionnalité existe on va tester la signature du moteur et essayer de déduire ceci ou cela
on va essayer de déterminer si un objet existe en utilisant undefined pour enfin arriver à une conclusion plus ou moins sûre.
une Gelstat-API (API de la forme - prononcer Guélsats) permet d'intéroger le moteur sur ses capacités directement sans calcul
un truc du genre
Code : ENGINE.isSupported('JSON');
Code : ENGINE.isObject('JSON');
Code : ENGINE.isSupported('DirectAPI');
en intégrant cela dans le moteur l'ajout de fonctionnalité de façon modulaire dans les moteur permet d'avoir une méthode sûre pour savoir si on peu où pas utiliser une fonctionnalité
Ainsi des chose comme node.js common.js et autres peuvent être ajouté en déclarant leur signature
les développeurs n'ont pas à chercher un moyen plus où moins sur de déterminer leur support.
I y a beaucoup de chose qui bougent dans le mon js en ce moment.
L'intégration de DSL en langage Natif dans les moteurs serait un plus
la possibilité de gérer directement des imports ou include de fichier js dans un code js est pour moi un gros manque.
un peu de lecture
http://en.wikipedia.org/wiki/Server-...ide_JavaScript
http://narwhaljs.org/
http://jaxer.org
A+JYTle 23/04/2011 à 11:38 -
Camille_BMembre éclairéLa solution idéale serait que node.js se détache progressivement de sa dépendance à V8, mais la solution de Mozilla est pragmatique.le 21/04/2011 à 10:06