Transcript: Platonismus und Python - Data Class Builders

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Hallo, liebe Hörerinnen und Hörer, willkommen im Python-Podcast, Episode 66.

Dominik

Heute quatschen wir über das nächste Kapitel im Fluent Python-Buch,

Dominik

falls euch das interessiert, über Dataclasses und warum das riecht oder nicht,

Dominik

oder was Cooles und wer das sonst so ist mit Sachen.

Dominik

Hi, Johannes.

Johannes

Hallo, hallo Dominik, hallo Jochen.

Dominik

Hi, Jochen.

Dominik

Ja, hallo Dominik, hallo Johannes.

Dominik

Ich habe gehört, lieber Jochen, du wolltest, du warst auf einem Podcast-Barcamp.

Jochen

Genau, und dann habe ich so gesagt, wie wir Podcasts aufnehmen.

Dominik

Ja, und dann hast du gesagt, wir sollten ein bisschen mehr Struktur machen und das wieder ein bisschen schöner.

Jochen

Ja, das hat mich so leicht irritiert, aber dann dachte ich, ja gut, dann höre ich mal vielleicht, was so Leute zu sagen haben.

Jochen

Die haben ja vielleicht auch Erfahrung und so.

Dominik

Weil wir unseren Podcast an anderen Podcasts machen, als die ihren Podcast machen.

Dominik

Und deswegen machen wir das jetzt so, wie die anderen Leute, die nicht so einen Podcast machen, wie wir den Podcast machen.

Dominik

Wie wir das richtig machen.

Dominik

Also ich habe mich auch mit Leuten unterhalten und die haben dann so geguckt.

Dominik

Ich glaube, das geht gar nicht so schlecht.

Jochen

Ja, das geht schon, aber ich meine, wir machen das ja nicht so richtig professionell.

Dominik

Wollte gerade sagen, Jochen, möchtest du das jetzt professionell?

Dominik

Nein, nein, das auch nicht.

Jochen

Aber also zum Beispiel irgendwie ein Ratschlag war halt so, ja, sagt doch vorher, wenn ihr euch vorstellt.

Jochen

Einmal macht das immer gleich quasi.

Jochen

Es wäre auch so eine Intro-Melodie oder so, wäre nicht so schlecht.

Jochen

Dann dachte ich schon so, oh Gott, oh Gott, oh Gott.

Jochen

Aber ja, ich habe gehört, es gibt Leute hier unter uns.

Dominik

Ich kann ja meinen eigenen Jingle schreiben, dann mache ich den auf meinen Style.

Dominik

Und dann können wir ja gucken, wie das dann runtergeht.

Johannes

Wenn man sich die Kurve anguckt, ist halt so, in allem meinen eigenen Jingle.

Johannes

Immer wenn ich dabei bin, muss der am Anfang eingespielt werden.

Johannes

Das ist eigentlich eine coole Idee.

Jochen

Ja, ja, okay, dann sieht die, wie viele Leute hören noch zu Kurve wahrscheinlich aus,

Jochen

wie so Akapulco, Klippenspringer, irgendwie ins Nichts.

Jochen

Das vielleicht auch nicht so toll.

Dominik

Ja, aber ich finde, wie wir es sonst so machen, wir haben ja eigentlich schon mehr eine Struktur,

Dominik

als du jetzt denkst, Jochen.

Dominik

Also erstens kennen uns ja die Leute und wenn die sich dafür interessieren, wie wir sind

Dominik

oder interessieren würden, also ganz ehrlich, dann können die uns auch fragen.

Dominik

Hallo at peisenpodcast.de.

Dominik

Also wir machen irgendwas mit Peisen.

Dominik

Das hat man vielleicht schon mal.

Dominik

Das hat man schon mal rausgehört.

Dominik

Ich glaube, das ist auch offensichtlich.

Dominik

Und viel mehr muss man, glaube ich, gar nicht wissen.

Dominik

Also muss man nicht, kann man natürlich gerne.

Dominik

Dafür kann man ja fragen oder uns kennenlernen.

Dominik

Unseren Hörer treffen, das bald stattfindet.

Dominik

Wir organisieren das nämlich.

Dominik

Wir haben noch immer noch gar keinen festen Termin,

Dominik

aber es wird wahrscheinlich auf August, September hinauslaufen.

Dominik

Ja, aber ich fürchte, das müssen wir jetzt sagen.

Dominik

Sag ich doch, August oder September.

Jochen

Das ist kein fester Termin, oder?

Jochen

Nein.

Dominik

Dann müssen wir jetzt noch mal kurz unsere Kalender übereinanderlegen.

Jochen

Also ich glaube, tatsächlich wird es eher Ende August,

Jochen

bis Anfang Juli.

Jochen

Anfang September werden müssen, wegen Schulferien.

Jochen

Ja, Anfang September bin ich übrigens im Urlaub.

Jochen

Ja, das musst du leider absagen.

Jochen

Das geht halt nicht.

Jochen

Na gut, dann wird es halt vielleicht eher sogar Ende September.

Jochen

Okay, dann sagen wir, wir schieben die Ankündigung auf nächste Episode,

Jochen

die hoffentlich im Juli.

Dominik

Ja, also es sollte noch gutes Wetter sein.

Dominik

Wir wollen es nämlich draußen machen.

Dominik

Und okay, September, was ist mit August?

Dominik

Geht nicht gut.

Dominik

Wie gesagt, das ist ein Schulferien.

Dominik

Okay, geil, dann wir diskutieren das später aus.

Dominik

Wir haben auf jeden Fall das Thema.

Dominik

Sagt gerne Bescheid, wenn ihr vorbeikommen wollt.

Dominik

Es ist hier in der Gegend.

Dominik

Also hier heißt Rheinland-Düsseldorf.

Jochen

Ja, wir können ja schon mal sammeln.

Jochen

Also wenn ihr uns irgendwas an hallo-at-python-podcast.de schreibt,

Jochen

dann notifizieren wir euch, sobald wir genaueres wissen.

Jochen

Genau.

Dominik

Und es wird wahrscheinlich draußen irgendwie ...

Dominik

Draußen gibt es vielleicht was zu essen.

Dominik

Irgendwie so.

Dominik

Ja, ja.

Dominik

Irgendwie Dinge.

Dominik

Ja, okay.

Dominik

Genau.

Dominik

Ja.

Dominik

Das zur anderen Struktur, Jochen.

Dominik

Ja.

Dominik

Wir machen immer News.

Jochen

Ja, wir machen News.

Jochen

Das ist cool.

Jochen

Dann machen wir doch gerade ein bisschen News.

Jochen

Ja.

Dominik

Aber vorgestellt hat sich jetzt keiner, oder?

Johannes

Ach, Mist.

Johannes

Jetzt doch haben wir schon ...

Johannes

Der Jochen wollte so schön hinfahren und jetzt ist keiner eingestiegen.

Johannes

Ich bin der Dominik.

Johannes

Jochen, wer bist du denn?

Johannes

Ja.

Johannes

Ihr seid doch die wichtigen Leute.

Johannes

Stellt euch mal vor.

Jochen

Ja, aber man muss ja immer die anderen vorstellen.

Jochen

Man kann sich ja nicht gut selber vorstellen.

Jochen

Also ich stelle mal die Dominik vor.

Jochen

Dominik ist ...

Jochen

Siehst du, er fällt ihm schon nichts ein.

Jochen

Ja, der Techniker Dominik.

Dominik

So, wir essen das eigentlich.

Dominik

Schon ist es vorbei.

Dominik

Also meine drei Hashtags sind Python, Eurorack und ...

Jochen

Agentic ...

Jochen

Vibe-Coding, ja.

Jochen

Vibe-Coding.

Jochen

Ja, ja.

Jochen

Vibe-Coding, ja, genau.

Jochen

Okay, Mist, jetzt sind alle guten Hashtags schon weg.

Jochen

Meins wären irgendwie, ja, Python ...

Dominik

Kannst du mal peißen?

Jochen

Podcast Ukulele.

Jochen

Ja, Ukulele.

Jochen

Ukulele ist auch sehr gut, genau.

Jochen

Das klingt ganz schön, ja.

Jochen

Ja.

Jochen

Ich habe auch noch ein paar andere Instrumente, aber ja.

Dominik

Und Johannes, sollen wir ...

Johannes

Ja, also ich ...

Johannes

Hallo, ich bin Johannes.

Johannes

Für die, die mich nicht kennen, ich bin gelegentlich hier im Python-Podcast als Gast,

Johannes

weil ich diese beiden anderen Typen da kenne.

Johannes

Ja.

Johannes

Ja.

Johannes

Und ich komme nicht aus dem Rheinland.

Johannes

Ich bin ...

Johannes

Du warst da mal hier.

Johannes

Ich war mal im Rheinland, ja, aber es hat sich dann als ...

Johannes

Also ich musste wieder weg.

Johannes

Tja.

Johannes

Und jetzt bin ich hier ...

Johannes

Hier hat es übrigens 800 Sonnenstunden im Jahr mehr als bei euch im Rheinland.

Johannes

Das ist nur so nebenbei.

Johannes

Deshalb bin ich auch so ein sonniges Gemüt, wenn ihr seid so traurig und beregnet.

Johannes

Du bist auch ein richtiger Tausendsassa, die bei Johannes.

Johannes

Ja, richtig.

Johannes

Also meine ...

Dominik

Die kennst du übrigens alle aus dem Chaos-Umfeld so ein bisschen mehr oder weniger.

Dominik

Ja, den Jochen auch, oder?

Dominik

So können wir das schon sagen.

Johannes

Ja, den Jochen habe ich im Computer-Club kennengelernt.

Dominik

Ja, genau.

Dominik

Also, ja, mich auch.

Johannes

Meine Hashtags.

Johannes

Django, Mathematik und ...

Johannes

Spiele.

Johannes

Spiele, richtig.

Johannes

Ja.

Johannes

Absolut korrekt.

Johannes

Ah, cool.

Johannes

Hört man schon am Namen.

Dominik

Ja.

Dominik

Ja.

Dominik

So, Nomen, Esto, Omen.

Dominik

Ja.

Dominik

Ja.

Jochen

Okay, na gut, dann können wir ja jetzt nahtlos mit den News einsteigen.

Jochen

Ich habe nicht ...

Jochen

Perfekte Struktur.

Jochen

Sehr gut, sehr gut.

Jochen

Ich konnte ...

Jochen

Ich konnte nicht so viel sammeln, weil ich momentan total im Stress bin.

Jochen

Also, ich ...

Dominik

Ja, dann erzählen wir doch ganz kurz nochmal vielleicht über das Barcamp.

Dominik

Also, das ist jetzt vielleicht nicht so interessant für alle Peißenleute,

Dominik

aber für alle Leute, die Podcasts mögen schon.

Dominik

Es gab da nämlich eine tolle Veranstaltung, wo man ...

Dominik

Also, Barcamps kennt ihr ja vielleicht aus dem Software-Umfeld,

Dominik

wo man ganz viele nette Podcast-Menschen kennengelernt hat.

Dominik

Ich möchte nochmal Danke sagen für die tollen Kontakte,

Dominik

die ich da getroffen und kennengelernt haben durfte.

Jochen

Ja, Grüße an hier Working Draft zum Beispiel.

Jochen

Ja.

Jochen

Auch ein Podcast aus ...

Jochen

Ich habe auch ...

Jochen

Nicht nur Düsseldorf, aber ...

Dominik

Also, gute Tipps waren ...

Dominik

Von der ...

Dominik

Wir sollten ja mehr zusammen eine Episode aufnehmen.

Dominik

Ja, ich habe gehört.

Dominik

Ja, mit Working Draft, das wäre doch mal wieder eine Idee.

Jochen

Und wir haben auch schon konkret geplant,

Jochen

was zusammen mit WoWirSind ist vorne zu machen.

Jochen

Die kennen wir auch gut und treffen uns immer wieder

Jochen

auf allen möglichen Konferenzen und so.

Jochen

Aber, genau, ist bisher noch nicht so richtig zustande gekommen,

Jochen

aber wir sind auf jeden Fall da auch noch dran.

Jochen

Ja, das war so ein Tipp.

Jochen

Irgendwie besucht euch auch einfach gegenseitig.

Jochen

Auch ein guter Tipp war halt, ja, schaut nicht nur nach

Jochen

so irgendwie totalen Berühmtheiten oder so,

Jochen

auch wenn das auf dem Papier oder so,

Jochen

erst mal, wenn man drüber nachdenkt, gut aussieht, aber ...

Jochen

Meinst du, Guido ...

Dominik

Ich wollte immer schon mal Guido haben.

Jochen

Ja, aber das ist halt mit Englisch vielleicht ein Problem.

Jochen

Mit Sarah war das jetzt mal eine Ausnahme.

Johannes

Aber da gibt es ja schon Leute, also ich meine ...

Jochen

Ja, gibt es auch, auf jeden Fall.

Johannes

Auch in der deutschsprachigen Welt gibt es Paltenmenschen.

Jochen

Genau, gibt eigentlich auch genug.

Johannes

Guido spricht immerhin schon Dutch.

Jochen

Aber das Problem ist halt bei Leuten, die zu bekannt sind,

Jochen

auch, dass man die dann halt oft schon gehört hat, ne?

Jochen

Und wenn man dann nicht, weiß nicht, das ...

Jochen

Ja, hast du wieder einen Podcast mit Guido.

Jochen

Ja, genau.

Jochen

Ach, na ja.

Dominik

Es gibt doch jetzt demnächst eine tolle Python, den Film.

Jochen

Ja, es gibt im Sommer, soll jetzt rauskommen.

Jochen

Ich weiß gar nicht genau wann.

Jochen

Genau, da gab es einen Trailer, habe ich gesehen.

Jochen

Snakes on a Plane?

Jochen

Äh, nee.

Jochen

Ja, den gab es schon, aber ...

Johannes

Ja, das ist schon ein Python-Film.

Jochen

Nee, das ist schon ...

Jochen

Da gab es auch ...

Jochen

Heißt die Story irgendwie, ich weiß nicht, hab ich vergessen.

Jochen

Ja, ja, irgendwelche Leute machen das immer.

Jochen

Und über Even You haben sie zum Beispiel ein Ding gemacht,

Jochen

das war ziemlich gut, das habe ich gesehen.

Jochen

Und über andere Leute ...

Dominik

Ja, hast du noch mal Even You.

Dominik

Der Typ für Vue.js und jetzt Rulldown, habe ich gelesen.

Jochen

Und genau, das gibt es jetzt auch über Python.

Jochen

Und soll wohl auch ...

Jochen

Also, der Trailer sah auch gut aus.

Jochen

Und ja, wir wollen mal schauen, wie das so wird.

Jochen

Genau.

Jochen

Ja, ja, genau.

Jochen

Wir sind auf so ein Podcamp gegangen, so ein Barcamp-Podcast.

Jochen

Und immer Konferenzen für mich,

Jochen

besonders attraktiv, wenn ich halt irgendwie zu Fuß hinlaufen kann.

Jochen

Ich bin irgendwie bequem an der Stelle.

Jochen

Und das war halt hier in der Zentralbibliothek

Jochen

am Bahnhof in Düsseldorf,

Jochen

was auch ein total cooles Ding ist irgendwie.

Jochen

Und man kann die ganzen Räumlichkeiten

Jochen

auch für alles mögliche verwenden.

Jochen

Man muss es nur irgendwie anmelden.

Dominik

Und jedes Mal, wenn man da vorbeilief und gerade auf dem Gang,

Dominik

wie man es bei so Konferenzen macht,

Dominik

kurze Gespräche, dann kam er vorbei mit ...

Jochen

Ja, das soll aber eigentlich nicht so sein,

Jochen

weil eigentlich hat man dieses ...

Jochen

Irgendwie, man muss halt leise sein,

Jochen

in der Bibliothek-Konzept da nicht mehr.

Jochen

Es ist auch so, dass man da Essen mit reinnehmen darf und so.

Jochen

Und man sagt, ich habe dann so eine Führung damit gemacht.

Jochen

Und die sagt, na ja, nee, wir wollen das irgendwie anders machen

Jochen

und nicht mehr so wie früher.

Jochen

Und man kann da auch was essen.

Jochen

Und man kann da auch irgendwie ein bisschen lauter sein.

Jochen

Das ist alles kein Problem.

Jochen

Und es gibt nicht nur Bücher, sondern es gibt auch so,

Jochen

weiß ich nicht, so Laser-Entfernungsmesser

Jochen

und 3D-Drucker und VR-Brillen und ein Podcast-Studio

Jochen

und ein Ding, wo man ...

Jochen

Wo man irgendwie Super-8-Filme digitalisieren kann

Jochen

und auch alte Vias digitalisieren kann.

Jochen

Und Videorekorder.

Jochen

Und ein Musikstudio, wo man leider aber nicht drin laut sein darf.

Jochen

Da darf man nur digitale Instrumente drin verwenden.

Jochen

Weil daneben diese juristische Fachbibliothek ist,

Jochen

wo die Leute dann lernen für Prüfungen.

Jochen

Und das hat sich dann herausgestellt,

Jochen

dass das eine ungünstige Kombination ist.

Jochen

Ich beklage dich gleich.

Jochen

Das, ja, gut, hätte man auch vorher drauf kommen können.

Jochen

Ja.

Jochen

Ja.

Jochen

Ja.

Jochen

Aber das muss da wohl irgendwie erst mal eskalieren.

Jochen

Und jetzt darf man da nicht mehr singen.

Jochen

Eigentlich schade.

Jochen

Naja.

Johannes

Ja, schade.

Johannes

Gibt's auch Backformen.

Johannes

Ich hab das einmal gesehen.

Johannes

Das ist Bücherei für Backformen.

Jochen

Genau.

Jochen

So Bücherei der Dinge nennen die das.

Jochen

Da gibt's auch so Fußball-Backformen und so Zeugs.

Jochen

Ja, also wirklich Geburtstagskids

Jochen

für alle möglichen Geburtstagspartys und so.

Jochen

Also wirklich, wirklich.

Jochen

Und man kann da halt sich hinsetzen und arbeiten.

Jochen

Es sind 600 Arbeitsplätze in dem Ding.

Jochen

Das ist halt auch irgendwie echt groß.

Jochen

Es ist zwei Fußballfelder groß.

Jochen

Und es gibt jede Menge Räume für alles mögliche.

Jochen

Und wie gesagt, man muss halt nur sagen,

Jochen

ich hätte gerne einen Raum für den und den Zweck.

Jochen

Und dann überlegen die und dann sagen sie einem,

Jochen

nee, du stinkst oder ja, kannst du haben.

Dominik

In der alten Zentralbibliothek, da war ich vielleicht zwölf oder so was,

Dominik

da stand so ein Computer drin rum.

Dominik

Und der war halt ganz gemein gesichert, also dachten sie.

Dominik

Und da konnte man so ein paar Sachen machen, heimlich.

Dominik

