Actualites | Proposer un article | Synthese | Version Texte
Une interview exclusive de DocKimbel, l'auteur de R#
 
- Par Al le 21-09-2003 -
Nospoon livre une interview exclusive de DocKimbel, l'auteur de R# un clone du langage Rebol en GPL. DocKimbel s'est illustré dans la communauté Rebol pour avoir developpé le support MySQL et PostGresQL en code Rebol natif. Nospoon avait deja consacré quelques lignes au langage à travers cet article.
Doc, pouvez vous en quelques mots nous présenter le langage Rebol ?

Avec plaisir. REBOL est un langage de programmation généraliste de haut niveau (par rapport au C) sorti en 1998 par Carl Sassenrath, l'architecte du noyau de l'AmigaOS. Ses racines plongent dans le LISP pour sa syntaxe (sans les parenthèses), Scheme, FORTH, LOGO pour sa sémantique. Il fournit un garbage collector rapide, un support natif des protocoles Internet principaux, un parseur BNF intégré en standard dans un executable unique de 150Ko. Le support de près de 40 types de données, la compacité du code source, son haut niveau d'abstraction et sa console interactive en font un outil de grande productivité. L'implémentation par REBOL Technologies est gratuite pour les version /Core et /View (/Core + couche graphique multiOS) et payante pour les versions commerciales (support natif des bases de données, SSL, lib crypto, etc...).


Pouvez vous comparer Rebol à Java, C++ ou C#, Python et Perl ?

Si l'on considère que Java/C++/C# jouent dans la meme cour, REBOL se situe plutôt dans la catégorie des Python/Perl/Ruby et autres, aussi bien au niveau de ses performances que de ses applications. Le modèle objet de REBOL est "prototype-based". Il n'y a pas de classes, l'instantiation et l'héritage se font par clonage d'un autre objet ou d'une primitive. Il permet la programmation impérative, fonctionnelle et objet d'une manière homogène, simple et d'origine. Comparativement, Perl et Python fournissent également des supports pour ces différents modèles mais ce sont des ajouts au langage de base et ne créent donc pas un modèle cohérent pour l'utilisateur.

Les illisibles regexps sont avantageusement remplacées par le parseur BNF et son dialecte simple et efficace (mais pas de bactracking automatique). L'interfacage avec les libs en C est également simple (dans le style VisualBasic).

De plus, il dispose de capacité réflectives très avancées. L'unification des données et du code rend la génération de code dynamique très simple et très efficace. Une autre différence majeur entre REBOL et les autres langages est qu'il est complètement interprété, il n'y a pas de compilation en code intermédiaire (bytecode).

Ses atouts majeurs sont son parseur BNF, ses ports de communications et protocoles Internet "built-in", son toolkit graphique multiplateforme (très simple et très puissant), le concept du tout-en-un executable de 150Ko (400Ko avec la couche graphique).


Vous avez décidé de coder une implémentation opensource de Rebol, intitulée R#, je vous laisse faire la présentation.

R# est un projet en GPL (evolution en BSD prévue) hébergé sur SourceForge, fournissant une implémentation du langage REBOL fidèle à la syntaxe et aux règles d'interprétations. Il est implémenté en C ANSI/POSIX. L'objectif est de fournir une version 1.0 au début 2004 pouvant se substituer à REBOL/Core. Le projet couvre aujourd'hui 30% des fonctions et types REBOL. La philosophie de R# est de founir un noyau de base de très petite taille (100Ko) permettant de charger des modules dynamiques. Toutes les extensions et librairies seront implémentées sous forme de modules (similaire à Apache). Parmis les modules prévus une fois la v1.0 sortie, il y aura plusieurs toolkit graphiques (2D, 3D, jeux), des interfacages avec les bases de données majeures, un framework serveur haute performances, un support des threads, etc...

Un autre axe de developpement est l'ajout d'un compilateur de type JIT au langage avec génération de code natif. De nombreuses techniques existent pour celà et Psycho ou Pyrex sont de bons examples de ce qu'il est possible de réaliser actuellement.


Qu'est ce qui vous a poussé à developper une implémentation de Rebol ?

C'est assez simple à expliquer. REBOL est à mes yeux l'outil de programmation presque parfait. Tout est dans le "presque"! Techniquement, son modèle mémoire est très rapide, mais très gourmand également. Il n'offre pas de multithreading. Et surtout, il n'est pas open source, donc aucune chance de corriger un bug du noyau, difficile de réaliser des extensions au langage, etc...Commercialement, la politique de REBOL Technologies s'apparente plus à celle de SUN ou ORACLE qu'à celle d'une startup qui veut réellement diffuser son langage. Ca commence à changer, mais c'est un peu tard.

D'autre part, je suis aussi chef d'entreprise (SOFTINNOV) et nous ne pouvons nous permettre de prendre du retard sur nos chantiers à cause d'un bug bloquant ou devoir répercuter des coûts de licences dans des appels d'offres quand des concurrents vont proposer des technologies open-source et gratuites. C'est suffisamment difficile d'imposer l'usage d'un outil si peu connu sans en plus devoir surmonter les difficultés liées aux systèmes propriétaires.


