Hej,
Die Vorteile die Java hingegen gegenüber z.B. C++ bietet überwiegen so dramatisch
Die da wären ...?
* Durch den Wegfall der Pointerarithmetik und einer manuellen Speicherverwaltung fallen viele Probleme schlicht weg. Der Code wird zudem besser wartbar und lässt sich auch einfacher entwickeln.
* Die Plattformunabhängigkeit.
* Das Vorhandensein einer umfassenden und zudem kostenlosen Klassenbibliothek.
* Java ist leichter zu lernen.
Die Nachteile sind:
* Eine mangelnde Maschinennähe, die sich aber durchaus auch erreichen lässt, wen man den gleichen Aufwand betreibt wie bspw. unter C/C++.
* Die Performanceschwäche. Allerdings muss man sich gerade bei dem letzten Punkt fragen ob dieser wirklich kritisch ist, wenn z.B. der geschwindigkeitsbestimmende Schritt die Nutzerinteraktion an einer GUI ist, oder wir von Unterschieden im ms-Bereich sprechen. Ferner wurde auch schon gezeigt, dass sich durch Just-In-Time Compiler Performanceverbesserungen gegenüber nativ kompilierten Code erreichen lassen.
Oder wir verstehen unter "SDK" etwas verschiedenes.
Naja, die Grenze ist wie ich finde schwammig:
SDK = Software Development Kit: Kernbibliotheken, Compiler, ggf. Laufzeitumgebung, Dokumentation
IDE = Integrated Development Kit: Eine Software die die Funktionalität des SDK komfortabel verfügbar macht.
Weiß ich nicht; ich stehe den .NET-Geschichten sehr kritisch gegenüber [...]
Welchen Nachteil siehst du denn?Für den Programmierer: Er muss wegen einer Handvoll Funktionen massenhaft Doku studieren, da sich in einem so umfangreichen Framework einzelne Funktionen oder Gruppen von Funktionen meist nicht isoliert betrachten lassen, sondern intensiv mit dem Rest der Bibliothek verknüpft sind. In der Zeit, die der Programmierer mit Lesen der Originaldoku, Lesen von Sekundärquellen und Ausprobieren verbringt, hätte er das bisschen, was er eigentlich brauchte, i.d.R. schon längst selbst geschrieben.
Das mag auf einen erfahrenen Programmierer zutreffen. Gerade bei einem Anfänger seh ich das anders: 1.) Muss ich nicht wissen wie eine Funktion im Detail arbeitet, mich interessiert nur, was rein und raus geht, um den Rest haben sich bereits zuvor andere schlaue Menschen Gedanken gemacht. 2.) Ist diese Arbeit, sich nämlich mit einer Klassenbibliothek auseinanderzusetzen eine Investition, die sich sehr schnell bezahlt macht.
Dann hätte er außerdem den Vorteil, dass sein Code für ihn durchschaubarer und leichter zu pflegen ist, weil er weiß, was er letzten Sommer getan hat.
Und das wird dadurch erleichtert, dass ich meinen Code durch immer wiederkehrende Komponenten unnötig und selbständig aufblähe, als auf eine Sammlung bereits fertiger und getesteter Komponenten zurückzugreifen?
Hätte ich für meine Windows-Applikationen irgendein Quasi-Standard-Framework wie z.B. MFC oder .NET benutzt, hätte ich schätzungsweise die drei- bis vierfache Zeit gebraucht,
Glaub ich nicht.
und das Endprudukt hätte ein Vielfaches an Code-Größe,
Das Gegenteil ist der Fall. Die Standardbibliotheken der Laufzeit darfst du ja nicht mitzählen, die sind ja sowieso schon vorhanden.
und ich wüsste zum Teil gar nicht, was meine Programme in Wirklichkeit tun.
Das was du programmiert hast, bzw. was in der Doku der von dir verwendeten Fremdbibliotheken steht.
Für den Anwender: Eigentlich nur, dass er gezwungen ist, sich sein System mit mehreren 100MB Ballast zu verunreinigen.
Dass Microsoft hier mal wieder weit übers Ziel geschossen ist, seh ich genauso. Das JRE mit 15-23 MB je nach Zielsystem halte ich jedoch für absolut zumutbar.
Beste Grüße
Biesterfeld
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz