Hi,
die wichtigste Frage, die ich mir stelle ist, war es das für dieses Jahr? Ich meine so mind. einmal pro Jahr kommt ja schließlich in einem Forum die Frage nach der einen, einzigsten Programmiersprache auf. Klar, die Diskussion ist absehbar und das Fazit seit den ersten Foren bekannt, aber das hindert doch keinen wieder und wieder die gleiche Diskussion zu führen, oder?
Letztlich finde ich, dass Raven hier als erstes das Richtige gesagt hat (nicht wörtlich
"Jede Sprache hat ihre Vor- und Nachteile". Natürlich haben das auch noch andere gesagt, ist klar, hab es nur bei ihm in diesem Beitrag zuerst gesehen.
Ich meine natürlich könnte man in C# im Embedded-Bereich arbeiten (gilt auch für Java oder Delphi), man hätte die Sprache die einem gefällt und eine riesige Auswahl an fertigen Bibliotheken, nur irgendwie müssten die dann auch mit 32 KByte Flash auskommen oder noch weniger. Da gibt es wenig Leute, die sich die Mühe gemacht haben, dass zu realisieren. In dem Bereich findet man wohl eher einen Assembler und meist auch einen C Kompiler, da dürfte sich also die Diskussion schon gar nicht stellen, welche Sprache man warum nutzt.
Natürlich ist insbesondere in dem Bereich Polymorphie und OO auch völlig zu vernachlässigen. Wo es keine Interrupts bei Fehlern gibt, da braucht man auch keine Fehlerbehandlung usw. (Robustheit heist da noch Watchdog
)
Ganz treffend hat es Linus Torvalds mal ausgedrückt:
Zitat von
Linus Torvalds:
The real problem with C++ for kernel modules is:
- the language just sucks. Sorry, but it does
- some of the C features we use may not be usable from C++ (statement expressions?)
- the compilers are slower, and less reliable. This is _less_ of an issue these days than it used to be (at least the reliability part), but it's still true.
- a lot of the C++ features just won't be supported sanely (ie the kernel infrastructure just doesn't do exceptions for C++, nor will it run any static constructors etc).
Ist nur ein Auszug aus der gesamten (nicht immer netten) Diskussion. Aber es lassen sich eben so leicht Probleme finden, die man so einfach und elegant eben nicht ohne die Sprachfeatures von einigen Hochsprachen realisieren lassen. Natürlich wäre J2EE (Java 2 Enterprise Edition) noch denkbar ungeeigneter für den Linux-Kernel, das Verwalten von Containern oder Fernaufrufe werden wohl kaum benötigt. Aber für eine Bank sieht das schon ganz anders aus. Hier nimmt man diese Perfomance-Einbussen (durch Indirektionen, Fernaufrufe, Container, Objekt-Relationales-Mapping, ...) in Kauf. Dafür hat man ein sehr robustes System, mit einem einheitlichen (und gut getesteten) Sicherheitssystem. Transaktionen dürfen in dem Sektor eben nicht verloren gehen, usw.
Die eine Sprache, die alle Anforderungen erfüllt wird es wohl auch 2007 nicht geben. Selbst mit Komponenten und Bibliotheken wird es immer mehr als eine Sprache geben und welche sich wie gut liest, das ist immer noch subjektiv. Hinzu kommt, dass man in allen Sprachen sehr gut und sehr schlecht lesbaren Code produzieren kann, es liegt an dem Entwickler wie lesbar der Code letztlich ist. Vorallem sind Kommentare in jeder Sprache gleich gut/schlecht lesbar, sind diese vorhanden (und gut!), wird selbst ein Nichtprogrammierer (glaube die Bezeichnung hier gelesen zu haben) in der Lage ein Programm zu verstehen.
Wenn man also über die Vor- und/oder Nachteile von D (oder was auch immer) diskuttieren möchte, finde ich das total verständlich. Aber berücksichtigt doch bitte für die gleiche Diskussion um D++, D--, D# oder E, dass auch diese Sprachen keine andere ersetzen oder ablösen werden, sondern schaut einfach für welche Anforderungen und welchen Bereich diese Sprache etwas geeigneter sein könnte als eine andere, die Restdiskussion gibt es doch schon.
Gruß Der Unwissende
[Edit]
List-Tag geschlossen
[/Edit]