Daniel Thoma: Vorteile .NET

Beitrag lesen

Hallo ´Arndt,

welche Vorteile habe ich, wenn ich in .net programmiere. Ok mir ist es schon klar, .net ist die völlig neue MS-Technologie.

Ja und eine für MS strategisch ziemlich wichtige. Das wird wohl bedeuten, dass Du mit .Net ziemlich schnell ziemlich viel weniger Ärger haben wirst, als mit dem älteren Zeug, weil sie es dann nicht mehr groß pflegen ;-)

Aber ein .NET Programm ist doch langsamer als ein z.B. mit VB6 entwickeltes Programm, da doch der Quellcode erst compiliert werden muß.

Die erste Frage bei diesem Argument lautet immer: Ist das bei Deinen Anwendungen irgendwie relevant?
Wenn Du Windows-Applikationen schreibst, ist es das wahrscheinlich nicht.

Für mich ist das ganze ähnlich der Verbesserungen zur Objektorientierten Progrmamierung seinerzeit in Turbo Pascal 6.0. Trozdem konnte man seine Projekte auch ohne Objektorientierte Programmierung fertigstellen.

Klar, aber kann man sie auch zu den gleichen Kosten und in der gleichen Zeit fertig stellen, wie jemand, der objektorientiert vorgeht und das auch beherrscht? In einer Sprache mit automatischer Speicherverwaltung wie es die .Net-Sprachen sind entwickelt sich nochmal ein gutes Stück effektiver und flexibler. Das sind oft sehr viel wichtigere Faktoren.

Was die Performance von VMs angeht, folgende Artikel ganz interessant:
< http://www.ibm.com/developerworks/java/library/j-jtp09275.html>
< http://java.sun.com/products/hotspot/whitepaper.html#3>

Gerade bei objektorientierten, dynamischen Sprachen wie Java oder C# greifen Optimierungen herkömmlicher Compiler nicht oder nicht so gut.
Beispielswiese findet normalerweise kein Inlinig (Einfügen des Codes einer Methode in eine andere) bei polymorphen Methoden statt, weil der Compiler nicht weiß, welche Methode tatsächlich zur Laufzeit aufgerufen wird.
Bei dynamischem Laden von Klassen zur Laufzeit ist zur Übersetzungszeit u.U. noch nicht mal der Code der Methode bekannt, die dann ausgeführt wird.
JIT-Compiler können das aber tun, da sie eben wissen, welche Methode (meistens) aufgerufen wird. Und gerade bei stark objektorientierten Programmen ist Inlining sehr wichtig, da die einzelnen Methoden oft recht kurz sind, und so wenig lokale Optimierungsmöglichkeiten bieten.

Früher hat es ausgereicht html zu können und man konnte viel verdienen.

Das hat wohl noch nie gestimmt ;-)
Man konnte während der Boom-Phase wahrscheinlich mehr damit verdienen, als man es heute kann. Aber selbst damals hat das jämmerlichste .com-Unternehmen schon mehr gebraucht als HTML.

Grüße

Daniel