WEBVTT

00:00:00.000 --> 00:00:03.620
Hallo, liebe Hörerinnen und Hörer, willkommen im Python-Podcast, Episode 66.

00:00:03.620 --> 00:00:08.200
Heute quatschen wir über das nächste Kapitel im Fluent Python-Buch,

00:00:08.200 --> 00:00:14.220
falls euch das interessiert, über Dataclasses und warum das riecht oder nicht,

00:00:14.220 --> 00:00:18.280
oder was Cooles und wer das sonst so ist mit Sachen.

00:00:18.280 --> 00:00:19.140
Hi, Johannes.

00:00:19.140 --> 00:00:21.840
Hallo, hallo Dominik, hallo Jochen.

00:00:21.840 --> 00:00:22.340
Hi, Jochen.

00:00:22.340 --> 00:00:24.000
Ja, hallo Dominik, hallo Johannes.

00:00:24.000 --> 00:00:28.420
Ich habe gehört, lieber Jochen, du wolltest, du warst auf einem Podcast-Barcamp.

00:00:29.000 --> 00:00:31.880
Genau, und dann habe ich so gesagt, wie wir Podcasts aufnehmen.

00:00:31.880 --> 00:00:35.880
Ja, und dann hast du gesagt, wir sollten ein bisschen mehr Struktur machen und das wieder ein bisschen schöner.

00:00:35.880 --> 00:00:41.280
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.

00:00:41.280 --> 00:00:43.020
Die haben ja vielleicht auch Erfahrung und so.

00:00:43.020 --> 00:00:46.940
Weil wir unseren Podcast an anderen Podcasts machen, als die ihren Podcast machen.

00:00:46.940 --> 00:00:50.460
Und deswegen machen wir das jetzt so, wie die anderen Leute, die nicht so einen Podcast machen, wie wir den Podcast machen.

00:00:50.460 --> 00:00:52.340
Wie wir das richtig machen.

00:00:52.340 --> 00:00:56.840
Also ich habe mich auch mit Leuten unterhalten und die haben dann so geguckt.

00:00:56.840 --> 00:00:58.840
Ich glaube, das geht gar nicht so schlecht.

00:00:59.260 --> 00:01:02.980
Ja, das geht schon, aber ich meine, wir machen das ja nicht so richtig professionell.

00:01:02.980 --> 00:01:04.660
Wollte gerade sagen, Jochen, möchtest du das jetzt professionell?

00:01:04.660 --> 00:01:06.080
Nein, nein, das auch nicht.

00:01:06.080 --> 00:01:10.700
Aber also zum Beispiel irgendwie ein Ratschlag war halt so, ja, sagt doch vorher, wenn ihr euch vorstellt.

00:01:10.700 --> 00:01:13.880
Einmal macht das immer gleich quasi.

00:01:13.880 --> 00:01:17.440
Es wäre auch so eine Intro-Melodie oder so, wäre nicht so schlecht.

00:01:17.440 --> 00:01:18.960
Dann dachte ich schon so, oh Gott, oh Gott, oh Gott.

00:01:18.960 --> 00:01:22.360
Aber ja, ich habe gehört, es gibt Leute hier unter uns.

00:01:22.360 --> 00:01:24.820
Ich kann ja meinen eigenen Jingle schreiben, dann mache ich den auf meinen Style.

00:01:24.820 --> 00:01:27.100
Und dann können wir ja gucken, wie das dann runtergeht.

00:01:28.000 --> 00:01:31.460
Wenn man sich die Kurve anguckt, ist halt so, in allem meinen eigenen Jingle.

00:01:31.460 --> 00:01:33.740
Immer wenn ich dabei bin, muss der am Anfang eingespielt werden.

00:01:33.740 --> 00:01:34.620
Das ist eigentlich eine coole Idee.

00:01:34.620 --> 00:01:39.000
Ja, ja, okay, dann sieht die, wie viele Leute hören noch zu Kurve wahrscheinlich aus,

00:01:39.000 --> 00:01:41.720
wie so Akapulco, Klippenspringer, irgendwie ins Nichts.

00:01:41.720 --> 00:01:44.240
Das vielleicht auch nicht so toll.

00:01:44.240 --> 00:01:47.600
Ja, aber ich finde, wie wir es sonst so machen, wir haben ja eigentlich schon mehr eine Struktur,

00:01:47.600 --> 00:01:48.340
als du jetzt denkst, Jochen.

00:01:48.340 --> 00:01:51.360
Also erstens kennen uns ja die Leute und wenn die sich dafür interessieren, wie wir sind

00:01:51.360 --> 00:01:53.580
oder interessieren würden, also ganz ehrlich, dann können die uns auch fragen.

00:01:53.580 --> 00:01:55.180
Hallo at peisenpodcast.de.

00:01:55.180 --> 00:01:56.820
Also wir machen irgendwas mit Peisen.

00:01:56.820 --> 00:01:57.900
Das hat man vielleicht schon mal.

00:01:58.000 --> 00:01:58.420
Das hat man schon mal rausgehört.

00:01:58.420 --> 00:01:59.720
Ich glaube, das ist auch offensichtlich.

00:01:59.720 --> 00:02:02.700
Und viel mehr muss man, glaube ich, gar nicht wissen.

00:02:02.700 --> 00:02:03.960
Also muss man nicht, kann man natürlich gerne.

00:02:03.960 --> 00:02:05.340
Dafür kann man ja fragen oder uns kennenlernen.

00:02:05.340 --> 00:02:07.500
Unseren Hörer treffen, das bald stattfindet.

00:02:07.500 --> 00:02:08.380
Wir organisieren das nämlich.

00:02:08.380 --> 00:02:10.860
Wir haben noch immer noch gar keinen festen Termin,

00:02:10.860 --> 00:02:13.600
aber es wird wahrscheinlich auf August, September hinauslaufen.

00:02:13.600 --> 00:02:15.720
Ja, aber ich fürchte, das müssen wir jetzt sagen.

00:02:15.720 --> 00:02:17.580
Sag ich doch, August oder September.

00:02:17.580 --> 00:02:20.540
Das ist kein fester Termin, oder?

00:02:20.540 --> 00:02:21.200
Nein.

00:02:21.200 --> 00:02:25.000
Dann müssen wir jetzt noch mal kurz unsere Kalender übereinanderlegen.

00:02:25.000 --> 00:02:27.740
Also ich glaube, tatsächlich wird es eher Ende August,

00:02:27.740 --> 00:02:27.980
bis Anfang Juli.

00:02:28.000 --> 00:02:30.380
Anfang September werden müssen, wegen Schulferien.

00:02:30.380 --> 00:02:32.080
Ja, Anfang September bin ich übrigens im Urlaub.

00:02:32.080 --> 00:02:35.740
Ja, das musst du leider absagen.

00:02:35.740 --> 00:02:36.280
Das geht halt nicht.

00:02:36.280 --> 00:02:40.160
Na gut, dann wird es halt vielleicht eher sogar Ende September.

00:02:40.160 --> 00:02:44.600
Okay, dann sagen wir, wir schieben die Ankündigung auf nächste Episode,

00:02:44.600 --> 00:02:45.600
die hoffentlich im Juli.

00:02:45.600 --> 00:02:46.760
Ja, also es sollte noch gutes Wetter sein.

00:02:46.760 --> 00:02:47.680
Wir wollen es nämlich draußen machen.

00:02:47.680 --> 00:02:52.600
Und okay, September, was ist mit August?

00:02:52.600 --> 00:02:54.080
Geht nicht gut.

00:02:54.080 --> 00:02:55.300
Wie gesagt, das ist ein Schulferien.

00:02:55.300 --> 00:02:56.760
Okay, geil, dann wir diskutieren das später aus.

00:02:56.760 --> 00:02:57.980
Wir haben auf jeden Fall das Thema.

00:02:58.000 --> 00:03:00.300
Sagt gerne Bescheid, wenn ihr vorbeikommen wollt.

00:03:00.300 --> 00:03:01.180
Es ist hier in der Gegend.

00:03:01.180 --> 00:03:03.380
Also hier heißt Rheinland-Düsseldorf.

00:03:03.380 --> 00:03:05.140
Ja, wir können ja schon mal sammeln.

00:03:05.140 --> 00:03:07.780
Also wenn ihr uns irgendwas an hallo-at-python-podcast.de schreibt,

00:03:07.780 --> 00:03:10.340
dann notifizieren wir euch, sobald wir genaueres wissen.

00:03:10.340 --> 00:03:10.820
Genau.

00:03:10.820 --> 00:03:14.460
Und es wird wahrscheinlich draußen irgendwie ...

00:03:14.460 --> 00:03:15.680
Draußen gibt es vielleicht was zu essen.

00:03:15.680 --> 00:03:16.360
Irgendwie so.

00:03:16.360 --> 00:03:16.680
Ja, ja.

00:03:16.680 --> 00:03:17.120
Irgendwie Dinge.

00:03:17.120 --> 00:03:19.080
Ja, okay.

00:03:19.080 --> 00:03:20.160
Genau.

00:03:20.160 --> 00:03:20.900
Ja.

00:03:20.900 --> 00:03:23.280
Das zur anderen Struktur, Jochen.

00:03:23.280 --> 00:03:24.200
Ja.

00:03:24.200 --> 00:03:25.000
Wir machen immer News.

00:03:25.000 --> 00:03:25.920
Ja, wir machen News.

00:03:25.920 --> 00:03:26.200
Das ist cool.

00:03:26.200 --> 00:03:27.340
Dann machen wir doch gerade ein bisschen News.

00:03:27.340 --> 00:03:27.540
Ja.

00:03:28.000 --> 00:03:29.640
Aber vorgestellt hat sich jetzt keiner, oder?

00:03:29.640 --> 00:03:30.240
Ach, Mist.

00:03:30.240 --> 00:03:32.040
Jetzt doch haben wir schon ...

00:03:32.040 --> 00:03:35.380
Der Jochen wollte so schön hinfahren und jetzt ist keiner eingestiegen.

00:03:35.380 --> 00:03:36.120
Ich bin der Dominik.

00:03:36.120 --> 00:03:36.980
Jochen, wer bist du denn?

00:03:36.980 --> 00:03:37.760
Ja.

00:03:37.760 --> 00:03:39.040
Ihr seid doch die wichtigen Leute.

00:03:39.040 --> 00:03:39.740
Stellt euch mal vor.

00:03:39.740 --> 00:03:43.040
Ja, aber man muss ja immer die anderen vorstellen.

00:03:43.040 --> 00:03:44.240
Man kann sich ja nicht gut selber vorstellen.

00:03:44.240 --> 00:03:45.120
Also ich stelle mal die Dominik vor.

00:03:45.120 --> 00:03:47.100
Dominik ist ...

00:03:47.100 --> 00:03:48.940
Siehst du, er fällt ihm schon nichts ein.

00:03:48.940 --> 00:03:49.840
Ja, der Techniker Dominik.

00:03:49.840 --> 00:03:50.800
So, wir essen das eigentlich.

00:03:50.800 --> 00:03:51.660
Schon ist es vorbei.

00:03:51.660 --> 00:03:56.000
Also meine drei Hashtags sind Python, Eurorack und ...

00:03:57.460 --> 00:04:01.300
Agentic ...

00:04:01.300 --> 00:04:02.040
Vibe-Coding, ja.

00:04:02.040 --> 00:04:02.540
Vibe-Coding.

00:04:02.540 --> 00:04:02.980
Ja, ja.

00:04:02.980 --> 00:04:03.500
Vibe-Coding, ja, genau.

00:04:03.500 --> 00:04:07.280
Okay, Mist, jetzt sind alle guten Hashtags schon weg.

00:04:07.280 --> 00:04:10.640
Meins wären irgendwie, ja, Python ...

00:04:10.640 --> 00:04:11.340
Kannst du mal peißen?

00:04:11.340 --> 00:04:12.180
Podcast Ukulele.

00:04:12.180 --> 00:04:13.660
Ja, Ukulele.

00:04:13.660 --> 00:04:14.700
Ukulele ist auch sehr gut, genau.

00:04:14.700 --> 00:04:15.120
Das klingt ganz schön, ja.

00:04:15.120 --> 00:04:15.540
Ja.

00:04:15.540 --> 00:04:17.280
Ich habe auch noch ein paar andere Instrumente, aber ja.

00:04:17.280 --> 00:04:19.580
Und Johannes, sollen wir ...

00:04:19.580 --> 00:04:20.380
Ja, also ich ...

00:04:20.380 --> 00:04:21.160
Hallo, ich bin Johannes.

00:04:21.160 --> 00:04:25.100
Für die, die mich nicht kennen, ich bin gelegentlich hier im Python-Podcast als Gast,

00:04:25.100 --> 00:04:26.660
weil ich diese beiden anderen Typen da kenne.

00:04:26.660 --> 00:04:27.420
Ja.

00:04:27.420 --> 00:04:27.440
Ja.

00:04:27.460 --> 00:04:31.600
Und ich komme nicht aus dem Rheinland.

00:04:31.600 --> 00:04:33.580
Ich bin ...

00:04:33.580 --> 00:04:34.240
Du warst da mal hier.

00:04:34.240 --> 00:04:38.460
Ich war mal im Rheinland, ja, aber es hat sich dann als ...

00:04:38.460 --> 00:04:40.060
Also ich musste wieder weg.

00:04:40.060 --> 00:04:41.380
Tja.

00:04:41.380 --> 00:04:44.740
Und jetzt bin ich hier ...

00:04:44.740 --> 00:04:48.480
Hier hat es übrigens 800 Sonnenstunden im Jahr mehr als bei euch im Rheinland.

00:04:48.480 --> 00:04:49.400
Das ist nur so nebenbei.

00:04:49.400 --> 00:04:52.340
Deshalb bin ich auch so ein sonniges Gemüt, wenn ihr seid so traurig und beregnet.

00:04:52.340 --> 00:04:53.840
Du bist auch ein richtiger Tausendsassa, die bei Johannes.

00:04:53.840 --> 00:04:54.800
Ja, richtig.

00:04:54.800 --> 00:04:55.300
Also meine ...

00:04:55.300 --> 00:04:57.420
Die kennst du übrigens alle aus dem Chaos-Umfeld so ein bisschen mehr oder weniger.

00:04:57.420 --> 00:04:57.900
Ja, den Jochen auch, oder?

00:04:57.900 --> 00:04:58.660
So können wir das schon sagen.

00:04:58.660 --> 00:05:01.060
Ja, den Jochen habe ich im Computer-Club kennengelernt.

00:05:01.060 --> 00:05:01.380
Ja, genau.

00:05:01.380 --> 00:05:03.040
Also, ja, mich auch.

00:05:03.040 --> 00:05:04.560
Meine Hashtags.

00:05:04.560 --> 00:05:08.840
Django, Mathematik und ...

00:05:08.840 --> 00:05:09.280
Spiele.

00:05:09.280 --> 00:05:10.760
Spiele, richtig.

00:05:10.760 --> 00:05:11.260
Ja.

00:05:11.260 --> 00:05:12.500
Absolut korrekt.

00:05:12.500 --> 00:05:14.060
Ah, cool.

00:05:14.060 --> 00:05:14.740
Hört man schon am Namen.

00:05:14.740 --> 00:05:15.800
Ja.

00:05:15.800 --> 00:05:16.180
Ja.

00:05:16.180 --> 00:05:17.980
So, Nomen, Esto, Omen.

00:05:17.980 --> 00:05:19.740
Ja.

00:05:19.740 --> 00:05:20.340
Ja.

00:05:20.340 --> 00:05:23.500
Okay, na gut, dann können wir ja jetzt nahtlos mit den News einsteigen.

00:05:23.500 --> 00:05:24.280
Ich habe nicht ...

00:05:24.280 --> 00:05:25.300
Perfekte Struktur.

00:05:25.300 --> 00:05:26.100
Sehr gut, sehr gut.

00:05:26.100 --> 00:05:27.260
Ich konnte ...

00:05:27.260 --> 00:05:30.460
Ich konnte nicht so viel sammeln, weil ich momentan total im Stress bin.

00:05:30.460 --> 00:05:30.800
Also, ich ...

00:05:30.800 --> 00:05:33.280
Ja, dann erzählen wir doch ganz kurz nochmal vielleicht über das Barcamp.

00:05:33.280 --> 00:05:35.400
Also, das ist jetzt vielleicht nicht so interessant für alle Peißenleute,

00:05:35.400 --> 00:05:37.140
aber für alle Leute, die Podcasts mögen schon.

00:05:37.140 --> 00:05:39.400
Es gab da nämlich eine tolle Veranstaltung, wo man ...

00:05:39.400 --> 00:05:41.120
Also, Barcamps kennt ihr ja vielleicht aus dem Software-Umfeld,

00:05:41.120 --> 00:05:43.740
wo man ganz viele nette Podcast-Menschen kennengelernt hat.

00:05:43.740 --> 00:05:45.460
Ich möchte nochmal Danke sagen für die tollen Kontakte,

00:05:45.460 --> 00:05:47.600
die ich da getroffen und kennengelernt haben durfte.

00:05:47.600 --> 00:05:52.520
Ja, Grüße an hier Working Draft zum Beispiel.

00:05:52.520 --> 00:05:52.740
Ja.

00:05:52.740 --> 00:05:54.340
Auch ein Podcast aus ...

00:05:54.340 --> 00:05:54.940
Ich habe auch ...

00:05:54.940 --> 00:05:55.460
Nicht nur Düsseldorf, aber ...

00:05:55.460 --> 00:05:56.400
Also, gute Tipps waren ...

00:05:56.400 --> 00:05:57.100
Von der ...

00:05:57.100 --> 00:05:59.500
Wir sollten ja mehr zusammen eine Episode aufnehmen.

00:05:59.500 --> 00:05:59.860
Ja, ich habe gehört.

00:05:59.860 --> 00:06:01.560
Ja, mit Working Draft, das wäre doch mal wieder eine Idee.

00:06:01.560 --> 00:06:03.580
Und wir haben auch schon konkret geplant,

00:06:03.580 --> 00:06:06.480
was zusammen mit WoWirSind ist vorne zu machen.

00:06:06.480 --> 00:06:10.360
Die kennen wir auch gut und treffen uns immer wieder

00:06:10.360 --> 00:06:13.820
auf allen möglichen Konferenzen und so.

00:06:13.820 --> 00:06:17.720
Aber, genau, ist bisher noch nicht so richtig zustande gekommen,

00:06:17.720 --> 00:06:19.160
aber wir sind auf jeden Fall da auch noch dran.

00:06:19.160 --> 00:06:21.280
Ja, das war so ein Tipp.

00:06:21.280 --> 00:06:23.860
Irgendwie besucht euch auch einfach gegenseitig.

00:06:23.860 --> 00:06:26.940
Auch ein guter Tipp war halt, ja, schaut nicht nur nach

00:06:26.940 --> 00:06:29.020
so irgendwie totalen Berühmtheiten oder so,

00:06:29.020 --> 00:06:31.560
auch wenn das auf dem Papier oder so,

00:06:31.560 --> 00:06:33.640
erst mal, wenn man drüber nachdenkt, gut aussieht, aber ...

00:06:33.640 --> 00:06:34.720
Meinst du, Guido ...

00:06:34.720 --> 00:06:35.860
Ich wollte immer schon mal Guido haben.

00:06:35.860 --> 00:06:38.440
Ja, aber das ist halt mit Englisch vielleicht ein Problem.

00:06:38.440 --> 00:06:40.480
Mit Sarah war das jetzt mal eine Ausnahme.

00:06:40.480 --> 00:06:43.980
Aber da gibt es ja schon Leute, also ich meine ...

00:06:43.980 --> 00:06:45.100
Ja, gibt es auch, auf jeden Fall.

00:06:45.100 --> 00:06:46.840
Auch in der deutschsprachigen Welt gibt es Paltenmenschen.

00:06:46.840 --> 00:06:49.180
Genau, gibt eigentlich auch genug.

00:06:49.180 --> 00:06:50.760
Guido spricht immerhin schon Dutch.

00:06:50.760 --> 00:06:56.780
Aber das Problem ist halt bei Leuten, die zu bekannt sind,

00:06:56.780 --> 00:06:58.900
auch, dass man die dann halt oft schon gehört hat, ne?

00:06:58.900 --> 00:07:02.160
Und wenn man dann nicht, weiß nicht, das ...

00:07:02.160 --> 00:07:03.860
Ja, hast du wieder einen Podcast mit Guido.

00:07:03.860 --> 00:07:04.600
Ja, genau.

00:07:04.600 --> 00:07:06.040
Ach, na ja.

00:07:06.040 --> 00:07:12.260
Es gibt doch jetzt demnächst eine tolle Python, den Film.

00:07:12.260 --> 00:07:14.380
Ja, es gibt im Sommer, soll jetzt rauskommen.

00:07:14.380 --> 00:07:15.160
Ich weiß gar nicht genau wann.

00:07:15.160 --> 00:07:16.620
Genau, da gab es einen Trailer, habe ich gesehen.

00:07:16.620 --> 00:07:17.620
Snakes on a Plane?

00:07:17.620 --> 00:07:18.700
Äh, nee.

00:07:18.700 --> 00:07:23.020
Ja, den gab es schon, aber ...

00:07:23.020 --> 00:07:25.160
Ja, das ist schon ein Python-Film.

00:07:25.160 --> 00:07:26.260
Nee, das ist schon ...

00:07:26.260 --> 00:07:26.620
Da gab es auch ...

00:07:26.620 --> 00:07:28.620
Heißt die Story irgendwie, ich weiß nicht, hab ich vergessen.

00:07:28.620 --> 00:07:30.540
Ja, ja, irgendwelche Leute machen das immer.

00:07:30.540 --> 00:07:33.300
Und über Even You haben sie zum Beispiel ein Ding gemacht,

00:07:33.300 --> 00:07:34.460
das war ziemlich gut, das habe ich gesehen.

00:07:34.460 --> 00:07:35.660
Und über andere Leute ...

00:07:35.660 --> 00:07:36.560
Ja, hast du noch mal Even You.

00:07:36.560 --> 00:07:41.040
Der Typ für Vue.js und jetzt Rulldown, habe ich gelesen.

00:07:41.040 --> 00:07:44.100
Und genau, das gibt es jetzt auch über Python.

00:07:44.100 --> 00:07:45.460
Und soll wohl auch ...

00:07:45.460 --> 00:07:47.280
Also, der Trailer sah auch gut aus.

00:07:47.280 --> 00:07:48.500
Und ja, wir wollen mal schauen, wie das so wird.

00:07:48.500 --> 00:07:49.640
Genau.

00:07:49.640 --> 00:07:52.160
Ja, ja, genau.

00:07:52.160 --> 00:07:54.940
Wir sind auf so ein Podcamp gegangen, so ein Barcamp-Podcast.

00:07:54.940 --> 00:07:56.320
Und immer Konferenzen für mich,

00:07:56.460 --> 00:07:59.440
besonders attraktiv, wenn ich halt irgendwie zu Fuß hinlaufen kann.

00:07:59.440 --> 00:08:02.360
Ich bin irgendwie bequem an der Stelle.

00:08:02.360 --> 00:08:04.600
Und das war halt hier in der Zentralbibliothek

00:08:04.600 --> 00:08:06.660
am Bahnhof in Düsseldorf,

00:08:06.660 --> 00:08:09.080
was auch ein total cooles Ding ist irgendwie.

00:08:09.080 --> 00:08:11.500
Und man kann die ganzen Räumlichkeiten

00:08:11.500 --> 00:08:12.280
auch für alles mögliche verwenden.

00:08:12.280 --> 00:08:13.360
Man muss es nur irgendwie anmelden.

00:08:13.360 --> 00:08:15.640
Und jedes Mal, wenn man da vorbeilief und gerade auf dem Gang,

00:08:15.640 --> 00:08:16.600
wie man es bei so Konferenzen macht,

00:08:16.600 --> 00:08:18.500
kurze Gespräche, dann kam er vorbei mit ...

00:08:18.500 --> 00:08:21.740
Ja, das soll aber eigentlich nicht so sein,

00:08:21.740 --> 00:08:24.720
weil eigentlich hat man dieses ...

00:08:24.720 --> 00:08:26.180
Irgendwie, man muss halt leise sein,

00:08:26.300 --> 00:08:28.880
in der Bibliothek-Konzept da nicht mehr.

00:08:28.880 --> 00:08:32.180
Es ist auch so, dass man da Essen mit reinnehmen darf und so.

00:08:32.180 --> 00:08:34.860
Und man sagt, ich habe dann so eine Führung damit gemacht.

00:08:34.860 --> 00:08:36.960
Und die sagt, na ja, nee, wir wollen das irgendwie anders machen

00:08:36.960 --> 00:08:38.040
und nicht mehr so wie früher.

00:08:38.040 --> 00:08:39.440
Und man kann da auch was essen.

00:08:39.440 --> 00:08:42.680
Und man kann da auch irgendwie ein bisschen lauter sein.

00:08:42.680 --> 00:08:43.580
Das ist alles kein Problem.

00:08:43.580 --> 00:08:46.720
Und es gibt nicht nur Bücher, sondern es gibt auch so,

00:08:46.720 --> 00:08:48.520
weiß ich nicht, so Laser-Entfernungsmesser

00:08:48.520 --> 00:08:54.760
und 3D-Drucker und VR-Brillen und ein Podcast-Studio

00:08:54.760 --> 00:08:56.140
und ein Ding, wo man ...

00:08:56.140 --> 00:08:58.800
Wo man irgendwie Super-8-Filme digitalisieren kann

00:08:58.800 --> 00:09:00.760
und auch alte Vias digitalisieren kann.

00:09:00.760 --> 00:09:01.760
Und Videorekorder.

00:09:01.760 --> 00:09:06.300
Und ein Musikstudio, wo man leider aber nicht drin laut sein darf.

00:09:06.300 --> 00:09:08.300
Da darf man nur digitale Instrumente drin verwenden.

00:09:08.300 --> 00:09:12.760
Weil daneben diese juristische Fachbibliothek ist,

00:09:12.760 --> 00:09:14.480
wo die Leute dann lernen für Prüfungen.

00:09:14.480 --> 00:09:15.700
Und das hat sich dann herausgestellt,

00:09:15.700 --> 00:09:17.920
dass das eine ungünstige Kombination ist.

00:09:17.920 --> 00:09:22.960
Ich beklage dich gleich.

00:09:22.960 --> 00:09:26.080
Das, ja, gut, hätte man auch vorher drauf kommen können.

00:09:26.080 --> 00:09:26.100
Ja.

00:09:26.100 --> 00:09:26.120
Ja.

00:09:26.120 --> 00:09:26.140
Ja.

00:09:26.140 --> 00:09:28.120
Aber das muss da wohl irgendwie erst mal eskalieren.

00:09:28.120 --> 00:09:29.600
Und jetzt darf man da nicht mehr singen.

00:09:29.600 --> 00:09:31.020
Eigentlich schade.

00:09:31.020 --> 00:09:31.400
Naja.

00:09:31.400 --> 00:09:32.300
Ja, schade.

00:09:32.300 --> 00:09:33.380
Gibt's auch Backformen.

00:09:33.380 --> 00:09:34.400
Ich hab das einmal gesehen.

00:09:34.400 --> 00:09:36.040
Das ist Bücherei für Backformen.

00:09:36.040 --> 00:09:36.280
Genau.

00:09:36.280 --> 00:09:37.520
So Bücherei der Dinge nennen die das.

00:09:37.520 --> 00:09:39.700
Da gibt's auch so Fußball-Backformen und so Zeugs.

00:09:39.700 --> 00:09:42.140
Ja, also wirklich Geburtstagskids

00:09:42.140 --> 00:09:44.460
für alle möglichen Geburtstagspartys und so.

00:09:44.460 --> 00:09:46.380
Also wirklich, wirklich.

00:09:46.380 --> 00:09:48.560
Und man kann da halt sich hinsetzen und arbeiten.

00:09:48.560 --> 00:09:50.180
Es sind 600 Arbeitsplätze in dem Ding.

00:09:50.180 --> 00:09:51.760
Das ist halt auch irgendwie echt groß.

00:09:51.760 --> 00:09:53.180
Es ist zwei Fußballfelder groß.

00:09:53.180 --> 00:09:56.040
Und es gibt jede Menge Räume für alles mögliche.

00:09:56.100 --> 00:09:57.080
Und wie gesagt, man muss halt nur sagen,

00:09:57.080 --> 00:09:58.720
ich hätte gerne einen Raum für den und den Zweck.

00:09:58.720 --> 00:10:01.280
Und dann überlegen die und dann sagen sie einem,

00:10:01.280 --> 00:10:03.740
nee, du stinkst oder ja, kannst du haben.

00:10:03.740 --> 00:10:07.280
In der alten Zentralbibliothek, da war ich vielleicht zwölf oder so was,

00:10:07.280 --> 00:10:08.760
da stand so ein Computer drin rum.

00:10:08.760 --> 00:10:12.680
Und der war halt ganz gemein gesichert, also dachten sie.

00:10:12.680 --> 00:10:16.260
Und da konnte man so ein paar Sachen machen, heimlich.

00:10:16.260 --> 00:10:18.100
Und dann Sachen ausprobieren und dann ...

00:10:18.100 --> 00:10:19.840
Tja.

00:10:19.840 --> 00:10:20.540
Ja.

00:10:20.540 --> 00:10:22.220
Das war ... also da gibt's auch eine Menge ...

00:10:22.220 --> 00:10:23.100
Ich bin nämlich nach der Schule früher,

00:10:23.100 --> 00:10:24.440
bin ich immer in die Bibliothek gefahren.

00:10:24.440 --> 00:10:25.520
Ja, das hab ich auch.

00:10:25.520 --> 00:10:26.060
Ich hab ...

00:10:26.060 --> 00:10:27.320
nicht nur nach der Schule.

00:10:27.320 --> 00:10:28.320
Ja, oft.

00:10:28.320 --> 00:10:30.620
Aber ob ich da jetzt meine Kinder hinlassen würde,

