Programmiersprachen, die das Denken erschüttern

Hartmut Schlosser

„Eine Sprache, die nicht die Art und Weise verändert, wie man über Programmierung denkt, ist
es nicht wert, erlernt zu werden.“

Dieses Zitat von Programmiersprachen-Pionier Alan Perlis, einem der Erfinder von ALGOL, steht einem interessanten Blogeintrag von Mike Fogus voran, in dem diese Devise auf die aktuelle Sprachlandschaft angewandt wird.

Fogus bezieht sich zunächst auf Nietzsche und seine Denkfigur, dass alle Interaktionen und Interpretationen der externen Welt durch die Linse einer individuellen Perspektive vollzogen werden. Auch so etwas wie „Wahrheit“ sei deshalb Gegenstand ständiger Interpretation, ergo Veränderung, und die Einnahme alternativer Standpunkte sei unerlässlich, um zu einer höheren Stufe der Erkenntnis zu gelangen.

Bei der Übertragung dieser Denkfigur auf die IT-Welt stellt Fogus fest, dass gerade Software-Entwickler stark von Industrie-Standards und Best Practices geprägt sind, die letztlich auch subjektiver Natur sind. Stark abhängig seien die subjektiven Sichtweisen der Entwickler von der je eigenen Historie der erlernten Programmiersprachen, und hier kommt nun wieder Programmiersprachen-Pionier Alan Perlis ins Spiel:

Das Erlernen einer neuen Sprache sollte die bisher gepflegten Überzeugungen von der Kunst der Programmierung erschüttern. Nur durch die Einnahme verschiedener „Sprach-Standpunkte“ kommt man als Programmierer weiter.

Als „Perlis-Sprache“ bezeichnet Mike Fogus deshalb eine Programmiersprache, deren Erlernen die persönliche Denkweise über die Software-Entwicklung in den Grundfesten erschüttert hat. Seine persönliche Liste der Perlis-Sprachen umfasst Joy, Eiffel, Qi, Clojure, Kernel, Mozart/Oz, RCA COSMAC 1802 Assembly, Frink, APL und Haskell.

An dieser Sichtweise sind einige Dinge bemerkenswert:

  • Aus dieser Perspektive ist die Sprachenvielfalt auf der JVM ein Gewinn, erlaubt sie es doch, auf einer einzigen produktiven Plattform verschiedene Standpunkte in Sachen Programmiersprachen einzunehmen.
  • Bei der Einführung einer neuen Programmiersprache geht es primär um einen idealistischen Wert, nämlich die Programmierung weiter voran zu bringen, nicht so sehr um Fragen der konkreten Implementierung, Verbreitung, Tool-Unterstützung, unternehmenspolitischen Hintergründe, etc.
  • Andererseits impliziert Fogus´ Blogeintrag auch eine Kritik: Fragwürdig ist die Legitimation einer Sprache, die gegenüber einer existierenden, dominanteren Sprache nur wenige Veränderungen einführt. Zumindest bringt einen das Erlernen eines solchen „Sprach-Klones“ als Programmierer nicht wirklich weiter.

Und da sind wir wieder mitten in der aktuellen Diskussion: Welche der neuen JVM-Sprachen bringen tatsächlich Mehrwerte ins Ökosystem ein? Alles Gegenstand subjektiver Interpretationen, könnte man sagen, und das Los der Sprachen der evolutionären Auslese überlassen.

Dann kann man auch die „realistische“ Sichtweise einnehmen und es wie Kommentator Michi halten: Es geht im Endeffekt auch immer darum, was vom Projekt, Arbeitgeber oder Kunden gefordert wird.

Mein Idealismus lasse ich bei solchen Sachen GRUNDSÄTZLICH in der Tasche und das sollten viele auch mal tun.

Realismus versus Idealismus? Wozu neigen Sie?

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.