Formation en pdf de REBOL avancé


Télécharger Formation en pdf de REBOL avancé

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Rebol, un langage « différent » 

« Il est temps de faire quelque chose de différent. » Cette phrase de Carl Sassenrath, le concepteur de Rebol, résume toute la philosophie de ce nouveau langage.

Carl Sassenrath n’est pas un inconnu. Il a fait partie, au milieu des années 80, de l’équipe qui a conçu le système d’exploitation des ordinateurs Amiga, de Commodore. Pour la première fois, et sur un simple processeur Motorola 68000, le grand public disposait d’un véritable système d’exploitation multitâche préemptif. À l’époque où Windows en était encore à ses premiers balbutiements de partage coopératif de l’activité processeur entre ses différentes applications, l’Amiga OS mettait déjà en œuvre une gestion stricte des ressources de la machine. À la manière des UNIX, ce système attribuait un temps de fonctionnement à chaque application. Tout à la fois stable, graphique et puissant, Amiga OS a fait la preuve que la puissance du matériel n’était pas tout et que la qualité de l’écriture du code était un facteur primordial.

C’est vers 1995, alors que l’Amiga n’occupe plus le devant de la scène, que Carl Sassenrath décide de se lancer dans l’écriture d’un nouveau langage à l’objectif clairement affiché : révolutionner l’écriture des logiciels. D’abord connu sous le nom de code LAVA, ce projet prend ensuite son intitulé définitif de REBOL, l’acronyme de Relative Expression-Based Object Language, ou langage objet basé sur des expressions relatives.

En réalité, le projet est plus ambitieux. Rebol n’est qu’une première étape et doit devenir le langage de script d’un futur système d’exploitation.

Entièrement écrite par Carl Sassenrath, la première version de Rebol est disponible à la fin de l’année 1998. Rebol 1.0 implémente déjà les grandes idées du langage, mais cette version n’est pas véritablement exploitable car elle est encore peu optimisée.

En 1999, sort la version 2.0. Elle incorpore de nombreuses fonctionnalités nouvelles, mais, surtout, sa vitesse d’exécution est multipliée par trente ! Elle est diffusée avec la distribution Red Hat Linux de l’époque. Rebol est devenu un produit utilisable en situation réelle.

Le concept de « messaging language »

Rebol se veut le premier langage communicant, c’est-à-dire ayant la capacité d’échanger naturellement des informations avec d’autres applications. Pour réussir cela, il était nécessaire de construire un outil résultant de l’adoption ou de l’établissement de protocoles standards d’échange avec de puissantes fonctions de traitement de données, autrement dit un messaging language.

Un tel langage peut se définir par sa capacité à :

•  décrire et stocker l’information ;

•  transporter l’information entre des systèmes informatiques ;

•  extraire ou construire de l’information à partir de données brutes.

Un format d’échange de données

La première idée forte de Rebol réside dans le fait qu’il possède son propre format de déclaration et de stockage de l’information, ce qui permet tout à la fois d’écrire du code et de structurer les données. Cela signifie qu’un fichier au format Rebol peut non seulement contenir un programme mais aussi constituer un fichier de configuration, un objet, une nomenclature ou une base de données.

L’établissement d’un format d’échange commun entre les applications permet d’ignorer les contraintes résultant de l’utilisation de formats propriétaires, spécifiques d’une application donnée. Tout programme, qu’il soit ou non écrit en Rebol, peut exporter ses données sous ce format, qui devient alors un moyen universel d’échange d’informations. Dans l’e-business, des entreprises peuvent ainsi échanger des données dans un cadre B-to-B sans se soucier du format d’origine.

Figure 1-1

Échange de données entre deux sociétés.

C’est lorsque l’intégralité de la chaîne des opérations de transport et de traitement de l’information est constituée par son biais que Rebol prend toute sa dimension.

Un langage construit autour de TCP/IP

En tant que langage de communication, Rebol est fondamentalement conçu par rapport à TCP/IP. Cela signifie que le langage utilise naturellement les divers protocoles standards de TCP/IP tout en permettant d’en concevoir de nouveaux en exploitant les ports TCP et UDP de la couche transport. Par défaut, Rebol supporte neuf protocoles parmi les plus courants de TCP/IP :

