Avis de ma maigre expérience (= qui vaut ce qu’elle vaut) :
Je n’avais strictement aucune connaissance en programmation fonctionnelle avant de m’intéresser à Erlang/Elixir. J’étais tombé, de mémoire, sur Learn You Some Erlang for Great Good que j’avais survolé par curiosité, je trouvais notamment le concept de pattern matching poussé à l’extrême ou presque vraiment séduisant mais je trouvais la syntaxe vraiment imbuvable moi qui venais du C/PHP/Java. J’avais vu Elixir à l’époque comme alternative mais il n’en était qu’à ses tous débuts.
Quelques années plus tard, j’ai vu qu’Elixir gagnait en popularité et ai décidé de m’y réintéresser au point de m’y essayer sur mon "temps libre". J’en aime beaucoup la plupart des "concepts". Je trouve quand même que malgré les macros il lui manque un certain "dynamisme" (reflection, réutilisation de code entre "bibliothèques"). Je dois avouer que de passer du procédural et/ou de la POO à du fonctionnel, ça fait littéralement un choc au point que certains disent même qu’il faut désapprendre ou oublier ses précédentes pratiques.
go reprend certaines idées d’Erlang, les processus surtout, mais il y a toujours des verrous et compagnie pour gérer la concurrence que tu n’as pas (ou pas forcément) avec Erlang/Elixir. Et tu n’as pas l’immutabilité des données.
Elixir n’a pas non plus la "maturité" et encore moins popularité de Ruby, l’écosystème (gem vs mix/hex) n’est vraiment pas comparable : tu trouves bien plus facilement des gems pour tout faire qu’un équivalent Elixir (ou Erlang). La communauté Elixir se construit et consolide un peu plus chaque jour (du moins, c’est l’impression que j’en ai en fréquentant son forum officiel).
Pour conclure, je dirais qu’Elixir en vaut vraiment la peine mais il faut vraiment de la patience et ne pas avoir peur de s’y investir (en temps en premier lieu). J’en pense aussi qu’avec les CPU modernes (multiplication des cores), Erlang/Elixir, de par son modèle, n’en a que plus de sens sans compter que nativement tu disposes de la scalibilité (tu peux exécuter le code sur plusieurs VM/machines).
Penses-tu que Elixir soit fait pour du traitement réseau ?
"traitements" ? Implémentation de protocoles, serveurs, etc, Erlang/Elixir doivent être plutôt bien classés mais le code ne sera vraiment pas du tout le même qu’avec du C. Ce n’est pas la partie réseau de COD4 ou je ne sais plus quel jeu qui est souvent prise pour exemple pour Erlang ?