00:10:30.620 --> 00:10:31.500
ich weiß es nicht so genau.

00:10:31.500 --> 00:10:32.980
Ja.

00:10:32.980 --> 00:10:33.320
Ja.

00:10:33.320 --> 00:10:35.040
Es ist ... ja, egal.

00:10:35.040 --> 00:10:37.100
Aber also, wie gesagt, ich wusste gar nicht,

00:10:37.100 --> 00:10:39.400
dass es so einen Ort gibt und dass man da so coole Sachen machen kann.

00:10:39.400 --> 00:10:40.640
Da gibt's auch Bücher über Peißen, Jochen.

00:10:40.640 --> 00:10:41.620
Ja, da gibt's ...

00:10:41.620 --> 00:10:42.100
Gibt's da Flunenpeißen?

00:10:42.100 --> 00:10:42.720
Bücher gibt's da auch.

00:10:42.720 --> 00:10:46.260
Ja, und ja, da werde ich mir nicht ...

00:10:46.260 --> 00:10:48.400
Aber es gibt eine Fernleihe, über die man halt eine Menge kriegt.

00:10:48.400 --> 00:10:49.360
Weil, darüber wollten wir gleich reden.

00:10:49.360 --> 00:10:53.440
Und die liefert dann halt auch an die nächstgelegene Bibliothek.

00:10:53.440 --> 00:10:55.320
Also man kann das auch online machen.

00:10:56.020 --> 00:10:58.060
Und dann kann man die Sachen dann lokal abholen.

00:10:58.060 --> 00:11:00.380
Und bei uns ist die nächstgelegene Bibliothek

00:11:00.380 --> 00:11:02.380
irgendwie ein paar hundert Meter entfernt.

00:11:02.380 --> 00:11:02.860
Und dann ...

00:11:02.860 --> 00:11:04.700
Genau, also wir gehen auch mal zu unserer Stadtteilbibliothek.

00:11:04.700 --> 00:11:06.600
Ja, und man kann die Bücher auch überall zurückgeben und so.

00:11:06.600 --> 00:11:07.340
Also es ist wirklich ...

00:11:07.340 --> 00:11:08.060
Also ich war überrascht.

00:11:08.060 --> 00:11:09.280
Es war toll.

00:11:09.280 --> 00:11:10.020
Oder Tonis ausleihen.

00:11:10.020 --> 00:11:11.000
Das auch, ja.

00:11:11.000 --> 00:11:14.060
Ja, genau, genau.

00:11:14.060 --> 00:11:15.840
Also da hat das Ganze irgendwie stattgefunden.

00:11:15.840 --> 00:11:16.840
Und ja, war ...

00:11:16.840 --> 00:11:18.860
Also wir haben ein paar tolle Tipps bekommen für Marketing

00:11:18.860 --> 00:11:20.140
und was man nicht alles machen soll.

00:11:20.140 --> 00:11:21.380
Das heißt, wir machen jetzt ganz viel Marketing.

00:11:21.380 --> 00:11:23.500
Viel Spaß damit.

00:11:23.500 --> 00:11:25.020
Für uns bestimmt gut.

00:11:25.020 --> 00:11:25.900
Für euch, ja.

00:11:25.980 --> 00:11:26.620
Ihr müsst halt damit leben.

00:11:26.620 --> 00:11:29.080
Ja, nee.

00:11:29.080 --> 00:11:30.780
Wir haben tatsächlich überlegt,

00:11:30.780 --> 00:11:31.920
ob wir ein Video mal aufnehmen wollen.

00:11:31.920 --> 00:11:33.960
Genau, ob wir ein bisschen mehr Video machen.

00:11:33.960 --> 00:11:35.380
Also ich hab's schon länger überlegt,

00:11:35.380 --> 00:11:37.800
aber ja, das war so auch einer der Geschichten,

00:11:37.800 --> 00:11:40.140
wo Leute sagen, ja, das muss man im Grunde irgendwie,

00:11:40.140 --> 00:11:41.500
wenn man ...

00:11:41.500 --> 00:11:44.080
Social Media, Presence, Interaction.

00:11:44.080 --> 00:11:45.540
Man muss das schon irgendwie machen.

00:11:45.540 --> 00:11:49.500
Ja, man gewinnt halt einen Hörerkreis auf YouTube, oder?

00:11:49.500 --> 00:11:52.300
Also die Leute, die YouTube gucken, die ...

00:11:52.300 --> 00:11:52.540
Ja.

00:11:52.540 --> 00:11:55.940
Und gar nicht mal unbedingt die Podcasts

00:11:55.940 --> 00:11:58.080
Episoden selber, aber dass man zumindest da ist

00:11:58.080 --> 00:12:00.060
und da gefunden wird, für die Leute, die halt

00:12:00.060 --> 00:12:02.120
nur auf YouTube sind und dann halt da

00:12:02.120 --> 00:12:03.940
einen Trailer hat, dass sie halt wissen, oh, es gibt

00:12:03.940 --> 00:12:05.640
den Podcast, ich muss da vielleicht irgendwie

00:12:05.640 --> 00:12:07.540
auf meinem Podcatcher da war.

00:12:07.540 --> 00:12:09.860
Das geht halt total steil, Johannes.

00:12:09.860 --> 00:12:11.940
Und da stehen die Fans hinterher auch vor deiner Tür

00:12:11.940 --> 00:12:13.460
und klopfen heimlich.

00:12:13.460 --> 00:12:14.580
Die Groupies.

00:12:14.580 --> 00:12:17.660
Ja, also,

00:12:17.660 --> 00:12:19.660
oder was mich auch ...

00:12:19.660 --> 00:12:21.940
Was ich auch total cool fand, war, wie Leute darüber gesprochen

00:12:21.940 --> 00:12:23.720
haben, wie sie halt ihre Workflows halt so ein bisschen

00:12:23.720 --> 00:12:24.740
automatisieren mit

00:12:24.740 --> 00:12:25.740
ähm ...

00:12:25.740 --> 00:12:27.560
mit so diversen Tools und

00:12:27.560 --> 00:12:29.240
was man da alles machen kann an

00:12:29.240 --> 00:12:31.640
Automatisierungen von irgendwie,

00:12:31.640 --> 00:12:33.600
ja, was man ... Oder, oder, ja.

00:12:33.600 --> 00:12:35.820
Oh, jetzt sind wir bei einer anderen geplanten Folge

00:12:35.820 --> 00:12:37.440
übrigens mit, aber nicht bei Podcasts, aber

00:12:37.440 --> 00:12:39.840
wir wollten auch bald nochmal wieder bei so

00:12:39.840 --> 00:12:41.980
Data Science-Kram reden und dann auch nochmal über

00:12:41.980 --> 00:12:43.760
äh ...

00:12:43.760 --> 00:12:46.040
die ganzen neuen KI-Sachen. Darf ich KI sagen?

00:12:46.040 --> 00:12:47.460
Ich weiß nicht. MCPs und so.

00:12:47.460 --> 00:12:49.260
Ja, ich glaub, man darf was schon sagen. KI, musst du sagen.

00:12:49.260 --> 00:12:50.520
KI, oh.

00:12:50.520 --> 00:12:53.700
Ach so, äh, Entschuldigung. Du hast eben so einen

00:12:53.700 --> 00:12:54.980
tollen Link geschickt, der dazu passt.

00:12:55.740 --> 00:12:58.240
Ja, ich hab auch tatsächlich noch News, ähm,

00:12:58.240 --> 00:12:59.780
weil, äh, es gibt

00:12:59.780 --> 00:13:01.500
eine interessante Veröffentlichung vom

00:13:01.500 --> 00:13:03.220
MIT Media Lab mit dem Titel

00:13:03.220 --> 00:13:05.540
Your Brain on Chat GPT, die gerade

00:13:05.540 --> 00:13:07.680
so ein bisschen durch die News gegangen

00:13:07.680 --> 00:13:09.240
ist, wo

00:13:09.240 --> 00:13:11.920
sie untersuchen, was das denn für Auswirkungen

00:13:11.920 --> 00:13:13.540
hat. Also, ich mein, es ist natürlich sehr reißerisch

00:13:13.540 --> 00:13:15.640
und, äh, die Studie

00:13:15.640 --> 00:13:17.440
hat 54 Teilnehmer, also

00:13:17.440 --> 00:13:19.760
es ist jetzt nicht kein repräsentativer

00:13:19.760 --> 00:13:21.120
Querschnitt durch die Gesellschaft.

00:13:21.120 --> 00:13:22.720
Aber

00:13:22.720 --> 00:13:25.620
äh, es gab wohl signifikante Unterschiede

00:13:25.620 --> 00:13:27.600
zwischen Menschen, die, äh,

00:13:27.600 --> 00:13:29.440
LLMs benutzen oder nur eine

00:13:29.440 --> 00:13:31.380
Search Engine oder Brain Only

00:13:31.380 --> 00:13:32.740
in Klammern No Tools.

00:13:32.740 --> 00:13:33.920
Äh,

00:13:33.920 --> 00:13:38.980
das finde ich eine sehr schöne Bezeichnung.

00:13:38.980 --> 00:13:40.960
Und was war besser? Für was?

00:13:40.960 --> 00:13:43.580
Ähm, es ist,

00:13:43.580 --> 00:13:45.460
man kann sich Sachen besser merken, wenn man sie

00:13:45.460 --> 00:13:47.360
nicht von einem LLM erzeugen lässt oder wenn man sie

00:13:47.360 --> 00:13:49.000
es nicht von einem LLM vorkauen lässt.

00:13:49.000 --> 00:13:51.300
Ja gut, das ist ja keine Überraschung, dass

00:13:51.300 --> 00:13:53.200
wenn man das Wissen jetzt nicht selber erarbeitet hat,

00:13:53.200 --> 00:13:55.180
dass das dann flüchtig bleibt. Ja, aber auch Such,

00:13:55.420 --> 00:13:57.260
auch Suchmaschine, also auch wenn du normal

00:13:57.260 --> 00:13:59.420
bei, bei Google oder bei irgendwas

00:13:59.420 --> 00:14:00.860
anderem eintippst und nicht diese KI,

00:14:00.860 --> 00:14:03.380
ähm, Kagi, ich benutze

00:14:03.380 --> 00:14:05.180
Kagi, äh, benutzt,

00:14:05.180 --> 00:14:07.380
ähm, wenn man

00:14:07.380 --> 00:14:08.960
nicht diese KI-Zusammenfassung benutzt,

00:14:08.960 --> 00:14:11.280
ist, ist die Retention wohl deutlich

00:14:11.280 --> 00:14:13.580
besser. Und das Interessante

00:14:13.580 --> 00:14:15.340
ist eigentlich, dass diese Studie so durch

00:14:15.340 --> 00:14:17.100
die Neuigkeit...

00:14:17.100 --> 00:14:19.180
Bitte, ich hab's gerade nicht verstanden.

00:14:19.180 --> 00:14:21.320
Das Interessante finde ich eigentlich, dass

00:14:21.320 --> 00:14:23.220
diese Studie so durch die News geht und dass die

00:14:23.220 --> 00:14:25.160
so überall zitiert wird, weil es halt schon so ein bisschen

00:14:25.160 --> 00:14:27.540
dieses Gefühl reflektiert

00:14:27.540 --> 00:14:28.920
von, ja,

00:14:28.920 --> 00:14:31.080
vielleicht ist es doch nicht so gut für uns.

00:14:31.080 --> 00:14:32.860
Ja, aber ist das nicht immer, äh, eine Neuigkeit?

00:14:32.860 --> 00:14:34.540
Ich meine, äh... Ja, ja, natürlich.

00:14:34.540 --> 00:14:36.980
Die meisten, äh, also

00:14:36.980 --> 00:14:38.640
viele Leute sind halt so, doch eher so

00:14:38.640 --> 00:14:41.020
im Modus, äh, meckernder... News-Technology

00:14:41.020 --> 00:14:42.660
is bad for you. Genau.

00:14:42.660 --> 00:14:44.820
Meckernder Rentner im Fenster mit

00:14:44.820 --> 00:14:46.780
einem Kissen und, äh, Kulturpessimismus

00:14:46.780 --> 00:14:48.780
kommt halt immer gut an. Das ist halt immer eine Schlagzeile. Ja, aber Jochen,

00:14:48.780 --> 00:14:50.480
wir sind jetzt so langsam in so einem Alter.

00:14:50.480 --> 00:14:51.620
Ach so, ja.

00:14:51.620 --> 00:14:54.900
Genau, und hast du gesehen, jetzt haben wir für zwei

00:14:54.900 --> 00:14:57.040
Straßen weit, haben sie die Straße gelb gestrichen.

00:14:57.040 --> 00:14:58.780
Das hab ich nicht gesehen. Was? Das ist ja

00:14:58.780 --> 00:15:00.700
unmöglich. Unglaublich. Also, was die

00:15:00.700 --> 00:15:02.700
jungen Leute heute machen, das hätt's bei uns früher nicht

00:15:02.700 --> 00:15:04.740
gegeben. Ja, das waren nicht die jungen Leute. Das haben sie richtig mit, äh,

00:15:04.740 --> 00:15:06.620
Teams gemacht, die dann angerückt sind und alles

00:15:06.620 --> 00:15:08.740
verschönern wollten. Da haben sie alles mit einer stinkenden Farbe

00:15:08.740 --> 00:15:10.680
angestrichen und dann hinterher wollten sie einen Garten da drauf machen.

00:15:10.680 --> 00:15:12.620
Ja. Ja. Also,

00:15:12.620 --> 00:15:14.300
der Dominik ist auch in dem Alter, wie ihr gehört.

00:15:14.300 --> 00:15:16.580
Genau. Äh, ja.

00:15:16.580 --> 00:15:18.600
Also, ich, ich verstehe, wie diese

00:15:18.600 --> 00:15:20.320
medialen Mechanismen funktionieren,

00:15:20.320 --> 00:15:22.680
die halt dazu führen, dass das halt immer

00:15:22.680 --> 00:15:24.640
Schlagzeilen und Neuigkeiten sind. Aber ich hab's

00:15:24.640 --> 00:15:26.860
große Zweifel, dass das, äh,

00:15:26.860 --> 00:15:29.000
äh, äh, quasi ein repräsentatives

00:15:29.000 --> 00:15:30.900
äh, äh,

00:15:30.900 --> 00:15:32.500
äh, das Bild davon zeichnet,

00:15:32.500 --> 00:15:34.620
was irgendwie so passiert. Insofern. Ist es sicherlich

00:15:34.620 --> 00:15:36.340
nicht. Aber, ähm,

00:15:36.340 --> 00:15:38.480
die Anzeichen davon, dass Leute auf

00:15:38.480 --> 00:15:40.480
diese Dinge vertrauen. Ja, klar.

00:15:40.480 --> 00:15:42.760
Äh, und dann, äh, auf solche Fakten reinfallen.

00:15:42.760 --> 00:15:44.800
Ja, natürlich. Oder auf solche ausgedachten

00:15:44.800 --> 00:15:46.420
Sachen. Ja, dass man, dass Ungarn auch

00:15:46.420 --> 00:15:48.160
Holland genannt wird. Äh,

00:15:48.160 --> 00:15:50.580
ja.

00:15:50.580 --> 00:15:52.980
Ja, das, äh,

00:15:52.980 --> 00:15:54.380
dieses Vertrauen ist da

00:15:54.380 --> 00:15:56.180
halt schon sehr groß. Ja, also, ich hab heute

00:15:56.180 --> 00:15:58.280
zweimal gehört, ich hab Chat-Spotty gefragt, mir dann

00:15:58.280 --> 00:15:59.900
meine Schule ausgesucht und, ja.

00:15:59.900 --> 00:16:02.300
Das wird da als Suchersatz benutzt, ne?

00:16:02.300 --> 00:16:04.240
Also, ganz klassisch so. Ja, find ich ganz

00:16:04.240 --> 00:16:06.280
toll. Also, da bin ich zu alt dafür. Das find ich ganz

00:16:06.280 --> 00:16:08.420
komisch. Ja, ja. Also, Leute

00:16:08.420 --> 00:16:10.300
denken, das ist, aber, das ist aber auch komisch,

00:16:10.300 --> 00:16:12.180
dass es nicht direkt die Wahrheit gesagt hat. Oder,

00:16:12.180 --> 00:16:14.180
dass man da ja so ein paar Informationen hatte, die man so mal

00:16:14.180 --> 00:16:16.220
kurz überprüfen musste. Ja, gut, gelogen. Gut, das

00:16:16.220 --> 00:16:18.180
mit der Medienkompetenz ist halt ein Problem. Aber das war auch

00:16:18.180 --> 00:16:20.020
schon immer ein Problem. Ich meine, ich erinnere mich noch, als

00:16:20.020 --> 00:16:22.020
Internet und Google neu waren. Hast du nicht dem

00:16:22.020 --> 00:16:23.600
Marksteier geglaubt, was der gerufen hat?

00:16:23.600 --> 00:16:25.780
Ja, oder das Fernsehen, genau. Als das Fernsehen neu war,

00:16:25.780 --> 00:16:27.880
auch, als das Radio neu war,

00:16:27.880 --> 00:16:28.600
irgendwie,

00:16:28.600 --> 00:16:31.980
War of the Worlds, ne, war auch ein großes

00:16:31.980 --> 00:16:33.860
Medienkompetenz. Damals, als man den Propheten noch

00:16:33.860 --> 00:16:35.280
wirklich glauben konnte. Ja,

00:16:35.280 --> 00:16:37.640
ja. Also,

00:16:37.640 --> 00:16:39.760
es ist ein wiederkehrendes

00:16:39.760 --> 00:16:41.840
Muster, ja, oder eben, bei Plato

00:16:41.840 --> 00:16:43.340
gibt's das schon, der Wetterter gegen die Schrift. Und der

00:16:43.340 --> 00:16:45.460
Verfall der Jugend, sowieso. Ja, ja.

00:16:45.460 --> 00:16:47.800
Also, ich würde mal

00:16:47.800 --> 00:16:49.160
einfach sagen, einfach, wenn man kann, so,

00:16:49.160 --> 00:16:51.420
Plato hat nicht recht gehabt.

00:16:52.020 --> 00:16:53.460
Ja. Und das mit der Schrift war schon

00:16:53.460 --> 00:16:55.400
Fortschritt. Und alle anderen danach. Und das wird ihn jetzt aber

00:16:55.400 --> 00:16:57.500
ganz schön atzen. Ja, aber

00:16:57.500 --> 00:16:59.060
ich glaube, du bist ein Fanboy, Jochen.

00:16:59.060 --> 00:17:00.680
Ja, na, auf der anderen Seite,

00:17:00.680 --> 00:17:03.340
andererseits natürlich schon, bin auch irgendwo ein Plato-Fanboy.

00:17:03.340 --> 00:17:05.420
Das ist richtig, ja. Ja, das können wir in der

00:17:05.420 --> 00:17:07.320
MCP-Folge nochmal genauer auslassen. Ja, wobei,

00:17:07.320 --> 00:17:09.260
du hattest ja den Hashtag Mathematik, da hab ich ja einen Haken,

00:17:09.260 --> 00:17:10.860
um da mich rein... Ich hab jetzt

00:17:10.860 --> 00:17:13.500
eine Podcast-Episode gehört mit Terence Howe.

00:17:13.500 --> 00:17:15.420
Ja,

00:17:15.420 --> 00:17:17.280
der jetzt auch anfängt, oder der jetzt auch

00:17:17.280 --> 00:17:19.340
viele Dinge macht. Ja, ja.

00:17:19.340 --> 00:17:20.840
Der macht vor allen Dingen viel mit Linen,

00:17:20.840 --> 00:17:21.920
also,

00:17:22.020 --> 00:17:23.800
sozusagen eine Programmiersprache, mit der kann man,

00:17:23.800 --> 00:17:25.900
also, schreibt man halt nicht Code, sondern quasi

00:17:25.900 --> 00:17:27.880
Mathe und...

00:17:27.880 --> 00:17:30.180
Ja, man schreibt schon Code, aber hinterher sagt er einem dann das.

00:17:30.180 --> 00:17:31.920
Genau, kann der Compiler, der Compiler zählt nicht zu den

00:17:31.920 --> 00:17:33.540
Binary, sondern der gibt einem ein Zertifikat,

00:17:33.540 --> 00:17:35.580
dass das, was man halt hingeschrieben hat,

00:17:35.580 --> 00:17:37.880
folgerichtig war. Und wenn man, wenn das

00:17:37.880 --> 00:17:40.020
ein Beweis war, dann ist es halt dann bewiesen.

00:17:40.020 --> 00:17:41.700
Genau.

00:17:41.700 --> 00:17:43.140
Und das,

00:17:43.140 --> 00:17:45.920
ja, macht es halt auch zugänglicher. Das macht es halt auch

00:17:45.920 --> 00:17:47.320
möglich, dass mehrere Leute miteinander

00:17:47.320 --> 00:17:49.640
irgendwie kollaborieren, weil das Problem an

00:17:49.640 --> 00:17:51.820
der bisherigen Mathe-Notation, auch die

00:17:51.820 --> 00:17:53.320
ist natürlich ein riesen Fortschritt gegenüber früher,

00:17:53.320 --> 00:17:55.840
aber die ist halt so, wenn man jetzt so ein

00:17:55.840 --> 00:17:57.600
aktuelles Mathe-Paper nimmt, dann

00:17:57.600 --> 00:17:59.740
und schlägt Seite 15 auf,

00:17:59.740 --> 00:18:01.660
dann kann einem niemand

00:18:01.660 --> 00:18:03.480
sagen, was da steht, ohne die

00:18:03.480 --> 00:18:05.640
15 Seiten vorher gelesen zu haben. Und

00:18:05.640 --> 00:18:07.740
das ist super anstrengend. Und deswegen macht das keiner

00:18:07.740 --> 00:18:09.480
und dann kann man nicht so gut zusammenarbeiten, sondern

00:18:09.480 --> 00:18:11.060
muss jeder für sich das irgendwie, und das

00:18:11.060 --> 00:18:12.740
limitiert natürlich die

00:18:12.740 --> 00:18:15.720
Menge an

00:18:15.720 --> 00:18:17.620
Dingen, die man irgendwie tun kann. Und jetzt können

00:18:17.620 --> 00:18:19.400
halt auch irgendwie Nicht-Profis

00:18:19.400 --> 00:18:21.700
quasi da Pull-Requests,

00:18:21.700 --> 00:18:23.500
gegen lange Beweise stellen

00:18:23.500 --> 00:18:25.400
und man kann halt automatisch checken, ob das halt so

00:18:25.400 --> 00:18:26.800
halbwegs stimmt, was die geschrieben haben oder nicht.

00:18:26.800 --> 00:18:29.620
Und dann, genau. Das machen

00:18:29.620 --> 00:18:31.560
sie auch schon. Die haben da ein total cooles Projekt,

00:18:31.560 --> 00:18:33.560
wo es darum geht, quasi

00:18:33.560 --> 00:18:35.560
nicht neue Sachen zu

00:18:35.560 --> 00:18:37.960
beweisen oder so, sondern die gesamte

00:18:37.960 --> 00:18:39.560
mathematische Theorie, die es so

00:18:39.560 --> 00:18:41.600
gibt und alle Lemmas, die man halt so hat,

00:18:41.600 --> 00:18:43.580
die alle

00:18:43.580 --> 00:18:45.420
mal formal mit Linen durchzubeweisen.

00:18:45.420 --> 00:18:47.600
Und das dann halt in der Datenbank zu

00:18:47.600 --> 00:18:49.100
haben, sodass man halt später sagen kann, okay.

00:18:49.100 --> 00:18:51.500
Im Endeffekt halt Mathematik, oder?

00:18:51.500 --> 00:18:53.760
Also halt das, was es gibt, so an Mathematik

00:18:53.760 --> 00:18:55.160
einmal komplett

00:18:55.160 --> 00:18:57.380
durchformalisiert zu haben.

00:18:57.380 --> 00:18:59.300
Und dass man es halt auch noch suchen kann, dass man immer

00:18:59.300 --> 00:19:01.460
sagen kann, okay, ich habe jetzt dieses Problem, welche

00:19:01.460 --> 00:19:03.280
Lemmas könnten mir denn da helfen oder welche Tricks

00:19:03.280 --> 00:19:05.400
siehst du denn in den Dingen, die alle

00:19:05.400 --> 00:19:07.360
bewiesen sind, die man jetzt verwenden könnte und dann

00:19:07.360 --> 00:19:09.120
kann einem auch ein LLM da vielleicht helfen.

00:19:09.120 --> 00:19:11.400
Ja, also fand ich

00:19:11.400 --> 00:19:13.360
auf jeden Fall. Ja, gewusst wie, aber man muss ja eigentlich

00:19:13.360 --> 00:19:15.240
on top von den Dingen stehen und nicht

00:19:15.240 --> 00:19:16.880
nach neuer Information suchen,

00:19:16.880 --> 00:19:19.380
sondern auch was man selber quasi auch schon

00:19:19.380 --> 00:19:21.480
rausputzen könnte und das geht dann halt schneller.

00:19:21.500 --> 00:19:23.580
Ja, so ein bisschen

00:19:23.580 --> 00:19:25.380
anders, glaube ich, als wenn man sich

00:19:25.380 --> 00:19:26.600
davon erstmal die Wette genannt hat.

00:19:26.600 --> 00:19:29.040
Ja, aber

00:19:29.040 --> 00:19:31.360
auf jeden Fall, Mathematik ändert sich auch noch

00:19:31.360 --> 00:19:33.360
immer und mehr Leute können

00:19:33.360 --> 00:19:35.280
an Dingen, die hatten dann jetzt auch so ein Paper

00:19:35.280 --> 00:19:37.300
dazu und da waren halt dann 50

00:19:37.300 --> 00:19:39.160
Autoren drauf oder so und das

00:19:39.160 --> 00:19:40.860
Wo ist so ein Paper? Das gab es ja

00:19:40.860 --> 00:19:43.180
sonst so in der Physik mit tausend Autoren und

00:19:43.180 --> 00:19:44.440
in der Mathematik eigentlich nicht.

00:19:44.440 --> 00:19:47.440
Ja, ist spannend. Kennt ihr das Chicken

00:19:47.440 --> 00:19:47.720
Paper?

00:19:47.720 --> 00:19:49.520
Nein, was ist das?

00:19:49.520 --> 00:19:51.480
Chicken, Chicken, Chicken, Chicken,

00:19:51.500 --> 00:19:53.460
Chicken, Duck, Tonka. Also es gab

00:19:53.460 --> 00:19:54.560
jemand, der hat es tatsächlich geschafft,

00:19:54.560 --> 00:19:57.360
ein Paper zu veröffentlichen, weil das alles Standards

00:19:57.360 --> 00:19:59.380
erfüllt, formalen Standards. Ach so, okay.

00:19:59.380 --> 00:20:01.460
Ja, habe ich am Montag gehört. Danke,

00:20:01.460 --> 00:20:01.760
Sascha.

00:20:01.760 --> 00:20:05.440
Ja, jedenfalls, genau.

00:20:05.440 --> 00:20:07.460
In dem Podcast habe ich auch, also ich bin ja

00:20:07.460 --> 00:20:09.360
auch so ein... Das ist ein offiziell

00:20:09.360 --> 00:20:11.540
peer-reviewedes Paper.

00:20:11.540 --> 00:20:13.440
Ah, da kommen ziemlich

00:20:13.440 --> 00:20:14.840
viele Hühner drin vor. Ja, genau.

00:20:14.840 --> 00:20:17.600
Eigentlich nur Hühner.

00:20:17.600 --> 00:20:19.500
Ja, alles Chicken. Ja, ja.

00:20:19.500 --> 00:20:21.340
Ist auf jeden Fall

00:20:21.340 --> 00:20:22.880
eine sehr spitze Zielgruppe dann.

00:20:22.880 --> 00:20:24.140
Ja.

00:20:24.140 --> 00:20:26.940
Genau, also was

00:20:26.940 --> 00:20:29.280
der, also ich würde ja sagen,

00:20:29.280 --> 00:20:31.220
also bisher war ich immer in dem, es gibt ja im Grunde

00:20:31.220 --> 00:20:33.240
zwei Lager in der, was Theorie

00:20:33.240 --> 00:20:35.420
der Mathematik angeht. Es gibt halt so die

00:20:35.420 --> 00:20:37.760
Platoniker

00:20:37.760 --> 00:20:39.260
irgendwie, also das ist

00:20:39.260 --> 00:20:40.700
eine der wenigen Gebiete,

00:20:40.700 --> 00:20:42.600
wo halt, wo halt

00:20:42.600 --> 00:20:45.240
Platonismus

00:20:45.240 --> 00:20:46.540
irgendwie noch eine Rolle spielt.

00:20:46.540 --> 00:20:49.460
Und die Intuitionisten oder so.

00:20:49.460 --> 00:20:51.320
Und ich würde sagen, naja, gut,

00:20:51.340 --> 00:20:53.000
ich bin schon irgendwie da eher auf der

00:20:53.000 --> 00:20:55.360
Platon-Seite, weil, naja, wie soll das anders

00:20:55.360 --> 00:20:57.440
gehen? Man kann ja auch

00:20:57.440 --> 00:20:59.220
quasi zum Beispiel experimentelle Mathematik

00:20:59.220 --> 00:21:00.580
machen, wo man einfach irgendwie

00:21:00.580 --> 00:21:03.520
zufällig Beweise generiert und dann überprüft

00:21:03.520 --> 00:21:04.880
mit einem Ding, das halt nicht alles

00:21:04.880 --> 00:21:07.180
checken kann, aber checkt, ob da

00:21:07.180 --> 00:21:08.980
irgendwas interessant, äh, ob das wahr ist erstmal,

00:21:08.980 --> 00:21:11.120
ob das richtig ist und dann, ob irgendwas Interessantes

00:21:11.120 --> 00:21:13.280
rausgekommen ist und dann manchmal fällt da irgendwas Interessantes

