Suchen

Esoteric Programming, Teil 3 TrumpScript und ArnoldC

Autor / Redakteur: Mirco Lang / Stephan Augsten

„Make Python Great Again!“ und „I'll be back!“, so lauten die Leitmotive für die beiden esoterischen Programmiersprachen TrumpScript und ArnoldC. Wir schauen uns an, was es mit den beiden nicht ganz erstzunehmenden Projekten auf sich hat.

Firmen zum Thema

Bei TrumpScript-Fehlermeldungen lohnt ein genauer Blick.
Bei TrumpScript-Fehlermeldungen lohnt ein genauer Blick.
(Bild: Mirco Lang)

Die Welt der ist vielfältig. Mal entsteht ästhetisch wertvoller Quelltext wie bei der Shakespeare Programming Language, mal übelstes ASCII-Gemetzel wie bei Befunge oder Malbolge. Und manchmal ist alles nur scherzhaft gemeint – und da kommen zwei bekannte Amerikaner ins Spiel.

Was nämlich haben Arnold Schwarzenegger und Donald Trump gemeinsam? Beide sind sowohl in der Politik als auch in der Unterhaltungsindustrie zu Hause; beide verständigen sich vorzugsweise in Kurzform – der eine via Twitter, der andere via One-Liner; und natürlich haben beide eine eigene Programmiersprache!

TrumpScript tritt mit dem bescheidenen Motto „Make Python great again“ an – und hat zum Beispiel – wie vorhersehbar – Probleme mit mexikanischen Locales. ArnoldC hält sich aus der Politik heraus und versucht stattdessen den tieferen Sinn in den Arnie-Filmen zu finden. Nun denn: „IT'S SHOWTIME“.

TrumpScript

TrumpScript entstand als studentisches Projekt im Rahmen der HackRice, einer zweitägigen Hacker-/Programmierer-Veranstaltung der Rice University in Houston, Texas. Warum? Nun, es gab bis dato wohl keine Programmiersprache, die Trumps „glorreichem, goldenem Frisurenversuch“ gerecht wurde. Mittlerweile ist das Projekt offiziell beendet, die Initiatoren meinten, man könnte die Zeit besser verbringen, als das „Trump is ridiculous“-Meme zu Tode zu prügeln.

Die Sprache verzichtet auf ausgefeilte Logik- oder Parser-Konzepte und die gesamte Dokumentation ist eher spärlich. Quelltexte lesen sich oberflächlich fast wie echte Reden, oder zumindest wie die besten Zitate aus einer solchen.

Ausgaben werden beispielsweise mit „say“ oder „tell“ eingeleitet, Zuweisungen laufen über „are“ und „is“, Abfragen über ein Fragezeichen und die einzig verfügbare Schleifenart (while) wird über „as long as“ eingeleitet. Natürlich funktioniert auch „make“: „Make America great“ würde der Variable „America“ den Wert der Variablen „great“ zuweisen.

Esoterische Programmiersprachen
Bildergalerie mit 6 Bildern

So unspektakuläre das Sprachkonzept, so großartig die Features und Kleinigkeiten – und die Dokumentation. So müssen beispielsweise alle Zahlen größer als eine Million sein, alles andere sei inkonsequent. Als Boolean-Werte wird nie „true“ oder „false“ zurückgegeben, sondern „fact“ und „lie“. Und es wird explizit darauf hingewiesen, dass die Sprache gut mit kleinen Händen zu tippen sei.

Wirklich interessant ist der Einsatz in der Praxis. Hierfür gilt es lediglich, das Github-Repository zu klonen und eine temporäre Pfadvariable zu setzen:

git clone https://github.com/samshadwell/TrumpScript.gitexport PATH=$PATH:/path/to/TrumpScript/bin

Anschließend lassen sich Skripte via „TRUMP skriptdatei“ ausführen – wenn sie sich denn ausführen lassen: „... Trump spricht nicht gerne über seine Fehler. Daher wird der Code meistens versagen, und er wird es still tun. Betrachtet Debugging einfach als lustiges, kleines Spiel.“ Und in der Tat, hier tut sich nichts.

Schaut man aber in die Fehlermeldungen, fallen Dinge wie „no_commies_mexicans_or_kenyans“ auf. Trump-Skripte sind nämlich einigermaßen diskriminierend und wollen auf Rechnern, die Sprachdaten aus Mexiko oder Kenia parat halten, nicht laufen. Auch chinesische Zertifikate sollten besser nicht vorhanden sein – zumindest, wenn der „--Wall“-Switch beim Aufruf von Skripten verwendet wird.

Apple-Produkte werden ebenfalls ignoriert, bis Apple endlich Smartphone-Informationen an Behörden weitergibt. Wer das alles nicht hören will, versucht sein Glück mit dem Switch „--shut-up“ – und dennoch will das simple Hallo-Welt-Programm hier nicht laufen:

say „Hello World“America is great.

„America is great.“ ist der obligatorische Abschluss eines TrumpScript-Programms. Obskur wird es nach einer kleinen Änderung in der „utils.py“-Datei. Führt man nach dem Auskommentieren der Prüfung von „no_commies_mexicans_or_kenyans“ ein Skript aus, gibt es keine Fehlermeldungen. Stattdessen werden Facebook und Alibaba angepingt und passende Statistiken ausgegeben.

ArnoldC

ArnoldC ist dem finnischen Programmierer Lauri Hartikka zu verdanken. Im Grunde handelt es sich, unschwer am Namen abzulesen, nur um eine „simple“ imperative Programmiersprache, bei der allerlei Schlüsselwörter durch Arnie-Catchphrases ersetzt wurden.

Zum Beispiel steht „I LIED“ für „false“, „NO PROBLEMO“ für „true“, „I'LL BE BACK“ für „return“ oder „TALK TO THE HAND“ für „print“. Die gesamte Liste findet sich auf den Github-Seiten – und das Beste: Jedes einzelne Schwarzenegger-Zitat lässt sich auch gleich auf Youtube anschauen. Da käme man fast in Versuchung, nicht mit Text sondern Videoschnipseln zu programmieren.

Erfreulicherweise lässt sich ArnoldC auch praktisch ausprobieren – leider führt die Original-Anleitung nur zu Fehlermeldungen. Wer es dennoch versuchen will: Das Repo muss geklont und anschließend ein Programm mit Java kompiliert werden. Der Hallo-Welt-Code sieht dabei wie folgt aus:

IT'S SHOWTIMETALK TO THE HAND „hello world“YOU HAVE BEEN TERMINATED

Die erste und letzte Zeile ist jeweils obligatorisch zum Starten/Beenden von Programmen. Heißt die Datei „hello.arnoldc“, würde es so weitergehen:

java -jar ArnoldC.jar hello.arnoldcjava hello

Leider funktioniert der finale Aufruf nicht. Modifiziert man mit dem Declaim-Schalter, also „java -jar ArnoldC.jar -declaim hello.arnoldc“, wird via Text-To-Speech eine Audiodatei erzeugt – und die lässt sich natürlich sehr wohl ausführen. Das Ergebnis (hier): Der Quelltext wird statt „hello world“ vorgelesen – dank Fehlern fungiert das kleine Hallo-Welt-Programm also als Quine. Die ParseError-Variante von ArnoldC ist jetzt wohl die passende, abschließende Frage: „WHAT THE FUCK DID I DO WRONG“?

ArnoldC und TrumpScript werden ihren Namensgebern offenbar gerecht: Für Feuilleton und seriöse Geschichtsschreiber mögen sie vielleicht Fußnoten bleiben, aber Computer-Nerds werden sich wohl auch noch in zwanzig Jahren und nach der x-ten Wiederholung darüber amüsieren können. Als Programmiersprachen mögen sie recht trivial sein, als Ironie bzw. Satire sind sie hingegen schon mächtig komplex.

Esoterische Programmiersprachen
Bildergalerie mit 6 Bildern

(ID:44748909)

Über den Autor

 Mirco Lang

Mirco Lang

Freier Journalist & BSIler