Join the REBOLution !

Article paru dans le magazine Login numéro 79

Reproduction interdite. Tous droits réservés à Posse Press et Olivier Auverlot


Rebol est le "Relative Expression Based-Object Language" de Carl Sassenrath. Cet ancien membre de l'équipe conceptrice de l' Amiga n'a pas uniquement développé un nouveau langage mais également un ensemble de solutions destiné à révolutionner la réalisation de logiciels. L'ambition de Rebol est de former un tout cohérent ! A l'instar de XML, Rebol est un format de description de l'information mais tout comme Java, il est également un langage de développement multiplateformes permettant une indépendance totale entre la machine hôte et l'exécution du code. L'intelligence du concept Rebol repose sur la constatation simple que l'informatique est devenu communicante, que les programmeurs ont besoin d'une nouvelle génération de langages, plus expressifs grâce à une syntaxe proche du langage humain et ayant la capacité d'utiliser les protocoles standards d'échange d'informations de TCP/IP. Un logiciel moderne ne doit plus être conçu à l'échelle d'un poste mais à celle d'un réseau de systèmes interconnectés devant partager données et programmes.

Programmer, c'est construire des mots

Au sens classique du terme, Rebol est un langage non compilé. Le code n'est pas transformé en un exécutable binaire ou dans un quelconque bytecode à la manière de Java. En fait, tout comme Lisp ou Scheme, Rebol est un évaluateur. Celui ci construit un vocabulaire à partir d'un script et interprète les mots que vous avez défini ainsi que ceux appartenant au dictionnaire standard du langage. Ce mode de fonctionnement fait de Rebol un meta-langage: c'est-à-dire un langage ayant la capacité de se décrire, de se redéfinir et de s'enrichir par ses propres mécanismes internes.

En Rebol, tout est mots: les instructions, les variables, les fonctions et les objets sont des mots. Certains ont simplement une fonctionnalité particulière ! Tous ces mots appartiennent au contexte général ou à un contexte particulier. Tout comme dans une langue parlée, un mot peut avoir une signification particulière selon le contexte d'évaluation.

Les mots peuvent également être définis dans un dialecte qui est une sorte de langage métier: un langage dans le langage, destiné à accomplir une tâche très spécialisée. Pour mieux comprendre les dialectes, nous pouvons prendre pour exemple l'informatique. Lorsque des informaticiens parlent de leur métier, une personne extérieure à ce milieu professionnel a bien souvent beaucoup de difficultés à saisir le sens de la conversation. Certes, ces informaticiens parlent français mais enrichissent leurs propos de différents termes techniques qui forment un dialecte connu d'eux seuls ! Dans un script Rebol, les dialectes vont permettrent de décrire des portions d'une application en utilisant un vocabulaire spécialisé pouvant être manipulé par un programmeur mais également par un intervenant extérieur n'ayant pas forcément une formation de développeur. Avec les dialectes, nous allons pouvoir définir des règles de gestion, des interfaces graphiques ou l'enchaînement d'écrans dans un programme d'installation.

Une machine virtuelle

L'évaluateur est en fait une machine virtuelle permettant de simuler un environnement d'exécution identique quelque soit le système d'exploitation et l'architecture matérielle utilisée. Contrairement à Java, celle ci est très légère puisqu'elle varie entre 250 et 400 Ko selon les versions. Elle est également et surtout très simple à installer puisqu'elle ne comporte qu'un seul et unique exécutable. Oui ! vous ne rêvez pas, la machine virtuelle Rebol tient entièrement dans un seul fichier. Il n'y a aucune DLL ou librairie à installer et ceci quelque soit le système d'exploitation. En quelques secondes, il est possible de transformer n'importe quel ordinateur en une machine capable d'utiliser vos applications écrites en Rebol !

Cette machine virtuelle contient l'évaluateur Rebol, le dictionnaire standard, les protocoles TCP/IP supportés, le garbage collector chargé de la gestion de la mémoire et le gestionnaire de sécurité.

La console de Rebol

Une famille de produits

