Decker: Eine Neuinterpretation von HyperCard mit 1-Bit-Grafik
(beyondloom.com)Einführung in die Multimedia-Plattform Decker
- Decker ist eine Multimedia-Plattform zum Erstellen und Teilen interaktiver Dokumente mit Sound, Bildern, Hypertext und Skriptverhalten
- Kann direkt im Webbrowser ausprobiert werden
- Basiert auf dem Erbe von HyperCard und der visuellen Ästhetik des klassischen Mac OS
- Bewahrt die Einfachheit und leichte Erlernbarkeit von HyperCard und ergänzt sie zugleich um viele subtile und offensichtliche Verbesserungen der Benutzerfreundlichkeit, darunter einen tiefen Undo-Verlauf, Unterstützung für Scrollrad und Touchscreen, modernere Tastaturnavigation und Massenbearbeitungen
Was man mit Decker tun kann
- Mit Decker kann jeder E-Zines erstellen, Notizen organisieren, Präsentationen bauen, Adventure-Spiele entwickeln oder 1-Bit-Pixel-Art kritzeln
- Die übergreifende "ditherpunk"-Ästhetik wirkt gemütlich, leicht nostalgisch, unterhaltsam und bietet einzigartige kreative Einschränkungen
- Als Prototyping-Werkzeug ermutigt Decker dazu, zu skizzieren und einen unvollkommenen Ansatz bewusst anzunehmen
- Fertige Decks werden als eigenständige
.html-Dokumente gespeichert, die im Webbrowser selbstständig laufen und überall geteilt werden können, wo sich Webseiten hosten oder einbetten lassen - Decker läuft auch nativ unter MacOS, Windows und Linux
Einführung in die Skriptsprache Lil
- Für komplexere Projekte bietet Decker mit Lil eine neue Skriptsprache
- Lil ist stark beeinflusst von Lua, einer weit verbreiteten imperativen Sprache für die Einbettung in Werkzeuge und Game-Engines, sowie von Q, einer funktionalen Sprache aus der APL-Familie, die zusammen mit Zeitreihendatenbanken verwendet wird
- Lil ist leicht zu lernen und folgt genug etablierten Konventionen, um Nutzer mit bestehender Programmiererfahrung nicht zu irritieren, enthält aber auch erfreuliche Überraschungen wie implizite Skalar-Vektor-Arithmetik und eine integrierte SQL-ähnliche Abfragesprache
- Schon mit wenigen Zeilen Lil lässt sich viel erledigen
Die verschiedenen Funktionen von Decker
- Decker bietet eingebaute interaktive Widgets zum Aufbau von Benutzeroberflächen sowie die Möglichkeit, neue Widgets zu definieren
- Benutzerdefinierte Widgets und Definitionen lassen sich über die Systemzwischenablage kopieren und einfügen und überall teilen, wo Text geteilt oder gespeichert werden kann
- Jedes Deck ist ein Werkzeugkasten aus wiederverwendbaren Bauteilen, die in anderen Projekten erneut eingesetzt werden können
- Decker ist kommandozeilenfreundlich. Beim Build aus dem Quellcode wird es zusammen mit Lilt ausgeliefert, einem eigenständigen Lil-Interpreter, der Decker-Dokumente "headless" lesen, schreiben, manipulieren und sogar ausführen kann
- Da Lilt deutlich weniger Abhängigkeiten als Decker selbst hat, kann es zu einer ausführbaren plattformübergreifenden APE kompiliert werden, sodass Shell-Skripte geschrieben werden können, die überall lauffähig sind
- Es gibt auch einen Lil-Interpreter, der in POSIX AWK läuft
- Decks werden in einem zeilenorientierten Textformat gespeichert, das gut mit bestehenden Source-Control-Werkzeugen wie Git und SVN zusammenarbeitet
Anwendungsbeispiele und Module für Decker
- Im Abschnitt "Examples" werden verschiedene Beispielprojekte vorgestellt, die Decker nutzen
- Geführte Tour durch Decker, 5GUIs, CHIP-8-Interpreter, Alles über Draggable, Alles über Sound sowie das Blockschiebe-Puzzlespiel Sokoban
- Im Abschnitt "Modules" werden verschiedene Plugin-Module für Decker vorgestellt
- Plot: einfache Diagramme für Decker
- Zazz: Animationshilfe für Decker
- Ease: Easing-Funktionen für Decker
- Dialogizer: Visual-Novel-Modal für Decker
- Puppeteer: Sprite-Animationen für Visual Novels in Decker
Dokumentation und weitere Ressourcen
- Es gibt verschiedene Dokumentationen, darunter das Decker-Referenzhandbuch, das Decker-Dokumentformat und die Programmiersprache Lil
- Außerdem stehen Lernmaterialien für Lil bereit, etwa "Learn Lil in 10 Minutes", ein Lil-Playground und eine Lil-Kurzreferenzkarte
- Quellcode und Bug-Tracker sind auf GitHub verfügbar
- Decker ist frei und 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 auch ein Community-Forum, in dem über Decker diskutiert und in Decker erstellte Projekte geteilt werden können
Meinung von GN⁺
-
Die Umsetzung von Decker in POSIX AWK ist ein äußerst interessanter Ansatz. AWK ist eine auf Textverarbeitung spezialisierte Skriptsprache und scheint eine geeignete Grundlage für die Implementierung einer Skriptsprache wie Lil zu sein. Durch die Implementierung in AWK dürfte Decker leicht auf viele Plattformen portierbar und dort ausführbar geworden sein.
-
Die Entscheidung für ein zeilenbasiertes Textformat als Speicherformat von Decker wirkt sehr klug. Textbasierte Formate sind gut mit VCS wie Git kompatibel, was die Versionsverwaltung erleichtert und die Nachverfolgung von Änderungen per Diff ermöglicht. Binärformate haben den Nachteil, fragiler zu sein und sich schlechter versionieren zu lassen.
-
Die Designphilosophie von Lil ist interessant. Laut Beschreibung wurde die Sprache von Lua und Q beeinflusst: Lua wird breit für Game-Scripting eingesetzt, während Q eine auf Datenbankabfragen spezialisierte Sprache aus dem APL-Umfeld ist. Es wirkt, als habe Lil die Stärken beider Sprachen kombiniert und dadurch eigene, unverwechselbare Eigenschaften erhalten. Insbesondere Skalar-Vektor-Operationen oder eingebaute Abfragesyntax sind Funktionen, die man in bestehenden Sprachen nur selten sieht.
-
Der Einsatzbereich wirkt sehr breit: E-Zines, Notizen, Präsentationen, Adventure-Spiele, Pixel Art und mehr. Decker scheint sich für sehr unterschiedliche Anwendungsfelder zu eignen, von komplexeren Apps bis zu einfachen Dokumenten. Gerade wegen dieser Vielseitigkeit könnte es im Vergleich zu spezialisierten Werkzeugen in einzelnen Bereichen aber auch an Funktionen fehlen.
-
Die UI im Stil des klassischen Mac OS gefällt mir persönlich, könnte auf moderne Nutzer aber auch zu retro wirken. Ein Skin-System mit moderneren Themes wäre vielleicht wünschenswert. Für Windows- oder Linux-Nutzer dürfte die Oberfläche zudem ungewohnt sein.
1 Kommentare
Hacker-News-Kommentare
Wenn man 1-Bit-Grafik nur leicht zu 2-Bit-Grafik erweitert, kann sich die Lesbarkeit von Fotos stark verbessern. Als Beispiel setzt solar.lowtechmagazine.com bis zu sechs Farben ein und erzielt damit eine großartige Ästhetik.
Überlegungen zur Paketierung von Decker. Es wird gefragt, ob ein Ansatz wie bei Redbean in Betracht gezogen wird, bei dem Lua, SQLite usw. in einer Datei gebündelt, per zip entpackt und dann mit HTML- und Lua-Code befüllt sowie anschließend nur durch Umbenennen verteilt wird.
Decker wurde zuvor schon einige Male auf HN vorgestellt. Vor 3 Monaten erreichte es 191 Punkte und 36 Kommentare, vor 2 Jahren 215 Punkte und 88 Kommentare.
Die Aufforderung, Decker einfach selbst auszuprobieren. Ein Link zur Demo-Seite ist vorhanden.
Decker weckt süße Kindheitserinnerungen. Es wird angemerkt, dass nur mobiles Pinch-to-Zoom noch wünschenswert wäre.
Der größte Nachteil von HyperCard war, dass es keine Farben unterstützte, als der Mac Farbe eingeführt hatte. In der Highschool waren alle Macs der Schule bereits farbig, HyperCard aber nicht.
Erinnerung daran, in der Schule ein mit HyperCard gebautes Shuttle-Informationsnavigationssystem auf einer NASA-Laserdisc benutzt zu haben. Damals war der Eindruck nicht überwältigend, aber es war eine coole Erfahrung.
Decker wirkt durch die 1-Bit-Grafik HyperCard ähnlich, ist in der Benutzung aber ziemlich anders. Man muss die eigenwillige Sprache "Lil" lernen, und viele Komfortfunktionen von HyperCard/MacPaint fehlen, sodass es anders sein kann als erwartet. HyperCard-Künstler können dank Infinite Mac weiterhin HyperCard im Browser nutzen.
Die Meinung, dass Decker Spaß macht. Empfohlen wird auch Wyldcard, das HyperTalk-Skripting unterstützt.
Es wird gefragt, warum Apple oder Microsoft sich nicht stärker um solche Casual-Entwicklungstools bemühen. VB und Python sind zwar gut, aber ein Werkzeug, das für kleine Apps optimiert ist, wäre schön.
Es gibt viel Liebe für HyperCard. Auch wenn man diese Zeit nicht selbst erlebt hat, scheint es Menschen ermöglicht zu haben, kleine nützliche Werkzeuge zu bauen. Es wirkte wohl auf andere Weise vielseitig als Tabellenkalkulationen.
Es wird gefragt, welches moderne Werkzeug für Menschen, die diese Zeit erlebt haben, dieses Gefühl heute einfängt. Eine etwas jüngere Generation hat Nostalgie für Delphi/VB und Flash — Werkzeuge, die unvollkommen waren, aber die Kreativität angeregt haben.
Die Werkzeuge sind sehr viel besser geworden, aber dabei scheint etwas verloren gegangen zu sein.