1 Punkte von GN⁺ 2024-05-09 | 1 Kommentare | Auf WhatsApp teilen
  • Decker ist eine Multimedia-Plattform zum Erstellen und Teilen von Dokumenten, die Sound, Bilder, Hypertext und geskriptete Aktionen in einem Dokument bündeln, und lässt sich direkt im Browser ausprobieren
  • Es bewahrt die visuelle Anmutung von HyperCard und classic MacOS und ergänzt sie um tiefgehendes Undo, Unterstützung für Scrollrad und Touchscreen, moderne Tastaturnavigation und Stapelbearbeitung
  • Damit lassen sich E-Zines, Notizen, Präsentationen, Adventure-Games und Arbeiten wie 1-Bit-Pixel-Art erstellen; fertige Decks können als eigenständige .html-Dokumente gespeichert werden
  • Komplexe Projekte lassen sich mit Lil erweitern, das von Lua und Q beeinflusst ist; Widgets, Clipboard-Sharing und ein textbasiertes Dokumentformat unterstützen Wiederverwendung und Versionsverwaltung
  • Ein kostenloses Open-Source-Tool unter MIT-Lizenz ohne Werbung, Telemetrie, Gamification oder slop-generator-Integration, mit Quellcode auf GitHub und Binärdistributionen über Itch.io

Interaktive Dokumente im Stil von HyperCard erstellen

  • Decker ist eine Multimedia-Plattform zum Erstellen und Teilen interaktiver Dokumente mit Sound, Bildern, Hypertext und geskripteten Aktionen
  • Es kann direkt im Webbrowser ausprobiert werden
  • Es führt die visuelle Ästhetik von HyperCard und classic MacOS fort und bewahrt zugleich die Einfachheit und leichte Erlernbarkeit, die HyperCard bot
  • Die Verbesserungen der Bedienbarkeit zielen darauf ab, das Gefühl älterer kartenbasierter Autorentools zu erhalten und es zugleich an moderne Eingabeumgebungen anzupassen
    • Tiefgehende Undo-Historie

      • Unterstützung für Scrollrad und Touchscreen
      • Modernere Tastaturnavigation
      • Stapelbearbeitung
      • Die möglichen Beispiele sind breit gefächert
      • E-Zines
      • Notizen organisieren
      • Präsentationen
      • Adventure-Games
      • 1-Bit-Pixel-Art-Kritzeleien
      • Ein fertiges Deck kann als eigenständig im Webbrowser laufendes .html-Dokument gespeichert werden und lässt sich überall dort teilen, wo Webseiten gehostet oder eingebettet werden können
      • Decker läuft auch nativ unter MacOS, Windows, BSD und Linux

Lil, Widgets und textbasierter Entwicklungsfluss

  • Für komplexe Projekte kann die Skriptsprache Lil verwendet werden
    • Lil ist von Lua beeinflusst, einer imperativen Sprache, die in Tools und Game-Engines eingebettet wird
    • Außerdem ist es von Q beeinflusst, einer funktionalen Sprache aus der APL-Familie, die zusammen mit Zeitreihendatenbanken eingesetzt wird
    • Es behält eine Struktur bei, die Nutzerinnen und Nutzern mit Programmiererfahrung vertraut ist, und enthält zugleich implizite Skalar-Vektor-Arithmetik sowie eine integrierte SQL-ähnliche Abfragesprache
  • Für den Interface-Bau steht eine eingebaute Sammlung interaktiver Widgets zur Verfügung; auch neue Widgets können definiert werden
    • Custom Widgets und Definitionen können über die System-Zwischenablage kopiert und eingefügt werden
    • Überall dort, wo Text geteilt oder gespeichert werden kann, lassen sich auch Custom Widgets teilen
    • Jedes Deck kann als Sammlung wiederverwendbarer Bausteine dienen, die in anderen Projekten eingesetzt werden können
  • Beim Build aus dem Quellcode wird Lilt, ein eigenständiger Lil-Interpreter, mitgeliefert
    • Lilt kann Decker-Dokumente lesen, schreiben, manipulieren und headless ausführen
    • Es hat weniger Abhängigkeiten als Decker und kann als plattformübergreifende APE-Executable kompiliert werden
    • Es gibt auch einen Lil-Interpreter, der in POSIX AWK läuft
  • Decks werden in einem zeilenbasierten Textformat gespeichert und arbeiten dadurch gut mit bestehenden Source-Control-Tools wie Git und SVN zusammen
  • Decker enthält keine Werbung, Telemetrie, Gamification, slop-generator-Integration oder Elemente, die Privatsphäre und Autonomie der Nutzerinnen und Nutzer beeinträchtigen