00:21:13.280 --> 00:21:15.080
bei raus. Und dann, wie kann

00:21:15.080 --> 00:21:16.620
man das über so einen Prozess

00:21:16.620 --> 00:21:19.100
erfunden haben, sondern das muss man halt eher entdeckt

00:21:19.100 --> 00:21:21.180
haben. Und auch so andere Dinge wie, weiß ich

00:21:21.180 --> 00:21:23.020
nicht, dass es Kreise gibt oder Dreiecke oder so,

00:21:23.020 --> 00:21:24.820
da hat man so intuitiv das Gefühl,

00:21:24.820 --> 00:21:26.940
naja, die gibt's schon irgendwie da draußen

00:21:26.940 --> 00:21:28.380
und die kann man eher entdecken,

00:21:28.380 --> 00:21:30.920
dass das halt 180 Grad sind in der Winkelsumme

00:21:30.920 --> 00:21:33.120
und das kann man nicht erfinden oder das ist halt

00:21:33.120 --> 00:21:35.180
einfach so. Und deswegen dachte ich

00:21:35.180 --> 00:21:36.200
immer so, ja, also

00:21:36.200 --> 00:21:39.000
quasi so Platon, äh,

00:21:39.000 --> 00:21:41.140
Platon, äh, äh, mathematischer Platonismus

00:21:41.140 --> 00:21:42.980
ist eigentlich schon so die richtige Geschichte und dann,

00:21:42.980 --> 00:21:44.980
genau, Intuitionisten seit, seit Anfang des

00:21:44.980 --> 00:21:47.080
20. Jahrhunderts sagen so, nee, nee, das kann man vielleicht alles nicht so

00:21:47.080 --> 00:21:48.540
machen und das ist doch eher vielleicht eine Erfindung.

00:21:48.540 --> 00:21:50.280
Das hab ich eher so für Quatsch gehalten.

00:21:51.020 --> 00:21:53.020
Und der hatte jetzt aber ein super Argument

00:21:53.020 --> 00:21:54.900
für den, äh, mathematischen

00:21:54.900 --> 00:21:56.140
Intuitionismus und zwar,

00:21:56.140 --> 00:21:59.120
ähm, äh,

00:21:59.120 --> 00:22:00.860
ähm, wie waren das noch?

00:22:00.860 --> 00:22:02.400
Ja, jetzt musst du das auch richtig zusammenkriegen.

00:22:02.400 --> 00:22:03.860
Jetzt muss ich das zusammenkriegen, verdammt.

00:22:03.860 --> 00:22:05.380
Das ist ein gutes Argument gewesen.

00:22:05.380 --> 00:22:07.280
Mathematik war besonders, äh, einfach.

00:22:07.280 --> 00:22:10.720
Äh, äh, genau, ach so, ja, richtig, das ging

00:22:10.720 --> 00:22:12.820
ungefähr so, der sagte halt, naja, also

00:22:12.820 --> 00:22:14.720
es gibt ja so Zahlen wie Pi, wir hatten das, glaub ich, auch mal im Podcast

00:22:14.720 --> 00:22:17.080
schon mal irgendwann davor, als wir über Pi geredet haben.

00:22:17.080 --> 00:22:19.000
Naja, das ist halt, äh, völlig

00:22:19.000 --> 00:22:20.760
unklar, zum Beispiel, also es sieht, es

00:22:20.860 --> 00:22:22.760
ist Pi, die Dezimalprobenentwicklung von Pi

00:22:22.760 --> 00:22:25.260
besteht jeden Test für Zufälligkeit

00:22:25.260 --> 00:22:27.600
und, äh,

00:22:27.600 --> 00:22:29.140
ja, aber niemand weiß, ob

00:22:29.140 --> 00:22:31.070
wirklich zufällig ist oder nicht, oder ob nicht doch irgendeine

00:22:31.070 --> 00:22:32.830
Conspiracy da drin,

00:22:32.830 --> 00:22:34.430
Verschwörung ist, die halt

00:22:34.430 --> 00:22:37.370
doch nicht zufällig sein lässt

00:22:37.370 --> 00:22:38.890
oder so, das weiß halt keiner und man hat auch keine Idee,

00:22:38.890 --> 00:22:40.770
wenn man das rauskriegen kann. Aber er sagt,

00:22:40.770 --> 00:22:43.030
eigentlich ist es ja ganz einfach, also natürlich

00:22:43.030 --> 00:22:45.070
wahrscheinlich, was man erwarten würde, ist, dass es

00:22:45.070 --> 00:22:46.050
zufällig ist, weil

00:22:46.050 --> 00:22:49.170
man kann relativ einfach

00:22:49.170 --> 00:22:50.510
beweisen, dass

00:22:50.510 --> 00:22:52.950
quasi die allermeisten realen Zahlen

00:22:52.950 --> 00:22:55.130
zufällig sein müssen,

00:22:55.130 --> 00:22:56.590
sonst wäre einfach nicht genug Platz.

00:22:56.590 --> 00:22:58.750
Wenn da irgendwelche Muster wären,

00:22:59.130 --> 00:23:00.850
dann könnte man das irgendwie

00:23:00.850 --> 00:23:02.450
diagonalisieren oder so,

00:23:02.450 --> 00:23:04.750
das darf nicht gehen. Die allermeisten

00:23:04.750 --> 00:23:06.750
müssen zufällig sein. Aber das ist was ganz

00:23:06.750 --> 00:23:08.550
Schlimmes, das ist ein ganz schlimmes Argument, Jochen, weil

00:23:08.550 --> 00:23:10.610
jetzt kommst du

00:23:10.610 --> 00:23:12.650
auf einen ganz schlimmen Punkt in der

00:23:12.650 --> 00:23:14.690
Mathematik. Die allermeisten reellen

00:23:14.690 --> 00:23:16.870
Zahlen können wir nicht erfassen,

00:23:16.870 --> 00:23:18.490
die können wir nicht sehen, die können wir, die sind,

00:23:18.490 --> 00:23:20.350
das sind so völlig doofe,

00:23:20.350 --> 00:23:22.650
das sind so völlig doofe

00:23:22.650 --> 00:23:24.550
Zahlen wie Pi und das sind die allermeisten und wir

00:23:24.550 --> 00:23:26.310
kennen vielleicht drei davon.

00:23:26.310 --> 00:23:28.290
Ja, ja. Aber es sind die

00:23:28.290 --> 00:23:28.910
allermeisten.

00:23:29.710 --> 00:23:32.010
Ja, und das finde ich sehr unangenehm.

00:23:32.010 --> 00:23:34.690
Genau. Und da gibt's

00:23:34.690 --> 00:23:36.570
halt dann dieses Bild von den, das hat ja bestimmt auch schon

00:23:36.570 --> 00:23:37.730
jeder mal gehört, von den,

00:23:37.730 --> 00:23:40.110
diese Infinite Monkeys, ja, so

00:23:40.110 --> 00:23:42.350
natürlich viele Affen, wenn die nur lange genug irgendwie

00:23:42.350 --> 00:23:44.710
auf ihre Schreibmaschinen eindreschen,

00:23:44.710 --> 00:23:46.510
dann kommt dabei auch mal Shakespeare raus oder so.

00:23:46.510 --> 00:23:48.430
Jede von diesen Zahlen muss alle Laken

00:23:48.430 --> 00:23:50.170
von Shakespeare in der richtigen

00:23:50.170 --> 00:23:51.890
Reihenfolge und so enthalten werden.

00:23:51.890 --> 00:23:53.070
Wenn sie urheberrechtlich geschützt sind.

00:23:53.070 --> 00:23:55.830
Wenn die echt zufällig sind. Das kann nicht

00:23:55.830 --> 00:23:57.790
anders sein, das muss so sein. Und jetzt

00:23:57.790 --> 00:23:58.950
ist halt natürlich die Frage so,

00:23:59.130 --> 00:24:01.890
also wenn jede einzelne von diesen

00:24:01.890 --> 00:24:03.750
blöden Zahlen im Grunde das ganze Universum irgendwie

00:24:03.750 --> 00:24:05.890
enthält, weil, naja, also

00:24:05.890 --> 00:24:07.730
egal wie man das Universum beschreibt,

00:24:07.730 --> 00:24:09.470
diese Beschreibung muss da auch drin vorkommen, irgendwo.

00:24:09.470 --> 00:24:11.810
Wie kann das denn sein, dass das

00:24:11.810 --> 00:24:13.790
schon vorher existiert

00:24:13.790 --> 00:24:15.750
da draußen und wir es nur entdecken?

00:24:15.750 --> 00:24:17.830
Oder ist es dann nicht so, dass man

00:24:17.830 --> 00:24:19.810
ja, wenn man das

00:24:19.810 --> 00:24:21.370
jetzt erzeugen wollte, zum Beispiel über Pi...

00:24:21.370 --> 00:24:23.630
Ja gut, aber das geht ja weg, Jochen. Da musst du nur sagen,

00:24:23.630 --> 00:24:25.990
das Universum ist quantifiziert und schon existieren

00:24:25.990 --> 00:24:26.710
diese Zahlen nicht mehr.

00:24:26.710 --> 00:24:29.070
Ja, aber das, gut, okay.

00:24:29.130 --> 00:24:31.790
Das Universum, sehr weit gefasst, jetzt nicht als physikalisches

00:24:31.790 --> 00:24:33.550
Universum, mathematisches Universum

00:24:33.550 --> 00:24:35.670
eingeschlossen, wo alle mathematischen Objekte auch drin sind.

00:24:35.670 --> 00:24:37.310
Inklusive Pi und so.

00:24:37.310 --> 00:24:39.550
Und wenn man sagt, man könnte ja als Platoniker würde sagen,

00:24:39.550 --> 00:24:40.150
es existiert.

00:24:40.150 --> 00:24:42.230
Zirkulär?

00:24:42.230 --> 00:24:45.570
Ja, du sagst, es existiert, weil wir annehmen,

00:24:45.570 --> 00:24:47.450
dass das Universum, in dem die, dass das

00:24:47.450 --> 00:24:49.750
Universum, in dem wir drin sind, das Universum

00:24:49.750 --> 00:24:50.670
ist, in dem die existieren.

00:24:50.670 --> 00:24:53.150
Nee, nee, ich würde sagen, also es gibt

00:24:53.150 --> 00:24:55.630
ich meine jetzt nicht das physikalische Universum, sondern

00:24:55.630 --> 00:24:57.630
ganz weit gefasst, also

00:24:57.630 --> 00:24:58.850
auch das

00:24:59.130 --> 00:25:00.670
die Welt, in der halt auch

00:25:00.670 --> 00:25:03.270
mathematische Objekte existieren, da ist halt

00:25:03.270 --> 00:25:05.170
also als Platoniker würde ich davon ausgehen,

00:25:05.170 --> 00:25:07.510
eben sowas wie Pi, das existiert da draußen halt

00:25:07.510 --> 00:25:09.470
nicht in unserem Universum natürlich

00:25:09.470 --> 00:25:11.410
im physikalischen Sinne, sondern

00:25:11.410 --> 00:25:13.830
quasi als Konzept, als Idee.

00:25:13.830 --> 00:25:15.310
Ja, in einem anderen Universum,

00:25:15.310 --> 00:25:17.350
wenn es ein anderes gibt, müssen sie auch

00:25:17.350 --> 00:25:19.550
auf diese Idee kommen, weil diese Idee existiert

00:25:19.550 --> 00:25:21.370
halt unabhängig davon. Und ich kann

00:25:21.370 --> 00:25:23.130
auch nicht getäuscht sein, wenn man gesinnt oder so.

00:25:23.130 --> 00:25:24.870
Ich finde, da gibt es eine Grenze, Jochen.

00:25:24.870 --> 00:25:27.350
Ich verstehe, worauf du raus willst, dass das

00:25:27.350 --> 00:25:28.950
sozusagen was Universales ist. Egal,

00:25:29.130 --> 00:25:31.270
welches Universum du dir vorstellst, die Kreiskonstante ist

00:25:31.270 --> 00:25:33.270
immer so. Überall gibt es sowas wie

00:25:33.270 --> 00:25:33.950
Gravitation.

00:25:33.950 --> 00:25:37.310
Du brauchst nicht mal die Gravitation, du brauchst nur

00:25:37.310 --> 00:25:39.270
Mathematik. In jedem Universum, das Mathematik

00:25:39.270 --> 00:25:41.430
enthält, gibt es die Kreiskonstante und die ist immer gleich.

00:25:41.430 --> 00:25:43.430
Ist aber Mathematik keine Gravitation?

00:25:43.430 --> 00:25:44.250
Weil Geometrie immer gleich ist.

00:25:44.250 --> 00:25:45.850
Nee, brauchst du nicht.

00:25:45.850 --> 00:25:48.570
Nee, das hat nichts mit Physik zu tun.

00:25:48.570 --> 00:25:50.890
Aber es gibt eine Grenze, Jochen.

00:25:50.890 --> 00:25:52.750
Ich glaube, dass es da eine Grenze gibt,

00:25:52.750 --> 00:25:55.470
weil es gibt Dinge, die sind ganz offensichtlich

00:25:55.470 --> 00:25:56.590
von Menschen ausgedacht.

00:25:56.590 --> 00:25:58.990
Ja, klar. In der Mathematik.

00:25:59.130 --> 00:26:00.290
Mhm. Ach so, okay.

00:26:00.290 --> 00:26:01.710
Die gibt es nur, weil wir...

00:26:01.710 --> 00:26:03.890
Da kannst du einfach fliegen gehen.

00:26:03.890 --> 00:26:06.230
Und die Frage ist, wo ist die Grenze?

00:26:06.230 --> 00:26:08.610
Wo sind die Sachen von Gott gegeben,

00:26:08.610 --> 00:26:10.170
wie man so sagt? Dieses Zitat,

00:26:10.170 --> 00:26:12.890
die natürlichen Zahlen sind von Gott

00:26:12.890 --> 00:26:13.210
gegeben.

00:26:13.210 --> 00:26:15.730
Menschenwerke, ja.

00:26:15.730 --> 00:26:18.350
Aber da gibt es eine Grenze.

00:26:18.350 --> 00:26:20.490
Sind die komplexen Zahlen, sind die schon ausgedacht?

00:26:20.490 --> 00:26:21.830
Ja, nee.

00:26:21.830 --> 00:26:24.450
Die haben ja schon eine Entsprechung in anderen Dingen drin

00:26:24.450 --> 00:26:26.370
und die findest du überall in der Physik und so weiter.

00:26:26.370 --> 00:26:28.470
Aber dann gehst du weiter.

00:26:28.670 --> 00:26:30.410
Denn, keine Ahnung, ist die Monstergruppe

00:26:30.410 --> 00:26:31.290
ausgedacht oder nicht?

00:26:31.290 --> 00:26:31.870
Ja, ja.

00:26:31.870 --> 00:26:35.570
Wobei die Monstergruppe ein schlechtes Beispiel ist.

00:26:35.570 --> 00:26:37.410
Jetzt musst du kurz erklären, was denn die Monstergruppe ist,

00:26:37.410 --> 00:26:38.570
wenn du nicht uns drei meinst.

00:26:38.570 --> 00:26:41.990
Es gibt so eine Klassifizierung von Gruppen

00:26:41.990 --> 00:26:44.610
und in vielen Bereichen der Mathematik

00:26:44.610 --> 00:26:46.510
ist es so, dass du fünf sehr schöne

00:26:46.510 --> 00:26:47.390
Beispiele findest.

00:26:47.390 --> 00:26:50.870
Da gibt es die ganz nahe, die natürlichen Zahlen

00:26:50.870 --> 00:26:52.990
und die ganzen Zahlen

00:26:52.990 --> 00:26:55.250
und dann, die kannst du so erweitern

00:26:55.250 --> 00:26:57.430
und da gibt es irgendwie fünf verschiedene Kategorien

00:26:57.430 --> 00:26:58.410
und dann gibt es noch drei,

00:26:58.410 --> 00:26:58.650
die sind ausgedacht.

00:26:58.670 --> 00:27:01.070
Zusätzliche, die einzeln sind

00:27:01.070 --> 00:27:02.390
und die eine hat fünf Elemente

00:27:02.390 --> 00:27:03.490
und die andere hat sieben Elemente

00:27:03.490 --> 00:27:04.650
und dann gibt es noch die Monstergruppe,

00:27:04.650 --> 00:27:07.730
die hat 880.973 verschiedene Elemente.

00:27:07.730 --> 00:27:08.650
Irgendwie so komische Zahlen.

00:27:08.650 --> 00:27:11.070
Und weil die da so rausfällt

00:27:11.070 --> 00:27:12.670
aus dieser schönen Klassifizierung

00:27:12.670 --> 00:27:14.330
und hast deinen schönen Setzkasten

00:27:14.330 --> 00:27:15.730
mit den ganzen ordentlichen Gruppen drin

00:27:15.730 --> 00:27:17.450
und dann hast du drei so komische dazwischen

00:27:17.450 --> 00:27:20.170
und dann hast du da noch die riesige Monstergruppe daneben.

00:27:20.170 --> 00:27:22.150
Hat die den Namen Monstergruppe.

00:27:22.150 --> 00:27:23.070
Okay.

00:27:23.070 --> 00:27:24.990
Die ist ein schlechtes Beispiel,

00:27:24.990 --> 00:27:26.830
weil die fällt halt aus diesen Klassifizierungen raus.

00:27:26.830 --> 00:27:28.450
Aber ganz viele von diesen Dingen sind,

00:27:28.570 --> 00:27:30.490
finde ich, sind schon eindeutig ausgedacht.

00:27:30.490 --> 00:27:32.630
Die sind so,

00:27:32.630 --> 00:27:35.150
weil wir die Definitionen so gewählt haben

00:27:35.150 --> 00:27:37.130
und daraus fallen die Sachen raus.

00:27:37.130 --> 00:27:41.370
Aber ja, das ist eine schwierige Frage.

00:27:41.370 --> 00:27:42.490
Ja, aber ich würde auch eben,

00:27:42.490 --> 00:27:42.890
wenn man sagt,

00:27:42.890 --> 00:27:47.110
man kommt ja an die Dinger nicht dran.

00:27:47.110 --> 00:27:48.270
Wenn man es jetzt ausrichtet,

00:27:48.270 --> 00:27:49.950
dann fallen da zwar diese langen Zahlen raus,

00:27:49.950 --> 00:27:50.910
aber da braucht man Energie

00:27:50.910 --> 00:27:52.870
und Energie hat man aber nicht unendlich viel.

00:27:52.870 --> 00:27:54.770
Das heißt, also Shakespeare's Werk hat rauszukriegen,

00:27:54.770 --> 00:27:55.490
wird schwierig.

00:27:55.490 --> 00:27:57.510
Da braucht man irgendwie nahezu unendlich viel Energie.

00:27:57.510 --> 00:27:58.550
Das heißt, man könnte ja,

00:27:58.550 --> 00:27:59.890
sagen, okay, vielleicht existieren die...

00:27:59.890 --> 00:28:01.630
In unserem physikalischen Universum.

00:28:01.630 --> 00:28:02.290
Ja, genau.

00:28:02.290 --> 00:28:06.190
Ja, aber ich finde das halt schon irgendwie,

00:28:06.190 --> 00:28:07.390
damit könnte man schon was sagen.

00:28:07.390 --> 00:28:09.250
Wenn ich da wahnsinnig viel Energie investieren muss,

00:28:09.250 --> 00:28:09.870
um da was,

00:28:09.870 --> 00:28:11.430
kann ich zwar beliebige Sachen daraus kriegen,

00:28:11.430 --> 00:28:15.070
aber dann wird es halt dann doch wieder eher so.

00:28:15.070 --> 00:28:16.910
Also wenn ich das sozusagen in unsere Existenz holen will,

00:28:16.910 --> 00:28:17.750
dann muss ich halt irgendwie...

00:28:17.750 --> 00:28:18.510
Ja, also die Frage ist...

00:28:18.510 --> 00:28:19.030
Dann bin ich plötzlich,

00:28:19.030 --> 00:28:20.470
unterliege ich wieder all diesen Beschränkungen

00:28:20.470 --> 00:28:21.630
und dann ist es doch wieder mehr erfunden,

00:28:21.630 --> 00:28:22.990
weil, ja, was...

00:28:22.990 --> 00:28:23.610
Zeit vielleicht?

00:28:23.610 --> 00:28:24.430
Ich komme halt nicht...

00:28:24.430 --> 00:28:25.190
Kann sein, dass es es gibt,

00:28:25.190 --> 00:28:25.870
aber ich komme halt nicht dran.

00:28:25.870 --> 00:28:27.910
Aber wenn das mit Zeit nützen kann,

00:28:27.910 --> 00:28:28.530
dann ist das ja vielleicht,

00:28:28.550 --> 00:28:29.590
weil in der Zeit könnte es ja noch

00:28:29.590 --> 00:28:31.190
eine andere Dimension versteckt haben,

00:28:31.190 --> 00:28:33.790
die dann nicht nur linear...

00:28:33.790 --> 00:28:34.870
Ja, viele, aber das bringt nichts.

00:28:34.870 --> 00:28:36.590
Doch, das ist ja nicht unendlich.

00:28:36.590 --> 00:28:37.770
Stipseln und dann...

00:28:37.770 --> 00:28:38.150
Ich würde ja sagen,

00:28:38.150 --> 00:28:38.970
das ist ja im Grunde das Gleiche,

00:28:38.970 --> 00:28:40.550
ob das jetzt Zeit oder Energie,

00:28:40.550 --> 00:28:43.550
das kannst du ja gegeneinander aufrechnen.

00:28:43.550 --> 00:28:45.810
Vielleicht eine Abkürzung,

00:28:45.810 --> 00:28:46.550
so eine Meta-Abkürzung.

00:28:46.550 --> 00:28:48.310
Ja, keine Ahnung.

00:28:48.310 --> 00:28:49.230
Ich glaube, da müssen wir mal eine separate...

00:28:49.230 --> 00:28:50.090
Müssen wir mal eine separate...

00:28:50.090 --> 00:28:51.190
Müssen wir vielleicht auch irgendjemand fragen,

00:28:51.190 --> 00:28:51.550
der da mal...

00:28:51.550 --> 00:28:52.550
Keine Ahnung,

00:28:52.550 --> 00:28:53.990
das waren so meine Gedanken bei dem Hören von...

00:28:53.990 --> 00:28:55.870
Ja, vielleicht finden wir ja einen Mathematiker,

00:28:55.870 --> 00:28:58.370
der was weiß.

00:28:58.510 --> 00:29:02.830
Ja, das ist auch vielleicht eher in der Mathematik esoterisch.

00:29:02.830 --> 00:29:03.710
Weiß nicht, ob es sowas gibt.

00:29:03.710 --> 00:29:06.890
Ja, nee, aber solche Diskussionen

00:29:06.890 --> 00:29:08.530
sind in der Mathematik schon...

00:29:08.530 --> 00:29:10.750
Die kommen immer wieder,

00:29:10.750 --> 00:29:12.150
gerade in den früheren Semestern.

00:29:12.150 --> 00:29:13.930
Sobald man mal ins...

00:29:13.930 --> 00:29:15.770
Sobald man das Grundstudium abgeschlossen hat,

00:29:15.770 --> 00:29:18.410
dann hat man es akzeptiert.

00:29:18.410 --> 00:29:20.590
Das ist die Mathematik, die gibt es halt.

00:29:20.590 --> 00:29:22.430
Und da gibt es auch nicht alles.

00:29:22.430 --> 00:29:23.970
Ich hatte mal eine sehr lange Diskussion

00:29:23.970 --> 00:29:27.530
mit einem der Studenten,

00:29:28.490 --> 00:29:30.050
von mir, den ich tutoriert habe,

00:29:30.050 --> 00:29:31.770
der offensichtlich auch schon

00:29:31.770 --> 00:29:34.870
einen Hang zur Esoterik hatte

00:29:34.870 --> 00:29:35.630
und der dann gesagt hat,

00:29:35.630 --> 00:29:38.410
ja, aber du musst alles untersuchen.

00:29:38.410 --> 00:29:39.770
Warum untersuchst du das hier nicht?

00:29:39.770 --> 00:29:40.390
Und dann habe ich ihm bewiesen,

00:29:40.390 --> 00:29:42.310
ja, wenn ich das untersuche

00:29:42.310 --> 00:29:43.350
oder wenn ich diese Annahme treffe,

00:29:43.350 --> 00:29:44.970
dann führt das zu Paradoxa.

00:29:44.970 --> 00:29:46.550
Dann falle ich direkt raus,

00:29:46.550 --> 00:29:47.370
brauche ich gar nicht weitermachen.

00:29:47.370 --> 00:29:48.430
Das hat er aber nicht akzeptiert,

00:29:48.430 --> 00:29:51.210
sondern er wollte mir dann versuchen zu erklären,

00:29:51.210 --> 00:29:53.570
dass das aber eine Sinneserfahrung ist

00:29:53.570 --> 00:29:56.130
und du musst alle Sinneserfahrungen versuchen.

00:29:56.130 --> 00:29:58.470
Als Wissenschaftler musst du alles akzeptieren,

00:29:58.470 --> 00:30:00.750
das ist aber nicht so.

00:30:00.750 --> 00:30:03.310
Sondern als Mathematiker geht man da pragmatischer vor

00:30:03.310 --> 00:30:05.750
und sagt, ja, aber da brauche ich nicht weitermachen,

00:30:05.750 --> 00:30:06.530
weil das bringt mir nichts.

00:30:06.530 --> 00:30:07.610
Du bist ja eigentlich nur Statistiker.

00:30:07.610 --> 00:30:09.170
Du hast ja so eine Approximation gemacht

00:30:09.170 --> 00:30:10.550
von dem, was du glaubst, was dabei rauskommt

00:30:10.550 --> 00:30:13.290
und dann doch dich auf deine eigene Sinneserfahrung verlassen,

00:30:13.290 --> 00:30:14.710
die irgendwie da so ein bisschen

00:30:14.710 --> 00:30:16.810
in die Glocke, in die Mitte gesetzt wird.

00:30:16.810 --> 00:30:18.230
Ja, Mathematik und Sinneserfahrung.

00:30:18.230 --> 00:30:21.210
Das hat keine riesige Überschneidungsmenge.

00:30:21.210 --> 00:30:22.310
Das ist ja genau der Versuch,

00:30:22.310 --> 00:30:24.310
quasi von den Sinneserfahrungen zu abstrahieren.

00:30:24.310 --> 00:30:28.450
Aber ja, was natürlich schwierig ist.

00:30:28.450 --> 00:30:32.830
Ja, sagen wir mal zu den tatsächlich praktischen Dingen.

00:30:32.830 --> 00:30:34.430
Ich habe auch ein News-Ding.

00:30:34.430 --> 00:30:35.330
Und eins hat er noch.

00:30:35.330 --> 00:30:36.090
Ja, genau.

00:30:36.090 --> 00:30:38.950
Weil das können wir vielleicht jetzt sagen.

00:30:38.950 --> 00:30:41.150
Jetzt haben wir die ganzen Leute vergrault irgendwie mit

00:30:41.150 --> 00:30:44.370
unseren letzten drei Zuhörern.

00:30:44.370 --> 00:30:45.550
Trauen wir das jetzt auch noch zu?

00:30:45.550 --> 00:30:47.630
Du wolltest doch nicht irgendwas sagen,

00:30:47.630 --> 00:30:50.010
du hast ein Learnings vom Barcamp, was man nicht machen soll.

00:30:50.010 --> 00:30:51.210
Ach so, jetzt ist es wieder eingeweiht.

00:30:51.210 --> 00:30:52.850
Ja gut, dann machen wir es aber gnadenlos, egal.

00:30:52.850 --> 00:30:56.170
Und zwar, wir machen gleich noch was über MCP

00:30:56.170 --> 00:30:58.430
oder ich kann dazu was erzählen.

00:30:58.430 --> 00:30:58.710
Nein.

00:30:58.710 --> 00:30:59.270
Machen wir nicht?

00:30:59.270 --> 00:30:59.550
Nein.

00:30:59.550 --> 00:31:00.750
Ey!

00:31:00.750 --> 00:31:02.230
Wir machen eine eigene Folge zur MCP.

00:31:02.230 --> 00:31:03.510
Dann machen wir eine eigene Folge zur MCP?

00:31:03.510 --> 00:31:03.770
Ja.

00:31:03.770 --> 00:31:04.810
Okay, na gut.

00:31:04.810 --> 00:31:07.030
Also ich finde ja, MCP ist das Master Control Program.

00:31:07.030 --> 00:31:08.390
Genau, das fand ich auch.

00:31:08.390 --> 00:31:10.390
Ich habe da Vortragsvorgaben.

00:31:10.390 --> 00:31:12.270
Oder Metoklopramid, je nachdem, wie man möchte.

00:31:12.270 --> 00:31:15.790
Na gut, dann machen wir das heute eben nicht.

00:31:15.790 --> 00:31:17.970
Aber das müssen wir echt dann bald machen,

00:31:17.970 --> 00:31:20.270
weil sonst weiß ich das alles nicht mehr.

00:31:20.270 --> 00:31:20.910
Ich weiß das jetzt gerade.

00:31:20.910 --> 00:31:22.270
Mit dem Jochen unter den Nägeln.

00:31:22.270 --> 00:31:23.950
Ja, Mathematical Compute.

00:31:23.950 --> 00:31:28.290
Die Behörde schreibt uns an hello at python-podcast.de

00:31:28.290 --> 00:31:28.410
auf YouTube.

00:31:28.410 --> 00:31:30.550
Ich weiß nicht, ob ihr diese Folge dringend hören wollt oder nicht.

00:31:30.550 --> 00:31:31.110
Ja, okay.

00:31:31.110 --> 00:31:33.130
Meinst du, jetzt hört noch jemand zu?

00:31:33.130 --> 00:31:36.350
Ja, aber das News-Item wäre an der Stelle irgendwie

00:31:36.350 --> 00:31:38.470
hier Ex-CTO von OpenAI

00:31:38.470 --> 00:31:41.010
hat irgendwie von einem Venture Capital Fonds

00:31:41.010 --> 00:31:42.630
irgendwie zwei Milliarden gekriegt

00:31:42.630 --> 00:31:44.390
ohne irgendwas, bei einer Validierung von

00:31:44.390 --> 00:31:45.990
zehn Milliarden oder so.

00:31:45.990 --> 00:31:48.430
Also der ursprüngliche

00:31:48.430 --> 00:31:50.630
Entwickler von ChatGPG ist halt auch dabei.

00:31:50.630 --> 00:31:52.430
John Schulmann und

00:31:52.430 --> 00:31:54.070
ein paar andere Größen.

00:31:54.070 --> 00:31:56.230
Also ich meine, die ganzen

00:31:56.230 --> 00:31:58.390
ursprünglichen Leute sind ja

00:31:58.390 --> 00:31:59.430
alle nicht mehr bei OpenAI.

00:31:59.430 --> 00:32:00.530
Und

00:32:00.530 --> 00:32:03.910
naja, also das ist halt völlig irre.

00:32:03.910 --> 00:32:06.270
Die haben kein Produkt, nichts und kriegen halt so viel Geld.

00:32:06.270 --> 00:32:07.610
Das ist echt Wahnsinn.

00:32:07.610 --> 00:32:10.090
Aber wenn man sich für MCP interessiert,

00:32:10.090 --> 00:32:12.090
der aktuell beste Podcast,

00:32:12.090 --> 00:32:13.910
den man hören kann, eine Podcast-Episode,

00:32:13.910 --> 00:32:16.430
ist tatsächlich irgendwie von einem Partner

00:32:16.430 --> 00:32:18.210
von diesem Venture Capital Fonds,

00:32:18.210 --> 00:32:20.250
von einer Partnerin

00:32:20.250 --> 00:32:21.590
mit Interview mit

00:32:21.590 --> 00:32:23.910
David Soria Parra,

00:32:23.910 --> 00:32:25.090
oder ich weiß gar nicht, wie man das ausspricht,

00:32:25.090 --> 00:32:28.250
einer der beiden ist, die sich das ausgedacht

00:32:28.250 --> 00:32:30.110
haben und das ist irgendwie echt ganz nett.

00:32:30.110 --> 00:32:32.190
Ja, also

00:32:32.190 --> 00:32:34.230
aber dieser ganze Bereich ist momentan völlig irre.

00:32:34.230 --> 00:32:36.150
Das erinnert mich echt sehr stark an

00:32:36.150 --> 00:32:38.530
diese ganze DotCamp-Bubble

00:32:38.530 --> 00:32:39.990
Ende der 90er

00:32:39.990 --> 00:32:42.130
und es ist irre.

00:32:42.130 --> 00:32:43.710
Ja, naja.

00:32:43.710 --> 00:32:45.870
Genau.

00:32:45.870 --> 00:32:48.050
Aber dann machen wir das nochmal in einer anderen Episode.

00:32:48.050 --> 00:32:48.670
Okay.

00:32:48.670 --> 00:32:52.010
Ja, dann, der stellt sich jetzt

00:32:52.010 --> 00:32:53.310
endgültig Zeit für...

00:32:53.310 --> 00:32:54.650
Dann machen wir jetzt, was machen wir jetzt?

00:32:54.650 --> 00:32:58.230
Es kommt aber ein radikaler Wechsel. Achtung, jetzt kommt ein radikaler Wechsel.

00:32:58.230 --> 00:32:59.870
Der Unterbruch. Data Class Builders.

00:32:59.870 --> 00:33:00.650
Ah, okay.

00:33:00.650 --> 00:33:04.250
Bei Unfucked.ai sind, das wollte ich noch einmal

00:33:04.250 --> 00:33:05.930
kurz erwähnt haben, das hat der Johannes eben geschickt.

00:33:05.930 --> 00:33:06.830
Das war schön.

00:33:06.830 --> 00:33:09.670
Link in den Show Notes.

00:33:09.670 --> 00:33:12.130
Genau, für Business Leaders oder für Senior Developers.

00:33:12.130 --> 00:33:13.270
Wichtig.

00:33:13.270 --> 00:33:16.570
Ja, Kapitel 5.

00:33:16.570 --> 00:33:18.510
Ist ein etwas kürzeres Kapitel

00:33:18.510 --> 00:33:20.230
und ich fand's sehr

00:33:20.230 --> 00:33:21.550
gemischt beim Lesen.

00:33:21.550 --> 00:33:23.970
Ich fand, es ist so ein bisschen,

00:33:23.970 --> 00:33:25.950
es meandert so ein bisschen und bringt dann so

00:33:25.950 --> 00:33:27.910
ein paar Themen einfach noch so mit rein.

00:33:28.230 --> 00:33:28.590
Und...

00:33:28.590 --> 00:33:31.550
Sollen wir erst über das Ende reden, warum das

00:33:31.550 --> 00:33:33.490
ein Kurzmeld ist oder warum das keiner ist?

00:33:33.490 --> 00:33:35.210
Ja, ich stimme dem überhaupt gar nicht zu.

00:33:35.210 --> 00:33:37.330
Was ist denn das Argument?

00:33:37.330 --> 00:33:38.790
Warum sollte das denn ein Kurzmeld sein?

00:33:38.790 --> 00:33:41.370
Sag du doch mal, Dominik. Du findest, das ist ein Kurzmeld.

00:33:41.370 --> 00:33:42.370
Das habe ich nicht gesagt.

00:33:42.370 --> 00:33:46.030
Also, vielleicht geht es erstmal um, was es um Kapitel geht.

00:33:46.030 --> 00:33:47.830
Es geht darum, wie man

00:33:47.830 --> 00:33:49.890
Datenobjekte

00:33:49.890 --> 00:33:51.950
einfach...

00:33:51.950 --> 00:33:53.430
Instanziert ist vielleicht falsch.

00:33:53.430 --> 00:33:54.750
Deklariert.

00:33:54.750 --> 00:33:57.070
Also, mit Data Class oder Name Tuples.

00:33:57.070 --> 00:33:58.210
Eine Klasse, die nur...

00:33:58.210 --> 00:33:59.730
die nur Daten hält und keine Funktionen hat.

00:33:59.730 --> 00:34:01.050
Wie so ein Name Tuple?

00:34:01.050 --> 00:34:04.070
Ja, zum Beispiel. Das ist eine... Also, gleich auf der ersten Seite

00:34:04.070 --> 00:34:05.850
sind drei Mechanismen genannt.

00:34:05.850 --> 00:34:07.190
Oder auch wie ein Type-Tick, Johannes.

00:34:07.190 --> 00:34:10.310
Named Tuple. Nee, das nicht.

00:34:10.310 --> 00:34:12.290
Kommt direkt auf der zweiten Seite, steht direkt drauf.

00:34:12.290 --> 00:34:12.870
Das nicht.

00:34:12.870 --> 00:34:16.050
Also, es gibt Collections.NamedTuple.

00:34:16.050 --> 00:34:17.730
Das ist schon lange in der

00:34:17.730 --> 00:34:19.410
Python-Schneider-Bibliothek seit 2.6.

00:34:19.410 --> 00:34:22.070
Haben sicherlich viele schon mal gesehen.

00:34:22.070 --> 00:34:23.250
Können wir gleich noch erklären, was das ist.

00:34:23.250 --> 00:34:25.450
Dann gibt's eine neue Variante davon.

00:34:25.450 --> 00:34:27.410
Typing.NamedTuple.

00:34:28.210 --> 00:34:30.670
Und der heißeste Scheiß

00:34:30.670 --> 00:34:32.830
ist natürlich Dataclasses.Dataclass.

00:34:32.830 --> 00:34:36.630
Ein Dekorator, der diese ganzen Sachen

00:34:36.630 --> 00:34:38.590
mitnehmen soll. Am Ende geht's

00:34:38.590 --> 00:34:40.550
immer darum, Klassen zu machen, die

00:34:40.550 --> 00:34:41.570
nur Attribute haben.

00:34:41.570 --> 00:34:44.730
Und im Endeffekt

00:34:44.730 --> 00:34:46.630
ist das auch alles nur so ein bisschen Zucker

00:34:46.630 --> 00:34:48.430
obendrauf gestreut, weil man könnte prinzipiell

00:34:48.430 --> 00:34:50.470
diese ganzen Sachen alle mit Dicks machen oder sogar

00:34:50.470 --> 00:34:51.430
mit Tuples, wenn man möchte.

00:34:51.430 --> 00:34:54.730
Das heißt, das Einzige, was man gewinnt

00:34:54.730 --> 00:34:56.750
und das Einzige ist hier in sehr großen

00:34:56.750 --> 00:34:57.710
Anführungszeichen,

00:34:58.210 --> 00:34:59.410
dieses Wort Einzige,

00:34:59.410 --> 00:35:02.110
das Einzige, was man gewinnt,

00:35:02.110 --> 00:35:04.190
ist, dass das Programm besser verständlich wird.

00:35:04.190 --> 00:35:06.590
Ruff lintet

00:35:06.590 --> 00:35:08.590
zum Beispiel vom Typing-Import-NamedTuple

00:35:08.590 --> 00:35:09.770
und sagt,

00:35:09.770 --> 00:35:11.370
es ist Collections-NamedTuple, bitte.

00:35:11.370 --> 00:35:13.290
Darfst du nicht.

00:35:13.290 --> 00:35:15.070
Ja, sagen die das? Okay.

00:35:15.070 --> 00:35:18.150
Ich bin nicht ganz 100%

00:35:18.150 --> 00:35:19.930
immer einverstanden mit den Sachen, die Ruff sagt.

00:35:19.930 --> 00:35:22.030
Und ich hab heute auch einen Ruff-Cycle gefunden.

00:35:22.030 --> 00:35:24.550
Wo ich

00:35:24.550 --> 00:35:25.950
einen Hinweis gekriegt hab von Ruff,

00:35:25.950 --> 00:35:28.190
der gesagt hat, du musst das, der Generator,

00:35:28.210 --> 00:35:29.850
ist unwichtig, ist nicht wichtig,

00:35:29.850 --> 00:35:31.250
mach bitte eine Dict-Comprehension draus.

00:35:31.250 --> 00:35:32.570
Dann hab ich eine Dict-Comprehension draus gemacht.

00:35:32.570 --> 00:35:34.970
Dann hat er gesagt, ah, das ist eine unnütze Dict-Comprehension,

00:35:34.970 --> 00:35:38.190
mach bitte einen Dict-Aufruf mit Generator drin draus.

00:35:38.190 --> 00:35:39.970
Da war ich sehr amüsiert.

00:35:39.970 --> 00:35:43.470
Wie man's macht, ist falsch.

00:35:43.470 --> 00:35:45.690
Naja, Ruff hat ja auch so ein bisschen,

00:35:45.690 --> 00:35:47.270
ist ja schon so ein bisschen opinionated.

00:35:47.270 --> 00:35:49.230
Also nicht alles, was da von Ruff kommt,

00:35:49.230 --> 00:35:51.330
ist ganz richtig.

00:35:51.330 --> 00:35:53.130
Und es gibt schon einen wichtigen Unterschied zwischen

00:35:53.130 --> 00:35:54.890
NamedTuple und NamedTuple,

00:35:54.890 --> 00:35:57.290
was auch in dem Kapitel erklärt wird.

00:35:57.290 --> 00:35:57.950
Also die sind schon,

00:35:58.210 --> 00:35:58.950
sind schon unterschiedlich.

00:35:58.950 --> 00:36:02.270
Aber jetzt, wo wir wissen, was eine Dataclass ist,

00:36:02.270 --> 00:36:05.430
eine Klasse, die keine Funktionen hat,

00:36:05.430 --> 00:36:06.650
sondern nur Daten halten soll,

00:36:06.650 --> 00:36:10.370
kommt direkt in der Einleitung,

00:36:10.370 --> 00:36:13.150
sagen sie, ja, das ist eigentlich nicht so gut.

00:36:13.150 --> 00:36:16.210
Es wird an diesem Kapitel mehrmals darauf hingewiesen,

00:36:16.210 --> 00:36:18.410
dass namhafte Personen

00:36:18.410 --> 00:36:23.410
Dataclasses durchaus als Code-Smell sehen

00:36:23.410 --> 00:36:26.330
oder als Einstiegspunkt und als

00:36:26.330 --> 00:36:27.770
das ist noch nicht fertig.

00:36:28.210 --> 00:36:31.890
Und das Hauptargument, so wie ich es verstehe,

00:36:31.890 --> 00:36:34.450
ist, dass wenn du eine Dataclass hast,

00:36:34.450 --> 00:36:37.470
dann bedeutet das, dass du eine Klasse hast,

00:36:37.470 --> 00:36:39.670
die nur Daten enthält und keine Funktionen hat.

00:36:39.670 --> 00:36:42.590
Und du musst ja aber trotzdem was mit den Daten machen.

00:36:42.590 --> 00:36:46.770
Und das bedeutet, dass die eigentlich schon Funktionen hat,

00:36:46.770 --> 00:36:48.650
nur dass die irgendwo anders drinstehen.

00:36:48.650 --> 00:36:53.070
Weil es nur ein Vehikel ist und das wäre blöd?

00:36:53.070 --> 00:36:57.330
Weil, weil du, wenn, ja, weil du mit Daten halt irgendwas machen musst.

00:36:57.330 --> 00:37:00.630
Und, und eigentlich bedeutet Dataclass dann in dem Sinne,

00:37:00.630 --> 00:37:04.390
dass du deine Funktionen, die zu den Daten gehören sollten,

00:37:04.390 --> 00:37:07.270
irgendwo anders hinschiebst.

00:37:07.270 --> 00:37:09.270
Und dass du die irgendwo anders hast.

00:37:09.270 --> 00:37:13.810
Und ich stimme diesem Argument überhaupt gar nicht zu.

00:37:13.810 --> 00:37:21.030
Das, das, das hört sich für mich sehr nach,

00:37:21.030 --> 00:37:24.270
also ich meine diese Namen, die immer da gesagt bekommt,

00:37:24.270 --> 00:37:25.310
Martin Fowler und Kent Becks,

00:37:25.310 --> 00:37:27.310
das hört sich für mich sehr nach Kingdom,

00:37:27.330 --> 00:37:28.330
of the Nouns an.

00:37:28.330 --> 00:37:29.950
Das hört sich für mich sehr nach Java an.

00:37:29.950 --> 00:37:31.150
Das hört sich für mich sehr an nach,

00:37:31.150 --> 00:37:34.370
der Code ist wichtiger als die Daten.

00:37:34.370 --> 00:37:37.210
Und das stimmt halt in den, in ganz vielen Fällen nicht.

00:37:37.210 --> 00:37:40.250
In ganz vielen Fällen sind die Daten viel wichtiger als der Code.

00:37:40.250 --> 00:37:42.810
Was du da drin hast, welche Felder du hast,

00:37:42.810 --> 00:37:46.530
wie du drankommst, ist, ist in ganz vielen Anwendungsfällen,

00:37:46.530 --> 00:37:48.330
zumindest in denen, die mir so begegnen,

00:37:48.330 --> 00:37:50.770
viel wichtiger als dann, als dann,

00:37:50.770 --> 00:37:53.270
dass, dass die Funktionen direkt dabei steht

00:37:53.270 --> 00:37:55.590
und dass du die direkt dazu packst.

00:37:55.590 --> 00:37:57.170
Das ist die eine, der eine Aspekt.

00:37:57.330 --> 00:38:01.330
Du gibst der Funktionalität mehr Gewicht als den Daten.

00:38:01.330 --> 00:38:03.610
Und das ist oft nicht der Fall.

00:38:03.610 --> 00:38:06.030
Das, da, da könnte man dann, mir fällt das Zitat jetzt nicht ein,

00:38:06.030 --> 00:38:08.390
aber da, da gibt's eines von Linus Torvalds, wo er sagt,

00:38:08.390 --> 00:38:11.570
na ja, so, das ist halt quasi oft ein Fehler von Leuten,

00:38:11.570 --> 00:38:14.330
die quasi das Licht noch nicht so richtig gesehen haben,

00:38:14.330 --> 00:38:18.610
dass sie halt Wert auf Algorithmen oder oder sozusagen auf Dinge legen.

00:38:18.610 --> 00:38:21.490
Und wenn man dann mal irgendwann später da so weiß, was man tut,

00:38:21.490 --> 00:38:24.070
dann guckt man sich eher so die Datenstrukturen an

00:38:24.070 --> 00:38:25.650
und wie die eigentlich aussehen sollen.

00:38:25.650 --> 00:38:26.550
Und dann ist das mit den,

00:38:26.650 --> 00:38:30.990
mit der mit den mit der Funktionalität ist dann ganz klar und einfach.

00:38:30.990 --> 00:38:32.430
Hoffen, hoffentlich.

00:38:32.430 --> 00:38:36.430
Und ja, aber ich würde, ich würde auch denken, dass genau, also für mich,

00:38:36.430 --> 00:38:40.230
mich erinnert das auch total an irgendwie objekte orientierte Programmierung.

00:38:40.230 --> 00:38:43.330
Ende der 90er ist halt irgendwie das Heilmittel für alles.

00:38:43.330 --> 00:38:47.270
Und aber inzwischen wird man ja sagen, so na ja,

00:38:47.270 --> 00:38:50.170
das aktuelle Heilmittel für alles ist halt Domain Driven Design.

00:38:50.170 --> 00:38:55.870
Und aus der Perspektive ist es halt gibt's halt zwei unterschiedliche Arten von Dingen,

00:38:55.970 --> 00:38:57.650
für die man halt Klassen hat.

00:38:57.650 --> 00:39:01.150
Und das ist halt eine sind halt Entities,

00:39:01.150 --> 00:39:05.070
also Dinge, die halt irgendwie eine Identität haben, die halt wichtig ist.

00:39:05.070 --> 00:39:09.790
Und das andere sind halt so Value Objects und bei denen ist es halt wurscht.

00:39:09.790 --> 00:39:13.990
Also sowas wie zum Beispiel ein Objekt, das halt einen Geldbetrag repräsentiert.

00:39:13.990 --> 00:39:15.830
Und das Wichtige ist halt der Wert von dem Geld.

00:39:15.830 --> 00:39:17.830
Und aber nicht, welchen Geldschein man hat.

00:39:17.830 --> 00:39:18.990
Das ist völlig egal.

00:39:18.990 --> 00:39:25.190
Und für solche Value Objects sind halt Data Classes halt auch total super, weil es ist genau.

00:39:25.290 --> 00:39:30.190
Und aber wenn das halt State hat und man dann braucht man halt vielleicht schon Methoden und so.

00:39:30.190 --> 00:39:33.190
Also ich würde auch denken, also das ist differenzierter.

00:39:33.190 --> 00:39:34.690
Ja, es gibt noch einen.

00:39:34.690 --> 00:39:39.390
Es gibt noch einen zweiten Aspekt, der mir, der mir da fehlt.

00:39:39.390 --> 00:39:43.090
In dieser Argumentation geht es ein bisschen in das, was du eben gesagt hast.

00:39:43.090 --> 00:39:49.090
Die Leute, die sich noch nicht gesehen haben, wenn, wenn man, wenn man über Klassen nachdenkt

00:39:49.090 --> 00:39:55.270
und die sieht als, als eine Anzahl von Funktionen und ein paar Daten dazu,

00:39:55.390 --> 00:40:00.690
dann ist es ein anderer Blick auf, auf das, was man tut.

00:40:00.690 --> 00:40:04.690
Es ist ein anderer Blick auf das Programm und was ein Programm kann.

00:40:04.690 --> 00:40:09.690
Und und zwar ist es ein Blick auf einzelne Objekte.

00:40:09.690 --> 00:40:15.790
Weil, weil wenn, wenn ich so eine Klasse schreibe, dann also in Python gibt's den Self-Parameter.

00:40:15.790 --> 00:40:18.690
In anderen Sprachen heißt der This-Parameter, dann ist es immer.

00:40:18.690 --> 00:40:20.990
Es gibt immer ein Objekt, was irgendwie hervorgehoben ist.

00:40:20.990 --> 00:40:24.990
Es ist nämlich das Objekt, an dem ich gerade dran bin, in dem ich gerade drin bin.

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

00:40:32.290 --> 00:40:37.890
oder ein einzelnes Attribut von dieser Data-Class, sondern dann, dann verändert sich mein Denken hinzu.

00:40:37.890 --> 00:40:40.490
Was ist denn, wenn ich 1000 davon in der Hand habe?

00:40:40.490 --> 00:40:43.490
Was ist denn, wenn ich eine Tabelle von diesen Objekten in der Hand habe?

00:40:43.490 --> 00:40:47.590
Und und dann ist auf einmal gar nicht mehr das Einzelobjekt wichtig,

00:40:47.590 --> 00:40:51.490
sondern dann ist auf einmal die Gesamtheit der Objekte wichtig.

00:40:51.490 --> 00:40:55.190
Was ist denn, was ist denn, wenn ich, wenn ich, wenn ich eine Million,

00:40:55.290 --> 00:40:59.390
von diesen Geldbeträgen bekomme, was kann ich denn dann damit machen?

00:40:59.390 --> 00:41:07.490
Und und diese Art zu denken oder auch diese Art zu modellieren ist in der in der klassischen OOP nicht naheliegend,

00:41:07.490 --> 00:41:11.290
weil im klassischen OOP denkt man eben oft über einzelne Objekte nach,

00:41:11.290 --> 00:41:13.590
weil du eben eine Klasse schreibst, die eine Instanz hat.

00:41:13.590 --> 00:41:15.790
Und für diese eine Instanz hast du diese Funktion dran.

00:41:15.790 --> 00:41:21.490
Und wenn du die Funktion auf der einen Instanz aufrufst, dann, dann hast du diesen Blick auf die eine Instanz.

00:41:21.490 --> 00:41:25.090
Und das ist was, was, das ist schwer zu greifen.

00:41:25.190 --> 00:41:30.090
Und schwer zu erklären, aber das verändert das Denken über Programmstrukturen.

00:41:30.090 --> 00:41:33.590
Und das verändert das Denken über die Inhalte von einem Programm.

00:41:33.590 --> 00:41:39.790
Und das ist was ganz Gefährliches zu sagen, meiner Meinung nach, dass das ein Codesmail ist,

00:41:39.790 --> 00:41:42.890
weil du nur diesen einen Blick auf Programmierung haben darfst.

00:41:42.890 --> 00:41:43.590
Ja.

00:41:43.590 --> 00:41:50.690
Und deshalb, ich bin da sehr skeptisch, wenn, wenn Leute sagen, Data Classes, ja, das ist schon okay.

00:41:50.690 --> 00:41:54.990
Aber hier, das fängt direkt an, Data Classes are like children, they are okay.

00:41:55.090 --> 00:41:58.990
The starting point, but to participate as a grown up object, they need to take some responsibility.

00:41:58.990 --> 00:42:02.990
Das heißt, die, grob übersetzt, Datenklassen sind wie Kinder.

00:42:02.990 --> 00:42:04.990
Das ist okay, wenn man damit anfängt.

00:42:04.990 --> 00:42:09.990
Aber wenn man sie wie richtige Objekte verwenden will, dann müssen sie schon auch Funktionalität haben.

00:42:09.990 --> 00:42:11.990
Sehe ich, sehe ich gar nicht so.

00:42:11.990 --> 00:42:15.990
Und finde ich tatsächlich nicht gut, diesen Blick so zu haben.

00:42:15.990 --> 00:42:19.990
Aber vielleicht meint das so ein bisschen was wie, ich weiß nicht, dann zu Pedantic überzugehen,

00:42:19.990 --> 00:42:24.890
was ja fast so was ist wie eine Dataklasse, mit so was wie Validierung.

00:42:24.990 --> 00:42:26.890
Dann noch oder so.

00:42:26.890 --> 00:42:32.890
Ja, aber auch das ist noch, Pedantic ist, sind natürlich, ja, sind schon Data Classes auch, oder?

00:42:32.890 --> 00:42:38.890
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,

00:42:38.890 --> 00:42:41.890
weil das halt auch teilweise aktuelle, also das Buch ist ja relativ aktuell.

00:42:41.890 --> 00:42:46.890
Aber gerade so der auf, sozusagen das, Pedantic, ja, genau, beschränkt sich mehr so auf die Standard.

00:42:46.890 --> 00:42:54.890
Aber wobei ja auch das Vorbild von Data Classes in der Standardlib ist Atos, ist halt auch nicht, ja.

00:42:54.990 --> 00:42:59.790
Es wird auch ein paar Bands am Ende, aber mehr so als Further Reading.

00:42:59.790 --> 00:43:04.790
Ja, genau, aber sozusagen Pedantic ist ja danach erst so richtig populär geworden, würde ich sagen.

00:43:04.790 --> 00:43:09.790
Oder jetzt auch noch neuer Message-Spec, gibt's ja auch, ist ja vielleicht noch mal schneller und keine Ahnung.

00:43:09.790 --> 00:43:12.790
Aber ich, da muss man vorsichtig sein, also ich glaube, da vermischt man dann, also Pedantic,

00:43:12.790 --> 00:43:15.790
es ist natürlich auch praktisch, aber es vermischt halt zwei so Sachen.

00:43:15.790 --> 00:43:24.690
Das ist einmal diese Klassenbilder-Geschichte mit den, den Annotationen, damit man halt sozusagen, ja, das halt,

00:43:24.790 --> 00:43:28.690
kompakt hinschreiben kann, was man da für Attribute dran hat.

00:43:28.690 --> 00:43:30.690
Das ist bei Pedantic ja genauso.

00:43:30.690 --> 00:43:35.690
Und dann gibt's halt diesen Validierungsteil, der ist aber irgendwie anders, weil das hast du halt in Data Classes

00:43:35.690 --> 00:43:39.690
und halt bei Name Tuple oder so eigentlich nicht.

00:43:39.690 --> 00:43:42.690
Nicht mal bei Typing.NameTuple hast du Validierung.

00:43:42.690 --> 00:43:44.690
Nee, gar nicht, genau.

00:43:44.690 --> 00:43:46.690
Und da muss man halt extrem vorsichtig sein.

00:43:46.690 --> 00:43:54.590
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,

00:43:54.690 --> 00:44:00.590
schönen Vortrag von der letzten PyCon US, wo jetzt auch die Vorträge rausgekommen sind.

00:44:00.590 --> 00:44:02.590
Und der heißt, glaube ich, "Design Pressure".

00:44:02.590 --> 00:44:04.590
Der Entwickler heißt "Design Pressure"?

00:44:04.590 --> 00:44:06.590
Nee, der Vortrag heißt "Design Pressure".

00:44:06.590 --> 00:44:10.590
Aber ist das nicht, ist das nicht der, ist das nicht Hinek Schlaback?

00:44:10.590 --> 00:44:11.590
Genau, ja.

00:44:11.590 --> 00:44:13.590
Der ist doch auch Deutscher, oder?

00:44:13.590 --> 00:44:19.590
Ja, ja, genau, den sollte man auch echt mal fragen, weil der hat immer tolle, tolle Artikel zu diesen ganzen,

00:44:19.590 --> 00:44:22.590
er hat tolle Software geschrieben, tolle Artikel geschrieben, macht tolle Videos, toller Typ.

00:44:22.590 --> 00:44:24.490
Müssen wir mal fragen.

00:44:24.590 --> 00:44:28.490
Wenn du ihm diese Episode zeigst, möchte ich auch auf den Podcast kommen.

00:44:28.490 --> 00:44:32.490
Genau, vielleicht werden wir auch toll dann, so ein bisschen Glanz könnte auf uns abfallen, wer weiß.

00:44:32.490 --> 00:44:33.490
Mal schauen.

00:44:33.490 --> 00:44:34.490
Ja, genau.

00:44:34.490 --> 00:44:38.490
Und ja, eigentlich ist das ein Vortrag über Software-Architektur.

00:44:38.490 --> 00:44:45.490
Der hat ja, war ja auch Reviewer für hier das, das Architekturbuch, was ich immer empfehle, also das "Software Architecture with Python".

00:44:45.490 --> 00:44:49.490
Und er hat auch schon häufiger Vorträge über Software-Architektur gehalten.

00:44:49.490 --> 00:44:51.490
Und das ist auch wieder so einer.

00:44:51.490 --> 00:44:54.390
Und der startet mit dem Hot-Take.

00:44:54.490 --> 00:44:56.570
irgendwie so Dinge wie Pydentic

00:44:56.570 --> 00:44:58.270
oder irgendwie diese Geschichten

00:44:58.270 --> 00:44:59.750
Data-Validation-Dinger,

00:44:59.750 --> 00:45:02.730
das macht eure Architektur

00:45:02.730 --> 00:45:04.290
von eurem Programm kaputt.

00:45:04.290 --> 00:45:05.890
Ihr Trottel!

00:45:05.890 --> 00:45:07.590
So, und jetzt sage ich euch mal,

00:45:07.590 --> 00:45:10.270
warum das so ist. So, gut, man braucht

00:45:10.270 --> 00:45:11.670
halt irgendwie so ein, meinte so, ja,

00:45:11.670 --> 00:45:14.270
ich komme ja aus der YouTube-Welt, da macht man

00:45:14.270 --> 00:45:16.090
das so, dass man so einen Hook platzieren muss

00:45:16.090 --> 00:45:18.350
und dann muss man drauf deliveren oder nicht.

00:45:18.350 --> 00:45:19.770
You want to believe what happens next. Genau, genau.

00:45:19.770 --> 00:45:22.070
Und wenn man das halt schafft, dann ist gut und wenn man

00:45:22.070 --> 00:45:23.390
es nicht schafft, ist halt doof, aber mal schauen.

00:45:23.390 --> 00:45:26.070
Und ja,

00:45:26.070 --> 00:45:27.490
also da

00:45:27.490 --> 00:45:30.130
und ich, aber ich würde sagen, im Grunde hat er da

