Connect with us

Entwicklung & Code

30 Jahre Java – Interview mit Community-Vertretern (Teil 1)


In den vergangenen 30 Jahren hat sich eine rege Community im Java-Umfeld gebildet. Ich habe im Laufe des Jahres einige deutschsprachige Vertreter zu ihren Erfahrungen befragt. Die Resonanz war überwältigend. Vielen Dank an alle, die mitgemacht haben. In diesem ersten Teil kommen Alexander Culum (Organisator JUG Frankfurt), Birgit Kratz (Co-Organisatorin der Softwerkskammern Köln und Düsseldorf sowie der SoCraTes), Simon Martinelli (Java Champion, Co-Organisator JUG Schweiz), Dierk König (Java Champion und Professor Fachhochschule Nordwestschweiz) und Christian Stein (Open Source Committer und Mitglied Java Platform Group) zu Wort.

Weiterlesen nach der Anzeige


Neuigkeiten von der Insel - Falk Sippach

Neuigkeiten von der Insel - Falk Sippach

Falk Sippach ist bei der embarc Software Consulting GmbH als Softwarearchitekt, Berater und Trainer stets auf der Suche nach dem Funken Leidenschaft, den er bei seinen Teilnehmern, Kunden und Kollegen entfachen kann. Bereits seit über 15 Jahren unterstützt er in meist agilen Softwareentwicklungsprojekten im Java-Umfeld. Als aktiver Bestandteil der Community (Mitorganisator der JUG Darmstadt) teilt er zudem sein Wissen gern in Artikeln, Blog-Beiträgen, sowie bei Vorträgen auf Konferenzen oder User Group Treffen und unterstützt bei der Organisation diverser Fachveranstaltungen. Falk twittert unter @sippsack.

Java prägt viele Entwicklerinnen und Entwickler seit ihren ersten Schritten in der IT – und hat in dieser Zeit Höhen, Tiefen und mehrere Neuerfindungen erlebt. Die folgenden Antworten spiegeln persönliche Anfänge, prägende Erlebnisse, kritische Momente und eine Einordnung von Javas Rolle in der heutigen Softwareentwicklung wider. Abschließend wagen sie einen Blick nach vorn: mit Tipps für die eigene Weiterentwicklung und Erwartungen an Java in den kommenden Jahren.

Wann und mit welcher Version bist du erstmals mit Java in Berührung gekommen?

Alexander Culum: Das war tatsächlich erst im Studium an der Uni Münster; der Professor (Achim Clausing) hatte damals (also tatsächlich schon 1997!) gerade seine komplette Grundstudiumsvorlesung von Ada auf die brandneue objektorientierte Sprache Java umgestellt, im Nachhinein zu diesem Zeitpunkt eine sehr mutige und weitblickende Entscheidung. Auch ein spannender Moment mit Professor Clausing war etwa 1999, als ich mit ihm zusammen saß und er mir Google gezeigt hat, eine neue Suchmaschine aus dem Forschungsbereich. Sie würde dank fortschrittlicher Algorithmen die damaligen Suchmaschinen (Altavista, Yahoo) ablösen. Ich habe das meinen Kommilitonen erzählt und wir haben viel gelacht. Nun ja.




(Bild: DOAG)

Vom 10. bis 12. März 2026 findet die JavaLand-Konferenz statt. Nächstes Jahr zieht die Community-Konferenz in den größten deutschen Freizeitpark, den Europa-Park Rust. Das Programm bietet knapp 130 Vorträge in 13 Themenbereichen.

Birgit Kratz: Ich habe dazu mal in meinem CV nachgeschaut. Anfang 2005 wurde dort erstmals ein Projekt erwähnt, bei dem ich mit Java entwickelt habe. Damals war gerade Java 5 herausgekommen. Aber im Projekt wurde noch Java 1.3 verwendet. Davor habe ich ziemlich viel mit C/C++ gearbeitet. Der Umstieg auf Java war für mich zwar nicht „easy peasy“, aber auch keine unüberwindbare Hürde. Nach nunmehr 20 Jahren finde ich Java immer noch spannend und lerne fast täglich neue Aspekte der Sprache kennen.

Simon Martinelli: Im Jahr 2000 bin ich während eines Nachdiplomstudiums zum ersten Mal mit Java in Berührung gekommen – damals war J2SE 1.3 gerade brandneu.

Weiterlesen nach der Anzeige

Dierk König: 1995 mit Java 1.0. Cool waren am Anfang Applets und JDBC.

