Obligement - L'Amiga au maximum

Mardi 23 avril 2024 - 17:42  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


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 standard 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]