00:45:30.130 --> 00:45:31.870
ganz recht, ja, also ich meine, wenn man jetzt

00:45:31.870 --> 00:45:34.250
das so macht, dass man ein paar Identik

00:45:34.250 --> 00:45:36.170
Modelle verwendet, halt

00:45:36.170 --> 00:45:38.070
als Data-Classes

00:45:38.070 --> 00:45:39.830
Ersatz und die dann halt

00:45:39.830 --> 00:45:41.550
quasi benutzt, um die eigene

00:45:41.550 --> 00:45:43.910
Domain, ich weiß gar nicht, ob es da für

00:45:43.910 --> 00:45:45.790
einen guten deutschen Begriff gibt oder so, dass

00:45:45.790 --> 00:45:47.670
der Bereich, in dem die eigene

00:45:47.670 --> 00:45:49.770
Business-Logik stattfindet, zu

00:45:49.770 --> 00:45:51.690
beschreiben, dann hat man halt schon einen bösen Fehler

00:45:51.690 --> 00:45:53.750
gemacht eigentlich oder dann hat man sich in der Ecke

00:45:53.750 --> 00:45:55.210
modifiziert, aus dem man schlecht wieder rauskommt.

00:45:55.210 --> 00:45:57.370
Ja,

00:45:57.490 --> 00:45:59.710
und da muss man aufpassen, also ich meine, man kann

00:45:59.710 --> 00:46:01.810
das ja auch richtig verwenden, aber es ist

00:46:01.810 --> 00:46:03.050
halt nicht so einfach, also

00:46:03.050 --> 00:46:05.850
das ist halt schon gefährlich, also

00:46:05.850 --> 00:46:07.710
insofern bei Pidentik, also

00:46:07.710 --> 00:46:09.230
ist auch ein sehr cooles Projekt, aber

00:46:09.230 --> 00:46:11.650
man muss halt echt aufpassen, dass man da

00:46:11.650 --> 00:46:13.010
nicht, also

00:46:13.010 --> 00:46:15.670
wenn man damit auf

00:46:15.670 --> 00:46:17.270
irgendein Problem zielt, dann hat

00:46:17.270 --> 00:46:19.590
der Pidentik-Lauf auch immer so die Tendenz,

00:46:19.590 --> 00:46:21.590
so weich zu werden und so auf den eigenen Fuß runter

00:46:21.590 --> 00:46:23.130
zu neigen und

00:46:23.130 --> 00:46:25.570
wenn man im falschen Moment schießt, dann hat man ein Loch im Fuß.

00:46:25.570 --> 00:46:27.370
Kannst du nochmal kurz vergleichen,

00:46:27.490 --> 00:46:29.610
oder erklären, was du meinst, wann das

00:46:29.610 --> 00:46:31.590
passiert? Naja, also wenn du zum Beispiel

00:46:31.590 --> 00:46:32.550
von, also

00:46:32.550 --> 00:46:35.430
anstelle einer Dataclass halt ein

00:46:35.430 --> 00:46:36.510
Pidentik-Modell verwendest.

00:46:36.510 --> 00:46:39.590
Warum ist das blöd? Naja, weil du

00:46:39.590 --> 00:46:41.650
dann zum Beispiel Pidentik importierst in deiner Business-Logik.

00:46:41.650 --> 00:46:43.470
Und dann bist du davon

00:46:43.470 --> 00:46:45.510
abhängig. Ja, und

00:46:45.510 --> 00:46:47.370
genau, du hast halt

00:46:47.370 --> 00:46:48.310
dann

00:46:48.310 --> 00:46:51.470
diese Konzerns irgendwie miteinander vermischt

00:46:51.470 --> 00:46:53.650
und dann kriegst du alle möglichen Arten von

00:46:53.650 --> 00:46:55.610
üblen Design-Problemen, Architektur-Problemen,

00:46:55.610 --> 00:46:57.470
ähm, genau.

00:46:57.490 --> 00:46:57.750
Ja.

00:46:57.750 --> 00:47:01.610
Welche? Naja, äh, also

00:47:01.610 --> 00:47:03.530
zum Beispiel, wenn das dann halt jetzt

00:47:03.530 --> 00:47:05.490
nicht, äh, schnell

00:47:05.490 --> 00:47:07.250
genug ist und du willst jetzt was anderes,

00:47:07.250 --> 00:47:08.810
eine schnellere Art, irgendwie die Sachen zu,

00:47:08.810 --> 00:47:11.430
weil du hast das jetzt gekoppelt an, du spreifst das

00:47:11.430 --> 00:47:13.590
als JSON raus und liest JSON rein und so,

00:47:13.590 --> 00:47:15.470
was ja Pidentik auch ganz

00:47:15.470 --> 00:47:17.190
gut kann, und jetzt stellst du halt fest so, oh,

00:47:17.190 --> 00:47:19.450
jetzt, äh, oder gibst das über eine API raus

00:47:19.450 --> 00:47:21.250
und jetzt stellst du halt fest so, oh shit,

00:47:21.250 --> 00:47:23.050
aber, also ich meine, das ist relativ schnell,

00:47:23.050 --> 00:47:25.450
aber das ist nicht so schnell, wie es geht. Also es geht

00:47:25.450 --> 00:47:27.310
natürlich, es gibt da Dinge draußen, die sind deutlich schneller als

00:47:27.310 --> 00:47:27.450
Pidentik.

00:47:27.490 --> 00:47:29.170
Pidentik. Und jetzt stellst du halt fest so, okay,

00:47:29.170 --> 00:47:31.570
hm, irgendwie Pidentik ist zu langsam für mich.

00:47:31.570 --> 00:47:33.650
Du wirst Pidentik niemals

00:47:33.650 --> 00:47:35.210
austauschen können. Da kannst du dein Ding neu schreiben.

00:47:35.210 --> 00:47:37.530
Das ist halt, äh, kannst du einfach völlig vergessen.

00:47:37.530 --> 00:47:39.070
Und,

00:47:39.070 --> 00:47:40.530
äh, ja,

00:47:40.530 --> 00:47:43.430
das ist halt, wenn man, wenn man das

00:47:43.430 --> 00:47:45.190
halt quasi nicht so, die,

00:47:45.190 --> 00:47:47.350
nicht so gebaut hat, dass man halt Pidentik

00:47:47.350 --> 00:47:49.430
austauschen kann, dann hat man halt, so ähnlich wie

00:47:49.430 --> 00:47:50.990
bei, man hält von den Django,

00:47:50.990 --> 00:47:53.130
wenn man Models Model erbt, ne, also

00:47:53.130 --> 00:47:55.350
oft kann das ja auch okay sein und bei Pidentik kann das ja

00:47:55.350 --> 00:47:57.390
auch oft okay sein, aber wenn du halt ein Großprojekt hast,

00:47:57.390 --> 00:47:58.370
und dann, äh,

00:47:58.370 --> 00:48:01.430
hast du halt irgendwann, willst du

00:48:01.430 --> 00:48:03.330
Dinge anders machen, äh, dann kann es

00:48:03.330 --> 00:48:04.190
gut sein, dass das nicht mehr geht.

00:48:04.190 --> 00:48:07.250
Ja, okay, klar, natürlich.

00:48:07.250 --> 00:48:08.330
Äh,

00:48:08.330 --> 00:48:09.710
ja,

00:48:09.710 --> 00:48:13.550
hm, fand das jetzt nicht so, dass, äh,

00:48:13.550 --> 00:48:14.390
Kinder gegen ein Win.

00:48:14.390 --> 00:48:17.290
Sollen wir, sollen wir mal zurückkommen zum

00:48:17.290 --> 00:48:19.330
Buch? Ich glaube, da sind tatsächlich noch ein paar interessante

00:48:19.330 --> 00:48:20.750
Sachen drin. Ähm,

00:48:20.750 --> 00:48:23.370
diese, es werden

00:48:23.370 --> 00:48:25.210
hier drei Alternativen, äh,

00:48:25.210 --> 00:48:27.090
äh, genannt, also Collections.name,

00:48:27.090 --> 00:48:28.870
tuple, typing, name, tuple und, äh, data

00:48:28.870 --> 00:48:31.010
class. Und warum nicht

00:48:31.010 --> 00:48:31.850
typedict?

00:48:31.850 --> 00:48:34.930
Äh, typedict. Ja, das ist tatsächlich hier, äh,

00:48:34.930 --> 00:48:36.990
äh, da lese ich, äh,

00:48:36.990 --> 00:48:38.890
ich zitiere, typedict may seem like another

00:48:38.890 --> 00:48:40.550
data class builder. Ja, ist es nicht. Genau.

00:48:40.550 --> 00:48:42.950
Typedict does not build concrete classes that you

00:48:42.950 --> 00:48:44.490
can instantiate. Genau, es ist ein, äh,

00:48:44.490 --> 00:48:46.950
macht keine Klassen. 25 oder so was, kommt, geht ja noch mal drauf ein.

00:48:46.950 --> 00:48:48.850
Ja. Genau, also das, äh,

00:48:48.850 --> 00:48:50.670
das macht nicht solche Klassen, wie wir sie hier

00:48:50.670 --> 00:48:52.430
brauchen, sondern das ist nur, wir brauchen...

00:48:52.430 --> 00:48:54.710
Type annotations für Dicts, aber es funktioniert anders.

00:48:54.710 --> 00:48:56.770
Genau, und es ist eine böse Falle, also,

00:48:56.790 --> 00:48:58.510
ich hab, weiß nicht, wie oft ich das schon gesehen hab, dass

00:48:58.510 --> 00:49:00.810
Leute denken, dass sie dann sicher werden

00:49:00.810 --> 00:49:02.590
und, äh, aber nie MyPy oder

00:49:02.590 --> 00:49:04.050
sowas ausführen und dann,

00:49:04.050 --> 00:49:06.590
wenn man's dann mal ausführt, äh, kriegt man halt

00:49:06.590 --> 00:49:08.550
gesagt so, ja, also das, was du da machst mit

00:49:08.550 --> 00:49:09.790
dem typedict, das ist bei uns alles falsch.

00:49:09.790 --> 00:49:12.390
Nie einer gemerkt.

00:49:12.390 --> 00:49:14.510
Hat dir das Claude erzählt?

00:49:14.510 --> 00:49:16.690
Nee, das, äh, mir begegnet

00:49:16.690 --> 00:49:18.770
sowas ständig, also... Hat sich jemand ausgedacht.

00:49:18.770 --> 00:49:20.470
Ja. Okay,

00:49:20.470 --> 00:49:22.550
ähm, aber im Endeffekt funktionieren doch

00:49:22.550 --> 00:49:24.610
diese drei, ähm, diese drei Verfahren

00:49:24.610 --> 00:49:26.450
alle irgendwie gleich. Du hast, du musst irgendwie eine

00:49:26.490 --> 00:49:28.590
Definition schreiben und du sagst, ich möchte jetzt eine Klasse

00:49:28.590 --> 00:49:30.630
haben, die soll einen, einen Namen haben

00:49:30.630 --> 00:49:32.530
und die soll folgende Attribute

00:49:32.530 --> 00:49:34.770
haben. Und die werden dann getypt

00:49:34.770 --> 00:49:36.470
und getyped hinted. Ja,

00:49:36.470 --> 00:49:38.570
entweder getypt oder auch nicht getypt. Musst du ja nicht

00:49:38.570 --> 00:49:40.390
unbedingt getypt haben.

00:49:40.390 --> 00:49:42.830
Und selbst wenn du es getypt hast,

00:49:42.830 --> 00:49:44.870
kannst du es ja immer noch anders verwenden, kannst du ja immer noch...

00:49:44.870 --> 00:49:46.550
Selbst wenn du deine Dataclass schön mit

00:49:46.550 --> 00:49:48.690
Types versehen hast, äh, kannst

00:49:48.690 --> 00:49:49.910
du ja immer noch reintun, was du möchtest.

00:49:49.910 --> 00:49:52.570
Also, ein Tupe wäre jetzt immutable, dann muss ich ein Frozen

00:49:52.570 --> 00:49:53.950
machen bei der Dataclass, ne? Ja.

00:49:53.950 --> 00:49:56.190
Genau, aber das hat mit, auch das hat mit

00:49:56.190 --> 00:49:58.250
den Types nichts zu tun, äh, du kannst auch,

00:49:58.250 --> 00:50:00.330
also, äh, auch das Typing.Name

00:50:00.330 --> 00:50:01.850
Tupe kann ja, äh, andere

00:50:01.850 --> 00:50:04.750
Sachen nehmen. Das ist ja erstmal nur eine Absichtserklärung.

00:50:04.750 --> 00:50:06.470
Ich beabsichtige,

00:50:06.470 --> 00:50:08.370
dass dieses Attribut nur ein Int sein

00:50:08.370 --> 00:50:09.790
kann, aber da hält dich niemand davon ab.

00:50:09.790 --> 00:50:12.030
Hm, kannst auch eine Liste reinmachen.

00:50:12.030 --> 00:50:13.290
Das ist ja generell bei Python so.

00:50:13.290 --> 00:50:18.110
Okay, ähm, aber ich find's interessant,

00:50:18.110 --> 00:50:20.570
weil, ähm, im Wesentlichen

00:50:20.570 --> 00:50:22.250
gibt's da zwei verschiedene

00:50:22.250 --> 00:50:24.210
Syntax-Möglichkeiten.

00:50:24.210 --> 00:50:25.890
Und die eine, das ist die von

00:50:25.890 --> 00:50:27.670
NameTupel kommt, wo man halt sagt, ich möchte

00:50:27.670 --> 00:50:29.770
einen NameTupel haben und dann ruf ich die Funktion

00:50:29.770 --> 00:50:32.070
oder ruf ich den, den Konstruktor

00:50:32.070 --> 00:50:34.090
NameTupel als Konstruktor auf und sag eben,

00:50:34.090 --> 00:50:36.190
die, diese Datenklasse soll

00:50:36.190 --> 00:50:38.110
den Namen, hier haben sie das

00:50:38.110 --> 00:50:40.070
Beispiel Coordinate haben, also Koordinate haben

00:50:40.070 --> 00:50:41.990
und die hat zwei Attribute, Lat und Lon. Und dann krieg ich da

00:50:41.990 --> 00:50:43.890
eine Klasse raus. Oder besser gesagt,

00:50:43.890 --> 00:50:45.970
ich krieg nur einen Konstruktor raus für eine Klasse. Ich krieg ja

00:50:45.970 --> 00:50:48.210
nicht meine ganze Klasse raus, sondern ich krieg nur den Konstruktor

00:50:48.210 --> 00:50:49.390
raus. Ähm,

00:50:49.390 --> 00:50:51.990
und, und das ist so ein bisschen irgendwie so eine

00:50:51.990 --> 00:50:53.950
textuelle Beschreibung. Und ich hab da immer

00:50:53.950 --> 00:50:55.630
so ein bisschen Hemmungen. Das fühlt sich so ein bisschen an,

00:50:55.630 --> 00:50:57.550
als ob man irgendwie um

00:50:57.550 --> 00:50:57.890
diesen,

00:50:57.890 --> 00:51:01.850
ja, um so Python außenrum

00:51:01.850 --> 00:51:03.650
geht und, und um

00:51:03.650 --> 00:51:05.790
den, um den Interpreter außenrum

00:51:05.790 --> 00:51:07.190
geht und dass man irgendwelche

00:51:07.190 --> 00:51:09.590
langsamen, magischen Sachen macht.

00:51:09.590 --> 00:51:11.450
Aber ich glaube tatsächlich,

00:51:11.450 --> 00:51:13.630
man muss da weg davon und muss sagen, okay, dieses,

00:51:13.630 --> 00:51:15.650
dieses Herstellen der Klasse, das ist langsam,

00:51:15.650 --> 00:51:17.590
aber das ist, das ist ja egal, weil das macht

00:51:17.590 --> 00:51:19.530
man nur einmal. Das Instanziieren,

00:51:19.530 --> 00:51:20.850
das ist dann so schnell wie ein Tupel.

00:51:20.850 --> 00:51:23.450
Und das ist nicht, und das, die

00:51:23.450 --> 00:51:25.370
verbrauchen auch nicht mehr Speicher. Also diese Namen

00:51:25.370 --> 00:51:27.510
werden nicht bei jedem, bei jeder Instanz dazu gespeichert.

00:51:27.510 --> 00:51:29.290
Ist nicht wie bei einem Dictionary.

00:51:29.290 --> 00:51:31.210
Ja. Sondern es ist eben ein Tupel.

00:51:31.210 --> 00:51:33.090
Und im Endeffekt ist es ein Tupel mit so einem

00:51:33.090 --> 00:51:35.630
kleines bisschen Karamellsoße

00:51:35.630 --> 00:51:37.130
obendrauf gestreut, wo man eben

00:51:37.130 --> 00:51:39.130
nicht Index 0, Index 1

00:51:39.130 --> 00:51:41.050
und Index 2 hat, sondern wo man eben Latitude

00:51:41.050 --> 00:51:43.070
und Longitude sagen kann. Ja. Und das

00:51:43.070 --> 00:51:44.950
bedeutet dann Index 0 und Index 1. Ja, das sieht

00:51:44.950 --> 00:51:47.110
viel schneller aus tatsächlich. Also, also lange Zeit

00:51:47.110 --> 00:51:48.990
war, war ein Tupel auch irgendwie deutlich

00:51:48.990 --> 00:51:51.070
schneller. Also, wobei nichts ist so schnell

00:51:51.070 --> 00:51:53.050
wie tatsächlich einfach, äh, quasi

00:51:53.050 --> 00:51:55.070
wenn man eine Klasse instanziiert.

00:51:55.110 --> 00:51:57.170
Aber Name-Tupel war dann halt die schnellste Alternative.

00:51:57.170 --> 00:51:59.290
Ähm, äh,

00:51:59.290 --> 00:52:01.070
und wenn man jetzt, früher war das

00:52:01.070 --> 00:52:02.370
halt oft so, oder,

00:52:02.370 --> 00:52:04.930
wenn man halt, äh,

00:52:04.930 --> 00:52:07.010
Attribut-Lookup macht, äh,

00:52:07.010 --> 00:52:09.050
dann ist das bei Name-Tupel natürlich schneller.

00:52:09.050 --> 00:52:10.950
Äh, also irgendwas

00:52:10.950 --> 00:52:12.890
Punkt Instanz, Punkt irgendein Attribut.

00:52:12.890 --> 00:52:15.270
Äh, weil Tupel Index.

00:52:15.270 --> 00:52:16.950
Genau, genau. Und inzwischen

00:52:16.950 --> 00:52:18.850
macht aber Dataclasses und auch,

00:52:18.850 --> 00:52:21.070
äh, glaube ich, Name-Tupel, wenn man

00:52:21.070 --> 00:52:23.010
davon erbt, per Default irgendwie Slots.

00:52:23.010 --> 00:52:24.710
Vielleicht erzähle ich jetzt auch Unsinn. Das müsste,

00:52:24.850 --> 00:52:26.470
muss man irgendjemand nachgucken, ne? Aber ich glaube,

00:52:26.470 --> 00:52:28.050
das ist tatsächlich so. Das Fazit ist,

00:52:28.050 --> 00:52:29.430
das Fazit ist für mich,

00:52:29.430 --> 00:52:32.990
das hat gar keine praktische Auswirkung. In keinem

00:52:32.990 --> 00:52:35.210
Fall, den ich je hatte, hätte das eine Auswirkung

00:52:35.210 --> 00:52:37.130
gehabt, dass die Konstruktion von diesen Daten-

00:52:37.130 --> 00:52:39.010
Objekten zu langsam gewesen wäre.

00:52:39.010 --> 00:52:40.970
Das heißt, es ist auch wieder so ein Jagdnifal. Das ist so eine,

00:52:40.970 --> 00:52:43.130
so eine Angst, die ich mal im Kopf

00:52:43.130 --> 00:52:44.990
hab, die aber eigentlich in dem Moment noch

00:52:44.990 --> 00:52:45.750
nicht berechtigt ist.

00:52:45.750 --> 00:52:48.950
Große API-Responses, oder,

00:52:48.950 --> 00:52:50.890
oder, oder wo du Zeugs reinkriegst, weil da

00:52:50.890 --> 00:52:52.850
kann das schon, so bei, so

00:52:52.850 --> 00:52:54.710
wenn du halt irgendwie 10.000 Dinger,

00:52:54.710 --> 00:52:56.630
in Objekte verwandelst und dann ist halt

00:52:56.630 --> 00:52:58.690
deine Objekte erzeugt. Ja, aber gut, wenn da Jason reinkommt,

00:52:58.690 --> 00:53:00.630
hast du ja eh schon verloren. Ja, aber es gibt ja

00:53:00.630 --> 00:53:02.570
schnelle Jason-Parser, aber wenn du, du musst es ja

00:53:02.570 --> 00:53:04.630
nochmal zu Objekten machen. Aber du kriegst ja auch einen Dikt.

00:53:04.630 --> 00:53:05.410
Krass.

00:53:05.410 --> 00:53:07.830
Ja. Wie auch immer,

00:53:07.830 --> 00:53:10.310
für mich der Takeaway ist,

00:53:10.310 --> 00:53:12.550
ich hab da immer so ein bisschen Hemmungen, ich hab immer

00:53:12.550 --> 00:53:14.110
so ein bisschen Hemmungen, so ein Name-Tupel zu machen,

00:53:14.110 --> 00:53:16.550
weil das nicht so richtig in die Syntax passt, weil

00:53:16.550 --> 00:53:18.590
das anders aussieht, als, als andere

00:53:18.590 --> 00:53:20.470
Sachen aussehen, aber es ist gar nicht schlecht.

00:53:20.470 --> 00:53:22.350
Es ist gar nicht falsch,

00:53:22.350 --> 00:53:24.570
ein Name-Tupel zu machen. Ja, aber was meinst

00:53:24.570 --> 00:53:26.390
du, das sieht anders aus? Also ich finde, wenn du das jetzt

00:53:26.390 --> 00:53:28.270
in dieser, vom Typing oder

00:53:28.270 --> 00:53:30.430
vom Collections importierst, dann kannst du ja Klasse schreiben.

00:53:30.430 --> 00:53:32.190
Sieht ja fast aus wie eine Dataklasse.

00:53:32.190 --> 00:53:34.530
Ja, genau, das kannste

00:53:34.530 --> 00:53:36.170
machen. Das sieht auch normal aus.

00:53:36.170 --> 00:53:37.670
Das ist auch was, was ich empfehlen würde.

00:53:37.670 --> 00:53:40.070
Das

00:53:40.070 --> 00:53:42.230
kannst du machen, aber dieser Konstruktor,

00:53:42.230 --> 00:53:44.390
der Name-Tupel-Konstruktor, also das ist tatsächlich

00:53:44.390 --> 00:53:46.310
alles klein geschrieben und dann musst du da Strings

00:53:46.310 --> 00:53:46.770
reingeben.

00:53:46.770 --> 00:53:49.970
Ja, das ist schon hässlich.

00:53:49.970 --> 00:53:51.950
Was daran auch komisch ist halt,

00:53:51.950 --> 00:53:54.210
also einmal, ich find's auch ehrlich gesagt ein bisschen hässlich,

00:53:54.430 --> 00:53:56.210
weil das ist uralt, ja, das gibt's schon ewig.

00:53:56.210 --> 00:53:57.690
Das ist super praktisch.

00:53:57.690 --> 00:54:00.270
Das ist natürlich manchmal super praktisch, wenn man halt

00:54:00.270 --> 00:54:01.070
irgendwie auf alten

00:54:01.070 --> 00:54:03.950
Interpreter-Versionen rumguckt, aber

00:54:03.950 --> 00:54:06.130
genau, das funktioniert wahrscheinlich bis,

00:54:06.130 --> 00:54:08.190
also da gibt's nichts mehr, was noch läuft, was irgendwie

00:54:08.190 --> 00:54:10.470
älter ist. Das funktioniert wirklich überall,

00:54:10.470 --> 00:54:12.230
aber also was halt auch

00:54:12.230 --> 00:54:14.270
blöd ist, ist, dass es halt, es geht zwar auch,

00:54:14.270 --> 00:54:16.550
dass man da Methoden dranhängt, aber das ist auch voll umständlich.

00:54:16.550 --> 00:54:17.910
Da muss man halt auch erstmal

00:54:17.910 --> 00:54:20.090
die Funktionen anzeugen und dann muss man

00:54:20.090 --> 00:54:22.110
das Ding irgendwie da dranhängen und so. Und es geht

00:54:22.110 --> 00:54:24.370
alles, klar, aber es ist halt schon so, wenn das als Methode

00:54:24.370 --> 00:54:26.150
dransteht, ist das schon leichter

00:54:26.150 --> 00:54:28.170
verständlich, wie das passiert. Ja, da kann man ganz viel

00:54:28.170 --> 00:54:30.090
hässliche Magie mitmachen. Ich glaube, wenn man so Codecoil

00:54:30.090 --> 00:54:32.250
spielt oder sowas, dann ist das eine Disziplin, die man so spielen kann.

00:54:32.250 --> 00:54:34.130
Und wenn man Leute verwirren will oder

00:54:34.130 --> 00:54:35.830
so ein bisschen Obfuscation, ne?

00:54:35.830 --> 00:54:37.370
Nee, nee, nee, das ist nicht gut.

00:54:37.370 --> 00:54:40.410
Nee, dann gehen wir über zur Typing-Name-Tupel, weil Typing-Name-Tupel

00:54:40.410 --> 00:54:41.390
hat nämlich Klassen-Syntax.

00:54:41.390 --> 00:54:44.110
Und die ist tatsächlich, ich find die sehr

00:54:44.110 --> 00:54:44.410
schön.

00:54:44.410 --> 00:54:47.670
Es wird gleich noch

00:54:47.670 --> 00:54:50.170
ein Problem beschrieben werden, was ich auch tatsächlich

00:54:50.170 --> 00:54:52.090
sehe, jetzt, wo ich's gelesen hab.

00:54:52.090 --> 00:54:54.310
Aber es ist so ein bisschen

00:54:54.310 --> 00:54:55.770
so, wie man sich's vorstellt. Wenn man

00:54:55.770 --> 00:54:58.170
aus einer anderen Sprache kommt, dann sagt man, ich möchte eine

00:54:58.170 --> 00:55:00.110
Klasse haben und die soll folgende Attribute haben. Und das

00:55:00.110 --> 00:55:02.210
ist hier genauso, weil die Klassen-Syntax halt so ist,

00:55:02.210 --> 00:55:04.310
dass ich sag, Class, dann den Klassennamen

00:55:04.310 --> 00:55:05.830
abgeleitet von Name-Tupel.

00:55:05.830 --> 00:55:08.350
Was aber so ein bisschen

00:55:08.350 --> 00:55:10.710
nicht ganz

00:55:10.710 --> 00:55:12.230
richtig ist. Weil die MRO

00:55:12.230 --> 00:55:14.210
da gar nicht drin ist, weil das nur eine Meta-Klasse ist,

00:55:14.210 --> 00:55:15.990
weil da nämlich gar nicht tatsächlich ein Name-Tupel drin ist,

00:55:15.990 --> 00:55:17.830
sondern ein richtiges Tupel. Genau.

00:55:17.830 --> 00:55:19.570
Und dann innerhalb von der Klasse

00:55:19.570 --> 00:55:22.150
geb ich einfach die Attribute an, die ich

00:55:22.150 --> 00:55:23.910
haben möchte mit ihrem Typen. Also hier in dem Fall

00:55:23.910 --> 00:55:24.250
Beispiel

00:55:24.250 --> 00:55:26.110
Latitude, Doppelpunkt, Float

00:55:26.110 --> 00:55:28.130
und Longitude, Doppelpunkt, Float.

00:55:28.130 --> 00:55:30.070
Und das bedeutet, dass diese

00:55:30.070 --> 00:55:32.010
Klasse automatisch einen Konstruktor bekommt,

00:55:32.010 --> 00:55:34.030
der eben diese

00:55:34.030 --> 00:55:35.930
zwei Attribute nimmt, entweder

00:55:35.930 --> 00:55:36.990
Named oder Unnamed.

00:55:36.990 --> 00:55:40.070
Das war so der Hauptanweis. Du möchtest jetzt nicht irgendwie

00:55:40.070 --> 00:55:41.790
eine Klasse schreiben, wo du reinschreibst in Init,

00:55:41.790 --> 00:55:44.110
nimm folgende Argumente, Latitude und Longitude

00:55:44.110 --> 00:55:45.990
und dann machst du Save, Init, Lot, Gleich,

00:55:45.990 --> 00:55:48.170
Lang und da. Genau, kannst du alles

00:55:48.170 --> 00:55:50.030
selber machen, aber es wird dir alles abgenommen, wenn du

00:55:50.030 --> 00:55:52.530
das hier machst. Genau. Durch Meta-Klassen-Magie.

00:55:52.530 --> 00:55:54.190
Und im

00:55:54.190 --> 00:55:55.990
Endeffekt. Jetzt ist es schon das

00:55:55.990 --> 00:55:57.950
zweite Mal, dass ich jetzt wieder das Trinkspiel mache, was wir

00:55:57.950 --> 00:56:00.070
letztes Mal angefangen haben, Johannes. Ja, ich

00:56:00.070 --> 00:56:02.130
weiß, das ist mein Wort, was

00:56:02.130 --> 00:56:04.150
zu oft kommt. Wir sagen das jetzt nicht

00:56:04.150 --> 00:56:04.530
nochmal.

00:56:04.530 --> 00:56:07.990
Bei

00:56:07.990 --> 00:56:09.990
Data-Klassen ist es ja im Grunde genommen

00:56:09.990 --> 00:56:12.150
das Gleiche, dass du so eine gewisse

00:56:12.150 --> 00:56:14.010
du sagst, welche Klassennamen

00:56:14.010 --> 00:56:15.990
du haben möchtest, welche Attribute du haben möchtest, welchen

00:56:15.990 --> 00:56:18.030
Typ du haben möchtest. Und da ist natürlich