Christian Stein: Mich hat Java seit 1997 gepackt, das muss dann wohl laut der kompletten JDK-Matrix eine der 1.1er-Versionen gewesen sein. Ich hatte bis dahin bereits einige Erfahrungen mit Basic, Pascal, Delphi und C vor allem in der Spieleentwicklung gemacht. Und mir war bereits trotz der damaligen Langsamkeit im direkten Vergleich der Sprachen klar, dass eine virtuelle Maschine in Zukunft besser und stabiler dastehen würde.

Was war rückblickend dein schönstes Erlebnis mit der Sprache oder dem Ökosystem Java?

Alexander Culum: Da gibt es eine Menge. Es war toll zu sehen, dass Java sich immer mehr durchsetzte, auch gegen starke Konkurrenten wie C#. Das Release Java 8 fand ich toll und auch die Tatsache, dass ich die Java User Group Frankfurt 2009 gründen konnte und es immer (manchmal gerade genug) Interessenten gab, sodass die JUGF sich bis heute gehalten hat und wir eine kleine, aber sehr feine Community sind. Generell war Spring, nachdem ich es endlich verstanden hatte (und da reden wir von Jahren), auch immer mein treues, manchmal zu magisches Werkzeug, welches ich sehr zu schätzen gelernt habe. Das Java-Ökosystem wäre heute ohne Spring und die tollen Entwickler dahinter sicher ein anderes.

Birgit Kratz: Am schönsten finde ich immer die Momente, in denen es bei mir in Bezug auf neue Sprachfeatures Klick macht. Es liegt wahrscheinlich daran, dass ich aus meiner Sicht manchmal sehr langsam lerne, fast schon begriffsstutzig bin. Ich hatte das damals beim Umstieg von prozeduraler auf OO-Programmierung. Dann kam Java 5 mit Annotationen. Gefühlt habe ich ewig gebraucht zu begreifen, wozu die da sind und was man damit machen kann. Heute sind Annotationen, speziell bei der Benutzung von Frameworks wie beispielsweise Spring Boot, nicht mehr wegzudenken. Mein nächster großer Kampf war die Einführung von Lambdas und damit der Schritt zu mehr funktionaler Programmierung. Auch da hat es für mich sehr lange gedauert, das zu erfassen und dann auch gezielt einzusetzen. Aber wenn es dann Klick gemacht hat, dann ist das ein sehr schönes Gefühl.

Simon Martinelli: Es gibt unzählige schöne Erlebnisse in meiner Karriere. Eines der spannendsten Projekte mit Java war der erste Online-Ticket-Shop der SBB in den Jahren 2002/2003 – mein erstes Mal als Entwickler in einem richtig großen Team. In jüngerer Zeit denke ich oft an die vielen inspirierenden Begegnungen als Speaker auf Java-Konferenzen und JUG-Meetups. Doch das absolute Highlight war zweifellos meine Ernennung zum Java Champion im Jahr 2024.

Dierk König: Ohne Zweifel die Java Community mit Events wie der JavaOne, als sie das Moscone Center noch alleine ausfüllte, und wir zehntausende Entwickler ansprechen konnten, zum Beispiel bei der Vorstellung von Groovy.

Christian Stein: Nur ein Erlebnis? Na gut, nur ein paar wenige aus so vielen schönen: ein in Java geschriebenes Spiel (iRoll) auf den Markt zu bringen, Teil des JUnit-Teams, der Java User Group Bonn und der Java Platform Group geworden zu sein.

Aber es ist nicht alles golden, was glänzt. Was hat dich negativ beeinflusst bzw. was war ein unschöner Moment im Java-Umfeld?

Alexander Culum: Auch da gibt es eine Menge: Am Anfang bin ich gar nicht mit der Sprache warm geworden (wie gesagt, ich bin mit Java 1.0 gestartet). Schrecklich langsam, fürchterlich overengineered (ja genau: Applets und EJB 1.0!). Nach Borlands Delphi ein wahres Grausen. Dann kam der Kauf von Sun durch Oracle, was in der Community als der letzte Sargnagel wahrgenommen wurde, zu einem Zeitpunkt, als die Konkurrenten sich viel dynamischer und schneller entwickelten. Interessant, dass es vielleicht genau andersherum war. Auch der unbedingte Fokus auf Abwärtskompatibilität wurde nicht immer gut aufgenommen und häufig kritisiert. Ohne diesen Fokus wäre aber Java heute vermutlich nur eine Sprache von vielen im Unternehmensumfeld.

