Programmierung heutzutage…

In meiner kleinen Welt gibt es neben meinen Aufgaben mit Server-Betriebssystemen und Serverdiensten im Intranet und Internet das Wurschteln im MS Dynamics NAV 2015 – Development-Environment. Dessen „funktionale Programmierung“ empfinde ich nicht mehr als zeitgemäß: tausende Programmierer fangen immer wieder von vorne an, den gleichen Code zu schreiben, um weiteren Programmierer-Horden dadurch die neue Aufgabe erwachsen zu lassen, wieder überall in verschiedensten Ecken des „Development Environments“ umherzuklicken, um diese Codeschnipsel zu finden, die sie dann ausschneiden und an anderer Stelle ergänzt einsetzen. Dann wird ein paar Monate später alles nochmal in tagelanger C&P-Arbeit angefasst, wenn ein Upgrade der kompletten Installation gefahren werden soll – falls es nach den notwendigen, individuellen Firmenanpassungen überhaupt noch möglich ist, ein Upgrade zu fahren.

Daneben existiert die WordPress- (u.a. OpenSource-CMS-, Webshop- und Blog-) Systemwelt unter php mit Javascript-Anbauten, hier wird ähnlich krude gecodet, upgedated, upgegraded und fleißig alt zu neu migriert.

Die Evolution in der Programmierung wird in Systemen verankert, die selbstverständlich veralten. Evolution in der Programmierung bedeutet, dass die Erkenntnisse im Laufe der Jahre der Programmierer-Generationen auch in die Technik umgesetzt werden. Die neuen Techniken OOP, AOP, IoC bzw. DI, Convention over Configuration, Continuous integration und Iteration, d.h. u.a. Entwicklung nah an den Ansprüchen und teilweise irrigen Vorstellungen der Kunden, Microservices uva. können in alten Systemen nur unter unmäßigem Aufwand integriert werden – wobei mit Microservices zum Teil alte Systeme neben neuen Systemen lauffähig gemacht und gehalten werden können.

Und was bringen die neuen, wesentlich modulareren Ansätze der Programmierung? Viele, viele, viele Bibliotheken, die von Buildtools zusammengehalten und von Frameworks herangezogen werden und mit denen dann in Stufen (in einfachster Form: development, staging, production) entwickelt, geprüft und veröffentlicht wird. Wieder selbstverständlich wird „24/7 – international“ an den Bibliotheken, Buildtools, Überwachungs- und Deployment-Serverdiensten gefeilt, weswegen das Updaten und Upgraden bereits in die Entwicklungsphase gehört und einiges an Zeit frisst. Wehe dem, der sich dabei noch um Lizenzen einzelner Teile des Systems kümmern muss!

Für den Entwickler bedeutet der erste Schritt des Kampfes, sich für Plattform-Unabhängigkeit, mobile-first und PWA, Kombination verschiedener Frontend- und Backend-Technologien, VM’s und Linux-Containern in die „Configuration of your IDE“ zu stürzen, und zwar auf dem MacBook unter Darwin, unter verschiedenen Linux-Systemen und den sturen Windows-Versionen, die bestenfalls Linux-Container zu unterstützen versuchen. Daneben liegt neben dem immer neuesten iPad ein altes Gerade-so-Smartphone mit Drosselsoftware drauf, die die Datenrate drückt, um die Realitäten „im Busch“ oder in Deutschland nachzustellen.

Und eine einfache Webpräsenz wird unter Usability-Aspekten, i18n (Internationalisation) und Localisation, Security-Conception und SEO-Maßnahmen ein Höllending. Aber jhipster ist halt einfach auch geil 🙂

„Des is‘ wie wenn’de vom IKEA Kleinkind-Bällebad endlich zur Kindergarten-Gruppe hochrutschst, die schon mit Lego spielen darf…“

Jochen@jhipster.de
Jochen@hochzeit.gebsattel.rocks