•  HTTP (HyperText Transfer Protocol), qui gère la communication entre navigateurs et serveurs sur le Web. HTTP est fondé sur un modèle simple, composé d’une requête client, suivie obligatoirement de l’émission d’une réponse par un serveur. C’est grâce à lui que voyagent sur le réseau les pages HTML ainsi que toutes les ressources associées (images, sons, applets Java, animations Flash, etc.).

•  FTP (File Transfer Protocol), qui permet de recevoir et d’envoyer des fichiers entre différentes machines.

•  SMTP (Simple Mail Transfer Protocol), qui définit les règles d’échange entre serveurs de messagerie et permet l’acheminement d’un courrier électronique entre un poste client et le serveur de messagerie de son domaine.

•  POP (Post Office Protocol), qui permet à un poste client de récupérer son courrier en attente sur un serveur de messagerie. Les documents ne sont effacés du serveur qu’à la demande de l’utilisateur. Cette fonctionnalité permet de concevoir des clients de messagerie travaillant selon deux paradigmes :

–   un mode connecté, qui permet à un utilisateur de consulter ses documents à partir d’un client quelconque. Les messages restent stockés sur le serveur jusqu’à leur effacement par l’utilisateur.

–   un mode autonome, qui permet la récupération des messages sur le poste client. Ceux-ci sont enregistrés sur le poste de l’utilisateur et sont effacés sur le serveur de messagerie.

•  NNTP (Network News Transfer Protocol), sur lequel sont basés les forums de discussion. Lorsqu’un client se connecte à un forum, celui-ci lui fait parvenir la liste des thèmes disponibles sous une forme arborescente. Le client peut alors choisir un sujet de discussion et participer en envoyant des messages.

•  DNS (Domain Name Service), qui permet d’interroger un serveur de noms de domaines. Ce service permet de convertir un nom de machine en une adresse IP et inversement.

•  Daytime, qui fait partie des petits protocoles de TCP/IP. Sa fonction est de fournir l’heure et la date système de la machine consultée.

•  Whois, ou les pages blanches d’Internet, placées sous la responsabilité de l’InterNIC, qui recensent toutes les personnes responsables d’un réseau ou d’un domaine officiel. Ces informations sont consultables par l’intermédiaire du protocole Whois.

•  Finger, qui permet de trouver des informations sur un utilisateur d’une machine.

Un puissant outil de traitement

Rebol est particulièrement utile pour le traitement de l’information. Grâce à de nouveaux types de données et à de puissantes fonctions d’analyse, il se positionne en tant qu’outil moderne et polyvalent.

Les apports de Rebol ne concernent pas seulement les types de données simples, tels qu’un caractère ou un nombre entier ou flottant. Il dispose aussi de nouveaux types, spécifiquement conçus pour la programmation réseau. Avec Rebol, vous pouvez manipuler des adresses de courrier électronique, des URL (Uniform Resource Locator) et des adresses IP. Il existe quantité de nouveaux types, introuvables ailleurs, qui rendent véritablement intuitif l’accès aux données sur un réseau.

Rebol vous permet de manipuler aisément l’information. Les différents types de données, qu’ils soient de bas niveau ou complexes, peuvent être regroupés dans des listes ou des objets. Ces derniers peuvent ensuite être parcourus par le déplacement d’un curseur et modifiés par un ensemble d’instructions.

Les chaînes de caractères sont également assimilées à des listes. Vous pouvez donc vous placer sur le premier caractère ou sur le dernier et insérer ou effacer des caractères à une position quelconque. Toutes ces opérations sont gérées automatiquement par Rebol, ce qui procure un confort dont il est difficile de se passer ensuite.



Utilisation du parsing

Rebol offre une fonctionnalité de parsing dont l’objectif est de réaliser des opérations complexes sur des chaînes de caractères pour en extraire ou en modifier des données. Vous pouvez, par exemple, convertir une chaîne en liste de mots en vous basant simplement sur les espaces.

Une des applications les plus intéressantes du parsing consiste en l’extraction d’informations contenues dans des pages HTML. Supposez que vous vouliez prélever les méta-informations présentes sur une page. Il vous suffit de récupérer le document qui vous intéresse en utilisant le protocole HTTP et d’effectuer un traitement sur la chaîne de caractères reçue. Vous demandez ensuite à Rebol d’extraire les caractères présents entre la chaîne. L’intégralité de cette opération ? récupération du document comprise ? forme une seule et unique ligne de code en Rebol.

