Close

Hello World!

Welche Worte wären besser geeignet einen Blog über Physik zu starten als diese? Zugegeben, „Hello World!“ kommt eher aus der Informatik. Aber als theoretische Physikerin lebe ich an der Schnittstelle zwischen Physik, Mathe und Informatik, und da es so schön passt muss das reichen.

Aber nicht so schnell, was hat die Welt zu begrüßen mit Informatik zu tun? „Hallo Welt“ ist mehr als nur eine leicht melodramatische Begrüßung. In meinem Feld gibt es wohl niemanden, der oder die sich nicht früher oder später einmal den Kopf darüber zerbrochen hat. Denn die erste Aufgabe fürs Lernen jeder beliebigen Programmiersprache lautet: Bring dein Programm dazu den Text „Hello World!“ auf dem Bildschirm auszugeben. Klingt einfach? Langweilig? Nutzlos? Jeder Programmierneuling würde hier wohl widersprechen! Noch gut erinnere ich mich an meine erste Vorlesung über die Programmiersprache C++ und es hieß: Programmiere „Hello World!“. Klingt einfach, ist es aber nicht. Dies war damals mein erster Kontakt mit Programmierung und es kam mir alles noch vor wie Magie. Ich hab die Tastatur angestarrt und wusste nicht wo ich anfangen soll. Irgendwann hat sich einer meiner Kommilitonen erbarmt und mir geholfen. „Du musst das Programm mit #include <iostream> anfangen und dann hier noch dies und jenes einfügen…“. Die finale Lösung war:

using namespace std;
int main()
{
cout << „Hello World!“;
return 0;
}

Logisch! Warum das ganze genau so auszusehen hat lernt man dann irgendwann später. Es geht jedoch auch einfacher. Zum Beispiel in Python:

print(“Hello World!”)

Das Programm ist dazu gedacht die grundlegendsten Funktionen einer Sprache zu testen oder zu lernen. Das heißt: Die elementaren Bestandteile eines Programms zusammenzustellen und es dann auszuführen. Ich spreche nebenbei bemerkt fünf Sprachen: Deutsch, Englisch, Französisch, Fortran und Python.

Das erste Mal wurde die Welt übrigens 1974 von Brian Kernighan begrüßt. Dieser kanadische Informatiker ist Mitentwickler der Programmiersprache C und schrieb in diesem Jahr ein Handbuch über die Programmierung in C für die Mitarbeiter der Bell Laboratories. Bekannt wurde die Übung vier Jahre später mit dem ersten Buch über C: „Programmieren in C“ (im Original: The C Programming Language) von Kernighan und Dennis M. Ritchie.

Warum eigentlich Bell Laboratories? Bell hat doch das Telefon erfunden, was hat das mit Programmierung zu tun? Gute Frage. Alexander Graham Bell erhielt 1880 für seine Erfindung den Volta-Preis und damit eine stattliche Geldsumme. Mit diesem Geld gründete er das Volta Laboratory, oder auch Alexander Graham Bell Laboratory, das sich ursprünglich mit der Erforschung von Schall beschäftigte. Er verwendete Mittel des Labors, um außerdem 1887 das Volta Büro zu gründen, das der Ausbildung von Gehörlosen gewidmet war. Die Bell Labs erweiterten derweil und auch in den folgenden Jahrzehnten ihr Forschungsgebiet auf Telekommunikation, Mathematik, Informatik, Physik und Materialforschung. Das ursprüngliche Volta Laboratory ging seit seiner Gründung durch mehrere Hände und seit 2016 sind die Bell Labs Teil von Nokia. Die unzerstörbare Qualität der Arbeit an den Bell Labs brachte etliche Meilensteine der Forschung hervor und mit ihr unter anderem neun Nobelpreise. Und eben auch die Programmiersprache C, was uns zurück zu „Hello World“ bringt.

Wie man oben sieht kann die Aufgabe „Hello World!“ zu programmieren je nach Sprache einfacher oder schwieriger sein. Während Python mit Einfachheit und Eleganz glänzt sieht C++ schon anspruchsvoller aus. Viel komplizierter geht es doch vermutlich gar nicht, oder?

Challenge accepted! Aus eigener Erfahrung kann ich sagen, dass Physiker*innen Spielekinder sind und Informatiker*innen scheinen uns in nichts nachzustehen. Sogenannte esoterische Programmiersprachen wurden nur dazu entwickelt die Grenzen von Programmierung auszutesten. Man stelle sich zum Beispiel die Frage: Wie minimalistisch kann eine Programmiersprache sein? Ich präsentiere: Brainfuck! Was nach einem Scherz klingt ist tatsächlich eine funktionierende Programmiersprache, die mit nur acht Befehlen funktioniert: +-<>[], und . „Hello World!“ sieht in Brainfuck so aus:

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>—.+++++++..+++.>>.<-.<.+++.——.——–.>>+.>++.

