1 points par GN⁺ 2024-05-09 | 1 commentaires | Partager sur WhatsApp
  • Decker est une plateforme multimédia qui permet de créer et partager, dans un seul document, du son, des images, de l’hypertexte et des comportements scriptés, avec une utilisation directe dans le navigateur
  • Tout en conservant la sensibilité visuelle de HyperCard et du MacOS classique, Decker ajoute un historique d’annulation profond, la prise en charge de la molette de défilement et des écrans tactiles, une navigation clavier plus moderne et l’édition par lots
  • Il permet de créer des e-zines, des notes, des présentations, des jeux d’aventure ou des œuvres en pixel art 1 bit, et un deck terminé peut être enregistré sous forme de document .html autonome
  • Les projets complexes peuvent être étendus avec Lil, influencé par Lua et Q, tandis que les widgets, le partage via le presse-papiers et le format de document textuel facilitent la réutilisation et le contrôle de version
  • Outil open source gratuit sous licence MIT, sans publicité, télémétrie, gamification ni intégration de slop-generator, il propose son code source sur GitHub et des distributions binaires sur Itch.io

Création de documents interactifs dans l’esprit de HyperCard

  • Decker est une plateforme multimédia permettant de créer et partager des documents interactifs intégrant du son, des images, de l’hypertexte et des comportements scriptés
  • Il est possible de l’essayer immédiatement dans le navigateur web
  • Il reprend l’esthétique visuelle de HyperCard et du MacOS classique, tout en conservant la simplicité et la facilité d’apprentissage qui faisaient la force de HyperCard
  • Les améliorations d’ergonomie visent à préserver l’esprit des anciens outils de création à base de cartes, tout en les adaptant aux environnements d’entrée modernes
    • Historique d’annulation profond

      • prise en charge de la molette de défilement et des écrans tactiles
      • navigation clavier plus moderne
      • opérations d’édition par lots
      • l’éventail des créations possibles est large
      • e-zines
      • prise de notes
      • supports de présentation
      • jeux d’aventure
      • gribouillages en pixel art 1 bit
      • un deck terminé peut être enregistré comme document .html autonome s’exécutant directement dans un navigateur web, puis partagé partout où il est possible d’héberger ou d’intégrer une page web
      • Decker fonctionne aussi nativement sur MacOS, Windows, BSD et Linux

Lil, widgets et flux de développement textuel

  • Pour les projets complexes, il est possible d’utiliser le langage de script Lil
    • Lil est influencé par Lua, un langage impératif embarqué dans des outils et moteurs de jeu
    • Il est aussi influencé par Q, un langage fonctionnel de la famille APL utilisé avec les bases de données de séries temporelles
    • Tout en gardant une structure familière aux personnes ayant déjà une expérience en programmation, il inclut une arithmétique scalaire-vecteur implicite et un langage de requête intégré proche de SQL
  • Pour créer des interfaces, il est possible d’utiliser un ensemble intégré de widgets interactifs, et même de définir de nouveaux widgets
    • Les widgets et définitions personnalisés peuvent être copiés-collés via le presse-papiers système
    • Un widget personnalisé peut être partagé partout où du texte peut être enregistré ou partagé
    • Chaque deck peut servir de collection de composants réutilisables dans d’autres projets
  • En compilant depuis les sources, on obtient aussi Lilt, un interpréteur Lil autonome
    • Lilt peut lire, écrire, manipuler et exécuter sans interface des documents Decker
    • Il a moins de dépendances que Decker, ce qui permet de le compiler en exécutable APE multiplateforme
    • Il existe aussi un interpréteur Lil fonctionnant sur POSIX AWK
  • Les decks sont enregistrés dans un format texte orienté ligne, ce qui s’intègre bien avec les outils de gestion de source existants comme Git ou SVN
  • Decker n’intègre ni publicité, ni télémétrie, ni gamification, ni intégration de slop-generator, ni éléments portant atteinte à la vie privée ou à l’autonomie des utilisateurs

Decks d’exemple et bibliothèques d’extension

