2010-12-15 digital life Newspeak und Programmiersprachen ``1984'' ist ein Buch von George Orwell das die meisten vom Hoeren-Sagen kennen aber nicht selbst gelesen haben. Das ist das Los von Kultwerken. Darunter leiden auch ``Easy Rider'' und die ``Rocky Horror Picture Show''. (Wobei letztere nicht so sehr leidet.) Die Verfilmung von ``1984'' die ich gesehen habe konnte dem Buch nicht gerecht werden. Ich zweifle nicht daran, dass dies bei al- len anderen Verfilmungen gleich ist, da es bei so einem Buch schlichtweg nicht moeglich ist. Man muss das Buch schon lesen. Ich habe nicht bereut dies in der Orginalsprache, Englisch, zu tun. Ich will mich hier nicht mit dem Inhalt des Buches selbst beschaeftigen, sondern mit der ueberall in ihm praesenten und im Anhang detailiert vorgestellten Sprache ``Newspeak''. Es wird kaum moeglich sein meine Ausfuehrungen hinreichend zu verstehen wenn man nicht zumindest den Anhang ``The Principles of Newspeak'' gelesen hat. Das kann man auch in der Buecherei tun. Umfassendes Verstaendnis von Newspeak wird aber erst nach dem Lesen des kompletten Buches moeglich sein. Ich habe mir im Jahr 2008 in ``Die perfekte Programmiersprache'' [0] und in ``C: angekommen'' [1] Gedanken zu einer aus meiner Sicht perfekten Programmiersprache gemacht. An dieser Sichtweise hat sich grundsaetzlich nichts geaendert; auch liebe ich noch im- mer C. Als ich dann von Newspeak und seiner Bedeutung in ``1984'' gelesen habe bin ich doch ins Nachdenken gekommen: Sollte Newspeak tatsaechlich die Konzepte verkoerpern die ich gerne in einer perfekten Programmiersprache sehen wuerde? Man kann Newspeak natuerlich nicht direkt als Programmiersprache ansehen. Die politisch relevanten Aspekte sind uninteressant. Nur das ``A Vokabular'' stellt den relevanten Sprachumfang dar. Abgesehen davon gibt es viele Gemeinsamkeiten zwischen Newspeak und der Sprache von der ich traeume: The grammar of Newspeak had [...] an almost complete interchangeability between different parts of speech. Any work in the language [...] could be used either as verb, noun, adjective, or adverb. [2] (generality) Das erinnert mich doch sehr an das durchgaengig objektorientierte Konzept Rubys und an Funktionale Programmierung bei der es keinen Unterschied zwischen Variablen und Funktionen gibt. The second distinquishing mark of Newspeak grammer was its regularity. [...] all inflexions followed the same rules [3] (regulariy) Man muss das sicher uebertragen sehen. Waere es nicht schoen bei Funktionen der Standardbibliothek immer zu wissen wo welches Ar- gument hingehoert? Ich erinnere zum Beispiel an fprintf() vs. fputs(). Its vocabulary was so constructed as to give an exact [...] expression to every meaning that [...] could properly wish[ed] to express, while excluding all other meanings and also the possibility of arriving at them by indirect methods. [4] Ist das nicht gleichbedeutend mit Typsicherheit? (Gleich anschliessend) This was done partly by the invention of new words, but chiefly by eliminating undesirable words and by strip- ping such words as remained of unorthodox meanings, and so far as possible of all secondary meanings whatsoev- er. [5] Sprachkonstrukte die sich in verschiedenen Situationen unter- schiedlich verhalten machen Sprachen kompliziert. Ein einfaches Beispiel ist das Schluesselwort ``static'' in C. (Wir haben uns nur schon viel zu sehr daran gewoehnt.) Was nicht zur Sprache passt, also unorthodox ist, muss weg. Das macht die Sprache konsistenter. Dadurch wird sie korrekter genutzt werden. Dadurch werden Fehler vermieden. Die Programmiersprache soll direkt, exakt, und eindeutig sein. All das bietet Newspeak, wenn man subtrahiert. Und schliesslich: Newspeak, indeed, differed from most all other languages in that its vocabulary grew smaller instead of larger every year. Each reduction was a gain, [...] [6] Das trifft zwar auf existierende Programmiersprachen nicht zu und wird sich kaum verwirklichen lassen, doch ist dieses Ziel nicht letztlich eine Konzequenz aus Antoine de Saint-Exuperys bekannter Aussage? Perfektion ist erreicht, nicht, wenn sich nichts mehr hinzufügen lässt, sondern, wenn man nichts mehr wegneh- men kann. [7] Newspeak kann, wenn man das Buch kennt, unmoeglich positiv gesehen werden. Die Sprache ist gleichbedeutend mit der Partei und allem was dazu gehoert. So muesste ich nun Perl lieben, oder? Ich mag es aber trotzdem nicht. Man darf verschiedene Arten von Sprachen, die verschiedenen Zwecken dienen, nicht mit gleichen Massstaeben beurteilen. Die Sprache in der ich mein Tagebuch schreibe muss andere Beduerf- nisse befriedigen als die mit der ich einen Taschenrechner pro- grammiere. Und dann gibt's noch Liebesgedichte, technische Doku- mentation, grundlegende Verstaendigung im Ausland, Gespraeche mit kleinen Kindern, sich lautstark aergern, etc. Letztendlich entscheidet die Wahlmoeglichkeit die ich auf unserer Welt, und noch viel mehr beim Programmieren, habe. Soll es Newspeak geben, solange es jedem frei steht es zu verwen- den oder nicht. Nur ob sich meine Sicht auf die perfekte Programmiersprache nun veraendert hat kann ich nicht sagen -- ich bin noch dabei das herauszufinden. Anmerkung 1: Es braucht gar nicht die Sapir-Whorf-Hypothese um Menschen den Wert von mehreren gesprochenen Sprachen zu verdeutlichen. Anmerkung 2: Wenn ich hier von *der* perfekten Programmiersprache spreche dann widerspreche ich damit eigentlich meinen Einsichten. Das ist mir bewusst und so bin ich auch nicht auf der Suche nach einer einzi- gen optimalen Sprache sondern verwende den Begriff im ueber- tragenen Sinn. [0] http://marmaro.de/apov/txt/2008-01-11_die-perfekte- programmiersprache.txt [1] http://marmaro.de/apov/txt/2008-04-15_c.txt [2] Orwell ``Nineteen Eighty-Four'', p. 259 [3] p. 260 [4] p. 257 [5] p. 258 [6] p. 265 [7] Antoine de Saint-Exupery -- Wind, Sand und Sterne http://marmaro.de/apov/ markus schnalke