Chronique numéro 1
En publiant son livre “Cooking with HyperCard” en 1994 William D. Milheim mettait l'accent sur les affinités que le développement de logiciels entretient avec la cuisine.
Ceux qui ont regretté la disparition d’Hypercard découvriront LiveCode avec bonheur. Renouant avec le prix libre pour sa version open source, LiveCode reprend les principes d'Hypercard et permet de développer des applications pour OS9, OSX, Windows, Linux, iOS, Androïd et Internet.
Un langage proche de l'anglais naturel, des outils d’aide à la programmation, une documentation accessible et un collectif de développeuses et de développeurs actifs et généreux en font un outils particulièrement adapté à la mutualisation du développement, à une pratique de pédagogie du chef-d’oeuvre et à l’apprentissage de la programmation. Autant de qualités qui en font un outils particulièrement adapté au domaine de l'éducation.
La recette ou l’idée de départ
Tout commence par l’idée d’un scénario d’activité et la description de ce qui devrait se passer sur l’écran en fonction des messages envoyés par l’utilisateur à chaque fois qu’il modifie le contexte (mouvements de souris, clics, passage de la souris sur un objet, etc...) ou en fonction du temps qui passe. Ces messages peuvent être interceptés par des scripts qui peuvent « en faire quelque chose ».
Faire son marché
Un document LiveCode est une pile (stack) de cartes contenant des objets (champs de texte, boutons, images, graphiques, vidéos). Une pile peut être accompagnée de sous-piles faites elles-même de cartes.
Apprêter les ingrédients de la recette
Chaque objet dispose de ses propriétés (nom, dimensions, position, couleur, contenus etc...). Ces propriétés peuvent être modifiées avec les outils de développement ou par des scripts.
Mitonner une sauce avec des scripts
Lier le tout avec une sauce qui assure les liens entre les ingrédients et prend en compte les évènements produits par l'utilisateur. Cette sauce est constituée de scripts. Chaque objet peut contenir un script ou faire appel à d'autres scripts.
Dans l'exemple suivant il s'agit d'afficher « un cheval » dans un champs de texte nommé «fUnNom» lorsque l'on clique sur l'image « un cheval »
Dans premier temps et pour se convaindre que cela fonctionne on pourra écrire
on mouseUp
put « un cheval » into fld « fMonNom »
end mouseUp
On pourra ensuite utiliser le nom de l'image (the short name of the target)
on mouseUp
put the short name of the target into fld « fMonNom »
end mouseUps
Ou mieux encore.
Envoyer un court message qui sera intercepté par un script de carte de manière à ce que toutes les images qui utilisent ce script affichent leur nom dans le champs de texte « fMonNom « Lorsque le bouton de la souris est relâché sur l'image « un cheval » le programme envoie le message «MontreMonNom ».
Script de l'image « un cheval »
on mouseUp
MontreMonNom – le message MontreMonNom est envoyé
end mouseUp
MontreMonNom est intercepté par le script de la carte, situé plus haut dans la hiérarchie, et affiche « Un cheval » dans le champs de texte « fMonNom » et cela fonctionnera aussi pour l'Image « une maison ».
Script de la carte
on MontreMonNom
put the short name of the target into fld "fUnNom"
end MontreMonNom
Un langage accessible
Hormis le fait qu'il ne « parle » pas français, LiveCode utilise un langage qui permet d'expérimenter rapidement. La mise en pratique de la devise « ne pas faire confiance, toujours goûter» s'effectue ici à moindre coût. L'apprenti programmeur n'est pas contraint de passer par une fastidieuse compilation pour tester sa création. Le test se fait en direct et l'utilisateur est informé de la nature d'une erreur éventuelle et de sa localisation.
L'exemple suivant est emprunté au Laboratory Schools de l'université de Chicago.
Il s'agit ici de supprimer le dernier caractère d'une variable dans laquelle on a écrit le texte «ABCD» de manière à obtenir «ABC».
La version LiveCode est tout de même plus facile à se représenter :
put «ABCD» into var
delete char -1 of var
Que la version en Javascript dont voici l'équivalent :
var = «ABCD»
var = var.substring(0, var.length()-1);
Le stack, un document adapté à la mutualisation du développement
Un stack LiveCode est un document, il s'ouvre et peut être modifié sur d'autres systèmes d'exploitation lorsqu'une version libre ou payante de LiveCode est installée. Un stack peut faire appel à d'autres stacks et ainsi faciliter le développement en collectif.
Du document à l'application (OS X, Windows, Linux, iOS et Androïd)
Toutes les versions de LiveCode permettent de compiler un stack pour en faire une application autonome, sauf pour iOS qui nécessite une version payante.
L'application reste identique à la version compilée. Toutes les données variables doivent être stockées dans un dossier autorisé en lecture et écriture. Ces données sont importées lorsque c'est nécessaire pour être utilisées par le programme jusqu'au moment ou l'utilisateur quitte l'application.
Pour conclure cette présentation, nous vous invitons à télécharger LiveCode et à cuisiner vos propres outils, à vous affranchir des formats propriétaires et à participer aux activités de la communauté des développeurs LiveCode.
Quelques liens
Télécharger LiveCode: https://livecode.com/
Deux articles détaillés sur LiveCode par des pionniers du numérique
aaa.on-rev.com/documents/livecode/LiveCode.pdf
aaa.on-rev.com/documents/livecode/LiveCode2Edition.pdf
Forum LiveCode
Le forum anglophone est le plus pertinent. Fiable, réactif et le plus partageux: LiveCode Forums • Index page
Un nouveau forum francophone dans le cadre d'un réseau local pour favoriser les échanges de proximité Groupe Forum LiveCode de Rezolocal.com
Il y a aussi un forum francophone. Peu actif: Forum LiveCode Français qui offre tout ce dont nous avons besoin mais qui demeure peu actif.