Für mich persönlich, der
überwiegend
das Programmieren in Sprachen die auf prozeduralen Denkweisen beruhen
gewöhnt
ist bedarf es schon einer gewissen Zeit sich in diese zwar nicht neue
aber
ungewohnte Art der Problembeschreibung hineinzudenken. Dies ist
sicherlich
kein Nachteil funktionaler Sprachen ansich sondern eher ein Zeichen
dafür
das in der täglichen Praxis zur Lösung der meisten
Problemstellungen
prozedurale Sprachen zur Anwendung kommen. Die Gründe hierfür
sind sicherlich vielschichtig. Zum einen spielt das unbedingte
Festhalten
an einmal erlernten Vorgehensweisen zur Problemlösung eine Rolle.
Dies führt nicht selten zu einer Überbewertung einer
einzelnen
Sprachen als die einzig sinnvolle. Zum anderen basieren die meisten
großen
integrierten Entwicklungswerkzeuge auf prozeduralen oder
objektorientierten
Sprachkonzepten. Mir selbst erscheint der Einsatz einer spezifischen
Programmiersprache
je nach Anwendungsfall wenn überhaupt von folgenden Punken
abzuhängen:
- ...der Ausdruckskraft der Sprache
- ...der geforderten maschinennähe bei Spezialanwendungen
- ...der Güte der verfügbaren möglichst integrierten
Entwicklungsumgebungen
für die zu erstellende Software
- ...grundsätzliche Bereitstellung von Strukturierungsmitteln
möglichst
in der Sprache selbst verankert (Konzepte zur Modularisierung etc.)
- ...der generellen Angepaßtheit der Sprache an die
Problemstellung
selbst
- ...die Integrationsfähigkeit von Bibliotheksfunktionen die
in
anderen
Sprachen geschrieben wurden
- ...verfügbarer Literatur als auch anderen Quellen zur
Informationsbeschaffung
Es ist durchaus möglich das es in bezug auf die Realisierung einer
Software günstiger sein kann eine vielleicht etwas weniger der
Problemstellung
angepaßte Sprache zu verwenden, wenn das hierfür
bereitgestellte
Entwicklungswerkzeug optimalste Eigenschaften aufweist um eine schnelle
Umsetzung des Problemes zu gewährleisten auch wenn dabei Nachteile
in bezug auf die Laufzeit oder Schlankheit des Codes in Kauf genommen
werden
müssen. Die wenigsten Entwicklungen, von Spezialfällen im
Bereich
industrieller Hochleistungsanwendungen einmal abgesehen, erfordern die
maximale Ausschöpfung an Laufzeitminimierung durch maschinennahe
Implementierungen.
Desweiteren gilt natürlich der Grundsatz das nicht vornehmlich die
Sprache ausschlaggebend für die Performance und die Güte
eines
Programmes ist sondern überwiegend die Arbeitsmethodik und
Fähigkeit
des Umsetzenden, als auch die der übersetzende Software in Form
des
Compilers.
Mir erscheinen funktionale Sprachen sehr gut geeignet zu sein um
durch
sie grundsätzliche Problemstellungen und die zu ihrer Lösung
erforderlichen Algorithmen in schlanker Art und Weise auszudrücken
und zu entwickeln ohne durch maschinenspezifische Detailfragen
abgelenkt
zu werden. Daher erklärt sich auch die starke Konzentration in der
Anwendung dieser Sprachen auf die Lehre und Forschung. Meiner Ansicht
nach
fehlen jedoch noch allgemein verfügbare und leistungsstarke
integrierte
Entwicklungsumgebungen die die Sprache für den Entwickler von
"tatsächlichen"
Anwendungen in massiver Art und Weise unterstützen.