Beispiel-Decks und Erweiterungsbibliotheken

Quellcode, Distribution und Community

  • Der durchsuchbare Quellcode und der Bugtracker befinden sich auf GitHub
  • Decker ist kostenlose Open Source unter der MIT-Lizenz
  • Regelmäßige Binär-Releases für MacOS und Windows sind auf Itch.io verfügbar
  • Die Itch-Seite enthält ein Community-Forum für Diskussionen über Decker und zum Teilen von Projekten, die mit Decker erstellt wurden
  • Decker-thematische „Game Jams“ finden jedes Jahr im Juli und Dezember statt; das nächste geplante Event ist Decker Fantasy Camp, July 2026

1 Kommentare

 
GN⁺ 2024-05-09
Meinungen auf Hacker News
  • Wunderschön! Ich weiß, dass hier eine bestimmte Ästhetik angestrebt wird, aber wenn man bei 1-Bit-Grafik nur ein kleines Stück weiter zu 2-Bit-Grafik ginge, wären vermutlich sogar wirklich lesbare Fotos möglich.
    Es gibt eine meiner Lieblingsseiten mit einer ähnlichen Ästhetik; dort verwenden alle Bilder maximal 6 Farben. Allerdings hat jedes Bild seine eigene Palette: https://solar.lowtechmagazine.com/

  • Nicht vergessen, es selbst auszuprobieren!
    https://www.beyondloom.com/decker/tour.html
    Das hat bei mir überraschend süße Erinnerungen geweckt – nur bei mir? Ich würde mir höchstens wünschen, dass auf Mobilgeräten Pinch-to-Zoom funktioniert.

    • Aus irgendeinem Grund scheint es nur etwa 20 % des iPhone-Bildschirms zu nutzen.
      Es ist zu klein, um den Text lesen zu können, und Pinch-to-Zoom ist ebenfalls deaktiviert, sodass man nicht näher heranzoomen kann.
    • Vielleicht ist es ein Firefox-Problem, oder ich weiß nicht, wie man es benutzt, aber wenn ich New Card drücke, erscheint nur ein leerer Bildschirm, ohne Möglichkeit zu schreiben oder zu zeichnen.
  • Ich respektiere die Entscheidungen dieses Projekts, aber für mich war der größte Fehler von HyperCard, dass es keine Farbe implementiert hat, als der Mac begann, Farbe zu übernehmen.
    Als ich in der Highschool war, waren alle Macs der Schule Farbgeräte, aber HyperCard bekam nie echte native Farbe.

    • So habe ich es im Großen und Ganzen auch in Erinnerung. HyperCard war enorm beliebt, besonders als Werkzeug, um Kindern Programmierung näherzubringen, aber als die Quadra-Mac-Reihe Farbe brachte, wollten alle Farbe.
      HyperCard bekam kein Update für native Farbe, und genau das war die Funktion, die alle am meisten wollten.
      Ein verwandtes Produkt, ich glaube es hieß SuperCard, bot Farbe; ich habe es ausprobiert, aber es war sperrig. Ich erinnere mich nicht mehr genau warum, aber letztlich setzte es sich nicht durch.
      Auch die begrenzte API von HyperTalk war ein Problem. Es gab einen Markt für Erweiterungen, und einige Entwickler dominierten diesen Bereich eine Zeit lang. Ich frage mich, was aus J5erson geworden ist. Der war wirklich herausragend.
      Erweiterungen wurden normalerweise in Pascal geschrieben und konnten HyperTalk viele Funktionen hinzufügen; für Leute, die über HyperCard hinaus Programmierung weiter erkunden wollten, waren sie daher ein guter Zwischenschritt.
      Decker scheint viele Stärken von HyperCard übernommen zu haben, etwa Einfachheit und Portabilität. Etwas schade finde ich nur, dass es keine Sprache verwendet, die näher an HyperTalk liegt. Diese Sprache war auf ihre eigene Art wirklich gut.
  • Decker ist überwiegend 1-Bit und sieht daher oberflächlich HyperCard ähnlich, ist in Wirklichkeit aber so anders, dass man es komplett neu lernen muss.
    Es ist ziemlich schwer zu benutzen, man muss Lil lernen, eine neue und eigenwillige Sprache, und es fehlen viele Komfortfunktionen, nach denen man sucht, wenn man HyperCard oder MacPaint erwartet.
    Am Ende fällt HyperCard-Künstlern der Umstieg schwer, und dank Infinite Mac nutzen sie HyperCard weiter im Browser. Sehr nah dran und doch weit entfernt. Ähnlich, aber anders.

  • An der Schule gab es eine NASA-Laserdisc voller Shuttle-Informationen.
    Sie war an einen Mac angeschlossen, auf dem HyperCard für Navigation und Informationsanzeige lief; ziemlich cool, aber ich glaube, damals konnte ich das gar nicht richtig würdigen.

    • An solche Dinge erinnere ich mich! Genau das habe ich zwar nicht gesehen, aber es waren definitiv HyperCard-Stacks im Umlauf, die wie kleine Datenbanken mit Bildern und allerlei spannenden Inhalten wirkten.
      Es fühlte sich an wie frühes Multimedia, noch vor dem Multimedia-Boom der 90er :-)
  • Ich verstehe nicht, warum Apple oder Microsoft sich nicht mehr Mühe geben, solche Werkzeuge für Casual Developer direkt ins Betriebssystem zu bringen.
    VB und Python sind auch gut, aber manchmal braucht man ein Werkzeug, das wirklich darauf zugeschnitten ist, kleine Anwendungen zu bauen.

    • Apple hat immerhin Swift Playgrounds.
      Und SwiftUI ist so einfach wie möglich gehalten.
      Allerdings erfordern Xcode und die App-Store-Konfiguration weiterhin schwer durchschaubare Einstellungen und ein gewisses Verständnis der Xcode-IDE :-)
  • Sehr viel Liebe für HyperCard
    Ich habe es selbst nicht miterlebt, aber es scheint den Leuten ermöglicht zu haben, viele kleine, nützliche Tools zu bauen. In Sachen Universalität ähnlich wie Tabellenkalkulationen, aber vom Einsatzzweck her anders
    Ich frage mich, welches moderne Tool Menschen, die diese Zeit erlebt haben, ein ähnliches Gefühl gibt
    Ich gehöre zu einer etwas jüngeren Generation und bin nostalgisch bei Tools wie Delphi/VB oder Macromedia Flash. Sie waren nicht perfekt, haben aber die Kreativität angeregt
    Die heutigen Tools sind viel besser, aber ich habe das Gefühl, dass dabei etwas verloren gegangen ist

    • Flash kam dem ziemlich nahe, war für durchschnittliche Nutzer aber zu komplex und teuer. HyperCard war anfangs kostenlos, wurde aber nicht mit der Performa-Mac-Reihe gebundelt
      HTML hat vieles übernommen, was HyperCard bot, aber Web-Authoring-Tools wurden am Ende nie genauso einfach und boten auch eine Funktion von HyperCard nicht: ein einheitliches Look-and-feel der UI. Das kann ein Vorteil oder ein Nachteil sein, aber manche Nutzer mochten es, dass man mit nur zwei Zurück-/Weiter-Buttons auf einer Seite ein Flipbook bauen konnte
      Es gab auch Leute, die ein Geschäft daraus machten, Lehrmaterialien als HyperCard-Stacks zu bündeln und zu verkaufen
      Die Programmiersprache HyperTalk war nicht großartig und eher eine Sprache, die Hippies mochten, aber durchschnittliche Nutzer waren damit genauso überfordert wie mit C oder Pascal
      Ich hatte immer das Gefühl, dass Apple zu stark kontrollieren wollte, was man damit machen kann. Das war das Gegenteil dessen, was ich von einer Programmiersprache und den Tools darum herum erwarte
      Wenn du wissen willst, wie sich das angefühlt hat, versuch mal, etwas in AppleScript zu coden
    • Ich gehöre auch zu einer anderen Generation und frage mich, was das Besondere an HyperCard war
      VB und die Macromedia-Tools erinnere ich noch, und heutige Tools fühlen sich für mich schwieriger zu bedienen an
    • Flash war ein hervorragendes Tool, um schnell etwas zu bauen und an eine breite Nutzerschaft zu verteilen, und weil es browserbasiert und plattformübergreifend war, hat es dieses Versprechen damals in vielerlei Hinsicht sogar besser eingelöst als HyperCard
      Schade war nur, dass es eine große Kluft zwischen Flash-Erstellern und Flash-Konsumenten schuf. Ein motivierter Tinkerer konnte vielleicht eine .swf dekompilieren und verändern, aber das war weit entfernt vom Modell von HyperCard, das allen Nutzern Bearbeitungswerkzeuge gab und jeden Stack zu einer Sammlung wiederverwendbarer Bauteile machte
      Decker kann „gesperrte“ Standalone-Decks exportieren, bei denen der Editor versteckt ist, aber ihn wieder zu aktivieren ist trivial. Ich habe auch Beispiele gesehen, die so gestaltet waren, dass sie sich nach Abschluss eines Spiels selbst „entsperren“; das finde ich eine ziemlich coole Belohnung
    • Wenn es so geliebt wurde, frage ich mich auch, warum HyperCard verschwunden ist und nichts Ähnliches seinen Platz eingenommen hat
    • Wenn es nur um den Aspekt geht, „viele kleine, nützliche Tools bauen zu können“, ist das Naheliegendste, was mir heute einfällt, die Godot-„Game“-Engine: https://godotengine.org
      In vielerlei Hinsicht passt sie nicht exakt zu HyperCard, aber in drei relevanten Bereichen ist sie ein besonders starker Kandidat. Der anfängliche Download ist klein (<100 MB), Lade- und Startzeiten sind kurz, und sie unterstützt einen iterativen, hackbaren Entwicklungsfluss, der gut zur frühen explorativen Entwicklungsphase passt, in der man „etwas Funktionierendes“ baut. GDScript eignet sich dafür sehr gut, und mit neueren Ergänzungen wie gradueller Typisierung wird die Robustheit mit der Zeit ebenfalls besser
      Auch Godots Distributions-/Installationsmodell ist sehr stark. In diesem Bereich ist es meiner Ansicht nach jedem anderen Ökosystem[0] um Lichtjahre voraus. Man lädt die Export-Templates für die zu unterstützenden Plattformen herunter, also generische plattformspezifische Binär-Executables, und exportiert sie zusammen mit projektbezogenem Code und Ressourcen als Paket[1]
      Der Bereich, in dem Godot im Vergleich zu HyperCard oder „klassischem“ Visual Basic derzeit überraschenderweise am meisten fehlt, ist Drag-and-drop-UI-Erstellung. Godot hat ein ziemlich leistungsfähiges UI-System, aber es ist manchmal undurchsichtig, und die aktuelle User Experience beim Erstellen von UIs zwingt einen, sehr bewusst mit dem Node-Baum der Szene zu arbeiten, statt Widgets aus einer Toolbar auf ein Fenster zu ziehen
      Diese User Experience ließe sich vermutlich relativ einfach mit einem Editor Plugin verbessern, und vielleicht baue ich irgendwann einmal einen Prototypen für dieses Kaninchenloch :)
      Es ist keine perfekte Lösung, aber wenn ich heutzutage GUI-basierte Utilities baue, ist es definitiv meine Standardwahl. Einige davon habe ich sogar so weit fertiggestellt, dass ich sie tatsächlich „releasen“ konnte :D
      [0] Besonders Python bricht an diesem Punkt katastrophal zusammen
      [1] WASM-Export fürs Web ist ebenfalls möglich, sodass eine zweigleisige Distribution denkbar ist: Leute probieren ein Utility zunächst als webbasierte Version aus und laden, wenn es nützlich genug ist, zusätzlich eine lokale ausführbare Datei herunter
  • Decker ist wirklich gut und macht enorm viel Spaß
    Wenn du nach HyperTalk-Scripting suchst, dürfte dir auch Wyldcard gefallen
    https://github.com/defano/wyldcard

  • Nachdem Decker letzte Woche in der Diskussion über HyperCard-Alternativen erwähnt wurde, habe ich angefangen, mich näher damit zu beschäftigen
    Besonders neugierig bin ich auf das Packaging von Decks. Mir gefällt der Ansatz wie bei Redbean, bei dem Lua, SQLite usw. alles in einer Datei enthalten ist und man sie mit einem Zip-Tool öffnen, HTML- und Lua-Code hineinlegen und sie dann nur umbenennen muss, damit sie bereit zur Verteilung ist
    Ich frage mich, ob Decker ebenfalls eine solche Art von Ansatz in Betracht zieht, um die Distribution zu vereinfachen