Hier erkennt man nicht einmal mehr die Worte Hello oder World. Wenig praktisch, funktioniert aber und ist unterhaltsam.

Nun sind Informatiker*innen nicht nur Spielekinder, sondern häufig auch Nerds. Was nach Klischee klingt ist in der Praxis doch sehr häufig wahr. Und wer Nerd sagt muss auch Fantasy sagen. Terry Pratchett zum Beispiel ist Großmeister des Fantasy-Genres. Er schrieb Romane, die in der Scheibenwelt spielen: eine flache, scheibenförmige Welt, die auf dem Rücken von vier Elefanten ruht, die wiederrum auf dem Rücken einer Schildkröte stehen. Auf der Scheibenwelt leben alle möglichen bekannten oder unbekannten Fantasy-Gestalten wie Hexen, Zauberer, Zwerge, ein Käse, der gern Mäuse isst oder der Tod persönlich. Und gute Zauberer brauchen natürlich auch eine gute Ausbildung, die sie in der Unsichtbaren Universität finden. Diese beheimatet zudem die größte magische Bibliothek der Scheibenwelt, deren Bibliothekar ein Zauberer ist, der in einen Orang-Utan verwandelt wurde. Er beherrscht nur eine Silbe, „Ugh“ (im Englischen: „Ook“), ist dabei aber für alle verständlich, die sich hinreichend Mühe geben. Ein gefundenes Fressen für gelangweilte Nerds! Ergebnis ist die Programmiersprache Ook!, eine Variante von Brainfuck (das klingt doch vielversprechend!) mit folgenden Grundprinzipien:

  1. Eine Programmiersprache sollte schreib- und lesbar für Orang-Utans sein.
  2. Die Syntax sollte einfach sein, leicht zu merken und das Wort Tier vermeiden.
  3. Bananen sind gut.

Ein gelungener, antispeziesistischer Ansatz, um allen Lebewesen einen Zugang zur Programmierung zu gewährleisten! Regel Nummer 2 geht übrigens darauf zurück, dass der Bibliothekar im Original die Bezeichnung Ape (Menschenaffe) bevorzugt und das Wort Monkey (Affe) als Beleidigung auffasst. Die deutsche Sprache hat diese Unterscheidung leider nicht, sodass in der deutschen Version die Begriffe Tier und Affe gewählt wurden. Die drei Grundelemente der darauf aufbauenden Programmiersprache sind: Ook. Ook? und Ook! und diese werden zu Zweiergruppen zusammengefasst, die dann wiederum den acht Brainfuck Elementen entsprechen. „Hello World” sieht damit so aus:

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.

Ein Traum für jeden Affenfreund! 🍌

Du magst Bananen nicht so sehr und Fantasy ist dir zu mainstream? Kein Problem! Es gibt für jede*n die passende Sprache. Wie wäre es mit Shakespeare? Programme in der Shakespeare Programming Language sehen auf den ersten Blick aus wie Dramen von Shakespeare. Als Veranschaulichung hier noch einmal “Hello World”:

The Infamous Hello World Program.

Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.

Act I: Hamlet's insults and flattery.

Scene I: The insulting of Romeo.

[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!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer’s
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!
[Exit Romeo]

Scene II: The praising of Juliet.
[Enter Juliet]
Hamlet:
Thou art as sweet as the sum of the sum of Romeo and his horse and his
black cat! Speak thy mind!
[Exit Juliet]

Da die Syntax damit sicher keine Fragen mehr offen lässt lasse ich die dritte Szene und den zweiten Akt als Übung für motivierte Lesende.

Wie man sieht sind der Kreativität keine Grenzen gesetzt. Sehr nützlich sind diese Sprachen vielleicht nicht und in der Praxis werden sie auch nicht für echte Anwendungen benutzt (wenn man es auch könnte!). Doch testen sie die Grenzen der Programmierung aus und verdeutlichen, dass viele Wege ans Ziel führen. Es gibt viele Möglichkeiten Hallo zu sagen. Kurz und verständlich, in Tierlauten, Reimen oder Versen. Doch die Nachricht bleibt am Ende die gleiche: Hallo Welt, und Willkommen auf meinem Blog!


Gefällt dir was du liest? Wenn du keinen neuen Beitrag mehr verpassen willst vergiss nicht meinen Blog zu abonnieren.