af83

Démarrer avec Elixir sous Debian/Ubuntu

Elixir est un langage de programmation à mi-chemin entre Erlang et Ruby. Il tire d'Erlang toute la puissance de sa machine virtuelle, comme par exemple sa capacité à remplacer du code à chaud. Mais son auteur, José Valim, a également cherché à lui donner tout ce que l'on peut attendre d'un langage moderne : gestion simple des chaînes de caractères, metaprogramming, syntaxe agréable, outillage, etc. C'est une vision réductrice car il emprunte également d'autres éléments à d'autres langages (les docstrings à Python ou mix à Clojure) mais cela donne un peu de contexte.

C'est un langage encore très jeune mais je le trouve déjà très intéressant. Dans ce billet, je souhaite expliquer comment faire ses premiers pas avec Elixir.

Tout d'abord, mon poste de travail est sous Ubuntu et nos serveurs sous Debian. Comme expliqué ci-dessus, Elixir a besoin d'Erlang (de sa machine virtuelle) pour fonctionner, or les versions présentes dans les dépôts officiels sont trop vielles. Je me suis donc tourné vers les paquets fournis par Erlang Solutions.

En l'occurrence, en root (ou à coup de sudo) :

# echo 'deb http://binaries.erlang-solutions.com/debian quantal contrib' \
  > /etc/apt/sources.list.d/erlang.list
# wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc \
  | apt-key add -
# aptitude update
# aptitude install esl-erlang

Puis, on peut passer à l'installer d'Elixir (en simple utilisateur) :

cd ~/vendor
wget https://github.com/elixir-lang/elixir/archive/v0.9.3.tar.gz
tar xvzf elixir-0.9.3.tar.gz
mv elixir-0.9.3 elixir
cd elixir
make
echo 'export PATH="$HOME/vendor/elixir/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Et si tout s'est bien passé, vous pouvez maintenant tester en lançant l'interpréteur interactif (l'équivalent d'irb dans le monde Ruby) :

$ iex
Erlang R16B01 (erts-5.10.2) [source-bdf5300] [smp:2:2] [async-threads:10]
[hipe] [kernel-poll:false]

Interactive Elixir (0.9.3) - press Ctrl+C to exit (type h( ENTER for help)
iex(1)> 1+1
2
iex(2)>

Pour quitter, il faut faire CTRL+C puis taper a et Entrée.

Note : j'ai installé la version 0.9.3 qui est la dernière mais, comme cela change rapidement, je vous invite à choisir la dernière version depuis https://github.com/elixir-lang/elixir/tags.

Étape suivante, configurer son éditeur de texte. Elixir a le bon goût de fournir des scripts officiels pour les principaux éditeurs. Pour ma part, j'utilise vim et je me suis donc tourné vers vim-elixir. Si vous êtes plutôt emacs, ne soyez pas jaloux, emacs-elixir est là pour vous. Citons également elixir-tmbundle pour les utilisateurs de Textmate.

Pour démarrer un projet, Elixir nous fournit un moyen simple :

$ mix new my_project
$ cd project
$ tree
.
├── ebin
│   ├── Elixir.MyProject.beam
│   └── my_project.app
├── lib
│   └── my_project.ex
├── mix.exs
├── README.md
└── test
    ├── my_project_test.exs
    └── test_helper.exs

3 directories, 7 files

Notons qu'Elixir est un langage moderne civilisé et fournit donc de base de quoi tester. On peut d'ailleurs lancer tout de suite notre premier test unitaire depuis le projet généré avec mix :

mix test
Compiled lib/my_project.ex
Generated my_project.app
.

Finished in 0.08 seconds (0.07s on load, 0.01s on tests)
1 tests, 0 failures

Voilà, il ne vous reste plus qu'à vous lancer et écrire dans lib/my_project.ex pour que votre projet réussisse. Pour cela, vous avez 2 solutions :

  1. Si vous êtes parisien, le User Group Paris.ex se réunira pour un premier meetup mercredi prochain (le 03/07 donc) à partir de 19h30. Cette séance d'initiation pourra être l'occasion d'écrire votre premier programme Elixir en groupe.
  2. Sinon, vous pouvez vous rabattre sur d'autres ressources comme le manuel « Getting Started » ou le screencast « Meet Elixir », produit par Peepcode.

blog comments powered by Disqus