jeudi 18 octobre 2007
Erlang a le vent en poupe
Par Sébastien Pierre, jeudi 18 octobre 2007 à 14:17 :: Langages
Je ne sais pas si vous lisez Reddit, mais on y voit souvent des choses relatives a Erlang, qui démontrent un certain intérêt pour ce langage.
Mon premier contact avec Erlang été une conférence du MSLUG, où Yariv (ErlyWeb,Vimagi) nous a présenté son expérience avec Erlang dans le contexte du développement d'applications Web. Il disait qu'essentiellement il était curieux d'expérimenter Erlang, qui lui semblait avoir les bon traits pour ce qu'il voulait faire (distribution, concurrence, réseau). J'en suis ressorti avec la conviction que je devrais vraiment faire un petit programme avec Erlang.
Il y a quelques mois, j'ai décidé de passer à l'acte et j'ai passé mon dimanche a jouer avec Erlang, ce qui a donné quelques notes pas vraiment complètes mais néanmoins utiles.
Aujourd'hui, j'ai vu que Bob Ippoloto (bien connu dans le monde Python) était interviewé à propos de l'utilisation qu'il fait d'Erlang dans ces projets. Une des premières choses surprenantes, c'est ça:
When I did some benchmarks on it an Erlang prototype, it worked so much better?than the Python equivalent that I thought it might actually be broken;?it wasn’t, so Erlang very quickly became my production platform of?choice.
Mes essais n'étant jamais vraiment allés très loin, je m'en tenais à ce que Bob lui-même disait de la performance d'Erlang (en gros 2 fois plus lent que Python). Cela dit, à y regarder de plus près les deux langages semblent tout à fait complémentaires.
Un autre aspect intéressant, est cette citation a propos des nouveaux employés qui apprennent Erlang:
I suppose it was a bit risky, but nobody has had any?problems getting into it, and they the new employees seem to prefer Erlang to anything?else when starting new projects.
Je me souviens très bien de Yariv qui nous disait que la plupart des gens qu'il connaît (lui y compris) et qui ont touché à Erlang n'ont (presque) plus envie de toucher à un autre langage (ce sont des choses qui semblent aussi arriver... avec Smalltalk 
Maintenant, après avoir joué un peu plus avec Erlang, je trouve que la syntaxe est quand même souvent lourdingue, et que je faisais beaucoup d'erreur de syntaxe. J'irais même jusqu'a dire que Erlang, au niveau de syntaxe sent un peu trop les années 80, et aurait besoin d'une petite amélioration.
Ma perspective sur les langages de programmation est qu'ils s'agit avant tout d'un coeur fonctionnel (la base du langage) sur lequel on greffe une syntaxe. Mais pour Erlang, quel serait son coeur fonctionnel ? Et que pourrait on améliorer dans la syntaxe ?
Si l'on prend l'approche de Alessandro Warth et Ian Piumarta (que je partage tout a fait), on construirait une API dans un langage de base (C, JavaScript, Python, Pepsi/Coke/Cola ou même Smalltalk, pourquoi pas
que l'on étendrait syntaxiquement avec des constructs expressifs.
Donc la question subsidiaire est: quelle API couvrirait le coeur fonctionnel de Erlang ? Je serais bien curieux de le savoir 