HyperCard abandonné? Dommage mais tant pis
Apple nous a annoncé pendant des années une nouvelle version de ce logiciel génial qu'est HyperCard. Mais à part quelques révisions mineures, rendant le programme compatible avec les nouveaux systèmes, ce programme n'a pratiquement pas évolué.
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.
Bref, et ce n'est pas la première fois, Apple laisse tomber un programme génial, alors que celui-ci était censé piloter les nouvelles versions de QuickTime. Maintenant, je crois qu'il faut se rendre à l'évidence, HyperCard ne ressuscitera pas. Rideau
Lorsqu'on a la destinée d'un programme aussi riche dans les mains, il est vraiment lamentable de le laisser couler, certes, mais ce n'est pas le plus grave.
On a aussi une responsabilité face à ceux qui ont travaillé des centaines d'heures pour créer des logiciels à partir de cet outil.
De nombreux développeurs HyperCard (dont je suis) et leurs clients (vous peut-être) sont donc sur le carreau, le logiciel qu'ils ont créé ou acheté ne pouvant passer l'étape indispensable de la carbonisation.
Merci Apple, tu fais vraiment preuve d'une grande considération de tes clients, une fois de plus.
J'ai personnellement senti le vent tourner depuis quelques… années, raison pour laquelle j'ai complètement réécrit à l'époque deux de mes quatre logiciels créés à l'origine sur HyperCard. Ce sont Cuk Calcul Oral et Cuk Livrets (pour table de multiplication). J'ai utilisé pour ce faire un programme encore plus puissant et génial, SuperCard, en version 3 et 3.6 à l'époque.
J'ai pourtant eu quelques angoisses. J'ai bien cru en effet que SuperCard allait être à son tour abandonné, malgré les rumeurs de sa carbonisation éventuelle.
J'avais tort! Oui, SuperCard est de retour, en version 4, complètement réécrit et tirant profit de MacOS X jusque dans les moindres détails, tout en restant compatible avec MacOS 9. Le rêve!
C'est quoi SuperCard?
SuperCard, c'est un outil complet de programmation, composé de RunTime Editor, de SuperEdit et de Standalone Maker. Basé sur un langage de type HyperTalk extrêmement puissant, il permet de réaliser avec un peu de bonne volonté des applications très simples en quelques minutes, mais aussi des logiciels complexes qui nécessiteront des années de programmation.
Avec SuperCard 4, tout commence par la création d'un projet.
Ce dernier est composé de fenêtres. Chacune d'entre elles peut se voir dotée de différentes propriétés. Ainsi, une fenêtre sera de type palette, dialogue, aura ou non un bouton de fermeture, un bouton zoom permettant de recréer tout l'environnement Macintosh.
La gestion de ces fenêtres est simple et efficace (contrairement à ce que proposait HyperCard) et chacune d'entre elles pourra contenir une ou plusieurs cartes.
Pour dessiner l'interface de base, nous utilisons SuperCard RunTime Editor (RTE) et nous disposons ainsi de toute une palette d'outils divisés en catégories. De haut en bas nous trouvons:
- les interrupteurs permettant de switcher entre les modes browser et programmation. Le premier permet, sans compilation aucune de tester notre composition, le second nous permet de programmer nos objets, boutons, cartes, fenêtres ou l'application elle-même. Nous retrouvons ici le mode cher à HyperCard, qui n'était pourtant pas celui de SuperCard dans les versions précédentes. Cette première catégorie nous permet également de basculer de la carte elle-même à son fond, le Background, qui pourra être commun à toutes ou parties des cartes du projet.
- tous les boutons imaginables à intégrer au projet (pop-up menus, radio, case à cocher,…)
- les contrôles (onglets, ascenseurs, flèches d'incrémentations,…)
- les indicateurs d'avancement des tâches
- les champs de texte qui peuvent être standards ou présentés sous forme de listes
- les outils de dessin technique (avec couleur intégrée) qui serviront également à l'importation d'images ou d'animations
- les outils de dessins bitmap (couleur également gérée en interne)
- les boutons graphiques de diverses sortes (les Widgets)
- quelques outils spécifiques à MacOS X
- les palettes de couleurs, touchant à tous les éléments des objets. Attention, les contrôles et les boutons standards s'accordent automatiquement avec le thème utilisé par la machine. Aqua pour MacOS X, et Platinium pour MacOS 9. Ces deux types d'objets ne peuvent pas être colorisés. C'est un peu dommage, mais RealBasic pour ne prendre que lui nous impose les mêmes limites.
Un projet important pourrait donc devenir difficile à gérer et, pour s'y retrouver, les programmeurs ont renoncé à la vue en arborescence pour utiliser un navigateur permettant de circuler de manière fort logique à travers les méandres de votre création, de vos fenêtres et de vos cartes.
Ces cartes contiendront selon votre désir des boutons, des zones de texte de natures différentes appelées champs (fields), des images, et des animations. Toutes ces zones intègrent en standard la couleur et pourront la recevoir sur leur fond, leur contour ou leur texte.
Un exemple de ce qui peut être réalisé comme type de fenêtre: menus déroulants, boutons à cocher et radio, zones de textes, tout y est.
Le fait d'intégrer cette couleur à la source permet au programme d'afficher toute modification très rapidement, contrairement à HyperCard qui fait appel à des ressources externes et qui doit chaque fois rafraîchir l'écran, ce qui prend un temps considérable.
Le langage Supertalk
Les boutons surtout, mais aussi pratiquement tous les objets contiendront des scripts, qui seront écrits dans le langage de programmation SuperTalk qui ressemble à s'y méprendre, mais en plus puissant, au langage HyperTalk d'HyperCard.
De nombreux scripts pourront ainsi être copiés-collés d'un programme à l'autre sans qu'il soit besoin de les modifier. Un utilitaire existe même pour passer une pile complète depuis HyperCard vers SuperCard.
Attention cependant à certaines finesses, car comme toujours, tout n'est pas si simple: par exemple, la fonction "set the enabled to true" dans HyperCard doit être transformée en "set the disabled to false". De même, le "if it is a number then" d'HyperCard est changé dans SuperCard en "if isnumber(it) is true then". Ils auraient quand même pu se mettre d'accord non? De plus, la gestion des pop-up menus, et des menus tout court en fait, n'est strictement pas pareille. Avantage sur ce point également à SuperCard qui rend leur création à la portée du programmeur débutant, puisqu'il suffit de les créer à l'aide de commandes des propres menus de SuperCard. Essayez donc de faire cela avec HyperCard! Bref, passer d'HyperCard à SuperCard n'impose pas de tout récrire, mais il y a malgré tout du travail!
Certains lecteurs seront tentés de tourner la page en lisant les mots langage de programmation, Pourtant, ils auraient tort, car les concepteurs de SuperCard, ont pensé à eux: en effet, tout a été fait pour faciliter la tâche du programmeur débutant.
L'éditeur de scripts contient par exemple dans son en-tête des pop-up menus affichant toutes les commandes, les fonctions, et les propriétés d'un objet. Pratique pour ne pas avoir besoin de plonger dans les méandres des manuels à chaque instant.
SuperTalk est très puissant et fort simple à mémoriser: il utilise une syntaxe proche de celle que nous utilisons (mais en anglais). S'il est bien plus facile à apprendre que les nouveaux outils fournis par Apple dans ses Developper Tools, il est clair qu'un certain apprentissage est nécessaire avant de devenir un programmeur confirmé.
Ainsi, prenons pour exemple un programme tout simple composé d'une fenêtre, d'un bouton et d'un champ. Je demande simplement, dans le script du bouton de d'afficher "Bonjour" dans le champ, puis de vider le champ. Le script est simplement
on mouseUp -- quand le bouton de la souris est lâché alors que la souris est sur moi
put "Bonjour" into cd fld 1 -- écris "Bonjour" dans le champ 1
wait 300-- Attends 300 tiks (unités de temps correspondant à 1/60 de seconde)
put empty into cd fld 1 --(vide le champ 1)
end mouseUp-- fin de "quand le bouton de la souris est lâché alors que la souris est sur moi"
Cette simplicité relative pourra même être reprochée par certains programmeurs chevronnés travaillant en C par exemple. En effet, il a toujours été reproché aux langages de type HyperTalk de tout permettre et par conséquent de n'être pas assez structurés, les scripts étant perdus un peu partout dans les projets. SuperCard pallie en grande partie ce problème à l'aide d'un puissant outil de recherche permettant de retrouver instantanément (ou presque) une variable ou une chaîne de caractères qui pourrait se trouver dans un script éventuellement oublié, n'importe où dans votre projet.
Animations et sons
Toute présentation sur CD ne s'imagine pas sans des sons, des images ou des animations.
Ces dernières sont au nombre de sept: des films QuickTime pourront être intégrés à des cartes, mais aussi des animations qui permettront de faire bouger un objet, ou encore les films de type Filmstrips. Ces derniers fonctionnent de manière originale: il suffit de créer un fichier PICT sur lequel on dessinera une matrice contenant des dessins (8 sur 8 par exemple) qui différeront peu l'un de l'autre, montrant les étapes d'un geste par exemple. Ces dessins devront tous tenir dans un rectangle de même taille (au pixel près). Cette méthode a comme avantage de permettre le chargement de l'animation bien avant son utilisation, ce qui permettra une présentation instantanée, contrairement à un film QuickTime.
Notons que SuperCard gère désormais le QuickTime VR ce qui permettra de créer des animations 3D sans problème.
La plupart des formats d'image sont reconnus et peuvent donc être importés (tout comme les sons d'ailleurs), soit en faisant référence à un fichier, soit en étant intégrées dans des ressources, pouvant être facilement éditables, via le RessourceManager intégré à SuperCard, et qui évite l'usage de Resedit (ce n'est pas plus mal puisque cet utilitaire indispensable n'a j'amais été porté sous OS X).
Signalons encore les multiples effets permettant de passer d'une carte à l'autre, et le fait que les couleurs soient directement intégrées permet d'animer des boutons sans aucun problème, en demandant par exemple de changer son icône lorsque l'on clique ou lorsqu'on passe le curseur dessus, pour simuler un véritable interrupteur. Sans être aussi souples que Director au niveau des animations (notamment au niveau du TimeCode), SuperCard est donc bien outillé sur ce point. La gestion des sons est également intégrée et il est maintenant possible d'attendre qu'une image sonore soit terminée avant de continuer l'exécution du programme ou inversement de jouer cette image pendant que le programme continue à tourner.
Les nouveautés de la version 4
Dans cette nouvelle version 4.0,intègre des centaines d'amélioration (nous en avons déjà évoqué un certain nombre), ainsi qu'une toute nouvelle interface profitant de son portage sous MacOS X.
Comme nous l'avons vu, tous les objets de l'interface seront parfaitement intégrés à un projet, y compris toutes les fenêtres imaginables, les onglets, les barres d'avancement (progressBar Control). Et puis, cela n'a l'air de rien, un script SuperCard n'est enfin plus limité à 32Kb.
La gestion des boutons radio a également été mise au goût du jour. Ils sont maintenant enfin gérés complètement et automatiquement par SuperCard lui-même. Plus simple tu meurs: il suffit de créer un bouton radio sur la carte, et de lui donner plusieurs composants (radioData). Les boutons supplémentaires sont automatiquement créés et alignés. C'est beau, c'est propre.
Les transitions bénéficient maintenant d'un éditeur permettant d'en créer de nouvelles soi-même, pouvant être basées sur des effets QuickTime. Au niveau sonore, les MP3 n'ont plus de secret pour SuperCard 4.
La gestion des menus est maintenant bien plus simple qu'auparavant, grâce à MenuMaster. Notons qu'auparavant, il fallait créer tous les pop-up menus dans cet utilitaire. Ce n'est plus nécessaire en version 4, au vu des améliorations portés à ces objets en interne.
Notons enfin (mais répétons-le, la liste n'est pas exhaustive), la possibilité de capturer de la vidéo depuis le programme. Je précise que je n'ai pas testé cette fonction.
SuperCard face à la concurrence
SuperCard 2.5 a gagné le titre de meilleur programme dédié à la présentation Multimédia sur Macintosh en 1996. La version 4 reste un magnifique outil dans ce domaine, mais, par rapport à Director pour ne prendre que cet exemple, SuperCard souffre d'une grande faiblesse: il ne permet pas de créer des présentations directement utilisables sous Windows. Le portage était prévu à une certaine époque, mais semble avoir été définitivement enterré.
La version 3.6 nous offrait une solution sous la forme de Roadster, un plug-in venant se glisser dans votre navigateur préféré et permettant à toutes les plates-formes de lire votre projet, en tenant compte de certaines limites (impossibilité par exemple de lire des présentations multifenêtres). En fait, cette solution n'a jamais vraiment tenu la route et a été abandonnée dans SuperCard 4.
En fait, SuperCard peut être plus précisément comparé à Revolution, testé ici, qui utilise pratiquement le même langage de programmation (un utilitaire est même prévu pour convertir un projet SuperCard en Revolution).
Ce même Revolution est multi plateformes, et permet de créer des applications pour à peu près tous les systèmes existant sur le marché. Mais cette possibilité est limitée par un certain nombre de compromis au niveau de l'interface. Or, si vous voulez développer pour Mac uniquement, SuperCard est l'outil le plus fidèle à ce niveau (si l'on excepte bien entendu les outils Cocoa, bien plus compliqués).
Au niveau langage de programmation pure et relativement simples, vous pourrez également tester RealBasic. Ce dernier est plus difficile à apprendre, mais vous obligera à une logique plus professionnelle, avec par exemple une déclaration obligatoire des variables en tête de script. Question d'habitude aussi, reste que SuperCard me convient particulièrement bien.
SuperEdit et Standalone Maker pour aider le RunTime Editor
Lors de la création de l'interface, on passera de préférence par le module RunTime Editor (RTE) que je vous ai décrit jusqu'ici. Mais une fois les bases réalisées, il sera certainement plus pratique de passer par un module un tout petit peu moins simple d'emploi, mais nettement plus ergonomique.
En effet, pour ne prendre que deux exemples, RTE ne gère pas la fonction Annuler (ce qui peut être catastrophique) et ne permet pas d'ouvrir plus d'un script à la fois.
SuperEdit supprime tous ces défauts. De plus, nos projets tournent beaucoup plus vite sous son environnement.
Dès que vous aurez découvert les vertus de SuperEdit, vous le préférerez à RTE, sauf peut-être en ce qui concerne l'ajout d'objets graphiques.
Sur Macintosh, vous pourrez faire lire vos créations SuperCard à vos clients via un Runtime libre de droits.
Vous pourrez également créer des applications autonomes double-cliquables qui pourront être spécifiquement dédiées à MacOS 9 ou Mac OS X
En ce cas, le RunTime sera intégré dans le projet, ce qui aura pour désavantage de lui faire prendre quelque peu d'embonpoint. Si je prends le programme tout simple décrit plus haut, (le bouton qui dit bonjour), son projet ne pèse que 8 Kb sans le RunTime, mais passe à 1.3 Kb lorsqu'il l'intègre. Remarquez que ces 1.3Mb sont présents pour un tout petit projet comme celui-là, mais également pour de très grosses applications. En ce cas, ce RunTime est beaucoup moins pénalisant. Et puis, nos disques deviennent tellement gros et bon marché que tout cela n'a pas beaucoup d'importance, sauf si l'on met nos applications en téléchargement. N'oublions pas que tout le monde ne dispose pas encore de l'ADSL ou du câble.
Un programme porté par son éditeur
SuperCard 4 est un programme parvenu à maturité, et maintenant enfin bien suivi par son nouvel éditeur, après une sorte de stagnation inquiétante. Il supporte les externes (Xcmd), qui sont des fonctions programmées en C permettant de pallier certains manques du programme lui-même. Mais il faudra attendre encore un peu pour pouvoir utiliser toutes les anciennes versions qui tournaient sur SuperCard 3.6. En effet, certaines externes ne sont pas encore carbonisées.
La documentation pourrait s'étoffer quelque peu. Les fichiers PDF sont de très bonne qualité (en particulier les tutoriaux, absolument indispensables pour prendre en mains le logiciel) mais certaines nouvelles fonctions ne sont pas forcément bien détaillées. Le guide du langage est quant à lui intégré au logiciel, mais pourrait lui aussi être un peu plus complet.
Mais comme toujours dans le domaine de la programmation, c'est sur le site lui-même que vous trouverez le plus de renseignements, notamment en vous inscrivant à la mailing list consacrée à ce programme.
Si vous y souscrivez, vous verrez votre BAL gonfler d'au moins 50 messages par jour, consistant principalement en questions des utilisateurs et réponses des techniciens ou de passionnés. J'ai personnellement eu besoin d'un renseignement que j'ai obtenu dans les deux heures par ce canal.
Programmez s'il vous plaît
Si vous désirez commencer à programmer, ce qui est à mon avis la plus jouissive des activités sur un ordinateur (mis à part écrire pour cuk.ch bien sûr… quoique…), SuperCard est une solution idéale, sachant que vous pourrez également aller très loin dans la complexité de vos applications. Travaillant sous HyperCard depuis huit ans, j'ai converti deux programmes créés sous "l'ancêtre" dans SuperCard et maintenant que le programme est carbonisé, je ne le regrette pas.
Si vous désirez débuter en programmation, vous pouvez également chercherdu côté de RealBasic (que nous testerons prochainement sur ce site) ou Revolution, testé ici, qui lui est réellement multi-plateforme.
Néanmoins, SuperCard est plus simple d'approche, ne serait-ce que par son langage qui n'a rien d'inhumain, et plus fidèle à l'interface Macintosh.
Son prix n'est pas trop élevé non plus, puisqu'il vous faudra débourser pour son achat 279$ en version développeur (comprenant entre autres choses SuperEdit) ou 179$ si vous préférerez la version de base.
Notez que si vous avez acheté HyperCard en son temps, vous pouvez vous procurer SuperCard pour 149$ en version développeur. Ça vaut la peine non?
Ah, encore une toute petite chose: s'il vous plaît, ne me demandez pas comment fonctionne telle ou telle fonction. Je ne suis pas le service technique de SolutionEtcetera, l'éditeur de SuperCard et n'ai pas le temps de me consacrer en plus à la programmation des autres.
Merci de votre compréhension.