Profitez des offres Memoirevive.ch!
Revolution, un programme fabuleux pour remplacer HyperCard

Cuk.ch était au départ un site mettant en avant les produits que j'ai programmé pendant pas mal d'années et ce en plusieurs langages. Vous trouverez

Je connais donc bien ces logiciels de programmation qui m'intéressent depuis longtemps.

J'ai adoré HyperCard. Apple nous a annoncé pendant plusieurs années une nouvelle version de ce logiciel génial mais semble maintenant l'avoir définitivement abandonné

C'est une honte d'ailleurs, car de nombreux développeurs ont choisi HyperCard pour sa souplesse, et pour sa faculté de s'apprendre sans trop de difficultés. Ë notre connaissance, il a été le premier à permettre de programmer avec des mots de tous les jours, qui ne soient pas abscons pour le néophyte.

Apple laisse ainsi tomber un programme qui était révolutionnaire. Lorsqu'on a la destinée d'un programme aussi riche dans les mains, il me semble regrettable de le laisser mourir dans un coin. Et lorsqu'on pense aux milliers de programmeurs qui sont maintenant bloqués parce qu'Apple les a laissé tomber et qu'on y ajoute les clients de ces derniers, qui sont fâchés non pas contre Cupertino mais contre les développeurs qui n'y peuvent rien, on ne comprend pas très bien comment la Pomme a pu ainsi abandonner HyperCard.

Et puis, il y a eu HyperStudio et SuperCard, deux programmes qui sont allés plus loin profitant, eux, d'une gestion bien fichue de la couleur, des sons et des animations, ce qui était bien normal: ces programmes étaient suivis par leur éditeur et pouvaient profiter des avancées de ces technologies sur nos machines.

Aucun d'eux n'a pour l'instant fait le saut de MacOS X, et s'ils font en sorte d'essayer d'être multiplateformes, ils ont bien de la peine à y parvenir.

RealBasic était jusqu'ici le seul logiciel permettant de développer relativement rapidement une application pour MacOS, MacOS X et Windows. Nous vous le présenterons dans quelques jours sur nos pages de tests. Le défaut de ce programme? Il n'est pas tout à fait aussi parlant qu'un logiciel utilisant un langage comme HyperTalk. Ce type de langage n'est peut-être pas ce qui se fait de plus efficace, mais il représente vraiment un plus au niveau de la simplicité de relecture. Vous écrirez ainsi Set the name of cd btn id 221 of window "test" to "Changer" pour demander que le bouton de la carte "Test" affiche "Changer" comme libellé.

C'est tout de même plus explicite que window.test.bt_test.caption="Changer". Mais c'est aussi plus long...

Une alternative intéressante: Revolution

Depuis quelques mois, un nouveau venu frappe très fort: il s'agit de Revolution. Ce programme est tellement complet qu'on se demande bien comment c'est possible, alors que nous n'en sommes qu'à la version 1.1. Multiplateforme, ce logiciel travaille sous Unix, Windows et MacOS (classic ou X). Il permet, à partir d'un seul code, de compiler des applications pour chacune de ces plateformes.

Revolution me semble avoir pratiquement tout prévu. Il fonctionne à partir de piles (des stacks). Tout programme écrit avec son aide est composé d'une pile principale et de sous-piles, qui sont représentées par des fenêtres. Elles pourront être cachées ou affichées comme bon nous semble. Chaque pile peut contenir une ou plusieurs cartes.

Ë l'aide de la palette d'outils intégrée, il suffira de glisser sur les cartes des champs,

  • des boutons
  • des onglets
  • des cases à cocher
  • des cercles à option
  • des textes
  • des images (de très nombreux formats sont supportés)
  • des barres de progressions
  • des curseurs
  • des animations
  • des formes vectorielles
  • des animations
  • des films QuickTime

Une vue d'un certain nombre d'objets disponibles dans Revolution

Tout le nécessaire est donc disponible pour dessiner une interface plaisante à nos développements. La couleur est omniprésente et se trouve être intégrée en natif, contrairement à HyperCard qui imposait l'usage d'externes ralentissant le tout. Mais ces objets ne seraient rien sans un langage capable de leur donner vie. Ce langage, c'est Transcript, très proche d'HyperTalk en plus évolué, pour s'intégrer aux nouvelles technologies. Il est possible de glisser un script derrière chacun des objets, cartes, piles avec une grande finesse. Ainsi, on pourra demander à une carte de faire un certain nombre d'actions avant qu'elle s'ouvre (on preOpenCard), et d'autres ensuite (on OpenCard).