Source, distribution et communauté

  • Le code source navigable et le bug tracker sont disponibles sur GitHub
  • Decker est un logiciel open source gratuit sous licence MIT
  • Des versions binaires publiées régulièrement pour MacOS et Windows sont disponibles sur Itch.io
  • La page Itch propose un forum communautaire pour discuter de Decker et partager des projets créés avec Decker
  • Des « Game Jams » sur le thème de Decker ont lieu chaque année en juillet et en décembre ; le prochain événement prévu est Decker Fantasy Camp, July 2026

1 commentaires

 
GN⁺ 2024-05-09
Avis sur Hacker News
  • Magnifique ! Je comprends l’esthétique recherchée ici, mais en allant à peine plus loin que les graphismes 1 bit, vers des graphismes 2 bits, on pourrait sans doute obtenir des photos réellement lisibles
    Il y a un site que j’aime bien avec une esthétique similaire, où toutes les images utilisent au maximum 6 couleurs. En revanche, la palette varie d’une image à l’autre : https://solar.lowtechmagazine.com/

    • L’interface de Decker est principalement en noir et blanc, mais elle utilise en réalité une palette de 16 couleurs personnalisable
      Sur le forum de la communauté[0], il y a des discussions sur le dithering et l’importation de photos couleur, et des utilisateurs créent des projets[1] assez chouettes en exploitant la couleur
      [0]: https://itch.io/t/2668739/16-color-dithered
      [1]: https://crowmorbid.itch.io/desker-deckmonth
  • N’oubliez pas d’essayer par vous-même !
    https://www.beyondloom.com/decker/tour.html
    Ça m’a rappelé des souvenirs étonnamment doux ; je suis le seul ? Tout ce que je souhaiterais, c’est pouvoir faire un zoom par pincement sur mobile

    • Pour une raison quelconque, ça semble n’utiliser qu’environ 20 % de l’écran de l’iPhone
      C’est trop petit pour lire le texte, et le zoom par pincement est aussi bloqué, donc impossible de regarder de plus près
    • C’est peut-être un problème avec Firefox, ou bien je ne sais pas m’en servir, mais quand j’appuie sur New Card, je n’obtiens qu’un écran vide et je ne vois aucun moyen d’écrire ou de dessiner
  • Je respecte les choix de ce projet, mais j’ai le sentiment que le plus gros défaut d’HyperCard a été de ne pas avoir intégré la couleur au moment où le Mac commençait à l’adopter
    Quand j’étais au lycée, tous les Mac de l’école étaient des machines couleur, mais HyperCard n’a finalement jamais eu de vraie couleur native

    • C’est globalement aussi mon souvenir. HyperCard était extrêmement populaire, notamment comme outil pour initier les enfants à la programmation, mais quand la gamme des Mac Quadra a apporté la couleur, tout le monde voulait de la couleur
      HyperCard n’a jamais reçu de mise à jour avec couleur native, et c’était la fonctionnalité que tout le monde désirait le plus
      Il y avait un produit apparenté, il me semble que c’était SuperCard, qui proposait la couleur ; je l’ai essayé, mais c’était lourd. Je ne me souviens plus exactement pourquoi, mais il n’a jamais vraiment décollé
      L’API limitée d’HyperTalk posait aussi problème. Il existait un marché des extensions, et quelques développeurs l’ont dominé pendant un temps. Je me demande ce qu’est devenu J5erson. Il était vraiment brillant
      Les extensions étaient généralement écrites en Pascal et pouvaient ajouter beaucoup de fonctionnalités à HyperTalk, ce qui en faisait un bon tremplin pour ceux qui voulaient explorer la programmation au-delà d’HyperCard
      Decker semble reprendre beaucoup des qualités d’HyperCard, comme la simplicité et la portabilité. Je regrette toutefois un peu qu’il n’utilise pas un langage plus proche d’HyperTalk. Ce langage était vraiment bon à sa manière
  • Decker étant principalement en 1 bit, il ressemble à HyperCard au premier abord, mais en réalité il est suffisamment différent pour devoir être réappris de zéro
    Il est assez difficile à utiliser, il faut apprendre Lil, un langage nouveau et singulier, et il lui manque plusieurs commodités qu’on cherche quand on s’attend à HyperCard ou MacPaint
    Au final, les artistes HyperCard ont du mal à faire la transition et, grâce à Infinite Mac, ils continuent d’utiliser HyperCard dans le navigateur. C’est à la fois très proche et très éloigné. Semblable, mais différent

    • Si le langage est le plus important, https://livecode.com/ propose un langage très proche d’HyperTalk et fonctionne aussi sur du matériel moderne
    • Ce n’est pas exactement comme à l’époque, mais HyperCard dans le navigateur est possible sur https://hypercardsimulator.com
  • À l’école, il y avait un LaserDisc de la NASA rempli d’informations sur les navettes
    Il était connecté à un Mac exécutant HyperCard pour la navigation et l’affichage des informations ; c’était plutôt génial, mais je crois qu’à l’époque je ne l’appréciais pas vraiment à sa juste valeur

    • Je me souviens de choses comme ça ! Je n’ai pas vu celui-là, mais il circulait clairement des piles HyperCard qui ressemblaient à de mini-bases de données de trucs sympas avec des images
      Ça faisait penser à du multimédia primitif, avant le boom du multimédia des années 90 :-)
  • Je ne comprends pas pourquoi Apple ou Microsoft ne créent pas davantage, au niveau du système d’exploitation, ce genre d’outils pour les développeurs occasionnels
    VB et Python sont bien aussi, mais parfois on a besoin d’un outil vraiment conçu sur mesure pour créer de petites applications

    • Apple a bien Swift Playgrounds
      Et SwiftUI est aussi simple que possible
      Mais utiliser Xcode et aller jusqu’à la configuration pour l’App Store exige encore une configuration obscure et une certaine compréhension de l’IDE Xcode :-)
  • Beaucoup d’affection pour HyperCard
    Je ne l’ai pas connu directement, mais j’ai l’impression qu’il a permis aux gens de créer beaucoup de petits outils utiles. En matière de polyvalence, c’était un peu comme un tableur, mais avec des usages différents
    Je me demande quels outils modernes procurent ce même sentiment à ceux qui ont connu cette époque
    Je suis d’une génération un peu plus jeune, donc j’ai plutôt de la nostalgie pour des outils comme Delphi/VB ou Macromedia Flash. Ils n’étaient pas parfaits, mais ils stimulaient la créativité
    Les outils d’aujourd’hui sont bien meilleurs, mais j’ai l’impression qu’on a perdu quelque chose en chemin

    • Flash s’en rapprochait pas mal, mais il était trop complexe et trop cher pour l’utilisateur moyen. HyperCard était gratuit au départ, mais n’était pas fourni avec la gamme de Mac Performa
      HTML a repris beaucoup de ce qu’HyperCard offrait, mais les outils de création web ne sont finalement jamais devenus aussi faciles, et ils n’offraient pas non plus l’une des caractéristiques d’HyperCard : une apparence et une ergonomie d’interface cohérentes. Cela pouvait être un avantage comme un inconvénient, mais certains utilisateurs aimaient le fait de pouvoir créer un flipbook en ajoutant simplement deux boutons précédent/suivant à une page
      Certaines personnes ont même lancé des activités consistant à regrouper du matériel pédagogique sous forme de piles HyperCard et à les vendre
      Le langage de programmation HyperTalk n’était pas excellent ; c’était le genre de langage que les hippies appréciaient, mais l’utilisateur moyen s’y perdait tout autant qu’en voyant du C ou du Pascal
      J’ai toujours eu l’impression qu’Apple essayait de contrôler excessivement ce qu’on pouvait en faire. C’était l’inverse de ce que j’attends d’un langage de programmation et des outils qui l’entourent
      Si vous voulez savoir à quoi cela ressemblait, essayez de coder quelque chose en AppleScript
    • Je suis aussi d’une autre génération, et je me demande ce qui faisait la singularité d’HyperCard
      Je me souviens des outils VB et Macromedia, et j’ai l’impression que les outils actuels sont plus difficiles à utiliser
    • Flash était un excellent outil pour créer rapidement quelque chose et le distribuer à un large public ; comme il était basé sur le navigateur et multiplateforme, il a, à bien des égards, mieux réalisé cette promesse qu’HyperCard à l’époque
      Ce qui est regrettable, en revanche, c’est qu’il a créé un grand fossé entre les créateurs de Flash et les consommateurs de Flash. Un tinkerer motivé pouvait toujours décompiler un .swf et le modifier, mais on était loin du modèle d’HyperCard, qui donnait des outils d’édition à tous les utilisateurs et faisait de chaque pile un ensemble de composants réutilisables
      Decker peut exporter des decks autonomes « verrouillés » qui masquent l’éditeur, mais le processus pour le réactiver est trivial. J’ai même vu un cas conçu pour se « déverrouiller » tout seul une fois le jeu terminé, et je trouve que c’est une récompense assez chouette
    • Vu à quel point il était aimé, je me demande aussi pourquoi HyperCard a disparu et pourquoi rien de similaire n’a pris sa place
    • Si l’on se concentre uniquement sur l’aspect « permettre de créer beaucoup de petits outils utiles », ce qui s’en rapproche le plus aujourd’hui me semble être le moteur de « jeu » Godot : https://godotengine.org
      À bien des égards, il ne correspond pas exactement à HyperCard, mais c’est un candidat particulièrement solide dans trois domaines liés. Le téléchargement initial est petit (<100 Mo), les temps de chargement/exécution sont courts, et il prend en charge un flux de développement itératif et bidouillable, bien adapté aux premières phases exploratoires où l’on cherche à créer « quelque chose qui marche ». GDScript convient très bien à cela, et avec des ajouts récents comme le typage progressif, sa robustesse s’améliore aussi avec le temps
      Le mode de distribution/installation de Godot est également très solide. Sur ce point, je pense qu’il a des années-lumière d’avance sur n’importe quel autre écosystème[0]. Il suffit de télécharger les modèles d’export pour les plateformes à prendre en charge — c’est-à-dire des exécutables binaires génériques propres à chaque plateforme — puis de packager et d’exporter le code et les ressources propres au projet[1]
      Là où Godot est aujourd’hui, de manière assez surprenante, le plus en retrait par rapport à HyperCard ou au Visual Basic « classique », c’est dans la création d’UI par glisser-déposer. Godot dispose d’un système d’UI assez puissant, mais il peut parfois être opaque, et l’expérience actuelle de création d’UI vous oblige à être très conscient de l’arborescence des nœuds de la scène, plutôt que de simplement faire glisser des widgets depuis une barre d’outils vers une fenêtre
      Cette expérience utilisateur semble pouvoir être améliorée assez facilement avec un Editor Plugin, et je finirai peut-être un jour par prototyper quelque chose dans ce terrier :)
      Ce n’est pas une solution parfaite, mais c’est clairement mon choix par défaut aujourd’hui quand je crée des utilitaires avec une interface graphique. Certains d’entre eux ont même été suffisamment terminés pour être réellement « publiés » :D
      [0] Sur ce point, Python s’effondre particulièrement lamentablement
      [1] L’export WASM pour le web est aussi possible, ce qui permet une distribution en deux volets : les gens peuvent d’abord essayer l’utilitaire en version web, puis télécharger aussi l’exécutable local s’il leur paraît suffisamment utile
  • J’aime beaucoup Decker, et c’est vraiment très amusant
    Si vous cherchez du scripting HyperTalk, Wyldcard pourrait aussi vous plaire
    https://github.com/defano/wyldcard

  • J’ai commencé à creuser Decker après qu’il a été mentionné la semaine dernière dans une discussion sur les remplaçants d’HyperCard
    Le packaging des decks m’intrigue vraiment. J’aime bien l’approche de Redbean, où tout tient dans un seul fichier avec Lua, SQLite, etc., qu’on peut ouvrir avec un outil zip pour y mettre du HTML et du code Lua, puis simplement renommer pour que ce soit prêt à distribuer
    Je me demande si Decker envisage ce genre d’approche pour faciliter la distribution