Birgit Kratz: Es liegt wahrscheinlich auch wieder daran, dass sich manche Sachen sehr langsam erfassen und dann aber auch schnell wieder vergessen lassen. Ein ewiger Kampf ist für mich immer das Lesen von Dateiinhalten und die Verarbeitung der darin enthaltenen Daten. Files, InputStreams, OutputStreams, Reader, Writer, … – ein großes Wirrwarr in meinem Kopf. Ähnlich ist es beim Arbeiten mit Datum und Zeit: Date, Time, Instance, Zone, Clock, Temporal, Formatter, … – da hilft nur, jedes Mal aufs Neue, die Doku zu lesen. Leider macht es bei diesen Themen immer nur kurzzeitig Klick bei mir. Und leider schafft es dieses Wissen dann auch nie, sich in meinem Langzeitgedächtnis einzunisten

Simon Martinelli: Schon zu Beginn meiner „Java-Karriere“ hatte ich erste Berührungspunkte mit J2EE-Applikationsservern – eine durchaus spannende Erfahrung. Doch wenn ich an die langen Wartezeiten beim Serverstart zurückdenke, vermisse ich diese Zeiten ganz sicher nicht.

Dierk König: Der Untergang von Sun Microsystems war schmerzhaft.

Christian Stein: Bis heute vermisse ich den UI-Editor von Delphi! Es gab und gibt Nachahmer im Java-Umfeld, aber die reichen nicht an das Original, beziehungsweise an meine Erinnerung daran, heran. Damit verbunden stört es mich, dass das Java Development Kit seit 30 Jahren kein eigenes Build-Tool mitliefert. Zwar geben die einzelnen Tools wie javac, jar, jlink und jpackage einen normierten Ablauf vor, doch fehlt hier eine grundsätzliche Projektstruktur und eben ein Tool, das diese Struktur dann in Aufrufe der anderen Tools umsetzt. Was nicht ist, kann ja noch werden.

Glaubst du, dass Java auch nach 30 Jahren noch relevant ist? Welche Rolle spielt Java deiner Meinung nach in der modernen Softwareentwicklung, insbesondere im Vergleich zu anderen Sprachen und Technologien?

Alexander Culum: Ja, ich denke, Java wird auch in 30 Jahren noch relevant sein. Es wird, trotz unglaublich vieler toller Neuerungen, vermutlich nie die Sprache der „Early Adopter“ und Start-ups sein. Aber viele Rewrites der coolen, schicken JS-serverseitigen Anwendungen werden in Java sein. Und bei der aktuellen Entwicklung sieht man, dass Java mit Leichtigkeit Neuerungen aus anderen Sprachen adaptieren kann, wenn es will, sogar als „schwergewichtige“, statisch typisierte Programmiersprache.

Birgit Kratz: Auf jeden Fall ist Java auch nach 30 Jahren noch relevant. Sehr sogar. Ich denke, Java kommt jetzt gerade in die besten Jahre. Seit der Umstellung auf halbjährliche Releasezyklen gibt es kontinuierlich nützliche Entwicklungen, die einerseits die Sprache modern halten, andererseits aber auch sehr viel Kontinuität garantieren. Sicherlich sieht der Code, den man in Java entwickelt, heute nicht mehr so aus wie vor 30 Jahren. Und das ist auch gut so. Mal ehrlich, wer sieht heute noch so aus wie vor 30 Jahren, und – würde man das wollen? Heutzutage kann man in Java viel prägnanteren Code schreiben, der aber immer noch (oder vielmehr gerade deswegen) sehr gut lesbar ist. Natürlich gibt es andere, neuere Programmiersprachen, mit denen man Aufgaben vielleicht einfacher, kürzer oder „knackiger“ lösen kann. Oft genug sind solche Sprachen aber auch sehr spezialisiert auf die Lösung solcher Aufgaben. Java hingegen bietet ein sehr breites Fundament für die Lösung (fast) aller Probleme.

Simon Martinelli: Java ist nach wie vor äußerst relevant. In meinen aktuellen Softwaremodernisierungsprojekten erlebe ich immer wieder, dass bestehende Systeme einfach analysiert und teilweise sogar wiederverwendet werden können – ein großer Vorteil der statischen Typisierung und der einzigartigen Rückwärtskompatibilität von Java.

Dierk König: Java steht für Verlässlichkeit einer stabilen und weitverbreiteten Ausführungsumgebung.

