Open Source im professionellen Einsatz

Miguel de Icaza über Dotnet, Mono und C#

Compilerbau macht Spaß

Auf der Entwicklerkonferenz Fosdem hatte das Linux-Magazin Gelegenheit, mit Miguel de Icaza über Themen zu sprechen, die in jüngster Zeit für Aufregung sorgten.

Der Gnome-Begründer Miguel de Icaza hat mit seiner Begeisterung für Microsofts Dotnet-Technologie und deren freie Implementierung Mono viele verunsichert. In diesem Interview spricht er über seine Motivation.

Linux-Magazin: Was ist für dich der faszinierende Punkt an Dotnet und C#, ist es die Sprache selbst?

Miguel de Icaza: Nein, der faszinierendste Punkt ist die Laufzeitumgebung, die für mehrere Sprachen ausgelegt ist. C# ist einfach nur eine Sprache, mit der sich gut für diese Plattform entwickeln lässt. Aber dazu kommen ja auch Sprachen wie Fortran oder Pascal, C, C++ und so weiter. Die Runtime Engine wirkt wie ein Hub, der all diese Techniken zusammenbringt.

Linux-Magazin: Fangt ihr bei eurer Entwicklungsarbeit mit der Sprache oder mit dem Framework an?

Miguel de Icaza: Mit beidem parallel. Mono sind ja eigentlich drei Dinge: Der C#-Compiler, Klassenbibliotheken, die mit den Dotnet-Bibliotheken kompatibel sind, und die Laufzeit-Maschine (Runtime Engine).

Linux-Magazin: Wie groß ist das Kernteam für die Arbeit an Mono?

Miguel de Icaza: Bei Ximian sind es fünf Leute, die Vollzeit daran arbeiten, und ich. Natürlich kriegt man so etwas wie Dotnet nicht mit fünf Leuten hin, deshalb ist es ja auch ein Open-Source-Projekt. Außerhalb von Ximian gibt es vielleicht 60 bis 70 Leute, die Code beitragen - und zwar aus ziemlich unterschiedlichen Gründen. Einige wollen Mono für Embedded Systems, einige wollen es für Webservices, andere wollen weg von Windows auf dem Server, obwohl sie Dotnet mögen.

Linux-Magazin: Warum hast du dich von Gnome zurückgezogen?

Miguel de Icaza: Moment! Bei Mono geht es doch genau darum, Gnome voranzubringen. Letztlich nutzen all diese Projekte wie Gnome, KDE, Mozilla, ziemlich alte Technologien. Okay, in C++ gibt es immerhin Objekte, aber es fehlen viele praktische Dinge: Buffer Overflows sind möglich, es gibt keine automatische Garbage Collection, keine Threading-Unterstützung. Für alle diese Dinge muss man wieder eigene Untersysteme entwickeln.

Um ein konkretes Beispiel zu bringen: Evolution hat 1600 asynchrone Systeme. Die haben wir nicht eingebaut, weil wir das wollten. Um den Nutzer zufrieden zu stellen, muss man immer wieder ziemlich komplexe Dinge bauen. Viele Programmierer erfinden diese grundsätzlichen Dinge immer neu. Was Dotnet hier tut: Es beseitigt diese Probleme. Es soll also ein Upgrade für die Gnome-Entwicklungsplattform werden. Für Evolution haben wir zweieinhalb Jahre gebraucht, mit 17 Programmierern. Was wir wollen, ist, in dieser Zeit vier Anwendungen schreiben statt nur einer.

Das Team, das jetzt an Mono arbeitet, ist haargenau dasselbe, das früher Bonobo gemacht hat. Wir glauben immer noch an Linux auf dem Desktop, im Moment will jeder Webservice-Anwendungen auf Linux bringen, Ximian geht es aber um den Desktop. So ein Framework kann ja für vieles gut sein, wir kümmern uns um GUIs, andere um Webservices.

Linux-Magazin: War es deine Absicht, einen Schritt über Java hinauszugehen?

Miguel de Icaza: Oh, ich liebe Java, das Problem dabei ist, dass man wirklich alles auf Java bringen muss, also eine vollständige Umstellung der existierenden Code-Basis zu einer neuen. Bei Dotnet gibt es diesen evolutionären Ansatz. Man muss keinen Code wegwerfen, es gibt nicht die Einstellung "Mein Weg ist der einzig wahre". Man kann also seine existierenden Anwendungen weiterhin wachsen lassen, aber statt sie mit dem alten Code zu erweitern, nimmt man Teile von Dotnet. Man muss aber nie etwas neu schreiben.

