Cette question se situe dans le contexte du Beam VM et des fonctionnalités qu’il offre, et non dans le contexte général de ce qu’un langage complet de Turing peut faire. Je souhaite investir un peu de temps pour apprendre Erlang ou Elixir: je comprends les différences fondamentales entre les deux et je penche en faveur d’Elixir à cause des macros, d’une meilleure syntaxe et du développement plus rapide de la langue de ce jour.
Ma question est la suivante: si je choisis Elixir, vais-je trébucher sur quelque chose que je ne peux pas y faire, mais que je peux faire à Erlang? Puis-je utiliser tout le matériel OTP, toutes les bibliothèques Erlang, le rechargement de code, etc. avec Elixir?
Je ne demande pas la préférence de quelqu'un entre les deux; juste des faits sur les possibilités des langues. De préférence de quelqu'un qui a utilisé les deux dans la production.
Pour commencer, je n’ai utilisé que l’élixir en production et pas Erlang.
Je recommanderais honnêtement Elixir. C’est mon opinion et pas forcément la bonne pour vous, mais je vais énumérer ci-dessous mes raisons.
Vraiment, si vous avez des problèmes avec les deux, vous en arriverez probablement à la même décision, à savoir que l'élixir est un langage beaucoup plus agréable doté de toutes les fonctionnalités d'Erlang + More. C'est aussi à la hausse, je ne me souviens pas des chiffres exacts, mais je me souviens d'avoir lu quelque chose sur le site Web de Hex (gestionnaire de paquets) à propos d'une augmentation considérable du nombre de téléchargements de paquets.
Vous ne devriez pas trébucher sur ce que vous pouvez faire dans un cas impossible, car vous pouvez appeler librement le code Elixir d'Erlang et inversement. Vous pouvez même facilement mélanger des fichiers Erlang et Elixir dans un projet.
Dans Elixir:
:erlang_module.erlang_function(args)
à Erlang:
'Elixir.ElixirModule':elixir_function(args)
TL; DR - commence avec Elixir
Erlang a une courbe d'apprentissage plus raide par rapport à Elixir. Une fois que vous aurez commencé à apprendre Elixir, vous commencerez automatiquement à apprendre Erlang. Par conséquent, commencez avec Elixir. Elixir est écrit en Erlang et Elixir. Voir la distribution sur Github (puisque Elixir est plein de macros aka méta-programmation).
Vous pouvez utiliser Elixir avec Erlang et inversement, d’où l’écosystème complet d’Erlang, constitué de plus de 20 ans de bibliothèques.
Plus de détails de Erlang Solutions
La productivité "clé en main" d’Elixir est obtenue par un accent particulier mis sur l’outillage et la commodité d’expression de la manipulation des données. La conception du système est la même dans Elixir et Erlang, mais Elixir supprime beaucoup de code standard et est plus facile à étendre. La suppression de la plate-forme augmente la productivité et permet aux programmeurs d'obtenir des informations plus rapidement, ce qui est crucial lorsque vous souhaitez lancer votre produit sur le marché le plus rapidement possible. Moins de passe-partout est aussi un plaisir pour les développeurs, et les développeurs heureux sont des développeurs sans aucun doute productifs.
Joe Armstrong 's (l'inventeur d'Erlang) article de blog sur Elixir
Commencez ici pour en savoir plus sur Elixir - Mise en route
Une fois que vous sentez que ça va bien, travaillez votre chemin vers la pratique sur Exercism et autres ressources .
Il y a quelques choses. Je pense que vous ne pouvez pas créer de fonction récursive anon dans Elixir. Maintenant, pour être honnête, je ne pense pas que j’ai jamais eu besoin de le faire depuis plus de 8 ans à Erlang, et si je le faisais, cela pourrait se faire facilement d’une autre manière. Il y a probablement quelques autres choses de ce genre que vous pouvez ignorer très honnêtement.
En général, pour ce que la plupart des gens s'intéressent à tout ce que vous pouvez faire à Erlang, vous pouvez le faire à Elixir et inversement. La communauté du côté de l'Elixir semble être plus active, je suggère donc de commencer par là. J'ai récemment déménagé d'Erlang à Elixir et, à l'exception de quelques petites choses fantaisistes dans Proper, je peux dire que la transition est assez facile