Aus Linux-Magazin 11/2010

Was hochwertige Programmiersprachen ausmacht

© Duncan Noakes, 123RF.com

Was macht Macht aus? Die Berechnungskraft aller Programmiersprachen ist gleich, sagt Logik-Veteran Church. Andere Kriterien müssen her, um Einfluss bei Entwicklern geltend zu machen.

Per Ringschluss sollen angehende Informatiker nachweisen, dass alle wichtigen Programmierparadigmen das Gleiche berechnen können – nicht mehr, aber auch nicht weniger. Es ist ein steiniger Weg, um zu zeigen, dass Lambda-Kalkül, eine Turing-Maschine, imperative Sprachen mit Zuweisungen und Variablen sowie Registermaschinen einander entsprechen und daher Funktionen in einer endlichen Zeit berechnen und sich dabei nicht in Endlosschleifen verheddern.

Wer den Beweis einmal geführt hat, erhält ein intuitives Verständnis dafür, wie er diese Kette um weitere Programmiersprachen erweitern könnte, sei es um Java, Perl, PHP oder gar Postscript. Dazu nutzt er die individuellen Mittel der einen Sprache, um Funktionen auf natürliche Zahlen zu berechnen, die die nächste Sprache beherrscht.

Alles, was sich in Perl berechnen lässt, kann man auch in Lisp formulieren. Für alles, was Lisp beherrscht, lässt sich Java-Code einsetzen. Java-Methoden haben schließlich die gleiche Berechnungskraft wie Perl – die Kette ist geschlossen. Alle modernen Programmiersprachen fallen damit in die gleiche Klasse dieser Fähigkeit.

Das betrachtend stellte sich Church 1956 eine Frage, die den Bereich des Beweisbaren verlässt und in die Sphäre des Philosophischen eintritt: Alle bekannten Sprachen weisen zwar die gleiche Berechnungskraft auf, aber lässt sich eine neue konstruieren, die mehr Berechnungskraft besitzt und den erwähnten Zirkel sprengt? Nach reiflicher Überlegung formulierte Church seine Antwort auf diese Frage: Nein, gibt es nicht.

Das ist kein Beweis, wer Church widerlegen möchte, müsste nur ein Gegenbeispiel präsentieren. Das ist aber bis dato niemandem gelungen und eine Mehrheit jener, die sich mit der Berechenbarkeit befassen, erhebt die Church’sche These mindestens ehrenhalber in den Rang eines gültigen Satzes.

Andere Kriterien, was zählt

Was bedeutet aber Mächtigkeit einer Programmiersprache? Ist das ein äquivalenter Begriff für Berechenbarkeit? In diesem Fall wäre Basic so mächtig wie C++, Z-80-Assembler wäre gleichmächtig wie Ocaml. Vom praktischen Gesichtspunkt aus betrachtet wäre das etwas vermessen. Was sind daher Kriterien für die pragmatische Mächtigkeit einer Programmiersprache?

Ein evolutionsbiologischer Ansatz wäre, den am häufigsten verwendeten die meiste Macht zuzuschreiben, Survival of the Fittest sozusagen. Damit lägen PHP oder Java – je nach Einsatzgebiet – ganz weit oben. Besondere Minderwertigkeitskomplexe haben Lisp-Verfechter in diesem Kampf – zu urteilen nach den umfänglichen Traktaten, wieso ihre Sprache ungerechterweise nicht die Beachtung findet, die ihr eigentlich zusteht.

So philosophiert etwa Lisp-Autor Paul Graham [1] über Lisp als “simply the most powerful language available” und führt als Beispiel an, wie er und ein Kollege in kürzester Zeit einen Webshop entwickeln und pflegen konnten. Beleg für den Erfolg sei, dass die beiden so effizient in Lisp waren, dass sie keine anderen Entwickler brauchten. Ob das auch bei größeren Projekten zum Vorteil gereicht, darf bezweifelt werden. Eine Suche in Jobportalen liefert 1871 Treffer für Java, 1195 für C++, noch 895 für PHP, aber bloß drei für Lisp.

Das mag nicht repräsentativ sein, zeigt aber eine deutliche Tendenz: Auch die Menge an ausgebildeten Entwicklern macht eine Sprache mächtig. Daneben gibt es noch andere Effekte wie Umfang und Güte von Bibliotheken und Dokumentation, die Verfügbarkeit von Ablaufumgebungen auf real existierender Hardware oder die dort erzielbaren, effektiven Leistungsdaten. Pragmatismus ist gefordert, wie schon Molière wusste: “Macht ist, wo die Bärte sind.”

Infos

[1] Paul Graham: “Beating the Averages”: [http://www.paulgraham.com/avg.html]

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben