Heterogene Daten in einer statisch typisierten Spiel-Skriptsprache behandeln

2025-09-21

Der Autor stieß bei der Entwicklung einer statisch typisierten Spiel-Skriptsprache auf Herausforderungen bei der Behandlung heterogener Daten. Der Artikel untersucht verschiedene Lösungsansätze aus anderen Programmiersprachen, darunter Null, Variantentypen, unmarkierte Unions, Summentypen und Subtyping. Der Autor entschied sich letztendlich für einen Ansatz, der den Variant Records in Pascal ähnelt, und findet einen Ausgleich zwischen prägnanter Syntax und Laufzeit-Typprüfung. Dies vermeidet die Komplexität von Flow-Typing und führt zu einer verständlicheren und benutzerfreundlicheren Sprache. Es ist ein cleveres Design, das statische Typsicherheit und Benutzerfreundlichkeit in Einklang bringt und eine bequemere Skriptsprache für die Spieleentwicklung bietet.

Mehr lesen
Entwicklung

Ein unerwartetes Hobby für Programmierer: Der Reiz des Strickens

2025-06-04

Ein Programmierer berichtet von seinem Weg vom Starren auf Bildschirme zum taktilen Erlebnis des Strickens. Der Artikel vergleicht Stricken mit einem Open-World-Spiel, das eine sanfte Lernkurve und endlose Möglichkeiten bietet. Der Autor teilt die körperlichen und geistigen Vorteile, die Befriedigung, greifbare Objekte zu schaffen, und ermutigt andere Programmierer, diese Aktivität auszuprobieren, um Arbeit und Leben auszubalancieren und sinnvolle Geschenke für ihre Lieben zu kreieren.

Mehr lesen
Sonstiges Stricken Hobby

Der elegante Kampf: Entwurf von öffentlichen/privaten Membern in einer Skriptsprache

2025-05-26

Ein Entwickler, der an einem Fantasy-Konsolenprojekt arbeitet, kämpft mit dem Hinzufügen eines Modulsystems zu seiner Skriptsprache. Er untersucht verschiedene Ansätze, um öffentliche und private Deklarationen zu unterscheiden: Modifizierer-Schlüsselwörter (wie `public` und `private` in Java), Modifizierer-Abschnitte (wie in C++), Symbole in Bezeichnern (wie der Unterstrich in Python), Export-Manifeste (wie in Scheme) und Symbole in Deklarationen (wie `*` in Oberon). Er tendiert schließlich zu einer neuartigen Lösung: das Präfixieren von Deklarations-Schlüsselwörtern mit einem Unterstrich (z. B. `rec_` für private Datensätze, `def_` für private Funktionen). Obwohl unkonventionell, bietet dieser Ansatz Kürze und vermeidet die Wiederholung von Symbolen an jeder Verwendungsstelle.

Mehr lesen
Entwicklung Modulsystem