Vous pouvez bâtir de cette façon un programme destiné à aspirer un site Web, par exemple. Le logiciel récupère chacune des pages en découpant successivement les URL présentes dans le code HTML.

Il existe une multitude d’utilisations du parsing. Grâce à lui, notamment, l’écriture des agents intelligents, ces programmes destinés à la récolte d’informations sur le réseau, devient un jeu d’enfant.

Intégration de Rebol à son environnement

Rebol est un « évaluateur ». Vous pouvez le comparer à une machine virtuelle autorisant le fonctionnement à l’identique et sans modification d’une application, quel que soit son environnement d’exécution. L’intégration à la machine hôte est confiée à deux modules spécialisés :

•  le gestionnaire de sécurité ;

•  le garbage collector (récupérateur de mémoire).

Ces deux composants ont respectivement pour mission de permettre à l’utilisateur de fixer le niveau de protection de son système et de gérer de façon transparente les ressources système utilisées par l’évaluateur.

Figure 1-2

Stratification des différents composants de Rebol.

L'évaluateur Rebol, une machine virtuelle

Comme expliqué précédemment, Rebol est un langage indépendant de son environnement. Cela signifie que vous pouvez développer une application sur une plate-forme matérielle et logicielle donnée et la déployer sur d’autres systèmes sans avoir à en modifier le moindre élément.

D’un point de vue économique, cette particularité vous permet de rentabiliser au maximum un développement en ne le limitant pas à une seule configuration. Un programme écrit en Rebol n’est pas confiné à un contexte donné d’exploitation. Les choix matériels et logiciels deviennent ainsi moins structurants, les changements apportés à une application n’impliquant plus de coûts d’adaptation ou de réécriture.

Un programme réalisé avec Rebol peut tourner sur tout système disposant d’un évaluateur, soit environ quarante systèmes différents à l’heure actuelle. Vous pouvez écrire une application sur un micro-ordinateur équipé de Windows, par exemple, et la faire tourner sur un poste Linux, comme sur un Macintosh, un Amiga ou un système sous BeOS ou QNX. La compatibilité est totale, puisque Rebol se comporte en tant que couche d’abstraction entre le programme et la machine hôte. Le développeur n’a pas à se soucier de la portabilité de son produit ; c’est l’évaluateur qui réalise cette opération pour lui.

En pratique, un évaluateur — machine virtuelle intégrant les fonctionnalités de Rebol et communiquant avec le système d’exploitation — est disponible pour la plupart des plates-formes matérielles et logicielles. Un programme en Rebol n’accède jamais directement à la machine hôte et ne s’exécute que dans l’environnement constitué par la machine virtuelle.

Portabilité et communication

La portabilité des applications écrites en Rebol et la disponibilité de l’évaluateur pour de nombreuses plates-formes forment le cœur des capacités de communication de ce langage.

Les parties clientes et serveur d’une application peuvent être écrites avec le même langage et partager les mêmes portions de code, tout comme elles peuvent fonctionner sur des systèmes différents.

Il est facile de concevoir des agents de type worm, ou ver logiciel, se déplaçant de machine en machine sur un réseau afin de récolter des informations. Quel que soit le système de la machine hôte, ces agents profitent de l’environnement d’exécution standardisé de Rebol pour exécuter leur travail et se déplacer ensuite vers un autre ordinateur.

Le transport d’un programme écrit en Rebol d’un système informatique vers un autre par le biais du réseau est facilité par le fait que Rebol est un langage de script. À ce titre, il n’est pas nécessaire de compiler le code d’une application en code natif ou en code intermédiaire pour utiliser le logiciel. Lorsqu’un programme en Rebol est déplacé sur le réseau, c’est un simple fichier texte qui est transporté. À réception, l’évaluateur a pour mission de vérifier la syntaxe du code, de compiler le source et de procéder à son exécution.

Pour le programmeur, le choix d’un langage de script simplifie le cycle de développement. Il devient inutile de compiler l’ensemble du projet après la moindre modification du code, et tout changement peut être immédiatement testé. La création d’une application s’en trouve d’autant accélérée.

Le gestionnaire de sécurité

