J'ai choisi Elixir pour deux raisons.
D'abord parce que la machine virtuelle BEAM (un peu comme la JVM pour Java) sur laquelle il tourne est une petite merveille qui permet de construire des programmes ultra robustes en ayant pour principal objectif de pallier tout les problèmes qui peuvent arriver (et qui vont arriver !) sur un programme qui tourne en continu, 24h/24, 7j/4 comme un serveur de jeu, et qu'elle est notamment optimisée pour programmer sur des architectures d'ajourd'hui (serveurs multi cœurs et programmes distribués sur plusieurs serveurs) sans demander gérer ça soi-même. BEAM existe depuis 30 ans environ et ne cesse de s'améliorer d'année en année.
Ensuite parce-que le langage en lui même est très charmant (hormis sa syntaxe inspirée de ruby (comme Coffeescript d'ailleurs) qui est une insulte au bon goût mais qui reste très facile à lire (pas comme Coffeescript)). Déjà ce n'est pas orienté objet, les variables sont immutables, il y a peu de constructions logiques (fonctions, if/else, switch, etc.) mais c'est largement suffisant, et si besoin on peut créer soi-même les siens car le système de macros est le meilleur que j'ai jamais vu, on peut créer des millions de processus concurrents (ce qui peut remplacer des objets quand on a besoin de créer des petites cellules indépendantes qui communiquent entre elles), et d'autres trucs ultra pratiques, comme le pattern matching, l'opérateur pipe.
Ensuite, les bonus :
Phoenix est cool, rapide, pas vraiment compliqué même si la doc pourrait être plus élaborée. En plus il est utilisable comme un petite librairie ou comme framework structurant toute l'appli. Perso je suis entre les deux.
Le package manager
La gestion de l'unicode est correcte et pas chiante comme en PHP.
Pour les Inconvénients, c'est plus difficile à héberger que PHP ou Node car l'offre est plus faible. Moi je m'en fous j'ai un serveur privé. C'est un langage fonctionnel immutable donc il faut adopter une nouvelle façon de penser ; ceci étant dit ce n'est pas compliqué que le paradigme orienté objet et se secouer un peu de temps en temps ne fait pas de mal.
Ce n'est pas très efficace pour faire des milliers de calculs dans tous les sens. Il vaudra mieux pour cela créer des fonctions en C ou Java et les appeler depuis Elixir (Elixir peut faire tourner ces programmes en faisant croire au reste du code que c'est un processus Elixir afin de communiquer facilement avec lui).
Et il vaut mieux comprendre l'anglais pour se lancer.
Évidemment ce sont des avis personnels
edit: zut, encore un pavé !
D'abord parce que la machine virtuelle BEAM (un peu comme la JVM pour Java) sur laquelle il tourne est une petite merveille qui permet de construire des programmes ultra robustes en ayant pour principal objectif de pallier tout les problèmes qui peuvent arriver (et qui vont arriver !) sur un programme qui tourne en continu, 24h/24, 7j/4 comme un serveur de jeu, et qu'elle est notamment optimisée pour programmer sur des architectures d'ajourd'hui (serveurs multi cœurs et programmes distribués sur plusieurs serveurs) sans demander gérer ça soi-même. BEAM existe depuis 30 ans environ et ne cesse de s'améliorer d'année en année.
Ensuite parce-que le langage en lui même est très charmant (hormis sa syntaxe inspirée de ruby (comme Coffeescript d'ailleurs) qui est une insulte au bon goût mais qui reste très facile à lire (pas comme Coffeescript)). Déjà ce n'est pas orienté objet, les variables sont immutables, il y a peu de constructions logiques (fonctions, if/else, switch, etc.) mais c'est largement suffisant, et si besoin on peut créer soi-même les siens car le système de macros est le meilleur que j'ai jamais vu, on peut créer des millions de processus concurrents (ce qui peut remplacer des objets quand on a besoin de créer des petites cellules indépendantes qui communiquent entre elles), et d'autres trucs ultra pratiques, comme le pattern matching, l'opérateur pipe.
Ensuite, les bonus :
Phoenix est cool, rapide, pas vraiment compliqué même si la doc pourrait être plus élaborée. En plus il est utilisable comme un petite librairie ou comme framework structurant toute l'appli. Perso je suis entre les deux.
Le package manager
mix
est de bonne facture et le compilateur est top.La gestion de l'unicode est correcte et pas chiante comme en PHP.
Pour les Inconvénients, c'est plus difficile à héberger que PHP ou Node car l'offre est plus faible. Moi je m'en fous j'ai un serveur privé. C'est un langage fonctionnel immutable donc il faut adopter une nouvelle façon de penser ; ceci étant dit ce n'est pas compliqué que le paradigme orienté objet et se secouer un peu de temps en temps ne fait pas de mal.
Ce n'est pas très efficace pour faire des milliers de calculs dans tous les sens. Il vaudra mieux pour cela créer des fonctions en C ou Java et les appeler depuis Elixir (Elixir peut faire tourner ces programmes en faisant croire au reste du code que c'est un processus Elixir afin de communiquer facilement avec lui).
Et il vaut mieux comprendre l'anglais pour se lancer.
Évidemment ce sont des avis personnels

edit: zut, encore un pavé !