Rebol se décline actuellement en trois versions. Le Core est la machine virtuelle de base. Ce composant, disponible pour une quarantaine de plate-formes, est l'élément commun sur lequel reposent les autres versions du langage. Extrêmement compact (environ 250 Ko), ses domaines de prédilection sont l'écriture de scripts de maintenance (système, site Web, …), d' applications réseau ou de scripts CGI.

Rebol/View est un Core auquel a été ajouté la possibilité de créer des interfaces graphiques. View permet de concevoir des applications mono-postes ou distribuées sur un réseau. Extrêmement performant dans le domaine graphique, View dispose d'un ensemble de fonctions lui permettant de manipuler aisément des images et de concevoir des animations. Rendant visuellement et fonctionnellement indépendant vos applications vis à vis de la plate-forme d'exécution, il permet de désolidariser véritablement votre environnement de développement de l'environnement de production.

Un ensemble d'applications utilisant Rebol/View

Rebol/Command est le seul représentant commercial de la gamme. Contrairement à ses deux autres compagnons, il s'agit d'un produit payant destiné au commerce électronique. Cette version enrichie de Core dispose de la possibilité d'accéder à des bases de données ODBC ou Oracle, d'accéder au shell du système afin de lancer des applications et d'utiliser du code natif placé dans des librairies dynamiques.

Un langage de programmation réseau

Ces différentes versions de Rebol supportent toutes plusieurs protocoles TCP/IP et permettent la conception aisée d'applications communicantes, capables d'échanger des informations. Le support de http permet la conception de clients Web capables de surfer sur la toile mondiale ou sur l'intranet de votre entreprise et de rapatrier des données. Le protocole FTP vous offre la possibilité de récupérer ou d'envoyer des fichiers vers un serveur distant. Les protocoles POP3 et SMTP permettent la réception ou l'émission de courriers électroniques. L'accès aux forums de News est rendu possible par l'usage du protocole NNTP. Un script a également la possibilité d'interroger votre DNS afin de connaître les machines de votre réseau ou d'obtenir des informations sur des utilisateurs ou sur un serveur grâce à FINGER et WHOIS.

Si tout cela ne vous suffit pas, vous avez également la possibilité de concevoir vos propres protocoles. En effet, Rebol permet d'accéder directement aux ports TCP et UDP de votre machine. Il devient possible d'écrire non seulement des applications clientes mais également des serveurs. En Rebol, l'implémentation d'un serveur http n'excède pas… une quarantaine de lignes de code !

Manipuler l'information

Moderne par ses talents dans le domaine de la communication, Rebol l'est aussi dans la gestion de l'information. Il se distingue des autres langages de programmation par le nombre et la spécialisation des types de données. Rebol est bien sûr capable de manipuler les nombres entiers ou réels, les caractères ou chaînes de caractères, les valeurs booléennes mais il ne s'arrête pas là ! Rebol est un des rares langages sachant reconnaître et utiliser naturellement des adresses IP ou des URL.

Ces données simples peuvent être regroupées dans des listes. Celles ci sont l'un des fondements du langage. En Rebol, les listes sont omniprésentes. Un script Rebol est une liste de mots ! Un tableau est une liste de valeurs … Pour explorer ces informations, Rebol met à la disposition du programmeur un ensemble de mots destinés à traverser les séries, à rechercher ou à extraire des données en un minimum d'opérations.

Programmation objet

Les données peuvent être contenues dans des objets, regroupement de propriétés et de méthodes. Les objets écrits en Rebol permettent un développement modulaire des applications, facilitent le travail en équipe sur un projet et renforcent l'aspect productif du langage. Beaucoup plus simples à concevoir que les JavaBeans, les objets Rebol peuvent eux aussi être diffusés sur un réseau et être partagés par plusieurs applications.

Nous voici au terme de cette présentation de Rebol. Pour l'instant, nous sommes restés très théorique mais c'est promis, dès le prochain numéro, nous allons commencer à programmer en Rebol !

 

Olivier Auverlot

olivier.auverlot@free.fr

Retour