Microsoft und Open Source

Vom Saulus zum Paulus

18.02.2009
Von Markus Franz

Freie .NET-Programmiersprachen

Einen ersten Namen hat sich Microsoft im Open-Source-Umfeld mit der Öffnung der .NET-Plattform für etablierte Sprachen aus dem Linux-Umfeld gemacht. Zunächst war .NET nur als Framework für die Integration unterschiedlicher Microsoft-Technologie gedacht: Von Visual Basic über C++ bis hin zu Schnittstellen wie Corba sollten alle Tools und Frameworks auf eine einheitliche Plattform transportiert werden, die fit für zukünftige Entwicklungen ist. Dabei hat Microsoft von Anfang an vorgesehen, dass .NET-Applikationen auch in anderen Programmiersprachen geschrieben werden sollen.

Einer der wichtigsten Vertreter freier Skriptsprachen ist IronPython, die Implementierung des Python-Interpreter für die .NET-Plattform. Python ist eine auf Linux/Unix sehr beliebte Skriptsprache, die immer mehr das alte Perl für kleine administrative Aufgaben ersetzt. Aber auch große Applikationen werden in Python implementiert, es gibt mit Zope sogar einen richtigen Application Server. Die Liste der Anwender beginnt bei der Nasa und endet bei Wetterdiensten im Web. Auch wenn die Entwicklung immer der offiziellen Python-Distribution etwas hinterher hinkt und es derzeit noch keine Implementierung von Python 3.0 gibt, ist IronPython spannend. Die Sprache ist einfach zu erlernen, zwingt zu sauberer Objektorientierung und fördert das Rapid Prototyping. Viele verschiedene Programmierparadigmen lassen sich damit problemlos umsetzen.

IronPython ist selbst komplett in C# geschrieben und läuft nicht nur auf dem Microsoft .NET Framework. Stattdessen zielt es auch auf Novell Mono.NET. Die Kombination Mono mit IronPython auf Linux dürfte aber sicher nur für eine Minderheit der Anwender interessant sein. Besonders nützlich ist IronPython, da der Interpreter selbst relativ einfach in volle .NET-Applikationen eingebettet werden kann - und so Python-Skripte als Vermittler zwischen .NET-Objekten eingesetzt werden können. Die einzige Schwäche von IronPython liegt in der unvollständigen Implementierung der Standardbibliothek der C-basierenden Ausgabe: Hier gibt es immer wieder kleinere Lücken.

Ebenso spannend ist IronRuby: Die erste .NET-Ruby-Implementierung steht seit Ende 2007 öffentlich zur Nutzung bereit. Ruby selbst ist seit längerem eine interessante Skriptsprache. Sie verbindet ebenfalls die Flexibilität von Perl mit einem soliden Objektmodell und ist gleichzeitig interpretiert, sodass schnelle Entwicklung und Änderungen möglich sind - und Entwickler genießen weiterhin dynamische Typisierung und ähnliche Annehmlichkeiten. Ruby bietet native Unterstützung für Unicode und skaliert auch auf Mehrkernprozessoren über effizientes Threading. Ruby on Rails ist ein spannendes Framework für die Entwicklung Web-basierender Anwendungen. Mit IronRuby kommen alle diese Vorteile auf die .NET-Plattform. Als Entwickler hat man die Freiheit, sich die jeweils beste Sprache für die jeweilige Aufgabe auszusuchen. Die Open-Source-Community kann in gewohnter Python-/Ruby-Weise auch auf der .NET-Plattform professionell arbeiten.

Sowohl IronPython als auch IronRuby, werden aktiv durch Mitarbeiter von Microsoft entwickelt und auf CodePlex als Projekt vorangetrieben. Beide Projekte sind ebenfalls richtige Open-Source-Software unter der MS-PL oder MS-RL. Die Visual-Studio-Integration von IronRuby schlägt IronPython um Längen. Microsoft selbst arbeitet an weiteren Sprachen unter einer Open-Source-Lizenz, jedoch sind diese bei Microsoft Research noch in der frühen Entwicklung. Praktischen Nutzen werden auf mittlere Sicht nur Silverlight oder Moonlight bringen, mit denen sich Rich-Client-Anwendungen entwickeln lassen - dann sogar in IronPython oder IronRuby für den Client. ActiveState, ein bekannter Anbieter von Tools für Skriptsprachen, bietet mittlerweile auch eine .NET-Implementierung von Perl, die aber von zweifelhafter Qualität ist.