Und dann Sachen ausprobieren und dann ...

Jochen

Tja.

Jochen

Ja.

Jochen

Das war ... also da gibt's auch eine Menge ...

Dominik

Ich bin nämlich nach der Schule früher,

Dominik

bin ich immer in die Bibliothek gefahren.

Jochen

Ja, das hab ich auch.

Jochen

Ich hab ...

Jochen

nicht nur nach der Schule.

Jochen

Ja, oft.

Dominik

Aber ob ich da jetzt meine Kinder hinlassen würde,

Dominik

ich weiß es nicht so genau.

Dominik

Ja.

Dominik

Ja.

Dominik

Es ist ... ja, egal.

Jochen

Aber also, wie gesagt, ich wusste gar nicht,

Jochen

dass es so einen Ort gibt und dass man da so coole Sachen machen kann.

Jochen

Da gibt's auch Bücher über Peißen, Jochen.

Jochen

Ja, da gibt's ...

Jochen

Gibt's da Flunenpeißen?

Jochen

Bücher gibt's da auch.

Jochen

Ja, und ja, da werde ich mir nicht ...

Jochen

Aber es gibt eine Fernleihe, über die man halt eine Menge kriegt.

Dominik

Weil, darüber wollten wir gleich reden.

Jochen

Und die liefert dann halt auch an die nächstgelegene Bibliothek.

Jochen

Also man kann das auch online machen.

Jochen

Und dann kann man die Sachen dann lokal abholen.

Jochen

Und bei uns ist die nächstgelegene Bibliothek

Jochen

irgendwie ein paar hundert Meter entfernt.

Jochen

Und dann ...

Dominik

Genau, also wir gehen auch mal zu unserer Stadtteilbibliothek.

Jochen

Ja, und man kann die Bücher auch überall zurückgeben und so.

Jochen

Also es ist wirklich ...

Jochen

Also ich war überrascht.

Jochen

Es war toll.

Jochen

Oder Tonis ausleihen.

Jochen

Das auch, ja.

Jochen

Ja, genau, genau.

Jochen

Also da hat das Ganze irgendwie stattgefunden.

Jochen

Und ja, war ...

Dominik

Also wir haben ein paar tolle Tipps bekommen für Marketing

Dominik

und was man nicht alles machen soll.

Dominik

Das heißt, wir machen jetzt ganz viel Marketing.

Jochen

Viel Spaß damit.

Jochen

Für uns bestimmt gut.

Jochen

Für euch, ja.

Jochen

Ihr müsst halt damit leben.

Jochen

Ja, nee.

Dominik

Wir haben tatsächlich überlegt,

Dominik

ob wir ein Video mal aufnehmen wollen.

Jochen

Genau, ob wir ein bisschen mehr Video machen.

Jochen

Also ich hab's schon länger überlegt,

Jochen

aber ja, das war so auch einer der Geschichten,

Jochen

wo Leute sagen, ja, das muss man im Grunde irgendwie,

Jochen

wenn man ...

Dominik

Social Media, Presence, Interaction.

Dominik

Man muss das schon irgendwie machen.

Johannes

Ja, man gewinnt halt einen Hörerkreis auf YouTube, oder?

Johannes

Also die Leute, die YouTube gucken, die ...

Johannes

Ja.

Jochen

Und gar nicht mal unbedingt die Podcasts

Jochen

Episoden selber, aber dass man zumindest da ist

Jochen

und da gefunden wird, für die Leute, die halt

Jochen

nur auf YouTube sind und dann halt da

Jochen

einen Trailer hat, dass sie halt wissen, oh, es gibt

Jochen

den Podcast, ich muss da vielleicht irgendwie

Jochen

auf meinem Podcatcher da war.

Dominik

Das geht halt total steil, Johannes.

Dominik

Und da stehen die Fans hinterher auch vor deiner Tür

Dominik

und klopfen heimlich.

Dominik

Die Groupies.

Jochen

Ja, also,

Jochen

oder was mich auch ...

Jochen

Was ich auch total cool fand, war, wie Leute darüber gesprochen

Jochen

haben, wie sie halt ihre Workflows halt so ein bisschen

Jochen

automatisieren mit

Jochen

ähm ...

Jochen

mit so diversen Tools und

Jochen

was man da alles machen kann an

Jochen

Automatisierungen von irgendwie,

Jochen

ja, was man ... Oder, oder, ja.

Dominik

Oh, jetzt sind wir bei einer anderen geplanten Folge

Dominik

übrigens mit, aber nicht bei Podcasts, aber

Dominik

wir wollten auch bald nochmal wieder bei so

Dominik

Data Science-Kram reden und dann auch nochmal über

Dominik

äh ...

Dominik

die ganzen neuen KI-Sachen. Darf ich KI sagen?

Dominik

Ich weiß nicht. MCPs und so.

Dominik

Ja, ich glaub, man darf was schon sagen. KI, musst du sagen.

Dominik

KI, oh.

Dominik

Ach so, äh, Entschuldigung. Du hast eben so einen

Dominik

tollen Link geschickt, der dazu passt.

Johannes

Ja, ich hab auch tatsächlich noch News, ähm,

Johannes

weil, äh, es gibt

Johannes

eine interessante Veröffentlichung vom

Johannes

MIT Media Lab mit dem Titel

Johannes

Your Brain on Chat GPT, die gerade

Johannes

so ein bisschen durch die News gegangen

Johannes

ist, wo

Johannes

sie untersuchen, was das denn für Auswirkungen

Johannes

hat. Also, ich mein, es ist natürlich sehr reißerisch

Johannes

und, äh, die Studie

Johannes

hat 54 Teilnehmer, also

Johannes

es ist jetzt nicht kein repräsentativer

Johannes

Querschnitt durch die Gesellschaft.

Johannes

Aber

Johannes

äh, es gab wohl signifikante Unterschiede

Johannes

zwischen Menschen, die, äh,

Johannes

LLMs benutzen oder nur eine

Johannes

Search Engine oder Brain Only

Johannes

in Klammern No Tools.

Johannes

Äh,

Johannes

das finde ich eine sehr schöne Bezeichnung.

Dominik

Und was war besser? Für was?

Johannes

Ähm, es ist,

Johannes

man kann sich Sachen besser merken, wenn man sie

Johannes

nicht von einem LLM erzeugen lässt oder wenn man sie

Johannes

es nicht von einem LLM vorkauen lässt.

Dominik

Ja gut, das ist ja keine Überraschung, dass

Dominik

wenn man das Wissen jetzt nicht selber erarbeitet hat,

Dominik

dass das dann flüchtig bleibt. Ja, aber auch Such,

Johannes

auch Suchmaschine, also auch wenn du normal

Johannes

bei, bei Google oder bei irgendwas

Johannes

anderem eintippst und nicht diese KI,

Johannes

ähm, Kagi, ich benutze

Johannes

Kagi, äh, benutzt,

Johannes

ähm, wenn man

Johannes

nicht diese KI-Zusammenfassung benutzt,

Johannes

ist, ist die Retention wohl deutlich

Johannes

besser. Und das Interessante

Johannes

ist eigentlich, dass diese Studie so durch

Dominik

die Neuigkeit...

Jochen

Bitte, ich hab's gerade nicht verstanden.

Johannes

Das Interessante finde ich eigentlich, dass

Johannes

diese Studie so durch die News geht und dass die

Johannes

so überall zitiert wird, weil es halt schon so ein bisschen

Johannes

dieses Gefühl reflektiert

Johannes

von, ja,

Johannes

vielleicht ist es doch nicht so gut für uns.

Jochen

Ja, aber ist das nicht immer, äh, eine Neuigkeit?

Jochen

Ich meine, äh... Ja, ja, natürlich.

Jochen

Die meisten, äh, also

Jochen

viele Leute sind halt so, doch eher so

Jochen

im Modus, äh, meckernder... News-Technology

Jochen

is bad for you. Genau.

Jochen

Meckernder Rentner im Fenster mit

Jochen

einem Kissen und, äh, Kulturpessimismus

Jochen

kommt halt immer gut an. Das ist halt immer eine Schlagzeile. Ja, aber Jochen,

Johannes

wir sind jetzt so langsam in so einem Alter.

Jochen

Ach so, ja.

Dominik

Genau, und hast du gesehen, jetzt haben wir für zwei

Dominik

Straßen weit, haben sie die Straße gelb gestrichen.

Dominik

Das hab ich nicht gesehen. Was? Das ist ja

Johannes

unmöglich. Unglaublich. Also, was die

Johannes

jungen Leute heute machen, das hätt's bei uns früher nicht

Dominik

gegeben. Ja, das waren nicht die jungen Leute. Das haben sie richtig mit, äh,

Dominik

Teams gemacht, die dann angerückt sind und alles

Dominik

verschönern wollten. Da haben sie alles mit einer stinkenden Farbe

Dominik

angestrichen und dann hinterher wollten sie einen Garten da drauf machen.

Dominik

Ja. Ja. Also,

Johannes

der Dominik ist auch in dem Alter, wie ihr gehört.

Jochen

Genau. Äh, ja.

Jochen

Also, ich, ich verstehe, wie diese

Jochen

medialen Mechanismen funktionieren,

Jochen

die halt dazu führen, dass das halt immer

Jochen

Schlagzeilen und Neuigkeiten sind. Aber ich hab's

Jochen

große Zweifel, dass das, äh,

Jochen

äh, äh, quasi ein repräsentatives

Jochen

äh, äh,

Jochen

äh, das Bild davon zeichnet,

Jochen

was irgendwie so passiert. Insofern. Ist es sicherlich

Johannes

nicht. Aber, ähm,

Johannes

die Anzeichen davon, dass Leute auf

Johannes

diese Dinge vertrauen. Ja, klar.

Johannes

Äh, und dann, äh, auf solche Fakten reinfallen.

Johannes

Ja, natürlich. Oder auf solche ausgedachten

Johannes

Sachen. Ja, dass man, dass Ungarn auch

Johannes

Holland genannt wird. Äh,

Johannes

ja.

Johannes

Ja, das, äh,

Johannes

dieses Vertrauen ist da

Johannes

halt schon sehr groß. Ja, also, ich hab heute

Dominik

zweimal gehört, ich hab Chat-Spotty gefragt, mir dann

Dominik

meine Schule ausgesucht und, ja.

Dominik

Das wird da als Suchersatz benutzt, ne?

Dominik

Also, ganz klassisch so. Ja, find ich ganz

Johannes

toll. Also, da bin ich zu alt dafür. Das find ich ganz

Johannes

komisch. Ja, ja. Also, Leute

Dominik

denken, das ist, aber, das ist aber auch komisch,

Dominik

dass es nicht direkt die Wahrheit gesagt hat. Oder,

Dominik

dass man da ja so ein paar Informationen hatte, die man so mal

Dominik

kurz überprüfen musste. Ja, gut, gelogen. Gut, das

Jochen

mit der Medienkompetenz ist halt ein Problem. Aber das war auch

Jochen

schon immer ein Problem. Ich meine, ich erinnere mich noch, als

Jochen

Internet und Google neu waren. Hast du nicht dem

Jochen

Marksteier geglaubt, was der gerufen hat?

Jochen

Ja, oder das Fernsehen, genau. Als das Fernsehen neu war,

Jochen

auch, als das Radio neu war,

Jochen

irgendwie,

Jochen

War of the Worlds, ne, war auch ein großes

Dominik

Medienkompetenz. Damals, als man den Propheten noch

Dominik

wirklich glauben konnte. Ja,

Jochen

ja. Also,

Jochen

es ist ein wiederkehrendes

Jochen

Muster, ja, oder eben, bei Plato

Jochen

gibt's das schon, der Wetterter gegen die Schrift. Und der

Johannes

Verfall der Jugend, sowieso. Ja, ja.

Jochen

Also, ich würde mal

Jochen

einfach sagen, einfach, wenn man kann, so,

Jochen

Plato hat nicht recht gehabt.

Jochen

Ja. Und das mit der Schrift war schon

Jochen

Fortschritt. Und alle anderen danach. Und das wird ihn jetzt aber

Johannes

ganz schön atzen. Ja, aber

Jochen

ich glaube, du bist ein Fanboy, Jochen.

Jochen

Ja, na, auf der anderen Seite,

Jochen

andererseits natürlich schon, bin auch irgendwo ein Plato-Fanboy.

Dominik

Das ist richtig, ja. Ja, das können wir in der

Dominik

MCP-Folge nochmal genauer auslassen. Ja, wobei,

Jochen

du hattest ja den Hashtag Mathematik, da hab ich ja einen Haken,

Jochen

um da mich rein... Ich hab jetzt

Jochen

eine Podcast-Episode gehört mit Terence Howe.

Jochen

Ja,

Johannes

der jetzt auch anfängt, oder der jetzt auch

Johannes

viele Dinge macht. Ja, ja.

Jochen

Der macht vor allen Dingen viel mit Linen,

Jochen

also,

Jochen

sozusagen eine Programmiersprache, mit der kann man,

Jochen

also, schreibt man halt nicht Code, sondern quasi

Jochen

Mathe und...

Johannes

Ja, man schreibt schon Code, aber hinterher sagt er einem dann das.

Jochen

Genau, kann der Compiler, der Compiler zählt nicht zu den

Jochen

Binary, sondern der gibt einem ein Zertifikat,

Jochen

dass das, was man halt hingeschrieben hat,

Jochen

folgerichtig war. Und wenn man, wenn das

Jochen

ein Beweis war, dann ist es halt dann bewiesen.

Jochen

Genau.

Jochen

Und das,

Jochen

ja, macht es halt auch zugänglicher. Das macht es halt auch

Jochen

möglich, dass mehrere Leute miteinander

Jochen

irgendwie kollaborieren, weil das Problem an

Jochen

der bisherigen Mathe-Notation, auch die

Jochen

ist natürlich ein riesen Fortschritt gegenüber früher,

Jochen

aber die ist halt so, wenn man jetzt so ein

Jochen

aktuelles Mathe-Paper nimmt, dann

Jochen

und schlägt Seite 15 auf,

Jochen

dann kann einem niemand

Jochen

sagen, was da steht, ohne die

Jochen

15 Seiten vorher gelesen zu haben. Und

Jochen

das ist super anstrengend. Und deswegen macht das keiner

Jochen

und dann kann man nicht so gut zusammenarbeiten, sondern

Jochen

muss jeder für sich das irgendwie, und das

Jochen

limitiert natürlich die

Jochen

Menge an

Jochen

Dingen, die man irgendwie tun kann. Und jetzt können

Jochen

halt auch irgendwie Nicht-Profis

Jochen

quasi da Pull-Requests,

Jochen

gegen lange Beweise stellen

Jochen

und man kann halt automatisch checken, ob das halt so

Jochen

halbwegs stimmt, was die geschrieben haben oder nicht.

Jochen

Und dann, genau. Das machen

Jochen

sie auch schon. Die haben da ein total cooles Projekt,

Jochen

wo es darum geht, quasi

Jochen

nicht neue Sachen zu

Jochen

beweisen oder so, sondern die gesamte

Jochen

mathematische Theorie, die es so

Jochen

gibt und alle Lemmas, die man halt so hat,

Jochen

die alle

Jochen

mal formal mit Linen durchzubeweisen.

Jochen

Und das dann halt in der Datenbank zu

Jochen

haben, sodass man halt später sagen kann, okay.

Jochen

Im Endeffekt halt Mathematik, oder?

Jochen

Also halt das, was es gibt, so an Mathematik

Jochen

einmal komplett

Jochen

durchformalisiert zu haben.

Jochen

Und dass man es halt auch noch suchen kann, dass man immer

Jochen

sagen kann, okay, ich habe jetzt dieses Problem, welche

Jochen

Lemmas könnten mir denn da helfen oder welche Tricks

Jochen

siehst du denn in den Dingen, die alle

Jochen

bewiesen sind, die man jetzt verwenden könnte und dann

Jochen

kann einem auch ein LLM da vielleicht helfen.

Jochen

Ja, also fand ich

Dominik

auf jeden Fall. Ja, gewusst wie, aber man muss ja eigentlich

Dominik

on top von den Dingen stehen und nicht

Dominik

nach neuer Information suchen,

Dominik

sondern auch was man selber quasi auch schon

Dominik

rausputzen könnte und das geht dann halt schneller.

Dominik

Ja, so ein bisschen

Dominik

anders, glaube ich, als wenn man sich

Dominik

davon erstmal die Wette genannt hat.

Dominik

Ja, aber

Jochen

auf jeden Fall, Mathematik ändert sich auch noch

Jochen

immer und mehr Leute können

Jochen

an Dingen, die hatten dann jetzt auch so ein Paper

Jochen

dazu und da waren halt dann 50

Jochen

Autoren drauf oder so und das

Jochen

Wo ist so ein Paper? Das gab es ja

Jochen

sonst so in der Physik mit tausend Autoren und

Jochen

in der Mathematik eigentlich nicht.

Jochen

Ja, ist spannend. Kennt ihr das Chicken

Dominik

Paper?

Dominik

Nein, was ist das?

Dominik

Chicken, Chicken, Chicken, Chicken,

Dominik

Chicken, Duck, Tonka. Also es gab

Dominik

jemand, der hat es tatsächlich geschafft,

Dominik

ein Paper zu veröffentlichen, weil das alles Standards

Dominik

erfüllt, formalen Standards. Ach so, okay.

Dominik

Ja, habe ich am Montag gehört. Danke,

Dominik

Sascha.

Jochen

Ja, jedenfalls, genau.

Jochen

In dem Podcast habe ich auch, also ich bin ja

Dominik

auch so ein... Das ist ein offiziell

Dominik

peer-reviewedes Paper.

Jochen

Ah, da kommen ziemlich

Jochen

viele Hühner drin vor. Ja, genau.

Jochen

Eigentlich nur Hühner.

Jochen

Ja, alles Chicken. Ja, ja.

Jochen

Ist auf jeden Fall

Jochen

eine sehr spitze Zielgruppe dann.

Jochen

Ja.

Jochen

Genau, also was

Jochen

der, also ich würde ja sagen,

Jochen

also bisher war ich immer in dem, es gibt ja im Grunde

Jochen

zwei Lager in der, was Theorie

Jochen

der Mathematik angeht. Es gibt halt so die

Jochen

Platoniker

Jochen

irgendwie, also das ist

Jochen

eine der wenigen Gebiete,

Jochen

wo halt, wo halt

Jochen

Platonismus

Jochen

irgendwie noch eine Rolle spielt.

Jochen

Und die Intuitionisten oder so.

Jochen

Und ich würde sagen, naja, gut,

Jochen

ich bin schon irgendwie da eher auf der

Jochen

Platon-Seite, weil, naja, wie soll das anders

Jochen

gehen? Man kann ja auch

Jochen

quasi zum Beispiel experimentelle Mathematik

Jochen

machen, wo man einfach irgendwie

Jochen

zufällig Beweise generiert und dann überprüft

Jochen