00:56:18.030 --> 00:56:20.390
leicht, weitere Methoden hinzuzufügen.

00:56:20.390 --> 00:56:21.730
Die schreibst du einfach in den Klassenkörper ran.

00:56:21.730 --> 00:56:23.650
Ja, das mache ich auch.

00:56:24.130 --> 00:56:25.770
Ich gehe eigentlich schon raus aus dem Data-Klass.

00:56:25.770 --> 00:56:27.870
Aber ich mache das tatsächlich relativ häufig, dass man irgendwie auffällt,

00:56:27.870 --> 00:56:29.990
ich hätte noch gerne kann und doch das Maximum und die Summe

00:56:29.990 --> 00:56:31.170
berechnen von irgendwas. Ja.

00:56:31.170 --> 00:56:33.990
Das war schon super praktisch. Ja, ja, natürlich.

00:56:33.990 --> 00:56:35.670
Das ist auch richtig. Genau.

00:56:35.670 --> 00:56:37.770
Das ist ja dann das, was hier der

00:56:37.770 --> 00:56:39.990
Onkel Bob würde sagen, das ist gut,

00:56:39.990 --> 00:56:42.130
bist du auf dem richtigen Weg. I just implemented

00:56:42.130 --> 00:56:42.970
that last night.

00:56:42.970 --> 00:56:45.970
Genau.

00:56:45.970 --> 00:56:47.570
Es ist interessant, weil

00:56:47.570 --> 00:56:49.890
da ist ja so ein bisschen Triggery drin hier.

00:56:49.890 --> 00:56:51.830
Dieses Name-Tupel, dieses Typing-Name-Tupel,

00:56:51.830 --> 00:56:53.970
das ist ja gar keine normale Klasse, sondern das ist ja

00:56:53.970 --> 00:56:55.030
eine Meta-Klasse.

00:56:55.030 --> 00:56:57.910
Ja. Was ist denn jetzt so eine

00:56:57.910 --> 00:56:59.690
Meta-Klasse? Eine Meta-Klasse?

00:56:59.690 --> 00:57:00.570
Welches Kapitel ist das?

00:57:00.570 --> 00:57:03.090
Das ist weiter hinten, glaube ich.

00:57:03.090 --> 00:57:04.010
Da machen wir noch ein bisschen.

00:57:04.010 --> 00:57:07.590
Dynamic Attribute and Property.

00:57:07.590 --> 00:57:08.830
Wir verschieben das.

00:57:08.830 --> 00:57:10.750
Das Meta-Programm ist Kapitel 24.

00:57:10.750 --> 00:57:13.770
Kapitel 24, also

00:57:13.770 --> 00:57:15.790
nur noch 19 weitere Episoden

00:57:15.790 --> 00:57:17.450
und schon sind wir über das Buch Fluren passen.

00:57:17.450 --> 00:57:18.050
Ja.

00:57:18.050 --> 00:57:21.210
Dazwischen natürlich noch die anderen.

00:57:21.210 --> 00:57:23.230
Okay, aber dann

00:57:23.910 --> 00:57:25.630
dieses Kapitel macht ja jetzt hier eine totale,

00:57:25.630 --> 00:57:27.690
total interessante Biege, weil

00:57:27.690 --> 00:57:29.730
das Nächste ist ja jetzt,

00:57:29.730 --> 00:57:31.610
ah, übrigens, wir müssen Type-Ins machen.

00:57:31.610 --> 00:57:33.050
Wir müssen noch ein bisschen über Typing sprechen.

00:57:33.050 --> 00:57:36.110
Und das fand ich interessant, als ich es gelesen

00:57:36.110 --> 00:57:37.710
habe, weil das war so

00:57:37.710 --> 00:57:39.490
ein Twist, den ich nicht erwartet hatte.

00:57:39.490 --> 00:57:42.150
Er hat deswegen

00:57:42.150 --> 00:57:43.810
darüber gesprochen, weil er gesagt hat, dass es

00:57:43.810 --> 00:57:45.810
total cool ist, wenn man jetzt Match-Case

00:57:45.810 --> 00:57:47.330
benutzt. Und das liegt auch daran, dass das

00:57:47.330 --> 00:57:49.890
Ja, aber das ist dann der dritte, das ist der nächste Twist.

00:57:49.890 --> 00:57:51.950
Ach so. Ja, das wurde ja

00:57:51.950 --> 00:57:53.870
gerade erst eingeführt, als das Buch rauskam. Ich glaube, deswegen ist da so

00:57:53.870 --> 00:57:54.890
die Emphasis auch so ein bisschen

00:57:54.890 --> 00:57:57.970
tiefer. Ja, vielleicht war es auch nicht genügend

00:57:57.970 --> 00:57:59.370
für ein, ups, jetzt geht hier mein

00:57:59.370 --> 00:58:01.350
Aufnahmekomputer gerade aus.

00:58:01.350 --> 00:58:05.610
Vielleicht ist es auch noch nicht groß genug

00:58:05.610 --> 00:58:07.870
für ein eigenes Kapitel, aber ich finde es interessant,

00:58:07.870 --> 00:58:09.410
dass hier so Type-Ins

00:58:09.410 --> 00:58:11.850
oder Type-Annotations

00:58:11.850 --> 00:58:13.930
so in einem

00:58:13.930 --> 00:58:15.950
ganz anderen Kapitel

00:58:15.950 --> 00:58:17.310
versteckt wird.

00:58:17.310 --> 00:58:19.890
Und auch

00:58:19.890 --> 00:58:20.790
nicht so, dass man es jetzt,

00:58:20.790 --> 00:58:22.530
also ich habe mir ja die,

00:58:23.810 --> 00:58:25.670
ich habe mir ja die Inhaltsangabe

00:58:25.670 --> 00:58:27.350
hier die Sachen durchgelesen alle, aber

00:58:27.350 --> 00:58:28.830
da habe ich da mitgerechnet,

00:58:28.830 --> 00:58:31.370
dass das jetzt hier so eine Abbiegung

00:58:31.370 --> 00:58:33.070
macht und dann sagt, ach so, übrigens, hier

00:58:33.070 --> 00:58:34.950
lassen Sie über Typen sprechen.

00:58:34.950 --> 00:58:39.430
Also kommt natürlich nachher nochmal, aber

00:58:39.430 --> 00:58:41.410
ja.

00:58:41.410 --> 00:58:43.750
Ja, ist natürlich schon auch so ein bisschen naheliegend,

00:58:43.750 --> 00:58:45.310
weil man muss halt jetzt dann irgendwie,

00:58:45.310 --> 00:58:47.170
wenn man schon erklärt, wie das

00:58:47.170 --> 00:58:49.270
da bei diesen Class-Bildern

00:58:49.270 --> 00:58:50.750
funktioniert, dass man halt

00:58:50.750 --> 00:58:53.550
über die Typ-Annotation

00:58:53.550 --> 00:58:55.370
im Grunde halt

00:58:55.370 --> 00:58:57.490
ja, schon sagt, was das

00:58:57.490 --> 00:58:59.270
dann sein soll, dann muss man ja auch erklären, wie das

00:58:59.270 --> 00:59:01.450
funktioniert und dann kann man ja, da muss man ja irgendwie

00:59:01.450 --> 00:59:03.190
andere Annotations

00:59:03.190 --> 00:59:05.390
irgendwie erwähnen und dann, ah, dann ist man ja

00:59:05.390 --> 00:59:07.190
mittendrin in den Typ-Annotationen irgendwie.

00:59:07.190 --> 00:59:09.450
Ja, das, man muss

00:59:09.450 --> 00:59:11.350
da so ein bisschen in den Wald reinlaufen und sich so ein bisschen

00:59:11.350 --> 00:59:13.430
drin verlaufen, ja, also ich verstehe es

00:59:13.430 --> 00:59:15.010
schon, aber es war irgendwie, das

00:59:15.010 --> 00:59:16.030
hatte ich nicht erwartet.

00:59:16.030 --> 00:59:19.590
Und da kommt auch das eine Problem

00:59:19.590 --> 00:59:21.310
raus mit den Data-Classes, also wenn ich so

00:59:21.310 --> 00:59:23.170
eine Data-Class schreibe, dann habe ich ja diesen

00:59:23.170 --> 00:59:24.850
Dekorator vorne dran, Data-Class,

00:59:24.850 --> 00:59:27.210
Data-Class ist doch Data-Class,

00:59:27.210 --> 00:59:28.890
dann schreibe ich Class den

00:59:28.890 --> 00:59:31.130
Klassennamen, also in dem Fall jetzt hier Class-Coordinate

00:59:31.130 --> 00:59:33.010
und im

00:59:33.010 --> 00:59:34.870
Klassenkörper schreibe ich dann die Attribute, die

00:59:34.870 --> 00:59:36.810
die Instanzen haben sollen. Und

00:59:36.810 --> 00:59:38.770
das, das wird hier

00:59:38.770 --> 00:59:40.990
in dem Kapitel sehr deutlich gemacht und das finde ich auch

00:59:40.990 --> 00:59:42.910
sehr richtig und sehr gut, weil

00:59:42.910 --> 00:59:44.870
das da tatsächlich eigentlich eine

00:59:44.870 --> 00:59:47.290
Abwendung ist von dem, was Python normalerweise

00:59:47.290 --> 00:59:49.190
macht. Weil wenn ich normalerweise

00:59:49.190 --> 00:59:51.190
hier ein Attribut

00:59:51.190 --> 00:59:52.970
reinschreibe, also wenn ich Latitude,

00:59:52.970 --> 00:59:54.830
gleich X reinschreibe

00:59:54.830 --> 00:59:56.050
und Longitude gleich Y,

00:59:56.050 --> 00:59:59.190
dann ist es ja erstmal ein Klassenattribut.

00:59:59.190 --> 01:00:02.850
Und hier in dem Fall,

01:00:02.850 --> 01:00:04.470
wenn ich jetzt aber Latitude

01:00:04.470 --> 01:00:06.550
Doppelpunkt Float, also Latitude

01:00:06.550 --> 01:00:08.190
getypt mit dem

01:00:08.190 --> 01:00:10.650
Float-Typ hinschreibe, dann ist es

01:00:10.650 --> 01:00:12.590
auf einmal ein Instanzattribut.

01:00:12.590 --> 01:00:13.830
Und

01:00:13.830 --> 01:00:15.970
dieser Unterschied wird hier

01:00:15.970 --> 01:00:18.690
in einer gewissen Länge diskutiert,

01:00:18.690 --> 01:00:20.750
weil der wirklich sehr wichtig ist, weil es sehr

01:00:20.750 --> 01:00:22.850
leicht ist, diesen Unterschied zu machen, diese beiden

01:00:22.850 --> 01:00:24.870
Sachen sind sehr nah aneinander und die sehen sehr gleich

01:00:24.870 --> 01:00:27.010
aus, machen aber dann andere Dinge

01:00:27.010 --> 01:00:28.810
und sind eigentlich anders als

01:00:28.810 --> 01:00:30.850
das, was in Python so

01:00:30.850 --> 01:00:32.850
normal ist. Das heißt, da muss man schon

01:00:32.850 --> 01:00:33.930
besondere Vorsicht.

01:00:33.930 --> 01:00:36.830
Du musst nochmal bitte den Unterschied genau erklären

01:00:36.830 --> 01:00:38.610
zwischen diesem Instanzattribut und dem

01:00:38.610 --> 01:00:40.630
Klassenattribut. Ich habe nämlich schon mehrfach Menschen

01:00:40.630 --> 01:00:42.630
gesehen, die das so gewohnt waren,

01:00:42.630 --> 01:00:45.130
dass das halt dann immer ein Instanzattribut

01:00:45.130 --> 01:00:46.850
ist, was man da direkt unter die Klasse

01:00:46.850 --> 01:00:48.870
schreibt, dass sich das erst später

01:00:48.870 --> 01:00:50.750
festgestellt hat. In anderen Sprachen ist das

01:00:50.750 --> 01:00:52.650
ja auch so. Wenn du in Java oder C oder

01:00:52.650 --> 01:00:54.470
sonst wo bist, dann ist es genau so, dann sagst du,

01:00:54.470 --> 01:00:56.590
die Klasse soll folgende Instanzattribute

01:00:56.590 --> 01:00:57.030
enthalten.

01:00:57.030 --> 01:01:00.530
Und in Python ist es aber anders. In

01:01:00.530 --> 01:01:02.050
Python sagst du, die Klasse soll folgende

01:01:02.050 --> 01:01:04.850
Klassenattribute enthalten. Der Hauptunterschied

01:01:04.850 --> 01:01:06.750
zwischen Klassenattributen und Instanz

01:01:06.750 --> 01:01:08.610
ist halt, dass ein Klassenattribut

01:01:08.610 --> 01:01:10.370
ist halt für alle Instanzen der Klasse gleich.

01:01:10.370 --> 01:01:12.290
Und das ist halt wahrscheinlich überraschender.

01:01:12.290 --> 01:01:14.490
Also diese Eigenschaft ist mir auch schon

01:01:14.490 --> 01:01:16.170
mehrfach blöd auf die Füße gefallen.

01:01:16.170 --> 01:01:18.510
Aber so ist es halt.

01:01:18.510 --> 01:01:20.330
Genau. Da muss man vorsichtig sein.

01:01:20.330 --> 01:01:22.530
Gerade wenn du das setzt, irgendwo an

01:01:22.530 --> 01:01:24.430
einer existierenden Entität, dann wäre das

01:01:24.430 --> 01:01:24.890
für alle

01:01:24.890 --> 01:01:28.370
Gesetz? Ja, also wenn das eine Klasse ist,

01:01:28.370 --> 01:01:30.530
sagst du halt jetzt, schaffst

01:01:30.530 --> 01:01:32.570
es irgendwie, dass tatsächlich irgendwie

01:01:32.570 --> 01:01:34.170
ein Klassenattribut

01:01:34.170 --> 01:01:36.470
defaultmäßig zum Beispiel eine Liste ist.

01:01:36.470 --> 01:01:37.910
Also indem du das auf Ecke Klammer auf

01:01:37.910 --> 01:01:40.390
Klammer zu setzt oder

01:01:40.390 --> 01:01:42.490
so, dann... Oh, das ist jetzt

01:01:42.490 --> 01:01:44.310
aber ganz hässlich. Und du

01:01:44.310 --> 01:01:46.530
überschreibst das nicht nachher noch mal

01:01:46.530 --> 01:01:48.370
irgendwie in einem Konstruktor oder so,

01:01:48.370 --> 01:01:50.370
was ja dann oft passiert, dann ist es kein

01:01:50.370 --> 01:01:52.330
Problem mehr, weil in dem Moment, wo man es neu

01:01:52.330 --> 01:01:54.370
setzt oder so, ist es dann ein Instanzattribut

01:01:54.370 --> 01:01:56.270
und nicht mehr ein Klassenattribut.

01:01:56.270 --> 01:01:58.290
Merkt man auch nichts von, ist vielleicht ein bisschen

01:01:58.290 --> 01:02:00.210
gefährlich. Aber wenn das nicht passiert,

01:02:00.210 --> 01:02:02.410
dann passieren plötzlich wilde

01:02:02.410 --> 01:02:04.350
Dinge, weil dann ist das halt für alle Instanzen

01:02:04.350 --> 01:02:06.430
gleich. Und es funktioniert zwar,

01:02:06.430 --> 01:02:08.350
dass man da Sachen appendet, aber da sind dann halt

01:02:08.350 --> 01:02:10.090
nicht nur die Sachen, die man selber appendet hat drin, sondern

01:02:10.090 --> 01:02:12.370
alle anderen auch. Und das ist halt... Deswegen ist das eine Konvention,

01:02:12.370 --> 01:02:13.970
wie man das macht. Und zwar kann man das nennen

01:02:13.970 --> 01:02:16.550
Cache-irgendwas

01:02:16.550 --> 01:02:18.370
oder... Dann hast du

01:02:18.370 --> 01:02:20.450
einen Cache für alle Instanzen

01:02:20.450 --> 01:02:22.290
dieser Klasse. Dann kannst du damit merken, alle

01:02:22.290 --> 01:02:24.350
Errors, die aufgetreten sind, ever oder sowas.

01:02:24.350 --> 01:02:26.370
Ja, also das hat durchaus Gründe,

01:02:26.370 --> 01:02:27.410
weshalb man sowas haben will.

01:02:27.410 --> 01:02:30.230
Das ist ganz gut, aber damit kann man

01:02:30.230 --> 01:02:31.990
sich hart infuschen. Also tatsächlich, das

01:02:31.990 --> 01:02:33.990
hatten wir, glaube ich, auch schon ein paar Mal gesagt,

01:02:33.990 --> 01:02:36.330
dieses Instanzieren von

01:02:36.330 --> 01:02:38.330
leeren Dicts oder

01:02:38.330 --> 01:02:40.130
Listen ist in Python generell

01:02:40.130 --> 01:02:42.130
sehr gefährlich. Wenn man das als Default-Argument

01:02:42.130 --> 01:02:44.070
macht, sollte man nicht... Ja, ganz

01:02:44.070 --> 01:02:46.370
gefährlich, ja. Ja, und

01:02:46.370 --> 01:02:48.210
generell Klassen, also ich mache ja oft

01:02:48.210 --> 01:02:50.270
Programmierkurse und das

01:02:50.270 --> 01:02:52.250
ist wirklich schwierig zu verstehen, was eine

01:02:52.250 --> 01:02:54.290
Klasse ist und was eine Instanz von einer Klasse ist.

01:02:54.290 --> 01:02:56.470
Und wie die zusammenhängen

01:02:56.470 --> 01:02:57.930
und was die

01:02:57.930 --> 01:03:00.050
zusammentun und warum die das so tun.

01:03:00.050 --> 01:03:02.170
Und das ist echt, echt schwierig.

01:03:02.170 --> 01:03:04.270
Und jetzt gibt es hier eben

01:03:04.270 --> 01:03:06.090
genau diesen subtilen Unterschied hier.

01:03:06.090 --> 01:03:08.170
Das eine, das sieht genauso aus wie das andere,

01:03:08.170 --> 01:03:10.050
aber wenn du nicht Doppelpunkt

01:03:10.050 --> 01:03:12.390
int hinterschreibst, dann ist es auf einmal

01:03:12.390 --> 01:03:13.690
eine Klasseninstanz.

01:03:13.690 --> 01:03:15.310
Ja.

01:03:15.310 --> 01:03:18.310
Und das ist schon, das ist wirklich was

01:03:18.310 --> 01:03:19.350
sehr Subtiles und

01:03:19.350 --> 01:03:22.210
das geht eben weg von dem, was Python normalerweise

01:03:22.210 --> 01:03:24.310
macht. Normalerweise schreibst du in die Klasse

01:03:24.310 --> 01:03:26.290
die Klasseninstanzen rein und

01:03:26.290 --> 01:03:28.190
hier schreibst du auf einmal, wie

01:03:28.190 --> 01:03:30.050
in anderen Programmiersprachen, wo es sich natürlich

01:03:30.050 --> 01:03:32.210
anfühlt, schreibst du die Instanzeigenschaften

01:03:32.210 --> 01:03:34.070
rein, die Instanzattribute.

01:03:34.070 --> 01:03:36.010
Wobei dir dann natürlich zum Beispiel

01:03:36.010 --> 01:03:38.230
Dataclasses schon auch auf die Finger haut, wenn du

01:03:38.230 --> 01:03:40.250
da irgendwie einfach eine Liste

01:03:40.250 --> 01:03:42.310
hinschreibst oder so, dann sagt dir das

01:03:42.310 --> 01:03:43.990
so, nee, nee, das kannst du aber nicht machen. Du musst ja

01:03:43.990 --> 01:03:45.590
irgendwie dann Default,

01:03:45.590 --> 01:03:47.590
wie heißt das Ding,

01:03:47.590 --> 01:03:50.110
Field, Factory

01:03:50.110 --> 01:03:51.470
angeben, genau.

01:03:52.210 --> 01:03:53.830
Aber da kommt es natürlich rum.

01:03:53.830 --> 01:03:55.110
Es gibt ja viele

01:03:55.110 --> 01:03:57.710
Mutable Classes oder viele Dinge, die

01:03:57.710 --> 01:03:59.610
du da reintun kannst, die eben nicht. Das ist nur jetzt

01:03:59.610 --> 01:04:01.710
für Liste und für Dictionary und für Set

01:04:01.710 --> 01:04:02.310
ist es

01:04:02.310 --> 01:04:05.490
Special Cased, weil die so häufig

01:04:05.490 --> 01:04:07.490
vorkommen. Genau. Ja, also

01:04:07.490 --> 01:04:08.610
das ist gefährlich, das stimmt.

01:04:08.610 --> 01:04:11.310
Ich weiß auch nicht, wie

01:04:11.310 --> 01:04:13.030
ihr das so macht. Also

01:04:13.030 --> 01:04:15.750
normalerweise,

01:04:15.750 --> 01:04:17.450
also sicher, auch wenn man

01:04:17.450 --> 01:04:19.590
jetzt Konstrukturen hat von normalen Klassen,

01:04:19.590 --> 01:04:21.390
da ist es ja auch gefährlich, wenn man da

01:04:21.390 --> 01:04:21.950
irgendwie,

01:04:22.210 --> 01:04:24.550
zum Beispiel annotiert, das ist jetzt

01:04:24.550 --> 01:04:26.510
eine Liste und dann sagt man gleich und dann

01:04:26.510 --> 01:04:28.430
Ecke, Klammer auf, Klammer zu und so.

01:04:28.430 --> 01:04:30.590
Viele Leute denken sich wahrscheinlich nichts dabei, wenn sie das tun, aber das ist

01:04:30.590 --> 01:04:31.930
halt auch schon brutal gefährlich.

01:04:31.930 --> 01:04:34.470
Also ich mache immer Liste und dann

01:04:34.470 --> 01:04:35.550
gleich None.

01:04:35.550 --> 01:04:38.270
Das ist das Pattern, das muss man sich einfach

01:04:38.270 --> 01:04:40.530
merken. Das ist ein doofes Pattern, aber man muss es sich

01:04:40.530 --> 01:04:42.290
einfach merken. Aber das ist ja auch

01:04:42.290 --> 01:04:44.450
nicht so schön, weil einmal

01:04:44.450 --> 01:04:46.250
ist dann deine Typ-Annotation halt

01:04:46.250 --> 01:04:48.730
so ein bisschen, also einmal ist sie halt hässlich,

01:04:48.730 --> 01:04:50.530
würde ich jetzt mal so sagen, mit diesem

01:04:50.530 --> 01:04:52.010
Pipe None,

01:04:52.210 --> 01:04:53.230
das ist halt schon so, uh.

01:04:53.230 --> 01:04:56.730
Es gibt doch diesen schönen Unknown-Type

01:04:56.730 --> 01:04:58.350
hin. Der kannst du auch optional nehmen, ist auch hässlich.

01:04:58.350 --> 01:05:00.610
Unknown gibt es da noch

01:05:00.610 --> 01:05:02.550
dazu? Ja, aber Unknown, uh,

01:05:02.550 --> 01:05:04.130
da ist ja schon, wer kennt denn das? Annie.

01:05:04.130 --> 01:05:05.510
Ja, uh.

01:05:05.510 --> 01:05:08.450
Oder Annie. Es gab noch

01:05:08.450 --> 01:05:10.210
einen dritten Type-Hint, der da so ein bisschen spezieller war,

01:05:10.210 --> 01:05:12.290
dass das klar ist, dass das irgendwann in der Liste hängen könnte.

01:05:12.290 --> 01:05:14.310
Also was ich an der Stelle mache,

01:05:14.310 --> 01:05:16.470
also mir gefällt das alles nicht. Also okay,

01:05:16.470 --> 01:05:18.490
Leute machen das, aber ich finde auch,

01:05:18.490 --> 01:05:19.950
es funktioniert nicht richtig, wenn man jetzt

01:05:19.950 --> 01:05:22.050
dem statischen Typ-Checker sagt,

01:05:22.270 --> 01:05:24.490
das kann jetzt auch None sein, dann hat man damit

01:05:24.490 --> 01:05:26.090
so einen riesen, dann hat man sich

01:05:26.090 --> 01:05:27.650
einen riesen Haufen Würmer.

01:05:27.650 --> 01:05:30.290
Dann sagt er immer dann, tatsächlich irgendwann im Code

01:05:30.290 --> 01:05:32.610
sagt er immer, hey, du hast ja nicht auf None geprüft

01:05:32.610 --> 01:05:34.470
und dann lintet dir das alles, weil du musst

01:05:34.470 --> 01:05:36.050
vorher mal so ein Assert-is-not-None machen.

01:05:36.050 --> 01:05:38.270
Ja, oder noch schlimmer, also wenn es dann halt nur

01:05:38.270 --> 01:05:40.410
nervt, ist ja noch, was noch schlimmer

01:05:40.410 --> 01:05:42.350
ist, ist halt, dass Bugs dann halt

01:05:42.350 --> 01:05:44.450
irgendwie unerkannt, dass halt, du kannst

01:05:44.450 --> 01:05:45.010
plötzlich

01:05:45.010 --> 01:05:48.230
Illegal-State repräsentieren. Und normalerweise sagt man

01:05:48.230 --> 01:05:50.210
immer so, also make

01:05:50.210 --> 01:05:51.970
Illegal-State unrepresentable.

01:05:51.970 --> 01:05:53.370
Ja, das sollte gar nicht passieren dürfen.

01:05:53.370 --> 01:05:55.930
Der Typ-Checker sollte dir sagen, so, nee, das darf nicht None

01:05:55.930 --> 01:05:57.990
sein. Und du hast dieses None ja

01:05:57.990 --> 01:05:59.810
nur benutzt, damit du es initialisieren

01:05:59.810 --> 01:06:01.270
konntest. Das ist ja, hat ja gar nicht,

01:06:01.270 --> 01:06:03.050
wenn in deiner Logik nicht None

01:06:03.050 --> 01:06:05.610
vorkommen darf, was ja dann oft bei diesen

01:06:05.610 --> 01:06:07.270
Initialisierungsgeschichten gar nicht so ist,

01:06:07.270 --> 01:06:09.290
dann darf das da nicht drinstehen.

01:06:09.290 --> 01:06:11.910
Und wenn du es trotzdem möglich machst,

01:06:11.910 --> 01:06:14.070
dass es drinsteht, dann machst du halt eine Büchse

01:06:14.070 --> 01:06:15.270
Backwürmer auf,

01:06:15.270 --> 01:06:17.410
die dich irgendwann beißen werden. Und

01:06:17.410 --> 01:06:18.750
die Frage ist halt nur,

01:06:18.750 --> 01:06:21.210
warum ist das?

01:06:21.730 --> 01:06:23.230
Und was machst du? Oder umgekehrt,

01:06:23.230 --> 01:06:24.250
umgekehrt, du

01:06:24.250 --> 01:06:27.570
machst es wie in Java, wo jeder Typ optional ist

01:06:27.570 --> 01:06:29.530
und hast dann auf einmal an, in jeder

01:06:29.530 --> 01:06:31.370
Scheißfunktion, in die du reingehst, musst du acht

01:06:31.370 --> 01:06:33.470
Variablen auf Null überprüfen. Ja, das ist

01:06:33.470 --> 01:06:35.390
natürlich auch, genau, das ist auch hässlich. Also insofern wird es dann,

01:06:35.390 --> 01:06:37.290
nee, also ich würde sagen,

01:06:37.290 --> 01:06:39.510
aus der Perspektive betrachtet, musst du eigentlich

01:06:39.510 --> 01:06:41.450
sagen, nee, das darf nicht None sein

01:06:41.450 --> 01:06:43.330
dürfen und nicht optional sein dürfen. Die

01:06:43.330 --> 01:06:45.070
allermeisten Sachen, die man so hat,

01:06:45.070 --> 01:06:46.610
die sind nicht optional.

01:06:46.610 --> 01:06:49.390
Also du würdest sagen, es ist eine leere Liste und wenn da eine

01:06:49.390 --> 01:06:51.390
leere Liste reinkommt, musst du es neu initialisieren.

01:06:51.490 --> 01:06:52.730
Das kannst du, das kann, ja,

01:06:52.730 --> 01:06:54.810
ja, das war da auch wieder verwirrend.

01:06:54.810 --> 01:06:57.750
Nee, kannst du ja auch

01:06:57.750 --> 01:06:59.730
nicht gut machen. Nee, was ich an der Stelle

01:06:59.730 --> 01:07:01.570
mache, ist, ich nehme ein, das ist ein

01:07:01.570 --> 01:07:03.470
Trick von. Oh, eine Sentinel. Eine Sentinel. Ja,

01:07:03.470 --> 01:07:05.230
genau, von Luke Plant

01:07:05.230 --> 01:07:07.130
hat er das, da habe ich das her. Ja.

01:07:07.130 --> 01:07:09.490
Und zwar definiere ich mir

01:07:09.490 --> 01:07:11.310
einen Typ namens Auto

01:07:11.310 --> 01:07:13.710
und der ist

01:07:13.710 --> 01:07:15.150
definiert über eine Klasse

01:07:15.150 --> 01:07:17.490
unterstrich Auto und das

01:07:17.490 --> 01:07:19.410
Ding, es macht nichts, außer

01:07:19.410 --> 01:07:20.490
dass es nach,

01:07:21.250 --> 01:07:23.130
äh, Falls

01:07:23.130 --> 01:07:25.270
evaluiert und

01:07:25.270 --> 01:07:27.410
ähm, äh, in

01:07:27.410 --> 01:07:29.140
In Kindern dann.

01:07:29.140 --> 01:07:31.320
Auto, Auto, Auto, Auto, Auto.

01:07:31.320 --> 01:07:32.700
Und den Typ Any hat.

01:07:32.700 --> 01:07:35.520
Und dann musst du nicht oder irgendwas sagen,

01:07:35.520 --> 01:07:37.040
sondern Any geht halt überall durch.

