Verschwendungs-Rant Nr. [n+1]

Kennt ihr das? Festplatte fast voll?

Was tun? Alte Fotos oder Videos löschen, die man irgendwann mal vom Handy rüberkopiert hat und BESTIMMT irgendwann nochmal gebrauchen kann?

Nein, als Entwickler haben wir ganz andere Optionen. Zum Beispiel: Nicht mehr benötigte Android-SDKs löschen. Das geht ganz leicht über den SDK-Manager in Android Studio, und darum geht es hier auch nicht.

Nein, es geht darum:

Klar: Eine IDE braucht einen Cache. Mit indizierten Infos über den Code, was weiß ich.

Aber wieso zum Kuckuck bleiben die Caches längst veralteter und nicht mehr vorhandener Versionen von Android Studio liegen?? Kann man nicht mit einem simplen Löschbefehl im Update-Skript den Cache löschen? Ist ja nicht so, dass er nicht wieder aufgebaut werden könnte, falls benötigt. Nein, stattdessen wird der Festplattenplatz des Nutzers verschwendet, und zwar völlig intransparent – man findet das Zeug nur, wenn man explizit danach sucht.

Tatsächlich entfällt der größte Teil des Datenmülls auch noch auf tmp-Daten:

Wieso nimmt man dafür nicht einfach das Systemverzeichnis tmp, das genau dafür da ist und beim Aufräumen ja die erste Anlaufstelle fürs Gelöschtwerden ist?

Ganz abgesehen von diesen Logfiles, die bestimmt kein Mensch je liest! Darunter nehmen übrigens open-telemetry-meters-Files den Löwenanteil ein, also irgendwelche Performancemetriken. Keine Ahnung, wieso die dauernd erzeugt werden, hab ich das etwa erlaubt? Na ja, wenn das System sich dadurch optimieren würde, von mir aus, aber auch diese Daten gehören gelöscht, wenn ich eine neue Version installiere.

Diese Speicherplatzverschwendungsarroganz geht mir gehörig auf die Nerven. Jede neue gekaufte SSD muss erst produziert werden, und wenn die Daten über die Leitung gehen, verbraucht das Energie, die ich bezahlen muss. Klar, viel ist das nicht, aber multipliziert mit Millionen Entwicklern auf der ganzen Welt..?

tl;dr: Liebe Entwickler, erinnert euch gelegentlich an das Gebot der Datensparsamkeit. Danke.

In eigener Sache: Flutter und Dart

Welches plattformübergreifende Framework ist das beste?

Keine Sorge, ich beginne hier weder Umfrage noch Flamewar. Aber meine 2 Cent setze ich auf Flutter. Seit einiger Zeit lassen sich damit nicht nur Apps für Android und iOS schreiben, nein: Die Programme laufen nach entsprechendem Build und kleinen Anpassungen gleichermaßen nativ auf Mac OS X, Windows, Linux und sogar im Browser.

Programmiert wird Flutter in Dart, einer stark an Java erinnernden Sprache, die sich entsprechend leicht erlernen lässt. Nur die Programmierung von Benutzeroberflächen ist etwas gewöhnungsbedürftig (je nach Developer-Background) und wird schnell unübersichtlich, wenn man nicht aufpasst.

Wieso ist das erwähne? Weil ich die Ehre hatte, das große Flutter/Dart-Handbuch von Marc Marburger für die zweite Auflage zu pimpen.

Das Buch ist ab sofort bei Rheinwerk erhältlich. Meine persönlichen Exemplare haben es jetzt auch zu mir geschafft, und der arme Postbote war mal wieder froh, dass ich in keiner Wohnung mit Treppenhaus wohne. Ist nämlich locker das dickste Buch, auf dem mein Name steht.

Am Ende des wirklich umfassenden Buchs gibt’s auch eine nützliche Beispiel-App, deren Entwicklung von A wie Architektur bis Z wie Zusammenfassung durchexerziert wird. Den zugehörigen Code gibt’s im Downloadpaket und da es sich um Open Source handelt, auch in meinem GitHub.

Klarer Fall: Meine nächste plattformübergreifende App wird mit Flutter entstehen! Und eure?

Gruß aus dem Loch

Kürzlich schrieb mir mein Mobilfunkdienstleister eine fröhliche SMS, laut der mein Vertrag jetzt auf 5G umgestellt werde. Hurra!

Wenn ich doch bloß nicht in einem Funkloch wohnen würde (5G-Karte der gemessenen Funklöcher der Bundesnetzagentur).

Ich bin ja immer noch für stationäre Solar-Zeppeline, die das Netz auch in die Täler der Ahnungslosen funken, die es sogar mitten in NRW immer noch gibt.

Leicht finanzierbar mit Touri-Rundflügen und optionalem Bungee-Jumping!

Hm? Wie? Nein, ich habe KEINE Ahnung, wieso vor mir noch keiner auf diese Idee gekommen ist.