Christian Stein: Ja, absolut relevant. Gerade weil Java als Plattform sowohl lange dabei und offen ist, weil Java „langweilig“ ist, und auch weil seit Java 9 im Jahr 2017 sich nicht nur durch zwei Releases pro Jahr neu aufgestellt hat: Innovationen erscheinen zuverlässig und planbar! „Lange dabei“: OpenJDK, große Open-Source-Szene, viele Java-User-Gruppen und Konferenzen; „langweilig“: 30 Jahre sind in der IT schon was, bezahlt die Brötchen, andere Sprachen testen Neuerungen aus – Java zieht nach; „Innovationen“: Projekte wie Loom, Valhalla, Babylon und nicht zuletzt Amber schließen Lücken zu anderen Sprachen und gehen manchmal sogar darüber hinaus.



Source link

Entwicklung & Code

Wegen Vibe Coding: Open Source nur noch gegen Geld?


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.

Die immer stärkere Nutzung von Vibe Coding gefährdet das Open-Source-Prinzip (OSS). Viele OSS-Entwicklerinnen und -Entwickler ziehen ihre Motivation nur aus dem direkten Umgang mit der Community und dem Feedback von ihr. Was Open Source groß gemacht hat, bleibt durch Vibe Coding nun aber zunehmend aus.

Weiterlesen nach der Anzeige

Zu diesem Ergebnis kommt die Studie „Vibe Coding Kills Open Source“ der Central European University (CEU), der Universität Bielefeld und des Kieler Instituts für Weltwirtschaft. „Unser wichtigstes Ergebnis ist, dass unter traditionellen OSS-Geschäftsmodellen, bei denen die Verantwortlichen in erster Linie das direkte Nutzerengagement monetarisieren (höhere Sichtbarkeit, die zu bezahlten Gelegenheiten oder anderen Formen der Anerkennung führt), eine stärkere Verbreitung von Vibe Coding das OSS-Angebot reduziert und das Wohlergehen senkt.“

Ihre Urheber verstehen dies als Aufruf zum Handeln und schlagen Lösungen vor. Eine besteht darin, auf ein kostenpflichtiges Open-Source-Modell umzuschwenken, das Erträge an die Maintainer und Kontributoren ausschüttet.

Die von vier Ökonomen durchgeführte Studie nennt das CSS-Framework Tailwind CSS als Beispiel für eines von vielen Projekten, dem der Vibe-Coding-Boom zu schaffen macht. Sie zitiert dessen Anbieter mit den Worten, dass Tailwind zwar populärer sei als jemals zuvor, was die Download-Zahlen angeht. Der Traffic bei den Tailwind-Docs sei gegenüber 2023 aber um 40 Prozent gesunken, der Umsatz sogar um fast 80 Prozent.


Infografik zur Studie

Infografik zur Studie

Stillschweigen: Durch den zunehmenden Einsatz von KI verzeichnen Tailwind (links) und Stack Overflow (rechts) immer weniger Interaktionen.

(Bild: arxiv.org/abs/2601.15494)

Um die Auswirkungen von Vibe Coding auf OSS zu untersuchen, erstellten die Forscher ein Modell des Open-Source-Ökosystems, das auf den zugrundeliegenden ökonomischen Prinzipien basiert. Das Ergebnis: Vibe Coding senkt zwar einerseits die Kosten für die Softwareentwicklung und steigert die Produktivität. Andererseits schwächt es aber die Nachfrage, im Sinne von User-Engagement, und damit den Gemeinwohlgedanken hinter Open Source. „Das zentrale Ergebnis des Modells ist ein Wettrennen zwischen diesen beiden Kanälen.“

Weiterlesen nach der Anzeige

Da es nicht mehr hauptsächlich der Mensch ist, sondern die KI, die mit den OSS-Repositories interagiert, entfällt die Mitmach-Komponente weitgehend. Bei OSS-Maintainern, die sich ausschließlich darüber motivieren, verschlechtere sich dadurch die Qualität und die Verfügbarkeit des OSS-Codes.

Lesen Sie auch

Angesichts des immer beliebteren Vibe-Codings ließe sich der Status quo des OSS-Ökosystems deshalb nur dann aufrechterhalten, wenn man das Wertschöpfungsmodell der OSS-Maintainer grundlegend überdenke. „Die Lösung besteht nicht darin, die Einführung von KI zu verlangsamen – die Vorteile sind zu groß und die Technologie zu nützlich. Die Lösung besteht darin, die Geschäftsmodelle und Institutionen neu zu gestalten, die den Wert an die OSS-Maintainer zurückfließen lassen“, etwa durch kostenpflichtige Angebote.