Quelle est la position de Carl Sassenrath par rapport à cette initiative ?

Il craint que cela ne fragmente une communauté qui n'est déjà pas franchement très grande comparée aux autres. Il n'a pas complètement tort, même Haskell ou Lua peuvent compter sur une communauté plus nombreuse. La faute à qui ?


Comment le projet a été accueuilli par la communauté ?

Très bien. Il génère chaque jour plus d'enthousiasme et je reçois de plus en plus de demande de volontaires souhaitant participer ou contribuer au projet. Les attentes sont très grandes et je fais mon possible pour ne pas les décevoir.


Comment voyez vous l'avenir de R# et de Rebol ?

Franchement, je suis impatient d'avoir entre mes mains la v1.0 de R# ;-). Je crois que beaucoup de gens vont se lancer dans la création de modules et à partir de là, générer un intérêt grandissant pour le langage REBOL. Celà profitera également beaucoup à REBOL Technologies. Je pense qu'il y a de la place pour deux implémentations voire meme plus. Les concepts *réellement* novateurs du langage (que je ne peux montrer ici faute de place) imaginés par Carl S. méritent d'être plus largement diffusés pour le bénéfice de tous.

Les domaines d'applications de REBOL sont très nombreux: informatique distribuée, apprentissage de la programmation, groupware (REBOL/IOS), applications graphiques multi-plateformes, applications réseaux, jeux, scripting, etc...Aux developpeurs de décider finalement si l'outil est efficace ou non.

Ce qui est vraiment important en définitif, c'est que R# et REBOL partagent la même approche face à la foultitude d'usines à gaz en informatique : "Keep It Simple". Apparemment, c'est un concept qui a de l'avenir ;-).


Avez vous des articles ou réferences à nous recommander ?

Le manifeste de Carl S. à l'origine de REBOL (1997): URL
Résumé de REBOL/Core: URL
Courte Intro au langage: URL
Artcles pratiques: URL
Communauté française REBOL: URL
Le projet R# sur SourceForge : URL

Nenad Rakocevic alias DocKimbel  
Articles Recents

15-03-2010
- Paris Scala User Group

29-11-2009
- La réalité augmentée pour les livres

13-06-2009
- Ndjin Platform as a Service

06-04-2009
- QwikiTodo, la todolist collaborative ultra simplifiée

27-02-2009
- Black-out

22-01-2009
- OSX sur un Dell Mini 9 avec 8GB

16-01-2009
- Holotag, la réalité augmentée à portée de tous

20-08-2007
- Vélib

14-08-2007
- Facebook

07-04-2006
- Un peu de chat ?

Articles Pr�c�dents
 Search
 
Re : Une interview exclusive de DocKimbel, l'auteur de R#
 
- Par boblecinglé le 22-09-2003 -

Merde alors, il a ses racines dans tout ce qui existe, il est petit, il peut tout faire et en plus il est interprété! Hé Doc, pour le multithread, c'est simple: il suffit de lancer une deuxième instance de R#! On a trouvé un nouveau Jayce, mon Dieu sauvez nous! Un MultideskOS ça va, deux on n'y survivra pas :)
Plus sérieusement, quand on regarde la syntaxe de Rebol et qu'on critique celle des regexps, moi je sais pas, mais je sens comme une certaine perversion malsaine...
Enfin bon, on verra...
 
  • Re : Re : Une interview exclusive de DocKimbel, l'auteur de R#   par Evil Smith le 22-09-2003

    Les regexps restent très difficiles à lire, la codification sur un caractère (dont la plupart sont spéciaux) m'a toujours laissé dubitatif. L'écriture de règles BNF dans le parser Rebol est, pour le moins, aisé.
    La syntaxe Rebol met en jeux des concepts inhabituels pour les programmeurs C et dérivés (C++, java, perl, ...), comme le pipe programming, les rafinements, etc... C'est, je crois ce qui me rebute encors avec Rebol, sans parler de l'absence de variable, puisque tout est valeur !
    Mais avec de la pratique, Rebol permet de passer de l'idée à l'implémentation de façon rapide.

Learning curve
 
- Par Al le 22-09-2003 -

J'ai pas une super experience de Rebol, mais j'ai comme l'impression que c'est plus un langage pour les projets uni(duo)personnels que les projets en équipe ou une certaine rigueur doit être imposée.

J'ai quand même dans l'idée que c'est un langage super simple et rapide à apprendre, mais aussi super simple à oublier ;) Genre, on arrête de pratiquer et au bout de 15j, ba on n'a plus la main. C'est un peu le cas de tous les langages, mais ils y en a qui necessitent une petite gymnastique avant d'etre à nouveau limpide, ce qui est toujours un peu gonflant.
 
  • Re : Learning curve   par Evil Smith le 22-09-2003

    Pas d'accord, Rebol est plus complexe à apprendre pour un programmeur habitué à des langages C et dérivés. Le piège des "variables" et notamment, de leur réinitialisation, en est un bon exemple.