Pour gérer les différents problèmes de droits pouvant survenir lors de l’exploitation d’une application, Rebol dispose d’un gestionnaire de sécurité permettant à l’utilisateur de fixer le niveau de protection de son système. Ce contrôle concerne principalement les actions tentées par un logiciel téléchargé via un réseau et la protection de l’ordinateur hôte d’éventuelles tentatives de destruction ou de vol d’informations.

Ce système particulièrement flexible permet de spécifier le comportement de l’évaluateur lorsque le logiciel en cours d’exécution tente d’accéder aux ressources du poste client. Il est ainsi possible de surveiller l’accès aux périphériques de stockage (disque dur, lecteur de disquettes, etc.) aussi bien que l’accès au réseau.

Lorsqu’un programme tente d’accéder à une ressource, le gestionnaire de sécurité peut réagir selon quatre scénarios :

•  Le gestionnaire est désactivé, et le programme a tous les droits.

•  La ressource est surveillée, et le gestionnaire demande l’autorisation à l’utilisateur avant de laisser l’évaluateur poursuivre l’exécution du programme.

•  La ressource est bloquée, et le gestionnaire refuse l’accès en produisant une erreur d’exécution.

•  La ressource est strictement interdite, et le gestionnaire met fin à l’évaluation du programme.

La politique de sécurité définie par défaut dans Rebol peut être modifiée par l’utilisateur selon le contexte d’exploitation de sa machine. En schématisant, on peut distinguer trois catégories de configuration :

•  surveillance désactivée pour un logiciel connu et installé sur la machine hôte ;

•  droits limités pour une application nouvelle ;

•  aucune autorisation pour une application inconnue téléchargée sur un réseau.

Le gestionnaire de sécurité de Rebol est un outil extrêmement performant, qui autorise une fine configuration de l’évaluateur. Sa maîtrise garantit une sécurisation optimale d’un poste lors de l’utilisation d’un programme Rebol dans un environnement client-serveur.

Le « garbage collector »

Rebol utilise une gestion dynamique de la mémoire et de certaines ressources système. L’allocation ou la libération d’un espace mémoire est réalisée automatiquement lors de la création ou de la suppression d’un objet. Le garbage collector, ou récupérateur de mémoire, est également capable de déterminer la pertinence de la conservation d’un espace mémoire lorsque celui-ci n’est plus utilisé.

La notion de garbage collector n’est pas nouvelle en informatique. Elle existe depuis des années dans de nombreux langages, tels que Lisp, Smalltalk, etc., mais c’est surtout le langage Java qui l’a popularisée. Son intégration dans Rebol, associée à l’utilisation d’un environnement d’exécution multiplate-forme et à un gestionnaire de sécurité, renforce le caractère de modernité du langage.



Avec Rebol, tout accès à la mémoire se fait dynamiquement. Le programmeur n’a pas à réserver d’espace mémoire pour le stockage des données ou à se soucier de la libération des ressources allouées. Un ensemble de données n’a pas de taille fixe. Vous pouvez librement ajouter ou supprimer des éléments, Rebol se chargeant de toutes les manipulations nécessaires.

Gestion des sockets TCP/IP

Une des particularités du garbage collector de Rebol est sa gestion très performante des sockets TCP/IP, qui ne sont rien d’autre que la combinaison d’une adresse IP et d’un port. Pour être nombreuses sur un ordinateur, les sockets ne constituent pas une ressource illimitée. Une socket qui reste ouverte suite à un dysfonctionnement ou à sa non-fermeture, alors qu’elle n’est plus utilisée, est automatiquement détruite par le récupérateur de mémoire. Cette fonctionnalité renforce ainsi la stabilité des applications réseau écrites en Rebol.

Une fois que vous avez goûté à un tel administrateur de ressources, il vous est difficile de vous en passer. Peut-on encore imaginer gérer, allouer et libérer à la main les espaces mémoire, comme le font les programmeurs C ?

Les spécificités du langage

La conception d’une application Rebol est très différente de celle des autres applications. Jamais l’expression « écrire un logiciel » n’a été aussi proche de la réalité. On ne « programme » pas en Rebol. On compose des phrases, on exprime des idées, on crée de nouveaux termes, lesquels peuvent constituer des vocables spécialisés, adaptés à un besoin précis. Il suffit ensuite d’assembler des phrases pour décrire le travail devant être accompli par le programme. Un mot peut représenter une valeur, une liste de données ou d’autres mots. Lorsqu’un mot est exécuté, il est évalué et retourne un résultat. Rebol se veut un langage expressif. Les scripts doivent être compris de chacun sans que cela demande un investissement personnel trop important. Rebol vise d’abord et avant tout à se mettre au service des créateurs.