Da sich KI-gestütztes Programmieren immer mehr durchsetzt, dürfte man um solch eine Diskussion nicht herumkommen.


(who)



Source link

Weiterlesen

Entwicklung & Code

Microsoft löst .NET Framework 3.5 aus Windows heraus


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.

Microsoft hat bekannt gegeben, dass das klassische .NET Framework in der Version 3.5 ab 2026 in Windows 11 nicht mehr Teil des Betriebssystem-Setups sein wird. Bisher war .NET Framework 3.5 eine optionale Komponente bei der Betriebssysteminstallation.

Weiterlesen nach der Anzeige

Künftig muss man das Installationsprogramm für .NET Framework 3.5 von der Microsoft-Website herunterladen und getrennt ausführen. Diese Änderung betrifft erst einmal nur Windows 11 ab Insider Preview Build 27965 und wird dann aber voraussichtlich schon mit dem Feature-Release 26H1 in den stabilen Windows-Kanal eingehen.

Für Windows 10 ist diese Änderung nicht geplant. Details zu der Änderung erläutert Microsoft in einer kurzen FAQ.

Das .NET Framework 3.5 ist am 19. November 2007 erschienen. Der Support für diese Version endet am 9. Januar 2029, siehe Microsoft .NET Framework Lifecycle Policy. Die Version 3.5 ist eine ältere Version des klassischen .NET Framework, das zahlreiche Nachfolger in den Versionen 4.0, 4.5, 4.6.x, 4.7.x und 4.8.x hatte.

Der Support für die Versionen 4.0, 4.5 und 4.5.1 endete schon im Jahr 2016. Die Versionen 4.5.2, 4.6 und 4.6.1 liefen 2022 aus dem Support. Der Version 4.6.2 geht es am 12. Januar 2027 an den Kragen.

Weiterlesen nach der Anzeige

Für die Versionen 4.7 bis 4.8.1 des klassischen .NET Framework wurde noch kein Support-Ende verkündet. Microsoft hatte bei der Einführung der modernen .NET-Versionen (im Jahr 2016 zunächst als .NET Core in den Versionen 1.0 bis 3.1, dann seit Version 5.0 nur noch .NET genannt) zwar offiziell erklärt, dass es keine signifikante Weiterentwicklung des .NET Framework mehr geben wird. Nach dieser Aussage im Jahr 2019 erschien aber im August 2022 noch die Version 4.8.1 für das klassische .NET Framework.

Microsoft hatte auch erklärt, dass man weiterhin an Fehlerbehebungen, Zuverlässigkeit und Sicherheit der klassischen .NET-Framework-Versionen arbeitet und dass das .NET Framework weiterhin mit Windows ausgeliefert werde. Wie die Änderung an der Auslieferungsart von .NET Framework 3.5 jetzt zeigt, bezieht sich diese Aussage „Teil von Windows“ aber offenbar nicht auf alle Versionen.

Die aktuelle Version des modernen .NET ist die Version 10.0, die am 11. November 2025 erschienen ist – zusammen mit C# 14.0. Im heise-Blog Der Dotnet-Doktor erscheint jede Woche ein Beitrag, der neue Funktionen in C# 14.0 und .NET 10.0 vorstellt.

Details zu der Umstellung von .NET Framework 3.5 finden sich im Microsoft-Blog.


(rme)



Source link

Weiterlesen

Entwicklung & Code

Interview: So arbeiten die Entwickler bei OpenAI


Für viele Entwickler sind Programmierassistenten auf Basis großer Sprachmodelle (LLMs) nicht mehr wegzudenken. Da Kompetenz in diesem Feld für neue Modelle besonders relevant ist, nennen Entwickler Coding-Kapazitäten oft neben Mathe-Fähigkeiten, wenn sie die nächste Generation ihrer Produkte hypen wollen. Derzeit nutzen Entwickler oft nicht das Eine Modell, sondern greifen für verschiedene Anforderungen auf die Klassenbesten verschiedener Anbieter zu – wenn nicht sogar kleinere Modelle simplere Aufgaben abwickeln.

Weiterlesen nach der Anzeige

Unter dem Namen Codex bündelt OpenAI die Programmierfähigkeiten seines Angebots, auf die sich über eine CLI-Variante, als IDE-Extension oder auf dem Mac neuerdings per App zugreifen lässt. Im Gespräch mit iX erzählt Dominik Kundel, Developer Experience Lead bei OpenAI, über Softwareentwicklung mit Codex bei OpenAI und den Zielen, die das Unternehmen mit dem Tool verfolgt.




