Decker : une recréation de HyperCard utilisant des graphismes 1 bit
(beyondloom.com)Présentation de la plateforme multimédia Decker
- Decker est une plateforme multimédia permettant de créer et de partager des documents interactifs intégrant du son, des images, de l’hypertexte et des comportements scriptés
- Il peut être utilisé directement dans un navigateur web
- Il s’appuie sur l’héritage de HyperCard et l’esthétique visuelle du MacOS classique
- Tout en conservant la simplicité et la facilité d’apprentissage offertes par HyperCard, il ajoute de nombreuses améliorations d’ergonomie, discrètes ou évidentes, comme un historique d’annulation approfondi, la prise en charge de la molette de défilement et des écrans tactiles, une navigation au clavier plus moderne et des opérations d’édition en masse
Ce qu’on peut faire avec Decker
- Tout le monde peut utiliser Decker pour créer des e-zines, organiser des notes, faire des présentations, concevoir des jeux d’aventure ou gribouiller du pixel art 1 bit
- Son esthétique globale « ditherpunk » est chaleureuse, légèrement nostalgique, amusante et impose des contraintes créatives originales
- En tant qu’outil de prototypage, Decker encourage à esquisser et à assumer une approche inachevée
- Les decks terminés sont enregistrés sous forme de documents
.htmlautonomes qui s’exécutent eux-mêmes dans un navigateur web et peuvent être partagés partout où l’on peut héberger ou intégrer une page web - Decker s’exécute aussi nativement sur MacOS, Windows et Linux
Présentation de Lil, le langage de script
- Pour les projets plus complexes, Decker propose un nouveau langage de script appelé Lil
- Lil est fortement influencé par Lua, un langage impératif largement utilisé pour l’intégration dans des outils et moteurs de jeu, ainsi que par Q, un langage fonctionnel de la famille APL utilisé avec des bases de données de séries temporelles
- Lil est facile à apprendre et reste suffisamment proche des conventions existantes pour ne pas dérouter les personnes ayant déjà une expérience en programmation, tout en incluant aussi d’agréables surprises comme l’arithmétique scalaire-vecteur implicite et un langage de requête intégré proche de SQL
- Quelques lignes de Lil suffisent déjà à accomplir beaucoup de choses
Les différentes fonctionnalités de Decker
- Decker fournit des widgets interactifs intégrés pour construire des interfaces, ainsi que la possibilité de définir de nouveaux widgets
- Les widgets personnalisés et leurs définitions peuvent être copiés et collés via le presse-papiers système, puis partagés partout où il est possible de partager ou d’enregistrer du texte
- Chaque deck est une boîte à outils de composants réutilisables pouvant servir dans d’autres projets
- Decker est convivial en ligne de commande. Lorsqu’il est compilé depuis les sources, il est fourni avec Lilt, l’interpréteur autonome de Lil, qui permet de lire, écrire, manipuler et même exécuter des documents Decker en mode « headless »
- Comme Lilt a bien moins de dépendances que Decker lui-même, il peut être compilé en APE exécutable multiplateforme, ce qui permet d’écrire des scripts shell exécutables partout
- Il existe aussi un interpréteur Lil fonctionnant en POSIX AWK
- Les decks sont enregistrés dans un format texte orienté lignes qui s’interopère bien avec les outils de contrôle de version classiques comme Git et SVN
Exemples d’utilisation et modules Decker
- La section « Examples » présente divers projets d’exemple utilisant Decker
- Visite guidée de Decker, 5GUIs, interpréteur CHIP-8, tout sur Draggable, tout sur le son, ainsi que le jeu de puzzle Sokoban, entre autres
- La section « Modules » présente différents modules d’extension pour Decker
- Plot : des graphiques simples pour Decker
- Zazz : une aide à l’animation pour Decker
- Ease : des fonctions d’easing pour Decker
- Dialogizer : un module de visual novel pour Decker
- Puppeteer : de l’animation de sprites de visual novel pour Decker
Documentation et ressources supplémentaires
- Divers documents sont proposés, dont le manuel de référence de Decker, le format de document Decker et le langage de programmation Lil
- Des ressources d’apprentissage pour Lil sont aussi disponibles, comme apprendre Lil en 10 minutes, le terrain de jeu Lil et une carte de référence rapide Lil
- Le code source et le bug tracker sont disponibles sur GitHub
- Decker est libre et open source sous licence MIT
- Des versions binaires publiées périodiquement pour MacOS et Windows sont disponibles sur Itch.io
- La page Itch comprend aussi un forum communautaire où discuter de Decker et partager des projets créés avec lui
L’avis de GN⁺
-
L’implémentation de Decker en POSIX AWK est une tentative particulièrement intéressante. AWK est un langage de script spécialisé dans le traitement de texte, et il semble constituer une bonne base pour implémenter un langage de script comme Lil. Le choix d’AWK a probablement aussi facilité la portabilité et l’exécution sur de nombreuses plateformes.
-
Le choix d’un format de stockage en texte ligne par ligne pour Decker semble particulièrement judicieux. Les formats textuels sont très compatibles avec les VCS comme Git, ce qui facilite la gestion de versions et permet aussi de suivre les modifications via diff. Les formats binaires ont l’inconvénient d’être fragiles et plus difficiles à versionner.
-
La philosophie de conception de Lil est intéressante. Le langage est présenté comme influencé par Lua et Q : Lua est largement utilisé pour le scripting de jeux, tandis que Q est un langage de la famille APL spécialisé dans les requêtes de base de données. Lil semble combiner les atouts de ces deux mondes pour se doter de caractéristiques bien à lui. En particulier, les opérations scalaire-vecteur ou la syntaxe de requête intégrée sont des fonctionnalités rarement vues dans les langages existants.
-
Le champ d’application semble très large : e-zines, notes, présentations, jeux d’aventure, pixel art, etc. On a l’impression qu’il peut être utilisé aussi bien pour des applications complexes que pour des documents simples. Cela dit, à force d’être aussi généraliste, il pourrait manquer de certaines fonctions par rapport à des outils spécialisés dans chaque domaine.
-
L’interface dans le style du Mac OS classique peut plaire, mais elle risque aussi de sembler trop rétro pour des utilisateurs modernes. Il serait peut-être intéressant de proposer également des thèmes plus contemporains via un système de skins. Pour les utilisateurs de Windows ou Linux, l’interface pourrait aussi sembler peu familière.
1 commentaires
Avis Hacker News
En passant légèrement d'un graphisme 1-bit à 2-bit, la lisibilité des photos peut être fortement améliorée. Par exemple, solar.lowtechmagazine.com utilise jusqu'à 6 couleurs pour obtenir une esthétique remarquable.
Réflexion sur le packaging de Decker. Quelqu'un se demande s'il envisage une approche à la Redbean : regrouper Lua, SQLite, etc. dans un seul fichier, le décompresser comme un zip, y placer du code HTML et Lua, puis le distribuer après en avoir simplement changé le nom.
Decker a déjà été présenté plusieurs fois sur HN. Il y a 3 mois : 191 points et 36 commentaires. Il y a 2 ans : 215 points et 88 commentaires.
Recommandation de tester Decker soi-même. Un lien vers le site de démonstration est fourni.
Quelqu'un estime que Decker lui rappelle de doux souvenirs d'enfance. Il lui manquerait juste le zoom par pincement sur mobile.
Le plus gros défaut d'HyperCard était de ne pas avoir pris en charge la couleur lorsque le Mac l'a adoptée. Au lycée, tous les Mac de l'école étaient en couleur, mais HyperCard ne l'était pas.
Souvenir d'avoir utilisé à l'école un système de navigation d'informations sur la navette, réalisé en HyperCard avec un laserdisc de la NASA. Sur le moment, cela n'avait pas provoqué un grand émerveillement, mais c'était une expérience marquante.
Decker peut sembler proche d'HyperCard par son graphisme 1-bit, mais son utilisation est assez différente. Il faut apprendre le langage particulier "Lil", et beaucoup de fonctions pratiques d'HyperCard/MacPaint sont absentes, ce qui peut le rendre différent de ce qu'on attend. Les artistes HyperCard peuvent continuer à utiliser HyperCard dans le navigateur grâce à Infinite Mac.
Avis selon lequel Decker est amusant. Recommandation également de Wyldcard, qui prend en charge le scripting HyperTalk.
Quelqu'un se demande pourquoi Apple ou MS ne font pas plus d'efforts pour créer ce type d'outils de développement occasionnels. VB et Python sont très bien, mais il serait appréciable d'avoir des outils optimisés pour créer de petites applications.
HyperCard suscite beaucoup d'affection. Même sans avoir connu cette époque, on a l'impression qu'il permettait de créer de petits outils utiles. Il semblait polyvalent d'une manière différente d'un tableur.
Quelqu'un demande quels outils modernes restituent cette sensibilité pour celles et ceux qui ont connu cette époque. Une génération un peu plus jeune éprouve de la nostalgie pour Delphi/VB et Flash : des outils imparfaits, mais qui stimulaient la créativité.
Les outils se sont beaucoup améliorés, mais avec l'impression qu'on a perdu quelque chose en chemin.