Rebol: élégance et efficacité
 
- Par Jocko le 23-09-2003 -

Rebol n'est sans doute pas le langage universel, optimal pour tout type de projet, tout niveau de complexité, toute plateforme. Cependant, il y a dans Rebol une élégance et une efficacité qui laisse loin derrière beaucoup de langages "classiques".
Pour les déçus de Java et de l'usine à gaz qu'il est devenu, la portabilité n'est pas un vain mot.
Pour ceux qui acceptent d'oublier (un peu) leurs connaissances et habitudes en informatique, Rebol est facile à maîtriser.
Enfin, la productivité de ce langage est très grande, au moins pour des tâches liées au réseau, à la recherche de données, et à la manipulation de contenu.
Rebol est devenu mon outil de prédilection pour le traitement intelligent de l'information (= informatique).
 
  • Re : Rebol: élégance et efficacité   par boblecinglé le 23-09-2003

    Enfin on va pas tomber dans le troll bas de gamme quand même, on est sur nospoon ici :) Tu vois, certains artistes préfèrent les pastels, d'autres les huiles ou le feutre...Pareil pour le choix du support. Les langages de programmation après tout, c'est la même chose. A chacun de voir ce qui lui convient le mieux et ce qu'il veut en faire.
    Dire que l'informatique peut s'aborder entièrement en rebol (c'est l'extrapolation que tu fais) n'est pas une idée fausse en soi, mais la vraie question est de savoir si rebol est aussi versatile que ça (l'informatique c'est vaste tout de même). L'informatique c'est aussi des OS (on a écrit des OS en rebol?), l'informatique c'est aussi des SGBD (on a écrit des SGBD en rebol?). Bien sûr ce sont des cas extremes. Je doute personnellement non pas de la faisabilité d'une telle chose en rebol, mais de l'intérêt. Je partage l'avis d'Al sur le fait que Rebol est plutôt un outil destiné à développer de petites applications maintenues par 1 seule personne... En d'autres termes, pour faire du script ou des "macros", rebol (au même titre que perl ou php ou ruby) semble tout indiqué. Je le vois comme un couteau suisse qui permet de bricoler rapidement un petit quelque chose. Mais pour faire de gros travaux sur un gros chantier, le couteau suisse ne suffit plus à mon avis.

    • Re : Re : Rebol: élégance et efficacité   par Jocko le 23-09-2003

      Sans vouloir en rajouter, je précise ma pensée. Evidemment que Rebol n'est pas un langage universel, et ma première phrase le souligne. Personnellement, j'utilise pour le traitement d'image temps réel le C, et pour le calcul scientifique Matlab.
      Ce que j'ai voulu dire (maladroitement ?), c'est qu'il me semble bien adapté aux tâches qui concernent la recherche et la manipulation de l'information au sens grand public du terme (messagerie, recherche d'infos textuelles dans les fichiers, sur internet) grâce à ses fonctions de parsing et son support des protocoles réseau.
      Enfin, je ne suis pas loin de partager ta dernière remarque, avec une réserve cependant: les grosses machines et les gros chantiers donnent quelquefois naissance à des monstres...

      • Re : Re : Re : Rebol: élégance et efficacité   par boblecingl� le 23-09-2003

        Ok pour les monstres, je suis d'accord ;)
        Bon, on continue et on finit par comparer rebol � un langage de "macro" genre wordbasic? ;)
        Vive les couteaux suisse quand m�me :)

    • Re : Re : Rebol: élégance et efficacité   par Jocko le 23-09-2003

      Sans vouloir en rajouter, je précise ma pensée. Evidemment que Rebol n'est pas un langage universel, et ma première phrase le souligne. Personnellement, j'utilise pour le traitement d'image temps réel le C, et pour le calcul scientifique Matlab.
      Ce que j'ai voulu dire (maladroitement ?), c'est qu'il me semble bien adapté aux tâches qui concernent la recherche et la manipulation de l'information au sens grand public du terme (messagerie, recherche d'infos textuelles dans les fichiers, sur internet) grâce à ses fonctions de parsing et son support des protocoles réseau.
      Enfin, je ne suis pas loin de partager ta dernière remarque, avec une réserve cependant: les grosses machines et les gros chantiers donnent quelquefois naissance à des monstres...

Re : Une interview exclusive de DocKimbel, l'auteur de R#
 
- Par moechofe le 24-09-2003 -

moi à chaque fois que je developpe en rebol, j'ai l'impression de ne plus savoir programmer. j'ai exploré beaucoup de language, je prog depuis 16ans, et c'est bien mon soucis. rebol : je comprend rien. pourtant j'ai jamais autant pris mon pied avec un autre language. c'est sympa de l'utiliser en temps que ligne de commande. traitement de fichier, renomage massif, etc.
 
Wikipedia Affiliate Button

SMK, L'expertise multi sites