Node.js réussira-t-il là où tant d'autres langages de script ont échoués ?

Les gens, je crois que je suis en train de tomber amoureux...

Vous le savez (ou pas), depuis des années, de nombreuses années, je suis à la recherche du langage de script idéal. Vous savez, ce langage à la fois générique, propre, élégant, multiplateformes, avec des bonnes bibliothèques, rapide (surtout, pas méga-lent), et qui permet de serrer...

Le choix d'un langage, c'est un peu comme l'entrée en religion. Chacun à son préféré, et les autres sont forcément plus moches. Hors Le Langage, point de salut...

J'ai essayé beaucoup de langages de script. Perl, tout d'abord. Désolé, mais je trouve la syntaxe vilaine. En plus, la philosophie de "TIMTOWTDI" (There Is More Than One Way To Do It) ne me plait pas du tout, et ce pour deux raisons. Primo, je pense qu'il y a en gros une seule manière de faire les choses, la bonne. Si un langage est bien gaulé, un programmeur même novice qui a compris l'esprit du langage a une bonne intuition de la bonne approche à suivre et ce quel que soit l'objectif. Secundo, "TIMTOWTDI", ça rend beaucoup plus difficile le fait de coder à plusieurs et surtout de maintenir un code commun. Donc, perl, non...

J'ai aussi essayé ruby... Alors ruby, c'est chouette, c'est joli, c'est élégant (quand c'est bien fait). J'ai été très amoureux de ruby. Et puis, après quelques temps, je me suis rendu compte qu'en pratique, ruby est souvent très lent. Ce que j'ai trouvé récemment plus gênant, c'est une tendance à partir un peu dans tous les sens, à la perl... Finalement, beaucoup de syntactic sugar était certes très joli, mais assez peu utile. Le coup des 5.times { ... } par exemple... Très joli, mais finalement, quel intérêt la plupart du temps ? Et puis quelle différence avec le for i in 1..5 ? Ce qui m'a le plus troublé, c'est le jour où j'ai appris que certaines méthodes à la syntaxe différente mais qui étaient censées faire la même chose (je pense concaténation là) le faisait de manière en fait si différentes que la variation de temps d’exécution pouvait aller de 1 à 10 entre deux méthodes...

Alors, évidemment, il y a python. Python, c'est nice, communauté hyper-active (et comptant certains hyperactifs aussi, d'ailleurs, salut les gens ;-) ), des bibliothèques pour tout, une approche assez rationnelle et globalement assez cohérente... Python avait tout pour me plaire. Sauf que j'aime pas la syntaxe. Les indentations, je les mets de moi même, j'essaye de faire du code propre, mais j'aime pas qu'on me force la main. Python, c'est un peu comme cette très jolie jeune fille très compétente qui me force à mettre un costard même si je me suis pas lavé depuis trois jours...

Je vous passe les trucs un peu plus exotiques qui m'avaient pourtant pas mal plu (lua notamment) parce que je me rend compte que faire un très très gros billet quand on avait rien posté depuis longtemps, c'est pas sérieux.

Or donc, pourquoi tant de bruit ? Parce que j'ai rencontré node.js. Pourtant, a priori, pas beaucoup d'atouts à mes yeux. Déjà, c'est du javascript... Ouais, je sais, du javascript.. Moi non plus, a priori, j'aime pas... Sauf que ce que j'aimais surtout pas dans javascript, c'est que ca tournait dans un navigateur. Là, node.js, c'est server-side. Vous noterez que normalement, ça non plus, j'aime pas : node.js a au départ été conçu pour faire des serveurs web efficaces... Mais là ou ça s'améliore, c'est qu'il fait tout ce qu'un bon langage de script sait faire, et ce avec une API très cohérente. En tous cas, j'y trouve de la cohérence. La gestion de fichiers est cohérente, la gestion des comms réseaux est très cohérente, et la gestion des interfaces utilisateur est très cohérente aussi (CLI ou GUI via webapp). Bref, très chouette.

Autre point très chouette, node.js est, comme javascript, fonctionnel. C'est un langage fonctionnel, s'entend, comme caml (que j'ai beaucoup aimé, il y a longtemps). A moi le plaisir du map et du reduce. A moi le plaisir de demander à une structure de se faire des choses ! Et à moi le plaisir des callback (un gros fondamental de node.js, je reviendrai là dessus dans un prochain post, dans un an à vue de nez).

Bref, j'ai été séduit. Franchement, n'hésitez pas à tenter le coup, node.js pourrait bien vous plaire à vous aussi. Et concernant les langages, j'suis pas jaloux.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://www.neekotech.fr/blog/index.php?trackback/5

Fil des commentaires de ce billet