Eigentlich ein einfaches Beispiel…. füge Zahlen an einen Text an. Also so einfach, dass das quasi in der zweiten oder dritten Stunde schon für Programmier-Einsteiger geeignet ist.
Und dennoch erstaunlich hilfreich – immer wieder ein „Aha-Effekt“, denn je nach Lösung kommen völlig unterschiedliche Laufzeiten bei raus.
Variante 1 nutzt Strings, Variante 2 einen StringBuffer.
Variante 2 ist bei 100.000 Durchläufen 70 Mal schneller, bei 200.000 Durchläufen sogar schon 200 Mal schneller, Tendenz schnell steigend.
Nur bei weniger als 20 Durchläufen sind beide in etwa gleich schnell.
Für die Programmierer unter uns vermutlich längst klar, denn bei Variante 1 müssen ständig Daten kopiert werden (weil Strings intern oft als Array repräsentiert werden, die die Größe nicht dynamisch anpassen können). Variante 2 nutzt intern Listen, an die ich einfach immer wieder neue Sachen anhängen kann.
Je mehr Daten, desto größer der Effekt.
Nun aber die viel spannenderen Fragen:
• wer weiß denn sowas (noch)?
• macht das nicht künftig die KI automatisch richtig (Spoiler: nein)?
• wer findet sowas künftig raus, wenn ein Programm zu langsam wird?
Aktuell haben wir noch sehr viele gut qualifizierte Informatiker, die solche Fragen im Schlaf beantworten – aus Erfahrung, aufgrund vieler „blutiger Nasen“, durchgemachter Fehler-Such-Nächte, usw.
Die kommende Generation nutzt mehr und mehr KI. Durchgemachte Nächte werden weniger (oder anders), das Wissen (in diesem Fall Faktenwissen) nicht mehr so wichtig und Performance erschlägt man durch den Kauf neuer, leistungsfähigerer Rechner.
Ich bin davon überzeugt, dass dieser Ansatz nicht funktionieren wird.
Wir brauchen nämlich beides: solides Wissen gepaart mit Erfahrung und der Nutzung moderner Technologien. Vielleicht müsste man im Bereich Informatik eigentlich fast jede Vorlesung doppelt halten – einmal ohne KI und einmal mit KI. Aber ob das jemand studieren würde….
Spannende Zeiten jedenfalls.
Hashtag#informatikersindcool Hashtag#einherzfürnerds