Dominik Kundel ist Developer Experience Lead für Codex bei OpenAI in San Francisco. Er sitzt bei OpenAI zwischen dem Produkt- und dem Go-to-Market-Team, programmiert am Tooling und an der Dokumentation und Lehrmaterialien, um dafür zu sorgen, dass Leute das Meiste aus Codex herausholen können.

iX: OpenAI hat zwischen 2021 und 2025 drei Werkzeuge vorgestellt, die Codex heißen. Was ist der aktuellste Ableger der Reihe denn jetzt genau?

Dominik: Grundsätzlich verstehen wir Codex als eine Einheit. Codex ist ein Software Engineer, der da sein soll, wo Entwickler arbeiten. Das ist einmal die Terminal-Oberfläche Codex CLI. Außerdem gibt es Codex für Code Reviews in GitHub und IDE Extensions, um Codex in Cursor oder in VS Code zu benutzen. Darunter liegen die Codex-Modelle, aktuell GPT-5.2 Codex. Das sind auf Programmieren trainierte Modelle und der Codex Harness, in dem die Agenten interagieren. Diese Teile geben wir auch in der API raus, worüber Cursor oder Open Code ebenfalls mit Codex interagieren können.

Wie helft ihr euren Nutzern dabei, den Überblick über ihren generierten Code zu behalten?

Einerseits mit der Funktion Codex Code Review, die automatisch mit der ChatGPT-Subscription kommt. Codex ist gut darin, selbst komplexe Codebases zu navigieren und zu verstehen. Wir haben sehr große Codebases bei OpenAI und testen das Ganze damit selber. Andererseits ist Codex gut darin, Rückfragen zu stellen, um den Code zu verbessern. Wir benutzen Codex selbst viel, um sozusagen aufzuräumen. Wir schicken Codex die Aufgabe, Sachen zu refactorn oder Bugs zu finden. Ich hab letztes Jahr am Agents SDK gearbeitet und hatte dabei konstant mehrere Codex-Instanzen laufen, die noch nach Bugs gesucht haben oder Sachen verbessert haben.

Weiterlesen nach der Anzeige

Das heißt, ihr entwickelt bei OpenAI selbst mit Codex?

Grundsätzlich sieht es bei uns so aus, wie bei vielen Silicon Valley Softwarefirmen, wir benutzen also Git und PR-Reviews. Allerdings haben wir durch den ganzen Prozess Codex verteilt. Das heißt, Entwickler, aber auch Product Manager, Designer, Data Scientists, andere, eigentlich mittlerweile fast die komplette Firma benutzt Codex, um Code zu schreiben. Der Code geht dann aber noch durch die traditionellen Pull Requests Reviews und den ganzen Prozess. Wir nutzen Codex aber auch für einen zusätzliches Review, durch das aller Code läuft. Wir haben das Modell explizit auf Code Reviews trainiert.

Mich überrascht häufig, wenn Codex Sachen findet, die ich selbst nicht gefunden hätte. Vor allem, da ich zum Teil an Dokumentation arbeite und dann etwa einen Pull Request hochschicke und auf einmal dann ein Kommentar kommt, dass auf der aktuellen Seite die Dokumentation und der Source Code nicht übereinstimmen. Etwa, weil es eine Logikproblem gibt. Trotzdem wird jeder PR noch von Menschen durchschaut. Häufig ist es so, dass die Leute als Erstes Codex benutzen, um den PR zu reviewen und dann eventuell irgendwelche CI/CD Probleme von Codex reparieren lassen, bevor ein Kollege den Pull Request dann durchschaut.

Hast du das Gefühl, du hast dann noch die Kontrolle über die ganzen Agenten oder bist du eigentlich nur noch ein Mensch, der Sachen abnickt?

Nee, ich habe noch Kontrolle. Vor allem bei komplexeren Problemen bitte ich Codex, erstmal einen Plan zu schreiben. Wir haben einen Kollegen, Aaron Friel, der nennt seine Pläne „Exec Plans“. Er lässt das Modell ein komplettes Dokument schreiben, wo es dokumentiert, welche Entscheidungen es getroffen hat und was der Fortschritt ist. Da hat man ein Log, durch das man nochmal durchgehen kann und die Richtigkeit der Entscheidungen bestätigen kann. Das lässt sich auch noch weiter aufteilen, um weiterhin mehrere PR-Reviews zum Durchgehen zu haben.