mit einem Ding, das halt nicht alles

Jochen

checken kann, aber checkt, ob da

Jochen

irgendwas interessant, äh, ob das wahr ist erstmal,

Jochen

ob das richtig ist und dann, ob irgendwas Interessantes

Jochen

rausgekommen ist und dann manchmal fällt da irgendwas Interessantes

Jochen

bei raus. Und dann, wie kann

Jochen

man das über so einen Prozess

Jochen

erfunden haben, sondern das muss man halt eher entdeckt

Jochen

haben. Und auch so andere Dinge wie, weiß ich

Jochen

nicht, dass es Kreise gibt oder Dreiecke oder so,

Jochen

da hat man so intuitiv das Gefühl,

Jochen

naja, die gibt's schon irgendwie da draußen

Jochen

und die kann man eher entdecken,

Jochen

dass das halt 180 Grad sind in der Winkelsumme

Jochen

und das kann man nicht erfinden oder das ist halt

Jochen

einfach so. Und deswegen dachte ich

Jochen

immer so, ja, also

Jochen

quasi so Platon, äh,

Jochen

Platon, äh, äh, mathematischer Platonismus

Jochen

ist eigentlich schon so die richtige Geschichte und dann,

Jochen

genau, Intuitionisten seit, seit Anfang des

Jochen

20. Jahrhunderts sagen so, nee, nee, das kann man vielleicht alles nicht so

Jochen

machen und das ist doch eher vielleicht eine Erfindung.

Jochen

Das hab ich eher so für Quatsch gehalten.

Jochen

Und der hatte jetzt aber ein super Argument

Jochen

für den, äh, mathematischen

Jochen

Intuitionismus und zwar,

Jochen

ähm, äh,

Jochen

ähm, wie waren das noch?

Jochen

Ja, jetzt musst du das auch richtig zusammenkriegen.

Jochen

Jetzt muss ich das zusammenkriegen, verdammt.

Jochen

Das ist ein gutes Argument gewesen.

Jochen

Mathematik war besonders, äh, einfach.

Jochen

Äh, äh, genau, ach so, ja, richtig, das ging

Jochen

ungefähr so, der sagte halt, naja, also

Jochen

es gibt ja so Zahlen wie Pi, wir hatten das, glaub ich, auch mal im Podcast

Jochen

schon mal irgendwann davor, als wir über Pi geredet haben.

Jochen

Naja, das ist halt, äh, völlig

Jochen

unklar, zum Beispiel, also es sieht, es

Jochen

ist Pi, die Dezimalprobenentwicklung von Pi

Jochen

besteht jeden Test für Zufälligkeit

Jochen

und, äh,

Jochen

ja, aber niemand weiß, ob

Jochen

wirklich zufällig ist oder nicht, oder ob nicht doch irgendeine

Jochen

Conspiracy da drin,

Jochen

Verschwörung ist, die halt

Jochen

doch nicht zufällig sein lässt

Jochen

oder so, das weiß halt keiner und man hat auch keine Idee,

Jochen

wenn man das rauskriegen kann. Aber er sagt,

Jochen

eigentlich ist es ja ganz einfach, also natürlich

Jochen

wahrscheinlich, was man erwarten würde, ist, dass es

Jochen

zufällig ist, weil

Jochen

man kann relativ einfach

Jochen

beweisen, dass

Jochen

quasi die allermeisten realen Zahlen

Jochen

zufällig sein müssen,

Jochen

sonst wäre einfach nicht genug Platz.

Jochen

Wenn da irgendwelche Muster wären,

Jochen

dann könnte man das irgendwie

Jochen

diagonalisieren oder so,

Jochen

das darf nicht gehen. Die allermeisten

Johannes

müssen zufällig sein. Aber das ist was ganz

Johannes

Schlimmes, das ist ein ganz schlimmes Argument, Jochen, weil

Johannes

jetzt kommst du

Johannes

auf einen ganz schlimmen Punkt in der

Johannes

Mathematik. Die allermeisten reellen

Johannes

Zahlen können wir nicht erfassen,

Johannes

die können wir nicht sehen, die können wir, die sind,

Johannes

das sind so völlig doofe,

Johannes

das sind so völlig doofe

Johannes

Zahlen wie Pi und das sind die allermeisten und wir

Johannes

kennen vielleicht drei davon.

Johannes

Ja, ja. Aber es sind die

Johannes

allermeisten.

Johannes

Ja, und das finde ich sehr unangenehm.

Johannes

Genau. Und da gibt's

Jochen

halt dann dieses Bild von den, das hat ja bestimmt auch schon

Jochen

jeder mal gehört, von den,

Jochen

diese Infinite Monkeys, ja, so

Jochen

natürlich viele Affen, wenn die nur lange genug irgendwie

Jochen

auf ihre Schreibmaschinen eindreschen,

Jochen

dann kommt dabei auch mal Shakespeare raus oder so.

Jochen

Jede von diesen Zahlen muss alle Laken

Jochen

von Shakespeare in der richtigen

Jochen

Reihenfolge und so enthalten werden.

Jochen

Wenn sie urheberrechtlich geschützt sind.

Jochen

Wenn die echt zufällig sind. Das kann nicht

Jochen

anders sein, das muss so sein. Und jetzt

Jochen

ist halt natürlich die Frage so,

Jochen

also wenn jede einzelne von diesen

Jochen

blöden Zahlen im Grunde das ganze Universum irgendwie

Jochen

enthält, weil, naja, also

Jochen

egal wie man das Universum beschreibt,

Jochen

diese Beschreibung muss da auch drin vorkommen, irgendwo.

Jochen

Wie kann das denn sein, dass das

Jochen

schon vorher existiert

Jochen

da draußen und wir es nur entdecken?

Jochen

Oder ist es dann nicht so, dass man

Jochen

ja, wenn man das

Jochen

jetzt erzeugen wollte, zum Beispiel über Pi...

Johannes

Ja gut, aber das geht ja weg, Jochen. Da musst du nur sagen,

Johannes

das Universum ist quantifiziert und schon existieren

Johannes

diese Zahlen nicht mehr.

Jochen

Ja, aber das, gut, okay.

Jochen

Das Universum, sehr weit gefasst, jetzt nicht als physikalisches

Jochen

Universum, mathematisches Universum

Jochen

eingeschlossen, wo alle mathematischen Objekte auch drin sind.

Jochen

Inklusive Pi und so.

Jochen

Und wenn man sagt, man könnte ja als Platoniker würde sagen,

Johannes

es existiert.

Johannes

Zirkulär?

Johannes

Ja, du sagst, es existiert, weil wir annehmen,

Johannes

dass das Universum, in dem die, dass das

Johannes

Universum, in dem wir drin sind, das Universum

Johannes

ist, in dem die existieren.

Jochen

Nee, nee, ich würde sagen, also es gibt

Jochen

ich meine jetzt nicht das physikalische Universum, sondern

Jochen

ganz weit gefasst, also

Jochen

auch das

Jochen

die Welt, in der halt auch

Jochen

mathematische Objekte existieren, da ist halt

Jochen

also als Platoniker würde ich davon ausgehen,

Jochen

eben sowas wie Pi, das existiert da draußen halt

Jochen

nicht in unserem Universum natürlich

Jochen

im physikalischen Sinne, sondern

Jochen

quasi als Konzept, als Idee.

Jochen

Ja, in einem anderen Universum,

Jochen

wenn es ein anderes gibt, müssen sie auch

Jochen

auf diese Idee kommen, weil diese Idee existiert

Jochen

halt unabhängig davon. Und ich kann

Jochen

auch nicht getäuscht sein, wenn man gesinnt oder so.

Johannes

Ich finde, da gibt es eine Grenze, Jochen.

Johannes

Ich verstehe, worauf du raus willst, dass das

Johannes

sozusagen was Universales ist. Egal,

Johannes

welches Universum du dir vorstellst, die Kreiskonstante ist

Johannes

immer so. Überall gibt es sowas wie

Johannes

Gravitation.

Johannes

Du brauchst nicht mal die Gravitation, du brauchst nur

Johannes

Mathematik. In jedem Universum, das Mathematik

Johannes

enthält, gibt es die Kreiskonstante und die ist immer gleich.

Johannes

Ist aber Mathematik keine Gravitation?

Johannes

Weil Geometrie immer gleich ist.

Johannes

Nee, brauchst du nicht.

Johannes

Nee, das hat nichts mit Physik zu tun.

Johannes

Aber es gibt eine Grenze, Jochen.

Johannes

Ich glaube, dass es da eine Grenze gibt,

Johannes

weil es gibt Dinge, die sind ganz offensichtlich

Johannes

von Menschen ausgedacht.

Johannes

Ja, klar. In der Mathematik.

Johannes

Mhm. Ach so, okay.

Johannes

Die gibt es nur, weil wir...

Dominik

Da kannst du einfach fliegen gehen.

Johannes

Und die Frage ist, wo ist die Grenze?

Johannes

Wo sind die Sachen von Gott gegeben,

Johannes

wie man so sagt? Dieses Zitat,

Johannes

die natürlichen Zahlen sind von Gott

Johannes

gegeben.

Jochen

Menschenwerke, ja.

Johannes

Aber da gibt es eine Grenze.

Johannes

Sind die komplexen Zahlen, sind die schon ausgedacht?

Johannes

Ja, nee.

Johannes

Die haben ja schon eine Entsprechung in anderen Dingen drin

Johannes

und die findest du überall in der Physik und so weiter.

Johannes

Aber dann gehst du weiter.

Johannes

Denn, keine Ahnung, ist die Monstergruppe

Johannes

ausgedacht oder nicht?

Jochen

Ja, ja.

Jochen

Wobei die Monstergruppe ein schlechtes Beispiel ist.

Dominik

Jetzt musst du kurz erklären, was denn die Monstergruppe ist,

Dominik

wenn du nicht uns drei meinst.

Johannes

Es gibt so eine Klassifizierung von Gruppen

Johannes

und in vielen Bereichen der Mathematik

Johannes

ist es so, dass du fünf sehr schöne

Johannes

Beispiele findest.

Johannes

Da gibt es die ganz nahe, die natürlichen Zahlen

Johannes

und die ganzen Zahlen

Johannes

und dann, die kannst du so erweitern

Johannes

und da gibt es irgendwie fünf verschiedene Kategorien

Johannes

und dann gibt es noch drei,

Johannes

die sind ausgedacht.

Johannes

Zusätzliche, die einzeln sind

Johannes

und die eine hat fünf Elemente

Johannes

und die andere hat sieben Elemente

Johannes

und dann gibt es noch die Monstergruppe,

Johannes

die hat 880.973 verschiedene Elemente.

Johannes

Irgendwie so komische Zahlen.

Johannes

Und weil die da so rausfällt

Johannes

aus dieser schönen Klassifizierung

Johannes

und hast deinen schönen Setzkasten

Johannes

mit den ganzen ordentlichen Gruppen drin

Johannes

und dann hast du drei so komische dazwischen

Johannes

und dann hast du da noch die riesige Monstergruppe daneben.

Johannes

Hat die den Namen Monstergruppe.

Johannes

Okay.

Johannes

Die ist ein schlechtes Beispiel,

Johannes

weil die fällt halt aus diesen Klassifizierungen raus.

Johannes

Aber ganz viele von diesen Dingen sind,

Johannes

finde ich, sind schon eindeutig ausgedacht.

Johannes

Die sind so,

Johannes

weil wir die Definitionen so gewählt haben

Johannes

und daraus fallen die Sachen raus.

Johannes

Aber ja, das ist eine schwierige Frage.

Jochen

Ja, aber ich würde auch eben,

Jochen

wenn man sagt,

Jochen

man kommt ja an die Dinger nicht dran.

Jochen

Wenn man es jetzt ausrichtet,

Jochen

dann fallen da zwar diese langen Zahlen raus,

Jochen

aber da braucht man Energie

Jochen

und Energie hat man aber nicht unendlich viel.

Jochen

Das heißt, also Shakespeare's Werk hat rauszukriegen,

Jochen

wird schwierig.

Jochen

Da braucht man irgendwie nahezu unendlich viel Energie.

Jochen

Das heißt, man könnte ja,

Jochen

sagen, okay, vielleicht existieren die...

Johannes

In unserem physikalischen Universum.

Jochen

Ja, genau.

Jochen

Ja, aber ich finde das halt schon irgendwie,

Jochen

damit könnte man schon was sagen.

Jochen

Wenn ich da wahnsinnig viel Energie investieren muss,

Jochen

um da was,

Jochen

kann ich zwar beliebige Sachen daraus kriegen,

Jochen

aber dann wird es halt dann doch wieder eher so.

Jochen

Also wenn ich das sozusagen in unsere Existenz holen will,

Jochen

dann muss ich halt irgendwie...

Jochen

Ja, also die Frage ist...

Jochen

Dann bin ich plötzlich,

Jochen

unterliege ich wieder all diesen Beschränkungen

Jochen

und dann ist es doch wieder mehr erfunden,

Jochen

weil, ja, was...

Jochen

Zeit vielleicht?

Jochen

Ich komme halt nicht...

Jochen

Kann sein, dass es es gibt,

Jochen

aber ich komme halt nicht dran.

Dominik

Aber wenn das mit Zeit nützen kann,

Dominik

dann ist das ja vielleicht,

Dominik

weil in der Zeit könnte es ja noch

Dominik

eine andere Dimension versteckt haben,

Dominik

die dann nicht nur linear...

Dominik

Ja, viele, aber das bringt nichts.

Dominik

Doch, das ist ja nicht unendlich.

Dominik

Stipseln und dann...

Jochen

Ich würde ja sagen,

Jochen

das ist ja im Grunde das Gleiche,

Jochen

ob das jetzt Zeit oder Energie,

Jochen

das kannst du ja gegeneinander aufrechnen.

Dominik

Vielleicht eine Abkürzung,

Dominik

so eine Meta-Abkürzung.

Jochen

Ja, keine Ahnung.

Jochen

Ich glaube, da müssen wir mal eine separate...

Jochen

Müssen wir mal eine separate...

Jochen

Müssen wir vielleicht auch irgendjemand fragen,

Jochen

der da mal...

Jochen

Keine Ahnung,

Jochen

das waren so meine Gedanken bei dem Hören von...

Johannes

Ja, vielleicht finden wir ja einen Mathematiker,

Johannes

der was weiß.

Jochen

Ja, das ist auch vielleicht eher in der Mathematik esoterisch.

Johannes

Weiß nicht, ob es sowas gibt.

Johannes

Ja, nee, aber solche Diskussionen

Johannes

sind in der Mathematik schon...

Johannes

Die kommen immer wieder,

Johannes

gerade in den früheren Semestern.

Johannes

Sobald man mal ins...

Johannes

Sobald man das Grundstudium abgeschlossen hat,

Johannes

dann hat man es akzeptiert.

Johannes

Das ist die Mathematik, die gibt es halt.

Johannes

Und da gibt es auch nicht alles.

Johannes

Ich hatte mal eine sehr lange Diskussion

Johannes

mit einem der Studenten,

Johannes

von mir, den ich tutoriert habe,

Johannes

der offensichtlich auch schon

Johannes

einen Hang zur Esoterik hatte

Johannes

und der dann gesagt hat,

Johannes

ja, aber du musst alles untersuchen.

Johannes

Warum untersuchst du das hier nicht?

Johannes

Und dann habe ich ihm bewiesen,

Johannes

ja, wenn ich das untersuche

Johannes

oder wenn ich diese Annahme treffe,

Johannes

dann führt das zu Paradoxa.

Johannes

Dann falle ich direkt raus,

Johannes

brauche ich gar nicht weitermachen.

Johannes

Das hat er aber nicht akzeptiert,

Johannes

sondern er wollte mir dann versuchen zu erklären,

Johannes

dass das aber eine Sinneserfahrung ist

Johannes

und du musst alle Sinneserfahrungen versuchen.

Johannes

Als Wissenschaftler musst du alles akzeptieren,

Johannes

das ist aber nicht so.

Johannes

Sondern als Mathematiker geht man da pragmatischer vor

Johannes

und sagt, ja, aber da brauche ich nicht weitermachen,

Johannes

weil das bringt mir nichts.

Dominik

Du bist ja eigentlich nur Statistiker.

Dominik

Du hast ja so eine Approximation gemacht

Dominik

von dem, was du glaubst, was dabei rauskommt

Dominik

und dann doch dich auf deine eigene Sinneserfahrung verlassen,

Dominik

die irgendwie da so ein bisschen

Dominik

in die Glocke, in die Mitte gesetzt wird.

Johannes

Ja, Mathematik und Sinneserfahrung.

Johannes

Das hat keine riesige Überschneidungsmenge.

Jochen

Das ist ja genau der Versuch,

Jochen

quasi von den Sinneserfahrungen zu abstrahieren.

Jochen

Aber ja, was natürlich schwierig ist.

Jochen

Ja, sagen wir mal zu den tatsächlich praktischen Dingen.

Jochen

Ich habe auch ein News-Ding.

Jochen

Und eins hat er noch.

Jochen

Ja, genau.

Jochen

Weil das können wir vielleicht jetzt sagen.

Jochen

Jetzt haben wir die ganzen Leute vergrault irgendwie mit

Jochen

unseren letzten drei Zuhörern.

Jochen

Trauen wir das jetzt auch noch zu?

Dominik

Du wolltest doch nicht irgendwas sagen,

Dominik

du hast ein Learnings vom Barcamp, was man nicht machen soll.

Dominik

Ach so, jetzt ist es wieder eingeweiht.

Dominik

Ja gut, dann machen wir es aber gnadenlos, egal.

Jochen

Und zwar, wir machen gleich noch was über MCP

Jochen

oder ich kann dazu was erzählen.

Jochen

Nein.

Jochen

Machen wir nicht?

Jochen

Nein.

Jochen

Ey!

Jochen

Wir machen eine eigene Folge zur MCP.

Jochen

Dann machen wir eine eigene Folge zur MCP?

Jochen

Ja.

Jochen

Okay, na gut.

Johannes

Also ich finde ja, MCP ist das Master Control Program.

Jochen

Genau, das fand ich auch.

Jochen

Ich habe da Vortragsvorgaben.

Jochen

Oder Metoklopramid, je nachdem, wie man möchte.

Jochen

Na gut, dann machen wir das heute eben nicht.

Jochen

Aber das müssen wir echt dann bald machen,

Jochen

weil sonst weiß ich das alles nicht mehr.

Jochen

Ich weiß das jetzt gerade.

Dominik

Mit dem Jochen unter den Nägeln.

Dominik

Ja, Mathematical Compute.

Johannes

Die Behörde schreibt uns an hello at python-podcast.de

Johannes

auf YouTube.

Johannes

Ich weiß nicht, ob ihr diese Folge dringend hören wollt oder nicht.

Johannes

Ja, okay.

Dominik

Meinst du, jetzt hört noch jemand zu?

Jochen

