Wie jedes Jahr, haben wir auch für den Start ins neue Jahrzehnt bei den Anexia Experten angefragt, welche Software-Trends sie in ihren Bereichen für 2020 sehen. Performanter Code und die Frage, wie er erzeugt werden kann, bestimmt viele Entwicklungen. Genauso geht es darum, wie Projekte in der immer größer werdenden Flut von Entwicklungsaufträgen schnell und somit auch kostengünstig umgesetzt werden können. Dies sind nur zwei Strömungen, die Auswirkung auf die Software-Trends 2020 haben. Wir haben bei Sven Graziani, Harald Nezbeda und Admir Karadza nachgefragt und um ihren Blick in die Glaskugel gebeten.
Konfigurieren statt Programmieren
Admir Karadza, Head of Platform Solutions
Low-Code- und No-Code-Entwicklung sind zwar keine neuen Begriffe, werden aber unserer Einschätzung nach 2020 und darüber hinaus nochmals massiv an Bedeutung gewinnen.
So komplex Programmierung auch ist, gibt es – je nach Einsatzgebiet – dennoch viele sich wiederholende Elemente bzw. Operationen, welche aufeinander aufbauen und dadurch einen automatisierten Ablauf ergeben. Komplexe Workflows können damit – sprichwörtlich – mit wenigen Klicks umgesetzt werden.
Große Herausforderungen sind dabei neben Umfang und Integrität der jeweiligen Low/No-Code-Entwicklungsumgebung bzw. -lösung vor allem die Performance. Es wird kein stark optimierter Programmcode für einen bestimmten Zweck entwickelt, sondern generische Mechanismen, welche viele Eventualitäten berücksichtigen und prüfen müssen, werden konditionell aneinandergereiht. Dem wirkt jedoch einerseits entgegen, dass Hardware-Ressourcen laufend leistungsstärker und günstiger werden, sowie andererseits deren Skalierbarkeit, die sich durch den Trend zu Cloud-Lösungen in den vergangenen Jahren verbessert hat. Nachdem die klassische Programmierung sehr zeitintensiv ist, werden zunehmend solche Lösungen – in einem immer schnelllebigeren Markt – darüber entscheiden, ob man am Ende wettbewerbsfähig ist und den Markt schnell genug bedienen kann.
Auch wir bei Anexia setzen mit den beiden in Entwicklung befindlichen Anexia-Engine-Modulen „Generic Services“ sowie „Generic Automation“ auf dieses Konzept und erarbeiten eine speziell für Cloud Services optimierte Lösung, welche noch 2020 zum Einsatz kommen soll.
Python wird 2020 weiter wachsen
Harald Nezbeda, Technical Leader Python
Python ist aktuell nach dem TIOBE index die drittbeliebteste Programmiersprache und laut der Stackoverflow Umfrage von 2019 die am schnellsten wachsende der wichtigsten Programmiersprachen. Die Verwendung der Sprache wird aufgrund der Anwendung im DataScience, Machine Learning und Home Automation weiter steigen. Da das Ausrollen von Web Apps immer leichter wird, kann man davon ausgehen, dass ihre Beliebtheit auch in diesem Bereich steigen wird.
Es gibt zwei Ansätze, die 2020 an Popularität gewinnen werden. Der erste ist der Platform-as-a-Service (PaaS) Ansatz. Dieses Modell eignet sich vor allem für Applikationen, die mit High-Level-Frameworks (Django, TurboGears oder Pyramid) gebaut werden, ein zentrales Repository brauchen und dabei skalierbar bleiben müssen. Der zweite Ansatz, der 2020 stark genutzt werden wird, heißt FaaS (Function-as-a-Service). Dieses Modell wird verwendet, um Tasks, die besonders rechenintensiv sind, weg vom Server in eine eigene Applikation zu verschieben. Diese Tasks laufen oft asynchron ab und können somit von einer Message-Queue ausgeführt werden.
Ein weiterer Trend: Python-Web-Applikationen verwenden immer weniger WSGI (Web Server Gateway Interface, dafür umso mehr ASGI (Asynchronous Server Gateway Interface) und erlauben somit eine bessere Unterstützung von Web-Sockets und anderen asynchronen Kommunikationswegen. Django 3.0 hat hier eine wichtige Wegmarke gesetzt in Richtung zukünftiger LTS-Veröffentlichungen.
Auch ist für 2020 mit weiteren Upgrades in der Python-Infrastruktur und -Applikation zu rechnen. Wer Python 2.7 verpasst hat, sollte sich darum bemühen, so schnell als möglich Python-3-kompatibel zu werden. Für Ende September 2020 ist das Ende von Python 3.5 angekündigt und man kann davon ausgehen, dass viele Applikationen und Infrastrukturen auf Python 3.6 oder neuer upgegradet werden.
Hybride Apps vs. Native Apps
Sven Graziani, Software Developer
Hybride Apps sind eine große Erleichterung für Developer. Einmal entwickelt kann die App auf verschiedenen Plattformen laufen: auf iOS, Android oder als Webanwendung. Dies gelingt, indem man eine Abstraktionsschicht einführt – eben den hybriden Teil –, um den darunterliegenden Teil austauschen zu können, den nativen Teil. Hybride Apps haben den Vorteil, dass sie nur einmal entwickelt werden müssen. Dadurch ist das Entwickler-Team wesentlich kleiner und kommt schneller voran. Der Kunde spart dadurch Zeit und Geld.
Früher waren hybride Apps oft fehleranfällig und teilweise nicht sehr nutzerfreundlich durch ihr simpel gestaltetes User-Interface. Hier hat sich aber gerade im letzten Jahr viel getan, weshalb 2020 diese App-Form richtig durchstarten wird. Beispielsweise haben sich die Frameworks für Hybride-App-Entwicklung stark verändert. Sie nehmen inzwischen die meiste Arbeit hinsichtlich der Grafik-Unterschiede von iOS und Android ab. Es empfiehlt sich aber trotzdem auch weiterhin auf gute Entwickler zu setzen, die die Finessen der Plattformen kennen und sauber arbeiten, denn: Hybride Apps erfordern schlanke Sourcecodes, da der hybride Layer eine Schwelle darstellt, die zu Latenzen führen kann. Wenn dann noch der Code inperformant ist, wird das ganze Konstrukt inperformant.
Wenn du dich für weitere Details zu einer der Themen interessierst, oder du einen kompetenten Partner für dein nächstes Entwicklungsprojekt suchst, stehen dir unsere Experten gerne zur Verfügung: