Betrachtet man was uns Technologieradare, Anbieter für Weiterbildungsmaßnahmen oder diverse Konferenzagenden zeigen, scheint es zurzeit nur die Wege „Mobile“ und „Web“ zu geben, wenn man mit einem neuen Softwareprojekt starten möchte. Dieser Einschätzung möchte ich nicht gänzlich widersprechen, unkommentiert lassen kann ich sie jedoch auch nicht.
Gerade für ein Beratungsunternehmen wie die Saxonia Systems AG (seit 03/2020 ZEISS Digital Innovation) ist nicht nur ein Blick nach vorn wichtig. Wenn man nicht weiß wo eine Reise beginnt, ist es nur schwer einzuschätzen, ob die Richtung, die man einschlägt, tatsächlich die Richtige ist. Ganz zu schweigen davon, dass man als Berater keinen größeren Fehler begehen kann als zwanghaft etwas einführen zu wollen, dass vielversprechend erscheint, jedoch die bestehende Infrastruktur des Kunden komplett außer Acht lässt.
Aus diesem Grund befragen wir bei Konferenzen immer auch unsere Gesprächspartner welche Technologien sie einsetzen und warum sie ggf. von diesen wechseln wollen. Dies gipfelte dieses Jahr in gezielten Umfragen bei der Basta und W-JAX, von denen ich zumindest die Ergebnisse der Basta für meine folgende Argumentation verwenden möchte. Die Ergebnisse der W-JAX überlasse ich an dieser Stelle meinem Kollegen Stefan Bley, der weit mehr Erfahrung im Java-Umfeld hat als ich.
Die Fragestellung an die Teilnehmer lautete: „Welche Frameworks und Technologien setzen Sie in Ihrem Hauptprojekt ein.“ Als Hauptprojekt wurde das Projekt bestimmt, an welchem die Befragten den größten Teil ihrer Zeit arbeiten. Auf diese Weise erhalten die Aussagen eine deutliche Wertung und mögliche Gehversuche mit einzelnen Technologien wurden herausgefiltert. Zugegeben, bei etwa 150 Teilnehmern an der Umfrage auf der Basta ergibt sich kein repräsentatives Bild unserer Industrie. Man kann aber zumindest von einer Repräsentanz für die Konferenz selbst und ihre ca. 1000 Teilnehmer ausgehen.
Auch wenn die Daten nicht repräsentativ sind, so fällt auf dass wesentlich mehr Teilnehmer für Desktop als für Webtechnologien abgestimmt haben. Interessant ist auch die breite Nutzung von Windows Forms gegenüber WPF. Diese erklärt sich in vielen Fällen nicht nur dadurch, dass Windows Forms schon länger existiert. Vielmehr ist es vergleichsweise schnell und bietet alle Steuerelemente, die für gängige Businessanwendungen benötigt werden. Dazu kommt noch der geringere Lernaufwand aufgrund einer sehr flachen Lernkurve im Gegensatz zu WPF. Nachteile wie das schwierige Styling der Oberflächen oder die größeren Herausforderungen in Bezug auf die Architektur der Anwendung wiegen scheinbar nicht so schwer, wie zumindest ich es erwartet hätte.
Damit sind wir dann auch schon bei einer Besonderheit von Microsoft Technologien. Wollte man in der Vergangenheit auf einfache Weise Desktopsoftware für Windows entwickeln, so war die dazugehörige Entwicklungsinfrastruktur von Microsoft aufgrund der guten Nutzung von betriebssystemeigenen Features, die Integration der Werkzeuge in das Gesamtsystem und dem gewohnten Look & Feel, auch häufig die erste Wahl für Entwickler. Gerade mit JavaFX wird an diesem bisherigen Selbstverständnis jedoch deutlich gekratzt, wozu dann noch die schwächelnden Verkäufe im Desktopumfeld und das Abwandern der Nutzergruppen auf mobile Endgeräte hinzukommen, welche Microsoft seinerseits mit der Universal App Plattform wieder einzufangen versucht.
Im Webumfeld hat Microsoft dahingegen – zumindest in Europa – keinen schlechten, aber einen schwierigeren Stand als sie es auf dem Desktop haben. Entwicklungswerkzeuge der Redmonder, angefangen beim fast schon obligatorischen Visual Studio oder dem Team Foundation Server, sind vergleichsweise teuer in der Anschaffung. Dazu kommen dann noch Lizenzkosten für Server u.ä. zum Betrieb der Dienste, die regelmäßig zu entrichten sind. Stellt man diese rein monetär den kostenlosen Alternativen mit günstigem Hosting aus der Java, PHP oder Ruby Welt gegenüber, so offenbart sich ein schwerwiegender Nachteil. Diesen kann man natürlich versuchen mit Planbarkeit, Produktivität u.ä. zu relativieren. Er sorgte in der Vergangenheit aber dennoch dafür, dass Microsoft in vielen Fällen nicht unbedingt die erste Wahl war, wenn es darum ging eine Weblösung zu schaffen.
Auch im Webumfeld zeigt sich ähnlich wie beim Desktop, dass das Abschneiden von scheinbar alten Zöpfen nicht immer simpel, vielleicht aber auch gar nicht notwendig ist. Anders als bei der Entscheidung zwischen Windows Forms und WPF entscheidet man bei der Wahl zwischen Webforms und MVC auch zwangsweise über ein Architekturvorgehen. Das ASP.Net MVC dabei ein weitaus strukturierteres Vorgehen zulässt als die WebForms, dürfte jedem bewusst sein, der beides schon einmal eingesetzt hat. Inwieweit also tatsächlich neue WebForms Projekte starten, ist aufgrund der vielen damit verbundenen Nachteile nicht auszuschließen, aber zumindest fraglich. Viel mehr neigen die bestehenden Systeme dazu, weitere Frameworks einzusetzen, um jene Nachteile zu kompensieren.
Welche Ableitung ergibt sich nun aber generell aus den Zahlenverhältnissen? Einer der Gründe, warum Microsoft auf dem Desktop so stark geworden ist, war die nahtlose Integration ihrer Werkzeuge. Windows war lange Zeit die Plattform, auf der die Internetwelt beim Endnutzer angekommen ist. Mit Azure arbeitet Microsoft nun aber schon viele Jahre an einer ähnlichen Plattform, bei der man schnell das Gefühl bekommt, dass sie nichts weniger werden soll als die Plattform für das Internet selbst.
Damit erklärt sich dann auch, warum Microsoft sehr viele seiner Frameworks open source stellt und zum Beispiel mit .Net Core sowie Visual Studio Code Werkzeuge bereitstellt, die es uns Entwicklern ermöglichen, nicht mehr nur auf Windows und für Windows zu entwickeln. Mit den Zielen die Microsoft verfolgt, macht es keinen Sinn starrsinnig den eigenen Bergfried „Windows“ zu verteidigen. Es sollen Entwickler gewonnen werden, die die neue Infrastruktur und die damit verbundenen Werkzeuge nutzen.
Nur wie passt dies nun zur Situation in Deutschland? Microsofts Zukunft ist eng mit dem Web und der Cloud verbunden. Die deutschen Unternehmen sind aber eher Cloud-Skeptiker und setzen scheinbar im großen Maße eher auf Desktopanwendungen als Webanwendungen, wenn sie im Kontext der Microsoft Technologien arbeiten.
Befragt, ob sie schon Cloud Technologien einsetzen, sagten zumindest fast 18% der Beteiligten „ja“. Dies sind weit weniger als die von Pb7 ermittelten 31%. Ursache dafür könnte sein, dass Softwareentwickler im genannten Kontext eher Plattform as a Service und Infrastructure as a Service Angebote als Cloud werten, nicht aber Software as a Service Angebote. Darüber hinaus kann aber auch genau hier wieder eine Unschärfe aufgrund der geringen Stichprobe und dem darüber hinaus auch geringeren Anteil von Webprojekten vorliegen.
Zugegeben ist die Menge der Cloudnutzer trotz allem noch immer weitaus nüchterner als das, was uns die gängigen Whitepaper versprechen. Es zeigt aber, dass ein zunehmender Einzug der Cloud in die aktuellen Softwareprojekte auch bei pessimistischen Bewertungen absolut unbestreitbar ist. Dies dürfte sich dank der Kooperation zwischen Microsoft und der deutschen Telekom dann auch zukünftig noch weiter in Deutschland verstärken.
Zusammenfassend lässt sich also sagen, dass der Anteil derer, die mit Microsofttechnologien entwickeln, immer auch stark davon abhing, wie groß Microsofts Marktstellung im entsprechenden Bereich war. Wandelt sich Microsoft nun zu einem Dienstanbieter, bei dem Windows nur noch eines von unterschiedlichen Zielsystemen der gebotenen Dienste ist, kann dies für die ursprüngliche Entwicklerbasis und die aktuell bestehenden Systeme tatsächlich bedrohlich wirken, da es zumindest teilweise einer Grundannahme dieser Projekte wiederspricht und zwar, dass mit Windows immer auch eine sehr große Nutzerbasis Zugriff auf die Software erhält.
Dies erklärt für mich dann auch sehr gut die Reflexe, die ich wahrnehme, wenn ich mit manchem Kunden über neue Projekte spreche. So liegt die Grundannahme bei vielen Gesprächspartnern vor, dass sie am besten jede Software als Webapplikation bereitstellen. Leider wird dabei häufig vergessen, dass sich damit auch neue Herausforderungen ergeben, von denen die Browserkompatibilität nur eine der Offensichtlichsten ist.
Ich möchte an dieser Stelle also etwas beruhigend wirken. Es ist aktuell nicht abzusehen, dass bei all den Neuankündigungen von Microsoft die ursprüngliche Entwicklerbasis und damit auch die bestehenden Projekte vernachlässigt werden. Durch Kooperationen mit SAP sowie die Pflege der .Net Basistechnologien wie WPF, sind Investitionen im Bereich von Desktopanwendungen nicht zwangsläufig gefährdet. Auch wenn Microsoft es hier gern sähe, wenn man die nächste Businessanwendung eher für die Universal App Plattform umsetzt, so sollte eine Entscheidung für die ausgereifte WPF einen sicheren Unterbau darstellen und eher davon abhängig gemacht werden, welche Nutzergruppe von der Anwendung zukünftig adressiert werden soll und welche Probleme es zu lösen gilt. Ein Ende des Supports für Windows Forms sowie WPF ist nicht absehbar und bei der aktuellen Nutzerbasis wird sich Microsoft auch in naher Zukunft nicht erlauben an diesem Umstand etwas zu ändern.
Sollte also die Frage bestehen womit man sich als nächstes am besten auseinander setzt, so kann ein Blick in die Webtechnologien für Desktopentwickler sicher nicht schaden. Um adäquate Aussagen für ganze Projekte zu treffen, bedarf es aber einer ausgiebigen Analyse der spezifischen Ist- und Soll-Situationen, weil der Desktop trotz aller Unkenrufe noch immer seine Berechtigung hat.