Obligement - L'Amiga au maximum

Samedi 19 août 2017 - 01:57  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Point de vue : Le langage REBOL
(Article écrit par Brice Fromentin et extrait d'Amiga News - juin 1997)


LAVA n'est pas Java mais REBOL

Anciennement appelé LAVA et après une longue discussion sur le nom, Carl Sassenrath, auteur de ce nouveau langage, a rebaptisé sa création afin de mettre un terme à la confusion possible avec Java. Après avoir résumé sa motivation à créer ce langage de programmation (Cf. cet article), M. Sassenrath commence à nous détailler les rouages de son bébé.

REBOL, pourquoi faire ?

Profitant de sa documentation, M. Sassenrath nous rappelle les champs d'actions de REBOL :
  • Scripts Shell, connu de nous tous...
  • Petites applications, comme les gestionnaires de fichiers, présentation multimédia...
  • Configuration et démarrage système.
  • Mini bases de données.
  • Préférences.
  • IPC et messages.
  • Communication réseau.
  • Interfaces de commandes personnalisées.
  • GUI.
  • Couper, copier et coller.
Ainsi que les objectifs choisis par Carl Sassenrath pour REBOL :
  • Productif.
  • Conséquent.
  • Compact.
  • Puissant.
  • Portable.
  • Ouvert.
  • Rapide.
Inutile de trop détailler, voyons plutôt les solutions offertes

Une multitude de types de données. Le plus choquant dans REBOL est le nombre de types de données qu'il gère. On trouve les types standards comme les "integer", "decimal" et "string" mais aussi des plus exotiques comme les "pair", "quad", "time", "date", "money", "word", "email", "file", "URL", "block". Ce qui est important dans ces types, c'est qu'ils semblent tous indépendants de la machine sur laquelle REBOL sera hébergé, mais le type de données va poser un problème. En effet, un type de données est écrit "%/System:Prefs/date" par exemple, donc du coup, soit REBOL possède un système interne pour gérer les chemins et sur les systèmes Microsoft, on perdra alors le naturel auquel l'utilisateur est habitué sur son OS, ou pire... Les programmes ne seront pas portables dès qu'il s'agira d'accéder aux fichiers de façon complexe, comme l'exemple cité.

Pour expliquer le concept de simplicité de REBOL, M. Sassenrath explique que l'exécution du programme n'est qu'une suite d'évaluations de nouvelles valeurs. S'il est vrai qu'expliquer comme cela, tout paraît simple, n'oublions pas aussi et surtout que la majorité des langages que nous connaissons peuvent s'exprimer ainsi dans leur grammaire. Rien à redire par contre sur la variété des types de données et leur expressivité qui est simple à souhait. Notons quand même que les décimaux gèrent le point ou la virgule, ce qui augmente le naturel pour nous par exemple... Précisons tout de même que les "word" sont des représentants de valeur en quelque sorte, des noms de variables... et que la notion de "block" qui reste au demeurant très simple permet une gestion avancée de données complexes. En effet, le block est considéré comme étant soit exécutable ou contenant des données. Ces dernières seront liées dans leur ordre d'apparition. Bien que REBOL s'en cache, derrière toutes les belles phrases descriptives, on voit se profiler des listes chaînées probablement indexées.

Dissimuler aussi habilement ces mécanismes qui peuvent se révéler complexes à assimiler pour le débutant est une bonne chose. Cependant, n'oublions pas que le programmeur en herbe va vite grandir et que s'il échappe à ces concepts au départ, il se pourrait que cela soit à ses dépens. Cette remarquable façon de faire accéder aux "blocks" de données est d'une simplicité extrême ce qui permettra facilement d'organiser les informations que vont traiter les futurs programmes REBOL...

Et si on voyait un exemple

numbers: [ 1 12 123 1234 12345]

until [
   print first numbers
   numbers: next numbers
   (first numbers) < 2000

Que fait ce programme ? Il affiche le nombre du block "numbers" actuel jusqu'à ce que le suivant soit supérieur à 2000. Il est vrai que ce programme est très expressif, à un détail cependant... La construction "first numbers" est-elle réellement naturelle ? Effectivement, dans ce cas précis, on se déplace à travers le block avec la ligne "numbers: next numbers" mais est-il pour autant justifié que l'on désigne par "first" le premier élément à partir de la position courante dans le block... Enfin, on en arrive vraiment au vrai problème que REBOL soulève : peut-on tout simplifier afin que le programmeur, ici, perde complètement de vue ou ne voit jamais certains fondements importants qui ont mis des années à aboutir ?

D'ailleurs, à ce niveau, la répartie de M. Sassenrath est sans équivoque, REBOL est simple pour résoudre des problèmes simples. Ainsi, REBOL ne répondra certainement pas à l'attente des programmeurs "experts" qui sont figés dans leur méthode de travail. On peut aussi se demander pourquoi créer un langage de programmation comme REBOL alors que l'excellent "Click & Create" a les mêmes objectifs, sans pour autant taper des listings...

Et l'avenir dans tout ça ?

Simplifier les complexes mécanismes de la programmation est une noble intention. Avec ce que REBOL nous laisse entrevoir, il est certainement sur la bonne voie.

Les problèmes que j'ai soulevés volontairement sont pour montrer que la notion d'expressivité est d'une grande subjectivité et qu'il ne faut pas penser que REBOL sera la solution idéale pour la meilleure raison du monde : la subjectivité. Ne soyons pas si pessimistes car pour tout langage il faut en apprendre les règles et REBOL n'y échappe pas évidemment, mais cela ne va certainement pas en faire un monstre de complexité pour autant.

A mon sens, REBOL, comme le préconise M. Sassenrath, serait le complément idéal d'un OS car ne nous leurrons pas, la concurrence est très rude pour ce qui est des solutions orientées vers l'utilisateur ou "comment faire des jolis programmes le plus simplement du monde". En effet, REBOL devra se doter d'un véritable environnement de développement qui pourrait même supprimer la notion de "taper le programme" grâce à une approche différente comme "Click & Create" ou grâce à des "Wizard" comme dans le Storm C. Imaginez, par exemple, un OS qui grâce à REBOL nous offrirait des services "portables" ce qui permettrait de résoudre une multitude de problèmes dans la standardisation des protocoles utilisés dans l'établissement de certaines solutions.

Il est clair que plus REBOL avance, plus on s'aperçoit que derrière sa candeur se cache une solution à beaucoup de problèmes, voire, dans sa version réseau, il pourra simplifier la maintenance de mécanisme complexe...


[Retour en haut] / [Retour aux articles]