Gestern habe ich – Pandemie sei Dank – im Rahmen des monatlichen Online-Meetings der RISC OS User Group of London, liebevoll ROUGOL abgekürzt, einem interessanten Vortrag von Daryl Dudey lauschen können. Er stellte sein Projekt DARIC vor, das kurz gesagt eine BASIC-artige Programmiersprache für Windows und RISC OS nebst Laufzeitumgebung basierend auf einer virtuellen Maschine darstellt. Mit einem starken Fokus auf die Grafikfähigkeiten, im Geiste von Klassikern wie AMOS (und natürlich dessen Cousin STOS) oder BlitzBasic, aber jetzt auch mit 3D-Grafikunterstützung. Syntaktisch mit deutlicher Verwandtschaft zu BBC BASIC.
Da ich derartige Vorträge zur Entspannung anhöre und nicht zwecke Blogberichterstattung, habe ich natürlich keinerlei Notizen gemacht. Alles, was jetzt folgt, basiert auf der fehlerhaften Erinnerung eines mittlerweile in die Jahre gekommenen Gedächtnisses. You have been warned.
Die Kernpunkte von Daryls Bemühungen, quasi die dahinterliegende Philosophie, ist für mich persönlich gar nicht so interessant. Er strebt eine sehr interaktive Sprache an, also ein klassischer Interpreter mit einer integrierten Ausführungsumgebung mit klassischem Zeileneditor, wo man die Befehle direkt eintippen oder auch ausführen kann. Außerdem soll die Sprache reichlich Schlüsselwörter bieten, mit allem was das Programmiererherz begehrt (“batteries included”-Ansatz, wie Daryl es nannte), ohne dass man erst zig Bibliotheken runterladen muss. Also durchaus BBC BASIC nicht unähnlich, aber insbesondere für Einsteiger noch nutzerfreundlicher. Klare Zielrichtung: 2D- und 3D-Grafikunterstützung, derzeit alles in Software gerendert, und mit identischen Ergebnissen egal ob die Ausführung unter RISC OS oder Windows erfolgt.
Also: da bin ich nicht Zielgruppe. Den Kreativbereich im Grafikbusiness sollen andere abdecken, ich bin eher so der Anwendersoftware-mit-grafischer-Oberfläche-Entwickler. Für mich sind andere Details interessant. Zum Beispiel die Tatsache, dass Daryl “mal kurz” eine eigene VM entwickelt hat, die zudem recht performant zu sein scheint. Und in einer Hochsprache /C++) implementiert. Mit Ansätzen eines JITs. Mit einem Parser, der per ANTLR4 generiert wird. Letztlich wird hier der Nachweis erbracht, dass mit modernen Werkzeugen ein solches Projekt – Sprache, VM, Laufzeitumgebung – selbst für einen einzelnen Entwickler im Bereich des Machbaren liegt. Wobei natürlich zu beachten ist, dass es vom weitgehend funktionierenden Zwischenstand hin zu einer wirklich ausgereiften stabilen Version noch ein ganzes Wegstück sein wird. Die Grundidee “schnelle VM mit erweitertem BASIC” ist jedenfalls für RISC OS-Zwecke hochinteressant.
Sehr erfrischend fand ich Daryls Pragmatismus an vielen Ecken. Er hat sich nicht jahrelang Gedanken gemacht über sprachtheoretische Feinheiten oder eine effiziente GC-Implementierung oder ob man nicht besser eine vorhandene VM portieren sollte oder oder oder. Er hat einfach mal angefangen zu implementieren, auch Irrwege in Kauf genommen, mit einer klaren Philosophie im Hintergrund, und was dabei rausgekommen ist, kann sich sehen lassen. Auch interessant: einfach mal auf C++ 14 als Implementierungssprache gesetzt, was unter RISC OS schon anspruchsvoll ist, weil es GCC 8 voraussetzt.
Wer den Stand der Dinge begutachten mag: der Sourcecode ist komplett auf GitHub verfügbar, da kann man auch diverse kleine Beispiele und Demos in Augenschein nehmen – nichts illustriert Syntax besser als lebender Code. Die Website zur Sprache scheint derzeit leider offline zu sein.
Witzige Randnotiz zum Abschluss: Der Erfinder von AMOS ist gerade auch am Schrauben und hat AOZ Studio aus der Taufe gehoben, ursprünglich “AMOS 2” genannt. Ich traue mich noch nicht, die große BASIC-Renaissance auszurufen, aber es könnte sich hier ein Trend abzeichnen. Ein ganz kleiner Randgruppentrend zumindest.