Se rapprochant des langages fonctionnels, tels que Lisp ou Scheme, Rebol ne fait pas la différence entre les données et les instructions. Cela donne élégance et puissance au langage, qui est ainsi capable d’autogénérer du code ou de modifier ses mécanismes internes. Rebol peut être considéré comme un métalangage, en ce sens qu’il permet de décrire et de concevoir un autre langage à partir de ses briques primitives.

Lorsque vous utilisez un mot, vous avez la possibilité de préciser son sens. En Rebol, cette fonctionnalité se nomme un raffinement. Un mot peut recevoir un nombre variable d’arguments, selon le ou les raffinements utilisés. Cela permet d’établir des comportements différents en fonction des paramètres définis.

Exemple d’écriture de code en Rebol

Supposez, par exemple, qu’un logiciel établisse une facturation pour un client donné. Une ligne de code d’un script Rebol effectuant cette opération peut être :

 facturer "DUPONT"

Vous faites appel au mot facturer en lui indiquant que le client est DUPONT. Par défaut, votre facturation est réalisée en euro, mais votre client veut obtenir un document faisant apparaître un récapitulatif en franc. Il vous suffit de préciser votre demande en utilisant le raffinement francs :  facturer/francs "DUPONT"

Votre client étant exigeant, il désire recevoir trois exemplaires du document alors que, normalement, votre logiciel n’en envoie qu’un seul. Vous avez la possibilité d’utiliser le raffinement copies :

 facture/francs/copies "DUPONT" 3

Vous pouvez constater sur ces exemples que les arguments sont placés dans un ordre séquentiel par rapport aux raffinements utilisés.

Les raffinements évitent la multiplication de mots aux fonctionnalités proches et donc l’extension inutile du vocabulaire. Ils vous permettent également de faire évoluer plus facilement le logiciel en ajoutant, selon les besoins, de nouveaux raffinements aux mots présents dans le dictionnaire.

Le dictionnaire

L’intégralité des mots que vous constituez est rangée dans un dictionnaire, qui regroupe à la fois les mots de base définissant le langage et les mots nouveaux construits par l’utilisateur.

La grande majorité des mots contenus dans le dictionnaire sont conçus à l’aide de Rebol. Là réside la clé de la portabilité de l’évaluateur, qui n’est que le noyau de la solution. L’ensemble des mots-clés, ainsi que les protocoles réseau et les fonctions utilitaires sont écrits en Rebol de façon à ne pas nécessiter de réécriture lors de l’adaptation de l’évaluateur à une autre plate-forme matérielle ou logicielle.

Figure 1-4

Niveau de dépendance entre Rebol et son environnement.

La plus grande partie de ce que l’on peut considérer comme l’API, ou interface de programmation d’applications, de Rebol est totalement indépendante de l’environnement d’exécution.

La plupart des mots du dictionnaire sont écrits en Rebol, mais pas tous. À un moment ou à un autre, il est nécessaire de disposer d’une zone de contact avec la machine hôte et donc d’utiliser du code natif. L’usage du code natif est également justifié par la recherche de l’amélioration des performances d’un mot en terme de vitesse. Ces mots écrits en code natif sont nommés des mezzanine functions.

Rebol ne vous permet pas de concevoir de tels mots. Cette limitation préserve la compatibilité des scripts entre les différents systèmes.

Tous les mots du dictionnaire bénéficient d’une stricte égalité de droits. Il n’existe pas de mots prioritaires par rapport à d’autres. Vous avez la possibilité de consulter le code source de tous les mots conçus en Rebol, que ces derniers appartiennent au dictionnaire standard, à une bibliothèque externe ou à votre propre script.

De même, vous pouvez redéfinir l’intégralité des mots du dictionnaire et modifier ainsi le comportement de l’évaluateur. Les mezzanine functions peuvent également être écrasées, mais c’est là une opération déconseillée. En règle générale, il est préférable de ne pas toucher aux mots du dictionnaire standard. Il est aussi possible d’interdire toute modification de celui-ci. Il est aisé de comprendre que si vous changez le comportement d’un mot, vous modifiez du même coup le comportement de tous les autres mots qui l’utilisent, ce qui peut engendrer des effets plus qu’indésirables.