KI-Hype vs. nackte Zahlen

Zwecks Versachlichung:

Verbesserung von Code-Qualität durch KI-Nutzung laut Google-Report DORA (Oktober 2024): +7,5%. Laut derselben Studie haben 39% der Befragten wenig bis kein Vertrauen in KI-generierten Code und die Stabilität kann sich um bis zu 7,2% reduzieren.

Laut einer GitHub-Studie (November 2024) coden Entwickler dank Copilot 55% schneller. Die Wahrscheinlichkeit für Korrektheit (überprüft mit Unit-Tests) ist 56% höher. In Blindstudien lag die Lesbarkeit des KI-generierten Codes knapp 4%, die Verlässlichkeit 3% und die Wartbarkeit 2% höher. 4, 3, 2 Prozent: Das scheitert an der 5-Prozent-Hürde, auch wenn die Studie behauptet, die Zahlen seien signifikant und nicht irgendwelche Schwankungen.

Laut Stackoverflow Developer Survey 2024 verwenden 62% der Entwickler KI-Tools. 72% sind zufrieden oder sehr zufrieden mit diesen Tools. 81% nennen erhöhte Produktivität als größten Vorteil. 66% vertrauen dem KI-generierten Code nicht und 63% bemängeln den fehlenden Kontext zur Codebasis. Entspricht meinem persönlichen Eindruck.

Keine oder geringe (bis 10%) Ausschöpfung von KI-Potenzial in deutschen Unternehmen (Selbsteinschätzungen laut Studie Stifterverband Deutsche Wissenschaft und McKinsey, Januar 2025): 70% – Antwort „Ja, den Mitarbeitern fehlen grundlegende KI-Kompetenzen“ (gleiche Studie): 79%

Antwort „KI sorgt für zusätzliche Arbeitslast“ (Studie von Upwork, Sommer 2024): 77%

Gelöste Aufgaben des KI-TestsHumanity’s Last Exam“ durch aktuelle Sprachmodelle (Stand Januar 2025): maximal 10%

Umfrage der Game Developers Conference (Januar 2025): 30% sehen einen negativen Einfluss generativer KI, Vorjahreswert: 13%. 36% der Entwickler in der Spielebranche nutzen KI-Tools (+5% seit 2024), allerdings auch in Marketing/Finance, hier geht es also nicht nur ums nackte Programmieren.

Einen Nutzen durch Einsatz von KI-Anwendungen sehen laut einer Befragung der Boston Consulting Group in Deutschland ein Viertel der befragten Unternehmen. Laut der gleichen Befragung erwarten 95% der Führungskräfte keinen Rückgang der Mitarbeiterzahlen aufgrund KI-Einsatz. Denn die frei werdenden Ressourcen kann man ja vorteilhaft für andere Aufgaben einsetzen, zum Beispiel seit Jahren herumliegende Bugtickets bearbeiten…

Geschätzte jährliche Energiekosten durch ChatGPT: 140 Millionen Dollar. (Eine Anfrage an ChatGPT verbraucht 10x soviel Strom wie eine Google-Suche. Ob sie wohl auch 10x so informativ ist…?)

Geschätzte Energiekosten für das Training von ChatGPT 4: 8,2 Millionen Dollar

Kursverlust Börsenwert Nvidia aufgrund von ein paar angeberischen Behauptungen über die Effizienz von DeepSeek (das chinesisch und zensiert und womöglich mit ChatGPT trainiert ist) in sozialen Medien am 28.1.25: 589 Milliarden Dollar.

tl;dr: KI ist ein Hype.

KI – der nackte Wahnsinn

Ich schreibe einen kleinen Programmierwettbewerb aus. Zu gewinnen gibt es einen rosafarbigen Pokal in Dildoform, den ich aus naheliegenden Gründen nicht abbilde.

(Symbolbild)

Wir befinden uns in einer nahen Zukunft. Die KI-basierte Software namens „YourPorn 1.0“, die ihr entwickelt habt, ermöglicht es, ein paar (nackige) Selfies von sich selbst hochzuladen, ein paar Schlagworte einzugeben, und heraus kommen die ersten 30 Sekunden eines einmaligen, individuellen, in 720p codierten Pornos mit dem User in der Hauptrolle.

Generiert von einer Video-KI, natürlich, die mit einschlägigen Trainingsdaten gefüttert wurde (und davon gibt es wahrlich genug).

Das volle, 5 Minuten lange Video in Full HD kostet dann 9,99 (es gibt natürlich auch günstige Abomodelle).

Die Teilnahmebedingungen könnt ihr mit einem ChatGPT-Prompt eures Vertrauens erfragen. Nicht vergessen: Das Wasserzeichen „KI-generiert“, damit der Quatsch nicht für Deep Fakes missbraucht werden kann.

Ich bin gespannt!

Scratch für Godot

Tja, da war ich zu schnell: Kaum ist mein Godot-Buch auf dem Markt, in dem ich anfangs Scratch-Beispiele zeige, um sie dann in Godot-Code zu übersetzen, erscheint Scratch für Godot

Okay, es heißt nicht so, sondern Block Coding, aber es funktioniert genau so.

Noch ist es nicht auf deutsch übersetzt, aber das ist sicher nur eine Frage der Zeit. Ich werde das Addon in meinem nächsten Projekt ausprobieren, um rauszufinden, ob man damit schneller oder langsamer entwickelt. Ich denke, für einfache Aufgaben eignet es sich gut – und vor allem für Einsteiger. Bestimmt werde ich das Addon bei der Spieleprogrammieren-AG einsetzen, die ich im zweiten Halbjahr an einer Schule veranstalte. Wo die Grenzen des Addons erreicht werden, wird eben doch Code eingesetzt. Ich denke, auch bei Berechnungen ist Code übersichtlicher. Spannend wird, wie Code und Blocks interagieren. Ich werde berichten!

In eigener Sache: „Spiele programmieren mit Godot“

Nach mehrmonatiger Arbeit ist mein neues Buch erschienen. Es richtet sich an Programmiereinsteiger, obwohl/weil es u.a. auch das Single-Responsibility-Prinzip erklärt – ja, das ist auch bei Spielen sinnvoll.

Das Buch ist überall zu haben, wo es Bücher gibt, und im Verlagsshop.

Wenn die Benzinpreiswerbedisplaysoftware versagt…

Natürlich genügt es Tankstellen nicht, die sich fast minütlich ändernden Benzinpreise in großen Leuchtbuchstaben anzuzeigen (man stelle sich sowas für Milchpreise vorm Aldi vor, aber das ist eine andere Geschichte). Man muss zusätzlich zwei große Fernseher anbringen (geschätzte Leistungsaufnahme: je 100 Watt, mal 24 Stunden am Tag mal 366 Tage… schon gut, ich weiß, Energieeinsparung sollte man nicht ausgerechnet von Mineralölkonzernen erwarten), auf dem in mittelmäßig attraktiven Animationen den mit ca. 50 km/h vorbeifahrenden Autofahrern die aktuellen Preise präsentiert werden.

In einem solchen Gerät steckt mutmaßlich ein kleiner Computer, der die aktuellen Benzinpreise vermutlich aus dem Internet bezieht.

Nur mal angenommen, für den unwahrscheinlichen Fall, dass dabei etwas schiefgeht … sagen wir, es werden nicht die aktuell korrekten Preise angezeigt, weil Software oder Internetverbindung gestört sind, sondern andere … das wäre natürlich fatal, weil die Kunden dann darauf bestehen könnten, dass sie das Benzin zu womöglich deutlich günstigeren Preisen (paar Cent sind auch Geld!) erstehen könnten. Verständlicherweise keine Option!

Was also tun? Das Problem beheben?? Das Gerät abschalten???

Natürlich nicht. Das hier ist doch die viel kreativere Lösung:

Man beachte: Die Zehntelcent-Neun wurde nicht überklebt.

Weil: die stimmt ja immer.

Schlechter Coden mit KI?

Eine Untersuchung kam zu dem Ergebnis, dass die Verwendung von KI-basierten Coding-Hilfen die Codequalität verschlechtert.

Ach tatsächlich? *Augenverdreh-Smiley*

Programmierer sind bekanntermaßen faul. Wenn man ihnen die Möglichkeit gibt, noch fauler zu sein, werden sie sie nutzen. Und dummerweise sind die Qualitätsmängel einer KI-Codeempfehlung nicht immer offensichtlich. Letztlich muss einem aber klar sein: Es ist copy+paste-Coding. Und das hat immer eingebaute Nachteile, weil eine ggf. sinnvolle Abstrahierung nicht stattfindet und manchmal notwendige Änderungen übersehen werden. Copy+paste-Fehler gehören zu den häufigsten. Die KI kann auch Fehler machen, Denken muss man schon noch selbst, das kann sie nämlich nicht!

Ich bin mal gespannt, wann erste, anspruchsvollere Dev Leads die Coding Rule rausgeben, keinen KIs als Programmiersklave zu verwenden. Und, wie das ggf. überprüft werden soll.

Übrigens sind auch Lizenzfragen hier relevant. Manch ein KI-generierter Codeschnipsel könnte von Scannern als Duplikat einer restriktiv lizensierten Stelle aus irgendeinem gitbub-Repo identifiziert werden. Der zuständige Entwickler* kann dann schlecht mit dem Finger auf die KI zeigen, denn die Verantwortung für den erzeugten Code trägt er. Dieser Verantwortung müssen Entwickler* gerecht werden und generierten Code kritisch hinterfragen, und zwar mindestens genauso kritisch, als wäre er von einem Kollegen geschrieben worden.

Wer KI-Instrumente einsetzt, sollte nicht von Faulheit getrieben sein – sondern von Vorsicht.