Ja, aber das News-Item wäre an der Stelle irgendwie

Jochen

hier Ex-CTO von OpenAI

Jochen

hat irgendwie von einem Venture Capital Fonds

Jochen

irgendwie zwei Milliarden gekriegt

Jochen

ohne irgendwas, bei einer Validierung von

Jochen

zehn Milliarden oder so.

Jochen

Also der ursprüngliche

Jochen

Entwickler von ChatGPG ist halt auch dabei.

Jochen

John Schulmann und

Jochen

ein paar andere Größen.

Jochen

Also ich meine, die ganzen

Jochen

ursprünglichen Leute sind ja

Jochen

alle nicht mehr bei OpenAI.

Jochen

Und

Jochen

naja, also das ist halt völlig irre.

Jochen

Die haben kein Produkt, nichts und kriegen halt so viel Geld.

Jochen

Das ist echt Wahnsinn.

Jochen

Aber wenn man sich für MCP interessiert,

Jochen

der aktuell beste Podcast,

Jochen

den man hören kann, eine Podcast-Episode,

Jochen

ist tatsächlich irgendwie von einem Partner

Jochen

von diesem Venture Capital Fonds,

Jochen

von einer Partnerin

Jochen

mit Interview mit

Jochen

David Soria Parra,

Jochen

oder ich weiß gar nicht, wie man das ausspricht,

Jochen

einer der beiden ist, die sich das ausgedacht

Jochen

haben und das ist irgendwie echt ganz nett.

Jochen

Ja, also

Jochen

aber dieser ganze Bereich ist momentan völlig irre.

Jochen

Das erinnert mich echt sehr stark an

Jochen

diese ganze DotCamp-Bubble

Jochen

Ende der 90er

Jochen

und es ist irre.

Jochen

Ja, naja.

Jochen

Genau.

Jochen

Aber dann machen wir das nochmal in einer anderen Episode.

Jochen

Okay.

Dominik

Ja, dann, der stellt sich jetzt

Dominik

endgültig Zeit für...

Johannes

Dann machen wir jetzt, was machen wir jetzt?

Johannes

Es kommt aber ein radikaler Wechsel. Achtung, jetzt kommt ein radikaler Wechsel.

Johannes

Der Unterbruch. Data Class Builders.

Dominik

Ah, okay.

Dominik

Bei Unfucked.ai sind, das wollte ich noch einmal

Dominik

kurz erwähnt haben, das hat der Johannes eben geschickt.

Dominik

Das war schön.

Dominik

Link in den Show Notes.

Dominik

Genau, für Business Leaders oder für Senior Developers.

Dominik

Wichtig.

Johannes

Ja, Kapitel 5.

Johannes

Ist ein etwas kürzeres Kapitel

Johannes

und ich fand's sehr

Johannes

gemischt beim Lesen.

Johannes

Ich fand, es ist so ein bisschen,

Johannes

es meandert so ein bisschen und bringt dann so

Johannes

ein paar Themen einfach noch so mit rein.

Johannes

Und...

Dominik

Sollen wir erst über das Ende reden, warum das

Dominik

ein Kurzmeld ist oder warum das keiner ist?

Johannes

Ja, ich stimme dem überhaupt gar nicht zu.

Dominik

Was ist denn das Argument?

Dominik

Warum sollte das denn ein Kurzmeld sein?

Dominik

Sag du doch mal, Dominik. Du findest, das ist ein Kurzmeld.

Dominik

Das habe ich nicht gesagt.

Dominik

Also, vielleicht geht es erstmal um, was es um Kapitel geht.

Dominik

Es geht darum, wie man

Dominik

Datenobjekte

Dominik

einfach...

Dominik

Instanziert ist vielleicht falsch.

Dominik

Deklariert.

Dominik

Also, mit Data Class oder Name Tuples.

Johannes

Eine Klasse, die nur...

Johannes

die nur Daten hält und keine Funktionen hat.

Johannes

Wie so ein Name Tuple?

Johannes

Ja, zum Beispiel. Das ist eine... Also, gleich auf der ersten Seite

Johannes

sind drei Mechanismen genannt.

Johannes

Oder auch wie ein Type-Tick, Johannes.

Johannes

Named Tuple. Nee, das nicht.

Johannes

Kommt direkt auf der zweiten Seite, steht direkt drauf.

Johannes

Das nicht.

Johannes

Also, es gibt Collections.NamedTuple.

Johannes

Das ist schon lange in der

Johannes

Python-Schneider-Bibliothek seit 2.6.

Johannes

Haben sicherlich viele schon mal gesehen.

Johannes

Können wir gleich noch erklären, was das ist.

Johannes

Dann gibt's eine neue Variante davon.

Johannes

Typing.NamedTuple.

Johannes

Und der heißeste Scheiß

Johannes

ist natürlich Dataclasses.Dataclass.

Johannes

Ein Dekorator, der diese ganzen Sachen

Johannes

mitnehmen soll. Am Ende geht's

Johannes

immer darum, Klassen zu machen, die

Johannes

nur Attribute haben.

Johannes

Und im Endeffekt

Johannes

ist das auch alles nur so ein bisschen Zucker

Johannes

obendrauf gestreut, weil man könnte prinzipiell

Johannes

diese ganzen Sachen alle mit Dicks machen oder sogar

Johannes

mit Tuples, wenn man möchte.

Johannes

Das heißt, das Einzige, was man gewinnt

Johannes

und das Einzige ist hier in sehr großen

Johannes

Anführungszeichen,

Johannes

dieses Wort Einzige,

Johannes

das Einzige, was man gewinnt,

Johannes

ist, dass das Programm besser verständlich wird.

Dominik

Ruff lintet

Dominik

zum Beispiel vom Typing-Import-NamedTuple

Dominik

und sagt,

Dominik

es ist Collections-NamedTuple, bitte.

Dominik

Darfst du nicht.

Dominik

Ja, sagen die das? Okay.

Johannes

Ich bin nicht ganz 100%

Johannes

immer einverstanden mit den Sachen, die Ruff sagt.

Johannes

Und ich hab heute auch einen Ruff-Cycle gefunden.

Johannes

Wo ich

Johannes

einen Hinweis gekriegt hab von Ruff,

Johannes

der gesagt hat, du musst das, der Generator,

Johannes

ist unwichtig, ist nicht wichtig,

Johannes

mach bitte eine Dict-Comprehension draus.

Johannes

Dann hab ich eine Dict-Comprehension draus gemacht.

Johannes

Dann hat er gesagt, ah, das ist eine unnütze Dict-Comprehension,

Johannes

mach bitte einen Dict-Aufruf mit Generator drin draus.

Johannes

Da war ich sehr amüsiert.

Johannes

Wie man's macht, ist falsch.

Johannes

Naja, Ruff hat ja auch so ein bisschen,

Johannes

ist ja schon so ein bisschen opinionated.

Johannes

Also nicht alles, was da von Ruff kommt,

Johannes

ist ganz richtig.

Johannes

Und es gibt schon einen wichtigen Unterschied zwischen

Johannes

NamedTuple und NamedTuple,

Johannes

was auch in dem Kapitel erklärt wird.

Johannes

Also die sind schon,

Johannes

sind schon unterschiedlich.

Johannes

Aber jetzt, wo wir wissen, was eine Dataclass ist,

Johannes

eine Klasse, die keine Funktionen hat,

Johannes

sondern nur Daten halten soll,

Johannes

kommt direkt in der Einleitung,

Johannes

sagen sie, ja, das ist eigentlich nicht so gut.

Johannes

Es wird an diesem Kapitel mehrmals darauf hingewiesen,

Johannes

dass namhafte Personen

Johannes

Dataclasses durchaus als Code-Smell sehen

Johannes

oder als Einstiegspunkt und als

Johannes

das ist noch nicht fertig.

Johannes

Und das Hauptargument, so wie ich es verstehe,

Johannes

ist, dass wenn du eine Dataclass hast,

Johannes

dann bedeutet das, dass du eine Klasse hast,

Johannes

die nur Daten enthält und keine Funktionen hat.

Johannes

Und du musst ja aber trotzdem was mit den Daten machen.

Johannes

Und das bedeutet, dass die eigentlich schon Funktionen hat,

Johannes

nur dass die irgendwo anders drinstehen.

Dominik

Weil es nur ein Vehikel ist und das wäre blöd?

Johannes

Weil, weil du, wenn, ja, weil du mit Daten halt irgendwas machen musst.

Johannes

Und, und eigentlich bedeutet Dataclass dann in dem Sinne,

Johannes

dass du deine Funktionen, die zu den Daten gehören sollten,

Johannes

irgendwo anders hinschiebst.

Johannes

Und dass du die irgendwo anders hast.

Johannes

Und ich stimme diesem Argument überhaupt gar nicht zu.

Johannes

Das, das, das hört sich für mich sehr nach,

Johannes

also ich meine diese Namen, die immer da gesagt bekommt,

Johannes

Martin Fowler und Kent Becks,

Johannes

das hört sich für mich sehr nach Kingdom,

Johannes

of the Nouns an.

Johannes

Das hört sich für mich sehr nach Java an.

Johannes

Das hört sich für mich sehr an nach,

Johannes

der Code ist wichtiger als die Daten.

Johannes

Und das stimmt halt in den, in ganz vielen Fällen nicht.

Johannes

In ganz vielen Fällen sind die Daten viel wichtiger als der Code.

Johannes

Was du da drin hast, welche Felder du hast,

Johannes

wie du drankommst, ist, ist in ganz vielen Anwendungsfällen,

Johannes

zumindest in denen, die mir so begegnen,

Johannes

viel wichtiger als dann, als dann,

Johannes

dass, dass die Funktionen direkt dabei steht

Johannes

und dass du die direkt dazu packst.

Johannes

Das ist die eine, der eine Aspekt.

Johannes

Du gibst der Funktionalität mehr Gewicht als den Daten.

Johannes

Und das ist oft nicht der Fall.

Jochen

Das, da, da könnte man dann, mir fällt das Zitat jetzt nicht ein,

Jochen

aber da, da gibt's eines von Linus Torvalds, wo er sagt,

Jochen

na ja, so, das ist halt quasi oft ein Fehler von Leuten,

Jochen

die quasi das Licht noch nicht so richtig gesehen haben,

Jochen

dass sie halt Wert auf Algorithmen oder oder sozusagen auf Dinge legen.

Jochen

Und wenn man dann mal irgendwann später da so weiß, was man tut,

Jochen

dann guckt man sich eher so die Datenstrukturen an

Jochen

und wie die eigentlich aussehen sollen.

Jochen

Und dann ist das mit den,

Jochen

mit der mit den mit der Funktionalität ist dann ganz klar und einfach.

Jochen

Hoffen, hoffentlich.

Jochen

Und ja, aber ich würde, ich würde auch denken, dass genau, also für mich,

Jochen

mich erinnert das auch total an irgendwie objekte orientierte Programmierung.

Jochen

Ende der 90er ist halt irgendwie das Heilmittel für alles.

Jochen

Und aber inzwischen wird man ja sagen, so na ja,

Jochen

das aktuelle Heilmittel für alles ist halt Domain Driven Design.

Jochen

Und aus der Perspektive ist es halt gibt's halt zwei unterschiedliche Arten von Dingen,

Jochen

für die man halt Klassen hat.

Jochen

Und das ist halt eine sind halt Entities,

Jochen

also Dinge, die halt irgendwie eine Identität haben, die halt wichtig ist.

Jochen

Und das andere sind halt so Value Objects und bei denen ist es halt wurscht.

Jochen

Also sowas wie zum Beispiel ein Objekt, das halt einen Geldbetrag repräsentiert.

Jochen

Und das Wichtige ist halt der Wert von dem Geld.

Jochen

Und aber nicht, welchen Geldschein man hat.

Jochen

Das ist völlig egal.

Jochen

Und für solche Value Objects sind halt Data Classes halt auch total super, weil es ist genau.

Jochen

Und aber wenn das halt State hat und man dann braucht man halt vielleicht schon Methoden und so.

Jochen

Also ich würde auch denken, also das ist differenzierter.

Johannes

Ja, es gibt noch einen.

Johannes

Es gibt noch einen zweiten Aspekt, der mir, der mir da fehlt.

Johannes

In dieser Argumentation geht es ein bisschen in das, was du eben gesagt hast.

Johannes

Die Leute, die sich noch nicht gesehen haben, wenn, wenn man, wenn man über Klassen nachdenkt

Johannes

und die sieht als, als eine Anzahl von Funktionen und ein paar Daten dazu,

Johannes

dann ist es ein anderer Blick auf, auf das, was man tut.

Johannes

Es ist ein anderer Blick auf das Programm und was ein Programm kann.

Johannes

Und und zwar ist es ein Blick auf einzelne Objekte.

Johannes

Weil, weil wenn, wenn ich so eine Klasse schreibe, dann also in Python gibt's den Self-Parameter.

Johannes

In anderen Sprachen heißt der This-Parameter, dann ist es immer.

Johannes

Es gibt immer ein Objekt, was irgendwie hervorgehoben ist.

Johannes

Es ist nämlich das Objekt, an dem ich gerade dran bin, in dem ich gerade drin bin.

Johannes

Wenn ich aber den Blick habe auf eine Data-Class, dann geht es mir oft gar nicht so sehr um eine einzelne Instanz

Johannes

oder ein einzelnes Attribut von dieser Data-Class, sondern dann, dann verändert sich mein Denken hinzu.

Johannes

Was ist denn, wenn ich 1000 davon in der Hand habe?

Johannes

Was ist denn, wenn ich eine Tabelle von diesen Objekten in der Hand habe?

Johannes

Und und dann ist auf einmal gar nicht mehr das Einzelobjekt wichtig,

Johannes

sondern dann ist auf einmal die Gesamtheit der Objekte wichtig.

Johannes

Was ist denn, was ist denn, wenn ich, wenn ich, wenn ich eine Million,

Johannes

von diesen Geldbeträgen bekomme, was kann ich denn dann damit machen?

Johannes

Und und diese Art zu denken oder auch diese Art zu modellieren ist in der in der klassischen OOP nicht naheliegend,

Johannes

weil im klassischen OOP denkt man eben oft über einzelne Objekte nach,

Johannes

weil du eben eine Klasse schreibst, die eine Instanz hat.

Johannes

Und für diese eine Instanz hast du diese Funktion dran.

Johannes

Und wenn du die Funktion auf der einen Instanz aufrufst, dann, dann hast du diesen Blick auf die eine Instanz.

Johannes

Und das ist was, was, das ist schwer zu greifen.

Johannes

Und schwer zu erklären, aber das verändert das Denken über Programmstrukturen.

Johannes

Und das verändert das Denken über die Inhalte von einem Programm.

Johannes

Und das ist was ganz Gefährliches zu sagen, meiner Meinung nach, dass das ein Codesmail ist,

Johannes

weil du nur diesen einen Blick auf Programmierung haben darfst.

Johannes

Ja.

Johannes

Und deshalb, ich bin da sehr skeptisch, wenn, wenn Leute sagen, Data Classes, ja, das ist schon okay.

Johannes

Aber hier, das fängt direkt an, Data Classes are like children, they are okay.

Johannes

The starting point, but to participate as a grown up object, they need to take some responsibility.

Johannes

Das heißt, die, grob übersetzt, Datenklassen sind wie Kinder.

Johannes

Das ist okay, wenn man damit anfängt.

Johannes

Aber wenn man sie wie richtige Objekte verwenden will, dann müssen sie schon auch Funktionalität haben.

Johannes

Sehe ich, sehe ich gar nicht so.

Johannes

Und finde ich tatsächlich nicht gut, diesen Blick so zu haben.

Dominik

Aber vielleicht meint das so ein bisschen was wie, ich weiß nicht, dann zu Pedantic überzugehen,

Dominik

was ja fast so was ist wie eine Dataklasse, mit so was wie Validierung.

Dominik

Dann noch oder so.

Johannes

Ja, aber auch das ist noch, Pedantic ist, sind natürlich, ja, sind schon Data Classes auch, oder?

Jochen

Ja, ich würde, das sind halt, da gibt's dann eben, genau, das ist ein bisschen, das kommt jetzt in dem Buch nicht so vor,

Jochen

weil das halt auch teilweise aktuelle, also das Buch ist ja relativ aktuell.

Jochen

Aber gerade so der auf, sozusagen das, Pedantic, ja, genau, beschränkt sich mehr so auf die Standard.

Jochen

Aber wobei ja auch das Vorbild von Data Classes in der Standardlib ist Atos, ist halt auch nicht, ja.

Jochen

Es wird auch ein paar Bands am Ende, aber mehr so als Further Reading.

Jochen

Ja, genau, aber sozusagen Pedantic ist ja danach erst so richtig populär geworden, würde ich sagen.

Jochen

Oder jetzt auch noch neuer Message-Spec, gibt's ja auch, ist ja vielleicht noch mal schneller und keine Ahnung.

Jochen

Aber ich, da muss man vorsichtig sein, also ich glaube, da vermischt man dann, also Pedantic,

Jochen

es ist natürlich auch praktisch, aber es vermischt halt zwei so Sachen.

Jochen

Das ist einmal diese Klassenbilder-Geschichte mit den, den Annotationen, damit man halt sozusagen, ja, das halt,

Jochen

kompakt hinschreiben kann, was man da für Attribute dran hat.

Jochen

Das ist bei Pedantic ja genauso.

Jochen

Und dann gibt's halt diesen Validierungsteil, der ist aber irgendwie anders, weil das hast du halt in Data Classes

Jochen

und halt bei Name Tuple oder so eigentlich nicht.

Johannes

Nicht mal bei Typing.NameTuple hast du Validierung.

Jochen

Nee, gar nicht, genau.

Jochen

Und da muss man halt extrem vorsichtig sein.

Jochen

Also ja, ich meine, das kann natürlich auch sehr praktisch sein, aber es gibt da auch eben von dem Entwickler von Atos einen sehr schönen,

Jochen

schönen Vortrag von der letzten PyCon US, wo jetzt auch die Vorträge rausgekommen sind.

Jochen

Und der heißt, glaube ich, "Design Pressure".

Jochen

Der Entwickler heißt "Design Pressure"?

Jochen

Nee, der Vortrag heißt "Design Pressure".

Johannes

Aber ist das nicht, ist das nicht der, ist das nicht Hinek Schlaback?

Johannes

Genau, ja.

Johannes

Der ist doch auch Deutscher, oder?

Jochen

Ja, ja, genau, den sollte man auch echt mal fragen, weil der hat immer tolle, tolle Artikel zu diesen ganzen,

Jochen

er hat tolle Software geschrieben, tolle Artikel geschrieben, macht tolle Videos, toller Typ.

Jochen

Müssen wir mal fragen.

Jochen

Wenn du ihm diese Episode zeigst, möchte ich auch auf den Podcast kommen.

Jochen

Genau, vielleicht werden wir auch toll dann, so ein bisschen Glanz könnte auf uns abfallen, wer weiß.

