Mit der Combo aus Dotnet-Plattform, der Programmiersprache C# und der IDE Visual Studio hat Microsoft ohne Zweifel eine fortschrittliche Programmierumgebung geschaffen. Mit der bevorstehenden Version 2.0 von Mono trifft Dotnet - nicht ganz ohne Zutun der Redmonder - auf ernsthafte Unterstützung aus dem Linux- und Open-Source-Lager. Das Linux-Magazin führt mit einer vierteiligen Serie in die Programmierung der nun auch in einer leistungsfähigen Linux-Version verfügbaren Sprache ein.
Als Grund für die Beliebtheit von C# unter Windows führen Anhänger an, dass Microsoft aus den Fehlern der Vergangenheit, etwa bei C++ oder Java, gelernt hat (siehe Kasten "Von C bis C#").
|
C ist ein Spross der Unix-Entwicklung, der dem Versuch, das Betriebssystem unabhängiger von der Hardware zu machen, entsprang. Als rein prozedurale Sprache brachte C jedoch viele Einschränkungen mit sich. Objektorientierte Programmiersprachen wie Simula und Smalltalk zeigten eine Lösung auf, indem sie Daten und Methoden in unabhängigen Einheiten, den Klassen, kapselten. C++ versucht diese Konzepte in die C-Welt zu übertragen. Zumindest an der Zahl der verfügbaren Publikationen gemessen kommt gegenwärtig aber Java der Status des beliebtesten C-Ablegers zu.
Java führt neben der architekturbedingten Portabilität eine Vielzahl fortgeschrittener Sprachkonzepte wie beispielsweise einen Garbage Collector ein. Microsofts eigener Java-Implementierung Visual J++ war jedoch wegen eines Rechtstreits mit Sun nur ein kurzes Leben beschieden. Stattdessen meldeten sich die Redmonder mit der Dotnet-Plattform [1] und deren Hauptsprache C# zu Wort. Zusammen mit Intel und Hewlett-Packard hat Microsoft C# bereits im Jahr 2000 bei der ECMA zur Standardisierung angemeldet. Aktuell gültig ist Version 3.0 des Sprachstandards.
Gilt Java manchen als das bessere C++, so erscheinen viele Konzepte von Dotnet und C# wie eine Erweiterung der Ideen von Sun. Das Konzept der Virtual Maschine, die in Dotnet Common Language Runtime heißt, ermöglicht hier das Zusammenspiel verschiedener Programmiersprachen. C#-Bibliotheken sind zum Beispiel mit kleinen Einschränkungen auch von Visual Basic aus nutzbar und umgekehrt.
C# bietet außerdem einen im Vergleich zu Java noch einmal erweiterten Sprachumfang. Anders als Java erlaubt es einen direkten Zugriff auf Speicheradressen und unterstützt Pointer in C++-Manier, allerdings nur in explizit als »unsafe« markiertem Code. Auf private Variablen greifen Entwickler dank »get()«- und »set()«-Methoden einfacher zu und können dabei noch beliebigen Code ausführen. Ein neues Feature, das die künftige Mono-2.0-Release bereits unterstützt, ist die Language Integrated Query (LINQ), die den Datenzugriff mit SQL-ähnlicher Syntax erlaubt.
|
Trendwende
Die bevorstehende Mono-Release 2.0 [2] überwindet die Plattformbarriere: Laut den Draft Release Notes [3] unterstützt Mono nun den vollen Sprachumfang des C#-3.0-Standards. Gegenüber früheren Versionen - das Projekt startete bereits 2001 - hat die Praxistauglichkeit unter Linux große Fortschritte gemacht.
Außerdem laufen unter der mit Mono implementierten Common Language Runtime wie in Microsofts eigener Version nicht nur C#-Programme. Die virtuelle Maschine unterstützt ein gutes Dutzend weiterer Programmiersprachen [4]. C# ist zudem auch in der Lage, nativen C++-Code einzubinden. So lassen sich Programme mit hoher Performance schreiben, die trotzdem in weiten Teilen des Code auf den Komfort von C# zurückgreifen.
Grafische Qualitäten
Anbindungen an Gnome und, leider deutlich weniger entwickelt, an QT/KDE erlauben es, nun auch unter Linux mit C# grafische Programme zu schreiben. C++- oder Java-Programmierer lernen die C#-Syntax innerhalb weniger Tage. Die wohl wichtigste Einschränkung bleibt, dass nicht alle unter Windows verfügbaren Dotnet-Bibliotheken für Mono existieren. In manchen Fällen dürfte es wegen der zügigen Entwicklung von Microsofts Dotnet-Plattform oder lizenzrechtlicher Probleme auch schwerfallen, die Lücken zu schließen. Hier ist die Open-Source-Community gefragt, die Mono-Entwickler bei ihrer Arbeit zu unterstützen. Wie beeindruckend das bereits Erreichte aller Einschränkungen zum Trotz ist, zeigt die Mono-Dokumentation [5].
« Zurück
1
2
3
4
5
6
Weiter »