8. August 2016
Hendrik Loesch
0

Desktop vs. Web

Auch dieses Jahr war die Saxonia Systems AG wieder auf der Developer Week in Nürnberg vertreten. Mit insgesamt fünf Vorträgen und einer Abendveranstaltung widmeten wir uns Themen wie „agiles Testen“, „Testautomatisierung“ und „agilen Architekturen“. Zeitgleich haben wir die Chance genutzt, um ein aktuelles Meinungsbild der Besucher zu erhalten.

In diesem Zusammenhang haben von den mehr als 1600 Besuchern 131 Personen auf unsere Fragen geantwortet. Die Umfrage ist demnach nicht repräsentativ für die gesamte Branche, gibt aber eine gewisse Aussicht und Einschätzung innerhalb der Microsoft Community.

Unsere erste Frage lautete: „Entwickeln Sie Endkunden- oder Businesssoftware?“. Die Mehrheit der Befragten gab an, dass sie an Software für Geschäftskunden arbeitet.

 Art der Softwareentwicklung

Die nächste Frage lautete: „Wie lange besteht die Software, an der Sie arbeiten?“. Die Umfrage brachte folgende Ergebnisse:

Alter der Software

Anhand des Ergebnisses sieht man, dass bestehende Software meist bis zu 20 Jahre alt ist. 68% der Systeme besitzen ein maximales Alter von bis zu 10 Jahren. Dies kann zum einen damit zusammen hängen, dass Version 2.0 von .Net, welche den breiten Durchbruch einläutete, erst 2006 veröffentlicht wurde und somit das Gros der heute noch genutzten .Net Anwendungen kaum älter sein kann. Auch wenn nicht danach gefragt wurde, so zeigt sich in Gesprächen, dass viele der noch älteren Anwendungen ehemalige C++ Desktopanwendungen auf Basis von MFC sind, die nach und nach zu .Net migriert wurden.

Damit sind wir auch bei der nächsten Frage: Welche Art von Technologien verwenden Sie eher?

eingesetzte Technologien

Hierbei ging es insbesondere darum, zwei Vermutungen auf den Grund zu gehen. Erstens sind Webanwendungen im Durchschnitt jünger als Desktopanwendungen und zweitens finden Desktopanwendungen mehr Einsatz im Geschäftskundenumfeld.

Auch wenn nur 33 der 48 befragten Webentwickler diese  Frage beantworteten, so zeigt sich zumindest ein klarer Trend zu jüngerer Software im Web. Dies lässt sich natürlich leicht darauf zurückführen, dass die Nutzung des Webs vor 20 Jahren nicht ansatzweise dem heutigen Stand entsprach und somit auch nicht annähernd die Bedeutung innerhalb von Geschäftsprozessen hatte.

Alter von Webtechnologien

Um Vermutung zwei zu untersuchen, müssen wir nun die bisherigen Zahlen gegenüberstellen. Hierbei kann man, allein schon wegen der geringen Stichprobe, nicht von einem eindeutigen Trend sprechen. Wenig überraschend ist natürlich, dass man im Geschäftskundenumfeld eine Art Mischbetrieb eher verfolgt, als bei reiner Endkundensoftware. Ansonsten sind die Zahlen so nah beieinander, dass der Trend zumindest für Microsoft basierte Anwendungen nicht nachzuweisen ist.

verwendeter Technologie-Stack im Vergleich der zu entwickelnden Software

Der weite Einsatz von Desktoptechnologien ist auch insofern verständlich, da Microsoft basierte Technologien ihre Ursprünge auf dem Desktop haben. Lange Zeit galt es daher als gesetzt, dass man Desktopanwendungen am besten mit Microsoft Tools entwickelt. Das Web wurde erst einige Jahre später in Angriff genommen und hier ist Microsofts Konkurrenz mit Java, Ruby oder PHP auch ungleich größer.

Wenn das Web nun aber so bedeutsam ist und die Desktopanwendungen vergleichbar alt sind, dann liegt der Schluss nahe, dass zukünftig auch vom Desktop in das Web migriert werden soll. Auf diesen Gedankengang zielte dann auch unsere nächste Frage ab.

Migration von Desktop in Webtechnologien

Eine so klare Aussage hat uns stark überrascht. Natürlich ist der Trend ins Web in aller Munde, immerhin schwächelt der Absatz des Desktops seit Jahren. Wenn nun aber bei 46 von 96 Entwicklern zukünftig die Desktopclients durch Webclients ersetzt werden sollen, ist dies ein mehr als deutliches Zeichen. Hier wird auch offensichtlich, wie wichtig Microsofts Trend zur Cloudplattform Azure ist, da die Akzeptanz ihres früheren Stammgeschäfts dramatisch sinkt.