Jochen

Mal schauen.

Jochen

Ja, genau.

Jochen

Und ja, eigentlich ist das ein Vortrag über Software-Architektur.

Jochen

Der hat ja, war ja auch Reviewer für hier das, das Architekturbuch, was ich immer empfehle, also das "Software Architecture with Python".

Jochen

Und er hat auch schon häufiger Vorträge über Software-Architektur gehalten.

Jochen

Und das ist auch wieder so einer.

Jochen

Und der startet mit dem Hot-Take.

Jochen

irgendwie so Dinge wie Pydentic

Jochen

oder irgendwie diese Geschichten

Jochen

Data-Validation-Dinger,

Jochen

das macht eure Architektur

Jochen

von eurem Programm kaputt.

Jochen

Ihr Trottel!

Jochen

So, und jetzt sage ich euch mal,

Jochen

warum das so ist. So, gut, man braucht

Jochen

halt irgendwie so ein, meinte so, ja,

Jochen

ich komme ja aus der YouTube-Welt, da macht man

Jochen

das so, dass man so einen Hook platzieren muss

Jochen

und dann muss man drauf deliveren oder nicht.

Jochen

You want to believe what happens next. Genau, genau.

Jochen

Und wenn man das halt schafft, dann ist gut und wenn man

Jochen

es nicht schafft, ist halt doof, aber mal schauen.

Jochen

Und ja,

Jochen

also da

Jochen

und ich, aber ich würde sagen, im Grunde hat er da

Jochen

ganz recht, ja, also ich meine, wenn man jetzt

Jochen

das so macht, dass man ein paar Identik

Jochen

Modelle verwendet, halt

Jochen

als Data-Classes

Jochen

Ersatz und die dann halt

Jochen

quasi benutzt, um die eigene

Jochen

Domain, ich weiß gar nicht, ob es da für

Jochen

einen guten deutschen Begriff gibt oder so, dass

Jochen

der Bereich, in dem die eigene

Jochen

Business-Logik stattfindet, zu

Jochen

beschreiben, dann hat man halt schon einen bösen Fehler

Jochen

gemacht eigentlich oder dann hat man sich in der Ecke

Jochen

modifiziert, aus dem man schlecht wieder rauskommt.

Jochen

Ja,

Jochen

und da muss man aufpassen, also ich meine, man kann

Jochen

das ja auch richtig verwenden, aber es ist

Jochen

halt nicht so einfach, also

Jochen

das ist halt schon gefährlich, also

Jochen

insofern bei Pidentik, also

Jochen

ist auch ein sehr cooles Projekt, aber

Jochen

man muss halt echt aufpassen, dass man da

Jochen

nicht, also

Jochen

wenn man damit auf

Jochen

irgendein Problem zielt, dann hat

Jochen

der Pidentik-Lauf auch immer so die Tendenz,

Jochen

so weich zu werden und so auf den eigenen Fuß runter

Jochen

zu neigen und

Jochen

wenn man im falschen Moment schießt, dann hat man ein Loch im Fuß.

Dominik

Kannst du nochmal kurz vergleichen,

Dominik

oder erklären, was du meinst, wann das

Jochen

passiert? Naja, also wenn du zum Beispiel

Jochen

von, also

Jochen

anstelle einer Dataclass halt ein

Jochen

Pidentik-Modell verwendest.

Dominik

Warum ist das blöd? Naja, weil du

Jochen

dann zum Beispiel Pidentik importierst in deiner Business-Logik.

Dominik

Und dann bist du davon

Dominik

abhängig. Ja, und

Jochen

genau, du hast halt

Jochen

dann

Jochen

diese Konzerns irgendwie miteinander vermischt

Jochen

und dann kriegst du alle möglichen Arten von

Jochen

üblen Design-Problemen, Architektur-Problemen,

Jochen

ähm, genau.

Jochen

Ja.

Jochen

Welche? Naja, äh, also

Jochen

zum Beispiel, wenn das dann halt jetzt

Jochen

nicht, äh, schnell

Jochen

genug ist und du willst jetzt was anderes,

Jochen

eine schnellere Art, irgendwie die Sachen zu,

Jochen

weil du hast das jetzt gekoppelt an, du spreifst das

Jochen

als JSON raus und liest JSON rein und so,

Jochen

was ja Pidentik auch ganz

Jochen

gut kann, und jetzt stellst du halt fest so, oh,

Jochen

jetzt, äh, oder gibst das über eine API raus

Jochen

und jetzt stellst du halt fest so, oh shit,

Jochen

aber, also ich meine, das ist relativ schnell,

Jochen

aber das ist nicht so schnell, wie es geht. Also es geht

Jochen

natürlich, es gibt da Dinge draußen, die sind deutlich schneller als

Jochen

Pidentik.

Jochen

Pidentik. Und jetzt stellst du halt fest so, okay,

Jochen

hm, irgendwie Pidentik ist zu langsam für mich.

Jochen

Du wirst Pidentik niemals

Jochen

austauschen können. Da kannst du dein Ding neu schreiben.

Jochen

Das ist halt, äh, kannst du einfach völlig vergessen.

Jochen

Und,

Jochen

äh, ja,

Jochen

das ist halt, wenn man, wenn man das

Jochen

halt quasi nicht so, die,

Jochen

nicht so gebaut hat, dass man halt Pidentik

Jochen

austauschen kann, dann hat man halt, so ähnlich wie

Jochen

bei, man hält von den Django,

Jochen

wenn man Models Model erbt, ne, also

Jochen

oft kann das ja auch okay sein und bei Pidentik kann das ja

Jochen

auch oft okay sein, aber wenn du halt ein Großprojekt hast,

Jochen

und dann, äh,

Jochen

hast du halt irgendwann, willst du

Jochen

Dinge anders machen, äh, dann kann es

Jochen

gut sein, dass das nicht mehr geht.

Jochen

Ja, okay, klar, natürlich.

Jochen

Äh,

Dominik

ja,

Dominik

hm, fand das jetzt nicht so, dass, äh,

Dominik

Kinder gegen ein Win.

Johannes

Sollen wir, sollen wir mal zurückkommen zum

Johannes

Buch? Ich glaube, da sind tatsächlich noch ein paar interessante

Johannes

Sachen drin. Ähm,

Johannes

diese, es werden

Johannes

hier drei Alternativen, äh,

Johannes

äh, genannt, also Collections.name,

Johannes

tuple, typing, name, tuple und, äh, data

Johannes

class. Und warum nicht

Johannes

typedict?

Johannes

Äh, typedict. Ja, das ist tatsächlich hier, äh,

Johannes

äh, da lese ich, äh,

Johannes

ich zitiere, typedict may seem like another

Johannes

data class builder. Ja, ist es nicht. Genau.

Johannes

Typedict does not build concrete classes that you

Dominik

can instantiate. Genau, es ist ein, äh,

Dominik

macht keine Klassen. 25 oder so was, kommt, geht ja noch mal drauf ein.

Johannes

Ja. Genau, also das, äh,

Johannes

das macht nicht solche Klassen, wie wir sie hier

Johannes

brauchen, sondern das ist nur, wir brauchen...

Dominik

Type annotations für Dicts, aber es funktioniert anders.

Jochen

Genau, und es ist eine böse Falle, also,

Jochen

ich hab, weiß nicht, wie oft ich das schon gesehen hab, dass

Jochen

Leute denken, dass sie dann sicher werden

Jochen

und, äh, aber nie MyPy oder

Jochen

sowas ausführen und dann,

Jochen

wenn man's dann mal ausführt, äh, kriegt man halt

Jochen

gesagt so, ja, also das, was du da machst mit

Jochen

dem typedict, das ist bei uns alles falsch.

Jochen

Nie einer gemerkt.

Dominik

Hat dir das Claude erzählt?

Johannes

Nee, das, äh, mir begegnet

Johannes

sowas ständig, also... Hat sich jemand ausgedacht.

Johannes

Ja. Okay,

Johannes

ähm, aber im Endeffekt funktionieren doch

Johannes

diese drei, ähm, diese drei Verfahren

Johannes

alle irgendwie gleich. Du hast, du musst irgendwie eine

Johannes

Definition schreiben und du sagst, ich möchte jetzt eine Klasse

Johannes

haben, die soll einen, einen Namen haben

Johannes

und die soll folgende Attribute

Dominik

haben. Und die werden dann getypt

Dominik

und getyped hinted. Ja,

Johannes

entweder getypt oder auch nicht getypt. Musst du ja nicht

Johannes

unbedingt getypt haben.

Johannes

Und selbst wenn du es getypt hast,

Johannes

kannst du es ja immer noch anders verwenden, kannst du ja immer noch...

Johannes

Selbst wenn du deine Dataclass schön mit

Johannes

Types versehen hast, äh, kannst

Johannes

du ja immer noch reintun, was du möchtest.

Dominik

Also, ein Tupe wäre jetzt immutable, dann muss ich ein Frozen

Dominik

machen bei der Dataclass, ne? Ja.

Johannes

Genau, aber das hat mit, auch das hat mit

Johannes

den Types nichts zu tun, äh, du kannst auch,

Johannes

also, äh, auch das Typing.Name

Johannes

Tupe kann ja, äh, andere

Johannes

Sachen nehmen. Das ist ja erstmal nur eine Absichtserklärung.

Johannes

Ich beabsichtige,

Johannes

dass dieses Attribut nur ein Int sein

Johannes

kann, aber da hält dich niemand davon ab.

Johannes

Hm, kannst auch eine Liste reinmachen.

Johannes

Das ist ja generell bei Python so.

Johannes

Okay, ähm, aber ich find's interessant,

Johannes

weil, ähm, im Wesentlichen

Johannes

gibt's da zwei verschiedene

Johannes

Syntax-Möglichkeiten.

Johannes

Und die eine, das ist die von

Johannes

NameTupel kommt, wo man halt sagt, ich möchte

Johannes

einen NameTupel haben und dann ruf ich die Funktion

Johannes

oder ruf ich den, den Konstruktor

Johannes

NameTupel als Konstruktor auf und sag eben,

Johannes

die, diese Datenklasse soll

Johannes

den Namen, hier haben sie das

Johannes

Beispiel Coordinate haben, also Koordinate haben

Johannes

und die hat zwei Attribute, Lat und Lon. Und dann krieg ich da

Johannes

eine Klasse raus. Oder besser gesagt,

Johannes

ich krieg nur einen Konstruktor raus für eine Klasse. Ich krieg ja

Johannes

nicht meine ganze Klasse raus, sondern ich krieg nur den Konstruktor

Johannes

raus. Ähm,

Johannes

und, und das ist so ein bisschen irgendwie so eine

Johannes

textuelle Beschreibung. Und ich hab da immer

Johannes

so ein bisschen Hemmungen. Das fühlt sich so ein bisschen an,

Johannes

als ob man irgendwie um

Johannes

diesen,

Johannes

ja, um so Python außenrum

Johannes

geht und, und um

Johannes

den, um den Interpreter außenrum

Johannes

geht und dass man irgendwelche

Johannes

langsamen, magischen Sachen macht.

Johannes

Aber ich glaube tatsächlich,

Johannes

man muss da weg davon und muss sagen, okay, dieses,

Johannes

dieses Herstellen der Klasse, das ist langsam,

Johannes

aber das ist, das ist ja egal, weil das macht

Johannes

man nur einmal. Das Instanziieren,

Johannes

das ist dann so schnell wie ein Tupel.

Johannes

Und das ist nicht, und das, die

Johannes

verbrauchen auch nicht mehr Speicher. Also diese Namen

Johannes

werden nicht bei jedem, bei jeder Instanz dazu gespeichert.

Johannes

Ist nicht wie bei einem Dictionary.

Johannes

Ja. Sondern es ist eben ein Tupel.

Johannes

Und im Endeffekt ist es ein Tupel mit so einem

Johannes

kleines bisschen Karamellsoße

Johannes

obendrauf gestreut, wo man eben

Johannes

nicht Index 0, Index 1

Johannes

und Index 2 hat, sondern wo man eben Latitude

Johannes

und Longitude sagen kann. Ja. Und das

Johannes

bedeutet dann Index 0 und Index 1. Ja, das sieht

Jochen

viel schneller aus tatsächlich. Also, also lange Zeit

Jochen

war, war ein Tupel auch irgendwie deutlich

Jochen

schneller. Also, wobei nichts ist so schnell

Jochen

wie tatsächlich einfach, äh, quasi

Jochen

wenn man eine Klasse instanziiert.

Jochen

Aber Name-Tupel war dann halt die schnellste Alternative.

Jochen

Ähm, äh,

Jochen

und wenn man jetzt, früher war das

Jochen

halt oft so, oder,

Jochen

wenn man halt, äh,

Jochen

Attribut-Lookup macht, äh,

Jochen

dann ist das bei Name-Tupel natürlich schneller.

Jochen

Äh, also irgendwas

Jochen

Punkt Instanz, Punkt irgendein Attribut.

Jochen

Äh, weil Tupel Index.

Jochen

Genau, genau. Und inzwischen

Jochen

macht aber Dataclasses und auch,

Jochen

äh, glaube ich, Name-Tupel, wenn man

Jochen

davon erbt, per Default irgendwie Slots.

Jochen

Vielleicht erzähle ich jetzt auch Unsinn. Das müsste,

Jochen

muss man irgendjemand nachgucken, ne? Aber ich glaube,

Jochen

das ist tatsächlich so. Das Fazit ist,

Jochen

das Fazit ist für mich,

Johannes

das hat gar keine praktische Auswirkung. In keinem

Johannes

Fall, den ich je hatte, hätte das eine Auswirkung

Johannes

gehabt, dass die Konstruktion von diesen Daten-

Johannes

Objekten zu langsam gewesen wäre.

Johannes

Das heißt, es ist auch wieder so ein Jagdnifal. Das ist so eine,

Johannes

so eine Angst, die ich mal im Kopf

Johannes

hab, die aber eigentlich in dem Moment noch

Johannes

nicht berechtigt ist.

Jochen

Große API-Responses, oder,

Jochen

oder, oder wo du Zeugs reinkriegst, weil da

Jochen

kann das schon, so bei, so

Jochen

wenn du halt irgendwie 10.000 Dinger,

Jochen

in Objekte verwandelst und dann ist halt

Johannes

deine Objekte erzeugt. Ja, aber gut, wenn da Jason reinkommt,

Johannes

hast du ja eh schon verloren. Ja, aber es gibt ja

Jochen

schnelle Jason-Parser, aber wenn du, du musst es ja

Jochen

nochmal zu Objekten machen. Aber du kriegst ja auch einen Dikt.

Jochen

Krass.

Jochen

Ja. Wie auch immer,

Johannes

für mich der Takeaway ist,

Johannes

ich hab da immer so ein bisschen Hemmungen, ich hab immer

Johannes

so ein bisschen Hemmungen, so ein Name-Tupel zu machen,

Johannes

weil das nicht so richtig in die Syntax passt, weil

Johannes

das anders aussieht, als, als andere

Johannes

Sachen aussehen, aber es ist gar nicht schlecht.

Johannes

Es ist gar nicht falsch,

Johannes

ein Name-Tupel zu machen. Ja, aber was meinst

Dominik

du, das sieht anders aus? Also ich finde, wenn du das jetzt

Dominik

in dieser, vom Typing oder

Dominik

vom Collections importierst, dann kannst du ja Klasse schreiben.

Dominik

Sieht ja fast aus wie eine Dataklasse.

Dominik

Ja, genau, das kannste

Johannes

machen. Das sieht auch normal aus.

Johannes

Das ist auch was, was ich empfehlen würde.

Johannes

Das

Johannes

kannst du machen, aber dieser Konstruktor,

Johannes

der Name-Tupel-Konstruktor, also das ist tatsächlich

Johannes

alles klein geschrieben und dann musst du da Strings

Johannes

reingeben.

Johannes

Ja, das ist schon hässlich.

Jochen

Was daran auch komisch ist halt,

Jochen

also einmal, ich find's auch ehrlich gesagt ein bisschen hässlich,

Jochen

weil das ist uralt, ja, das gibt's schon ewig.

Jochen

Das ist super praktisch.

Jochen

Das ist natürlich manchmal super praktisch, wenn man halt

Jochen

irgendwie auf alten

Jochen

Interpreter-Versionen rumguckt, aber

Jochen

genau, das funktioniert wahrscheinlich bis,

Jochen

also da gibt's nichts mehr, was noch läuft, was irgendwie

Jochen

älter ist. Das funktioniert wirklich überall,

Jochen

aber also was halt auch

Jochen

blöd ist, ist, dass es halt, es geht zwar auch,

Jochen

dass man da Methoden dranhängt, aber das ist auch voll umständlich.

Jochen

Da muss man halt auch erstmal

Jochen

die Funktionen anzeugen und dann muss man

Jochen

das Ding irgendwie da dranhängen und so. Und es geht

Jochen

alles, klar, aber es ist halt schon so, wenn das als Methode

Jochen

dransteht, ist das schon leichter

Jochen

verständlich, wie das passiert. Ja, da kann man ganz viel

Dominik

hässliche Magie mitmachen. Ich glaube, wenn man so Codecoil

Dominik

spielt oder sowas, dann ist das eine Disziplin, die man so spielen kann.

Dominik

Und wenn man Leute verwirren will oder

Dominik

so ein bisschen Obfuscation, ne?

Johannes

Nee, nee, nee, das ist nicht gut.

Johannes

Nee, dann gehen wir über zur Typing-Name-Tupel, weil Typing-Name-Tupel

Johannes

hat nämlich Klassen-Syntax.

Johannes

Und die ist tatsächlich, ich find die sehr

Johannes

schön.

Johannes

Es wird gleich noch

Johannes

ein Problem beschrieben werden, was ich auch tatsächlich

Johannes

sehe, jetzt, wo ich's gelesen hab.

Johannes

Aber es ist so ein bisschen

Johannes

so, wie man sich's vorstellt. Wenn man

Johannes

aus einer anderen Sprache kommt, dann sagt man, ich möchte eine

Johannes

Klasse haben und die soll folgende Attribute haben. Und das

Johannes

ist hier genauso, weil die Klassen-Syntax halt so ist,

Johannes

dass ich sag, Class, dann den Klassennamen

Johannes

abgeleitet von Name-Tupel.

Johannes

Was aber so ein bisschen

Johannes

nicht ganz

Johannes

richtig ist. Weil die MRO

Dominik

da gar nicht drin ist, weil das nur eine Meta-Klasse ist,

Dominik

weil da nämlich gar nicht tatsächlich ein Name-Tupel drin ist,

Dominik

sondern ein richtiges Tupel. Genau.

Johannes

Und dann innerhalb von der Klasse

Johannes

geb ich einfach die Attribute an, die ich

Johannes

haben möchte mit ihrem Typen. Also hier in dem Fall

Johannes

Beispiel

Johannes

Latitude, Doppelpunkt, Float

Johannes

und Longitude, Doppelpunkt, Float.

Johannes

Und das bedeutet, dass diese

Johannes

Klasse automatisch einen Konstruktor bekommt,

Johannes

der eben diese

Johannes

zwei Attribute nimmt, entweder

Johannes

Named oder Unnamed.

Johannes

Das war so der Hauptanweis. Du möchtest jetzt nicht irgendwie

Dominik

eine Klasse schreiben, wo du reinschreibst in Init,

Dominik

nimm folgende Argumente, Latitude und Longitude

Dominik

und dann machst du Save, Init, Lot, Gleich,

Dominik

Lang und da. Genau, kannst du alles

Johannes

selber machen, aber es wird dir alles abgenommen, wenn du

Johannes

das hier machst. Genau. Durch Meta-Klassen-Magie.

Johannes

Und im

Johannes

Endeffekt. Jetzt ist es schon das

Dominik

zweite Mal, dass ich jetzt wieder das Trinkspiel mache, was wir

Dominik

letztes Mal angefangen haben, Johannes. Ja, ich

Johannes

weiß, das ist mein Wort, was

Johannes

zu oft kommt. Wir sagen das jetzt nicht

Johannes

nochmal.

Johannes

Bei

Johannes

Data-Klassen ist es ja im Grunde genommen

Johannes

das Gleiche, dass du so eine gewisse

Johannes

du sagst, welche Klassennamen

Johannes

du haben möchtest, welche Attribute du haben möchtest, welchen

Johannes

Typ du haben möchtest. Und da ist natürlich

Johannes

leicht, weitere Methoden hinzuzufügen.

Johannes

Die schreibst du einfach in den Klassenkörper ran.

Dominik

Ja, das mache ich auch.

Johannes

Ich gehe eigentlich schon raus aus dem Data-Klass.

Dominik

Aber ich mache das tatsächlich relativ häufig, dass man irgendwie auffällt,

Dominik

ich hätte noch gerne kann und doch das Maximum und die Summe

Dominik

berechnen von irgendwas. Ja.

Dominik

Das war schon super praktisch. Ja, ja, natürlich.

Johannes

Das ist auch richtig. Genau.

Johannes

Das ist ja dann das, was hier der

Johannes

Onkel Bob würde sagen, das ist gut,

Dominik

bist du auf dem richtigen Weg. I just implemented

Dominik

that last night.

Johannes

Genau.

Johannes

Es ist interessant, weil

Johannes

da ist ja so ein bisschen Triggery drin hier.

Johannes

Dieses Name-Tupel, dieses Typing-Name-Tupel,

Johannes

das ist ja gar keine normale Klasse, sondern das ist ja

Johannes

eine Meta-Klasse.

Dominik

Ja. Was ist denn jetzt so eine

Dominik

Meta-Klasse? Eine Meta-Klasse?

Dominik

Welches Kapitel ist das?

Dominik

Das ist weiter hinten, glaube ich.

Dominik

Da machen wir noch ein bisschen.

Dominik

Dynamic Attribute and Property.

Dominik

Wir verschieben das.

Dominik

Das Meta-Programm ist Kapitel 24.

Johannes

Kapitel 24, also

Johannes

nur noch 19 weitere Episoden

Johannes

und schon sind wir über das Buch Fluren passen.

Johannes

Ja.

Johannes

Dazwischen natürlich noch die anderen.

Johannes

Okay, aber dann

Johannes

dieses Kapitel macht ja jetzt hier eine totale,

Johannes

total interessante Biege, weil

Johannes

das Nächste ist ja jetzt,

Johannes

ah, übrigens, wir müssen Type-Ins machen.

Johannes

Wir müssen noch ein bisschen über Typing sprechen.

Johannes

Und das fand ich interessant, als ich es gelesen

Johannes

habe, weil das war so

Johannes

ein Twist, den ich nicht erwartet hatte.

Dominik

Er hat deswegen

Dominik

darüber gesprochen, weil er gesagt hat, dass es

Dominik

total cool ist, wenn man jetzt Match-Case

Dominik

benutzt. Und das liegt auch daran, dass das

Johannes

Ja, aber das ist dann der dritte, das ist der nächste Twist.

Dominik

Ach so. Ja, das wurde ja

Dominik

gerade erst eingeführt, als das Buch rauskam. Ich glaube, deswegen ist da so

Dominik

die Emphasis auch so ein bisschen

Johannes

tiefer. Ja, vielleicht war es auch nicht genügend

Johannes

für ein, ups, jetzt geht hier mein

Johannes

Aufnahmekomputer gerade aus.

Johannes

Vielleicht ist es auch noch nicht groß genug

Johannes

für ein eigenes Kapitel, aber ich finde es interessant,

Johannes

dass hier so Type-Ins

Johannes

oder Type-Annotations

Johannes

so in einem

Johannes

ganz anderen Kapitel

Johannes

versteckt wird.

Johannes

Und auch

Johannes

nicht so, dass man es jetzt,

Johannes

also ich habe mir ja die,

Johannes

ich habe mir ja die Inhaltsangabe

Johannes

hier die Sachen durchgelesen alle, aber

Johannes

da habe ich da mitgerechnet,

Johannes

dass das jetzt hier so eine Abbiegung

Johannes

macht und dann sagt, ach so, übrigens, hier

Johannes

lassen Sie über Typen sprechen.

Johannes

Also kommt natürlich nachher nochmal, aber

Johannes

ja.

Jochen

Ja, ist natürlich schon auch so ein bisschen naheliegend,

Jochen

weil man muss halt jetzt dann irgendwie,

Jochen

wenn man schon erklärt, wie das

Jochen

da bei diesen Class-Bildern

Jochen

funktioniert, dass man halt

Jochen

über die Typ-Annotation

Jochen

im Grunde halt

Jochen

ja, schon sagt, was das

Jochen

dann sein soll, dann muss man ja auch erklären, wie das

Jochen

funktioniert und dann kann man ja, da muss man ja irgendwie

Jochen

andere Annotations

Jochen

irgendwie erwähnen und dann, ah, dann ist man ja

Jochen

mittendrin in den Typ-Annotationen irgendwie.

Johannes

Ja, das, man muss

Johannes

da so ein bisschen in den Wald reinlaufen und sich so ein bisschen

Johannes

drin verlaufen, ja, also ich verstehe es

Johannes

schon, aber es war irgendwie, das

Johannes

hatte ich nicht erwartet.

Johannes

Und da kommt auch das eine Problem

Johannes

raus mit den Data-Classes, also wenn ich so

Johannes

eine Data-Class schreibe, dann habe ich ja diesen

Johannes

Dekorator vorne dran, Data-Class,

Johannes

Data-Class ist doch Data-Class,

Johannes

dann schreibe ich Class den

Johannes

Klassennamen, also in dem Fall jetzt hier Class-Coordinate

Johannes

und im

Johannes

Klassenkörper schreibe ich dann die Attribute, die

Johannes

die Instanzen haben sollen. Und

Johannes

das, das wird hier

Johannes

in dem Kapitel sehr deutlich gemacht und das finde ich auch

Johannes

sehr richtig und sehr gut, weil

Johannes

das da tatsächlich eigentlich eine

Johannes

Abwendung ist von dem, was Python normalerweise

Johannes

macht. Weil wenn ich normalerweise

Johannes

hier ein Attribut

Johannes

reinschreibe, also wenn ich Latitude,

Johannes

gleich X reinschreibe

Johannes

und Longitude gleich Y,

Johannes

dann ist es ja erstmal ein Klassenattribut.

Johannes

Und hier in dem Fall,

Johannes

wenn ich jetzt aber Latitude

Johannes

Doppelpunkt Float, also Latitude

Johannes

getypt mit dem

Johannes

Float-Typ hinschreibe, dann ist es

Johannes

auf einmal ein Instanzattribut.

Johannes

Und

Johannes

dieser Unterschied wird hier

Johannes

in einer gewissen Länge diskutiert,

Johannes

weil der wirklich sehr wichtig ist, weil es sehr

Johannes

leicht ist, diesen Unterschied zu machen, diese beiden

Johannes

Sachen sind sehr nah aneinander und die sehen sehr gleich

Johannes

aus, machen aber dann andere Dinge

Johannes

und sind eigentlich anders als

Johannes

das, was in Python so

Johannes

normal ist. Das heißt, da muss man schon

Johannes

besondere Vorsicht.

Dominik

Du musst nochmal bitte den Unterschied genau erklären

Dominik

zwischen diesem Instanzattribut und dem

Dominik

Klassenattribut. Ich habe nämlich schon mehrfach Menschen

Dominik

gesehen, die das so gewohnt waren,

Dominik

dass das halt dann immer ein Instanzattribut

Dominik

ist, was man da direkt unter die Klasse

Dominik

schreibt, dass sich das erst später

Dominik

festgestellt hat. In anderen Sprachen ist das

Johannes

ja auch so. Wenn du in Java oder C oder

Johannes

sonst wo bist, dann ist es genau so, dann sagst du,

Johannes

die Klasse soll folgende Instanzattribute

Johannes

enthalten.

Johannes

Und in Python ist es aber anders. In

Johannes

Python sagst du, die Klasse soll folgende

Johannes

Klassenattribute enthalten. Der Hauptunterschied

Jochen

zwischen Klassenattributen und Instanz

Jochen

ist halt, dass ein Klassenattribut

Jochen

ist halt für alle Instanzen der Klasse gleich.

Jochen

Und das ist halt wahrscheinlich überraschender.

Jochen

Also diese Eigenschaft ist mir auch schon

Jochen

mehrfach blöd auf die Füße gefallen.

Jochen

Aber so ist es halt.

Jochen

Genau. Da muss man vorsichtig sein.

Jochen

Gerade wenn du das setzt, irgendwo an

Dominik

einer existierenden Entität, dann wäre das

Dominik

für alle

Dominik

Gesetz? Ja, also wenn das eine Klasse ist,

Jochen

sagst du halt jetzt, schaffst

Jochen

es irgendwie, dass tatsächlich irgendwie

Jochen

ein Klassenattribut

Jochen

defaultmäßig zum Beispiel eine Liste ist.

Jochen

Also indem du das auf Ecke Klammer auf

Jochen

Klammer zu setzt oder

Jochen

so, dann... Oh, das ist jetzt

Dominik

aber ganz hässlich. Und du

Jochen

überschreibst das nicht nachher noch mal

Jochen

irgendwie in einem Konstruktor oder so,

Jochen

was ja dann oft passiert, dann ist es kein

Jochen

Problem mehr, weil in dem Moment, wo man es neu

Jochen

setzt oder so, ist es dann ein Instanzattribut

Jochen

und nicht mehr ein Klassenattribut.

Jochen

Merkt man auch nichts von, ist vielleicht ein bisschen

Jochen

gefährlich. Aber wenn das nicht passiert,

Jochen

dann passieren plötzlich wilde

Jochen

Dinge, weil dann ist das halt für alle Instanzen

Jochen

gleich. Und es funktioniert zwar,

Jochen

dass man da Sachen appendet, aber da sind dann halt

Jochen

nicht nur die Sachen, die man selber appendet hat drin, sondern

Dominik

alle anderen auch. Und das ist halt... Deswegen ist das eine Konvention,

Dominik

wie man das macht. Und zwar kann man das nennen

Dominik

Cache-irgendwas

Dominik

oder... Dann hast du

Dominik

einen Cache für alle Instanzen

Dominik

dieser Klasse. Dann kannst du damit merken, alle

Dominik

Errors, die aufgetreten sind, ever oder sowas.

Jochen

Ja, also das hat durchaus Gründe,

Jochen

weshalb man sowas haben will.

Dominik

Das ist ganz gut, aber damit kann man

Dominik

sich hart infuschen. Also tatsächlich, das

Dominik

hatten wir, glaube ich, auch schon ein paar Mal gesagt,

Dominik

dieses Instanzieren von

Dominik

leeren Dicts oder

Dominik

Listen ist in Python generell

Dominik

sehr gefährlich. Wenn man das als Default-Argument

Johannes

macht, sollte man nicht... Ja, ganz

Johannes

gefährlich, ja. Ja, und

Johannes

generell Klassen, also ich mache ja oft

Johannes

Programmierkurse und das

Johannes

ist wirklich schwierig zu verstehen, was eine

Johannes

Klasse ist und was eine Instanz von einer Klasse ist.

Johannes

Und wie die zusammenhängen

Johannes

und was die

Johannes

zusammentun und warum die das so tun.

Johannes

Und das ist echt, echt schwierig.

Johannes

Und jetzt gibt es hier eben

Johannes

genau diesen subtilen Unterschied hier.

Johannes

Das eine, das sieht genauso aus wie das andere,

Johannes

aber wenn du nicht Doppelpunkt

Johannes

int hinterschreibst, dann ist es auf einmal

Johannes

eine Klasseninstanz.

Johannes

Ja.

Johannes

Und das ist schon, das ist wirklich was

Johannes

sehr Subtiles und

Johannes

das geht eben weg von dem, was Python normalerweise

Johannes

macht. Normalerweise schreibst du in die Klasse

Johannes

die Klasseninstanzen rein und

Johannes

hier schreibst du auf einmal, wie

Johannes

in anderen Programmiersprachen, wo es sich natürlich

Johannes

anfühlt, schreibst du die Instanzeigenschaften

Johannes

rein, die Instanzattribute.

Jochen

Wobei dir dann natürlich zum Beispiel

Jochen

Dataclasses schon auch auf die Finger haut, wenn du

Jochen

da irgendwie einfach eine Liste

Jochen

hinschreibst oder so, dann sagt dir das

Jochen

so, nee, nee, das kannst du aber nicht machen. Du musst ja

Jochen

irgendwie dann Default,

Jochen

wie heißt das Ding,

Jochen

Field, Factory

Jochen

angeben, genau.

Johannes

Aber da kommt es natürlich rum.

Johannes

Es gibt ja viele

Johannes

Mutable Classes oder viele Dinge, die

Johannes

du da reintun kannst, die eben nicht. Das ist nur jetzt

Johannes

für Liste und für Dictionary und für Set

Johannes

ist es

Johannes

Special Cased, weil die so häufig

Jochen

vorkommen. Genau. Ja, also

Jochen

das ist gefährlich, das stimmt.

Jochen

Ich weiß auch nicht, wie

Jochen

ihr das so macht. Also

Jochen

normalerweise,

Jochen

also sicher, auch wenn man

Jochen

jetzt Konstrukturen hat von normalen Klassen,

Jochen

da ist es ja auch gefährlich, wenn man da

Jochen

irgendwie,

Jochen

zum Beispiel annotiert, das ist jetzt

Jochen

eine Liste und dann sagt man gleich und dann

Jochen

Ecke, Klammer auf, Klammer zu und so.

Jochen

Viele Leute denken sich wahrscheinlich nichts dabei, wenn sie das tun, aber das ist

Jochen

halt auch schon brutal gefährlich.

Dominik

Also ich mache immer Liste und dann

Dominik

gleich None.

Jochen

Das ist das Pattern, das muss man sich einfach

Johannes

merken. Das ist ein doofes Pattern, aber man muss es sich

Jochen

einfach merken. Aber das ist ja auch

Jochen

nicht so schön, weil einmal

Jochen

ist dann deine Typ-Annotation halt

Jochen

so ein bisschen, also einmal ist sie halt hässlich,

Jochen

würde ich jetzt mal so sagen, mit diesem

Jochen

Pipe None,

Jochen

das ist halt schon so, uh.

Jochen

Es gibt doch diesen schönen Unknown-Type

Jochen

hin. Der kannst du auch optional nehmen, ist auch hässlich.

Jochen

Unknown gibt es da noch

Jochen

dazu? Ja, aber Unknown, uh,

Jochen

da ist ja schon, wer kennt denn das? Annie.

Dominik

Ja, uh.

Dominik

Oder Annie. Es gab noch

Dominik

einen dritten Type-Hint, der da so ein bisschen spezieller war,

Dominik

dass das klar ist, dass das irgendwann in der Liste hängen könnte.

Jochen

Also was ich an der Stelle mache,

Jochen

also mir gefällt das alles nicht. Also okay,

Jochen

Leute machen das, aber ich finde auch,

Jochen

es funktioniert nicht richtig, wenn man jetzt

Jochen

dem statischen Typ-Checker sagt,

Jochen

das kann jetzt auch None sein, dann hat man damit

Jochen

so einen riesen, dann hat man sich

Jochen

einen riesen Haufen Würmer.

Dominik

Dann sagt er immer dann, tatsächlich irgendwann im Code

Dominik

sagt er immer, hey, du hast ja nicht auf None geprüft

Dominik

und dann lintet dir das alles, weil du musst

Dominik

vorher mal so ein Assert-is-not-None machen.

Jochen

Ja, oder noch schlimmer, also wenn es dann halt nur

Jochen

nervt, ist ja noch, was noch schlimmer

Jochen

ist, ist halt, dass Bugs dann halt

Jochen

irgendwie unerkannt, dass halt, du kannst

Jochen

plötzlich

Jochen

Illegal-State repräsentieren. Und normalerweise sagt man

Jochen

immer so, also make

Jochen

Illegal-State unrepresentable.

Jochen

Ja, das sollte gar nicht passieren dürfen.

Jochen

Der Typ-Checker sollte dir sagen, so, nee, das darf nicht None

Jochen

sein. Und du hast dieses None ja

Jochen

nur benutzt, damit du es initialisieren

Jochen

konntest. Das ist ja, hat ja gar nicht,

Jochen

wenn in deiner Logik nicht None

Jochen

vorkommen darf, was ja dann oft bei diesen

Jochen

Initialisierungsgeschichten gar nicht so ist,

Jochen

dann darf das da nicht drinstehen.

Jochen

Und wenn du es trotzdem möglich machst,

Jochen

dass es drinsteht, dann machst du halt eine Büchse

Jochen

Backwürmer auf,

Jochen

die dich irgendwann beißen werden. Und

Jochen

die Frage ist halt nur,

Jochen

warum ist das?

Jochen

Und was machst du? Oder umgekehrt,

Johannes

umgekehrt, du

Johannes

machst es wie in Java, wo jeder Typ optional ist

Johannes

und hast dann auf einmal an, in jeder

Johannes

Scheißfunktion, in die du reingehst, musst du acht

Johannes

Variablen auf Null überprüfen. Ja, das ist

Jochen

natürlich auch, genau, das ist auch hässlich. Also insofern wird es dann,

Jochen

nee, also ich würde sagen,

Jochen

aus der Perspektive betrachtet, musst du eigentlich

Jochen

sagen, nee, das darf nicht None sein

Jochen

dürfen und nicht optional sein dürfen. Die

Jochen

allermeisten Sachen, die man so hat,

Jochen

die sind nicht optional.

Johannes

Also du würdest sagen, es ist eine leere Liste und wenn da eine

Johannes

leere Liste reinkommt, musst du es neu initialisieren.

