REBOL le rebelle

ArticleCategory: [Choose a category for your article]

Software Development

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Georges Tarbouriech 

en to fr Georges Tarbouriech 

AboutTheAuthor:[A small biography about the author]

Georges est un vieil utilisateur d'Unix (commercial et libre). C'est un fan de Rebol depuis le début. Vous pouvez jeter un coup d'oeil sur un premier article qu'il a écrit sur Rebol il y a environ deux ans sur http://www.amiganews.com/ANN/no117/rebol.shtml

Abstract:[Here you write a little summary]

Nous pourrions dire que Rebol est un langage de messagerie, mais en fait, il est beaucoup plus que cela. Toutefois, il est particulièrement destiné aux communications Internet.
REBOL signifie Relative Expression-Based Object Language.
Aller sur http://www.rebol.com vous permet de télécharger la dernière version (2.3) de Rebol/Core pour environ 40 plate-formes. Rebol est également disponible dans de nombreuses distributions Linux mais dans des versions antérieures.
L'une des nouveautés se nomme Rebol/View et vous pouvez télécharger une version beta numérotée 0.9 (4.1).
Cette dernière est l'une des plus grandes améliorations de Rebol. Dans cet article, nous essaierons d'analyser brièvement les multiples caractéristiques de Rebol.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Introduction

L'idée derrière Rebol était de créer un langage simple, proche du langage humain, un peu comme un dialecte. Carl Sassenrath, le fondateur de Rebol est bien connu dans la communauté informatique puisqu'il a travaillé pour Apple, Commodore, HP... La communauté Amiga, par exemple, lui doit beaucoup.
Pourquoi parler de l'Amiga? La caractéristique première de l'Amiga OS est la compacité. La dernière version de cet OS (3.5) est inférieure à 20 Mo. Cela peut sembler étonnant aux nouveaux venus qui ont commencé à travailler avec des OS (ou assimilés) entre 200 et 600 Mo.
Ceci pour expliquer que nombreux sont ceuw qui ont oublié les petites tailles lorsqu'il s'agit de développement. Les outils disponibles sont très nombreux et les langages de script très utiles. Pourtant, ils impliquent souvent une grande quantité de lignes de code, quoi que vous vouliez faire avec. Habituellement ces langages sont utilisés pour des tâches spécifiques. Perl ou Rexx, par exemple, sont très appréciés des administrateurs. Cela dit, il est évident qu'avec des langages tels que Perl, on peut faire beaucoup plus que de l'administration réseau.
Toutefois, lorsqu'il s'agit de versatilité, de compacité, Rebol est un modèle.
Nous pourrions dire que tout est possible avec Rebol. La seule limite ne vient pas du langage mais de l'imagination de celui qui l'utilise.
Partons pour une rapide visite guidée.

Présentation

Comme précisé plus haut, Rebol est disponible pour plus de 40 plate-formes.
Ceci concerne Rebol/Core, c'est à dire le programme principal. Rebol/Core vous propose un outil permettant de développer n'importe quel type d'applications, même si son domaine de prédilection reste l'Internet.
Avec Rebol/Core vous pouvez gérer les communications web, ftp, email et les scripts cgi. Vous pouvez manipuler du texte, du html... Mais vous pouvez également l'utiliser pour écrire des commandes système ou des programmes beaucoup plus sophistiqués.
La version actuelle est la 2.3 et elle pèse environ 350/400 Ko (décompressée) selon la plate-forme. Elle consiste en un exécutable et deux fichiers de configuration: rebol.r and user.r. Le dernier n'existe pas lors du téléchargement. Il sera crée au premier lancement. Par conséquent, il n'y a rien à dire concernant l'installation, puisque vous devez simplement mettre ces fichiers dans un répertoire nommé rebol (par exemple) et le copier où bon vous semble.
Normalement, vous devrez définir une variable d'environnement pour localiser le répertoire que vous venez de créer.
Vous trouverez quelques autres fichiers dans l'archive: 2 scripts et 2 documents html. Un script peut-être utilisé pour le "feedback" (d'où son nom) et l'autre nommé rebdoc.r permet de générer la documentation (les mots clé) au format html. Les 2 fichiers html concernent l'installation et des notes. De la documentation supplémentaire est disponible sur le site de Rebol.
Ensuite, vous pouvez récupérer Rebol/View. Pour faire court, disons que c'est l'interface graphique de Rebol. BEAUCOUP PLUS d'informations sur le sujet restent à venir!
Au moment d'écrire cet article, Rebol/View n'est disponible que pour Amiga, FreeBSD, Linux et les machins de Microsoft. Les versions BeOS R5, Irix, HP-UX, AIX, Solaris Sparc sont en chantier et devraient apparaître très rapidement.
Rebol/View est un simple exécutable d'à peu près la même taille que Rebol/Core. Ajoutons que c'est une version beta (0.9.9 release 4.1).
Copiez-la où vous voulez et au premier lancement elle vous réclamera les paramètres de votre réseau. Documentation et FAQ sont déjà disponibles sur le site de Rebol.
Pour information, deux autres produits existent: Rebol/Command et Rebol/Apache.
Rebol/Command sortira prochainement et sera un produit commercial destiné à l'accès aux DLL, aux applications et aux bases de données.
Rebol/Apache sera un module de plug-in pour Apache.
Et maintenant, que peut-on faire avec ça?


