Archives de Catégorie: Node.JS

Node.JS

Il y a maintenant deux mois que j’ai découvert Node.JS. Pour comprendre la bête j’ai migré une de mes applications personnelle de PHP vers Node.JS d’autant que cette dernière souffrait d’un manque de vitesse notoire.

Pour un développeur Java (et PHP) ne connaissant pas totalement le Javascript (sauf à travers de JQuery & co) ce fut assez épique mais au final cela en valait la peine. J’ai effectivement pu constater un gain de performances énorme.

Mais voilà … au delà d’avoir appris à faire du Javascript comme un ninja je me suis confronté à la barrière de la programmation « réactive » à savoir mono-thread mais basé sur des callback. Bref de la programme non-bloquante, asynchrone.

Cela fait plus de 25 ans (j’ai commencé tôt) que je développe de manière procédurale et synchrone ou, au mieux, en utilisant des Thread dans Java. Alors la programmation asynchrone …

En fait le plus déroutant c’est :

function readFile(callback) {
	fs.readFile('/etc/passwd', function (err, data) {
		callback(err, data);
		return data;
	});
	return 'Euh ?';
});

(code affreux, c’est pour l’exemple)

Dans l’exemple la fonction fera deux return ? C’est le premier qui gagne ? Et les données du fichier elles envoyées où ?

Je pense trop au callback comme un fork alors que, justement cela n’a rien à voir. Donc il va falloir que je trouve un article expliquant le mécanisme de programmation asynchrone coté machine.

En tout cas je n’ai aucun doute que ce style de programmation va devenir la norme coté Web car sinon impossible de pouvoir traiter des milliers (et bien plus) d’appels simultanés.

A ce sujet j’ai trouvé un tas de choses intéressantes du coté du blog d’Octo Technologie pour le tag reactive. Et d’ailleurs, en tant que développeur Java, j’ai notamment bien aimé l’article « Java 8 est réactif !« .