Sondage du mois

Sondage du mois
 

  La connaissance ne vaut que si elle est partagée par tous




 
  Astuce Adobe Photoshop : Raccourci afficher taille écran : Ctrl 0




Les tutoriaux: Index » ERLANG » Erlang » comment débuter

Introduction

  • Tutoriel posté par Nuki
  • 3471 lectures
  • Mis en ligne le 26-10-2010
  • Dernière mise à jour le 26-10-2010
  • Ce tutoriel a été estimé comme simple.


Automatic Translations:
Translate Into English Translate Into German Translate Into Italian Translate Into Spanish Translate Into Portuguese

Le Erlang est un langage que je trouve hautement intéressant sur beaucoup d'aspects. Il est réputé pour son élégance et sa fiabilité.

C'est en tâchant de me documenter que je me suis rendu compte à quel point il est compliqué d'obtenir de la documentation rigoureuse et complète.

Ayant investit dans deux ouvrages de références et en ayant amélioré mon Anglais pour mieux comprendre certains aspects du langage que je me suis lancé dans la rédaction d'un petit « guide » permettant la découverte et l'initiation de ce langage passionnant.

Avant de commencer à vous expliquer les notions du paradigme Erlang et de sa syntaxe, j'aborderai d'abord ce langage sur son histoire et son utilité. Cette méthode sortira donc sous forme de petits chapitres dédiés au Erlang. Le Erlang étant peu fourni en documentation francophone, j'espère que cette rédaction sera un potentiel apport à la communauté.

Méthodologie
Remerciements

Je remercie d'ores et déjà Ipoulet pour ses relectures et ses conseils ainsi que Cryde pour son soutient dans l'apprentissage fastidieux du Erlang.

Je remercie aussi Mickaël Rémond et Joe Armstrong pour leurs deux livres riche en exemples et en explications.

Présentation historique du langage

Le nom Erlang provient de deux sources, la première est une référence à un Mathématicien Danois, Agner Krarup Erlang qui au début du 20ème siècle a travaillé sur l'intensité des trafics de réseaux téléphoniques.
Erlang peut aussi signifier la contraction de « Ericsson Language ».

Le langage ayant été initié par Ericsson, cette double explication suffit à valider le nom Erlang. Le langage Erlang a donc commencé son développement sous le joug de la société Ericsson et mené par une seule personne, Joe Armstrong en 1986, à cette époque, le langage n'est qu'un dialecte du Prolog et son implémentation repose sur l'interpréteur Prolog. C'est en 1989 que les premiers résultats deviennent concluant et que le Erlang admet sa propre machine virtuelle, la JAM (Joe Abstract Machine). En 1993, au sein de la société Ericsson, se crée le département Erlang System qui comporte 25 personnes. Le langage évoluera de manière constante et c'est en 1998 qu'il deviendra Open Source.
Cette approche historique est volontairement succincte et ne présente que certains aspects du langage. C'est volontaire, elle exprime les raisons du nom du langage et insiste sur le fait que ce langage est le fruit de beaucoup de travail abattu par peu de personne.

Le père du Erlang reste tout de même Joe Armstrong, auteur du livre Programming Erlang, le premier ouvrage de référence sur le sujet.
Si l'histoire du langage vous intéresse, je peux vous conseiller le livre de Mikaël Rémond « Erlang programmation » des éditions Eyrolles qui aborde le sujet rigoureusement et fournie en détail.

Pourquoi est-il intéressant d'apprendre le Erlang

Maintenant que l'aspect historique du langage est un peu plus développé, il serait intéressant de s'interroger sur l'intérêt d'apprendre ce langage? Que peut-il nous offrir de plus qu'un autre langage.

Tout d'abord, il est intéressant de parler de langage fonctionnel concurrentiel, en effet, ce langage admet deux paradigme. Le premier étant l'aspect fonctionnel (comme le Caml, le Haskell ou encore le LISP), le deuxième est plus propre au Erlang, il s'agit de l'aspect concurrentiel, dans concurrence, entendez donc l'idée de parallélisme et donc, de processus.