Was wir generell vorschlagen ist, die gleichen Systeme aufzusetzen, wie wenn man mit einem großen Team an denselben Sachen arbeitet. Das heißt, CI ist eine der ersten Sachen, die ich normalerweise aufsetze, um sicherzustellen, dass ich dann auch Test Coverage habe. Das hilft dann auch Codex. Codex ist generell darauf trainiert, zu verifizieren, ob die Aufgaben fertig sind. Wenn man also nach einem neuen Feature fragt und bereits Tests hat, schreibt Codex automatisch neue Tests. Sowas hilft dann bei der Maintenance. Genauso wie weiterhin Code Reviews zu machen und Dokumentation zu behalten. Ich habe das Gefühl, dass die Codebases besser aussehen, weil Codex hilft Features zu dokumentieren und auch bei anderen Aufgaben hilft, die in der Realität oft hinten anstehen.

Benutzt ihr nur Codex oder benutzt ihr auch Modelle von anderen Anbietern?

Wir benutzen nur OpenAI-Modelle. Bei der Wahl des Editors sind wir nicht festgelegt, da kann jeder Kollege die IDE of Choice einsetzen, die eventuell noch weitere KI-Features hat. Wenn ich mal Code schreiben muss, dann benutze ich Cursor, wo ich dann das Cursor Tab Modell benutze. Cursor ist allerdings auch ein großer OpenAI-Kunde.

Viele Entwickler schwören aktuell auf Claude Code mit Opus 4.5. Wie wollt ihr da mit Codex aufholen?

Ich glaube, dass es da zwei Perspektiven gibt. Auf der einen Seite sind die Leute, die Claude Code sehr mögen, mit den Features, die es gibt und auch das Terminal Interface, was die Modelle haben. Die Leute mögen es, mit Opus zu schreiben. Wir hören häufig, dass Codex zu langsam ist. Da arbeiten wir auch dran. Auf der anderen Seite gibt es viele Leute, die mittlerweile auf Codex schwören. Die Anwender loben, dass sie Codex ein Problem geben und das Tool einfach daran arbeitet. Wenn sie dann später wiederkommen, ist Codex komplett fertig.

Anders als bei Claude Code, wo man sich dran gewöhnt hat, hin und her zu schreiben, ist Codex gut darin, ein Problem zu nehmen und wenn es das Ziel verstanden hat, einfach für mehrere Stunden an diesem Problem arbeiten. Peter Steinberger, der im Moment auf X und LinkedIn sehr viral geht, schreibt darüber, dass er Codex bevorzugt und wie er das meiste aus Codex rausholt.

Wie wollt ihr Codex denn schneller machen?

Ich kann da keine Details nennen, aber wir haben zum Beispiel vor Kurzem eine Cerebras-Partnerschaft angekündigt.

Du hast über große Codebasen gesprochen, wie ihr sie ja selber habt. Gibt es besondere Strategien für den Umgang damit?

Mono-Repos helfen sehr, um dem Modell Kontext zu geben. Also, in der Lage zu sein, Codex etwa auf das Backend zu verweisen, wenn man gerade zum Beispiel an einer Android-App arbeitet. Ein gutes Beispiel dafür ist unser Browser Atlas. Da gibt es das Agent Panel, über das ein Agent in einem logged-in oder logged-out State dann selbst mit dem Browser umgehen kann. Das Feature und den Wechsel zwischen den Zuständen hat größtenteils Codex geschrieben. Dafür musste es die Codebase mit vier verschiedenen Sprachen durchgehen. Diesen Kontext zu geben ist sehr hilfreich.

Außerdem schlagen wir vor, CI/CD zu haben und generell Validation Tools. Wenn man also Frontend-Produkte baut, auch die Tools zu haben, die sicherstellen, dass die Frontend-Komponenten richtig gerendert werden. Man kann dann die Screenshots wieder als Image-Input in Codex reingeben und Codex kann sich dann quasi selbst validieren. Ein weiterer Punkt ist Naming. Wir empfehlen, Namen zu benutzen, die sehr einfach zu finden sind. Codex benutzt nämlich Tools wie grep und ripgrep, um sich in der Codebase zurechtzufinden. Wenn es die Sachen schnell finden kann, ist Codex wesentlich schneller.