Rebol/Core


Si vous êtes de nouveaux utilisateurs de Rebol (ou pas!), le mieux est de télécharger les exemples de scripts. Il en existe environ 200!
La manière de lancer un script peut dépendre de la machine. Sur des OS pourvus de shell (ou assimilés...) tapez quelque chose du genre "rebol test.r". Le suffixe .r indique un script Rebol. Pour tester, vous pouvez aussi taper "do %test.r".
Sous des OS sans shell, tels que MacOS (sauf MacOS X, bien sûr!) il suffit de lâcher l'icône du script sur l'icône de l'exécutable Rebol. C'est tout!
Ca fonctionne aussi sur les trucs de Microsoft, par exemple.
Entrons maintenant dans le coeur de la bête!
Voici un script Rebol issue des exemples et nommé mailsend.r.

REBOL [

Title: "Email Message Sender"
File: %mailsend.r
Date: 10-Sep-1999
Purpose: {A very simple way to send an email.}
Note: {
The TRIM function below is used to remove the blank
lines from the head of the email, so that the first
line of text gets used as the subject.
}
Category: [email net 1]
]
send luke@rebol.com trim {
Hi there.
Just wanted to send you an email message from REBOL.
-Friend
}

En fait, il n'y figure qu'UNE seule ligne de code!
Depuis le REBOL de départ jusqu'au "]" fermant, il s'agit de l'en-tête, même si c'est obligatoire pour chaque script Rebol.
La dernière partie correspond au contenu du message et entre les deux, vous avez le code Rebol:
"send luke@rebol.com trim"
La signification figure dans l'en-tête "note".
Cela suffit pour envoyer un courrier si votre machine est correctement configurée.
Si vous connaissez un moyen de faire plus court, prévenez-nous!
Les scripts sont interprétés et communiquent par des ports (un peu comme Rexx) et comme ils sont petits, le résultat est très rapide.
Bon, pour ceux qui connaissent Rebol depuis le début, ça n'a rien d'étonnant.
Toutefois, cette version 2, vous offre d'avantage de fonctionnalités... Il suffit de regarder les exemples pour se rendre compte de l'amélioration.
Tout ce qui concerne les communications ftp, web, mail peut être réalisé de manière très simple avec Rebol. Avec quelques lignes de code, vous pouvez télécharger des fichiers sur un serveur ftp, récupérer une page web quelque part...
Vous pouvez aussi manipuler du texte, du html... Un exemple vous montre comment convertir du texte en html avec un script de 2083 bytes!
Les scripts Cgi sont également gérés. Par exemple, vous pouvez générer un formulaire cgi et le formulaire html associé.
Une autre fonctionnalité vous permet d'insérer un script Rebol dans une page html avec la balise "script". Malheureusement, peu de navigateurs semblent capables de gérer correctement cette balise. Une solution consiste à utiliser Rebol comme du cgi pour générer du contenu dynamique.
Un exemple de 1827 bytes à couper le souffle crée un serveur web!!!
Pour ceux qui ne peuvent pas vivre sans leur téléphone portable, un script permet d'envoyer un message à un GSM...
Il est possible de crypter, de compresser ou de décompresser des fichiers avec Rebol. Vous pouvez même auto-extraire ces fichiers compressés. Voyez les scripts autoextract.r et encrypt.r.
Comme vous avez pu le remarquer, ces exemples sont une mine d'or. Etudiez-les, vous ne regretterez pas votre temps (et il est impossible de tous les mentionner dans cet article).
Disons que Rebol est génial! Cette version de Rebol/Core est une excellente évolution justifiant de se mettre à jour... ou de débuter.
Pour ce qui concerne Rebol/View, nous ne pouvons pas parler d'évolution: c'est une REVOLUTION! (ou pourquoi pas une reBolution?)

