Mozilla veut sa propre implémentation de Node.js
« SpiderNode » repose sur un moteur JavaScript hybride entre SpiderMonkey et V8

Le , 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 ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Camille_B Camille_B - Membre confirmé https://www.developpez.com
le 21/04/2011 à 10:06
La solution idéale serait que node.js se détache progressivement de sa dépendance à V8, mais la solution de Mozilla est pragmatique.
Avatar de sekaijin sekaijin - Expert éminent https://www.developpez.com
le 23/04/2011 à 11:38
perso 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 : Sélectionner tout
ENGINE.isSupported('JSON');
ou
Code : Sélectionner tout
ENGINE.isObject('JSON');
ou encore
Code : Sélectionner tout
ENGINE.isSupported('DirectAPI');
qui retourne true ou false suivant que le moteur supporte la fonctionnalité.

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-side_JavaScript
http://narwhaljs.org/
http://jaxer.org

A+JYT
Offres d'emploi IT
Recherche développeur web / start-up / disponibilité immédiate
WAAH - Québec - Montréal
Développeur web collaboratif
Flow Line - Rhône Alpes - Bron (69500)
Jeune docteur deep learning H/F
3C - Ile de France - Paris (75000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil