Microsoft .Net als Entwicklungsplattform: Tom Suter vs. Nicolas Guillet
Artikel erschienen in Swiss IT Magazine 2003/02
In Entwicklerkreisen wird seit längerem eine hitzige Debatte geführt über die einzig wahre Applikations-Enwicklungsplattform. Ist es .Net oder J2EE? Die Debatte führt bis hin zu Beschimpfungen zwischen den Lagern. Dass es auch sachlich geht, zeigen Tom Suter von 4 Screen und Nicolas Guillet von Abacus Research.
Pro: Durch die Unterstützung von Open-Source-Portierungs-Projekten, die Einreichung von C# bei den Standardisierungs-Gremien, durch die Verfügbarkeit der Runtime-Spezifikation und sehr umfangreicher XML-Unterstützung wird seitens Microsoft sehr viel für die Offenheit von .Net getan. Auf der anderen Seite begrüssen wir die Weiterentwicklung von .Net durch eine einzelne Firma. Die Innovationen werden auf diese Weise sehr viel schneller in praxistaugliche Produkte umgesetzt, als wenn Dutzende der "intelligentesten" IT-Köpfe jahrelang an Standards rumbasteln.
Kontra: Wer eine Applikation entwickelt, die nur In-House genutzt wird, wer sowieso bereits Windows einsetzt und intern viel Know-how dafür besitzt, für den ist .Net sicherlich das Richtige. Anders sieht es z.B. aus bei Standard-Applikationen, die von sehr vielen Kunden eingesetzt werden. Spätestens hier stösst man an Grenzen. Das ist vor allem für ein unabhängiges Softwarehaus (ISV) wie unseres ein Problem. Als ISV haben wir es mit Kunden zu tun, die mit einer Vielzahl von Plattformen arbeiten oder planen, das in Zukunft zu tun. Das zwingt uns zu einer möglichst offenen Architektur. Hier versprechen wir uns den grösseren Nutzen von Java.
Pro: Die Sicherheits-Mechanismen, die .Net anbietet, sind äusserst umfangreich. Sicherheit ist jedoch nicht das Problem von .Net, sondern vielmehr von diletantisch aufgesetzten Servern. Leider treffen wir häufig auf Systeme, deren Systemadministratoren mit den Sicherheitsmechanismen von Windows komplett überfordert sind (kein Passwort auf Datenbank, jeder User hat Vollzugriff etc.) Unix, Linux etc. ist insofern nur vermeintlich sicherer, da ein komplett falsch aufgesetztes Betriebssystem dieser Art schlicht und einfach nicht läuft.
Kontra: Das Sicherheitsmodell, sowohl von Java als auch von .Net, ist ok. Microsoft hat im Moment zwar die Nase vorn, gerade wenn es um die feingliedrige Granularität von Zugriffs- und sicherheitsrelevanten Definitionsmöglichkeiten geht. Jetzt ist es an der Java-Community, bei der nächsten Innovationswelle die guten Ideen zu übernehmen und neue einzubauen.
Pro: Grundsätzlich muss zwischen professionellen Entwicklern und Entwicklern ohne professionelles IT-Grundlagenwissen unterschieden werden. Der Umstieg der Entwickler von 4 Screen auf C# dauerte nur zwei bis drei Wochen. Mit der Syntax- und Konzept-Annährung von C# an Java ist ein Umstieg von der einen auf die andere Entwicklungssprache innert kürzester Zeit realisierbar. Somit ist die Entwickler-Frage mehr ein Motivations-Element von interessanten Projekten als von der Programmiersprachen-Syntax. Entwickler ohne Grundlagenwissen werden mit Java und C# gleichermassen scheitern.
Kontra: C# ist an sich eine wunderschöne Programmiersprache - die schönste, die ich kenne. Für mich ist es nicht verständlich, warum mit "Unsafe Code" diese Einfachheit, Einheitlichkeit und Schönheit aufgegeben wird. Denkbar wäre, allen Unsafe Code in unmanaged C++ oder in einer anderen unmanaged Sprache zu schreiben und vom neuen, schönen Code in C# aufzurufen. In der Jav-Welt wird für analoge Problemstellungen JNI verwendet, was zwar auch seine Probleme hat, aber immerhin die Sprache - die zweitschönste - nicht verunreinigt.
Pro: Dies ist derzeit sicher noch ein kleiner Schwachpunkt. Aber durch die verschiedenen Open-Source-Projekte, die die Portierung des .Net-Frameworkes auf andere Plattformen wie Linux vorantreiben, wird Portabilität meiner Meinung nach bis Ende 2003 kein gewichtiges Argument mehr gegen .Net sein.
Kontra: Die (fehlende) Portabilität ist der wichtigste Punkt, der gegen .Net spricht. Da kann Microsoft sagen was sie will, aber de facto ist man als Entwickler an die Windows-Plattform gebunden. Und die Kunden auch: Sie haben keine andere Wahl und müssen Microsoft-Plattformen einsetzen - bei Clients und Servern. Und in einigen Anwendungsfällen betrifft das sogar die Kunden der Kunden.
Pro: Da muss zwischen Entwicklungs-Performance und System-Performance unterschieden werden. Erstere ist durch die sauber abgestimmte und sehr umfangreiche Klassen-Library von .Net drastisch gestiegen - vor allem in der Webentwicklung. Was die System-Performance betrifft, so lassen sich mit den neuen Caching-Mechanismen von .Net sehr performante Applikationen entwickeln. Auch hier gilt: je weniger Basis-Ahnung ein Entwickler hat, desto schlechter ist es um die Applikations-Performance bestellt.
Kontra: Plattformunabhängigkeit hat ihren Preis. Punkto Performance hat .Net Vorteile. Java hat sehr viele Fortschritte gemacht, aber vor allem im Client-seitigen User-Interface-Bereich besteht nach wie vor Handlungsbedarf.
Pro: Da es sich um die Kern-Technolgie der Zukunft von Microsoft handelt, erachten wir den Investitionsschutz als sehr hoch. Weiter lässt sich einfach nicht ignorieren, dass es aktuell Millionen von Microsoft-Installationen gibt und diese noch lange leben werden. Durch die sehr gute Entwicklungs-Performance werden .Net-Applikationen unserer Meinung nach in den meisten Fällen kostengünstiger als Java-Entwicklungen sein, zumal die Stundensätze von Java-Entwicklern derzeit normalerweise höher sind als von Entwicklern im Microsoft-Umfeld.
Kontra: Es ist klar: Microsoft wird es auch morgen noch geben. Anders sieht bei der Technik aus. Hier setze ich ein grosses Fragezeichen: Ich denke hier nur an Technologien bzw. Produkte wie DDE, COM oder VB. Wer früher voll darauf gesetzt hat, hat heute ein Legacy-Problem. Aufgrund der vielen wirklich guten, durchdachten und innovativen Ideen wird .Net sicher einen längeren Technologiezyklus erreichen als etwa DDE oder COM. All dies rechtfertigt mindestens teilweise die doch recht hohen Kosten eines Einsatzes von .Net. Ob aber der einstige Nachfolger von .Net ausreichend rückwärtskompatibel sein wird, steht noch in den Sternen.
Pro: Tom Suter ist Mitbgründer von 4 Screen und als Wirtschaftsinformatiker technischer Verantwortlicher (CTO) bei der 4 Screen AG
4 screen
Anzahl Entwickler: 15
Entwicklungsplattform: Microsoft .Net
Entwicklungsumgebung: Visual Studio .Net
Erste Entwicklungen seit: Dezember 2001
.Net-Applikationen im Einsatz bei:
4 Kunden (ÖKK, Microsoft, 4B, Suva)
Kontra: Nicolas Guillet ist Projektleiter bei der Abacus Research AG
ABACUS Research
Anzahl Entwickler: 60 (40 mit Java)
Entwicklungsplattform: Primär Java (neben Delphi, C++)
Entwicklungsumgebung: Jbuilder, Eclipse u.a.
erste Entwicklungen seit: 1985 (Java seit 1999)
Java-Applikationen im Einsatz bei
allen Kunden mit 2003er Version von Abacus