Linux France

S'abonner à flux Linux France
Mis à jour : il y a 1 heure 36 min

Elixir, Phoenix et Membrane

Lundi 30 Juillet

Elixir est un langage de programmation dont la version 1.7 vient de sortir. Il est notamment utilisé par 2 frameworks : Phoenix pour le web et Membrane Framework pour le streaming multimédia. Ces 3 projets sont présentés dans la seconde partie de la dépêche.

Elixir

Elixir est un langage de programmation fonctionnel et dynamique. Il s'appuie sur la machine virtuelle d'Erlang, avec une syntaxe inspirée de Ruby et pas mal de bonnes idées prises d'autres langages (les docstrings de Python par exemple).

Elixir profite de la machine virtuelle d'Erlang, connue pour ses aspects distribués, résistants aux erreurs et sa faible latence. En particulier, il reprend les processus légers (l'équivalent des goroutines de Go) :

current_process = self() # Crée un nouveau processus léger d'Elixir spawn_link(fn -> send current_process, {:msg, "hello world"} end) # Attend jusqu'à la réception d'un message receive do {:msg, contents} -> IO.puts contents end

Un autre point fort d'Elixir est son outillage, avec notamment mix, l'outil de build, hex, le gestionnaire de packages, et iex, la console interactive. ExUnit, le framework de test, profite des macros d'Elixir, qui permettent d'écrire des DSL, pour avoir des tests concis avec des rapports d'erreur compréhensibles :

defmodule SampleTest do use ExUnit.Case, async: true test "test the truth" do assert "fox jumps over the lazy dog" == "brown fox jumps over the dog" end end

Phoenix

Phoenix est un framework web, l'équivalent de Ruby on Rails pour Elixir. Par rapport à Rails, il a abandonné le côté magique tout en ayant quand même réussi à garder le sentiment de productivité que l'on peut avoir en développant avec. En particulier, Ecto, la bibliothèque de persistance des données, est souvent vue comme plus solide qu'ActiveRecord. Enfin, Phoenix bénéficie d'Elixir et de la plateforme Erlang : ses temps de réponses pour des pages avec peu d'interactions avec la base de données sont généralement sous la milliseconde, là où on est plutôt à quelques dizaines de millisecondes avec Rails.

Membrane Framework

Membrane Framework sert à construire des applications côté serveur pour les flux multimédia. Il met l'accent sur la fiabilité et la concurrence, et ce n'est donc pas très étonnant qu'il soit développé en Elixir (avec un peu de C toutefois).

Membrane Framework se compare à gstreamer. D'après les dires de leurs développeurs, ils ne cherchent pas à couvrir tous les cas et formats que gstreamer peut couvrir et préfèrent se concentrer sur la qualité.

NdA : j'ai déjà utilisé un peu Elixir et Phoenix, mais je ne fais que relayer des informations lues sur le site officiel de Membrane Framework car le projet me semble intéressant. Si des lecteurs ont un avis plus éclairé, je les encourage à le faire partager dans les commentaires.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Pages