Cette question se situe dans le contexte de la machine virtuelle Beam et des capacités qu'elle fournit, et non dans le contexte général de ce qu'un langage complet de Turing peut faire. Je veux investir du temps pour apprendre l'Erlang pur ou l'Elixir. Je comprends les différences fondamentales entre les deux et je me penche vers Elixir en raison des macros, d'une meilleure syntaxe et d'un développement plus rapide du langage aujourd'hui.
Ma question est: si je choisis Elixir, vais-je tomber sur quelque chose que je ne peux pas faire dedans, mais que je peux faire à Erlang? Puis-je utiliser tous les éléments 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 en production.
Réponses:
Pour commencer, je n'ai utilisé que Elixir dans la production et non Erlang.
Je recommanderais honnêtement Elixir. Ceci est mon opinion et pas nécessairement la bonne pour vous, mais ci-dessous je vais énumérer mes raisons.
Vraiment, si vous avez un désordre avec les deux, vous arriverez probablement à la même décision qu'Elixir est un langage beaucoup plus agréable avec toutes les fonctionnalités d'Erlang + More. Il est également à la hausse, je ne me souviens pas des chiffres exacts, mais je me souviens avoir lu quelque chose sur le site Web Hex (gestionnaire de paquets) à propos d'une augmentation considérable des téléchargements de paquets.
la source
Vous ne devriez pas tomber sur tout ce que vous pouvez faire dans l'un que vous ne pouvez pas dans l'autre, car vous pouvez appeler librement le code Elixir depuis Erlang et vice-versa. Vous pouvez même facilement mélanger des fichiers Erlang et Elixir dans un seul projet.
Dans Elixir:
à Erlang:
la source
TL; DR - Commencez avec Elixir
Erlang a une courbe d'apprentissage plus raide que Elixir. Une fois que vous aurez commencé à apprendre Elixir, vous commencerez automatiquement à apprendre Erlang. Par conséquent, commencez par Elixir. Elixir est écrit en Erlang et Elixir. Voir la distribution sur Github (puisque Elixir regorge de macros aka méta-programmation).
Vous pouvez utiliser Elixir avec Erlang et vice-versa, d'où l'écosystème Erlang complet de plus de 20 ans de bibliothèques.
Plus de détails d' Erlang Solutions
Article de blog de Joe Armstrong (l'inventeur d'Erlang) sur Elixir
Commencez ici pour en savoir plus sur Elixir - Premiers pas
Une fois que vous sentez que cela se passe bien, travaillez votre chemin vers la pratique de l' exercice et d' autres ressources .
la source
Il y a plusieurs choses. Je pense que vous ne pouvez pas faire une fonction anon récursive dans Elixir. Maintenant, pour être honnête, c'est quelque chose que je ne pense pas avoir jamais eu besoin de faire en plus de 8 ans d'Erlang, et si je le faisais, cela pourrait être fait facilement d'une autre manière. Il y a probablement d'autres choses comme ça que vous pouvez ignorer très honnêtement.
En général, pour ce que la plupart des gens se soucient de tout ce que vous pouvez faire à Erlang, vous pouvez le faire dans Elixir et vice versa. La communauté du côté Elixir semble être plus active donc je suggérerais de commencer par là. J'ai récemment déménagé d'Erlang à Elixir et à l'exception de quelques choses fantaisistes dans Proper, je peux dire que c'est une transition assez facile
la source