Nicolas Guillet - Swiss IT Magazine

Werbung
ITMAGAZINE
Nicolas Guillet: Wenn .Net, dann C#
15. Juni 2001 - Die «beste» Programmiersprache gibt es nicht, nur eine beste Programmiersprache für einen
bestimmten Job. Die "beste" Programmiersprache gibt es nicht, nur eine beste Programmiersprache für einen bestimmten Job. Mit
C# will Microsoft eine breite Palette unterschiedlichster Aufgaben abdecken können. C#, deren Wurzeln bei C++
und Java liegen, stellt eine echte Verbesserung gegenüber diesen beiden Programmiersprachen dar.
Die Evolution der Programmiersprachen
Zunächst fällt auf, dass es viel weniger Regeln als in C++ gibt. Ferner lassen die Möglichkeiten der
Quelltext-Dokumentation JavaDoc geradezu altmodisch erscheinen. Besonders gelungen sind die sogenannten
Attribute, mit denen jeder Klasse, jeder Methode, jedem Feld und jedem Event beliebige Daten zugeordnet
werden können. Während des Programmablaufs eröffnen sich dadurch unglaublich vielfältige Möglichkeiten, weil
auf all diese Informationen zugegriffen werden kann.
Ein grosser Nachteil von Java ist die Semantik der Parameter beim Methodenaufruf: Es ist beispielsweise nicht
möglich, einen "int by Reference" zu übergeben. Alle primitiven Typen werden zwangsweise "by Value"
übergeben. Die Verwendung eines Integer-Objektes hilft nichts, weil es nicht mutierbar ist. Zwar trifft letzteres
auch auf C# zu, aber dank dem "ref"-Keyword können wenigstens mit primitiven Typen Werte zurückgegeben
werden. Wird hingegen weder "ref" noch "out" verwendet, muss bei jedem Parameter überlegt werden, ob es
sich um ein Objekt oder um einen primitiven Typ handelt: Je nachdem könnte die aufgerufene Funktion etwas
daran ändern oder nicht. Ich kann nicht nachvollziehen, warum ein Programmierer sich in dieser Situation
Gedanken darüber machen muss, ob er mit einem primitiven Typ oder mit einem Objekt arbeitet.
Mit einem einzigen Attribut eingeseift
Sehr vorteilhaft für den Entwickler ist hingegen "WebMethod". Jede Methode kann damit zu einer
"SOAP"-Methode für den Aufruf via Internet z.B. für einen Web Service freigegeben werden, wobei gleichzeitig
ein Beschreibungstext mitgegeben werden kann. Dieser wird direkt in eine automatisch erstellte XML-Datei für
WSDL (Web Services Description Language) übernommen, welche für professionelle Web Services unentbehrlich
ist. Einfacher geht's kaum mehr.
Keine Sandbox, viel zu wenig Sicherheit
Aber kein Licht ohne Schatten: Mit Java können Applets geschrieben werden, die in einem Browser relativ
gefahrlos ausgeführt werden können. Microsoft setzt dagegen immer noch auf signierten Code, was zwar in der
Theorie genug sicher ist, in der Praxis jedoch auf Probleme stösst. Dass sich mit C# keine Applets schreiben
lassen, die in der abgeschirmten Welt eines "Sandkastens" ausgeführt werden könnten, erweist sich nicht nur
wegen der Sicherheit als grosser Nachteil. Denn wer beispielsweise aus Bandbreitenüberlegungen einen,
vielleicht kleinen Teil seines Codes im Browser auf dem Client ausführen möchte, ist gezwungen, die
Programmiersprache zu wechseln. Der Verlust vieler Synergien ist die Folge, denn JavaScript ist dann beinahe
die beste Lösung. Bei Java kann hingegen nicht nur die gleiche Sprache auf dem Client und dem Server
verwendet werden, es lassen sich sogar die gleichen Klassen teilen.
Ein weiterer Unterschied zu Java: C# läuft nicht in einer Virtual Machine. Die "Intermediate Language", welche
der C# Compiler generiert, muss vollständig in den nativen Code der Zielmaschine umgewandelt werden. Obwohl
der Zeitpunkt dieser Umwandlung beeinflusst werden kann, ist eine VM in vielen Fällen vorteilhafter und
teilweise - erstaunlicherweise - schneller. Beide Konzepte bieten die Möglichkeit, die Anzahl und Generation der
Prozessoren bei der Generierung des nativen Codes zu berücksichtigen.
Ein Quantensprung
Alles in allem ist C# aber eine brauchbare Sprache, welche von den Möglichkeiten, der Entwicklungsumgebung
und der Produktivität als Quantensprung bezeichnet werden darf, auch wenn eine gewisse Reife und Bewährung
noch fehlt. Für alle, die ohnehin nur auf Microsoft-Plattformen zu Hause sind, ist C# eine ausgezeichnete
Alternative zwischen der niedrigen Produktivität von C++ und Basic, welches einem nur wenig zu
übersichtlichem Sourcecode zwingt. Mit C# beweist Microsoft einmal mehr seine Innovationskraft. Copyright by Swiss IT Media 2017 
Herunterladen