2 points par GN⁺ 2023-11-11 | 1 commentaires | Partager sur WhatsApp

Passer à Elixir

  • Dans son nouveau travail, l’auteur utilise Elixir comme principal langage backend.
  • Il n’avait aucune expérience avec Elixir ou Erlang, mais l’a appris facilement grâce à une syntaxe similaire à celle de Ruby.
  • Cela permet d’éviter les problèmes de gestion d’état des langages orientés objet et de profiter des avantages de l’immuabilité et de la programmation fonctionnelle.

Les avantages d’Elixir

  • Le code avec un état mutable est difficile à maintenir.
  • Elixir prend en charge les DSL comme Ruby, mais utilise des macros à la compilation pour générer du code à l’exécution.
  • Même sans écrire de tests, il est possible de détecter à la compilation les erreurs d’usage des macros.

Syntaxe et expressions

  • La syntaxe de pipeline d’Elixir est appréciée, mais l’auteur préfère l’opérateur de « threading » de Clojure.
  • L’expression with permet de séparer les fonctions complexes entre le chemin de succès et la gestion des erreurs.

Gestion des exceptions

  • En Ruby, il est courant d’utiliser les exceptions pour contrôler le flux d’exécution.
  • En Elixir, au lieu des exceptions, on utilise plutôt les monades Result / Either, avec ok et error comme valeurs de retour.

L’avis de GN⁺

Le point le plus important de cet article est le plaisir de programmer en Elixir et sa facilité de maintenance. Il est intéressant de voir comment le langage résout les problèmes complexes de gestion d’état des langages orientés objet et améliore la stabilité ainsi que la lisibilité du code grâce à l’immuabilité et à la programmation fonctionnelle. En particulier, son système de macros, capable de détecter des erreurs à la compilation, offre aux développeurs un environnement plus sûr pour écrire du code. Ces caractéristiques devraient aussi donner envie aux ingénieurs logiciels débutants d’apprendre Elixir.

1 commentaires

 
GN⁺ 2023-11-11
Avis Hacker News
  • L’intérêt pour le langage Elixir a augmenté ces dernières semaines grâce à des vidéos YouTube.

    • Elixir plaît à ceux qui apprécient les idées d’Erlang, même si l’expérience d’usage réelle peut sembler un peu étrange.
    • Vision positive des processus isolés et du passage de messages (actors) comme avenir de la programmation distribuée.
    • Appréciation du pattern matching, mais regard sceptique sur la « magie » de LiveView et LiveBook d’Elixir.
    • Sentiment d’étrangeté face à la terminologie et aux concepts propres à Elixir, comme les GenServers.
    • Conscience des risques liés à une petite communauté, tout en saluant ce qu’elle a accompli.
    • Expression d’attentes autour de l’implémentation d’un système de types.
  • L’un des principaux avantages d’Elixir/Erlang mis en avant est la facilité des tâches en arrière-plan.

    • Une expérience dans un précédent emploi a montré qu’avec les Task d’Elixir, le serveur pouvait continuer à traiter les requêtes HTTP sans s’interrompre.
  • La conférence de Sasa Juric, "The Soul of Erlang and Elixir", met en lumière la puissance du langage.

  • Partage d’une expérience d’utilisation d’Erlang depuis 1991.

    • D’autres langages ont aussi été utilisés, mais Erlang reste celui qui procure le plus de plaisir.
    • Intention de continuer à utiliser Erlang jusqu’à la retraite.
  • Apprendre et utiliser Elixir est perçu comme plaisant, avec une satisfaction particulière pour la simplicité et les fonctionnalités de BEAM/OTP.

  • Parmi les atouts d’Elixir, mise en avant d’un plaisir comparable à Ruby, tout en supprimant les inconvénients de la programmation orientée objet grâce à l’immuabilité et à son caractère fonctionnel.

    • L’ajout d’un système de types est souhaité afin d’améliorer la compréhension des grandes bases de code.
  • Signalement d’un malentendu sur l’usage des exceptions comme contrôle de flux en Ruby.

  • Un utilisateur de F# exprime sa confusion face à Elixir.

    • Les signatures de fonctions ne fournissent pas d’informations de type, ce qui complique l’usage dans de grandes bibliothèques.
    • Questionnement sur les principaux points d’attraction d’Elixir.
  • Des retours d’expérience sur Elixir soulignent sa facilité d’apprentissage, ainsi que les avantages du pattern matching et des données immuables.

    • Excellente expérience dans la construction de systèmes CQRS.
    • Éloges pour la stabilité de BEAM et la manière dont GenServer gère les erreurs.
  • Mise en garde contre l’optimisme des débuts vis-à-vis des nouvelles technologies.

    • Recommandation de partager son expérience après un usage réel sur une longue période.