Jochen

Das kannst du, das kann, ja,

Jochen

ja, das war da auch wieder verwirrend.

Jochen

Nee, kannst du ja auch

Jochen

nicht gut machen. Nee, was ich an der Stelle

Jochen

mache, ist, ich nehme ein, das ist ein

Jochen

Trick von. Oh, eine Sentinel. Eine Sentinel. Ja,

Jochen

genau, von Luke Plant

Jochen

hat er das, da habe ich das her. Ja.

Jochen

Und zwar definiere ich mir

Jochen

einen Typ namens Auto

Jochen

und der ist

Jochen

definiert über eine Klasse

Jochen

unterstrich Auto und das

Jochen

Ding, es macht nichts, außer

Jochen

dass es nach,

Jochen

äh, Falls

Jochen

evaluiert und

Jochen

ähm, äh, in

Jochen

In Kindern dann.

Dominik

Auto, Auto, Auto, Auto, Auto.

Jochen

Und den Typ Any hat.

Jochen

Und dann musst du nicht oder irgendwas sagen,

Jochen

sondern Any geht halt überall durch.

Jochen

Das heißt, wenn du mal eine Auto hinschreibst,

Jochen

dann kann man die Typ-Annotation richtig lassen

Jochen

und Auto geht halt trotzdem durch.

Jochen

Aber Any geht überall durch, das ist doch falsch.

Jochen

Nee, aber das ist so.

Jochen

Aber das ist falsch.

Jochen

Dadurch, dass Auto Any hat,

Jochen

ist es egal, welche Typ-Annotation du vorher dran geschrieben hast,

Jochen

ist es richtig.

Jochen

Das ist übrigens PEP 696, oder?

Jochen

Das weiß ich nicht.

Jochen

Ich kenne die nicht auswendig.

Jochen

Wie, du kennst nicht alle PEPs auswendig?

Johannes

Ja, Entschuldigung.

Johannes

Schwer enttäuscht.

Jochen

Und dann kannst du halt in dem Kurzdruck zum Beispiel dann halt sagen,

Jochen

if das Ding oder if not das Ding,

Jochen

dann machst du, das kannst du ja mit none auch nicht machen.

Jochen

Bei none musst du in Cocktailweise immer sagen,

Jochen

if das da ist none, dann setzt es neu.

Jochen

Und ja, also.

Jochen

Ja, okay, aber wie würdest du das,

Johannes

wie würdest du das mit dem Auto machen?

Johannes

Das habe ich jetzt nicht verstanden.

Jochen

Eine eigene Klasse Auto.

Jochen

Es ist halt Auto.

Jochen

Ja.

Jochen

Und, also das importiere ich dann irgendwo her.

Jochen

Und, also der Default-Wert ist Auto.

Jochen

Die Annotation ist so, wie sie halt sein soll.

Jochen

Also zum Beispiel.

Jochen

Ja, okay, und dann?

Jochen

Und dann sage ich, if das Ding, if not das Ding,

Jochen

dann setzt es neu.

Johannes

Okay, aber wenn jemand eine leere Liste reingeben würde,

Johannes

würdest du es dann auch neu setzen?

Dominik

Also der Unterschied ist tatsächlich nur,

Dominik

dass er halt none sparen kann.

Jochen

Aber dann würde ja,

Jochen

wenn das, wenn das halt nicht okay wäre,

Jochen

dann würde ja der Type-Checker meckern.

Johannes

Also du hast halt nicht,

Johannes

wenn das Ding ist none.

Johannes

Nee, du hast einen semantischen Unterschied eingeführt.

Dominik

Ja, if not, schreibst halt nicht,

Dominik

if not foo, dann, also ne,

Dominik

du schreibst if not foo,

Dominik

dann foo neu setzen, oder ne,

Dominik

weil das halt Auto ist immer fault,

Dominik

sagst nicht, foo ist none,

Dominik

weil dann sparst du halt einfach das none,

Dominik

sondern.

Jochen

Genau, ich spare mir das none

Jochen

und ich spare mir die ist-Geschichte

Jochen

und ich mache es halt so,

Jochen

wie es Leute mit none machen.

Johannes

Wobei die ist-Geschichte könntest du ja,

Jochen

du könntest ja immer noch fx-is-auto machen.

Johannes

Das könnte ich auch machen, ja.

Johannes

Ich würde tatsächlich sogar sagen,

Johannes

du musst das machen,

Johannes

weil, nehmen wir mal an,

Johannes

ich rufe diese Funktion,

Johannes

die du mir gerade eben gesagt hast,

Johannes

oder diesen Konstruktor,

Johannes

rufe ich auf mit dem Parameter

Johannes

und der Parameter ist eine leere Liste.

Johannes

Und ich behalte die aber außen vor

Johannes

und benutze die an einer anderen Stelle nochmal.

Johannes

Das heißt, ich pende da Sachen rein

Johannes

und das hast du jetzt genau den Use-Case,

Johannes

den Python so gefährlich macht,

Johannes

den hast du jetzt kaputt gemacht.

Johannes

Und jetzt überlassen wir jetzt,

Johannes

wir starten jetzt eine Umfrage.

Johannes

Schreiben Sie uns an

Johannes

hallo.python-podcast.de

Johannes

ob das gut oder schlecht ist.

Johannes

Schlecht?

Johannes

Hä? Ja, genau.

Jochen

Also ich bin auch noch nicht endgültig zufrieden.

Jochen

Ich halte mich zurück,

Jochen

damit die Hörer was sagen können.

Jochen

Aber also ich mache es halt jetzt gerade so,

Jochen

ich leide dann auch mal ein bisschen drunter,

Jochen

dass zum Beispiel LLMs,

Jochen

die halt das gewohnt sind,

Jochen

dass Leute da none oder none schreiben,

Jochen

denn die sind immer total verwirrt.

Jochen

So, was will der denn da jetzt?

Jochen

Und dann sagt er mir schon wieder,

Jochen

ich soll dieses Auto verwenden.

Jochen

Hä?

Jochen

Ich verstehe nur Bahnhof.

Jochen

Machen sie irgendwie komische Sachen.

Jochen

Und ja, ja, gut,

Jochen

ich schreibe das dann auch immer

Jochen

in die entsprechenden Rules mit rein,

Jochen

aber es hilft ja auch nur so begrenzt.

Jochen

Es ist ein Kreuz, ich weiß auch nicht.

Johannes

Der Code ist einfach zu wenig standardkonform.

Johannes

Der ist zu wenig gewöhnlich.

Dominik

Kann man den ja noch lesen,

Dominik

wenn er über ein Auto steht,

Dominik

weiß jeder, was gemeint ist?

Jochen

Nee, das wissen Leute dann halt dummerweise auch nicht,

Jochen

das wäre auch schon passiert.

Jochen

Wenn das das LLM schon nicht weiß.

Jochen

Ja, genau.

Johannes

Okay, aber das Kapitel macht ja jetzt noch eine zweite Abbiegung,

Johannes

der Dominik hat es ja schon erwähnt,

Johannes

und zwar Richtung Pattern-Matching-Class-Instances.

Johannes

Auf einmal kommt hier in dem Kapitel noch Pattern-Matching.

Johannes

Hooray.

Johannes

Was?

Johannes

Ist doch schön, Pattern-Matching, oder?

Johannes

Das ist ja ein zweiter Twist in the end.

Johannes

Ja.

Johannes

Da war ich ja überhaupt gar nicht drauf vorbereitet.

Johannes

Dominik, warum magst du Pattern-Matching?

Johannes

Erklär mal.

Dominik

Weil ich damit relativ verschiedene,

Dominik

das ist erst blöd, weil das mag man eigentlich nicht.

Dominik

Also ich kann verschiedene Objekte entgegennehmen

Dominik

und die checken und dann gucken.

Dominik

Okay, und wie geht das? Erklär mal, wie das geht.

Dominik

Du machst ein Match und ein Case auf,

Dominik

matchst dann deine Variable, die du hast

Dominik

und gibst dann verschiedene Cases.

Dominik

Also da hättest du gerne, irgendwas ist,

Dominik

schwieriges Beispiel,

Dominik

so eine Koordinate.

Dominik

Dann gibst du rein, dass das eine Koordinate sein könnte

Dominik

und dann hat der tatsächlich den Pfad,

Dominik

okay, hier ist eine Koordinate.

Dominik

Und wenn du danach zum Beispiel sagst,

Dominik

das ist eine Straßenadresse,

Dominik

dann,

Dominik

guck dir, okay, hier ist eine Straßenadresse,

Dominik

passt da rein und gehst weiter.

Dominik

Und du kannst da bestimmte Attribute omitten,

Dominik

indem du die einfach auf dann setzt,

Dominik

falls das verständlich ausgerichtet ist.

Dominik

Und kannst damit relativ schön Cases abfangen

Dominik

und hast dann irgendwann einen Standard-Case.

Dominik

Also so ein bisschen so if, then,

Dominik

if, elif, elif, elif,

Dominik

in, gut lesbar finde ich.

Dominik

Also ich mag das sehr gerne.

Dominik

Du kannst auch Types machen

Dominik

und kannst Guards machen

Dominik

und sowas.

Johannes

Ja, man kann ja sehr viele Sachen.

Johannes

Ich glaube, das ist für

Johannes

den fast eine eigene Episode.

Jochen

Da muss man eine eigene Episode zu machen.

Jochen

Haben wir noch nicht gemacht.

Jochen

Haben wir auch schon häufiger geplant.

Jochen

Aber ja, genau, das müssen wir mal machen.

Jochen

Man kann auch da,

Jochen

ich finde, ja,

Jochen

also es ist super mächtig.

Jochen

Ich brauche es ehrlich gesagt nicht so oft.

Jochen

Ja, das ist,

Johannes

ich bin ein großer Fan davon.

Johannes

Ich finde es großartig.

Johannes

Das ist eines der besten Language-Features,

Johannes

was es gibt.

Johannes

Aber ich habe es noch nie verwendet.

Johannes

Ja.

Jochen

Das ist ganz komisch.

Jochen

Also ich meine,

Jochen

ich glaube, das ist halt auch für Leute,

Jochen

die jetzt oft Parser

Jochen

für irgendwelche Sachen schreiben oder so.

Jochen

Oder halt so Domain-Specific-Languages

Jochen

für irgendwas haben.

Jochen

Die brauchen das wahrscheinlich oft.

Jochen

Aber das mache ich halt nicht so oft.

Johannes

Also das erste Mal

Johannes

habe ich Pattern-Matching gesehen.

Johannes

Da war ich noch ein junger Mann

Johannes

damals und das war in Erlangen.

Jochen

Ah, ja, ja, ja, gut.

Johannes

Und da ist es ja ein

Johannes

Core-Language-Feature.

Johannes

Da ist es ja so ein, ja, hier, da hast du eine Funktion.

Johannes

Und natürlich, das erste, was die Funktion macht,

Johannes

ist immer erst mal Pattern-Matching.

Johannes

Und die

Johannes

benutzen das für alles. Ja, wenn du hier ein None reinkriegst,

Johannes

ja, klar, dann geht die Funktion.

Johannes

Wenn das Pattern hier ein None ist, dann musst du erst mal

Johannes

das und das und jedes Mal.

Johannes

Und da ist es ja nicht, da geht es nicht so sehr um

Johannes

Parser, sondern da geht es ja schon irgendwie

Johannes

auch um Schnittstellen und um Datenaustausch.

Johannes

Und ich habe in meinem Kopf

Johannes

schon immer den Gedanken,

Johannes

dass man, wenn ich eine Schnittstelle schreibe,

Johannes

dass ich da irgendwie so ein

Johannes

Pattern-Matching reinmachen könnte.

Johannes

Aber irgendwie hat es noch nie so

Johannes

richtig gut gepasst.

Johannes

Ja.

Jochen

Weiß auch nicht. Ich weiß, ich weiß auch nicht.

Dominik

Ich weiß auch nicht. Kann man verschiedene Exception-Types

Dominik

gucken oder, ja.

Johannes

Ja, aber die fange ich doch in dem Accept,

Johannes

in den Accept-Blocks schon ab, die verschiedenen

Johannes

Exception-Types. Da gibt es doch schon Syntax für.

Johannes

Und für die verschiedenen Instanz-Typen

Johannes

muss ich eher irgendwie

Johannes

in Funktionen reinverzweigen.

Johannes

Und, ach, ich weiß irgendwie nicht,

Johannes

ich würde es gerne mehr benutzen. Ich weiß nicht, ob das

Johannes

ein Problem an mir ist

Johannes

oder ob das ein Problem an...

Jochen

Also ein Problem

Jochen

war eine ganze Zeit lang auch,

Jochen

also jedenfalls, als das Feature total frisch war, für mich

Jochen

jedenfalls auch, dass ich mir gesagt habe,

Jochen

ich muss ein bisschen vorsichtig sein, dass ich das jetzt

Jochen

nicht irgendwie mich zu sehr darauf verlasse, dass es

Jochen

das gibt, weil es ist ja noch ganz neu

Jochen

und viele verwenden halt noch ältere Python-Versionen.

Jochen

Und vermutlich super langsam.

Jochen

Ja, genau, aber

Jochen

das ist ja jetzt inzwischen,

Jochen

ist ja jetzt so, 3.10 ist ja jetzt schon die

Jochen

älteste Version, die man so, mit der man normalerweise

Jochen

so zu tun hat.

Jochen

Nee, 3.10, also

Johannes

3.10 meinst du nicht?

Jochen

Genau, nicht 3.10, meinte ich nicht.

Johannes

3.10, genau. Ja, 3.10, ja, das ist,

Jochen

würde ich sagen, ja. Und da ist es ja

Jochen

dazugekommen, also insofern würde ich sagen, jetzt ist

Jochen

sicher, dass man es eigentlich immer verwenden kann.

Jochen

Insofern, ja,

Jochen

muss man mal gucken, ob es da nicht doch mehr Use Cases gibt,

Jochen

als man so denkt. Aber es ist auch

Jochen

fiese Syntax, also ich habe mir dazu auch schon ein paar

Jochen

Vorträge angeguckt und man kann

Jochen

sich auch da wieder leicht in den Fuß schießen.

Dominik

Ja, was nicht so ganz so interessant ist, ist, dass wenn man so

Dominik

die Bild in Typen nimmt, ne, so man

Dominik

sagt irgendwie match unknown und dann machst du

Dominik

eine Case List

Dominik

or Tuple und wenn man die dann

Dominik

nicht instanziiert mit den Klammern,

Dominik

dann ist es immer true. Dann ist es kacke, weil es

Dominik

always true ist, weil der nach der Funktion

Dominik

guckt und nicht guckt, ob es ein List oder ein Tuple ist.

Dominik

Genau.

Dominik

Ja, dann kann man sich auch mit den Fuß schießen.

Jochen

Ja, und das ist der Default

Jochen

Fall auch immer irgendwie,

Jochen

wenn nichts anderes gefunden wird, ist auch irgendwie

Jochen

etwas, was halt in anderen Sprachen anders

Jochen

ist und, äh, ja, es gibt ja schon so

Jochen

ein paar Falschstricke, also

Jochen

naja.

Jochen

Und dass man den am besten immer handeln sollte, genau,

Jochen

in Python, dass man... Ja,

Johannes

aber das ist doch auch nervig. Ja, gut, aber

Dominik

das ist ja klassische Programmierung, dass man

Dominik

immer das else für alles,

Dominik

was man nicht erwartet, schreibt.

Dominik

Na, nicht falsch.

Johannes

Wenn man das else weglassen kann, dann lässt man es weg.

Johannes

Tja.

Johannes

Je mehr man weglassen kann, umso mehr

Johannes

kann man weglassen, das ist doch viel besser.

Dominik

Eigentlich schon.

Johannes

Ja, und dann ist das Kapitel auch schon vorbei,

Johannes

dann kommt nur noch hier so ein bisschen... Also else

Dominik

makes the universe explode.

Dominik

Also,

Dominik

immer wenn der else-Case einschickt, dann alles abreißen,

Dominik

alles vernichten.

Dominik

Ist das, äh, ist das

Johannes

Quantum-Sort, ja?

Johannes

Kennt ihr den, kennt ihr den Quantum-Sort-

Johannes

Algorithmus? Der ist ein O von 1, äh,

Johannes

Sortier-Algorithmus.

Johannes

Aha. Du machst eine

Johannes

zufällige Permutation von deinem

Johannes

Input und guckst, ob

Johannes

sie sortiert ist und wenn sie nicht sortiert ist,

Johannes

zerstörst du das Universum.

Johannes

Ja. Und

Johannes

das in dem Universum, in dem sortiert

Johannes

bist, ist, dass da bist du immer

Johannes

überrascht.

Johannes

Überlebst du immer.

Johannes

Schneller? Geht nicht mehr.

Johannes

Also, es, dieses Kapitel macht

Johannes

mehrere interessante Wendungen und

Johannes

und es schneidet einige,

Johannes

einige Sachen an,

Johannes

die, die interessant sind,

Johannes

die aber so ein bisschen über Data

Johannes

Classes hinausgehen.

Jochen

Ja. Es, ich muss ja, ich muss ja

Dominik

sagen... Macht ihr denn lieber in Data

Dominik

Classes oder lieber in M-Tupels?

Dominik

Lieber Data Classes. Ja, ich auch. Lieber

Jochen

Data Classes. Ich weiß jetzt gar nicht so genau, warum.

Johannes

Ja, weil

Johannes

das ist, weil das gutes Marketing hat.

Johannes

Es steht auch hier

Johannes

in dem, also hier im Abschnitt Further Reading,

Johannes

da sind natürlich viele Verweise dann drin

Johannes

und da steht auch drin hier

Johannes

bei der PyCon US 2018,

Johannes

da gibt es einen Talk von Raymond Hettinger,

Johannes

den auch wir

Johannes

alle schon gesehen haben und ich gehe davon aus,

Johannes

dass die Hörer den auch alle gesehen haben, der heißt

Johannes

Data Classes, the Code Generator to End All Code

Johannes

Generators und das

Johannes

hört sich ja schon sehr hochtrabend an,

Johannes

und ich muss sagen, ich habe mir

Johannes

den Talk angeguckt und ich habe danach Data Classes

Johannes

verwendet und das war gar nicht so

Johannes

beeindruckend.

Johannes

Ja. Es ist irgendwie

Johannes

gar nicht so viel, was einem das macht,

Johannes

was einem das gibt.

Dominik

Ja, ja. Deswegen auch direkt M-Tupel,

Johannes

ist ein Tupel. Ja, also ich...

Johannes

Man darf da gar nicht so viel

Johannes

drauf geben, da werden viele

Johannes

Worte darüber gesagt und

Johannes

es wird viel darüber gesprochen, aber es ist eigentlich

Johannes

was total Simples und was total

Johannes

Kleines und Nettes und Einfaches und

Johannes

das, ja.

Jochen

Ja, also es gibt halt so Anwendungsfälle,

Jochen

da verwende ich es halt sehr gerne für. Also zum Beispiel eben

Jochen

in so, so für, also wenn man

Jochen

jetzt halt so Event-Driven

Jochen

Architecture hat, dann für die Events und

Jochen

Commands, da sind Data Classes halt

Jochen

super. Genau.

Jochen

Für alle Arten von Value

Jochen

Objects, wo man halt

Jochen

nichts drauf gibt, was das denn konkret für ein

Jochen

Objekt ist, wo einem nur der Wert von irgendwelchen

Jochen

Dingen interessiert, da ist das total super.

Jochen

Und für alles andere nehme ich

Jochen

normale Klassen. Also, genau.

Jochen

Das ist so mein Daumenriegel für

Jochen

ja, diesen Kram. Und

Jochen

ja, ich glaube, in allen Fällen, wo ich Data Class verwende,

Jochen

könnte ich wahrscheinlich auch einen Tupel verwenden, aber

Johannes

ja. Ja, aber es ist

Johannes

schon bequemer, dass man die Namen schreiben kann,

Johannes

das ist schon, das ist schon cool.

Dominik

Ja. Das kannst du bei einem Tupel auch.

Johannes

Ja, genau, aber dann, also kannst du nicht ein

Johannes

normales Tupel nehmen. Nee, nee, aber ein Named Tupel

Dominik

ist doch schon, also ich benutze fast

Dominik

kein, ich würde glaube ich fast nie

Dominik

ein normales Tupel nehmen.

Dominik

Sondern statt einem normalen Tupel immer

Dominik

ein Named Tupel, weil ich gerne die Namen verwende und ich

Dominik

mag Indizes nicht so.

Johannes

Ja, okay.

Johannes

Ich verwende Tupel sehr häufig.

Jochen

Ja, ich würde so implizit

Jochen

für Multiple Return values. Genau, beim

Johannes

Zurückgeben von irgendwelchen Sachen ist es halt ja

Johannes

automatisch so. Aber da benutzt du ja auch den Index nicht, da benutzt

Johannes

du ja Unpacking und dann ist ja schon diese Tupel,

Johannes

ist dieses Tupel so ein bisschen unsichtbar.

Johannes

Da willst du ja dann nicht ein Named Tupel verwenden, ja.

Dominik

Ja doch, also warum nicht? Als Returnwert ein Named Tupel, dann hast du

Dominik

schon Type Annotation und kannst danach auf die Attribute

Dominik

des Dings wieder zugreifen. Ach, viel zu viel Arbeit.

Johannes

Ja. Viel zu viel Arbeit.

Johannes

Einfach zwei Werte zurückgeben, zack.

Dominik

Zack, zack.

Johannes

Dies und jenes.

Dominik

Dies und jenes wird dann vielleicht auch das und dafür wird ein Match Case

Dominik

wieder gut.

Dominik

Ja, sorry.

Dominik

Ich glaube, wir haben das Kapitel besprochen, oder?

Johannes

Wir müssen mal Beispiele sehen. Wollt ihr noch was erzählen?

Jochen

Also, genau. Was wir noch tun könnten

Jochen

ist irgendwie, wir machen noch Picks

Jochen

und ich weiß nicht, ob

Jochen

irgendjemand anders anfangen möchte?

Jochen

Ja, ja, mach doch mal.

Johannes

Okay, also. Das ist doch was Gutes.

Jochen

Also, was ich gerne picken würde und

Jochen

ja, ich weiß nicht, ob die so viele

Jochen

Hater haben wir gar nicht, aber das wäre ein guter

Jochen

Hook für die Hater.

Dominik

Wir hätten erst einmal einen, wenn ich mich aktiv verändere.

Jochen

Und zwar,

Jochen

was mir momentan tatsächlich...

Dominik

Nachts um halb drei mit einem Ton, da war ich auch schon vor.

Jochen

Ja, aber, also, was mir

Jochen

tatsächlich momentan richtig viel Spaß macht, ist

Jochen

ein Tool von Anthropic

Jochen

und zwar heißt das

Jochen

Claude Coot und

Jochen

das ist quasi so ein

Jochen

LLM-basierter

Jochen

Kommando-Teil...

Jochen

Dein neuer Pack Engine.

Jochen

Ja, weil, ne, genau.

Jochen

Ja, was ist ein Agent?

Jochen

Ja, schwierig, aber...

Jochen

Was ist ein Agent?

Jochen

Ja, also, das Ding ist einfach nur,

Jochen

es ist halt ein LLM und es

Jochen

läuft in einer Schleife und macht halt

Jochen

Dinge und

Jochen

das funktioniert, also, ich will

Jochen

jetzt gar nicht so definieren, was das ist.

Dominik

Und hast du Claude schon einen Rutschgriff auf deinen Rechner gegeben?

Jochen

Das mache ich nicht, aber

Jochen

in Projekten, wo ich weiß, wenn das

Jochen

committed ist oder gepusht, dann kann das

Jochen

halt auch weglöschen, ist nicht so schlimm.

Dominik

Ja, gib dir doch mal eins, weißt du,

Dominik

im Server, da kannst du dich austoben, ein bisschen Budget

Dominik

dafür.

Dominik

Ich habe mal gefragt, also auch Claude,

Dominik

ob

Dominik

das jetzt eigentlich mich ersetzt

Dominik

oder ist das, ne, was ist das

Dominik

so für eine Beziehung?

Dominik

Muss ich Angst haben oder augmentiert

Dominik

mich das eher oder sowas? Und Claude meinte dann so,

Dominik

hey, ist eher so eine Bromance.

Jochen

Ja, okay.

Johannes

Das glaube ich bei dir, Dominik, das glaube ich

Johannes

bei dir.

Johannes

I agree.

Johannes

Die Bromance zwischen dir und

Johannes

Kai.

Jochen

Aber also ich würde es einfach mal,

Jochen

man kann das nicht gut beschreiben, man muss das mal ausprobieren

Jochen

und da ist das eigentlich schon sehr

Jochen

cool. Also ich benutze das jetzt

Jochen

in letzter Zeit super häufig

Jochen

und das hat mir schon echt viel

Dominik

untertrieben, weißt du, wenn du jochen beim Arbeiten

Dominik

zu guckst, dann schlägst du die ganze

Dominik

Zeit gut drauf und dann so, nö,

Jochen

ja, doch, vielleicht, ach, mach noch mal

Jochen

so. Ja, aber das

Jochen

ist auch schon wichtig, also ich gucke schon noch drauf

Jochen

und ich... Also das heißt, das

Jochen

drauf gucken ist das, was dich vom Vibe unterscheidet,

Jochen

das heißt, das ist das, was dich vom Vibe unterscheidet,

Jochen

das ist das dann? Ja, ja, nee, das ist nicht Vibe-Coding, was ich,

Jochen

also ich nenne das manchmal

Jochen

bosnacherweise Vibe-Coding, um die

Jochen

Leute, um die Leute zu ärgern,

Jochen

die... Keine Sorge,

Jochen

das ist nicht Vibe-Coding, das warst du.

Dominik

Ja, es gibt ja zwei Menschen, glaube ich, die sich mit dem Begriff Vibe-Coding

Dominik

so ein bisschen schwer tun. Simon zum Beispiel

Dominik

sagt, das wäre gar nicht gut, weil

Dominik

der Begriff total blöd ist, weil der

Dominik

davon abdenkt, dass das total anstrengend ist.

Jochen

Das war mal gut definiert und zwar als

Jochen

Vibe-Coding ist halt dann, wenn der,

Jochen

das Ergebnis und der Code egal sind

Jochen

und du halt nur sozusagen

Jochen

basierend auf dem Vibe

Jochen

sozusagen den Kram baust.

Johannes

Ja, okay, das habe ich abgelesen, dass der Simon Wilson das nicht mag,

Johannes

weil jemand anders sein Wort verwendet

Johannes

hat, was nicht so ist, wie er es haben möchte.

Johannes

Ist doch auch Old Man, der hat es geklaut.

Jochen

Ja, aber er hat schon recht, also das war

Jochen

ursprünglich mal so definiert und jetzt benutzen

Jochen

es halt alle irgendwie anders und das ist natürlich schon ein bisschen

Jochen

doof, aber... Egal, jedes Wort

Jochen

ist irgendwie mal anders definiert.

Jochen

Ja, aber es gibt in dem Bereich halt schon so viele Worte,

Jochen

die halt ihre Bedeutung verloren haben, dass

Jochen

jetzt so das... Ja, okay.

Jochen

Naja gut, ist auch wurscht, kann man

Jochen

auch nicht mehr sagen.

Jochen

Ja, zurückholen.

Jochen

Meinetwegen ist es auch Vibe-Coding, aber

Jochen

es ist tatsächlich so, dass ich damit halt

Jochen

viele

Jochen

Dinge irgendwie jetzt so machen kann, die

Jochen

vorher mühselig waren und jetzt sind sie halt nicht mehr so mühselig

Jochen

und auch

Jochen

quasi das über Copy-Paste

Jochen

oder halt über Cursor

Jochen

oder sonst wie Copilot

Jochen

kann man das ja auch machen. Das hat auch schon alles ganz gut

Jochen

funktioniert, aber Cloud Code ist tatsächlich

Jochen

für mich nochmal eine deutliche Verbesserung.

Jochen

Also das ist halt, macht alles nochmal deutlich angenehmer.

Jochen

Das ist schon mega gut.

Dominik

Aber da möchte ich tatsächlich

Dominik

für alle, die es noch nicht kennen, die meisten kennen es

Dominik

wahrscheinlich, mein Pick machen.

Dominik

Und zwar ist das tatsächlich

Dominik

wie in einem Ausschuss, weiß ich nicht,

Dominik

NITN?

Dominik

Ich finde

Dominik

normalerweise so Logo-Sachen ziemlich

Dominik

schlecht und schwachsinnig und scheiße, aber das

Dominik

Ding ist erschreckend gut.

Dominik

In Business-Prozessen

Dominik

direkt anbinden an der Postgres, an

Dominik

SAP, an was auch immer du gerade brauchst.

Dominik

Und du kannst es dir so zusammenklicken.

Dominik

Du machst da einen Telegram-Channel dazu,

Dominik

und dein Discord, und hast einen Bot, und

Dominik

ziehst da so zwei Lines irgendwie zusammen,

Dominik

und machst dann noch einen Prompt dahin, und setzt

Dominik

dann da noch eine Nachfrage

Dominik

für das Ergebnis vom Prompt, passt das dann in

Dominik

JSON, kannst einen kleinen Python-Schnipsel reinbauen.

Dominik

Ja.

Dominik

Also wenn ich Low-Code mir überlegen würde, würde ich das

Dominik

wahrscheinlich auch so machen.

Dominik

Ich würde sagen, das ist sehr gefährlich

Dominik

für unsere Profession auch.

Dominik

Also weil, ich kann jetzt jeder

Dominik

Marketeer hinsetzen und sagen, hey,

Dominik

ich bin Coder, und

Dominik

macht sich miteinander so einen Business-Prozess, wo man

Dominik

vorher halt gut bezahlte Software-Ingenieure für braucht.

Dominik

Das ist schon so ein bisschen

Dominik

schon nicht schlecht.

Dominik

Also, da sind wir wieder bei

Dominik

dem Pick, den ich eben schon

Dominik

gespoilert habe, den der Johannes verraten wollte.

Johannes

Nee, das ist nicht mein Pick.

Johannes

Gut, dass das nicht dein Pick war.

Dominik

Aber das macht's

Dominik

ja schon so ein bisschen. Das ist,

Dominik

ja,

Dominik

erzeugt halt viel Zeugs, viel Code,

Dominik

den man halt kaputt machen kann.

Dominik

Oder halt auch nicht, ne?

Dominik

Oder ist der kaputt? Wen braucht man dafür?

Dominik

Die richtigen Ingenieure wie uns,

Dominik

um das hier zu reparieren? Oder schafft

Dominik

das dann Cloud Code selber?

Dominik

Naja, also ich meine, für den

Jochen

Anwendungsfall, dass du halt überhaupt erst mal

Jochen

irgendwie rausfinden willst,

Jochen

ob das etwas ist, was du gebrauchen kannst oder

Jochen

nicht, dafür ist das wahrscheinlich

Dominik

schon nicht so schlecht. Nein, aber das ist

Dominik

ein Irrtum. Es geht nicht nur darum, rauszufinden,

Dominik

was ist das, was du willst. Weil das ist

Dominik

genau das, was die, ich sag mal,

Dominik

mediocre

Dominik

Devs immer schon verkauft haben.

Dominik

Irgendein Scheiß, der gerade so

Dominik

auskommt.

Dominik

Der so aussieht, als würde er funktionieren und

Dominik

nach zweimal Gegenpusten zusammenbricht. Und das ist

Dominik

kein Unterschied mehr zu dem, was du dir einfach da

Dominik

viben kannst. Und das ist das, mit dem die

Dominik

meisten Leute irgendwie in der Branche irgendwie

Dominik

ihren Umsatz gemacht haben. Und das ist jetzt einfach quasi

Dominik

obsolet.

Dominik

Oder was war ein, der das so gespeichert hat?

Jochen

Du bist ja immer noch dann abhängig auch da von dem

Jochen

Service und so. Also, naja.

Dominik

For business leaders, ne?

Dominik

Un-fuck-it-a-eye.

Dominik

How did you find us? My therapist recommended you.

Dominik

Are you very sorry? Yes, no, fuck you.

Dominik

Genau.

Jochen

Ja, also, ich muss, ich

Jochen

stimme zu, dass das halt von den ganzen

Jochen

Dingern, die es da draußen gibt, halt tatsächlich irgendwie

Jochen

gut gemacht ist. Ich persönlich, für mich hat das

Jochen

nicht so Appeal, weil ich denke mir so, ja gut, ich schreibe halt

Jochen

Python, das macht für mich

Jochen

jetzt mehr Aufwand. Ich kann schon programmieren,

Jochen

ich brauch das nicht. Ja gut, aber so eine

Dominik

Postcast-Schnittstelle mit zwei Klicks, ne?

Jochen

Ja, aber, also,

Jochen

ist für mich jetzt nicht so ein Aufwand, aber

Jochen

ja, gut.

Jochen

Wir werden sehen. Vielleicht, ja, keine Ahnung.

Jochen

Mein Pick geht in

Jochen

eine ganz andere Richtung.

Johannes

In Intercode. Ich

Johannes

picke Unregistry.

Johannes

Ich bin ja ein Docker-Anhänger

Johannes

und ein Problem, was man aber hat

Johannes

mit Docker-Containern, ist, dass wenn man

Johannes

die lokal gebaut hat,

Johannes

auf seine Entwicklungsmaschine, dann muss man

Johannes

die irgendwo hin tun, damit die deploybar

Johannes

werden.

Johannes

Wenn ich die auf meinem Produktionsserver dann ausrollen möchte,

Johannes

dann müssen die irgendwo sein.

Johannes

Dieses irgendwo heißt normalerweise Registry.

Johannes

Ja, Docker-Hub kannst du nehmen, wenn du

Johannes

Open-Source machst, wenn du keine Geheimnisse

Johannes

hast, wenn du alle deine

Johannes

Sachen offenlegen willst auf der Welt.

Johannes

Ansonsten ist es eine Artifactory oder so.

Johannes

Artifactory, Nexus

Johannes

oder in die Amazon,

Johannes

in so eine

Johannes

private Registry für Amazon.

Johannes

Aber jetzt gibt es hier ein Projekt,

Johannes

das heißt Unregistry.

Johannes

Und damit kann ich

Johannes

direkt von meiner Maschine auf

Johannes

die Server-Maschine

Johannes

ein Image

Johannes

pushen, ohne

Johannes

über eine Registry zu gehen.

Johannes

Der Trick ist,

Johannes

also das geht natürlich manuell auch, ich kann natürlich manuell

Johannes

dieses Docker-Image exportieren

Johannes

und kann es zippen und

Johannes

dann per SCP rüberkopieren und so weiter.

Johannes

Aber das ist zum einen nervig und

Johannes

es ist auch langsam, weil jedes Mal das komplette

Johannes

Image übertragen werden muss und nicht nur die Schichten,

Johannes

die man neu braucht.

Johannes

Und das macht Unregistry einfach alles

Johannes

im Hintergrund. Das heißt, der Trick ist, das

Johannes

tut so, als ob es eine Registry wäre

Johannes

und wenn du sagst, hier push mal auf den Server,

Johannes

dann macht es dort einfach kurz eine Registry auf,

Johannes

dann pushst du dahin und dann ist es bei

Johannes

dem Server, bei dem

Johannes

Produktions-Server

Johannes

einfach in den

Johannes

lokalen Images drin. Und das ist

Johannes

großartig, weil das macht viele

Johannes

Deployment-Prozesse einfach super viel einfacher.

Dominik

Du musst dann aber nicht

Dominik

History und so was

Dominik

hast du dann halt weg, ne?

Johannes

Wie meinst du History? Hast du bei Docker-Containern

Johannes

nie. Na doch.

Johannes

Das zu, hast

Johannes

die, jeder Tag, den

Johannes

du pushst, ist dort.

Johannes

Also du hast kein zentrales

Johannes

Repo mehr und das ist genau das, was du möchtest.

Johannes

Okay. Wenn du, wenn du

Johannes

dir Sachen aufbewahren möchtest, dann brauchst du

Johannes

eine Registry, ja. Ja. Achso.

Jochen

Achso, wenn du, achso meinst du History von

Johannes

Images. Ja. Ja, okay, das, ja.

Johannes

Ne, das ist ja eben

Johannes

Unregistry. Ja, ja, ja. Das hast du jetzt nicht mehr.

Johannes

Und das will ich auch in ganz vielen Fällen einfach

Dominik

nicht haben. Ja, ist eben meistens noch Müll und Ballast

Johannes

der Stromverbrauch. Ich hab immer nur Latest. Es gibt nur

Johannes

Latest.

Dominik

Aber wenn du was kaputt gemacht hast,

Dominik

Jonas, da musst du ja dann wieder zurück, anstatt

Dominik

dass du vorwärts gehst. Ja,

Johannes

war gut, aber das hab ich dann noch lokal.

Johannes

Na gut.

Johannes

YOLO, YOLO Driven

Johannes

Development.

Dominik

YOLO Vibe. Ja.

Dominik

Danke fürs Zuhören.

Dominik

Das war etwas ganz anderes. Kommt zum

Dominik

Hörer-Treffen vorbei und wir

Dominik

freuen uns auf euch hier.

Dominik

Wann war das gleich noch? Ja, Ende

Dominik

August, Ende September.

Dominik

We are discussing that in another

Dominik

episode. Okay.

Dominik

Und machen wir es. Ja, dann bleibt uns

Dominik

gewogen. Hallo at peisenpodcast.de.

Dominik

Dankeschön und bis bald.

Dominik

Macht's gut.