Vergleichen wir nun noch die eingesetzten Sprachen, welche uns eventuell einen zukünftigen Trend aufzeigen könnten.

eingesetzte Sprachen im Hauptprojekt

Deutlich an erster Stelle und mit Nennung durch fast alle Teilnehmer ist die Sprache C#. Dies wundert nicht, wenn man die Bedeutung der Sprache für das Ökosystem kennt. Viel interessanter ist das schlechte Abschneiden von Visual Basic im Vergleich. Dies wird von noch weniger Personen eingesetzt als C++ und Java. Wobei deren geringe Nennung natürlich damit zu tun hat, dass es sich bei der Developer Week um eine Konferenz handelt, die einen sehr großen Anteil von Microsoftthemen besitzt. Auch der Einsatz von Javascript ist wenig verwunderlich, wohingegen die deutliche Nennung von Type Script als ein Ausblick auf dessen zukünftige Bedeutung darstellen könnte.

Hier könnten wir etwas in die Glaskugel schauen, denn aus den bisherigen Auswertungen lässt sich durchaus folgendes Szenario konstruieren: Während reine Desktopclients an Bedeutung verlieren, ziehen Webtechnologien mit Angular und der Laufzeitumgebung Electron durchaus auch auf dem Desktop ein. Angular wiederum bietet vieles von dem, was WPF einst einzigartig gemacht hat und weniger von dem, wodurch sich AngularJS 1 für Desktopentwickler doch vergleichsweise unangenehm angefühlt hat. Gerade auch mit der nahtlosen Integration von Type Script gewinnt Angular viele der Sicherheitsmechanismen, die skalierbare Großanwendungen benötigen. Es könnte also durchaus passieren, dass so mancher Desktop Client seinen Weg über das Web zurück auf den Desktop schafft, nur in neuem Gewand.

verwendete Sprachen im Vergleich der zu entwickelnden Software

Abschließend betrachten wir noch den Einsatz der verwendeten Frameworks. Auch hier muss man Vorsicht walten lassen, da die geringe Teilnehmerzahl natürlich eine deutliche Unschärfe bedeuten kann.

eingesetzte Technologien und Frameworks

Nichtsdestotrotz ist dabei interessant, wie häufig Angular 2 bereits in Hauptprojekten eingesetzt wird und dass diese Zahl fast den 17 Personen entspricht, die Typescript als Sprache angegeben haben. Dem gegenüber haben im Web die ASP.Net WebForms im Verhältnis zu ASP.Net MVC weit deutlicher verloren, als es die Windows Forms gegenüber der WPF getan haben.

Auch hier zeigten sich in den Gesprächen auf der Konferenz einige deutliche Einschätzungen: WebFroms haben gegenüber MVC keine Vorteile, wohingegen WinForms gegenüber WPF eine geringere Lernkurve und eine höhere Performanz aufweisen. Dem gegenüber bietet die WPF wiederum ein schwerer zu meisterndes Architekturmuster, welches auf Dauer aber besser wartbare Software erlaubt. Darüber hinaus kann sie weitaus einfacher gestylt werden und ermöglicht eine bessere Parallelisierung innerhalb des Teams.

Genau hier könnte sich ein Hindernis für das Glaskugel-Szenario herauskristallisieren, denn gerade auch durch die Einbindung von Win32 Applikationen in die Universal App Plattform und durch den hohen Reifegrad der Desktopapplikationen, weisen sie Vorteile gegenüber den schnelllebigen Webtechnologien auf, welche in langfristig orientierten Umgebungen nicht einfach außer Acht gelassen werden können. Hinzu kommt noch, dass Angular 2 ebenfalls eine sehr steile Lernkurve aufweist, die erst einmal gemeistert werden möchte.

Hendrik Lösch ist Senior Consultant für Microsofttechnologien bei der Saxonia Systems AG. Der Schwerpunkt seiner Arbeit liegt auf der Entwicklung von Software für Kunden im industriellen und medizinischen Umfeld. Darüber hinaus schreibt und spricht er über seine Arbeit, Clean Code und die Testautomatisierung in ihren unterschiedlichen Ausprägungen.

Twitter Xing 

TeilenTweet about this on TwitterShare on Facebook0Share on Google+0Share on LinkedIn0