Einer der Gründe, warum Codex den Leuten langsam vorkommt, ist, dass es häufig erstmal auf eine Tour geht, um sich zurechtzufinden. Codex springt nicht direkt rein und schreibt irgendeinen Code, sondern es geht erstmal rum und versucht, zu verstehen. Genauso wie das ein Software-Entwickler machen würde: Wie sieht die Codebase hier aus, wo sind die Daten oder die Dateien, mit denen ich umgehen möchte. Das Modell versucht zu verstehen, wie das Ganze aufgebaut ist, bevor es dann anfängt. Naming Conventions, die dem Modell erlauben einfacher herumzuspringen, helfen.

Was hebt die neue Codex App vom CLI oder dem Plug-in-Einsatz ab?

Die App ist gezielt entwickelt, um Leuten beim Multitasking zu helfen. Viele Leute nutzen mehrere Codex-Instanzen parallel, die dann mehrere CLI-Tabs nebeneinander aufbauen. Die Codex-App ist als Command Center gedacht. Man kann den Überblick über alle Projekte behalten und schnell zwischen den Projekten wechseln. Dabei hat die App ein ähnliches User-Interface wie die IDE-Extension, man hat also Zugriff auf Features wie Worktrees. Wenn man an mehrere Features in der gleichen Codebase arbeiten will, kann man mehrere Worktrees aufbauen, um dann Aufgaben im Hintergrund laufen zu lassen und dann schnell dazwischen zu wechseln. Außerdem heben wir in der App Agent Skills hervor, also die Möglichkeit, dem Agenten neue Capabilities wie bestimmte APIs oder bestimmte Tools beizubringen.

Also generell Tool-Use-Funktionen?

Das ist ähnlich wie Tool Use, nur, dass der Agent das Ganze „progressively discovered“. Man kann jetzt bestimmte Prozesse einbauen. Ich habe letztens ein Screenshot-Skill gebaut, der auch in der App enthalten ist. Damit kann man Codex anweisen, Screenshots der App zu machen, die Codex dann benutzen kann, um selber zu verifizieren, ob es den Job richtig gemacht hat. Als ich diesen Skill gebaut habe, habe ich dann meinen PR zu GitHub geschickt, der Codex Code Review auf GitHub hat dann ein Problem gefunden. Ich habe dann den GitHub „address code review“-Skill benutzt, um Codex auf GitHub zu schicken und das Problem zu analysieren, zu fixen und ein Update zu dem PR zu schicken.

Man kann in diese Skills Prozesse einarbeiten und dann mit dem kombinieren, was wir Automations nennen. Automations sind dann Aufgaben, die entweder jede Stunde oder zu einer bestimmten Uhrzeit am Tag laufen. Die Automations laufen im Hintergrund auf einem Worktree. Wenn sie irgendein Problem finden, können sie das Ganze an dich weiterleiten. Ein Kollege hat beispielsweise jede Stunde eine Automation laufen, die alle seine Pull Requests durchgeht und guckt, ob CI bei denen grün ist oder ob es irgendwelche Probleme gibt und fixt die dann automatisch selber. Oder die Automation läuft einmal am Tag durch Sentry durch und guckt sich die Error-Logs an. Dann sucht sich das Programm ein besonders großes Problem aus und versucht es selber zu fixen und öffnet einen PR.

Mit Codex und den Automations in der App kann man als Entwickler dann auch die Aufgaben neben der Feature-Entwicklung im Blick behalten. Also die Aufgaben, die so an der Seite hängen oder nicht-technische Aufgaben sind, wie etwa bei der Codebase auf dem Laufenden zu bleiben. Da kann man sich zum Beispiel einmal am Tag ein automatisiertes Update mit den Änderungen an der Codebase schicken lassen und dazu, was in dem Fall an der Dokumentation aktualisiert werden muss.

Du hast berichtet, dass ihr am Ende immer die Ergebnisse von Codex kontrolliert. Wie vibe-coding-freundlich ist euer Tool?

Wir wollen, dass Codex eine Stütze für professionelle Entwickler ist. Codex kann an sehr komplexen Problemen arbeiten, weswegen es auch etwas langsamer ist. Das heißt, es kommt darauf an, was man aus dem Vibe Coding herausholen will. Ich habe zum Beispiel schonmal eine komplette Demo-App während eines Meetings gebaut, was viele so Vibe Coding nennen würden. Es funktioniert, aber es ist nicht die gleiche Erfahrung, als wenn man sich beispielsweise was mit Lovable bauen lassen würde.

Dominik, vielen Dank für das Interview.


(pst)



Source link

Weiterlesen

Beliebt