La fenêtre dédiée à l'écriture des scripts indente automatiquement les lignes en tenant compte des boucles de programmation. Gros problème, l'annulation est inopérante dans cette partie de Revolution. Cela peut avoir des conséquences catastrophiques si l'on efface par erreur des centaines de lignes de programmation.

Toute la puissance d'HyperTalk est intégrée à Transcript: la gestion des procédures, des fonctions personnelles, des variables et des tableaux est bien présente, tout comme le réglage de toutes les propriétés imaginables de chaque objet de la pile.

Un logiciel bien structuré

Revolution permet de travailler chaque point important d'un projet grâce à des modules souvent disséminés dans d'autres programmes du même type. Cette structure favorise grandement notre travail de développeur. Nous allons essayer d'en faire le tour.

Des palettes hyper complètes.

Chaque objet proposé par Revolution peut voir une quantité époustouflante de propriétés (couleur, forme, style,alignement, comportement, profondeur dans la hiérarchie et j'en passe) pilotées par différentes palettes. Ces dernières sont très bien faites. Sous MacOS X, certains pop-up menus sont un peu trop petits pour être facilement déroulés. Ce n'est pas le cas sous MacOS 9.

La palette des couleurs

ÊÊÊ

Les onglets 1 et 2 des propriétés d'un objet

L'onglet 3... Tout est réglable

Un module pour les menus

Revolution permet de gérer les menus de manière simple et efficace à l'aide du "Menu Manager". Pour ce logiciel, un menu est composé de plusieurs boutons. Mais vous n'avez pas à vous en soucier: ce Menu Manager est très puissant et vous permet de gérer les différentes barres associées à leurs titres et leurs commandes de manière enfantine. On est bien loin de la difficulté de créer des menus imposée par HyperCard.

Le menu manager, simple et efficace

Un module pour gérer la taille des objets

Lorsqu'on modifie la taille d'une fenêtre, il est indispensable que les objets qui la composent modifient leur taille ou et leur place dans cette dernière. Cette gestion peut être difficile, au point que le programmeur aura parfois tendance à bloquer la fenêtre afin qu'on ne la modifie pas.

Avec Geometry Manager, tout devient facile: on peut demander des modifications d'objets en pourcentage proportionnel de la modification de la fenêtre, ou fixer des zones à ne pas dépasser. Une petite merveille de simplicité.

Le Geometry Manager, pour tout régler lorsque les fenêtres changent de taille

Un module pour gérer les animations

Animation Manager est très puissant. Il permet d'animer un ou plusieurs objets simultanément à l'aide d'une grille où chaque ligne représente un objet quelconque, et chaque colonne un événement dans le temps. Il suffit par exemple de donner une position à un objet dans la fenêtre, d'indiquer à Animation Manager qu'il s'agit d'une image clé, de changer la position du même objet, d'y associer une nouvelle image clé, et le programme se charge de calculer les déplacement entre la position de départ et la position d'arrivée.

L'animation manager fait un peu penser à Director, en plus simple

Les animations créées sont parfaitement fluides sous MacOS 9, mais saccadées dans MacOS X. Sans doute toujours ce problème de multitâche préemptif qui ne permet pas à une application de prendre toute la puissance du processeur. Dommage.

Un module pour localiser ses programmes

HyperCard ou SuperCard ne permettent pas facilement de traduire une application. RealBasic est nettement supérieur, mais n'arrive pas à la cheville de Revolution à ce niveau. Avec ce dernier, et à l'aide de Profile Manager, vous créez autant de profils que désiré. Un profil peut être créé pour gérer une nouvelle langue ou une plateforme. Prenons un exemple: sur MacOS 9 et X, les menus ne sont pas ordonnés de la même manière. Les profils seront utilisés pour créer, dans la même pile, les deux barres de menus dédiées. De même, les boutons doivent souvent être plus gros dans MacOS X. Il suffira de changer leur taille dans les profils.

Il sera aussi très simple de traduire notre programme. Un profil sera créé pour la langue française, un autre pour l'anglaise. Nous sommes bien d'accord que tout cela a des limites, et qu'au bout d'un moment, le risque est grand de devoir jongler avec une grande quantité de profils mais ce Profile Manager est une petite merveille d'ergonomie et de puissance.

Tester son programme

Dans Revolution, tester son programme se fait aussi facilement que dans HyperCard. Il suffit de choisir l'outil "Browser" et le tour est joué, les scripts d'ouverture de carte et ceux contenus dans les boutons sont immédiatement utilisables. Pour tester la programmation se trouvant dans le script d'ouverture de la pile, il faudra néanmoins tout d'abord la fermer puis la rouvrir. SuperCard et RealBasic permettent quant à eux une reprise de tout le code à l'aide du mode "Run" que j'apprécie tout autant.

Une fenêtre intitulée Script Debug est intégrée au logiciel, permettant de connaître la valeur de chaque variable et d'observer le comportement de notre programme.

Compiler pour différentes plateformes

Revolution permet de compiler ses Ïuvres pour différentes plateformes. Ce sont:

  • MacOS (68K, PPC ou Fat)
  • MacOS X
  • Windows
  • Unix (pratiquement toutes ses déclinaisons)

Le programme tient compte des différents endroits où est située la barre de menus (en haut de chaque fenêtre dans Windows, en haut de l'écran chez Apple). Comme tous les programmes travaillant avec un langage interprété, la compacité des logiciels compilés n'est pas son fort. La moindre application pèse plus de 2 Mb sur le disque, ce qui s'explique par le fait que le moteur de Revolution doit être intégré avec chaque compilation. Avec les progrès et la baisse de prix des mémoires vives ou de stockage, cela ne pose plus trop de problèmes. Reste qu' il faudra plus de temps pour que notre client puisse télécharger l'application créée depuis notre site de distribution. On pourra diminuer cette taille en retirant quelques librairies, mais il vaut mieux dans ce cas savoir ce que l'on fait.

Une importation présente mais perfectible

Runtime Revolution Ltd nous offre en prime avec son produit deux sets d'importation pour reprendre nos piles depuis HyperCard et Supercard. J'ai testé ce dernier avec plus ou moins de bonheur. Une pile simple a été reprise et peut être utilisée sans aucune retouche dans Revolution. Par contre il m'a été complètement impossible de passer une pile plus compliquée ne serait-ce qu'en partie. J'en suis fort désolé.

Que reste-t-il à améliorer?

Si la prise en main est magnifiquement réalisée dans ce logiciel, la documentation générale en hypertexte est indigente puisqu'on y trouve que très peu d'exemples, et pratiquement jamais ce que l'on cherche. Il me semble incroyable que je n'aie pas été capable de donner la valeur d'un curseur dans une variable, moi qui ai malgré tout une certaine expérience dans l'Hypertalk. Il m'a fallu passer par la mailing list du site pour trouver une réponse. On ne peut néanmoins pas toujours se reposer sur de gentils particiapants, raison pour laquelle un document PDF de plusieurs centaines de pages me semble un minimum qui est cruellement absent de l'offre proposée.

De plus, comme je l'ai déjà écrit plus haut, les fonctions d'annulation ne sont pas bien gérées (j'ai testé une version MacOS X). Il faut absolument corriger ce défaut. D'autres petits problèmes cosmétiques viennent parfois gâcher notre enthousiasme, mais dès qu'ils seront réglés, Revolution sera une vraie perle qui comblera tous mes besoins.

Reste un doute: la petite Runtime Revolution Ltd tiendra-t-elle le coup face aux nouveaux outils Cocoa intégrés dans le CD Développeurs accompagnant MacOS X? Va-t-elle continuer ses développements sur Mac pendant de nombreuses années alors que depuis quelques mois, RealBasic semble fort bien intégré dans notre plateforme?

Cela dit, même si ce n'est pas le cas, le fait que ce programme soit développés sur d'autres plateformes permet de voir l'avenir avec optimisme, puisqu'au pire, nous pourrons continuer de développer nos projets sur ces dernières.

C'est qu'on devient méfiant, avec l'expérience, même si, comme nous l'avons vu plus haut, ce n'est pas parce qu'un programme est soutenu par un grand constructeur qu'il est assuré de l'immortalité. Runtime Revolution Ltd nous prouvera je l'espère que nous pouvons compter sur elle.

Parce que je commence à en avoir assez de toujours tout recommencer...

2 commentaires
1)
xApple
, le 13.12.2004 à 19:01

ouais, c’est carrément de la balle Revolution !
j’ai fait mon travail de maturité (eh oui cette belle connerie) avec en programmant un BomberMan (tout seul) jouable par TCP/IP que ce soit, par example, entre un Mac et… ben.. un non-Mac
Vous croyiez que programmer c’etait le C++ ? Vous avez tout loupé ! il existe un monde ou tout est plus facile et plus rapide et… bref.. comme un Mac comparé a un PC

2)
lmeléo
, le 22.01.2011 à 18:29

Bonjour,je viens de charger la version 4.5.3 de LiveCode et il y a une documentation de près de 400 pages ! Est-ce qu’il y a des commentaires sur cette nouvelle version ?