Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  Sortie d’Erlang/OTP 24

 -  Juillet 2021 - 

À l’occasion de la sortie d’Erlang/OTP 24, le 12 mai 2021, je voudrais vous présenter cet environnement de programmation : le langage Erlang et son écosystème.

Écosystème

Erlang/OTP est la partie centrale d’un écosystème constitué de langages (fonctionnels), d’environnement d’exécution (machine virtuelle, JIT, etc.) et de bibliothèques standards.

Langages

Le langage Erlang, dont la première version date de 1987, a été développé originellement chez Ericsson pour programmer des commutateurs. Il est devenu open source en 1998. Ses premiers auteurs étaient Joe Armstrong et Robert Virding. Erlang a longtemps été connu pour sa robustesse : l’ATM AXD 301 d’Ericsson, programmé en erlang, a démontré offrir un taux de disponibilité de 99,9999999% (« neuf neufs »).

Ses principales caractéristiques :

  • une syntaxe inspirée de Prolog ;
  • le partage de données par passage de message ;
  • une gestion explicite du temps.

La syntaxe ayant été longtemps considérée comme un point faible, une trentaine de langages ont été ensuite développés qui bénéficient du même environnement d’exécution et offrent un certain niveau de compatibilité entre eux (réutilisation des bibliothèques), par exemple :

  • Elixir : inspiré par Ruby et offrant de larges possibilités de méta-programmation ;
  • lfe : inspiré par LISP ;
  • hamler : inspiré par Haskell.

Environnement d’exécution

Jusqu’à Erlang/OTP 23, l’environnement d’exécution le plus courant s’appelait la BEAM. C’est une machine virtuelle qui interprète le bytecode généré, par exemple, par le compilateur Erlang dont les principales caractéristiques sont :

  • distribution : plusieurs instances (« node ») de BEAM peuvent communiquer entre eux. Le passage de message entre processus erlang se fait de manière transparente au sein d’un même nœuds ou entre différents nœuds ;
  • immutabilité : l’immutabilité des variables est gérée par BEAM ;
  • remplacement de code à chaud : chaque pièce de code peut être remplacée à chaud, à l’échelle du module, la bibliothèque standard offrant des mécanismes pour gérer la migration de structure de données d’une version d’un module à l’autre, le cas échéant ;
  • gestion des threads : bien avant Go ou Scala, BEAM a intégré la gestion de threads ultra-léger, permise par le côté fonctionnel du langage. L’absence de structures partagées entre les processus permet une gestion ultra optimisée.

À propos des threads, Joe Armstrong avait publié un benchmark Java/Erlang pour comparer la gestion des threads. Vous pouvez trouver ici une version mise à jour du code Java, accompagnée de mises en œuvres dans d’autres langages du même algorithme. Sur une même machine, la version Java fait exploser le noyau Linux à quelques milliers de threads, quand BEAM supporte plusieurs millions de threads.

À part BEAM, le code Erlang peut être exécuté :

  • nativement, grâce au compilateur HiPE ;
  • grâce à un compilateur JIT ;
  • sur d’autres environnements d’exécutions par des projets plus ou moins maintenus, plus ou moins expérimentaux : erjang (erlang on JVM), Jerlang (erlang on JVM), erlscripten (Javascript), etc.

Bibliothèques standards

L’ensemble de bibliothèques standards pour Erlang s’appelle OTP (pour « Open Telephony Platform »). Parmi ses nombreuses bibliothèques, on peut citer, outre les classiques structures de données :

  • outils de développement/d’exécution : eunit (tests), système de releases, compilateur, génération de documentation, profiling, debugger distribué, analyseur statique de code, shell avec interpréteur ;
  • protocoles réseaux: SNMP, SSH (serveur/client), HTTP (serveur/client), LDAP, FTP, TFTP, etc. ;
  • base de données relationnelle distribuée : mnesia, totalement intégrée au langage, elle peut remplacer une base SQL classique pour des volumes de données modérés (< 2GB / table).

Applications

Au vu de ses caractéristiques, il semble naturel que le langage Erlang soit présent dans les infrastructures réseau et moins sur votre « desktop ». Les applications open source les plus connues sont :

  • MongooseIM / ejabberd: serveur XMPP hautement distribue, rendu populaire par son déploiement par WhatsApp ;
  • RabbitMQ, une mise en œuvre de AMQP (entre autres protocoles pris en charge) ;
  • CouchDB, base de données NoSQL distribuée.

Erlang/OTP 24

Compilation / environnement d’exécution

La principale nouveauté d’Erlang/OTP 24 est l’activation du JIT sur les architectures x86_64.

Réseau

  • Support de FTPES (« Explicit FTP over TLS ») ;
  • support de certificats EdDSA pour les connexions TLS ;
  • poignée de main TLS exécutée en parallèle.

Graphique

Ce n’est pas l’aspect le plus connu d’Erlang, mais OTP intègre depuis longtemps un binding WxWidget pour développer des interfaces graphiques :

  • migration vers wxWidgets 3 ;
  • ajoute le support de wxWebView.

Commentaires : voir le flux Atom ouvrir dans le navigateur

par Jean Parpaillon, Ysabeau, Benoît Sibaud

DLFP - Dépêches

LinuxFr.org

Codeberg, la forge en devenir pour les projets libres ?

 -  25 avril - 

Face aux risques que fait peser GitHub sur le monde des logiciels libres suite à son rachat par Microsoft en 2018, une alternative semble avoir (...)


L’informatique sans écran

 -  21 avril - 

Lors d’un Noël de ma tendre jeunesse pré-adolescente est arrivé un « ordinateur » dans le foyer. Ce PC (Intel 386) a été installé dans le bureau et a (...)


Entretien avec GValiente à propos de Butano

 -  16 avril - 

GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.Cet entretien revient sur son parcours et les raisons (...)


Nouveautés d'avril 2024 de la communauté Scenari

 -  11 avril - 

Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous (...)


Annuaire de projets libres (mais pas de logiciels)

 -  9 avril - 

Les communs sont une source énorme de partage !S’il est plutôt facile dans le monde francophone de trouver des ressources logicielles (Merci (...)