dimanche 1 janvier 2012

Qui a peur de #node.js , #javascript ?

Le projet node.js est un recent et provoque pas mal de bruit sur le Net.
Le sommet de la polémique a été atteint par cet article: node.js est il un cancer  ?.
La discussion a continué sur reddit.com  avec des échanges vifs. Pourquoi un tel déchaînement de passion.

Pour rappel : qu'est ce que node.js.

Node.js est l'habillage du moteur d'exécution du javascript utilisé par Chrome. Ce moteur s'appelle V8. Il est en C et en javascript. Chrome s'en sert pour exécuter le javascript coté client. Ryan Dahl et ses amis lui ont  ajouté quelques librairies afin d'obtenir un produit autonome node.js. C'est une machine virtuelle comme la JVM sur laquelle vient s’exécuter du javascript. Un des créateurs du V8 était aussi concepteur de la JVM.
Les principes de node.js sont simples :

  • La  gestion dans  boucle sans fin des évènements
  • Une facilité de mise en oeuvre  de  programmation asynchrone
  • Un seul processus , pas de multi-thread 





Est il dangereux d'installer node.js sur un serveur. 
La réponse est NON.

Le coeur de node.js , le moteur V8 est déjà présent coté client. Les failles de sécurités sont rapidement corrigées.
Par comparaison il est plus risqué d'installer sur un serveur les services suivants :
- Un serveur apache
- Un serveur Tomcat (les failles des JVM sont les plus dangereuses)
- Un webmin , un serveur telnet ou FTP

Alors pour pourquoi tant de réticence ? 

En premier lieu, le langage javascript. Tous les admin UNIX (moi le premier) ont au cours de leur carrière utilisé ou côtoyé du javascript pourri, récupéré par copier/coller sur un site de bidouilleur.
Les vrais développeurs javascript sont rares. Ce langage est souvent utilisé comme quelque chose de deuxième zone. Ce phénomène s'inverse et le javascript est maintenant à l'honneur.
L’hégémonie de la partie client.  
Le MVC serveur était jusqu’à présent le composant principal d'une application. Il était rentable d'investir dans l'ingénierie de ces composants. Hélas, les smartphones , les tablettes, le cout du SI  et tout simplement le bon sens sont venues perturber ce bel équilibre. Le MVC passe de l'autre coté.
L'effort du  développement porte sur le coté client. C'est tout simplement  cette partie qui offre le plus de rentabilité (ROI).  Non seulement le javascript est le seul langage universel coté navigateur (client) mais en plus maintenant il cherche à envahir les serveurs. On pourrait avoir un seul langage de bout en bout (serveur _ client).

La puissance que procure node.js

Il est possible en dix lignes de javascript d’écrire un programme qui embarque les couches réseaux d'un serveur web, la gestion de la délivrance du contenu et la configuration du serveur. Node.js reproduit même le système des 'pipes' des commandes unix : on va lire un fichier et brancher sa sortie sur le flux de réponse du client. Tout ceci est possible parce node.js transgresse un 'dogme'  UNIX : l'organisation en couche. Ryan Dahl veut faire de l'informatique simple et bon marché. Idem pour  la programmation objet qui  a été détournée de son objectif. Faire de l'objet revient à faire des couches. Et comme dans la vie courante , chacun essaye de refiler sa m.... à une autre couche. Voila pourquoi des choses comme node.js , jquery ,javascript , coffeescript et Rails font peur: ils sont simples, puissants  et ne coûtent pas cher. Les apparatchiks sont inquiets.. pour leur mur de berlin


















 








2 commentaires:

Babar a dit…
Ce commentaire a été supprimé par un administrateur du blog.
AngeZanetti a dit…
Ce commentaire a été supprimé par un administrateur du blog.