Les contextes

Les contextes sont probablement une des notions les plus difficiles à appréhender lorsqu’on découvre Rebol. La difficulté ne vient pas de la complexité du mécanisme mais plutôt du fait que, bien souvent, ce concept bouscule les habitudes des programmeurs.

Dans un langage humain, un mot n’a pas forcément le même sens selon le contexte dans lequel il est utilisé. Rebol suit ce modèle : un mot peut avoir une signification différente en fonction du contexte dans lequel il est évalué.

Vous allez donc apprendre à différencier le contexte général, qui est celui par défaut, des contextes particuliers, qui peuvent être utilisés dans une application. Vous étudierez par l’exemple, plus loin dans cet ouvrage, l’utilisation des contextes.

Les dialectes

Les dialectes correspondent à un vocabulaire métier dédié à une tâche précise. Ils forment un langage dans le langage. Rebol a la capacité de créer et d’intégrer des dialectes afin de démultiplier ses possibilités. Il dispose pour cela de toutes les fonctionnalités nécessaires à la conception d’un interpréteur. Rien n’empêche, par exemple, de concevoir un dialecte Basic et de le mélanger ensuite au langage Rebol. En fait, tout est possible.

Le parsing implanté dans Rebol est basé sur un dialecte. Contrairement à ce qui se produit dans Perl, les différentes étapes du traitement des caractères ne sont pas décrites sous une forme symbolique mais avec un véritable langage spécialisé. Les dialectes permettent, par exemple, de décrire une interface graphique ou d’indiquer la suite des opérations pour un logiciel d’installation.

Les dialectes peuvent s’employer d’innombrables façons. Ils permettent surtout de concevoir différemment une application. Vous pouvez imaginer un moteur générique dont les différentes tâches sont décrites par un dialecte spécialisé (assistants, règles de gestion, etc.).



Les objets

Rebol se présente en tant que langage objet. Cela signifie que son architecture interne est basée sur un ensemble d’objets et que vous êtes capable de les utiliser et d’en construire de nouveaux.

En Rebol, un objet est un mot contenant un ensemble de propriétés et de méthodes, soit, en simplifiant à l’extrême, des variables et des fonctions. Ces données et ce code ont la particularité de ne pas appartenir au contexte général d’un script. Chaque objet définit son propre contexte, garantissant ainsi l’autonomie de son fonctionnement.

Les objets vous servent à concevoir un ensemble de boîtes noires dans lesquelles vous injectez des données et récupérez un résultat. Vous n’avez normalement pas à vous soucier du fonctionnement interne d’un objet. Seuls comptent les points d’entrée et la validité du résultat.

Figure 1-5

Schématisation d’un objet.

Les objets permettent de développer les applications d’une façon modulaire et en capitalisant le travail déjà accompli. Il devient inutile de réécrire cent fois la même chose, car plus les objets sont génériques, plus leur aptitude à la réutilisation est forte. Dans un projet d’envergure, dans lequel de nombreux intervenants coopèrent, les objets permettent à chacun de travailler sur des composants autonomes. L’application devient alors un jeu de construction utilisant les différents objets conçus spécifiquement pour le produit et ceux communs aux différents logiciels de la société ou de l’organisation.

Les objets participent également à l’aspect expressif d’un langage. Ils permettent de manipuler des notions concrètes et simplifient la compréhension du code.

En matière de programmation orientée objet, Rebol n’a certes pas la puissance de C++, de Smalltalk ou de Java, mais ses fonctionnalités dans ce domaine sont en contrepartie infiniment plus simples à appréhender et à mettre en œuvre. Rebol poursuit ici sa philosophie de la simplicité. La programmation objet s’y montre intuitive et aisée.

Positionnement technologique

Rebol semble appartenir aux trois grandes familles de langages actuelles, et il est bien difficile de le situer parmi elles. Aux langages structurés, il reprend la notion de procédures et de fonctions mais également de nombreuses instructions de structuration. Aux langages fonctionnels, il emprunte la capacité de manipuler des listes de données. Enfin, il se présente en tant que langage objet par l’utilisation des principaux concepts de la programmation orientée objet.

