Benutzer:Stettberger/Blog:Wieso wir verschiedene Programmiersprachen brauchen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
Lambda.png

Das Sommersemester ist gerade eine Woche alt und ich habe erst alle Vorlesungen einmal gehört. Ich habe mich dieses Semester auch dafür entschieden Funktionale Programmierung mit Haskell zu hören. Die Vorlesung von Prof. em. Dr. Schneider gehalten, für den, wie er uns versichert hat, ALGOL eine große Erleichterung war, damals in den Sechzigern. Die Vorlesung ist mit 8 Leuten sehr familiär und man fühlt sich als würde der Stoff wirklich nur für einen selbst erzählt werden. Auf seiner zweiten Folie hat mich ein Satz etwas zum nachdenken angeregt:

"Informatiker sollten Sprachen von unterschiedlichen Enden des Sprachspektrums und somit unterschiedliche Denkweisen zur Problemlösung beherrschen."

Ich kann dieser Aussage nur zustimmen. Im letzten Semester hatten wir eine Vorlesung in der Prolog gelehrt wurde, einer der wenigen logischen Programmiersprachen. Dies zusammen mit meinem Interesse für andere, mehr geklammerte Programmiersprachen (Common Lisp, Scheme) haben mir insofern etwas gebracht, als dass es meinen Horizont erweitert hat und man danach auch in anderen Programmiersprachen auf Lösungen kommt, an die man vorher gar nicht erst gedacht hat. Wobei man dann auch schon manchmal von mir gehört hat, dass mein Python Code wieder mal aussieht wie Lisp.

Daher kann ich einige meiner Kommilitonen überhaupt nicht verstehen, wenn sie sich beschweren, dass Prolog oder Haskell, was alle dieses Semester in PFP haben werden, ja so sinnlos sei und an der Realität vorbeiginge.

Es ist jedoch nicht nur der Horizont der sich erweitert, sondern auch die Möglichkeiten die man hat. Wie es Professor Phillipsen (Parallele und Funktionale Programmierung, PFP) gemeint hat, steuert die Softwarebranche auf eine Art Multikernkrise zu. Seit Ewigkeiten programmieren wir so, dass wir lineare Abläufe auf einzelnen CPUs uns vorstellen und Modellieren. Allerdings werden Multicore Architekturen immer mehr die Regel. Will man nun die neuen Möglichkeiten voll ausnutzen bedarf es entweder wilder Verrenkungen mit Thread, und der daraus folgenden Fussschussgefahr, oder eben neuer Ideen. So sind die Seiteneffektfreien Funktionen von Haskell leichter auf verschiedene Rechner zu verteilen und solch exotische Sprachen wie Erlang bauen gerade darauf, dass man viele kommunizierende Knoten hat.

Daher brauchen wir viele Verschiedene Programmiersprachen mit vielfältigen Ansatzpunkten. Denn nur so kann es eine Entwicklung geben, ohne die wir die Möglichkeiten der Technik nicht mehr ausnützen werden können.

Die gute Nachricht ist also: Java wird nicht das Ende der Entwicklung sein :-)