Ansicht umschalten
Avatar von EchterDoktor
  • EchterDoktor

555 Beiträge seit 23.04.2011

Noch eine.

Moderne Programmiersprachen wollen dem Programmierer immer mehr
Arbeit abnehmen. Doch diese Arbeitsersparnis bekommt man nicht zum
Nulltarif. Wer vor 20 Jahren professionell programmiert hat, z.B. in
C und etwas später auch in C++, der hat immer gewusst, was gerade in
seinem Programm abläuft und wie der momentane Speicher des Programms
aussieht. Vieles davon wird in modernen Programmiersprachen versteckt
(leider manchmal so, dass man noch nicht einmal an diese Details
herankommt, wenn man dies möchte), teilweise auch, weil es nicht mehr
notwendig ist, darüber Bescheid zu wissen. Aber eben nur teilweise.
Und so wird sich in den nächsten Jahren eine gewisse
Oberflächlichkeit beim Programmieren einschleichen, weil der Compiler
etliches für einen erledigt und zur Laufzeit ständig irgendetwas
automatisch überprüft und umgewandelt wird, auch wenn es in vielen
Fällen absolut unnötig ist.

Und jetzt kommt eine weitere Programmiersprache auf den Markt. Auch
sie soll das beste aus anderen Programmiersprachen in sich vereinen.
Soll. Funktionale Programmierung ist auch dabei, auch wenn das in
vielen Fällen langsamer ist, weil die Komplexität vieler funktionaler
Operationen vor dem Programmierer verborgen bleibt. Da wird wieder
mehr versprochen als gehalten werden kann. Der Name der
Programmiersprache ist auch blöd gewählt, erinnert an diesen
Fliegerdeppen.

Viel abgewinnen kann ich dieser fortschreitenden Entfernung der
Programmiersprachen von der Maschine (es kann auch eine sinnvolle
virtuelle sein) nicht, denn irgendwann muss irgendjemand doch wieder
mit der Maschine in ihrer Sprache sprechen. Und das sollte möglichst
schnell vonstatten gehen, ohne Umwege.

Komplexer sind die Anforderungen an heutige Programme gar nicht
geworden. Multitasking, Threads, Nebenläufigkeiten, Kommunikation
(auch mit dem Internet), Zugriffsrechte, Sicherheit, ... hat es auch
vor 20 Jahren bereits gegeben. Um nur einige wichtige Begriffe zu
nennen.

Die rasante Entwicklung der Hardware, insbesondere der
Rechnergeschwindigkeit und des Speicherplatzes, hat leider nicht dazu
geführt, dass sich die Programmiersprachen (und auch die
Programmierer insgesamt) bahnbrechend weiterentwickelt haben. Es
fehlt ein gewisser Ressourcendruck. Während früher um jedes Byte und
um jeden Takt gekämpft wurde, sind heute den meisten Programmierern
MByte und Millionen Takte zuviel egal.

Beruflich muss ich mich mit einigen Programmiersprachen herumärgern,
denen man anmerkt, dass sie nie vollständig durchdacht worden sind.
Bei Interpretersprachen hasse ich es regelrecht, wenn mir der
Interpreter Details der Abarbeitung meines eigenen Programms
verheimlicht oder wenn er zusätzliche Informationen zu Variablen bzw.
Objekten erzeugt und diese auf merkwürdige Weise vor mir zu
verstecken versucht. Manchmal stehen Variablen bzw. Objekte gar nicht
direkt im Speicher, sondern werden mit Hilfe einer zusätzlichen
"geheimen" übergeordneten Struktur gespeichert und verwaltet. Wenn
man als Programmierer von einer Programmiersprache bzw. deren
Laufzeitumgebung in unnötiger Weise und zwangsweise bevormundet wird
(optional lasse ich mir das durchaus gefallen, aber eben nicht
immer), dann stimmt etwas mit der Programmiersprache nicht.

Bewerten
- +
Ansicht umschalten