Rebol retire le meilleur de chaque catégorie mais y ajoute d’autres spécificités qui en font un langage unique :

•  indépendance totale vis-à-vis de la plate-forme d’exécution ;

•  intégration d’un format de stockage de données au cœur du langage ;

•  intégration totale de TCP/IP afin de permettre l’échange d’informations sur un réseau ;

•  choix d’un langage de script de façon à réduire le cycle de développement et à permettre l’autogénération du code ;

•  utilisation d’un dictionnaire et de mots pour renforcer l’aspect expressif du langage et pour se rapprocher des langages humains ;

•  possibilité de concevoir des langages métier afin que chacun puisse développer des langages spécialisés, adaptés à un besoin précis.

La force de Rebol est de proposer en un seul outil ce que les autres fournissent ? au mieux ? sous la forme d’éléments additionnels. Rebol est un langage d’intégration de technologies, un cocktail unique et polyvalent.

Un langage généraliste

Rebol a beau être un langage communicant, son utilisation ne se limite pas au réseau. Dans le domaine des applications de haut niveau, on peut tout écrire en Rebol, avec un minimum de temps et d’efforts.

Pourquoi ne pas imaginer un traitement de texte, un tableur, un logiciel de comptabilité ou un gestionnaire de fichiers qui tournent sur quarante plates-formes, à l’identique et sans adaptation ? Rebol permet de telles réalisations et assure à vos logiciels une diffusion maximale.

Pour l’administrateur d’un serveur ou d’un réseau, il est aisé de concevoir rapidement en Rebol de petits utilitaires permettant :

•  l’étude des fichiers journaux d’une machine (recherche d’un tentative d’intrusion, erreurs système, etc.) ;

•  la récupération ou l’envoi automatique de fichiers sur le réseau ;

•  la génération de rapports (listes de comptes utilisateur, machines déclarées dans le DNS, etc.) ;

•  la surveillance automatique des espaces disque.

Dans le domaine du Web, le support par Rebol des principaux protocoles de TCP/IP et l’aisance avec laquelle il sait manipuler des informations telles que les tags HTML ou les adresses de courrier électronique lui permettent de rendre de nombreux services aux webmasters, parmi lesquels :

•  la génération de pages HTML à partir d’un modèle ;

•  l’envoi automatique de courrier à une liste d’utilisateurs ;

•  la mise à jour de pages HTML sur le serveur ;

•  l’extraction d’informations dans une page HTML ou un fichier XML.

Avec Rebol, vous avez la possibilité d’écrire des scripts CGI (Common Gateway Interface), c’est-àdire des applications fonctionnant sur un serveur HTTP et accessibles via un navigateur Web. Reliés à une base de données, ces programmes permettent la conception de pages dynamiques.

Les scripts CGI sont utilisés pour la mise en place de sites interactifs, tels qu’une galerie marchande, ou pour le suivi de l’état d’une commande ou encore pour la création d’applications de gestion, qui ne nécessitent aucune installation sur les postes clients et qui sont accessibles à partir de n’importe quelle machine d’un réseau.

Le support des principaux protocoles de TCP/IP et la possibilité d’en concevoir de nouveaux font de Rebol un langage adapté au développement de programmes destinés à exploiter les réseaux, et notamment les applications suivantes :

•  client Telnet ;

•  client FTP ;

•  navigateur HTTP ;

•  lecteur de News ;

•  communautés peer-to-peer (de machine à machine, sans passer par un serveur central) ;

•  serveur HTTP.

Rebol dispose de nombreuses fonctionnalités dans le domaine du graphisme et du traitement numérique des images et constitue pour cette raison un excellent langage pour la création de présentations interactives et de jeux vidéo.

Figure 1-6

Le jeu Rebol/Quest.                                                                                

La combinaison de ces possibilités avec les capacités de Rebol dans le domaine de l’exploitation des réseaux autorise la création de produits en ligne regroupant de nombreux joueurs sur un même terrain de jeu.

Résumé

C’est parce qu’il introduit des concepts nouveaux que Rebol peut être qualifié de langage unique. La contrepartie de ces innovations est que cela vous oblige à changer vos habitudes de travail.

Ce chapitre a montré en quoi Rebol était différent. Un programme écrit avec lui sera d’autant plus performant que vous utiliserez ses spécificités et que vous commencerez à penser en Rebol.


73