01:07:37.040 --> 01:07:38.440
Das heißt, wenn du mal eine Auto hinschreibst,

01:07:38.440 --> 01:07:40.460
dann kann man die Typ-Annotation richtig lassen

01:07:40.460 --> 01:07:42.280
und Auto geht halt trotzdem durch.

01:07:42.280 --> 01:07:45.860
Aber Any geht überall durch, das ist doch falsch.

01:07:45.860 --> 01:07:47.820
Nee, aber das ist so.

01:07:47.820 --> 01:07:50.060
Aber das ist falsch.

01:07:50.060 --> 01:07:51.260
Dadurch, dass Auto Any hat,

01:07:51.260 --> 01:07:56.160
ist es egal, welche Typ-Annotation du vorher dran geschrieben hast,

01:07:56.160 --> 01:07:56.940
ist es richtig.

01:07:57.020 --> 01:07:58.600
Das ist übrigens PEP 696, oder?

01:07:58.600 --> 01:08:00.240
Das weiß ich nicht.

01:08:00.240 --> 01:08:01.260
Ich kenne die nicht auswendig.

01:08:01.260 --> 01:08:04.040
Wie, du kennst nicht alle PEPs auswendig?

01:08:04.040 --> 01:08:05.960
Ja, Entschuldigung.

01:08:05.960 --> 01:08:06.840
Schwer enttäuscht.

01:08:06.840 --> 01:08:11.720
Und dann kannst du halt in dem Kurzdruck zum Beispiel dann halt sagen,

01:08:11.720 --> 01:08:15.180
if das Ding oder if not das Ding,

01:08:15.180 --> 01:08:17.780
dann machst du, das kannst du ja mit none auch nicht machen.

01:08:17.780 --> 01:08:19.240
Bei none musst du in Cocktailweise immer sagen,

01:08:19.240 --> 01:08:22.760
if das da ist none, dann setzt es neu.

01:08:22.760 --> 01:08:25.520
Und ja, also.

01:08:25.520 --> 01:08:26.880
Ja, okay, aber wie würdest du das,

01:08:26.880 --> 01:08:27.560
wie würdest du das mit dem Auto machen?

01:08:27.560 --> 01:08:28.440
Das habe ich jetzt nicht verstanden.

01:08:28.440 --> 01:08:30.500
Eine eigene Klasse Auto.

01:08:30.500 --> 01:08:31.420
Es ist halt Auto.

01:08:31.420 --> 01:08:32.400
Ja.

01:08:32.400 --> 01:08:34.940
Und, also das importiere ich dann irgendwo her.

01:08:34.940 --> 01:08:37.220
Und, also der Default-Wert ist Auto.

01:08:37.220 --> 01:08:39.240
Die Annotation ist so, wie sie halt sein soll.

01:08:39.240 --> 01:08:39.800
Also zum Beispiel.

01:08:39.800 --> 01:08:40.600
Ja, okay, und dann?

01:08:40.600 --> 01:08:43.800
Und dann sage ich, if das Ding, if not das Ding,

01:08:43.800 --> 01:08:45.580
dann setzt es neu.

01:08:45.580 --> 01:08:48.100
Okay, aber wenn jemand eine leere Liste reingeben würde,

01:08:48.100 --> 01:08:49.160
würdest du es dann auch neu setzen?

01:08:49.160 --> 01:08:52.000
Also der Unterschied ist tatsächlich nur,

01:08:52.000 --> 01:08:53.860
dass er halt none sparen kann.

01:08:53.860 --> 01:08:56.860
Aber dann würde ja,

01:08:56.860 --> 01:08:58.860
wenn das, wenn das halt nicht okay wäre,

01:08:58.860 --> 01:09:00.260
dann würde ja der Type-Checker meckern.

01:09:00.260 --> 01:09:01.940
Also du hast halt nicht,

01:09:01.940 --> 01:09:03.700
wenn das Ding ist none.

01:09:03.700 --> 01:09:05.860
Nee, du hast einen semantischen Unterschied eingeführt.

01:09:05.860 --> 01:09:08.900
Ja, if not, schreibst halt nicht,

01:09:08.900 --> 01:09:10.960
if not foo, dann, also ne,

01:09:10.960 --> 01:09:11.980
du schreibst if not foo,

01:09:11.980 --> 01:09:13.920
dann foo neu setzen, oder ne,

01:09:13.920 --> 01:09:15.360
weil das halt Auto ist immer fault,

01:09:15.360 --> 01:09:16.840
sagst nicht, foo ist none,

01:09:16.840 --> 01:09:18.380
weil dann sparst du halt einfach das none,

01:09:18.380 --> 01:09:18.680
sondern.

01:09:18.680 --> 01:09:19.720
Genau, ich spare mir das none

01:09:19.720 --> 01:09:21.900
und ich spare mir die ist-Geschichte

01:09:21.900 --> 01:09:23.960
und ich mache es halt so,

01:09:23.960 --> 01:09:24.680
wie es Leute mit none machen.

01:09:24.680 --> 01:09:26.300
Wobei die ist-Geschichte könntest du ja,

01:09:26.720 --> 01:09:28.820
du könntest ja immer noch fx-is-auto machen.

01:09:28.820 --> 01:09:29.940
Das könnte ich auch machen, ja.

01:09:29.940 --> 01:09:31.340
Ich würde tatsächlich sogar sagen,

01:09:31.340 --> 01:09:32.400
du musst das machen,

01:09:32.400 --> 01:09:35.080
weil, nehmen wir mal an,

01:09:35.080 --> 01:09:36.660
ich rufe diese Funktion,

01:09:36.660 --> 01:09:37.720
die du mir gerade eben gesagt hast,

01:09:37.720 --> 01:09:38.620
oder diesen Konstruktor,

01:09:38.620 --> 01:09:41.420
rufe ich auf mit dem Parameter

01:09:41.420 --> 01:09:43.940
und der Parameter ist eine leere Liste.

01:09:43.940 --> 01:09:46.900
Und ich behalte die aber außen vor

01:09:46.900 --> 01:09:48.140
und benutze die an einer anderen Stelle nochmal.

01:09:48.140 --> 01:09:49.920
Das heißt, ich pende da Sachen rein

01:09:49.920 --> 01:09:52.500
und das hast du jetzt genau den Use-Case,

01:09:52.500 --> 01:09:54.520
den Python so gefährlich macht,

01:09:54.520 --> 01:09:55.700
den hast du jetzt kaputt gemacht.

01:09:56.580 --> 01:09:58.820
Und jetzt überlassen wir jetzt,

01:09:58.820 --> 01:10:00.020
wir starten jetzt eine Umfrage.

01:10:00.020 --> 01:10:01.220
Schreiben Sie uns an

01:10:01.220 --> 01:10:02.780
hallo.python-podcast.de

01:10:02.780 --> 01:10:04.660
ob das gut oder schlecht ist.

01:10:04.660 --> 01:10:05.080
Schlecht?

01:10:05.080 --> 01:10:07.740
Hä? Ja, genau.

01:10:07.740 --> 01:10:09.800
Also ich bin auch noch nicht endgültig zufrieden.

01:10:09.800 --> 01:10:10.540
Ich halte mich zurück,

01:10:10.540 --> 01:10:11.920
damit die Hörer was sagen können.

01:10:11.920 --> 01:10:14.580
Aber also ich mache es halt jetzt gerade so,

01:10:14.580 --> 01:10:16.300
ich leide dann auch mal ein bisschen drunter,

01:10:16.300 --> 01:10:17.400
dass zum Beispiel LLMs,

01:10:17.400 --> 01:10:18.840
die halt das gewohnt sind,

01:10:18.840 --> 01:10:20.880
dass Leute da none oder none schreiben,

01:10:20.880 --> 01:10:22.540
denn die sind immer total verwirrt.

01:10:22.540 --> 01:10:23.680
So, was will der denn da jetzt?

01:10:23.680 --> 01:10:24.420
Und dann sagt er mir schon wieder,

01:10:24.420 --> 01:10:25.440
ich soll dieses Auto verwenden.

01:10:25.440 --> 01:10:26.180
Hä?

01:10:26.440 --> 01:10:28.060
Ich verstehe nur Bahnhof.

01:10:28.060 --> 01:10:30.660
Machen sie irgendwie komische Sachen.

01:10:30.660 --> 01:10:31.860
Und ja, ja, gut,

01:10:31.860 --> 01:10:32.560
ich schreibe das dann auch immer

01:10:32.560 --> 01:10:34.700
in die entsprechenden Rules mit rein,

01:10:34.700 --> 01:10:36.200
aber es hilft ja auch nur so begrenzt.

01:10:36.200 --> 01:10:38.240
Es ist ein Kreuz, ich weiß auch nicht.

01:10:38.240 --> 01:10:40.500
Der Code ist einfach zu wenig standardkonform.

01:10:40.500 --> 01:10:41.820
Der ist zu wenig gewöhnlich.

01:10:41.820 --> 01:10:43.300
Kann man den ja noch lesen,

01:10:43.300 --> 01:10:44.340
wenn er über ein Auto steht,

01:10:44.340 --> 01:10:45.320
weiß jeder, was gemeint ist?

01:10:45.320 --> 01:10:48.080
Nee, das wissen Leute dann halt dummerweise auch nicht,

01:10:48.080 --> 01:10:49.220
das wäre auch schon passiert.

01:10:49.220 --> 01:10:50.740
Wenn das das LLM schon nicht weiß.

01:10:50.740 --> 01:10:52.180
Ja, genau.

01:10:56.300 --> 01:10:59.360
Okay, aber das Kapitel macht ja jetzt noch eine zweite Abbiegung,

01:10:59.360 --> 01:11:00.560
der Dominik hat es ja schon erwähnt,

01:11:00.560 --> 01:11:03.900
und zwar Richtung Pattern-Matching-Class-Instances.

01:11:03.900 --> 01:11:07.200
Auf einmal kommt hier in dem Kapitel noch Pattern-Matching.

01:11:07.200 --> 01:11:08.320
Hooray.

01:11:08.320 --> 01:11:09.880
Was?

01:11:09.880 --> 01:11:11.740
Ist doch schön, Pattern-Matching, oder?

01:11:11.740 --> 01:11:13.740
Das ist ja ein zweiter Twist in the end.

01:11:13.740 --> 01:11:14.680
Ja.

01:11:14.680 --> 01:11:19.820
Da war ich ja überhaupt gar nicht drauf vorbereitet.

01:11:19.820 --> 01:11:21.740
Dominik, warum magst du Pattern-Matching?

01:11:21.740 --> 01:11:22.340
Erklär mal.

01:11:22.340 --> 01:11:25.340
Weil ich damit relativ verschiedene,

01:11:26.160 --> 01:11:28.700
das ist erst blöd, weil das mag man eigentlich nicht.

01:11:28.700 --> 01:11:30.480
Also ich kann verschiedene Objekte entgegennehmen

01:11:30.480 --> 01:11:32.260
und die checken und dann gucken.

01:11:32.260 --> 01:11:33.820
Okay, und wie geht das? Erklär mal, wie das geht.

01:11:33.820 --> 01:11:35.940
Du machst ein Match und ein Case auf,

01:11:35.940 --> 01:11:38.280
matchst dann deine Variable, die du hast

01:11:38.280 --> 01:11:39.540
und gibst dann verschiedene Cases.

01:11:39.540 --> 01:11:42.040
Also da hättest du gerne, irgendwas ist,

01:11:42.040 --> 01:11:44.360
schwieriges Beispiel,

01:11:44.360 --> 01:11:45.500
so eine Koordinate.

01:11:45.500 --> 01:11:48.220
Dann gibst du rein, dass das eine Koordinate sein könnte

01:11:48.220 --> 01:11:50.280
und dann hat der tatsächlich den Pfad,

01:11:50.280 --> 01:11:50.980
okay, hier ist eine Koordinate.

01:11:50.980 --> 01:11:52.600
Und wenn du danach zum Beispiel sagst,

01:11:52.600 --> 01:11:54.400
das ist eine Straßenadresse,

01:11:54.400 --> 01:11:55.600
dann,

01:11:56.020 --> 01:11:56.960
guck dir, okay, hier ist eine Straßenadresse,

01:11:56.960 --> 01:11:58.040
passt da rein und gehst weiter.

01:11:58.040 --> 01:12:00.460
Und du kannst da bestimmte Attribute omitten,

01:12:00.460 --> 01:12:03.000
indem du die einfach auf dann setzt,

01:12:03.000 --> 01:12:04.760
falls das verständlich ausgerichtet ist.

01:12:04.760 --> 01:12:07.600
Und kannst damit relativ schön Cases abfangen

01:12:07.600 --> 01:12:09.700
und hast dann irgendwann einen Standard-Case.

01:12:09.700 --> 01:12:11.140
Also so ein bisschen so if, then,

01:12:11.140 --> 01:12:13.960
if, elif, elif, elif,

01:12:13.960 --> 01:12:16.180
in, gut lesbar finde ich.

01:12:16.180 --> 01:12:17.220
Also ich mag das sehr gerne.

01:12:17.220 --> 01:12:20.080
Du kannst auch Types machen

01:12:20.080 --> 01:12:21.940
und kannst Guards machen

01:12:21.940 --> 01:12:22.760
und sowas.

01:12:22.760 --> 01:12:24.380
Ja, man kann ja sehr viele Sachen.

01:12:24.380 --> 01:12:25.880
Ich glaube, das ist für

01:12:25.880 --> 01:12:26.960
den fast eine eigene Episode.

01:12:26.960 --> 01:12:28.600
Da muss man eine eigene Episode zu machen.

01:12:28.600 --> 01:12:29.280
Haben wir noch nicht gemacht.

01:12:29.280 --> 01:12:30.300
Haben wir auch schon häufiger geplant.

01:12:30.300 --> 01:12:32.020
Aber ja, genau, das müssen wir mal machen.

01:12:32.020 --> 01:12:32.860
Man kann auch da,

01:12:32.860 --> 01:12:33.880
ich finde, ja,

01:12:33.880 --> 01:12:35.160
also es ist super mächtig.

01:12:35.160 --> 01:12:36.660
Ich brauche es ehrlich gesagt nicht so oft.

01:12:36.660 --> 01:12:37.680
Ja, das ist,

01:12:37.680 --> 01:12:39.800
ich bin ein großer Fan davon.

01:12:39.800 --> 01:12:41.060
Ich finde es großartig.

01:12:41.060 --> 01:12:42.840
Das ist eines der besten Language-Features,

01:12:42.840 --> 01:12:43.320
was es gibt.

01:12:43.320 --> 01:12:44.400
Aber ich habe es noch nie verwendet.

01:12:44.400 --> 01:12:46.760
Ja.

01:12:46.760 --> 01:12:47.300
Das ist ganz komisch.

01:12:47.300 --> 01:12:49.300
Also ich meine,

01:12:49.300 --> 01:12:51.500
ich glaube, das ist halt auch für Leute,

01:12:51.500 --> 01:12:52.840
die jetzt oft Parser

01:12:52.840 --> 01:12:54.940
für irgendwelche Sachen schreiben oder so.

01:12:55.740 --> 01:12:58.240
Oder halt so Domain-Specific-Languages

01:12:58.240 --> 01:12:59.000
für irgendwas haben.

01:12:59.000 --> 01:13:01.180
Die brauchen das wahrscheinlich oft.

01:13:01.180 --> 01:13:03.080
Aber das mache ich halt nicht so oft.

01:13:03.080 --> 01:13:06.040
Also das erste Mal

01:13:06.040 --> 01:13:07.340
habe ich Pattern-Matching gesehen.

01:13:07.340 --> 01:13:09.780
Da war ich noch ein junger Mann

01:13:09.780 --> 01:13:12.220
damals und das war in Erlangen.

01:13:12.220 --> 01:13:13.620
Ah, ja, ja, ja, gut.

01:13:13.620 --> 01:13:15.860
Und da ist es ja ein

01:13:15.860 --> 01:13:16.720
Core-Language-Feature.

01:13:16.720 --> 01:13:19.440
Da ist es ja so ein, ja, hier, da hast du eine Funktion.

01:13:19.440 --> 01:13:21.520
Und natürlich, das erste, was die Funktion macht,

01:13:21.520 --> 01:13:22.700
ist immer erst mal Pattern-Matching.

01:13:22.700 --> 01:13:25.600
Und die

01:13:25.600 --> 01:13:27.540
benutzen das für alles. Ja, wenn du hier ein None reinkriegst,

01:13:27.540 --> 01:13:28.600
ja, klar, dann geht die Funktion.

01:13:28.600 --> 01:13:30.880
Wenn das Pattern hier ein None ist, dann musst du erst mal

01:13:30.880 --> 01:13:31.800
das und das und jedes Mal.

01:13:31.800 --> 01:13:35.280
Und da ist es ja nicht, da geht es nicht so sehr um

01:13:35.280 --> 01:13:36.880
Parser, sondern da geht es ja schon irgendwie

01:13:36.880 --> 01:13:39.320
auch um Schnittstellen und um Datenaustausch.

01:13:39.320 --> 01:13:41.560
Und ich habe in meinem Kopf

01:13:41.560 --> 01:13:43.060
schon immer den Gedanken,

01:13:43.060 --> 01:13:45.480
dass man, wenn ich eine Schnittstelle schreibe,

01:13:45.480 --> 01:13:47.240
dass ich da irgendwie so ein

01:13:47.240 --> 01:13:49.240
Pattern-Matching reinmachen könnte.

01:13:49.240 --> 01:13:51.380
Aber irgendwie hat es noch nie so

01:13:51.380 --> 01:13:52.700
richtig gut gepasst.

01:13:52.700 --> 01:13:54.920
Ja.

01:13:55.460 --> 01:13:57.420
Weiß auch nicht. Ich weiß, ich weiß auch nicht.

01:13:57.420 --> 01:13:59.380
Ich weiß auch nicht. Kann man verschiedene Exception-Types

01:13:59.380 --> 01:14:00.780
gucken oder, ja.

01:14:00.780 --> 01:14:03.120
Ja, aber die fange ich doch in dem Accept,

01:14:03.120 --> 01:14:05.120
in den Accept-Blocks schon ab, die verschiedenen

01:14:05.120 --> 01:14:07.340
Exception-Types. Da gibt es doch schon Syntax für.

01:14:07.340 --> 01:14:09.700
Und für die verschiedenen Instanz-Typen

01:14:09.700 --> 01:14:11.460
muss ich eher irgendwie

01:14:11.460 --> 01:14:12.960
in Funktionen reinverzweigen.

01:14:12.960 --> 01:14:14.560
Und, ach, ich weiß irgendwie nicht,

01:14:14.560 --> 01:14:17.340
ich würde es gerne mehr benutzen. Ich weiß nicht, ob das

01:14:17.340 --> 01:14:19.320
ein Problem an mir ist

01:14:19.320 --> 01:14:21.820
oder ob das ein Problem an...

01:14:21.820 --> 01:14:23.320
Also ein Problem

01:14:23.320 --> 01:14:25.200
war eine ganze Zeit lang auch,

01:14:25.320 --> 01:14:27.200
also jedenfalls, als das Feature total frisch war, für mich

01:14:27.200 --> 01:14:28.480
jedenfalls auch, dass ich mir gesagt habe,

01:14:28.480 --> 01:14:31.180
ich muss ein bisschen vorsichtig sein, dass ich das jetzt

01:14:31.180 --> 01:14:33.140
nicht irgendwie mich zu sehr darauf verlasse, dass es

01:14:33.140 --> 01:14:35.180
das gibt, weil es ist ja noch ganz neu

01:14:35.180 --> 01:14:36.960
und viele verwenden halt noch ältere Python-Versionen.

01:14:36.960 --> 01:14:37.960
Und vermutlich super langsam.

01:14:37.960 --> 01:14:40.460
Ja, genau, aber

01:14:40.460 --> 01:14:42.660
das ist ja jetzt inzwischen,

01:14:42.660 --> 01:14:45.040
ist ja jetzt so, 3.10 ist ja jetzt schon die

01:14:45.040 --> 01:14:47.140
älteste Version, die man so, mit der man normalerweise

01:14:47.140 --> 01:14:47.760
so zu tun hat.

01:14:47.760 --> 01:14:50.720
Nee, 3.10, also

01:14:50.720 --> 01:14:52.020
3.10 meinst du nicht?

01:14:52.020 --> 01:14:54.580
Genau, nicht 3.10, meinte ich nicht.

01:14:55.180 --> 01:14:57.220
3.10, genau. Ja, 3.10, ja, das ist,

01:14:57.220 --> 01:14:59.120
würde ich sagen, ja. Und da ist es ja

01:14:59.120 --> 01:15:01.100
dazugekommen, also insofern würde ich sagen, jetzt ist

01:15:01.100 --> 01:15:02.820
sicher, dass man es eigentlich immer verwenden kann.

01:15:02.820 --> 01:15:04.040
Insofern, ja,

01:15:04.040 --> 01:15:06.900
muss man mal gucken, ob es da nicht doch mehr Use Cases gibt,

01:15:06.900 --> 01:15:08.360
als man so denkt. Aber es ist auch

01:15:08.360 --> 01:15:10.980
fiese Syntax, also ich habe mir dazu auch schon ein paar

01:15:10.980 --> 01:15:13.140
Vorträge angeguckt und man kann

01:15:13.140 --> 01:15:15.080
sich auch da wieder leicht in den Fuß schießen.

01:15:15.080 --> 01:15:17.000
Ja, was nicht so ganz so interessant ist, ist, dass wenn man so

01:15:17.000 --> 01:15:18.580
die Bild in Typen nimmt, ne, so man

01:15:18.580 --> 01:15:21.020
sagt irgendwie match unknown und dann machst du

01:15:21.020 --> 01:15:22.100
eine Case List

01:15:22.100 --> 01:15:25.040
or Tuple und wenn man die dann

01:15:25.040 --> 01:15:27.120
nicht instanziiert mit den Klammern,

01:15:27.120 --> 01:15:28.640
dann ist es immer true. Dann ist es kacke, weil es

01:15:28.640 --> 01:15:31.000
always true ist, weil der nach der Funktion

01:15:31.000 --> 01:15:33.140
guckt und nicht guckt, ob es ein List oder ein Tuple ist.

01:15:33.140 --> 01:15:34.020
Genau.

01:15:34.020 --> 01:15:36.780
Ja, dann kann man sich auch mit den Fuß schießen.

01:15:36.780 --> 01:15:38.760
Ja, und das ist der Default

01:15:38.760 --> 01:15:41.220
Fall auch immer irgendwie,

01:15:41.220 --> 01:15:43.060
wenn nichts anderes gefunden wird, ist auch irgendwie

01:15:43.060 --> 01:15:44.960
etwas, was halt in anderen Sprachen anders

01:15:44.960 --> 01:15:46.980
ist und, äh, ja, es gibt ja schon so

01:15:46.980 --> 01:15:48.100
ein paar Falschstricke, also

01:15:48.100 --> 01:15:49.640
naja.

01:15:49.640 --> 01:15:52.820
Und dass man den am besten immer handeln sollte, genau,

01:15:52.820 --> 01:15:54.820
in Python, dass man... Ja,

01:15:54.900 --> 01:15:56.880
aber das ist doch auch nervig. Ja, gut, aber

01:15:56.880 --> 01:15:59.000
das ist ja klassische Programmierung, dass man

01:15:59.000 --> 01:16:00.960
immer das else für alles,

01:16:00.960 --> 01:16:02.280
was man nicht erwartet, schreibt.

01:16:02.280 --> 01:16:03.600
Na, nicht falsch.

01:16:03.600 --> 01:16:06.240
Wenn man das else weglassen kann, dann lässt man es weg.

01:16:06.240 --> 01:16:07.740
Tja.

01:16:07.740 --> 01:16:10.760
Je mehr man weglassen kann, umso mehr

01:16:10.760 --> 01:16:12.060
kann man weglassen, das ist doch viel besser.

01:16:12.060 --> 01:16:14.240
Eigentlich schon.

01:16:14.240 --> 01:16:18.640
Ja, und dann ist das Kapitel auch schon vorbei,

01:16:18.640 --> 01:16:20.620
dann kommt nur noch hier so ein bisschen... Also else

01:16:20.620 --> 01:16:22.240
makes the universe explode.

01:16:22.240 --> 01:16:24.880
Also,

01:16:24.880 --> 01:16:26.560
immer wenn der else-Case einschickt, dann alles abreißen,

01:16:26.560 --> 01:16:27.180
alles vernichten.

01:16:27.180 --> 01:16:30.800
Ist das, äh, ist das

01:16:30.800 --> 01:16:31.500
Quantum-Sort, ja?

01:16:31.500 --> 01:16:34.960
Kennt ihr den, kennt ihr den Quantum-Sort-

01:16:34.960 --> 01:16:36.880
Algorithmus? Der ist ein O von 1, äh,

01:16:36.880 --> 01:16:37.780
Sortier-Algorithmus.

01:16:37.780 --> 01:16:40.460
Aha. Du machst eine

01:16:40.460 --> 01:16:42.940
zufällige Permutation von deinem

01:16:42.940 --> 01:16:44.600
Input und guckst, ob

01:16:44.600 --> 01:16:46.480
sie sortiert ist und wenn sie nicht sortiert ist,

01:16:46.480 --> 01:16:47.640
zerstörst du das Universum.

01:16:47.640 --> 01:16:49.900
Ja. Und

01:16:49.900 --> 01:16:52.520
das in dem Universum, in dem sortiert

01:16:52.520 --> 01:16:54.180
bist, ist, dass da bist du immer

01:16:54.180 --> 01:16:54.860
überrascht.

01:16:54.860 --> 01:16:55.340
Überlebst du immer.

01:16:55.340 --> 01:16:59.980
Schneller? Geht nicht mehr.

01:16:59.980 --> 01:17:02.640
Also, es, dieses Kapitel macht

01:17:02.640 --> 01:17:04.460
mehrere interessante Wendungen und

01:17:04.460 --> 01:17:06.560
und es schneidet einige,

01:17:06.560 --> 01:17:08.660
einige Sachen an,

01:17:08.660 --> 01:17:10.360
die, die interessant sind,

01:17:10.360 --> 01:17:12.000
die aber so ein bisschen über Data

01:17:12.000 --> 01:17:14.380
Classes hinausgehen.

01:17:14.380 --> 01:17:16.700
Ja. Es, ich muss ja, ich muss ja

01:17:16.700 --> 01:17:18.560
sagen... Macht ihr denn lieber in Data

01:17:18.560 --> 01:17:19.680
Classes oder lieber in M-Tupels?

01:17:19.680 --> 01:17:22.480
Lieber Data Classes. Ja, ich auch. Lieber

01:17:22.480 --> 01:17:24.780
Data Classes. Ich weiß jetzt gar nicht so genau, warum.

01:17:24.860 --> 01:17:26.720
Ja, weil

01:17:26.720 --> 01:17:28.480
das ist, weil das gutes Marketing hat.

01:17:28.480 --> 01:17:32.740
Es steht auch hier

01:17:32.740 --> 01:17:34.740
in dem, also hier im Abschnitt Further Reading,

01:17:34.740 --> 01:17:36.660
da sind natürlich viele Verweise dann drin

01:17:36.660 --> 01:17:38.820
und da steht auch drin hier

01:17:38.820 --> 01:17:40.720
bei der PyCon US 2018,

01:17:40.720 --> 01:17:42.860
da gibt es einen Talk von Raymond Hettinger,

01:17:42.860 --> 01:17:44.700
den auch wir

01:17:44.700 --> 01:17:46.940
alle schon gesehen haben und ich gehe davon aus,

01:17:46.940 --> 01:17:48.500
dass die Hörer den auch alle gesehen haben, der heißt

01:17:48.500 --> 01:17:50.760
Data Classes, the Code Generator to End All Code

01:17:50.760 --> 01:17:52.700
Generators und das

01:17:52.700 --> 01:17:54.560
hört sich ja schon sehr hochtrabend an,

01:17:54.820 --> 01:17:56.800
und ich muss sagen, ich habe mir

01:17:56.800 --> 01:17:58.860
den Talk angeguckt und ich habe danach Data Classes

01:17:58.860 --> 01:18:00.540
verwendet und das war gar nicht so

01:18:00.540 --> 01:18:01.180
beeindruckend.

01:18:01.180 --> 01:18:04.540
Ja. Es ist irgendwie

01:18:04.540 --> 01:18:06.640
gar nicht so viel, was einem das macht,

01:18:06.640 --> 01:18:07.800
was einem das gibt.

01:18:07.800 --> 01:18:10.520
Ja, ja. Deswegen auch direkt M-Tupel,

01:18:10.520 --> 01:18:12.640
ist ein Tupel. Ja, also ich...

01:18:12.640 --> 01:18:13.800
Man darf da gar nicht so viel

01:18:13.800 --> 01:18:16.660
drauf geben, da werden viele

01:18:16.660 --> 01:18:18.640
Worte darüber gesagt und

01:18:18.640 --> 01:18:20.700
es wird viel darüber gesprochen, aber es ist eigentlich

01:18:20.700 --> 01:18:22.440
was total Simples und was total

01:18:22.440 --> 01:18:24.680
Kleines und Nettes und Einfaches und

01:18:24.680 --> 01:18:25.500
das, ja.

01:18:25.500 --> 01:18:28.480
Ja, also es gibt halt so Anwendungsfälle,

01:18:28.480 --> 01:18:30.660
da verwende ich es halt sehr gerne für. Also zum Beispiel eben

01:18:30.660 --> 01:18:32.720
in so, so für, also wenn man

01:18:32.720 --> 01:18:34.660
jetzt halt so Event-Driven

01:18:34.660 --> 01:18:36.540
Architecture hat, dann für die Events und

01:18:36.540 --> 01:18:38.640
Commands, da sind Data Classes halt

01:18:38.640 --> 01:18:40.640
super. Genau.

01:18:40.640 --> 01:18:42.720
Für alle Arten von Value

01:18:42.720 --> 01:18:43.740
Objects, wo man halt

