BASTA 2014 Keynote - Die neue Offenheit

23 September 2014 - .NET, Azure

Open Source = kein Interesse mehr? Nicht mehr.

Zugegeben, was Open Source im Microsoft-Umfeld betrifft, bin ich kein uneingeschränkter Optimist. Zu lange war „Open Source“ ein Codewort für „wir haben das Interesse verloren, die Community soll sich drum kümmern“. In dementsprechend vielen Diskussionen wurde ich bezüglich „Roslyn“, also die neue Compilerplattform für C# und VB, verwickelt. Als veröffentlich wurde, dass Roslyn Open Source wird, wurde ich immer wieder gefragt, ob das das Ende von C# bedeutet.

Tatsächlich hat Microsoft mit der Vorgehensweise im Projekt Roslyn überzeugt, Open Source ernst zu meinen. Im Unterschied zu vielen anderen, negativen Beispielen sieht man hier von Microsoft nämlich eine „Open Source First“ Strategie. Statt ein Projekt am Ende seines Lebenszyklus oder direkt aus einer frühen Betaphase in die Offenheit zu entlassen, wird bei Roslyn dieser Schritt am Beginn der produktiven Nutzen in Visual Studio vollzogen. Bedenkt man, welche Unmengen an Ressourcen Microsoft in Roslyn investiert hat, ist das ein deutliches Zeichen.

Offenheit heißt auch Plattformunabhängigkeit

Eine weitere Besonderheit ist, dass Offenheit nicht mehr nur als Veröffentlichung des Quellcodes verstanden wird sondern sich Roslyn und auch große Teile von .NET in Hinblick auf die unterstützte Plattform öffnen. In Zukunft testet Microsoft mehr und mehr von .NET selbst bereits auf Mono und Linux, um sicherzustellen, dass die Produkte und Bibliotheken auch dort laufen. Microsoft arbeitet intensiv mit Firmen wie Xamarin zusammen, um .NET unter anderem auf Android und iOS zu etablieren. Erinnert man sich, dass Microsofts Cloudplattform Azure jetzt schon seit einiger Zeit Linux als gleichwertige Plattform zu Windows unterstützt und durch die Nokia-Übernahme auch Android Telefone im Programm hat, ist dieser Schritt nur konsequent. Microsoft erkennt an, dass es speziell am Server und am Phone nicht nur Windows gibt und bietet Zusammenarbeit statt gegenseitiges Bekämpfen an.

Woher kommt der Sinneswandel?

Manch einer fragt sich vielleicht, woher der Sinneswandel kommt. Angesichts der finanziellen Ergebnisse und des immer noch beeindruckenden Marktanteils von Windows agiert Microsoft bei weitem noch nicht aus einer Position der Schwäche und gibt auf. Der Grund ist aus meiner Sicht der fundamentale Wandel von Microsoft in Hinblick auf das Geschäftsmodell. Musste man früher Windows und darauf aufbauende Produkte um jeden Preis pushen, verdient man heute zum Beispiel mit Linux auf Azure oder Office365 auf iPad gutes Geld. Windows ist immer noch wichtig, die Cloud hat für Microsoft aber eine rasant steigende Bedeutung. Vor diesem Hintergrund ist es leichter, Konkurrenten willkommen zu heißen. Solange die Anwender direkt oder indirekt die Microsoft Cloud verwenden, ist alles gut.

Offenheit für Entwickler

Was bedeutet die neue Offenheit für Entwickler? Aus meiner Sicht eine grundlegende Änderung der täglichen Arbeit. Viele haben sich in der Vergangenheit für Microsoft entschieden, da sie von dort eine zusammenpassende Entwicklungsplattform erhalten haben. Alle ein oder zwei Jahre ein neues Visual Studio Release, einmal im Jahr zur TechEd und den Rest der Zeit konnte man sich darauf konzentrieren, Anwendungen zu entwickeln.

Mit Open Source geht bei Microsoft auch eine ganz neue Organisation der Frameworks Hand in Hand. Statt einer großen Release alle paar Jahre hat man es jetzt mit unzähligen (konkret aktuell fast 30.000 NuGet Pakete auf NuGet.org) kleinen Projekten zu tun. Steigt man in diese neue Welt ein, ist man schnell dabei, mehr Zeit mit dem Suchen und Evaluieren von Bibliotheken zu verbringen als mit dem Schreiben des Anwendungscodes.

Microsoft hat auch keine Scheu mehr, Frameworks von Konkurrenten einzubinden und tief in wichtige Projekte zu integrieren. Man denke nur an AngularJS, ein Projekt das Google initiiert hat, und dessen tiefgehende Integration in Visual Studio. Selbst wenn eine eigene Implementierung für ein Thema existiert, gibt man sie auf wenn die Community etwas besseres hervorbringt (Beispiel JSON.NET).

Version Hell

Bei der Fülle an kleinen Projekten, die teilweise von Einzelkämpfern oder kleinen Teams (die ich in Anlehnung an Nebenerwerbslandwirte oft als „Nebenerwerbsbibliothekentwickler“ bezeichne) gewartet werden, kommt es zwangsläufig zu Versionsproblemen kommt. Man will Bibliothek A in der neuesten Version verwenden, nutzt aber auch Bibliothek B, die dummerweise jedoch eine Abhängigkeit auf eine alte Version von A hat. Kein Problem, sagen viele eingefleischte Open Source Fans. Ist ja schließlich alles offen, also das Schicksal selbst in die Hand nehmen und B auf den neuesten Stand bringen. Will man das wirklich machen müssen, wenn man schon knapp an Zeit für die eigene Software ist?

Offenheit in der Entwicklung, Stabilität in den Produkten

Weihnachten ist noch ein paar Monate entfernt. Trotzdem habe ich in Sachen Offenheit und Open Source schon heute einen großen Wunsch an Microsoft: Bitte macht mit der Offenheit im Entwicklungsprozess weiter. Lasst uns als Entwicklercommunity mitmachen, Feedback geben, Funktionen beitragen und vieles mehr. Vergesst aber nicht, dass es viele Entwickler gibt, die sich einfach nur auf das Schreiben ihrer Anwendungen konzentrieren möchten. Bietet am Ende des Entwicklungsprozesses ordentliche Produkte zu guten Preisen mit verlässlichem Support.

Ersetzt nicht Dokumentation durch unstrukturierte Blogs und Videos. Steht zu den Technologien und Bibliotheken die ihr veröffentlicht und kündigt diese nicht beliebig an und wieder ab. Unterstützt uns nicht nur bei Problemen in euren Bibliotheken sondern auch bei solchen, die aus dem Zusammenspiel eures Codes mit abhängigen Komponenten entstehen.

Wenn Microsoft und wir als Entwicklercommunity diese Dinge beherzigen, wird die neue Offenheit mit Sicherheit ein großer Erfolg und ein Motor für Innovation und Produktivität in der Softwareentwicklung.