Pour les initiés à la programmation, sachez que le Erlang ne fonctionne pas du tout comme du JAVA, du C, du C++ ou encore du Python et du PHP. Il est certes possible de faire des liens entre ces différents langage mais l'idée reste tout même relativement loin des langages cités précédemment. Vous serez donc confronté à d'autres problèmes et c'est relativement intéressant de change de paradigme et donc d'approche.

Cependant, ce langage ne puise pas ses avantages uniquement dans son aspect nouveau et dans son autre approche. Sachez que le Erlang offre une fiabilité industrielle pour les applications distribués.

J'entends par là qu'étant développé par Ericsson depuis des dizaines d'années, le Erlang permet d'assurer la fiabilité et la robustesse d'une application. Il peut être utilisé dans de multiple cas comme par exemples des applications internet requérant une grande disponibilité ou, par exemple, des jeux en ligne.

Cependant, il est aussi utilisé dans la finance et l'informatique industrielle. En bref, le Erlang est une solution fiable pour une grande disponibilité avec un temps logiciel extrêmement bas et une fiabilité à toute épreuve. Le Erlang est probablement un des langage les plus robuste et les plus puissant du monde, pouvant aussi être considéré comme un langage généraliste offrant une bonne approche des langages fonctionnels.

De plus, pour clôturer mon éloge de ce langage, j'ajouterai que sa syntaxe est, selon moi, extrêmement élégante et facile à prendre en main pour quiconque se penche vraiment sur ce langage.
Sachez, que de nos jours, le Erlang est probablement un des langage les plus robuste et que un de ses principaux est, selon moi, son manque de popularité et logiquement, de documentation.

Je conclurai par les raisons de l'existence du Erlang qui sont la possibilité de développer rapidement des programmes hautement distribués ainsi que répondre à des problèmes de plus en plus majeurs dans la notion de parallélisme. Pour le moment, je ne développe volontairement pas l'aspect concurrentiel/concourant car dans un premier temps, nous aborderons les notions syntaxique du Erlang. Par après nous utiliserons les concepts de parallélisme et la notion de langage concurrentiel/concourant sera expliqué en détail.

Installer Erlang

Comme pour beaucoup de langage, le Erlang ne se trouve pas par défaut sur votre machine. Nous allons voir comment choisir une version de Erlang et comment l'installer sur notre machine.
La première étape est de se rendre sur le site Erlang.org et de se rendre dans la rubrique téléchargement (http://erlang.org/download.html). Dans cette rubrique, vous pouvez voir que nous sommes confronté une multitude de versions.

Choisir une version



Lorsque nous sommes dans la rubrique de téléchargement de Erlang, nous pouvons voir que beaucoup de version s'offrent à nous. Leur nom/indicatif n'est pas forcément claire, en effet, chaque indicatif est relativement complexe.
Par défaut, tous les noms de version commence par un R en référence à Release, ce qui veut dire version en Anglais. Le second indice correspond au numéro de la version. Actuellement, nous en sommes à la 14ème version. La lettre, A ou B, qui suit le numéro de la version défini l'état de développement de la version. Si la lettre est A, c'est que la version est en phase de test, si c'est B c'est que le développement est considéré comme fini et que la version est stable. La version actuelle que je conseillerais serait donc: R14B.
Dans certains cas, il arrive que des numéro suivent le nom de version. Il s'agit d'une version au sein de la version.
Par défaut, je conseille toujours de prendre la dernière version stable (donc une version B), cependant, vous êtes libre de choisir ce que vous préférez. D'ailleurs, les versions A ne sont généralement pas fort instable et frise même la stabilité.

Installer sous Windows

L'installation sous Windows est relativement simple, il suffit de lancer l'exécutable et d'installer Erlang dans le répertoire de votre choix. Je vous déconseille tout de même de l'installer dans le répertoire des programmes Windows par défaut car ce répertoire est protégé pour les droits d'écriture, mais vous choisissez vraiment celui que vous voulez.
Pour lancer l'interpréteur Erlang au moyen de la commande >erl dans l'invité de commande, il vous sera demandé d'ajouter la variable environnementale dans la partie système de votre panneau de configuration.
Le but de ce cours n'est pas de vous apprendre à vous servir de Windows, je me contente donc de vous pointer vers ce didacticiel pour plus d'informations sur les variables environnementales :
Lien vers developpez.com sur les variables Environnementale.
L'installation pour Windows ne devrait, à priori, pas poser de problèmes. Vous pouvez d'ores et déjà travailler en Erlang.

Installer sous Linux

Pour l'installation sous Linux, il suffit de lancer dans le terminal la commande:
apt-get install erlang
Cette commande installera le Erlang sur votre machine. Sous Linux, il n'est pas nécessaire de spécifier une quelconque variable d'environnement car utiliser la commande erl lancera automatiquement l'interpréteur.

Première utilisation de l'interpréteur

Dans cette première partie, nous n'apprendrons pas tout de suite comment compiler du code. En effet, nous interpréterons nos commande Erlang ligne par ligne pour se familiariser avec la syntaxe.
Une petite précision s'impose, la différence principale entre une compilation et une interprétation est que la compilation « chargera » l'intégralité du code (en Erlang, on parlera de module) pour permettre d'en utiliser ses fonctions et macros définitions, l'interprétation nous permettra d'exécuter du code ligne par ligne. Je pense que pour aborder la syntaxe c'est une méthode rapide et simple pour ne pas devoir, par après, ré expliquer certains concepts que j'aurais dut passer. Nous allons donc ouvrir notre terminal/inviter de commande et lancer la commande: erl
Cette commande a donc pour effet de lancer l'interpréteur:
CODE


Erlang R14B (erts-5.8.1) [smp:2:2] [rq:2] [async-threads:0]

Eshell V5.8.1  (abort with ^G)
1> 


Ces informations indique que l'interpréteur est lancé, le 1> correspond au numéro de la commande. C'est à partir de maintenant et dans cette fenêtre que nous pourrons écrire du code Erlang. Par définition, une commande se termine par un point, ce qui permet son interprétation. Voyons directement un exemple de calcul.
CODE


Erlang R14B (erts-5.8.1) [smp:2:2] [rq:2] [async-threads:0]

Eshell V5.8.1  (abort with ^G)
1> 10+8.
18
2> 


Rien de bien compliqué, grâce au point, nous interprétons notre calcul et la réponse s'affiche, nous pouvons maintenant exécuter une nouvelle commande. Pour insister sur le fait que ce soit le point qui définisse la fin de la commande, je vais vous donner un autre exemple:
CODE


Erlang R14B (erts-5.8.1) [smp:2:2] [rq:2] [async-threads:0]

Eshell V5.8.1  (abort with ^G)
1> 10+8.
18
2> 18
2> +
2> 10.
28
3> 


J'ai effectuer plusieurs retours à la ligne, mais le code n'a afficher le résultat que lorsque j'ai utilisé un point. Dans le cas présent, cela ne doit pas vous paraitre utile, cependant, plus tard, lorsque nous serons amené à utiliser des fonctions qui prennent un nombre considérable de paramètre, vous pourrez que ça peut être très pratique.
Maintenant que nous sommes plus ou moins familier avec l'interpréteur, nous allons commencer à étudier réellement la syntaxe du Erlang.
C'est donc sur cette sous-partie que ce clôture la première partie de cette série de publications sur le Erlang.
Notes

  Evaluez le tutorial (13 Votes)

12
1
0

C'est ici que ce clôture cette première partie. Dans la seconde, nous admettrons que les outils que nous avons mis en place dans cette partie-ci seront toujours installé et que ce que vous aurez appris ne sera point oublié pour passer à l'apprentissage de la syntaxe.

Si vous avez des questions, je suis disponible via le forum.

Ce cours est aussi téléchargeable en PDF via cette adresse: Version Hors ligne du cours.

Pour les questions ou d'éventuelles remarques, dirigez vous vers le forum.

Réagir sur ce tutoriel - [ERLANG] comment débuter

DERNIÈRES PUBLICATIONS DE OPEN-MOUTHED

En direct de open-mouthed.com