Rebol/View

Ceux qui parmi vous ne connaissent pas Rebol/View feraient mieux de s'asseoir et de se détendre!
Avec Rebol/View vous bénéficiez des mêmes fonctionnalités qu'avec Rebol/Core... plus encore plus.
Juste un mot pour résumer: INCROYABLE!
Commençons par un exemple.
Voici un script nommé lftest.r.

REBOL [

Title: "New way to access LF languages"
File: %lftest.r
Date: 28-Jul-2000
Purpose: {Shows how easy to create buttons.}
Category: [view VID 1]
]
view layout [
title "LF the multilingual magazine"
across
button "English" button "Français" button "Castellano" return
button "Deutsch" button "Nederlands" button "Italiano"
]

Voici le résultat:

lftest.jpg

Ce pourrait être la nouvelle manière d'accèder aux différentes langues de LF...

Continuons... Un script de 1413 bytes crée un éditeur de texte graphique!!! Vous ne le croyez pas? Voici la preuve:

texted.jpg

Le voici avec LE script

Encore? Le script image-sort.r crée un outil permettant d'afficher et de trier des images: il fait 3443 bytes! Regardez:

imed.jpg

L'image vous est offerte par NeXTstep(TM)

Jusqu'à présent, nous n'avons vu que l'incroyable compacité du code et les fonctionnalités extraordinaires de Rebol/View.
Une question pourrait être "pouvez-vous faire la même chose avec un autre langage et aussi peu de lignes de code?" et en plus, sans avoir à utiliser une tortue avec des freins pour compiler le tout... (vous savez, ce truc qui s'appelle JIT!). Ne vous fâchez pas, je plaisante... (Enfin, pas vraiment... mais ce n'est que mon opinion... et je la partage!). De toutes façons, comme dit mon compère Atif: TIMTOWDI (there is more than one way to do it, ou il y a plus d'une manière de le faire)... mais Perl est sa langue maternelle!
Et maintenant, Mesdames et Messieurs, quelque chose de complètement différent.
Pendant les années 80, on se connectait aux BBS avec des outils plus ou moins élaborés selon les OS. Les années 90 ont vu l'avènement des navigateurs. Les navigateurs graphiques sont devenus de plus en plus énormes, et maintenant ce sont de véritables usines à gaz (au moins pour les plus "renommés"). Les sites web utilisent de plus en plus Java (Pardon!) et la navigation sur le web tourne parfois au cauchemar y compris avec des liaisons rapides. Cela dépend de la machine, de la connexion mais aussi du navigateur.
Voici la manière de naviguer sur le web... ou le Reb, au 21ème siècle!
Rebol/View permet de naviguer sur le... reb sans navigateur!!!
Avec Rebol/View vous pouvez vous connecter sur des sites et faire ce que vous feriez avec un navigateur: télécharger des fichiers, butiner... pour faire votre miel, mettre vos logiciels à jour...
De plus, vous n'avez plus de problèmes parce que votre navigateur n'accepte pas telle version de tel "produit", ou même pire, parce que le site auquel vous souhaitez vous connecter n'accepte pas votre OS!
Bien, un exemple valant mieux qu'un long discours.

connex.jpg

C'est vraiment une connexion! Testez vous-mêmes... en vous connectant sur les sites Reb avec Rebol/View
Un autre exemple. Ce qui suit est le sommaire de Juillet de LF. Le script fait 2197 bytes et il est fonctionnel. Ca signifie que cliquer sur un bouton vous amène à l'article correspondant... mais en ouvrant votre navigateur.

lfissue.jpg


Il aurait été plus long de rendre les articles lisibles dans Rebol/View. Voici le source si vous souhaitez tester l'exemple.
Si vous visitez les sites Reb avec Rebol/View vous pouvez télécharger le code de chaque exemple. Cela vous montrera sa façon de travailler.
Un autre endroit où trouver des informations utiles est le répertoire "public" créé par Rebol. Chaque connexion crée un sous-répertoire du nom de l'URL. A partir de ce sous-répertoire, vous disposez de code source, d'images...
Evidemment, il y a beaucoup à dire sur ce fantastique outil, mais nous aurions besoin d'un livre au lieu d'un article. Comme nous l'avons déjà dit, Rebol ne semble pas avoir de limites et les seules que vous pourriez rencontrer viendraient de votre imagination.
Quelques remarques: pour cet article, Rebol/Core a été testé sous AmigaOS 3.5, BeOS 5, MacOS 7.1 (désolé, c'est le seul dont je dispose!), Solaris Sparc 2.6, Irix 6.5.7, Non Terminé 4.0 et bien sûr Linux (RH 6.2).
Rebol/View a été testé sous AmigaOS, NT et Linux. Des versions expérimentales ont été testées sous Irix, BeOS 5 et Solaris 2.6.
Les scripts et les photos d'écran ont été réalisés sous Linux, mais testés sur les 6 plate-formes.
Pour ce qui concerne les scripts, ils ont fonctionné de manière équivalente sur toutes les plate-formes testées (à l'exception de quelques versions expérimentales de Rebol/View, ce qui est parfaitement compréhensible).
La seule différence concerne la vitesse puisque les machines utilisées allaient de 25 Mhz à 400 Mhz! Même si la fréquence du CPU ne fait pas tout... selon la loi de l'entonnoir. (Encore une fois, merci à mon compère Javi qui est un grand philosophe, même si j'ai changé le sens de sa théorie!).
C'est à dire, Mr. Intel, avez-vous remarqué que si vous avez un CPU à 1 GHz et un bus à 100 MHz (ou même 133 MHz), le petit côté de l'entonnoir devient encore plus petit?
Pardon pour la digression!!!
Revenons à Rebol/View. Premièrement, il est très rapide. Naviguer sur le reb avec Rebol/View est plus rapide que de la manière conventionnelle. Utiliser Rebol comme outil de développement est également très impressionnant.
Si vous n'éprouvez pas l'envie d'essayer ce logiciel génial, c'est que vous n'êtes pas très curieux!

Futur

Tout d'abord, nous pouvons attendre la version 1.0 de Rebol/View pour très bientôt. Comme déjà mentionné, d'autres développement sont en cours. Mais nous n'avons pas cité "celui à venir". Rebol travaille sur un gros, gros produit nommé Rebol/Express. Ce sera un produit commercial entièrement dédié aux communications. Appelons-le un logiciel Internet. Vous pouvez en savoir plus en allant à http://www.rebol.com/products.html
Rebol/Express peut devenir un concurrent pour Backweb ou Marimba. Wait and see!
Mais connaissant l'efficacité des gens de Rebol, nous pouvons nous attendre à un sacré morceau.
Vous avez pu remarquer que nous n'avions pas abordé la licence. Pour information, Rebol/Core est gratuit mais n'est pas sous GPL.
Autre chose. Les gens de Rebol sont comme leurs produits: géniaux!
Ils prennent toujours en compte votre "feedback", ils le réclament même. D'où le script feedback.r disponible dans l'archive. Ils répondent à vos questions, vous fournissent documentation et FAQ. Tout cela GRATUITEMENT!
Nous pouvons également compter sur eux pour ce qui est de l'évolution constante de leurs produits.
Je crois vraiment que Rebol va devenir l'un des principaux acteurs dans les communications pour ces prochaines années.
La seule chose que nous puissions ajouter: essayez les produits Rebol!
Non seulement nous vivons une époque formidable, mais ça s'améliore!