37 Werke


Shakespeare ist ein berühmter Dramatiker. Er inspirierte Generationen von Denkern, Dichtern, Philosophen… und… Programmierer.

Shakespeare: https://de.wikipedia.org/wiki/William_Shakespeare

Aus dem Alltag eines Sysadmin: Shakespeare Programming Language
Die ganze Welt ist eine Bühne: http://www.linux-magazin.de/Ausgaben/2010/12/Die-ganze-Welt-ist-eine-Buehne
Shakespeare Programming Language auf Sourceforge: http://shakespearelang.sourceforge.net/
Hello World in SPL: http://shakespearelang.sourceforge.net/report/shakespeare/shakespeare.html#sec:hello

Esoterische Programmiersprachen:https://de.wikipedia.org/wiki/Esoterische_Programmiersprache
Hallo Welt Beispiele: https://de.wikipedia.org/wiki/Liste_von_Hallo-Welt-Programmen/H%C3%B6here_Programmiersprachen 

Bild: https://commons.wikimedia.org/wiki/File:Shakespeare_Cobbe_portrait_detail.jpg

 

 37 Werke

Es wird ja oft behauptet, dass Podcast-Hörer in aller Regel besser als der Durchschnitt mit Computern umgehen. Und viele von ihnen haben zumindest grundlegende Progammierkenntnisse – so wird behauptet.

In meiner täglichen Arbeit habe ich jeden Tag mit Programmierern zu tun und ich sehe mich auch selbst noch als Mitglied dieser Familie. Auch ich schreibe hin und wieder, was man unter Programmierern als Code bezeichnet. Und ich mag dieses Gefühl nach etwas längerem rumgebastele meinem Computer etwas beigebracht zu haben, was vorher so noch nicht funktioniert hat.

Um den Computer etwas beizubringen, benutzen Programmierer Programmiersprachen. Programmiersprachen, sehr ähnlich wie normale Sprachen, haben eine Syntax und ein Vokabular. Das heißt, in aller Regel hat man einzelne Worte die Bedeutungen haben und man hat Regeln, wie man diese Worte anordnen muss, damit sie einen Sinn ergeben. Der Computer wird denn diese Befehle nehmen und ausführen. Das ist das grundsätzliche Prinzip in der Programmierung.

Ganz ähnlich wie bei menschlichen Sprachen gibt es auch inzwischen nicht mehr nur eine Programmiersprache, sondern eine ganze Reihe von völlig unterschiedlichen Ideen, wie sich Dinge denn nun ausdrücken lassen. Unterschiedliche Vokabelsätze, unterschiedliche Grammatiken, unterschiedliche Formen diese Befehle an den Computer zu kommunizieren. Alle haben Vor- und Nachteile. Manche Sprache ist besonders kompakt zu schreiben. Manche Sprache ist besonders gut, um Berechnungen auszudrücken, andere Sprachen wiederum sind ganz besonders fehlertolerant usw. usw.

Tatsächlich gibt es inzwischen eine enorme Bandbreite an solchen Sprachen und nicht jede dieser Sprachen ist ernst gemeint. Wenn man nur lang genug auf Programmcode starrt oder in seinem Informatikstudium hängt, dann entwickelt sich ganz offensichtlich seltsamer Humor. Anders lässt sich zum Beispiel nicht erklären, wie es zu einer Programmiersprache namens Cow kam, in der der Programmiercode aus Muh-Lauten besteht. Oder eine andere Programmiersprache, die noch bei Programmierern tatsächlich relativ bekannt sein dürfte, namens Brainfuck, die wie der Name nahe legt, kaum les- und verstehbar ist, obwohl sie in ihrer Grundstruktur eigentlich sehr einfach ist.

Es gibt eine Programmiersprache namens Whitespace”, deren Code ausschließlich aus Zeichen besteht, die nicht sichtbar sind. Da gibt es nämlich mehrere in einem Zeichensatz eines modernen Computers. Der Computer kann sie unterscheiden, für uns sehen die immer nach einem Leerzeichen aus. Großartige Idee!

Es gibt eine Programmiersprache, deren Programmiercode aussieht wie eine Wegbeschreibung an einen Taxifahrer und eine andere, ganz ähnliches Konzept: Die sieht aus wie ein Kochrezept. Und eine Programmiersprache, die ist ganz besonders originell. Sie heißt Shakespear Programing Language und wurde von zwei Informatikstudenten entwickelt. Von Kalle Hasselström und Jon Åslund,die beide zu der Zeit relativ gelangweilt und genervt an einer Hausaufgabe saßen, die sie im Rahmen ihres Informatikstudiums zu erledigen hatten. Und irgendwann kamen sie dann, während sie diese Hausaufgabe machten, auf die Idee, eine Programmiersprache zu entwerfen, deren Programmiercode sich wie Gedichte von Shakespear lesen lassen.

