JeanHuguesRobert is virteal, virtually real. RSS

Virteal Des choses désordonnées en franglish au sujet du Baron Mariani, la Corse, le développement durable, les neuro-sciences, la nature humaine, des faits contre-intuitifs, la cuisine et le logiciel français de qualité, les nouvelles tendance d'utilisation du web et de la technologie, SimpliWiki, les wikis et les autres logiciels sociaux, JavaScript, Ruby, la vie & l'univers (and 42 of course).

 

Site Meter visits.
©2007-2012 Virteal

Jan
29th
Dim
permalink
defer() is needed because it becomes the placeholder for the callback function, and lets Iced know how many functions it needs to wait to call back.
>

IcedCoffeeScript | Hacker News

Programming. C’est un peu un mystère : s’agissant d’apprendre à programmer, nous ne sommes pas égaux. Certains y arrivent, d’autres pas et ceux qui n’y arrivent pas n’ont rien de spécial par ailleurs… Il semble que programmer requière une “tournure d’esprit” particulière, si particulière qu’à ce jour personne n’est parvenu à l’identifier ; de sorte qu’on est bien incapable d’estimer, par exemple lors d’un entretient d’embauche, jusqu’à quel point une personne est ou pas dotée de cette “tournure d’esprit”.

Une des conséquences de cette incapacité à évaluer simplement la compétence potentielle en programmation est que l’on embauche souvent des programmeurs sans talent au même prix que les autres… d’où des salaires sans lien avec la productivité réelle… S’il en était autrement, une minorité de programmeurs seraient très bien payé pendant que les autres seraient réorientés vers des secteurs mieux taillés pour eux.

Une autre conséquence est qu’on perd son temps dans les universités à enseigner une matière qu’une bonne partie des étudiants ne maitriseront jamais…

Parmis ceux qui parviennent à programmer, nouveau mystère, il en est une majorité qui jamais n’arriveront à programmer autrement que de façon “séquentielle” ; les interractions parallèles sont difficiles à suivre, on s’y perd vite.

Il se trouve que s’agissant du Web et de JavaScript, ces interractions sont nombreuses. En JavaScript elles sont traitées dans des “callbacks”.

D’où l’idée, pour rendre la programmation JavaScript plus accessible, d’améliorer ce langage en introduisant des structures de controle destinée à rendre plus facile à suivre les interractions parallèles, des structures destinées à donner à ces interractions parallèles certaines des caractéristiques “séquentielles” facile à suivre.

C’est ici l’objet de cette extension de CoffeeScript : simplifier la programmation d’interractions parallèle en introduisant le mécanisme “await/defer” (issu de C# je crois).

En l’absence de support natif pour des threads et faute d’une primitive cc (Call with Continuation), la seule solution est de transformer le code afin d’injecter l’équivalent de ces mécanismes. On obtient une sorte de javascript++ qui se transforme par compilation en un pur javascript ; exactement comme les premiers compilateur C++ qui généraient du C.

Pour avoir passé près d’un an à programmer en JavaScript coté serveur (avec Node.js), je peux affirmer que la programmation événementielle à base de callbacks a vite fait de devenir un gros tas de spaghetti délicat à debugger.

La concision de CoffeeScript + le multi-tâches d’IcedCoffeeScript forme dès lors une alternative terriblement attrayante…

Comments (View)



UA-7243675-1