Linux-Magazin: Die Frage, die sich sicherlich viele stellen: Wie will man vermeiden, dass Microsoft den Standard ständig erweitert?

Miguel de Icaza: Nun, das macht eigentlich gar nichts. Was Dotnet anbietet sind Sprachen im Überfluss, Garbage Collection, Threading und ein paar hübsche Bibliotheken. Das ist schon eine sehr große Verbesserung der Code-Basis von Gnome. Sie werden Gnome-Anwendungen viel robuster machen und die Entwicklungszeit enorm verkürzen.

Wenn sich Microsoft dazu entschließen sollte, 1000 neue Klassen hinzuzufügen, ist es war ärgerlich, sie nicht zu haben. Das heißt aber doch nicht, dass wir die schon existierenden nicht nutzen können. Die Entwicklung von Gnome wird sich so oder so verbessern, das ist letztlich mein Ziel.

Linux-Magazin: Und was ist mit APIs, die sich ändern?

Miguel de Icaza: Was Microsoft mit Dotnet erreichen will, ist doch, der DLL-Hölle zu entkommen. Dotnet hat deshalb ausgefeilte Möglichkeiten für API-Upgrades, man bekommt also nicht die Probleme APIs kaputtzumachen.

Linux-Magazin: Glaubst du nicht, dass mehr dahinter stecken könnte?

Miguel de Icaza: Man kann sich natürlich das ganze Leben lang den Kopf darüber zerbrechen, was Microsoft wirklich will. Ich tue das jedoch nicht. Mit dem Dotnet-Framework habe ich die Möglichkeit, Entwicklungswerkzeuge voranzubringen, und das werde ich tun.

Linux-Magazin: Was passiert, wenn Microsoft Patente einsetzt, um Mono zu verhindern?

Miguel de Icaza: Wir werden alles amputieren, was Patente verletzen könnte. Wenn wir dann inkompatibel zu Dotnet sind, nehmen wir das hin.

Linux-Magazin: Dir geht es also in erster Linie um Entwicklungswerkzeuge, nicht um Interoperabilität?

Miguel de Icaza: Genau so ist es. Die Kompatibilität steht für uns erst an zweiter Stelle. Im Moment versuchen wir zwar beides, wenn es aber Patentprobleme geben sollte oder wir den Vorsprung nicht mehr aufholen können, nehmen wir die Inkompatibilität in Kauf.

Linux-Magazin: Wie ist das Verhältnis von Mono zu Dot GNU? Anfangs schien es vielen so, als sei Mono als Untermenge von Dot GNU gemeint.

Miguel de Icaza: Das ist eine lange Geschichte. Ich habe von Dot GNU erst fünf Tage vor der offiziellen Ankündigung erfahren. Dot GNU sollte ja erst einmal nur eine Alternative zu Passport sein. Nur dann wollten sie auch eine Laufzeitumgebung schreiben. Nur allein für die Passport-Alternative hat das ja nicht allzu viel Sinn. Es war also klar, dass es auf ein Framework hinausläuft. Dann kam ein Entwickler hinzu, der von sich aus schon mit einer Implementierung begonnen hatte.

Inzwischen ist das wohl eine richtige Firma, mit Businessplan, Java, Sicherheitssystemen, Authentifizierung und so weiter. Also eine große Sache. Ich weiß nicht, wie ich das richtig beschreiben soll, und verfolge es auch nicht näher.

Linux-Magazin: Was ist an Entwicklungswerkzeugen geplant oder schon fertig?

Miguel de Icaza: Der C#-Compiler ist self hosted, er kompiliert sich also selbst, das ist ein wichtiger Meilenstein. Zurzeit konzentriere ich mich auf die Runtime Engine, das ist eine enorme Arbeit.

Linux-Magazin: Hattest du vorher schon Erfahrungen im Compilerbau? Oder habt ihr Compiler-Experten im Team?

Miguel de Icaza: Ich habe den Compiler fast ganz allein geschrieben. Vorher hatte ich da eigentlich wenig Erfahrung, das ist mein erster ernsthafter Compiler. Inzwischen braucht es wenig Zeit, weil Dotnet und C# wirklich gute Plattformen sind. Ich kann mich ganz auf Compiler-Probleme konzentrieren und nicht auf die Sprache an sich. Es ist überhaupt nicht schwer. Man kauft ein Buch, liest etwas, probiert es aus und bekommt Erfahrungen. Das macht wirklich Spaß.

Linux-Magazin: Vielen Dank für das Gespräch.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook