IT-Academy Logo
Sign Up Login Help
Home - Programmieren - David gegen Goliath



David gegen Goliath

.NET, das neue Marketingschlagwort von Microsoft. Von den einen als technologische Revolution anerkannt, von anderen als schlechte Kopie von Java verdammt. Was genau bietet denn das .NET Framework nun?


Autor: Robert Schrenk (Morraldor)
Datum: 19-02-2004, 21:41:55
Referenzen: Windows Server System Magazine
Schwierigkeit: Fortgeschrittene
Ansichten: 5922x
Rating: 9.4 (5x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Wird sich Microsoft .NET gegen Java durchsetzen?

.NET steckt noch in den Kinderschuhen, ist Java technologisch dennoch ebenbürtig und wird in den nächsten Jahren stark weiterentwickelt werden.

In Anbetracht der Tatsache, dass Microsoft unumstrittener Marktführer bei Desktop-PCs ist und äußerst gutes Marketing betreibt, liegt die Annahme nahe, dass sich .NET früher oder später immer mehr durchsetzen wird, aber was wird von dieser Entwicklung zu erwarten sein?

Trotz aller Vorteile oder Nachteile liegt der springende Punkt in der Plattformunabhängigkeit des Codes.

Philosophie der Plattformen

Obwohl Java und .NET ihre Philosophie in unterschiedliche Richtungen entwickelten ist das Endprodukt nicht sehr unähnlich. Der größte Unterschied zwischen den Plattformen liegt in der Idee, für die sie letzten Endes entwickelt wurden.

Suns Java wurde mit dem Ziel entwickelt auf jeder Plattform laufen zu können, für die es eine Java Virtual Machine gibt. Dem ähnlich läuft ein .NET-Programm ebenfalls auf jedem Computer mit installiertem CLR (Common Language Runtime). Microsoft bedient sich dabei einer eigenen Sprache, nämlich der Microsoft Intermediate Language (MSIL), während Java-Programme in Bytecode umgewandelt werden.

Microsoft bietet durch MSIL den eminenten Vorteil: jede .NET-Klasse im eigenen Projekt einzubinden, egal in welcher Sprache diese erstellt wurde, während man in Java nur Java-Klassen verwenden kann.

Der wirtschaftliche Vorteil einer solchen Technologie liegt auf der Hand. Jeder Entwickler kann die Sprache wählen, die ihm am besten gefällt und trotzdem entwickelt er global einsetzbare Klassen, da diese in MSIL übersetzt werden.

Somit können Entwickler viel Zeit (und Kosten) sparen und ihren Kunden schneller und günstiger auf individuelle Bedürfnisse angepasste Programme liefern können.

Außerdem erlaubt Microsoft mit dieser Technologie, dass Entwickler nicht unbedingt eine neue Sprache wie C# lernen müssen, sondern ihren alten Code direkt ins .NET-Framework einbinden und in der .NET-Variante ihrer Sprache weiterentwickeln können.

Microsofts Schmäh mit dem "portablen Code"

Da es ähnlich wie der Java VM auch in .NET die CLR gibt, könnte man ja annehmen, dass .NET ebenfalls das Potential hat plattformunabhängig zu sein.

Dies ist zwar nicht falsch, allerdings wurde .NET eindeutig darauf ausgelegt auf Windows-Rechnern einsetzbar zu sein. Es wurde zwar von Microsoft für FreeBSD und Mac OS X 10.2 das Framework „Rotor“ entwickelt, es scheint aber von Microsoft Absicht zu sein, dass hier die Linux-Commuity als härtester Konkurrent ausgespart wurde. Die Entwicklung wurde dennoch von einem Projektteam für Linux unter dem Namen Mono gestartet.

Dieses Projekt wird von Microsoft weder unterstützt noch bekämpft.

Ist denn .NET nur eine schlechte Kopie von Java?

Da die Philosphie der beiden Plattformen nicht unähnlich ist, könnte man tatsächlich annehmen, dass .NET die von Sun abgekupferte Microsoft-Variation ist.

Beide Sprachen sind voll objektorientiert, unterstützen Einfachvererbung und haben eine integrierte Garbage Collection. Beide Sprachen warten mit einer Vielzahl an vorbereiteten Klassen auf wie UI, IO, Security, Web Access, Collecting Objects und anderen Standardfunktionen.

Trotz einiger marginaler Unterschiede kann man keiner Plattform eine Auszeichnung im Fach "Überlegenheit" verleihen. Die Bewertung dieser Unterschiede liegt eher in den Präferenzen des Programmierers.

Etwa stelle Javas Exception Handling sicher, dass Fehler absichtlich unter den Teppich gekehrt werden müssten, während man in etwa in C# Exceptions behandeln kann, aber nicht muss. Wenn also ein Java-Programm läuft, dann läuft es, während bei C# unerwarteterweise Fehler auftreten könnten.

IDE, hier hat MS die Nase vorne

Das Visual Studio .NET ist eindeutig das hochwertigste am Markt verfügbare Entwicklungstool. Obgleich etwa der JBuilder von Borland oder das Eclipse-Project von unterschiedlichen Entwicklern (IBM etc.) einen ähnlichen Funktionsumfang bieten, sind es gerade die kleinen Spielereien, bei denen MS die Nase vorne hat.

Aus eigener Erfahrung kann ich sagen, dass die Code Completion schneller und praktischer abläuft (meistens ist es nur notwendig 1-2 Buchstaben zu tippen) und auch Fragen zu Fehlern werden durch direktes "Nachschlagen" im installierten MSDN schnell beantwortet, während dies bei Java nicht so gut gelöst ist.

Eigentlich ist .NET also etwas für die bequemeren Programmierer und wird sich nicht bei Profi-Entwicklern durchsetzen?

Ganz im Gegenteil. Microsoft ermöglich durch die beiden großen Vorteile, nämlich dem extrem guten Visual Studio und der MSIL eine rasche Entwicklung von Programmen, da man schnell eine passende Klasse findet anstatt sie selbst programmieren zu müssen.

Hier bietet sich also für Unternehmen, deren Kunden vor allem Windows als Betriebssystem nutzen eine Chance Entwicklungszeit und –kosten zu verringern.

Da Microsoft nicht viel Motivation zeigt die Plattformunabhängigkeit zu forcieren wird .NET vermutlich eher bei Clientprogrammen Verwendung finden, da hier Windows als OS stärker verbreitet ist.

My 2 Cents

Nach meinen Recherchen bin ich zu der Ansicht gekommen, dass .NET nicht völlig plattformunabhängig sein wird. Daher ist eine Entwicklung in Java aus der Sicht der Informatiker sicherlich zielführender, um eine möglichst breite Masse an Usern zu erreichen.

Als Wirtschaftsinformatiker an der WU-Wien jedoch sehe ich den enormen wirtschaftlichen Vorteil in .NET und bin von dieser Technologie begeistert. Microsoft hat mit .NET seine Monopolisierungstendenzen zwar weiter vorangetrieben, was ich zwar ablehne, wird jedoch mit dieser Technologie nicht zuletzt aufgrund der wirtschaftlichen Vorteile sicherlich rasch Fuß fassen.

Die Grafik zeigt die rasche Einbindung von .NET. Bereits jetzt ist das Framework ein fester Bestandteil am Software-Markt.

Ich glaube, dass es sich nur noch für größere Firmen auszahlen wird in Java zu investieren, da hier die Software für lange Zeit entwickelt wird und sie auf jeder Art von Hardware und Betriebssystemumgebung laufen kann, während für mittelgroße und kleine Firmen bzw. für Endbenutzer eher .NET interessant ist.


paedubucher
Professonial
Beitrag vom:
01-09-2004, 21:29:07

Microsoft ist nicht immer gleich schlecht ;-)

Microsoft will plattofmunabhängig werden, aber für die Linux Welt wird kein JIT-Compiler entwickelt. Tatsache ist, dass .net rein theoretisch plattformunabhängig ist. Auch wenn Microsoft einen JIT-Compiler für Linux entwickeln würde, die Linux-Community würde ihre eigenen entwickeln!
Ich habe mich auf jeden Fall in C# mit meinen C und VB ERfahrungen sauwohl gefühlt. Man kann C Syntax verwenden und GUI's mit der Einfachheit von VB erstellen!

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04510
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06247
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0