01:18:43.740 --> 01:18:46.640
nichts drauf gibt, was das denn konkret für ein

01:18:46.640 --> 01:18:48.600
Objekt ist, wo einem nur der Wert von irgendwelchen

01:18:48.600 --> 01:18:50.500
Dingen interessiert, da ist das total super.

01:18:50.500 --> 01:18:52.540
Und für alles andere nehme ich

01:18:52.540 --> 01:18:54.440
normale Klassen. Also, genau.

01:18:54.640 --> 01:18:56.560
Das ist so mein Daumenriegel für

01:18:56.560 --> 01:18:58.440
ja, diesen Kram. Und

01:18:58.440 --> 01:19:00.600
ja, ich glaube, in allen Fällen, wo ich Data Class verwende,

01:19:00.600 --> 01:19:02.540
könnte ich wahrscheinlich auch einen Tupel verwenden, aber

01:19:02.540 --> 01:19:04.740
ja. Ja, aber es ist

01:19:04.740 --> 01:19:06.720
schon bequemer, dass man die Namen schreiben kann,

01:19:06.720 --> 01:19:08.700
das ist schon, das ist schon cool.

01:19:08.700 --> 01:19:10.240
Ja. Das kannst du bei einem Tupel auch.

01:19:10.240 --> 01:19:12.560
Ja, genau, aber dann, also kannst du nicht ein

01:19:12.560 --> 01:19:14.580
normales Tupel nehmen. Nee, nee, aber ein Named Tupel

01:19:14.580 --> 01:19:16.600
ist doch schon, also ich benutze fast

01:19:16.600 --> 01:19:18.780
kein, ich würde glaube ich fast nie

01:19:18.780 --> 01:19:19.580
ein normales Tupel nehmen.

01:19:19.580 --> 01:19:22.480
Sondern statt einem normalen Tupel immer

01:19:22.480 --> 01:19:24.520
ein Named Tupel, weil ich gerne die Namen verwende und ich

01:19:24.520 --> 01:19:25.440
mag Indizes nicht so.

01:19:25.440 --> 01:19:28.100
Ja, okay.

01:19:28.100 --> 01:19:29.540
Ich verwende Tupel sehr häufig.

01:19:29.540 --> 01:19:32.500
Ja, ich würde so implizit

01:19:32.500 --> 01:19:34.400
für Multiple Return values. Genau, beim

01:19:34.400 --> 01:19:36.060
Zurückgeben von irgendwelchen Sachen ist es halt ja

01:19:36.060 --> 01:19:38.500
automatisch so. Aber da benutzt du ja auch den Index nicht, da benutzt

01:19:38.500 --> 01:19:40.480
du ja Unpacking und dann ist ja schon diese Tupel,

01:19:40.480 --> 01:19:42.080
ist dieses Tupel so ein bisschen unsichtbar.

01:19:42.080 --> 01:19:43.940
Da willst du ja dann nicht ein Named Tupel verwenden, ja.

01:19:43.940 --> 01:19:46.320
Ja doch, also warum nicht? Als Returnwert ein Named Tupel, dann hast du

01:19:46.320 --> 01:19:48.240
schon Type Annotation und kannst danach auf die Attribute

01:19:48.240 --> 01:19:50.300
des Dings wieder zugreifen. Ach, viel zu viel Arbeit.

01:19:50.300 --> 01:19:51.580
Ja. Viel zu viel Arbeit.

01:19:51.580 --> 01:19:54.020
Einfach zwei Werte zurückgeben, zack.

01:19:54.400 --> 01:19:56.260
Zack, zack.

01:19:56.260 --> 01:19:56.840
Dies und jenes.

01:19:56.840 --> 01:20:00.280
Dies und jenes wird dann vielleicht auch das und dafür wird ein Match Case

01:20:00.280 --> 01:20:00.580
wieder gut.

01:20:00.580 --> 01:20:02.940
Ja, sorry.

01:20:02.940 --> 01:20:06.080
Ich glaube, wir haben das Kapitel besprochen, oder?

01:20:06.080 --> 01:20:08.280
Wir müssen mal Beispiele sehen. Wollt ihr noch was erzählen?

01:20:08.280 --> 01:20:10.340
Also, genau. Was wir noch tun könnten

01:20:10.340 --> 01:20:12.260
ist irgendwie, wir machen noch Picks

01:20:12.260 --> 01:20:14.140
und ich weiß nicht, ob

01:20:14.140 --> 01:20:15.980
irgendjemand anders anfangen möchte?

01:20:15.980 --> 01:20:17.200
Ja, ja, mach doch mal.

01:20:17.200 --> 01:20:19.160
Okay, also. Das ist doch was Gutes.

01:20:19.160 --> 01:20:21.680
Also, was ich gerne picken würde und

01:20:21.680 --> 01:20:24.280
ja, ich weiß nicht, ob die so viele

01:20:24.280 --> 01:20:26.480
Hater haben wir gar nicht, aber das wäre ein guter

01:20:26.480 --> 01:20:27.640
Hook für die Hater.

01:20:27.640 --> 01:20:30.080
Wir hätten erst einmal einen, wenn ich mich aktiv verändere.

01:20:30.080 --> 01:20:32.260
Und zwar,

01:20:32.260 --> 01:20:33.300
was mir momentan tatsächlich...

01:20:33.300 --> 01:20:35.860
Nachts um halb drei mit einem Ton, da war ich auch schon vor.

01:20:35.860 --> 01:20:37.960
Ja, aber, also, was mir

01:20:37.960 --> 01:20:39.780
tatsächlich momentan richtig viel Spaß macht, ist

01:20:39.780 --> 01:20:41.960
ein Tool von Anthropic

01:20:41.960 --> 01:20:43.820
und zwar heißt das

01:20:43.820 --> 01:20:45.820
Claude Coot und

01:20:45.820 --> 01:20:48.080
das ist quasi so ein

01:20:48.080 --> 01:20:49.900
LLM-basierter

01:20:49.900 --> 01:20:52.080
Kommando-Teil...

01:20:52.080 --> 01:20:54.160
Dein neuer Pack Engine.

01:20:54.160 --> 01:20:56.660
Ja, weil, ne, genau.

01:20:56.660 --> 01:20:57.800
Ja, was ist ein Agent?

01:20:57.800 --> 01:21:00.100
Ja, schwierig, aber...

01:21:00.100 --> 01:21:00.560
Was ist ein Agent?

01:21:00.560 --> 01:21:03.080
Ja, also, das Ding ist einfach nur,

01:21:03.080 --> 01:21:05.700
es ist halt ein LLM und es

01:21:05.700 --> 01:21:08.140
läuft in einer Schleife und macht halt

01:21:08.140 --> 01:21:09.500
Dinge und

01:21:09.500 --> 01:21:12.100
das funktioniert, also, ich will

01:21:12.100 --> 01:21:13.040
jetzt gar nicht so definieren, was das ist.

01:21:13.040 --> 01:21:15.200
Und hast du Claude schon einen Rutschgriff auf deinen Rechner gegeben?

01:21:15.200 --> 01:21:16.400
Das mache ich nicht, aber

01:21:16.400 --> 01:21:19.800
in Projekten, wo ich weiß, wenn das

01:21:19.800 --> 01:21:21.760
committed ist oder gepusht, dann kann das

01:21:21.760 --> 01:21:22.940
halt auch weglöschen, ist nicht so schlimm.

01:21:22.940 --> 01:21:24.140
Ja, gib dir doch mal eins, weißt du,

01:21:24.140 --> 01:21:26.040
im Server, da kannst du dich austoben, ein bisschen Budget

01:21:26.040 --> 01:21:26.280
dafür.

01:21:26.280 --> 01:21:29.780
Ich habe mal gefragt, also auch Claude,

01:21:29.780 --> 01:21:30.400
ob

01:21:30.400 --> 01:21:34.060
das jetzt eigentlich mich ersetzt

01:21:34.060 --> 01:21:35.980
oder ist das, ne, was ist das

01:21:35.980 --> 01:21:36.980
so für eine Beziehung?

01:21:36.980 --> 01:21:39.920
Muss ich Angst haben oder augmentiert

01:21:39.920 --> 01:21:42.020
mich das eher oder sowas? Und Claude meinte dann so,

01:21:42.020 --> 01:21:43.260
hey, ist eher so eine Bromance.

01:21:43.260 --> 01:21:44.680
Ja, okay.

01:21:44.680 --> 01:21:48.040
Das glaube ich bei dir, Dominik, das glaube ich

01:21:48.040 --> 01:21:48.280
bei dir.

01:21:48.280 --> 01:21:51.440
I agree.

01:21:51.440 --> 01:21:53.660
Die Bromance zwischen dir und

01:21:53.660 --> 01:21:54.100
Kai.

01:21:54.140 --> 01:21:57.840
Aber also ich würde es einfach mal,

01:21:57.840 --> 01:22:00.040
man kann das nicht gut beschreiben, man muss das mal ausprobieren

01:22:00.040 --> 01:22:01.680
und da ist das eigentlich schon sehr

01:22:01.680 --> 01:22:04.240
cool. Also ich benutze das jetzt

01:22:04.240 --> 01:22:05.420
in letzter Zeit super häufig

01:22:05.420 --> 01:22:07.400
und das hat mir schon echt viel

01:22:07.400 --> 01:22:09.780
untertrieben, weißt du, wenn du jochen beim Arbeiten

01:22:09.780 --> 01:22:12.300
zu guckst, dann schlägst du die ganze

01:22:12.300 --> 01:22:13.920
Zeit gut drauf und dann so, nö,

01:22:13.920 --> 01:22:16.020
ja, doch, vielleicht, ach, mach noch mal

01:22:16.020 --> 01:22:18.040
so. Ja, aber das

01:22:18.040 --> 01:22:19.980
ist auch schon wichtig, also ich gucke schon noch drauf

01:22:19.980 --> 01:22:21.820
und ich... Also das heißt, das

01:22:21.820 --> 01:22:23.960
drauf gucken ist das, was dich vom Vibe unterscheidet,

01:22:23.960 --> 01:22:24.120
das heißt, das ist das, was dich vom Vibe unterscheidet,

01:22:24.120 --> 01:22:26.080
das ist das dann? Ja, ja, nee, das ist nicht Vibe-Coding, was ich,

01:22:26.080 --> 01:22:26.960
also ich nenne das manchmal

01:22:26.960 --> 01:22:30.140
bosnacherweise Vibe-Coding, um die

01:22:30.140 --> 01:22:32.120
Leute, um die Leute zu ärgern,

01:22:32.120 --> 01:22:33.940
die... Keine Sorge,

01:22:33.940 --> 01:22:35.840
das ist nicht Vibe-Coding, das warst du.

01:22:35.840 --> 01:22:38.000
Ja, es gibt ja zwei Menschen, glaube ich, die sich mit dem Begriff Vibe-Coding

01:22:38.000 --> 01:22:39.880
so ein bisschen schwer tun. Simon zum Beispiel

01:22:39.880 --> 01:22:41.400
sagt, das wäre gar nicht gut, weil

01:22:41.400 --> 01:22:43.800
der Begriff total blöd ist, weil der

01:22:43.800 --> 01:22:45.240
davon abdenkt, dass das total anstrengend ist.

01:22:45.240 --> 01:22:47.900
Das war mal gut definiert und zwar als

01:22:47.900 --> 01:22:49.780
Vibe-Coding ist halt dann, wenn der,

01:22:49.780 --> 01:22:51.800
das Ergebnis und der Code egal sind

01:22:51.800 --> 01:22:53.640
und du halt nur sozusagen

01:22:53.640 --> 01:22:55.420
basierend auf dem Vibe

01:22:55.420 --> 01:22:58.320
sozusagen den Kram baust.

01:22:58.320 --> 01:22:59.920
Ja, okay, das habe ich abgelesen, dass der Simon Wilson das nicht mag,

01:22:59.920 --> 01:23:02.080
weil jemand anders sein Wort verwendet

01:23:02.080 --> 01:23:03.860
hat, was nicht so ist, wie er es haben möchte.

01:23:03.860 --> 01:23:05.600
Ist doch auch Old Man, der hat es geklaut.

01:23:05.600 --> 01:23:07.700
Ja, aber er hat schon recht, also das war

01:23:07.700 --> 01:23:09.740
ursprünglich mal so definiert und jetzt benutzen

01:23:09.740 --> 01:23:11.680
es halt alle irgendwie anders und das ist natürlich schon ein bisschen

01:23:11.680 --> 01:23:13.680
doof, aber... Egal, jedes Wort

01:23:13.680 --> 01:23:15.280
ist irgendwie mal anders definiert.

01:23:15.280 --> 01:23:17.780
Ja, aber es gibt in dem Bereich halt schon so viele Worte,

01:23:17.780 --> 01:23:19.520
die halt ihre Bedeutung verloren haben, dass

01:23:19.520 --> 01:23:21.640
jetzt so das... Ja, okay.

01:23:21.640 --> 01:23:23.360
Naja gut, ist auch wurscht, kann man

01:23:23.360 --> 01:23:23.620
auch nicht mehr sagen.

01:23:23.620 --> 01:23:24.400
Ja, zurückholen.

01:23:24.400 --> 01:23:26.960
Meinetwegen ist es auch Vibe-Coding, aber

01:23:26.960 --> 01:23:29.140
es ist tatsächlich so, dass ich damit halt

01:23:29.140 --> 01:23:31.720
viele

01:23:31.720 --> 01:23:33.440
Dinge irgendwie jetzt so machen kann, die

01:23:33.440 --> 01:23:35.740
vorher mühselig waren und jetzt sind sie halt nicht mehr so mühselig

01:23:35.740 --> 01:23:37.260
und auch

01:23:37.260 --> 01:23:39.260
quasi das über Copy-Paste

01:23:39.260 --> 01:23:41.500
oder halt über Cursor

01:23:41.500 --> 01:23:43.440
oder sonst wie Copilot

01:23:43.440 --> 01:23:45.560
kann man das ja auch machen. Das hat auch schon alles ganz gut

01:23:45.560 --> 01:23:47.600
funktioniert, aber Cloud Code ist tatsächlich

01:23:47.600 --> 01:23:49.220
für mich nochmal eine deutliche Verbesserung.

01:23:49.220 --> 01:23:51.680
Also das ist halt, macht alles nochmal deutlich angenehmer.

01:23:51.680 --> 01:23:53.540
Das ist schon mega gut.

01:23:53.600 --> 01:23:55.340
Aber da möchte ich tatsächlich

01:23:55.340 --> 01:23:57.140
für alle, die es noch nicht kennen, die meisten kennen es

01:23:57.140 --> 01:23:58.420
wahrscheinlich, mein Pick machen.

01:23:58.420 --> 01:24:00.520
Und zwar ist das tatsächlich

01:24:00.520 --> 01:24:02.700
wie in einem Ausschuss, weiß ich nicht,

01:24:02.700 --> 01:24:03.260
NITN?

01:24:03.260 --> 01:24:07.220
Ich finde

01:24:07.220 --> 01:24:09.000
normalerweise so Logo-Sachen ziemlich

01:24:09.000 --> 01:24:11.060
schlecht und schwachsinnig und scheiße, aber das

01:24:11.060 --> 01:24:13.020
Ding ist erschreckend gut.

01:24:13.020 --> 01:24:15.480
In Business-Prozessen

01:24:15.480 --> 01:24:17.260
direkt anbinden an der Postgres, an

01:24:17.260 --> 01:24:19.620
SAP, an was auch immer du gerade brauchst.

01:24:19.620 --> 01:24:21.720
Und du kannst es dir so zusammenklicken.

01:24:21.720 --> 01:24:23.420
Du machst da einen Telegram-Channel dazu,

01:24:23.580 --> 01:24:25.500
und dein Discord, und hast einen Bot, und

01:24:25.500 --> 01:24:27.660
ziehst da so zwei Lines irgendwie zusammen,

01:24:27.660 --> 01:24:29.660
und machst dann noch einen Prompt dahin, und setzt

01:24:29.660 --> 01:24:31.800
dann da noch eine Nachfrage

01:24:31.800 --> 01:24:33.640
für das Ergebnis vom Prompt, passt das dann in

01:24:33.640 --> 01:24:35.600
JSON, kannst einen kleinen Python-Schnipsel reinbauen.

01:24:35.600 --> 01:24:37.560
Ja.

01:24:37.560 --> 01:24:39.540
Also wenn ich Low-Code mir überlegen würde, würde ich das

01:24:39.540 --> 01:24:40.480
wahrscheinlich auch so machen.

01:24:40.480 --> 01:24:43.840
Ich würde sagen, das ist sehr gefährlich

01:24:43.840 --> 01:24:45.320
für unsere Profession auch.

01:24:45.320 --> 01:24:47.720
Also weil, ich kann jetzt jeder

01:24:47.720 --> 01:24:49.280
Marketeer hinsetzen und sagen, hey,

01:24:49.280 --> 01:24:51.600
ich bin Coder, und

01:24:51.600 --> 01:24:53.360
macht sich miteinander so einen Business-Prozess, wo man

01:24:53.360 --> 01:24:55.460
vorher halt gut bezahlte Software-Ingenieure für braucht.

01:24:55.460 --> 01:24:56.500
Das ist schon so ein bisschen

01:24:56.500 --> 01:24:59.120
schon nicht schlecht.

01:24:59.120 --> 01:25:01.500
Also, da sind wir wieder bei

01:25:01.500 --> 01:25:03.420
dem Pick, den ich eben schon

01:25:03.420 --> 01:25:05.360
gespoilert habe, den der Johannes verraten wollte.

01:25:05.360 --> 01:25:07.300
Nee, das ist nicht mein Pick.

01:25:07.300 --> 01:25:08.640
Gut, dass das nicht dein Pick war.

01:25:08.640 --> 01:25:11.460
Aber das macht's

01:25:11.460 --> 01:25:12.700
ja schon so ein bisschen. Das ist,

01:25:12.700 --> 01:25:14.540
ja,

01:25:14.540 --> 01:25:17.600
erzeugt halt viel Zeugs, viel Code,

01:25:17.600 --> 01:25:19.480
den man halt kaputt machen kann.

01:25:19.480 --> 01:25:20.480
Oder halt auch nicht, ne?

01:25:20.480 --> 01:25:23.260
Oder ist der kaputt? Wen braucht man dafür?

01:25:23.340 --> 01:25:24.760
Die richtigen Ingenieure wie uns,

01:25:24.760 --> 01:25:27.280
um das hier zu reparieren? Oder schafft

01:25:27.280 --> 01:25:29.600
das dann Cloud Code selber?

01:25:29.600 --> 01:25:31.500
Naja, also ich meine, für den

01:25:31.500 --> 01:25:33.280
Anwendungsfall, dass du halt überhaupt erst mal

01:25:33.280 --> 01:25:35.080
irgendwie rausfinden willst,

01:25:35.080 --> 01:25:37.260
ob das etwas ist, was du gebrauchen kannst oder

01:25:37.260 --> 01:25:39.460
nicht, dafür ist das wahrscheinlich

01:25:39.460 --> 01:25:41.040
schon nicht so schlecht. Nein, aber das ist

01:25:41.040 --> 01:25:43.280
ein Irrtum. Es geht nicht nur darum, rauszufinden,

01:25:43.280 --> 01:25:45.180
was ist das, was du willst. Weil das ist

01:25:45.180 --> 01:25:47.500
genau das, was die, ich sag mal,

01:25:47.500 --> 01:25:48.120
mediocre

01:25:48.120 --> 01:25:51.240
Devs immer schon verkauft haben.

01:25:51.240 --> 01:25:53.060
Irgendein Scheiß, der gerade so

01:25:53.060 --> 01:25:53.240
auskommt.

01:25:53.340 --> 01:25:55.060
Der so aussieht, als würde er funktionieren und

01:25:55.060 --> 01:25:57.120
nach zweimal Gegenpusten zusammenbricht. Und das ist

01:25:57.120 --> 01:25:58.980
kein Unterschied mehr zu dem, was du dir einfach da

01:25:58.980 --> 01:26:01.000
viben kannst. Und das ist das, mit dem die

01:26:01.000 --> 01:26:02.880
meisten Leute irgendwie in der Branche irgendwie

01:26:02.880 --> 01:26:05.080
ihren Umsatz gemacht haben. Und das ist jetzt einfach quasi

01:26:05.080 --> 01:26:05.940
obsolet.

01:26:05.940 --> 01:26:08.560
Oder was war ein, der das so gespeichert hat?

01:26:08.560 --> 01:26:10.860
Du bist ja immer noch dann abhängig auch da von dem

01:26:10.860 --> 01:26:12.960
Service und so. Also, naja.

01:26:12.960 --> 01:26:14.880
For business leaders, ne?

01:26:14.880 --> 01:26:15.860
Un-fuck-it-a-eye.

01:26:15.860 --> 01:26:18.900
How did you find us? My therapist recommended you.

01:26:18.900 --> 01:26:20.780
Are you very sorry? Yes, no, fuck you.

01:26:20.780 --> 01:26:21.900
Genau.

01:26:23.340 --> 01:26:25.020
Ja, also, ich muss, ich

01:26:25.020 --> 01:26:27.260
stimme zu, dass das halt von den ganzen

01:26:27.260 --> 01:26:29.260
Dingern, die es da draußen gibt, halt tatsächlich irgendwie

01:26:29.260 --> 01:26:31.220
gut gemacht ist. Ich persönlich, für mich hat das

01:26:31.220 --> 01:26:33.320
nicht so Appeal, weil ich denke mir so, ja gut, ich schreibe halt

01:26:33.320 --> 01:26:35.180
Python, das macht für mich

01:26:35.180 --> 01:26:37.280
jetzt mehr Aufwand. Ich kann schon programmieren,

01:26:37.280 --> 01:26:39.300
ich brauch das nicht. Ja gut, aber so eine

01:26:39.300 --> 01:26:40.860
Postcast-Schnittstelle mit zwei Klicks, ne?

01:26:40.860 --> 01:26:43.080
Ja, aber, also,

01:26:43.080 --> 01:26:44.640
ist für mich jetzt nicht so ein Aufwand, aber

01:26:44.640 --> 01:26:46.940
ja, gut.

01:26:46.940 --> 01:26:49.280
Wir werden sehen. Vielleicht, ja, keine Ahnung.

01:26:49.280 --> 01:26:51.280
Mein Pick geht in

01:26:51.280 --> 01:26:52.160
eine ganz andere Richtung.

01:26:53.340 --> 01:26:54.980
In Intercode. Ich

01:26:54.980 --> 01:26:56.860
picke Unregistry.

01:26:56.860 --> 01:27:01.520
Ich bin ja ein Docker-Anhänger

01:27:01.520 --> 01:27:03.480
und ein Problem, was man aber hat

01:27:03.480 --> 01:27:05.520
mit Docker-Containern, ist, dass wenn man

01:27:05.520 --> 01:27:06.760
die lokal gebaut hat,

01:27:06.760 --> 01:27:09.440
auf seine Entwicklungsmaschine, dann muss man

01:27:09.440 --> 01:27:11.620
die irgendwo hin tun, damit die deploybar

01:27:11.620 --> 01:27:11.900
werden.

01:27:11.900 --> 01:27:15.480
Wenn ich die auf meinem Produktionsserver dann ausrollen möchte,

01:27:15.480 --> 01:27:16.620
dann müssen die irgendwo sein.

01:27:16.620 --> 01:27:18.680
Dieses irgendwo heißt normalerweise Registry.

01:27:18.680 --> 01:27:21.340
Ja, Docker-Hub kannst du nehmen, wenn du

01:27:21.340 --> 01:27:23.260
Open-Source machst, wenn du keine Geheimnisse

01:27:23.260 --> 01:27:24.060
hast, wenn du alle deine

01:27:24.060 --> 01:27:27.040
Sachen offenlegen willst auf der Welt.

01:27:27.040 --> 01:27:29.380
Ansonsten ist es eine Artifactory oder so.

01:27:29.380 --> 01:27:31.220
Artifactory, Nexus

01:27:31.220 --> 01:27:33.220
oder in die Amazon,

01:27:33.220 --> 01:27:35.520
in so eine

01:27:35.520 --> 01:27:36.720
private Registry für Amazon.

01:27:36.720 --> 01:27:39.380
Aber jetzt gibt es hier ein Projekt,

01:27:39.380 --> 01:27:40.600
das heißt Unregistry.

01:27:40.600 --> 01:27:43.440
Und damit kann ich

01:27:43.440 --> 01:27:45.280
direkt von meiner Maschine auf

01:27:45.280 --> 01:27:46.260
die Server-Maschine

01:27:46.260 --> 01:27:49.340
ein Image

01:27:49.340 --> 01:27:50.660
pushen, ohne

01:27:50.660 --> 01:27:52.180
über eine Registry zu gehen.

01:27:53.180 --> 01:27:54.080
Der Trick ist,

01:27:54.080 --> 01:27:57.120
also das geht natürlich manuell auch, ich kann natürlich manuell

01:27:57.120 --> 01:27:59.400
dieses Docker-Image exportieren

01:27:59.400 --> 01:28:00.620
und kann es zippen und

01:28:00.620 --> 01:28:03.020
dann per SCP rüberkopieren und so weiter.

01:28:03.020 --> 01:28:05.100
Aber das ist zum einen nervig und

01:28:05.100 --> 01:28:07.160
es ist auch langsam, weil jedes Mal das komplette

01:28:07.160 --> 01:28:09.200
Image übertragen werden muss und nicht nur die Schichten,

01:28:09.200 --> 01:28:10.480
die man neu braucht.

01:28:10.480 --> 01:28:13.100
Und das macht Unregistry einfach alles

01:28:13.100 --> 01:28:14.740
im Hintergrund. Das heißt, der Trick ist, das

01:28:14.740 --> 01:28:16.600
tut so, als ob es eine Registry wäre

01:28:16.600 --> 01:28:19.220
und wenn du sagst, hier push mal auf den Server,

01:28:19.220 --> 01:28:21.060
dann macht es dort einfach kurz eine Registry auf,

01:28:21.060 --> 01:28:23.140
dann pushst du dahin und dann ist es bei

01:28:23.140 --> 01:28:24.860
dem Server, bei dem

01:28:24.860 --> 01:28:25.840
Produktions-Server

01:28:25.840 --> 01:28:29.360
einfach in den

01:28:29.360 --> 01:28:30.840
lokalen Images drin. Und das ist

01:28:30.840 --> 01:28:32.660
großartig, weil das macht viele

01:28:32.660 --> 01:28:34.920
Deployment-Prozesse einfach super viel einfacher.

01:28:34.920 --> 01:28:36.300
Du musst dann aber nicht

01:28:36.300 --> 01:28:39.260
History und so was

01:28:39.260 --> 01:28:39.980
hast du dann halt weg, ne?

01:28:39.980 --> 01:28:43.340
Wie meinst du History? Hast du bei Docker-Containern

01:28:43.340 --> 01:28:45.140
nie. Na doch.

01:28:45.140 --> 01:28:47.260
Das zu, hast

01:28:47.260 --> 01:28:49.180
die, jeder Tag, den

01:28:49.180 --> 01:28:50.920
du pushst, ist dort.

01:28:50.920 --> 01:28:53.100
Also du hast kein zentrales

01:28:53.100 --> 01:28:54.720
Repo mehr und das ist genau das, was du möchtest.

01:28:54.720 --> 01:28:56.980
Okay. Wenn du, wenn du

01:28:56.980 --> 01:28:58.860
dir Sachen aufbewahren möchtest, dann brauchst du

01:28:58.860 --> 01:29:00.820
eine Registry, ja. Ja. Achso.

01:29:00.820 --> 01:29:02.600
Achso, wenn du, achso meinst du History von

01:29:02.600 --> 01:29:04.940
Images. Ja. Ja, okay, das, ja.

01:29:04.940 --> 01:29:06.800
Ne, das ist ja eben

01:29:06.800 --> 01:29:08.540
Unregistry. Ja, ja, ja. Das hast du jetzt nicht mehr.

01:29:08.540 --> 01:29:10.940
Und das will ich auch in ganz vielen Fällen einfach

01:29:10.940 --> 01:29:12.940
nicht haben. Ja, ist eben meistens noch Müll und Ballast

01:29:12.940 --> 01:29:14.840
der Stromverbrauch. Ich hab immer nur Latest. Es gibt nur

01:29:14.840 --> 01:29:15.180
Latest.

01:29:15.180 --> 01:29:19.200
Aber wenn du was kaputt gemacht hast,

01:29:19.200 --> 01:29:20.800
Jonas, da musst du ja dann wieder zurück, anstatt

01:29:20.800 --> 01:29:22.900
dass du vorwärts gehst. Ja,

01:29:23.060 --> 01:29:24.300
war gut, aber das hab ich dann noch lokal.

01:29:24.300 --> 01:29:26.900
Na gut.

01:29:26.900 --> 01:29:29.120
YOLO, YOLO Driven

01:29:29.120 --> 01:29:29.640
Development.

01:29:29.640 --> 01:29:33.040
YOLO Vibe. Ja.

01:29:33.040 --> 01:29:34.560
Danke fürs Zuhören.

01:29:34.560 --> 01:29:36.600
Das war etwas ganz anderes. Kommt zum

01:29:36.600 --> 01:29:39.000
Hörer-Treffen vorbei und wir

01:29:39.000 --> 01:29:40.520
freuen uns auf euch hier.

01:29:40.520 --> 01:29:42.840
Wann war das gleich noch? Ja, Ende

01:29:42.840 --> 01:29:44.460
August, Ende September.

01:29:44.460 --> 01:29:47.000
We are discussing that in another

01:29:47.000 --> 01:29:48.560
episode. Okay.

01:29:48.560 --> 01:29:50.920
Und machen wir es. Ja, dann bleibt uns

01:29:50.920 --> 01:29:52.600
gewogen. Hallo at peisenpodcast.de.

01:29:53.020 --> 01:29:54.140
Dankeschön und bis bald.

01:29:54.140 --> 01:29:55.420
Macht's gut.
