Vom 18. bis 20. Juni dieses Jahres war es wieder so weit: in Karlsruhe fand die NeosCon 25 statt. Für mich war es dieses Jahr sowohl die erste NeosCon, als auch die erste Konferenz für Softwareentwicklung überhaupt, an der ich teilnahm. Und bei all den neuen Eindrücken, Ideen und Gesprächen hat es sich definitiv gelohnt. Aber es war nicht nur für mich die erste NeosCon, sondern auch für das lang ersehnte Neos 9.
Neos 9 kommt mit der größten technischen Überarbeitung seit das Neos Backend auf React umgestellt wurde: dem eventbasierten Content Repository (Event Sourced Content Repository).
Was sich vor fast 10 Jahren und mehreren Major-Releases als Vision entwickelte, wurde nun umgesetzt: die neue Basis des Content Repository (CR), dem zentralen Speicherort aller Inhalte. Es wird nicht mehr nur der aktuelle Stand gespeichert - mit eventuell verschiedenen Workspaces -, sondern der gesamte Weg dahin. Das Content Repository wird eventbasiert. Jede Veränderung von Inhalten, Workspaces, etc. wird als einzelner Schritt gespeichert und daraus der aktuelle Stand des CR abgeleitet. Von vielen Seiten wurde die Umsetzung dieses Umbaus sehr gelobt und der neue Code als klar, strukturiert und sehr durchdacht gepriesen.
Aufgrund der großen Veränderungen wurde der eigentlichen NeosCon noch ein Workshop vorgeschoben, um erfahrenen Entwickler:innen den Schritt von Neos 8 auf Neos 9 zu erleichtern. Mit diesem Start war ich mir nicht sicher, ob ich hier wirklich gut aufgehoben bin. Wo andere über die neue NodeAPI diskutierten, habe ich erstmal weiter Grundlagen in PHP gelernt. Mein Sitznachbar erklärte mir freundlich wie named Arguments
in PHP funktionieren und gleichzeitig ging es um die Unterschiede zwischen schreibendem und lesendem Zugriff auf das Content Repository. Im Laufe des ersten Konferenztages wurde mir jedoch klar, dass ich nicht alle Ecken von Neos kennen muss, um als Nutzer und Entwickler auch Teil der Neos-Community zu sein.
Die Eröffnung
Eröffnet wurde die NeosCon mit einem eigens dafür geschriebenen Song und im Anschluss daran der Keynote von Robert Lemke. Er freute sich zuerst über 30 Jahre PHP, aber konnte das große Thema KI nicht umschiffen. Dabei war er weder alarmistisch, noch übertrieben optimistisch, sondern realistisch und pragmatisch. Ich hätte erwartet, auf einer Tech-Konferenz geht es 2025 von vorne bis hinten ausschließlich um KI: Wie sie uns das Entwickeln abnimmt, wie Inhalte generiert werden oder Daten analysiert.
Neos und KI
Viele nutzen schon KI als Unterstützung beim Entwickeln und es gibt Prognosen, dass in den nächsten Jahren und Jahrzehnten einfache Programmierarbeiten vollständig durch KI-Akteure übernommen werden. Robert Lemke fragt ganz richtig: Wenn einfache Arbeiten durch KI ersetzt werden, vor allem die Jobs, die Berufseinsteiger machen, wie können Berufseinsteiger dann Erfahrung sammeln?
Für Neos wurden erste Ansätze gezeigt, um Inhalte zu erstellen, zu strukturieren oder umzubauen, so z.B. von Roland Schütz und Felix Gradinaru. Mir fielen eher die "kleineren" Werkzeuge auf, die vorgestellt wurden, wie z.B. das AI-Toolkit von Jung von Matt, mit deren Hilfe z.B. alt-Texte für Bilder generiert werden können oder ein komplexeres Suchen-und-Ersetzen ausgeführt werden kann.
Das Ziel war nicht die Arbeit der Redaktionen am Inhalt abzuschaffen, sondern sich bei mühseliger Kleinarbeit helfen zu lassen. Mir kam die Debatte darüber insgesamt etwas weniger aufgeregt vor, als ich es in anderen Kontexten wahrnehme. Es ging eher darum, erstmal herauszufinden, wo KI uns helfen kann und sie dort zu nutzen, statt ein möglichst mächtiges KI-Tool zu bauen, um dann herauszufinden, ob oder wo wir es sinnvoll einsetzen können.
Nachhaltigkeit
Mit dem Auftritt von nutzbarer KI bekam die Debatte über die Nachhaltigkeit von digitaler Infrastruktur einen neuen Anschub. Auch ohne KI hat das Web einen massiven Stromverbrauch: im Hosting, in der Infrastruktur und auch auf dem Client (auch durch Nutzung des Web, vor allem aber durch die Produktion neuer Geräte). Carsten Windler und Markus Günther haben unabhängig voneinander je einen Talk gehalten zum nachhaltigen Aufbau von neosbasierten Webseiten.
Dabei haben beide ähnliche Punkte betont. Für ein nachhaltigeres und umweltschonenderes Web gilt es, insgesamt Traffic und Rechenaufwand zu reduzieren. Oft ist es ohne besonders hohen Aufwand möglich, die Größe des initialen Ladens einer Seite signifikant zu verkleinern: Bilder als *.webp ausliefern; für 3 Icons lieber svgs verwenden, statt 2 Schriften nachzuladen; und eventuell auch auf die automatische Videoeinbindung verzichten, die eine Menge JS-Libraries nachlädt, obwohl vielleicht nur zehn Prozent der Besucher:innen das Video angucken.
Außerdem ist es auch sinnvoll den massiven Einsatz von clientseitigem Javascript zu überdenken:
- Es muss insgesamt weniger geladen werden, damit die Seite läuft, sowohl eigene Skripte, als auch externe Libraries und Frameworks.
- Die Anforderungen an die Hardware des Clients sinken deutlich. Dadurch ist es auch für ältere Geräte leichter Seiten darzustellen. Da gerade die Produktion von Hardware erhebliche Umweltschäden verursachen, ist es sinnvoll auch hier eine langfristige Nutzung von Geräten zu ermöglichen.
Nachhaltige Softwareentwicklung
Einen sehr interessanten Talk über nachhaltige Softwareentwicklung hat Juliette Reinders Folmer gehalten. Denn Nachhaltigkeit ist nicht nur eine Frage von Umweltfolgen. Schäden an Natur oder Menschen sind nicht nur ein Problem in der Produktion von Microchips oder Kleidung, sondern genauso in der Softwareentwicklung. Vielen Open-Source-Projekten fehlt es an qualifizierten und erfahrenen Entwickler:innen, die auch langfristig Verantwortung übernehmen.
Mindestens genauso oft fehlt es aber auch einfach nur an Geld. Viele Projekte werden nicht in einem klassischen Anstellungverhältnis entwickelt. Manchmal ermöglichen Spenden und Sponsoren eine Form von sicherer Finanzierung, aber nicht selten sind es Hobbyprojekte, die als eine Abhängigkeit unter vielen in Produktivsystemen laufen und deren Verantwortliche sich an anderer Stelle nach Geld umschauen müssen. Es ist auch nicht nur eine Frage der Moral, sondern auch der Sicherheit, dass diese Projekte auf stabilen Füßen stehen. 2024 haben wir das bei der xz-utils Backdoor gesehen.
Auch interessant
Außerdem möchte ich noch die Vorträge von Jan-Michael (Michel) Löw, Sebastian Helzle und meinem Kollegen Lukas Neugebauer erwähnen.
Michel hat einen Datenbankadapter für Neo4j gebaut. Neo4j ist eine graphbasierte Datenbank - im Gegensatz zu den klassischen Kandidaten MySQL, MariaDB oder Postgresql, die allesamt relational sind. Es ist eine sehr naheliegende Lösung - mindestens für das Content Repository und den Event Graph - eine graphbasierte Datenbank zu nehmen, da das CR und der Event Graph selbst in ihrer Grundstruktur Graphen sind. Graphbasierte Datenbanken sind in der Webentwicklung lange nicht so verbreitet wie klassische SQL-Datenbanken. Es wird sich zeigen, ob es wirklich eine praktikable Lösung ist oder bei einem interessanten Ansatz bleibt.
Sebastian Helzle hat dafür geworben Module für das Neos Backend in HTMX zu bauen. Mit HTMX verschiebt sich der Fokus vom Javascript (wie z.B. beim aktuell verwendeten React) wieder hin zu HTML. HTMX ist leichtgewichtiger und die Einstiegshürde für neue Entwickler:innen sei geringer. HTML-Kenntnisse reichen aus, um Struktur und Markup von Elementen zu bauen. Logik und Effekte können immer noch nachgerüstet werden. So ist Sebastians Workspace Modul für Neos 9 das erste in HTMX geschrieben Backendmodul.
Seit einigen Jahren arbeiten wir bei networkteam mit devbox als lokaler Entwicklungsumgebung. Devbox ermöglicht es mithilfe von nix Paketen Software in beliebigen Versionen in verschiedenen Projekten zu nutzen. Die Pakete werden in einem lokalen nix-Store installiert und dann per Symlinks in den Projekten bereitgestellt. Per process-compose können Services gestartet und einzelne Befehle ausgeführt werden, ähnlich docker compose
. Auf der NeosCon ist uns aufgefallen, dass die meisten anderen Entwickler:innen diesen Ansatz noch nicht kannten und fast ausschließlich mit dev-Containern, z.B. ddev, arbeiten. Daher hat Lukas kurzerhand einen Lighting-Talk gehalten und darin vorgestellt, wie devbox grob funktioniert und wie eine einfache Entwicklungsumgebung aufgesetzt werden kann.
Insgesamt war für mich und für meine mitgereisten Kollegen die NeosCon eine volle Bereicherung. Während andere sich freuten langjährige Weggefährten wiederzutreffen, habe ich eine ganze Menge Gesichter zum ersten Mal gesehen. Plötzlich weiß ich, welche Menschen hinter Neos stehen und daran entwickeln. Ich habe gelernt, was mit der Neos Community gemeint ist. Dass es nicht nur ein Haufen Nerds ist, sondern wirklich eine Gemeinschaft, in der sich Freundschaften gebildet haben und deren Wiedersehensfreude groß ist. Ich kann erahnen, wo all das Herzblut herkommt, das in Neos steckt. Neos ist ein menschengemachtes Werk und nicht eine Software, welche einfach vom Baum fällt.
Ich kann mir kaum eine bessere Atmosphäre vorstellen, um neue Ideen und Ansätzen kennen zu lernen oder Abenteuergeschichten aus dem Hosting zu hören und freue mich damit auf die nächste NeosCon, an der ich teilnehmen darf.