Am Anfang der einzelnen Akte dieser Sprache, genauso wie bei den Stücken von Shakespear, das ist daher auch immer wichtig die Figuren zu definieren, die – wenn Du Programmierer bist, erkennst Du den Begriff – letztlich Variablen darstellen.

Diese Figuren interagieren dann miteinander und daraus ergibt sich dann, was immer der Computer tun soll. Und ich bin mir sicher, Du hast jetzt nicht den Hauch von Vorstellung, wie das aussieht. Und dem kann abgeholfen werden. Was ich jetzt habe ist, ich habe das Hello World Programm ausgegraben. Und Hello World ist für Programmierer so eine Art Start in eine neue Programmiersprache. Das heißt, das allererste was die Programmierer immer erstmal lernen ist, wie gebe ich auf dem Bildschirm den Text “Hello World” aus?

Die Shakespear Programing Language ist nun so aufgebaut, dass Variablen, also Platzhalter für irgendwelche Informationen als Akteure dargestellt werden – also Romeo, Julia, Hamlet usw. Um die Werte, die in diesen Variablen gespeichert sind zu verändern, müssen die irgendetwas miteinander tun: sich gegenseitig beleidigen, sich gegenseitig lobhudeln, irgendwas, miteinander eine Interaktion machen und wenn das stattgefunden hat, wird hinterher normalerweise dieser Variablenwert verändert. Und wenn ich den ausgeben will, kann ich sagen “Speak your mind” und diese werden dann ausgegeben.

Hello World in der Shakespear Programming Language ist erstaunlich lang und hat dann eben genau diese Aktionen. Das heißt, wir haben Akteure, die miteinander irgendwas machen und immer wieder mal heißt dann “Speak your mind” und es gibt wahrscheinlich einfach den nächsten Buchstaben aus.

Das Programm Hello World in der Shakespear Programming Language fängt also so an: “Romeo, a young man with a remarkable pacience. Juliet, a likewise young women of remarkable grace. Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.”

Das waren also die Variablen und die wurden auch gleich mit Werten besetzt, sozusagen. Und jetzt – und ich werde Dir nicht das ganze Programm antun, aber damit Du ein Gefühl davon bekommst, was jetzt passiert – fangen wir an, etwas zu tun. Achte auf das “Speak your mind”, da würde das Programm dann immer einen Buchstaben ausgeben:

“[Enter Hamlet and Romeo]

Hamlet:
You lying stupid fatherless big smelly half-witted coward!
You are as stupid as the difference between a handsome rich brave
hero and thyself! Speak your mind!”

Jup, das war jetzt relativ unfreundlich. Das liegt daran, dass diese Beleidigung sozusagen etwas bestimmtes mit dem Wert – in dem Fall mit Hamlet – anstellt. Und “Speak your mind” gibt den Wert dann aus. Das geht aber auch freundlicher, hören wir zum Beispiel mal hierein:

“[Enter Ophelia]

Hamlet:
Thou art as lovely as the product of a large rural town and my amazing
bottomless embroidered purse. Speak thy mind!

Thou art as loving as the product of the bluest clearest sweetest sky
and the sum of a squirrel and a white horse. Thou art as beautiful as
the difference between Juliet and thyself. Speak thy mind!

[Exeunt Ophelia and Hamlet]”


Okay, ich gebe es zu: Programmierer sind Freaks. Aber glaube mir einfach, dass das irgendwie lustig ist. Und wenn man sich das anschaut, sieht es aus, wie ein Shakespear Gedicht. Es ist, wenn man es sich dann durchliest, ziemlich schräg und ergibt auch nur ganz wenig Sinn, bis zu dem Moment, wo man versucht das auszuführen, aber es ist witzig, dass man sowas bauen kann. Also, für mich als Programmierer ist das irgendwie witzig.

Und falls Du immernoch dieses “Was zur Hölle?! – Warum?”-Gefühl hast, dann gehe auf Twitter und bedanke Dich bei Sebi. Der hat nämlich, als ich gefragt habe, was könnten wir denn für Episode 37 nehmen, vorgeschlagen, eine Episode über Shakespear zu machen. Shakespear hat nämlich 37 Dramen geschrieben. Manch einer sagt auch, es wären 38. Das hängt davon aus, wie man zählt.

Und dann gäbe es noch 154 Sonetten, aber da wollen wir jetzt gar nicht hingehen. Jedenfalls, wenn sich jemand auf Twitter, im Blog, auf iTunes, wo auch immer eine Folge wünscht: Ich werde liefern. Und dieses Mal ging es eben um Shakespear.

Bis bald.

Kommentar verfassen