|
|||||||||||||||||||||||||||||||||||||||||||||
|
J'ai récemment entendu l'un de mes philosophes préférés dire que la partie la plus difficile de l'écriture de son dernier livre a été de décider de ce qu'il fallait laisser de côté, et non de ce qu'il fallait y mettre. C'est ce que je ressens lorsque j'écris un article comparatif tel que celui-ci. CanDo et Helm sont tous deux si riches en fonctionnalités qu'il est impossible de tout comparer dans l'espace limité d'un article de magazine. En gardant cela à l'esprit, permettez-moi d'aller de l'avant avec la comparaison. Je vais parler de CanDo 2.51 d'INOVAtronics et de Helm 1.37 d'Eagle Tree Software. Installation CanDo et Helm sont extrêmement faciles à installer. Les deux utilisent le programme Installer de Commodore. Comme je l'ai mentionné dans mon test de CanDo 2.51, ce logiciel ne laisse pas beaucoup de choix à l'utilisateur pendant l'installation. Helm, par contre, permet une variété de choix. Par exemple, l'utilisateur peut sélectionner les programmes d'exemple à installer et décider d'écraser ou non une bibliothèque partagée existante. Paradigmes CanDo utilise le paradigme du deck. Un deck est un programme CanDo qui consiste en une ou plusieurs cartes. Une carte est essentiellement une fenêtre contenant divers objets qui constituent l'interface utilisateur. Chaque carte et ses objets reconnaissent certains événements tels que les clics de bouton de souris. Lorsqu'un événement se produit, un script peut être exécuté. Cela donne au programme sa fonctionnalité. Helm utilise le paradigme du livre. Un livre est un programme Helm qui se compose de formulaires et de pages. Comme les cartes dans CanDo, les formulaires et les pages sont des fenêtres contenant divers objets qui constituent l'interface utilisateur. Les formulaires sont un élément puissant de Helm. Si vous avez besoin de plusieurs pages contenant des objets communs, mais aussi des objets différents, les formulaires sont la solution. On peut concevoir un formulaire qui contient les objets communs, puis créer plusieurs pages qui héritent chacune des objets du formulaire. Des objets supplémentaires peuvent être ajoutés aux pages individuelles pour compléter l'interface. Si ces pages ont toutes besoin d'un nouvel objet plus tard, il suffit de l'ajouter au formulaire pour qu'il apparaisse automatiquement sur toutes les pages filles. Il s'agit d'une approche orientée objet pour construire l'interface utilisateur. Pour simuler cela dans CanDo, on peut créer une carte contenant les objets communs. Cette carte peut être copiée plusieurs fois et des objets supplémentaires peuvent être ajoutés aux copies. Si un nouvel objet est nécessaire ultérieurement, il doit être ajouté à une carte, puis copié sur toutes les autres cartes. Comme pour CanDo, les objets de Helm peuvent réagir à certains événements. Cependant, dans Helm, il y a deux façons de répondre à un événement. La première consiste à utiliser un script. Une autre consiste à créer une liste d'actions. Les actions sont essentiellement des scripts pré-écrits qui exécutent des tâches courantes et peuvent être séquencées de manière interactive à l'aide de la souris (nous y reviendrons plus tard). Interfaces CanDo démarre un nouveau deck avec une carte vierge. Les outils permettant d'ajouter des objets d'interface à la carte se trouvent sur le panneau de configuration principal, qui se trouve sur un écran séparé qui recouvre partiellement la carte, comme le montre la figure 1 : ![]() Figure 1 - L'interface de CanDo 2.51 ![]() Figure 2 - L'interface de Helm 1.37 avec les outils ![]() Figure 3 - L'étagère de Helm CanDo et Helm ont tous deux de nombreux objets similaires qui peuvent être ajoutés à une carte ou à une page. Il s'agit notamment de boutons, de champs de saisie de texte, de minuteries, de menus, de listes, etc. Cependant, certains objets ne sont disponibles que dans l'un ou l'autre cas. Helm dispose d'un objet graphique qui permet de visualiser les données sous plusieurs formats, tels que barre, dispersion, tarte, ligne et zone. Il dispose également de nombreux objets sélectionneurs différents. Certains d'entre eux sont le calendrier, la case à cocher, l'horloge, le cycle (un vrai bouton rotatif avec un menu contextuel via le bouton droit de la souris), le curseur d'élément, la matrice, le choix multiple, la palette, le menu contextuel et la boîte radio. D'autres sont disponibles dans CanDo, mais pas autant que dans Helm. CanDo possède quelques objets que Helm ne possède pas. Il possède un objet "KeyInput" qui vous permet de piéger certaines combinaisons de touches et d'exécuter des scripts. CanDo possède également un objet "Animation" et un objet "Sound". Le premier permet d'exécuter des scripts à des moments définis par l'utilisateur pendant la lecture d'une brosse animée (BrushANIM). Le second permet d'exécuter des scripts lorsqu'un son 8SVX commence à être joué et un autre quand il se termine. Helm répond à plusieurs des reproches que j'ai formulés à propos de CanDo. Tout d'abord, les objets peuvent être sélectionnés, dimensionnés et déplacés en cliquant simplement sur l'objet et en faisant glisser la souris. C'est un véritable gain de temps lors de la réorganisation d'une interface utilisateur. Deuxièmement, le texte des étiquettes peut faire partie d'un objet plutôt que d'avoir à écrire un script pour ajouter le texte. Cela signifie que lorsqu'un objet est déplacé sur la page, le texte de son étiquette le suit. Plus besoin de modifier un script pour le positionner correctement. Troisièmement, Helm a des objets de forme. Des lignes, des courbes, des ovales, des triangles, des rectangles, des polygones et des flèches peuvent être ajoutés à l'écran en les dessinant. Comme dans un programme de dessin structuré, ces objets peuvent être déplacés et dimensionnés facilement à l'aide de la souris. Vous pouvez dessiner diverses formes à l'écran avec CanDo, mais celui-ci crée un script plutôt qu'un objet modifiable. Avec cette méthode, une forme ne peut être modifiée qu'en éditant le script ou en le supprimant et en recommençant. Quatrièmement, Helm permet de sélectionner et de regrouper plusieurs objets. Ils peuvent être dégroupés ultérieurement si nécessaire. De même, plusieurs objets peuvent être enregistrés sur le disque en tant qu'objets personnalisés, puis chargés dans un autre livre avec facilité. Une chose que je n'aime pas dans Helm est que ses champs d'entrée de texte ne sont pas standard Amiga alors que ceux de CanDo le sont. Le texte dans le champ ne peut pas être effacé en utilisant la combinaison de touches "Amiga Droite+X". Il faut plutôt sélectionner le texte avec la souris et l'effacer, ou l'effacer avec la touche d'espacement arrière ou de suppression. Traitement des événements CanDo et Helm peuvent tous deux détecter et répondre à un certain nombre d'événements d'objets dans un programme. En général, Helm gère un peu plus d'événements que CanDo. Par exemple, Helm peut détecter un clic du bouton droit de la souris ("MenuDown" ou "MenuUp") pour certains objets. CanDo peut détecter un événement de clic du bouton droit par le biais de son objet "RightMouseButton", mais il est générique à l'ensemble de la carte plutôt que spécifique à un objet. Cependant, CanDo peut détecter un événement "Drag" ; Helm ne le peut pas. Comme mentionné précédemment, Helm peut répondre à un événement d'objet de deux manières. Des actions peuvent être exécutées ou un script peut être exécuté. Les actions sont des routines intégrées qui peuvent être sélectionnées avec la souris, comme le montre la figure 4 : ![]() Figure 4 - Requête action catalogue dans Helm CanDo et Helm ont chacun un très grand nombre de commandes et de fonctions qui peuvent être utilisées dans des scripts. Elles gèrent des éléments tels que la manipulation de nombres et de chaînes de caractères, les entrées/sorties, les graphismes, le son, la musique, etc. CanDo adopte une approche standard de la programmation d'un script. Helm, cependant, permet à la fois une approche standard et non standard de la programmation d'un script. Par exemple, si vous vouliez assigner une valeur de 12 à la variable "MyVar" dans CanDo, vous entreriez :
Dans Helm, vous pourriez entrer l'une des valeurs suivantes :
Helm introduit également le concept de conteneur. Un conteneur est comme une variable, sauf qu'il peut contenir bien plus que les chiffres et le texte standard. Les conteneurs peuvent contenir tout type d'objet géré par Helm, comme des boutons, des champs d'image, des champs de texte, des menus déroulants, etc. Les propriétés de l'objet d'un conteneur peuvent être modifiées avec la commande "Set" et obtenues avec la commande "Get". Il s'agit d'un moyen très puissant et cohérent de manipuler les données d'un objet. Les éditeurs de scripts de CanDo et de Helm sont très similaires en ce sens qu'ils gèrent le couper-coller, la recherche et le remplacement, ainsi que d'autres tâches courantes des éditeurs. CanDo utilise un script distinct pour chaque événement qu'un objet peut gérer. Ainsi, si un bouton reconnaît à la fois un événement "Click" et un événement "DoubleClick", le traitement de chaque événement se trouve dans un script distinct. Les objets Helm n'ont qu'un seul script contenant toutes les routines de traitement des événements. CanDo dispose d'outils d'édition sur le côté droit de la fenêtre de l'éditeur (figure 5). Ces outils sont utiles pour insérer les noms des fichiers ou pour que CanDo écrive de petits scripts plutôt que de les taper. D'autres tâches peuvent également être traitées via les outils de l'éditeur. Helm ne dispose pas d'une fonctionnalité équivalente. ![]() Figure 5 - Éditeur de script dans Cando avec les outils d'édition Graphismes CanDo et Helm gèrent tous deux les nouveaux modes graphiques AGA. De plus, comme vous pouvez vous y attendre, CanDo et Helm gèrent les fichiers image IFF ILBM, les brosses, les animations ANIM-5 et les animations AnimBrush. Helm gère directement tous ces formats ; CanDo gère directement tous les formats sauf le format ANIM-5. Avec CanDo, les fichiers ANIM-5 doivent être lus à l'aide d'un utilitaire inclus nommé AnimPlayer. Comme mentionné précédemment, CanDo dispose d'un objet qui permet de synchroniser des scripts avec une brosse animée. AnimPlayer permet la synchronisation via le passage de messages ARexx. Helm possède un programme de dessin intégré. Il n'est pas aussi puissant qu'un logiciel tel que Deluxe Paint 4, mais il possède tous les outils de base attendus dans un programme de dessin. Des outils de manipulation d'images sont également disponibles. Tous ces outils peuvent être utilisés dans une application. Helm permet de nombreux effets de transition différents entre les pages. Il s'agit notamment d'effets d'essuyage, de défilement, de glissement, de dissolution, de transition vénitienne, etc. La zone d'effet peut inclure la page entière ou une zone plus petite définie par l'utilisateur. Aucun de ces outils n'est disponible dans CanDo. Son et musique CanDo et Helm gèrent tous deux les fichiers son 8SVX. Comme mentionné précédemment, CanDo dispose d'un objet qui permet de synchroniser les scripts avec le début et la fin de la lecture d'un son. CanDo gère les fichiers musicaux MED, OctaMED, Sound/Noise/ProTracker et Oktalizer mais pas les fichiers SMUS. Helm gère les fichiers SMUS et rien d'autre. Cependant, Helm possède son propre lecteur de notes interne. Dans un livre, une série de notes, désignées par des lettres de l'alphabet, peut être jouée. Des codes incorporés peuvent être utilisés pour régler le volume, le canal, le canal MIDI, la durée de la note, etc. Cela peut être très utile pour les partitions musicales courtes à piste unique. Narration Helm propose la gestion directe pour le narrateur. Cependant, comme vous le savez probablement, la bibliothèque partagée translator, qui traduisait le texte ASCII en phonèmes, et le périphérique logique narrator, qui transformait les phonèmes en parole, ne sont plus distribués avec AmigaOS. Ils ont été inclus pour la dernière fois dans AmigaOS 2.04. Si vous possédez les disquettes de cette ancienne version, vous pouvez les copier sur votre disquette système actuelle et les utiliser avec Helm. De nombreux paramètres du son de la parole peuvent être ajustés via une requête comme le montre la figure 6. De même, la narration peut être synchronisée avec la lecture d'une animation. ![]() Figure 6 - La requête du narrateur dans Helm Hypertexte Helm gère l'hypertexte. Le texte d'un champ de texte peut être sélectionné et un attribut peut être défini comme hypertexte, de la même façon qu'il peut être défini en gras ou italique. Des actions ou un script peuvent alors être attachés à un événement "SelectUp" ou "SelectDown". L'utilisateur peut choisir l'apparence de l'hypertexte. CanDo ne gère pas l'hypertexte. Je crois qu'il pourrait être simulé, mais je ne voudrais pas être celui qui le tente. AmigaGuide CanDo et Helm utilisent AmigaGuide à la fois pour leurs propres systèmes d'aide internes et pour les programmes des utilisateurs. Helm permet d'afficher les fichiers AmigaGuide à partir d'une action ou d'un script. Gestion du système CanDo dispose de plusieurs éléments de gestion d'AmigaDOS qui sont absent de Helm. Par exemple, CanDo gère les AppEvents. Cela permet de faire glisser des icônes vers une fenêtre d'application CanDo sur le Workbench. L'application reçoit une liste de noms d'icônes et peut répondre de manière appropriée. CanDo permet de charger, de manipuler et de sauvegarder des fichiers d'icônes (les fichiers se terminant par ".info"). Cela inclut la sauvegarde d'une liste de types d'outils. Des commandes sont disponibles pour permettre à une application d'obtenir la liste du périphérique actuel, la liste des répertoires, la liste des tampons et les messages de démarrage. Le pointeur peut être réglé sur une image différente et activé ou désactivé. De plus, CanDo utilise la requête de fichiers standard dans asl.library ; Helm ne le fait pas. Pour les programmeurs C, CanDo possède deux variables système qui contiennent l'adresse de l'écran courant et de la fenêtre courante. Manipulation des données CanDo gère les variables définies par l'utilisateur, les tableaux épars et les documents. Ceux-ci peuvent être combinés ensemble pour fournir un moyen pratique pour un utilisateur d'ajouter, de supprimer, de modifier, de charger et de sauvegarder des données. Helm adopte une approche totalement différente. Les données sont enregistrées automatiquement. Chaque fois qu'une page comportant des champs de saisie est remplie ou modifiée par l'utilisateur, les nouvelles données sont enregistrées dans le fichier du livre. Bien que cela soit extrêmement simple du point de vue du programmeur (il n'y a rien à faire), je ne suis pas encore sûr que cela me plaise. Par exemple, lorsque je teste un programme, j'aime entrer beaucoup de données erronées. Je ne sauvegarde presque jamais ces données, car ce ne sont pas des données réelles. Si je les enregistre, je crée un fichier corbeille qui peut être supprimé plus tard. Avec Helm, les données erronées vont directement dans le fichier livre. Pour revenir aux données réelles, il faut créer une copie du livre sans aucune donnée, ou supprimer les données erronées, page par page. Impression Helm possède des outils intégrés pour imprimer les données du livre sur une imprimante. Il permet de définir pratiquement toutes les préférences d'impression de l'utilisateur, tant pour le texte que pour les graphismes, à partir d'un livre (figure 7). Helm gère également la sortie Postscript. Des rapports personnalisés peuvent être conçus et imprimés. ![]() Figure 7 - La requête impression/graphismes dans Helm CanDo possède un utilitaire distinct appelé ThePrinter qui peut lire un deck CanDo et imprimer son contenu dans un fichier ou sur une imprimante (figure 8). L'impression contient des informations sur toutes les cartes et objets du deck, y compris les emplacements, le texte, les styles de texte, etc. ainsi qu'une liste de tous les scripts du deck. ![]() Figure 8 - Utilitaire ThePrinter dans CanDo Distribution Afin de distribuer un deck CanDo à une personne qui ne possède pas CanDo, une bibliothèque d'exécution est nécessaire. INOVAtronics en fournira une qui peut être distribuée gratuitement si le programme est domaine public ou partagiciel. Cependant, si le programme est un produit commercial, le développeur doit payer des frais de distribution. Les livres Helm peuvent être distribués sans frais, qu'ils soient commerciaux ou non. Un programme appelé HelmBrowser, qui est inclus dans Helm, permet à quiconque d'utiliser un livre Helm sans posséder Helm. HelmBrowser est librement distribuable. Puisque Helm permet à tous les outils du programme lui-même d'être disponibles pour l'utilisateur final (HelmBrowser n'inclut pas les outils de développement), il permet au programmeur de définir un niveau d'utilisateur. Chaque niveau restreint l'utilisateur de différentes manières. Cela permet au programmeur de donner à l'utilisateur juste assez de liberté pour utiliser le livre efficacement sans le dérégler. Conclusion Je pense que je vais m'arrêter là. J'espère que cela vous donne une idée des similitudes et des différences entre CanDo et Helm. Comme je l'ai dit au début de cet article, il n'a pas été possible de couvrir tous les aspects de ces programmes puisqu'ils ont tellement de fonctionnalités. Personnellement, j'aime les deux produits et j'ai l'intention de continuer à les utiliser, en choisissant celui qui est le plus approprié pour une application en fonction de leurs caractéristiques. Si vous êtes courageux, vous pouvez utiliser les deux produits dans une seule application, car ils gèrent tous deux ARexx. Si vous aimez développer des applications, vous devez avoir ces deux produits dans votre bibliothèque de logiciels. Helm peut être acheté pour moins de 100 $ et CanDo pour environ 130 $. Ce n'est pas trop cher payé pour ces puissants outils de création.
|