WEBVTT

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

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

00:00:08.300 --> 00:00:14.220
<v Dominik>falls euch das interessiert, über Dataclasses und warum das riecht oder nicht,

00:00:14.340 --> 00:00:18.280
<v Dominik>oder was Cooles und wer das sonst so ist mit Sachen.

00:00:18.680 --> 00:00:19.140
<v Dominik>Hi, Johannes.

00:00:20.400 --> 00:00:21.840
<v Dominik>Hallo, hallo Dominik, hallo Jochen.

00:00:21.960 --> 00:00:22.340
<v Dominik>Hi, Jochen.

00:00:22.640 --> 00:00:24.000
<v Dominik>Ja, hallo Dominik, hallo Johannes.

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

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

00:00:32.080 --> 00:00:35.880
<v Dominik>Ja, und dann haben die gesagt, wir sollten ein bisschen mehr Struktur machen und das wieder ein bisschen schöner.

00:00:36.020 --> 00:00:41.300
<v Jochen>Ja, das hat mich so leicht irritiert, aber dann dachte ich, ja gut, dann höre ich mal vielleicht, was so Leute zu sagen haben.

00:00:41.580 --> 00:00:43.020
<v Jochen>Die haben ja vielleicht auch Erfahrung und so.

00:00:43.700 --> 00:00:46.940
<v Dominik>Weil wir unseren Podcast an anderen Podcasts machen, als die ihren Podcast machen.

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

00:00:51.200 --> 00:00:52.340
<v Dominik>Wie wir das richtig machen.

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

00:00:56.980 --> 00:00:58.820
<v Dominik>Ich glaube, das geht gar nicht so schlecht.

00:00:59.000 --> 00:01:00.700
<v Jochen>Ja, das geht schon, aber

00:01:00.700 --> 00:01:02.980
<v Jochen>ich meine, wir machen das ja nicht so richtig professionell.

00:01:03.220 --> 00:01:04.660
<v Jochen>Ich wollte gerade sagen, Jochen, möchtest du das jetzt professionell?

00:01:04.660 --> 00:01:06.420
<v Jochen>Nein, nein, das auch nicht, aber

00:01:06.420 --> 00:01:08.760
<v Jochen>also zum Beispiel irgendwie ein Ratschlag

00:01:08.760 --> 00:01:10.700
<v Jochen>war halt so, ja, sagt doch vorher, wenn ihr euch vorstellt,

00:01:10.920 --> 00:01:11.680
<v Jochen>irgendwie einmal macht das

00:01:11.680 --> 00:01:13.880
<v Jochen>immer gleich quasi.

00:01:14.600 --> 00:01:16.580
<v Jochen>Es wäre auch so eine Intro-Melodie

00:01:16.580 --> 00:01:18.040
<v Jochen>oder so, wäre nicht so schlecht, dann dachte ich schon so,

00:01:18.160 --> 00:01:20.440
<v Jochen>Gott, Gott, Gott. Aber ja,

00:01:20.520 --> 00:01:22.360
<v Jochen>ich habe gehört, es gibt Leute hier unter uns.

00:01:22.380 --> 00:01:24.480
<v Dominik>Ich kann ja meinen eigenen Jingle schreiben, dann mache ich den auf meinen

00:01:24.480 --> 00:01:26.240
<v Dominik>Style und dann können wir ja gucken,

00:01:26.340 --> 00:01:27.100
<v Dominik>ob der Ratschlag runtergeht.

00:01:27.820 --> 00:01:29.440
<v Dominik>Wenn man sich die Kurve anguckt, ist halt so

00:01:29.440 --> 00:01:31.460
<v Dominik>in allem einen eigenen Jingle.

00:01:31.880 --> 00:01:33.720
<v Johannes>Immer wenn ich dabei bin, muss der am Anfang eingespielt werden.

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

00:01:35.000 --> 00:01:37.800
<v Jochen>Ja, okay, dann sieht die, wie viele Leute

00:01:37.800 --> 00:01:39.240
<v Jochen>hören noch zu Kurve wahrscheinlich aus, wie so

00:01:39.240 --> 00:01:42.200
<v Jochen>Akapulco, Klippenspringer, irgendwie ins Nichts.

00:01:42.260 --> 00:01:43.560
<v Jochen>Das ist vielleicht auch nicht so

00:01:43.560 --> 00:01:45.680
<v Dominik>toll. Ja, aber ich finde, wie wir es sonst so machen,

00:01:45.740 --> 00:01:47.600
<v Dominik>wir haben ja eigentlich schon mehr eine Struktur,

00:01:47.760 --> 00:01:49.500
<v Dominik>als du jetzt denkst. Also erstens kennen uns hier die Leute

00:01:49.500 --> 00:01:51.480
<v Dominik>und wenn die sich dafür interessieren, wie wir sind oder

00:01:51.480 --> 00:01:53.600
<v Dominik>interessieren würden, also ganz ehrlich, dann können die uns auch fragen.

00:01:53.880 --> 00:01:55.180
<v Dominik>Hallo at PythonPodcast.de

00:01:55.180 --> 00:01:57.520
<v Dominik>Also wir machen irgendwas mit Python, das hat man vielleicht

00:01:57.520 --> 00:01:59.720
<v Dominik>schon mal rausgehört. Ich glaube, das ist auch offensichtlich.

00:02:00.140 --> 00:02:01.760
<v Dominik>Und viel mehr muss man

00:02:01.760 --> 00:02:03.500
<v Dominik>glaube ich gar nicht wissen. Also muss man nicht, kann man

00:02:03.500 --> 00:02:05.340
<v Dominik>natürlich gerne. Dafür kann man ja fragen oder uns kennenlernen.

00:02:05.480 --> 00:02:07.500
<v Dominik>Unseren Hörer treffen, das bald stattfindet.

00:02:07.580 --> 00:02:09.560
<v Dominik>Wir organisieren das nämlich. Wir haben noch

00:02:09.560 --> 00:02:11.480
<v Dominik>immer noch gar keinen festen Termin, aber es wird

00:02:11.480 --> 00:02:13.600
<v Dominik>wahrscheinlich auf August, September hinauslaufen.

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

00:02:16.340 --> 00:02:17.580
<v Jochen>Sag ich doch. August oder September.

00:02:19.480 --> 00:02:21.200
<v Jochen>Das ist kein fester Termin, oder? Nein.

00:02:22.860 --> 00:02:23.600
<v Jochen>Dann müssen wir jetzt

00:02:23.600 --> 00:02:25.500
<v Jochen>nochmal kurz unsere Kalender übereinanderlegen. Also ich glaube

00:02:25.500 --> 00:02:27.720
<v Jochen>tatsächlich wird es eher Ende August

00:02:27.720 --> 00:02:29.660
<v Jochen>bis Anfang September werden müssen

00:02:29.660 --> 00:02:31.580
<v Dominik>wegen Schulferien. Ja, Anfang September bin ich

00:02:31.580 --> 00:02:32.080
<v Dominik>übrigens im Urlaub.

00:02:34.380 --> 00:02:35.740
<v Dominik>Ja, das musst du leider absagen.

00:02:35.820 --> 00:02:36.280
<v Dominik>Das geht halt nicht.

00:02:37.920 --> 00:02:39.560
<v Jochen>Na gut, dann wird es halt vielleicht eher sogar

00:02:39.560 --> 00:02:41.420
<v Jochen>Ende September. Okay, dann sagen wir,

00:02:41.500 --> 00:02:43.660
<v Jochen>wir schieben die Ankündigung auf

00:02:43.660 --> 00:02:45.620
<v Jochen>nächste Episode, die hoffentlich im Juli...

00:02:45.620 --> 00:02:47.700
<v Dominik>Ja, genau. Also es sollte noch gutes Wetter sein. Wir wollen es nämlich draußen machen.

00:02:48.020 --> 00:02:49.040
<v Dominik>Und okay,

00:02:49.320 --> 00:02:51.240
<v Dominik>September,

00:02:51.520 --> 00:02:52.580
<v Dominik>was ist mit August?

00:02:53.300 --> 00:02:55.300
<v Jochen>Geht nicht gut. Wie gesagt, das ist ein Schulferien.

00:02:55.300 --> 00:02:56.760
<v Jochen>Wir diskutieren das später aus.

00:02:57.340 --> 00:02:58.720
<v Jochen>Wir haben auf jeden Fall das Hörer-Entreffen.

00:02:58.940 --> 00:03:00.300
<v Jochen>Sagt gerne Bescheid, wenn ihr vorbeikommen wollt.

00:03:00.380 --> 00:03:03.380
<v Dominik>Es ist hier in der Gegend, also hier heißt Rheinland-Düsseldorf.

00:03:04.180 --> 00:03:05.160
<v Dominik>Wir können ja schon mal sammeln.

00:03:05.260 --> 00:03:07.420
<v Jochen>Also wenn ihr uns irgendwas an hallo-at-python-podcast.de

00:03:07.420 --> 00:03:09.320
<v Jochen>schreibt, dann notifizieren wir euch,

00:03:09.520 --> 00:03:10.360
<v Jochen>sobald wir genaueres wissen.

00:03:11.620 --> 00:03:13.280
<v Jochen>Und es wird wahrscheinlich draußen

00:03:13.280 --> 00:03:14.460
<v Jochen>irgendwie...

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

00:03:15.680 --> 00:03:17.100
<v Jochen>Irgendwie so Dinge.

00:03:17.980 --> 00:03:19.060
<v Jochen>Ja, okay.

00:03:19.600 --> 00:03:20.160
<v Jochen>Genau.

00:03:21.560 --> 00:03:23.280
<v Dominik>Zur anderen Struktur, Jochen.

00:03:24.040 --> 00:03:25.020
<v Dominik>Wir machen immer News.

00:03:25.300 --> 00:03:27.340
<v Jochen>Ja, wir machen News. Cool, dann machen wir doch gerade ein bisschen News.

00:03:27.940 --> 00:03:29.660
<v Johannes>Aber vorgestellt hat sich jetzt keiner, oder?

00:03:31.740 --> 00:03:33.400
<v Johannes>Der Jochen wollte so schön hinfahren

00:03:33.400 --> 00:03:35.380
<v Johannes>und jetzt ist keiner eingestiegen.

00:03:35.500 --> 00:03:37.000
<v Johannes>Jochen, wer bist du denn?

00:03:37.720 --> 00:03:39.040
<v Johannes>Ihr seid doch die wichtigen Leute.

00:03:39.140 --> 00:03:40.840
<v Johannes>Stellt euch mal vor.

00:03:41.420 --> 00:03:43.040
<v Jochen>Ja, aber man muss ja immer die anderen vorstellen.

00:03:43.140 --> 00:03:44.240
<v Jochen>Man kann sich ja nicht gut selber vorstellen.

00:03:44.360 --> 00:03:45.120
<v Jochen>Also ich stelle mal die Dominik vor.

00:03:45.200 --> 00:03:47.080
<v Jochen>Dominik ist ...

00:03:47.080 --> 00:03:51.540
<v Jochen>Das ist vorbei.

00:03:53.220 --> 00:03:54.340
<v Jochen>Also meine drei Hashtags sind

00:03:54.340 --> 00:03:56.640
<v Dominik>Python, Eurorack und

00:03:56.640 --> 00:04:00.280
<v Jochen>Agentic

00:04:00.280 --> 00:04:02.060
<v Jochen>Vibe-Coding, ja.

00:04:02.180 --> 00:04:03.420
<v Jochen>Vibe-Coding, genau.

00:04:04.120 --> 00:04:05.280
<v Jochen>Okay, ihr müsst jetzt alle guten

00:04:05.280 --> 00:04:07.760
<v Jochen>Hashtags schon weg, meins wären

00:04:07.760 --> 00:04:09.880
<v Jochen>Python,

00:04:10.660 --> 00:04:11.660
<v Jochen>Python Podcast,

00:04:11.680 --> 00:04:14.240
<v Jochen>Ja, Ukulele, Ukulele ist auch

00:04:14.240 --> 00:04:14.700
<v Jochen>sehr gut, genau.

00:04:15.720 --> 00:04:17.300
<v Jochen>Ich habe auch noch ein paar andere Instrumente, aber ja.

00:04:17.460 --> 00:04:19.580
<v Dominik>Und Johannes, sollen wir...

00:04:19.580 --> 00:04:21.160
<v Johannes>Ja, also ich, hallo, ich bin Johannes.

00:04:21.800 --> 00:04:23.700
<v Johannes>Für die, die mich nicht kennen, ich bin gelegentlich

00:04:23.700 --> 00:04:25.620
<v Johannes>hier im Python-Podcast als Gast, weil ich diese

00:04:25.620 --> 00:04:26.680
<v Johannes>beiden anderen Typen da kenne.

00:04:29.160 --> 00:04:29.160
<v Johannes>Und

00:04:29.160 --> 00:04:31.600
<v Johannes>ich komme nicht aus dem Rheinland.

00:04:32.820 --> 00:04:33.580
<v Johannes>Ich bin...

00:04:33.580 --> 00:04:35.760
<v Johannes>Du warst da mal hier. Ich war mal im Rheinland,

00:04:35.880 --> 00:04:37.300
<v Johannes>ja, aber es hat sich dann

00:04:37.300 --> 00:04:39.720
<v Johannes>als... Also ich musste

00:04:39.720 --> 00:04:40.060
<v Johannes>wieder weg.

00:04:41.160 --> 00:04:43.720
<v Johannes>Und jetzt bin

00:04:43.720 --> 00:04:45.840
<v Johannes>ich hier. Hier hat es übrigens

00:04:45.840 --> 00:04:47.760
<v Johannes>800 Sonnenstunden im Jahr mehr als

00:04:47.760 --> 00:04:49.400
<v Johannes>bei euch im Rheinland. Das ist nur so nebenbei.

00:04:49.960 --> 00:04:51.300
<v Johannes>Deshalb bin ich auch so ein sonniges Gemüt.

00:04:51.300 --> 00:04:52.860
<v Johannes>und ihr seid so traurig und beregnet.

00:04:54.380 --> 00:04:54.760
<v Johannes>Ja, richtig.

00:04:55.240 --> 00:04:56.800
<v Dominik>Die kennst du übrigens alle aus dem Chaos-Umfeld

00:04:56.800 --> 00:04:57.920
<v Dominik>so ein bisschen mehr oder weniger auch, oder?

00:04:58.740 --> 00:05:01.080
<v Johannes>Ja, den Jochen habe ich im Computer-Club kennengelernt.

00:05:01.720 --> 00:05:03.040
<v Johannes>Also, ja, mich auch.

00:05:03.040 --> 00:05:04.560
<v Johannes>Meine Hashtags.

00:05:05.800 --> 00:05:07.400
<v Johannes>Django, Mathematik

00:05:07.400 --> 00:05:09.280
<v Johannes>und Spiele.

00:05:09.820 --> 00:05:10.760
<v Johannes>Spiele, richtig.

00:05:11.840 --> 00:05:12.500
<v Johannes>Absolut korrekt.

00:05:13.580 --> 00:05:14.760
<v Johannes>Hört man schon am Namen.

00:05:15.580 --> 00:05:15.820
<v Johannes>Ja.

00:05:16.720 --> 00:05:18.020
<v Johannes>Nomen est omen.

00:05:19.320 --> 00:05:19.760
<v Johannes>Ja.

00:05:20.660 --> 00:05:22.460
<v Jochen>Okay, na gut, dann können wir ja jetzt nahtlos mit den

00:05:22.460 --> 00:05:23.520
<v Jochen>News einsteigen.

00:05:24.580 --> 00:05:26.100
<v Jochen>Perfekte Struktur. Sehr gut, sehr gut.

00:05:26.620 --> 00:05:28.500
<v Jochen>Ich konnte nicht so viel sammeln,

00:05:28.600 --> 00:05:30.480
<v Jochen>weil ich momentan total im Stress bin.

00:05:30.640 --> 00:05:31.700
<v Jochen>Also ich bin im Privatstress.

00:05:31.920 --> 00:05:33.940
<v Dominik>Dann erzählen wir doch ganz kurz nochmal vielleicht über das Barcamp. Also das ist jetzt

00:05:33.940 --> 00:05:36.260
<v Dominik>vielleicht nicht so interessant für alle Peißenleute, aber für alle Leute, die

00:05:36.260 --> 00:05:38.280
<v Dominik>Podcasts mögen schon. Es gab da nämlich

00:05:38.280 --> 00:05:40.360
<v Dominik>eine tolle Veranstaltung, wo man Barcamps kennt ja vielleicht,

00:05:40.400 --> 00:05:42.440
<v Dominik>aus dem Softwareumfeld, wo man ganz viele nette

00:05:42.440 --> 00:05:44.240
<v Dominik>Podcastmenschen kennengelernt hat. Ich möchte nochmal

00:05:44.240 --> 00:05:46.340
<v Dominik>Danke sagen für die tollen Kontakte, die ich da getroffen

00:05:46.340 --> 00:05:48.460
<v Dominik>und kennengelernt haben durfte.

00:05:48.460 --> 00:05:50.320
<v Jochen>Ja, Grüße an

00:05:50.320 --> 00:05:52.540
<v Jochen>an hier Working Draft zum Beispiel

00:05:52.540 --> 00:05:54.340
<v Jochen>auch ein Podcast aus

00:05:54.340 --> 00:05:56.380
<v Dominik>nicht nur Düsseldorf. Ich habe auch gehört, also gute Tipps waren

00:05:56.380 --> 00:05:58.080
<v Dominik>wir sollten mal wieder mehr zusammen

00:05:58.080 --> 00:06:00.060
<v Dominik>eine Episode aufnehmen. Ja, ich habe gehört.

00:06:00.580 --> 00:06:02.000
<v Dominik>Das wäre doch mal wieder eine Idee. Und

00:06:02.000 --> 00:06:04.460
<v Jochen>wir haben auch schon konkret geplant, was zusammen mit

00:06:04.460 --> 00:06:06.480
<v Jochen>wo wir sind, ist vorne zu machen.

00:06:07.680 --> 00:06:08.380
<v Jochen>Die kennen wir

00:06:08.380 --> 00:06:10.360
<v Jochen>auch gut und treffen uns immer wieder

00:06:10.360 --> 00:06:12.040
<v Jochen>auf allen möglichen Konferenzen und

00:06:12.040 --> 00:06:14.340
<v Jochen>so, aber

00:06:14.340 --> 00:06:16.440
<v Jochen>genau, ist bisher noch

00:06:16.440 --> 00:06:18.320
<v Jochen>nicht so richtig zustande gekommen, aber wir sind

00:06:18.320 --> 00:06:19.180
<v Jochen>auf jeden Fall da auch noch dran.

00:06:20.320 --> 00:06:22.660
<v Jochen>Das war so ein Tipp. Besucht euch

00:06:22.660 --> 00:06:24.680
<v Jochen>auch einfach gegenseitig. Auch ein guter Tipp

00:06:24.680 --> 00:06:26.640
<v Jochen>war halt, schaut nicht

00:06:26.640 --> 00:06:28.480
<v Jochen>nur nach so totalen Berühmtheiten

00:06:28.480 --> 00:06:30.480
<v Jochen>oder so, auch wenn das

00:06:30.480 --> 00:06:32.400
<v Jochen>auf dem Papier oder so erstmal, wenn man drüber nachdenkt,

00:06:32.460 --> 00:06:33.020
<v Jochen>gut aussieht.

00:06:34.480 --> 00:06:35.860
<v Jochen>Ich wollte immer schon mal Guido haben.

00:06:36.780 --> 00:06:38.440
<v Jochen>Das ist halt mit Englisch vielleicht ein Problem.

00:06:38.680 --> 00:06:40.480
<v Jochen>Mit Sarah war das jetzt mal eine Ausnahme.

00:06:42.100 --> 00:06:42.760
<v Jochen>Aber da gibt es

00:06:42.760 --> 00:06:43.340
<v Jochen>ja schon Leute.

00:06:43.960 --> 00:06:46.840
<v Jochen>In der deutschsprachigen Welt gibt es Paltenmenschen.

00:06:47.260 --> 00:06:47.460
<v Jochen>Genau.

00:06:48.220 --> 00:06:49.200
<v Jochen>es gibt eigentlich auch genug.

00:06:49.680 --> 00:06:50.760
<v Jochen>Du sprichst immerhin schon Dutch.

00:06:52.300 --> 00:06:54.280
<v Jochen>Aber das Problem ist halt

00:06:54.280 --> 00:06:55.760
<v Jochen>bei Leuten, die zu

00:06:55.760 --> 00:06:58.040
<v Jochen>bekannt sind, auch, dass man die dann halt

00:06:58.040 --> 00:06:58.760
<v Jochen>oft schon gehört hat.

00:06:59.040 --> 00:07:00.300
<v Jochen>Ich weiß nicht,

00:07:01.540 --> 00:07:03.840
<v Jochen>das ist ja jeder Podcast mit Guido.

00:07:03.840 --> 00:07:04.620
<v Jochen>Ja, genau.

00:07:06.360 --> 00:07:09.040
<v Dominik>Es gibt doch jetzt demnächst

00:07:09.040 --> 00:07:10.260
<v Dominik>ein toller Python,

00:07:10.780 --> 00:07:12.260
<v Dominik>den Film.

00:07:12.920 --> 00:07:15.160
<v Jochen>Ja, es gibt im Sommer, soll jetzt rauskommen, ich weiß gar nicht genau wann.

00:07:15.300 --> 00:07:16.620
<v Jochen>Genau, da gab es einen Trailer, habe ich gesehen.

00:07:16.820 --> 00:07:17.620
<v Jochen>Nix on the Plane?

00:07:18.100 --> 00:07:18.700
<v Jochen>Äh, nee.

00:07:21.240 --> 00:07:23.100
<v Jochen>Ja, den gab's schon, aber...

00:07:23.100 --> 00:07:25.180
<v Jochen>Ja, das war ein Python-Film.

00:07:25.260 --> 00:07:26.340
<v Jochen>Nee, das ist so ein...

00:07:26.340 --> 00:07:28.600
<v Jochen>Python D-Story, irgendwie, ich weiß es nicht, hab ich vergessen.

00:07:29.520 --> 00:07:30.540
<v Jochen>Irgendwelche Leute machen das immer

00:07:30.540 --> 00:07:32.680
<v Jochen>und über Even You haben sie zum Beispiel

00:07:32.680 --> 00:07:34.480
<v Jochen>ein Ding gemacht, das war ziemlich gut, das hab ich gesehen.

00:07:35.180 --> 00:07:35.660
<v Jochen>Und über andere Leute...

00:07:35.660 --> 00:07:38.460
<v Dominik>Der Typ wird VJS und

00:07:38.460 --> 00:07:41.040
<v Dominik>jetzt Rolldown, hab ich gelesen.

00:07:42.640 --> 00:07:43.160
<v Dominik>Und genau,

00:07:43.220 --> 00:07:44.540
<v Dominik>das gibt's jetzt auch über Python und

00:07:44.540 --> 00:07:46.000
<v Dominik>soll wohl auch, also der Trailer

00:07:46.000 --> 00:07:48.500
<v Jochen>sah auch gut aus und ja, wir wollen mal schauen, wie das so wird.

00:07:49.400 --> 00:07:49.660
<v Jochen>Genau.

00:07:50.900 --> 00:07:52.480
<v Jochen>Ja, genau, wir sind

00:07:52.480 --> 00:07:54.380
<v Jochen>auf so ein Podcamp gegangen, so ein Barcamp

00:07:54.380 --> 00:07:56.320
<v Jochen>Podcast und immer Konferenzen für mich

00:07:56.320 --> 00:07:58.300
<v Jochen>besonders attraktiv, wenn ich halt

00:07:58.300 --> 00:08:00.180
<v Jochen>irgendwie zu Fuß hinlaufen kann. Ich bin

00:08:00.180 --> 00:08:02.360
<v Jochen>irgendwie bequem an der Stelle

00:08:02.360 --> 00:08:04.600
<v Jochen>und das war halt hier in der Zentralbibliothek

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

00:08:06.840 --> 00:08:08.480
<v Jochen>was auch so ein total cooles Ding

00:08:08.480 --> 00:08:10.360
<v Jochen>ist irgendwie und weil

00:08:10.360 --> 00:08:12.280
<v Jochen>man kann die ganzen Räumlichkeiten auch für alles mögliche verwenden,

00:08:12.280 --> 00:08:14.080
<v Jochen>man muss es nur irgendwie anmelden. Und jedes Mal, wenn man

00:08:14.080 --> 00:08:16.140
<v Dominik>vorbeilief und gerade auf dem Gang, wie man es bei so

00:08:16.140 --> 00:08:18.020
<v Dominik>Konferenzen macht, kurze Gespräche, kam er vorbei mit

00:08:18.020 --> 00:08:19.400
<v Dominik>Pssst.

00:08:19.900 --> 00:08:22.200
<v Jochen>Ja, das soll aber eigentlich nicht so sein, weil

00:08:22.200 --> 00:08:24.060
<v Jochen>eigentlich hat man dieses

00:08:24.060 --> 00:08:26.200
<v Jochen>irgendwie, man muss halt leise sein

00:08:26.200 --> 00:08:28.160
<v Jochen>in der Bibliothek, Konzept

00:08:28.160 --> 00:08:30.160
<v Jochen>da nicht mehr. Es ist auch

00:08:30.160 --> 00:08:32.180
<v Jochen>so, dass man da Essen mit reinnehmen darf und so

00:08:32.180 --> 00:08:34.060
<v Jochen>und man sagt, also ich hab dann so

00:08:34.060 --> 00:08:36.140
<v Jochen>eine Führung damit gemacht und die sagt, naja, nee, wir wollen

00:08:36.140 --> 00:08:38.040
<v Jochen>das irgendwie anders machen und nicht mehr so wie früher

00:08:38.040 --> 00:08:39.960
<v Jochen>und man kann da auch was essen und

00:08:39.960 --> 00:08:42.160
<v Jochen>man kann da auch irgendwie ein bisschen

00:08:42.160 --> 00:08:43.600
<v Jochen>lauter sein, das ist alles kein Problem.

00:08:44.080 --> 00:09:00.780
<v Jochen>Und es gibt nicht nur Bücher, sondern es gibt auch so Laserentfernungsmesser und 3D-Drucker und VR-Brillen und ein Podcaststudio und ein Ding, wo man Super-8-Filme digitalisieren kann und auch alte Vias digitalisieren kann.

00:09:00.780 --> 00:09:04.180
<v Jochen>Und ein Musikstudio,

00:09:04.600 --> 00:09:05.420
<v Jochen>wo man leider aber nicht

00:09:05.420 --> 00:09:07.360
<v Jochen>drin laut sein darf. Da darf man nur digitale

00:09:07.360 --> 00:09:08.280
<v Jochen>Instrumente drin verwenden,

00:09:08.980 --> 00:09:11.560
<v Jochen>weil daneben die juristische

00:09:11.560 --> 00:09:13.420
<v Jochen>Fachbibliothek ist, wo die Leute dann

00:09:13.420 --> 00:09:15.700
<v Jochen>lernen für Prüfungen. Und das hat sich dann herausgestellt,

00:09:16.060 --> 00:09:17.560
<v Jochen>dass das eine ungünstige Kombination

00:09:17.560 --> 00:09:17.920
<v Jochen>ist.

00:09:21.240 --> 00:09:22.960
<v Jochen>Ich beklage dich gleich!

00:09:24.080 --> 00:09:25.500
<v Jochen>Ja, gut, hätte man auch

00:09:25.500 --> 00:09:27.160
<v Jochen>vorher drauf kommen können, aber das muss da wohl

00:09:27.160 --> 00:09:29.500
<v Jochen>irgendwie erstmal eskalieren und jetzt darf man da nicht mehr singen.

00:09:30.420 --> 00:09:31.460
<v Jochen>Eigentlich schade, naja.

00:09:31.700 --> 00:09:33.400
<v Johannes>Ja, schade. Gibt es auch Backformen?

00:09:33.480 --> 00:09:35.400
<v Johannes>Ich habe das einmal gesehen, das ist Bücherei

00:09:35.400 --> 00:09:37.540
<v Jochen>für Backformen. Genau, so Bücherei der Dinge nennen die das.

00:09:37.600 --> 00:09:39.440
<v Jochen>Da gibt es auch so Fußball-Backformen und so

00:09:39.440 --> 00:09:40.980
<v Jochen>Zeugs. Ja, also wirklich

00:09:40.980 --> 00:09:43.400
<v Jochen>Geburtstagskids für alle möglichen

00:09:43.400 --> 00:09:44.460
<v Jochen>Geburtstagspartys und so.

00:09:45.260 --> 00:09:47.380
<v Jochen>Also wirklich, wirklich. Und man kann

00:09:47.380 --> 00:09:49.160
<v Jochen>da halt sich hinsetzen und arbeiten. Es sind 600

00:09:49.160 --> 00:09:51.260
<v Jochen>Arbeitsplätze in dem Ding. Das ist halt auch irgendwie

00:09:51.260 --> 00:09:53.180
<v Jochen>echt groß. Es ist zwei Fußballfelder groß.

00:09:54.000 --> 00:09:55.460
<v Jochen>Und es gibt jede Menge Räume

00:09:55.460 --> 00:09:57.320
<v Jochen>für alles mögliche. Und wie gesagt, man muss halt nur sagen, ich hätte

00:09:57.320 --> 00:09:59.000
<v Jochen>gerne den Raum für den und den Zweck und dann

00:09:59.000 --> 00:10:01.320
<v Jochen>überlegen die und dann sagen sie einem

00:10:01.320 --> 00:10:03.740
<v Jochen>nee, du stinkst oder ja, kannst du haben.

00:10:03.940 --> 00:10:05.460
<v Dominik>In der alten Zentralbibliothek,

00:10:05.480 --> 00:10:07.260
<v Dominik>da war ich vielleicht zwölf oder sowas,

00:10:07.320 --> 00:10:08.760
<v Dominik>da stand so ein Computer drin rum

00:10:08.760 --> 00:10:11.580
<v Dominik>und der war halt ganz gemein

00:10:11.580 --> 00:10:13.340
<v Dominik>gesichert, also dachten sie, und da

00:10:13.340 --> 00:10:15.280
<v Dominik>konnte man so ein paar Sachen machen.

00:10:15.940 --> 00:10:17.660
<v Dominik>Heimlich. Und dann Sachen ausprobieren

00:10:17.660 --> 00:10:19.540
<v Dominik>und dann...

00:10:19.540 --> 00:10:21.320
<v Dominik>Tja, das weiß ich,

00:10:21.320 --> 00:10:22.420
<v Dominik>also da gibt es auch eine Menge...

00:10:22.420 --> 00:10:24.440
<v Dominik>Ich bin nämlich nach der Schule früher immer in die Bibliothek gefahren.

00:10:24.640 --> 00:10:27.320
<v Jochen>Ja, das habe ich auch, ich habe nicht nur nach der Schule

00:10:27.320 --> 00:10:29.720
<v Jochen>oft. Aber ob ich da jetzt

00:10:29.720 --> 00:10:31.520
<v Dominik>meine Kinder hinlassen würde, ich weiß es nicht so genau.

00:10:32.800 --> 00:10:33.000
<v Dominik>Ja.

00:10:33.640 --> 00:10:35.040
<v Dominik>Es ist, ja, egal.

00:10:35.600 --> 00:10:37.760
<v Jochen>Aber, also, wie gesagt, ich wusste gar nicht, dass es so einen Ort gibt

00:10:37.760 --> 00:10:39.400
<v Jochen>und dass man da so coole Sachen machen kann.

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

00:10:41.000 --> 00:10:42.280
<v Jochen>Ja, da gibt es Bücher.

00:10:43.280 --> 00:10:46.260
<v Jochen>Ja, da werde ich mir nicht...

00:10:46.260 --> 00:10:47.820
<v Jochen>Aber es gibt eine Fernleihe, über die man halt

00:10:47.820 --> 00:10:49.360
<v Dominik>eine Menge kriegt. Darüber wollten wir gleich reden.

00:10:49.960 --> 00:10:51.640
<v Jochen>Und die liefert

00:10:51.640 --> 00:10:53.000
<v Jochen>dann halt auch an die nächstgelegene

00:10:53.000 --> 00:10:55.300
<v Jochen>Bibliothek, also man kann das auch online machen

00:10:55.300 --> 00:10:57.700
<v Jochen>und dann kann man die Sachen dann lokal

00:10:57.700 --> 00:10:59.200
<v Jochen>abholen und bei uns ist die nächstgelegene

00:10:59.200 --> 00:11:01.580
<v Jochen>Bibliothek irgendwie ein paar

00:11:01.580 --> 00:11:02.380
<v Jochen>hundert Meter entfernt.

00:11:02.840 --> 00:11:04.720
<v Dominik>Wir gehen auch mal zu unserer Stadtteilbibliothek.

00:11:04.880 --> 00:11:06.600
<v Jochen>Und man kann die Bücher auch überall zurückgeben und so.

00:11:06.600 --> 00:11:08.080
<v Jochen>Also ich war überrascht.

00:11:08.680 --> 00:11:10.020
<v Jochen>Oder Tonis ausleihen.

00:11:10.420 --> 00:11:11.020
<v Jochen>Das auch, ja.

00:11:12.860 --> 00:11:13.780
<v Jochen>Ja, genau.

00:11:14.160 --> 00:11:15.860
<v Jochen>Da hat das Ganze irgendwie stattgefunden.

00:11:16.720 --> 00:11:18.240
<v Dominik>Wir haben ein paar tolle Tipps bekommen

00:11:18.240 --> 00:11:20.140
<v Dominik>für Marketing und was man nicht alles machen soll.

00:11:20.220 --> 00:11:21.380
<v Dominik>Wir machen jetzt ganz viel Marketing.

00:11:22.540 --> 00:11:23.520
<v Dominik>Viel Spaß damit.

00:11:24.160 --> 00:11:25.900
<v Jochen>Für uns bestimmt gut, für euch, ja,

00:11:25.960 --> 00:11:26.620
<v Jochen>ihr müsst halt damit leben.

00:11:28.260 --> 00:11:29.640
<v Jochen>Ja, nee. Wir haben

00:11:29.640 --> 00:11:31.940
<v Dominik>tatsächlich überlegt, ob wir ein Video mal aufnehmen wollen.

00:11:32.640 --> 00:11:33.980
<v Dominik>Genau, ob wir ein bisschen mehr Video machen.

00:11:34.380 --> 00:11:35.740
<v Dominik>Also ich hab's schon länger überlegt, aber

00:11:35.740 --> 00:11:38.080
<v Jochen>ja, das war so auch einer der Geschichten, wo

00:11:38.080 --> 00:11:40.120
<v Jochen>Leute sagen, ja, das muss man im Grunde irgendwie,

00:11:40.220 --> 00:11:40.620
<v Jochen>wenn man

00:11:40.620 --> 00:11:44.080
<v Jochen>Social Media Presence Interaction

00:11:44.080 --> 00:11:45.540
<v Jochen>muss das schon irgendwie machen.

00:11:47.180 --> 00:11:48.180
<v Jochen>Ja, man gewinnt halt

00:11:48.180 --> 00:11:49.780
<v Johannes>einen Hörerkreis auf YouTube, oder? Also

00:11:49.780 --> 00:11:51.980
<v Johannes>die Leute, die YouTube gucken, die

00:11:51.980 --> 00:11:54.060
<v Jochen>Ja, und gar nicht mal

00:11:54.060 --> 00:11:56.120
<v Jochen>gar nicht mal unbedingt die Podcast-

00:11:56.120 --> 00:11:58.100
<v Jochen>Episoden selber, aber dass man zumindest da ist

00:11:58.100 --> 00:12:00.060
<v Jochen>und da gefunden wird, für die Leute, die halt

00:12:00.060 --> 00:12:02.000
<v Jochen>nur auf YouTube sind und dann halt

00:12:02.000 --> 00:12:03.940
<v Jochen>da einen Trailer hat, dass sie halt wissen, oh, es gibt

00:12:03.940 --> 00:12:05.660
<v Jochen>den Podcast, ich muss da vielleicht irgendwie

00:12:05.660 --> 00:12:08.320
<v Jochen>auf meinem Podcatcher der Wahl oder auf der Website gucken.

00:12:08.320 --> 00:12:09.860
<v Dominik>Das ist halt total steil, Johannes.

00:12:10.040 --> 00:12:11.940
<v Dominik>Und da stehen die Fans hinterher auch vor deiner Tür

00:12:11.940 --> 00:12:13.460
<v Dominik>und klopfen heimlich.

00:12:13.620 --> 00:12:14.580
<v Dominik>Die Groupies.

00:12:16.880 --> 00:12:17.660
<v Dominik>Ja, also,

00:12:17.900 --> 00:12:19.420
<v Dominik>oder was mich auch... So stelle ich es mir vor.

00:12:19.680 --> 00:12:21.960
<v Jochen>Was ich auch total cool fand, war, wie Leute darüber gesprochen

00:12:21.960 --> 00:12:23.720
<v Jochen>haben, wie sie halt ihre Workflows halt so ein bisschen

00:12:23.720 --> 00:12:24.760
<v Jochen>automatisieren mit

00:12:24.760 --> 00:12:27.580
<v Jochen>so diversen Tools und

00:12:27.580 --> 00:12:29.260
<v Jochen>was man da alles machen kann an

00:12:29.260 --> 00:12:31.660
<v Jochen>Automatisierung von irgendwie

00:12:31.660 --> 00:12:33.000
<v Jochen>ja, was man, oder

00:12:33.000 --> 00:12:35.820
<v Jochen>Oh, jetzt sind wir bei einer anderen geplanten Folge

00:12:35.820 --> 00:12:37.440
<v Dominik>übrigens, aber nicht bei Podcasts, aber

00:12:37.440 --> 00:12:39.720
<v Dominik>wir wollten auch bald nochmal wieder bei

00:12:39.720 --> 00:12:41.600
<v Dominik>so Data Science-Kram reden und dann auch nochmal

00:12:41.600 --> 00:12:42.100
<v Dominik>über

00:12:42.100 --> 00:12:45.660
<v Dominik>die ganzen neuen KI-Sachen. Darf ich

00:12:45.660 --> 00:12:47.480
<v Dominik>KI sagen? Ich weiß nicht. MCPs und so.

00:12:47.580 --> 00:12:49.280
<v Dominik>Ja, ich glaube, man darf was schon sagen. KI, musst du sagen.

00:12:49.440 --> 00:12:50.520
<v Dominik>KI, oh.

00:12:51.620 --> 00:12:53.540
<v Dominik>Achso, Entschuldigung. Du hast eben

00:12:53.540 --> 00:12:54.980
<v Dominik>so einen tollen Link geschickt, der dazu passt.

00:12:55.820 --> 00:12:57.520
<v Dominik>Ja, ich habe auch tatsächlich noch News,

00:12:58.500 --> 00:12:59.600
<v Dominik>weil es

00:12:59.600 --> 00:13:01.500
<v Johannes>gibt eine interessante Veröffentlichung vom

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

00:13:03.220 --> 00:13:05.540
<v Johannes>Your Brain on Jet GPT, die gerade

00:13:05.540 --> 00:13:07.380
<v Johannes>so ein bisschen durch die News

00:13:07.380 --> 00:13:09.240
<v Johannes>gegangen ist, wo

00:13:09.240 --> 00:13:11.140
<v Johannes>sie untersuchen, was das denn für

00:13:11.140 --> 00:13:13.540
<v Johannes>Auswirkungen hat. Also ich meine, es ist natürlich sehr reißerisch

00:13:13.540 --> 00:13:15.640
<v Johannes>und die Studie

00:13:15.640 --> 00:13:17.100
<v Johannes>hat 54 Teilnehmer.

00:13:17.420 --> 00:13:19.760
<v Johannes>Es ist jetzt kein repräsentativer

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

00:13:22.380 --> 00:13:22.740
<v Johannes>Aber

00:13:22.740 --> 00:13:32.760
<v Johannes>Aber es gab wohl signifikante Unterschiede zwischen Menschen, die LLMs benutzen oder nur eine Search-Engine oder Brain-Only in Klammern, no tools.

00:13:37.480 --> 00:13:38.980
<v Johannes>Das finde ich eine sehr schöne Bezeichnung.

00:13:39.320 --> 00:13:40.960
<v Dominik>Und was war besser, für was?

00:13:43.220 --> 00:13:49.000
<v Johannes>Man kann sich Sachen besser merken, wenn man sie nicht von einem LLM erzeugen lässt oder wenn man es sich nicht von einem LLM vorkauen lässt.

00:13:49.380 --> 00:13:51.160
<v Dominik>Ja gut, das ist ja keine Überraschung,

00:13:51.240 --> 00:13:53.200
<v Dominik>dass wenn man das Wissen jetzt nicht selber erarbeitet hat,

00:13:53.280 --> 00:13:54.300
<v Dominik>dass das dann flüchtig bleibt.

00:13:54.300 --> 00:13:56.080
<v Johannes>Ja, aber auch Suchmaschine.

00:13:56.220 --> 00:13:59.980
<v Johannes>Also auch wenn du normal bei Google oder bei irgendwas anderem eintippst

00:13:59.980 --> 00:14:05.180
<v Johannes>und nicht diese KI, Kagi, ich benutze Kagi, benutzt.

00:14:07.160 --> 00:14:08.960
<v Johannes>Wenn man nicht diese KI-Zusammenfassung benutzt,

00:14:09.140 --> 00:14:11.520
<v Johannes>ist die Retention wohl deutlich besser.

00:14:12.440 --> 00:14:14.040
<v Johannes>Und das Interessante ist eigentlich,

00:14:14.040 --> 00:14:17.080
<v Dominik>dass diese Studie so durch die Neuigkeit geht.

00:14:18.100 --> 00:14:19.180
<v Dominik>Ich habe es gerade nicht verstanden.

00:14:19.900 --> 00:14:31.080
<v Johannes>Das Interessante finde ich eigentlich, dass diese Studie so durch die News geht und dass die so überall zitiert wird, weil es halt schon so ein bisschen dieses Gefühl reflektiert von, ja, vielleicht ist es doch nicht so gut für uns.

00:14:31.080 --> 00:14:32.960
<v Jochen>Ja, aber ist das nicht immer eine Neuigkeit?

00:14:33.180 --> 00:14:39.400
<v Jochen>Ich meine, die meisten, also viele Leute sind halt so doch eher so im Modus.

00:14:40.060 --> 00:14:41.720
<v Jochen>News, technology is bad for you.

00:14:42.280 --> 00:14:47.520
<v Jochen>Genau, meckernder Rentner im Fenster mit dem Kissen und Kulturpessimismus kommt halt immer gut an.

00:14:47.620 --> 00:14:49.460
<v Jochen>Das ist halt immer eine Schlagzeile. Ja, aber Jochen, wir sind jetzt

00:14:49.460 --> 00:14:51.360
<v Johannes>langsam in so einem Alter. Ach so.

00:14:53.080 --> 00:14:53.940
<v Johannes>Genau, und hast du gesehen,

00:14:54.040 --> 00:14:55.640
<v Dominik>zwei Straßen weit haben sie die

00:14:55.640 --> 00:14:57.580
<v Dominik>Straße gelb gestrichen.

00:14:57.580 --> 00:14:58.120
<v Dominik>Das habe ich nicht gesehen.

00:14:59.580 --> 00:15:01.540
<v Johannes>Unglaublich. Also was die jungen Leute heute

00:15:01.540 --> 00:15:02.860
<v Johannes>machen, das hätte es bei uns früher nicht gegeben.

00:15:02.860 --> 00:15:05.400
<v Dominik>Das waren nicht die jungen Leute, das haben sie richtig mit Teams gemacht,

00:15:05.480 --> 00:15:07.320
<v Dominik>die dann angerückt sind und alles verschönern wollten.

00:15:07.460 --> 00:15:09.260
<v Dominik>Da haben sie alles mit einer stinkenden Farbe angestrichen

00:15:09.260 --> 00:15:10.860
<v Dominik>und dann hinterher wollten sie einen Garten da drauf machen, ja.

00:15:12.280 --> 00:15:13.440
<v Dominik>Also der Dominik ist auch

00:15:13.440 --> 00:15:14.320
<v Dominik>in dem Alter, wie ihr hört.

00:15:15.240 --> 00:15:15.520
<v Dominik>Genau.

00:15:16.520 --> 00:15:33.540
<v Jochen>Also ich verstehe, wie diese medialen Mechanismen funktionieren, die halt dazu führen, dass das halt immer Schlagzeilen und Neuigkeiten sind. Aber ich habe große Zweifel, dass das quasi ein repräsentatives Bild davon zeichnet, was irgendwie so passiert.

00:15:33.540 --> 00:15:34.780
<v Jochen>insofern. Ist es sicherlich nicht.

00:15:35.500 --> 00:15:37.200
<v Johannes>Aber die Anzeichen

00:15:37.200 --> 00:15:39.060
<v Johannes>davon, dass Leute auf diese Dinge

00:15:39.060 --> 00:15:41.220
<v Johannes>vertrauen und dann

00:15:41.220 --> 00:15:43.080
<v Johannes>auf solche Fakten reinfallen oder

00:15:43.080 --> 00:15:44.980
<v Johannes>auf solche ausgedachten Sachen,

00:15:45.220 --> 00:15:47.220
<v Johannes>dass Ungarn auch Holland genannt wird.

00:15:51.960 --> 00:15:55.040
<v Johannes>Dieses Vertrauen ist da halt schon sehr groß.

00:15:55.260 --> 00:15:57.020
<v Johannes>Ich habe heute zweimal gehört, ich habe

00:15:57.020 --> 00:15:59.560
<v Dominik>Chat-Spotty gefragt, mir dann meine Schule ausgesucht

00:15:59.560 --> 00:16:01.140
<v Dominik>und ja, das wird da als

00:16:01.140 --> 00:16:03.420
<v Dominik>Suchersatz benutzt. Also ganz klassisch

00:16:03.420 --> 00:16:05.300
<v Johannes>so. Ja, finde ich ganz toll. Also da bin ich zu

00:16:05.300 --> 00:16:07.220
<v Johannes>alt dafür. Das finde ich ganz komisch.

00:16:07.220 --> 00:16:08.600
<v Johannes>Ja, also Leute denken,

00:16:08.880 --> 00:16:11.260
<v Dominik>das ist aber auch komisch, dass es nicht direkt die Wahrheit

00:16:11.260 --> 00:16:13.040
<v Dominik>gesagt hat oder dass man da ja so ein paar

00:16:13.040 --> 00:16:15.100
<v Dominik>Informationen hatte, die man so mal kurz überprüfen musste.

00:16:15.720 --> 00:16:17.180
<v Dominik>Gut, das mit der Medienkompetenz ist

00:16:17.180 --> 00:16:18.840
<v Jochen>halt ein Problem, aber das war auch schon immer ein Problem.

00:16:19.020 --> 00:16:21.100
<v Jochen>Ich meine, ich erinnere mich noch, als Internet und Google

00:16:21.100 --> 00:16:22.940
<v Jochen>neu waren. Hast du nicht dem Marksteiger geglaubt,

00:16:22.960 --> 00:16:24.780
<v Jochen>dass er gerufen hat? Oder das Fernsehen, genau.

00:16:24.960 --> 00:16:26.240
<v Jochen>Als das Fernsehen neu war, auch

00:16:26.240 --> 00:16:28.620
<v Jochen>als das Radio neu war, irgendwie

00:16:28.620 --> 00:16:31.080
<v Jochen>War of the Worlds,

00:16:31.200 --> 00:16:33.160
<v Jochen>war auch ein großes Medienkompetenz. Damals, als man

00:16:33.160 --> 00:16:34.840
<v Dominik>den Propheten noch wirklich glauben konnte.

00:16:35.160 --> 00:16:35.300
<v Dominik>Ja,

00:16:37.420 --> 00:16:38.600
<v Dominik>also es ist ein

00:16:38.600 --> 00:16:40.020
<v Dominik>wiederkehrendes Muster.

00:16:41.080 --> 00:16:42.960
<v Jochen>Bei Plato gibt es das schon, der wettert

00:16:42.960 --> 00:16:44.580
<v Jochen>gegen die Schrift. Und der Schaffal der Jugend, sowieso.

00:16:44.580 --> 00:16:46.460
<v Jochen>Ja, also

00:16:46.460 --> 00:16:48.260
<v Jochen>ich würde mal einfach sagen,

00:16:48.700 --> 00:16:49.760
<v Jochen>wenn man kann, so, Plato

00:16:49.760 --> 00:16:51.440
<v Jochen>hat nicht recht gehabt.

00:16:52.280 --> 00:16:53.880
<v Jochen>Und das mit der Schrift war schon Fortschritt.

00:16:54.440 --> 00:16:56.000
<v Johannes>Und das wird ihn jetzt aber ganz schön atzen.

00:16:56.880 --> 00:16:58.500
<v Jochen>Ja, aber ich glaube, du bist ein Fan,

00:16:58.700 --> 00:17:00.480
<v Jochen>Jochen. Ja, auf der anderen

00:17:00.480 --> 00:17:02.440
<v Jochen>Seite natürlich schon, bin auch irgendwo

00:17:02.440 --> 00:17:04.220
<v Jochen>ein Plato-Fanboy, das ist richtig, ja.

00:17:04.300 --> 00:17:06.380
<v Dominik>Ja, das können wir in der MCP-Folge noch mal

00:17:06.380 --> 00:17:08.160
<v Jochen>genauer auslassen. Ja, wobei, du hattest ja ein Hashtag

00:17:08.160 --> 00:17:10.320
<v Jochen>Mathematik, da habe ich einen Haken, um da mich rein...

00:17:10.320 --> 00:17:12.300
<v Jochen>Ich habe jetzt eine Podcast-Episode gehört

00:17:12.300 --> 00:17:14.120
<v Jochen>mit Terence Howe.

00:17:15.240 --> 00:17:16.500
<v Jochen>Ja, der jetzt auch anfängt.

00:17:16.660 --> 00:17:18.400
<v Jochen>Oder der jetzt auch viele Dinge

00:17:18.400 --> 00:17:20.300
<v Jochen>macht. Ja, ja, der macht vor allen Dingen viel

00:17:20.300 --> 00:17:22.620
<v Jochen>mit Lean, also sozusagen

00:17:22.620 --> 00:17:24.300
<v Jochen>eine Programmiersprache, mit der kann man...

00:17:24.300 --> 00:17:25.940
<v Jochen>Also schreibt man halt nicht Code, sondern quasi

00:17:25.940 --> 00:17:28.480
<v Jochen>Mathe und... Ja, man schreibt schon

00:17:28.480 --> 00:17:30.180
<v Johannes>Code, aber hinterher sagt er einem dann das.

00:17:30.280 --> 00:17:32.280
<v Jochen>Genau, kann der Compiler, der Compiler zählt nicht zu den beiden Readers,

00:17:32.380 --> 00:17:33.540
<v Jochen>sondern der gibt einem ein Zertifikat,

00:17:34.080 --> 00:17:35.560
<v Jochen>dass das, was man halt hingeschrieben hat,

00:17:36.260 --> 00:17:36.920
<v Jochen>folgerichtig war.

00:17:37.320 --> 00:17:38.360
<v Jochen>Und wenn das ein Beweis war,

00:17:38.440 --> 00:17:39.400
<v Jochen>dann ist es halt dann bewiesen.

00:17:41.360 --> 00:17:41.720
<v Jochen>Genau.

00:17:42.280 --> 00:17:45.380
<v Jochen>Und das macht es halt auch zugänglicher.

00:17:45.480 --> 00:17:46.100
<v Jochen>Das macht es halt auch möglich,

00:17:46.160 --> 00:17:48.700
<v Jochen>dass mehrere Leute miteinander irgendwie kollaborieren,

00:17:48.800 --> 00:17:51.460
<v Jochen>weil das Problem an der bisherigen Mathe-Notation,

00:17:51.560 --> 00:17:52.680
<v Jochen>auch die ist natürlich ein Riesenfortschritt

00:17:52.680 --> 00:17:53.320
<v Jochen>gegenüber früher,

00:17:54.100 --> 00:17:54.980
<v Jochen>aber die ist halt so,

00:17:55.020 --> 00:17:57.020
<v Jochen>wenn man jetzt so ein aktuelles Mathe-Paper nimmt

00:17:57.020 --> 00:17:59.740
<v Jochen>und schlägt Seite 15 auf,

00:18:00.600 --> 00:18:02.060
<v Jochen>dann kann einem niemand sagen,

00:18:02.180 --> 00:18:04.280
<v Jochen>was da steht, ohne die 15 Seiten

00:18:04.280 --> 00:18:06.100
<v Jochen>vorher gelesen zu haben. Und das ist super

00:18:06.100 --> 00:18:07.980
<v Jochen>anstrengend. Und deswegen macht das keiner und

00:18:07.980 --> 00:18:09.960
<v Jochen>dann kann man nicht so gut zusammenarbeiten, sondern muss jeder

00:18:09.960 --> 00:18:11.980
<v Jochen>für sich das irgendwie, und das limitiert

00:18:11.980 --> 00:18:12.720
<v Jochen>natürlich die

00:18:12.720 --> 00:18:16.120
<v Jochen>Menge an Dingen, die man

00:18:16.120 --> 00:18:18.060
<v Jochen>irgendwie tun kann. Und jetzt können halt auch

00:18:18.060 --> 00:18:19.960
<v Jochen>irgendwie Nicht-Profis quasi

00:18:19.960 --> 00:18:22.080
<v Jochen>da Pull-Requests gegen

00:18:22.080 --> 00:18:24.140
<v Jochen>lange Beweise stellen und man kann

00:18:24.140 --> 00:18:25.960
<v Jochen>halt automatisch checken, ob das halt so halbwegs stimmt, was

00:18:25.960 --> 00:18:27.640
<v Jochen>die geschrieben haben oder nicht. Und dann

00:18:27.640 --> 00:18:29.980
<v Jochen>genau. Das machen sie auch schon.

00:18:30.120 --> 00:18:31.560
<v Jochen>Die haben da ein total cooles Projekt,

00:18:31.940 --> 00:18:33.560
<v Jochen>wo es darum geht, quasi

00:18:33.560 --> 00:18:35.940
<v Jochen>nicht neue Sachen zu beweisen

00:18:35.940 --> 00:18:37.960
<v Jochen>oder so, sondern die gesamte

00:18:37.960 --> 00:18:39.720
<v Jochen>mathematische Theorie, die es so gibt

00:18:39.720 --> 00:18:41.600
<v Jochen>und alle Lemmas, die man halt so hat,

00:18:42.780 --> 00:18:43.880
<v Jochen>die alle mal

00:18:43.880 --> 00:18:45.420
<v Jochen>formal mit Linen durchzubeweisen

00:18:45.420 --> 00:18:47.740
<v Jochen>und das dann halt in der Datenbank zu haben,

00:18:47.840 --> 00:18:49.100
<v Jochen>sodass man halt später sagen kann, okay.

00:18:50.340 --> 00:18:51.500
<v Jochen>Im Endeffekt halt Mathematik, oder?

00:18:51.760 --> 00:18:53.760
<v Johannes>Also das, was es gibt so an Mathematik

00:18:53.760 --> 00:18:55.160
<v Johannes>einmal komplett

00:18:55.160 --> 00:18:57.380
<v Jochen>durchformalisiert zu haben

00:18:57.380 --> 00:18:59.560
<v Jochen>und dass man es halt auch noch suchen kann, dass man mal sagen kann,

00:18:59.660 --> 00:19:01.460
<v Jochen>okay, ich habe jetzt dieses Problem, welche

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

00:19:03.280 --> 00:19:05.260
<v Jochen>gibt es, siehst du denn in den Dingen, die

00:19:05.260 --> 00:19:07.360
<v Jochen>alle bewiesen sind, die man jetzt verwenden könnte und dann

00:19:07.360 --> 00:19:09.140
<v Jochen>kann einem auch ein LLM da vielleicht helfen.

00:19:10.020 --> 00:19:11.400
<v Jochen>Ja, also fand ich

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

00:19:13.360 --> 00:19:15.240
<v Dominik>on top von den Dingen stehen oder nicht

00:19:15.240 --> 00:19:16.900
<v Dominik>nach neuer Information suchen,

00:19:17.340 --> 00:19:19.360
<v Dominik>sondern auch was man selber quasi auch schon

00:19:19.360 --> 00:19:21.480
<v Dominik>rausputzen könnte und das geht dann halt schneller.

00:19:22.780 --> 00:19:22.980
<v Dominik>Ja.

00:19:23.080 --> 00:19:25.220
<v Dominik>So ein bisschen anders, glaube ich, als wenn man

00:19:25.220 --> 00:19:26.580
<v Dominik>sich davon erstmal die Welt erklären lässt.

00:19:28.420 --> 00:19:29.040
<v Dominik>Ja, aber

00:19:29.040 --> 00:19:31.180
<v Jochen>es ist auf jeden Fall, Mathematik ändert sich auch

00:19:31.180 --> 00:19:33.080
<v Jochen>noch immer und mehr Leute

00:19:33.080 --> 00:19:35.040
<v Jochen>können an Dingen, die hatten dann jetzt auch so

00:19:35.040 --> 00:19:36.960
<v Jochen>ein Paper dazu und da waren halt dann

00:19:36.960 --> 00:19:39.160
<v Jochen>50 Autoren drauf oder so und das

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

00:19:40.860 --> 00:19:42.920
<v Jochen>sonst so in der Physik mit tausend Autoren

00:19:42.920 --> 00:19:44.440
<v Jochen>und in der Mathematik eigentlich nicht.

00:19:45.380 --> 00:19:46.180
<v Jochen>Ja, ist spannend.

00:19:46.820 --> 00:19:47.700
<v Jochen>Kennt ihr das Chicken Paper?

00:19:48.600 --> 00:19:49.500
<v Jochen>Nee, was ist das?

00:19:50.220 --> 00:19:52.420
<v Jochen>Chicken, Chicken, Chicken, Chicken, Duck Tonka.

00:19:53.100 --> 00:19:54.560
<v Jochen>Also es gab jemand, der hat es tatsächlich geschafft,

00:19:54.920 --> 00:19:56.980
<v Dominik>ein Paper zu veröffentlichen, weil das

00:19:56.980 --> 00:19:58.480
<v Dominik>alles Standards erfüllt, formalen Standards.

00:19:58.600 --> 00:19:59.380
<v Dominik>Ach so, okay.

00:19:59.880 --> 00:20:01.760
<v Dominik>Habe ich am Montag gehört. Danke, Sascha.

00:20:03.880 --> 00:20:05.440
<v Jochen>Ja, jedenfalls, genau.

00:20:05.620 --> 00:20:07.620
<v Jochen>In dem Podcast habe ich auch, also ich bin ja auch

00:20:07.620 --> 00:20:09.360
<v Dominik>so ein... Das ist ein offiziell

00:20:09.360 --> 00:20:11.540
<v Dominik>peer-reviewtes Paper.

00:20:12.760 --> 00:20:13.660
<v Dominik>Da kommen ziemlich viele

00:20:13.660 --> 00:20:14.840
<v Dominik>Hühner drin vor. Ja, genau.

00:20:16.660 --> 00:20:17.600
<v Dominik>Eigentlich nur Hühner.

00:20:17.820 --> 00:20:18.520
<v Dominik>Ja, alles Ding.

00:20:20.180 --> 00:20:21.320
<v Dominik>Ist auf jeden Fall

00:20:21.320 --> 00:20:22.680
<v Dominik>eine sehr spitze Zielgruppe.

00:20:25.860 --> 00:20:26.940
<v Dominik>Genau, also was

00:20:26.940 --> 00:20:29.260
<v Jochen>der, also ich würde ja sagen,

00:20:29.380 --> 00:20:33.980
<v Jochen>Also bisher war ich immer in dem, es gibt ja im Grunde zwei Lager, was Theorie der Mathematik angeht.

00:20:33.980 --> 00:20:46.540
<v Jochen>Es gibt halt so die Platoniker irgendwie, also das ist eine der wenigen Gebiete, wo halt Platonismus irgendwie noch eine Rolle spielt.

00:20:47.180 --> 00:20:49.460
<v Jochen>Und die Intuitionisten oder so.

00:20:50.240 --> 00:20:55.660
<v Jochen>Und ich würde sagen, naja gut, ich bin schon irgendwie da eher auf der Platon-Seite, weil, naja, wie soll das anders gehen?

00:20:56.600 --> 00:20:58.300
<v Jochen>man kann ja auch quasi zum Beispiel

00:20:58.300 --> 00:21:00.580
<v Jochen>experimentelle Mathematik machen, wo man einfach irgendwie

00:21:00.580 --> 00:21:02.540
<v Jochen>zufällig Beweise generiert

00:21:02.540 --> 00:21:04.560
<v Jochen>und dann überprüft mit einem Ding, das halt

00:21:04.560 --> 00:21:06.360
<v Jochen>nicht alle checken kann, aber

00:21:06.360 --> 00:21:08.360
<v Jochen>checkt, ob da irgendwas interessant, äh, ob das

00:21:08.360 --> 00:21:10.300
<v Jochen>wahr ist erstmal, ob das richtig ist und dann,

00:21:10.440 --> 00:21:12.300
<v Jochen>ob irgendwas Interessantes dabei rausgekommen ist und dann manchmal

00:21:12.300 --> 00:21:14.440
<v Jochen>fällt da irgendwas Interessantes dabei raus und dann

00:21:14.440 --> 00:21:16.620
<v Jochen>wie kann man das über so einen Prozess

00:21:16.620 --> 00:21:18.500
<v Jochen>erfunden haben, sondern das muss man

00:21:18.500 --> 00:21:20.540
<v Jochen>halt eher entdeckt haben und auch so andere Dinge

00:21:20.540 --> 00:21:22.360
<v Jochen>wie, weiß ich nicht, dass es Kreise gibt oder

00:21:22.360 --> 00:21:24.400
<v Jochen>Dreiecke oder so, da hat man so intuitiv

00:21:24.400 --> 00:21:26.460
<v Jochen>das Gefühl, naja, die gibt's schon irgendwie,

00:21:26.560 --> 00:21:28.400
<v Jochen>da draußen und die kann man eher entdecken,

00:21:28.760 --> 00:21:30.920
<v Jochen>dass das halt 180 Grad sind in der Winkelsumme

00:21:30.920 --> 00:21:32.540
<v Jochen>und das kann man nicht erfinden oder

00:21:32.540 --> 00:21:34.600
<v Jochen>das ist halt einfach so und

00:21:34.600 --> 00:21:36.200
<v Jochen>deswegen dachte ich immer so, ja, also

00:21:36.200 --> 00:21:38.020
<v Jochen>quasi so

00:21:38.020 --> 00:21:40.760
<v Jochen>mathematischer

00:21:40.760 --> 00:21:42.460
<v Jochen>Platonismus ist eigentlich schon so die richtige Geschichte

00:21:42.460 --> 00:21:44.460
<v Jochen>und dann, genau, Intuitionisten seit

00:21:44.460 --> 00:21:46.520
<v Jochen>Anfang des 20. Jahrhunderts sagen so, nee, nee, das kann man

00:21:46.520 --> 00:21:48.540
<v Jochen>vielleicht alles nicht so machen und das ist doch eher vielleicht eine Erfindung.

00:21:48.940 --> 00:21:50.280
<v Jochen>Das habe ich eher so für Quatsch gehalten

00:21:50.280 --> 00:21:52.500
<v Jochen>und der hatte jetzt aber ein super

00:21:52.500 --> 00:21:53.560
<v Jochen>Argument für den

00:21:53.560 --> 00:21:56.120
<v Jochen>mathematischen Intuitionismus und zwar

00:21:56.120 --> 00:22:00.860
<v Jochen>Wie war denn das noch?

00:22:01.120 --> 00:22:02.400
<v Jochen>Jetzt musst du das auch richtig zusammenkriegen.

00:22:02.400 --> 00:22:03.860
<v Jochen>Jetzt muss ich es zusammenkriegen, verdammt.

00:22:05.500 --> 00:22:06.400
<v Jochen>Mathematik war besonders

00:22:06.400 --> 00:22:07.300
<v Jochen>einfach.

00:22:09.100 --> 00:22:10.100
<v Jochen>Genau, achso, ja richtig,

00:22:10.240 --> 00:22:12.060
<v Jochen>das ging ungefähr so, der sagte halt,

00:22:12.380 --> 00:22:14.260
<v Jochen>naja, also es gibt ja so Zahlen wie Pi, wir hatten es glaube ich auch

00:22:14.260 --> 00:22:16.180
<v Jochen>mal im Podcast schon mal irgendwann davor, als wir

00:22:16.180 --> 00:22:18.260
<v Jochen>über Pi geredet haben, naja, das ist halt

00:22:18.260 --> 00:22:20.160
<v Jochen>völlig unklar, zum Beispiel, also

00:22:20.160 --> 00:22:22.320
<v Jochen>es ist Pi, die Dezimalbruchentwicklung

00:22:22.320 --> 00:22:24.000
<v Jochen>von Pi besteht jeden Test für

00:22:24.000 --> 00:22:25.280
<v Jochen>Zufälligkeit.

00:22:26.120 --> 00:22:29.140
<v Jochen>und ja, aber niemand weiß, ob

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

00:22:31.070 --> 00:22:32.830
<v Jochen>Conspiracy da drin,

00:22:33.090 --> 00:22:34.430
<v Jochen>Verschwörung ist, die halt

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

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

00:22:38.970 --> 00:22:40.770
<v Jochen>wenn man das rauskriegen kann. Aber er sagt,

00:22:40.890 --> 00:22:43.030
<v Jochen>eigentlich ist es ja ganz einfach, also natürlich

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

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

00:22:46.050 --> 00:22:49.170
<v Jochen>man kann relativ einfach

00:22:49.170 --> 00:22:50.510
<v Jochen>beweisen, dass

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

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

00:22:55.510 --> 00:22:56.590
<v Jochen>sonst wäre einfach nicht genug Platz.

00:22:57.390 --> 00:22:58.750
<v Jochen>Wenn da irgendwelche Muster wären,

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

00:23:00.850 --> 00:23:02.450
<v Jochen>diagonalisieren oder so.

00:23:02.810 --> 00:23:05.010
<v Jochen>Das darf nicht gehen. Die allermeisten müssen

00:23:05.010 --> 00:23:07.030
<v Jochen>zufällig sein. Aber das ist was ganz Schlimmes.

00:23:07.130 --> 00:23:08.570
<v Jochen>Das ist ein ganz schlimmes Argument, Jochen, weil

00:23:08.570 --> 00:23:10.590
<v Johannes>jetzt kommst du

00:23:10.590 --> 00:23:13.010
<v Johannes>auf einen ganz schlimmen Punkt in der Mathematik.

00:23:13.170 --> 00:23:15.150
<v Johannes>Die allermeisten reellen Zahlen

00:23:15.150 --> 00:23:16.850
<v Johannes>können wir nicht erfassen.

00:23:16.990 --> 00:23:17.610
<v Johannes>Die können wir nicht sehen.

00:23:17.610 --> 00:23:19.670
<v Johannes>Die können wir, die sind, das sind so völlig

00:23:19.670 --> 00:23:22.030
<v Johannes>doofe, das sind so

00:23:22.030 --> 00:23:23.530
<v Johannes>völlig doofe Zahlen wie Pi. Und das sind

00:23:23.530 --> 00:23:25.170
<v Johannes>die allermeisten und wir kennen vielleicht

00:23:25.170 --> 00:23:26.310
<v Johannes>drei davon.

00:23:27.530 --> 00:23:28.910
<v Johannes>Aber es sind die allermeisten.

00:23:29.710 --> 00:23:31.170
<v Johannes>Ja, und das finde ich

00:23:31.170 --> 00:23:32.730
<v Johannes>sehr unangenehm. Genau.

00:23:33.370 --> 00:23:35.090
<v Jochen>Und Vorstellung. Da gibt es ja dann dieses

00:23:35.090 --> 00:23:37.090
<v Jochen>Bild von den, das hat ja bestimmt auch schon jeder mal gehört,

00:23:37.370 --> 00:23:38.810
<v Jochen>von den, diese

00:23:38.810 --> 00:23:40.970
<v Jochen>Infinite Monkeys, so relativ viele Affen,

00:23:41.010 --> 00:23:42.710
<v Jochen>wenn die nur lange genug irgendwie auf ihre

00:23:42.710 --> 00:23:44.950
<v Jochen>Schreibmaschinen eindreschen, dann

00:23:44.950 --> 00:23:46.510
<v Jochen>kommt dabei auch mal Shakespeare raus oder so.

00:23:46.890 --> 00:23:48.690
<v Jochen>Jede von diesen Zahlen muss alle Werke von

00:23:48.690 --> 00:23:50.930
<v Jochen>Shakespeare in der richtigen Reihenfolge

00:23:50.930 --> 00:23:52.890
<v Jochen>und so enthalten werden. Alle urheberrechtlich geschützt.

00:23:53.050 --> 00:23:54.970
<v Jochen>Wenn die echt zufällig sind.

00:23:55.070 --> 00:23:56.790
<v Jochen>Das kann nicht anders sein. Das muss so sein.

00:23:57.470 --> 00:23:58.950
<v Jochen>Und jetzt ist halt natürlich die Frage so,

00:23:59.090 --> 00:24:02.450
<v Jochen>okay, also wenn jede einzelne von diesen blöden Zahlen

00:24:02.450 --> 00:24:04.110
<v Jochen>im Grunde das ganze Universum irgendwie enthält,

00:24:04.550 --> 00:24:07.730
<v Jochen>weil, naja, also egal, wie man das Universum beschreibt,

00:24:07.810 --> 00:24:09.490
<v Jochen>diese Beschreibung muss da auch drin vorkommen irgendwo.

00:24:10.610 --> 00:24:14.210
<v Jochen>Wie kann das denn sein, dass das schon vorher existiert da draußen

00:24:14.210 --> 00:24:15.750
<v Jochen>und wir es nur entdecken?

00:24:16.050 --> 00:24:18.970
<v Jochen>Oder ist es dann nicht so, dass man, ja,

00:24:19.210 --> 00:24:21.370
<v Jochen>wenn man das jetzt erzeugen wollte, zum Beispiel über die...

00:24:21.370 --> 00:24:22.990
<v Johannes>Ja gut, aber das geht ja weg, Johan.

00:24:23.050 --> 00:24:25.070
<v Johannes>Da musst du nur sagen, das Universum ist quantifiziert

00:24:25.070 --> 00:24:26.710
<v Johannes>und schon existieren diese Zahlen nicht mehr.

00:24:27.290 --> 00:24:29.070
<v Johannes>Ja, aber das, gut, okay,

00:24:29.190 --> 00:24:31.230
<v Jochen>Universum, sehr weit gefasst jetzt nicht

00:24:31.230 --> 00:24:32.090
<v Jochen>als physikalisches Universum,

00:24:32.170 --> 00:24:34.010
<v Jochen>Mathematisches Universum eingeschlossen,

00:24:34.130 --> 00:24:35.670
<v Jochen>wo alle mathematischen Objekte auch drin sind,

00:24:36.270 --> 00:24:37.310
<v Jochen>inklusive Pi und so.

00:24:37.750 --> 00:24:39.710
<v Jochen>Aber jetzt ist es doch jetzt zirkulär.

00:24:41.850 --> 00:24:42.210
<v Jochen>Zirkulär?

00:24:42.210 --> 00:24:42.910
<v Jochen>Aber jetzt ist es zirkulär.

00:24:43.150 --> 00:24:43.290
<v Jochen>Ja.

00:24:43.890 --> 00:24:45.570
<v Johannes>Du sagst, es existiert, weil wir annehmen,

00:24:45.790 --> 00:24:49.070
<v Johannes>dass das Universum, in dem wir drin sind,

00:24:49.130 --> 00:24:50.670
<v Johannes>das Universum ist, in dem die existieren.

00:24:51.130 --> 00:24:52.350
<v Johannes>Nee, nee, ich würde sagen,

00:24:52.850 --> 00:24:55.350
<v Jochen>ich meine jetzt nicht das physikalische Universum,

00:24:55.450 --> 00:24:56.930
<v Jochen>sondern ganz weit gefasst,

00:24:57.290 --> 00:24:58.050
<v Jochen>Also auch

00:24:58.050 --> 00:25:00.670
<v Jochen>die Welt, in der halt auch

00:25:00.670 --> 00:25:02.410
<v Jochen>mathematische Objekte existieren,

00:25:02.810 --> 00:25:04.730
<v Jochen>da ist halt alle, also als Platoniker würde ich

00:25:04.730 --> 00:25:06.750
<v Jochen>davon ausgehen, eben sowas wie Pi, das existiert

00:25:06.750 --> 00:25:08.690
<v Jochen>da draußen halt nicht in unserem

00:25:08.690 --> 00:25:10.870
<v Jochen>Universum natürlich, im physikalischen

00:25:10.870 --> 00:25:12.490
<v Jochen>Sinne, sondern quasi

00:25:12.490 --> 00:25:14.570
<v Jochen>als Konzept, als Idee. Ja, in einem

00:25:14.570 --> 00:25:16.610
<v Jochen>anderen Universum, wenn es ein anderes gibt, müssen

00:25:16.610 --> 00:25:18.550
<v Jochen>sie auch auf diese Idee kommen, weil

00:25:18.550 --> 00:25:20.290
<v Jochen>diese Idee existiert halt unabhängig davon.

00:25:20.570 --> 00:25:22.630
<v Jochen>Und ich kann auch nicht getäuscht sein, wenn man

00:25:22.630 --> 00:25:24.630
<v Johannes>da sitzt oder so. Ich finde, da gibt es eine Grenze,

00:25:24.770 --> 00:25:26.590
<v Johannes>Jochen. Ich verstehe, worauf

00:25:26.590 --> 00:25:28.650
<v Johannes>du raus willst, dass das sozusagen was Universales ist.

00:25:28.750 --> 00:25:30.410
<v Johannes>Egal, welches Universum du dir vorstellst, die

00:25:30.410 --> 00:25:31.830
<v Johannes>Kreiskonstante ist immer so.

00:25:32.410 --> 00:25:33.950
<v Dominik>Überall gibt es sowas wie Gravitation.

00:25:34.950 --> 00:25:36.690
<v Johannes>Brauchst du nicht mal. Du brauchst nicht mal die Gravitation.

00:25:36.850 --> 00:25:38.610
<v Johannes>Du brauchst nur Mathematik. In jedem Universum,

00:25:38.610 --> 00:25:40.690
<v Johannes>das Mathematik enthält, gibt es die Kreiskonstante

00:25:40.690 --> 00:25:42.790
<v Johannes>und die ist immer gleich. Ist aber Mathematik

00:25:42.790 --> 00:25:44.490
<v Johannes>keine Gravitation? Weil Geometrie immer gleich ist.

00:25:45.070 --> 00:25:45.850
<v Johannes>Nee, brauchst du nicht.

00:25:46.870 --> 00:25:48.570
<v Jochen>Nee, das hat nichts mit Physik zu tun.

00:25:48.930 --> 00:25:50.590
<v Johannes>Aber es gibt eine Grenze.

00:25:50.710 --> 00:25:52.750
<v Johannes>Jochen, ich glaube, dass es da eine Grenze gibt.

00:25:53.130 --> 00:25:54.710
<v Johannes>Weil es gibt Dinge, die sind ganz

00:25:54.710 --> 00:25:56.590
<v Johannes>offensichtlich von Menschen ausgedacht.

00:25:56.830 --> 00:25:59.010
<v Johannes>Ja, klar. In der Mathematik.

00:25:59.810 --> 00:26:00.770
<v Johannes>Ach so, okay. Die gibt es nur,

00:26:00.910 --> 00:26:02.230
<v Johannes>weil wir so denken.

00:26:02.230 --> 00:26:03.910
<v Dominik>Da kannst du einfach fliegen gehen.

00:26:04.630 --> 00:26:06.230
<v Johannes>Und die Frage ist, wo ist die Grenze?

00:26:06.390 --> 00:26:08.270
<v Johannes>Wo sind die Sachen von Gott

00:26:08.270 --> 00:26:10.170
<v Johannes>gegeben, wie man so sagt? Dieses Zitat,

00:26:10.750 --> 00:26:12.370
<v Johannes>die natürlichen Zahlen

00:26:12.370 --> 00:26:13.210
<v Johannes>sind von Gott gegeben.

00:26:15.150 --> 00:26:15.750
<v Johannes>Menschenwerke, ja.

00:26:17.490 --> 00:26:18.350
<v Johannes>Aber da gibt es eine Grenze.

00:26:18.550 --> 00:26:20.490
<v Johannes>Sind die komplexen Zahlen, sind die schon ausgedacht?

00:26:20.630 --> 00:26:21.830
<v Johannes>Ja, ne.

00:26:22.610 --> 00:26:24.230
<v Johannes>Die haben ja schon eine Entsprechung in anderen Dingen

00:26:24.230 --> 00:26:26.390
<v Johannes>drin und die findest du überall in der Physik und so weiter.

00:26:27.470 --> 00:26:28.230
<v Johannes>Aber dann gehst du

00:26:28.230 --> 00:26:30.410
<v Johannes>weiter, sind, keine Ahnung, ist die Monstergruppe

00:26:30.410 --> 00:26:31.330
<v Johannes>ausgedacht oder nicht?

00:26:33.570 --> 00:26:34.590
<v Johannes>Wobei die Monstergruppe

00:26:34.590 --> 00:26:35.570
<v Johannes>ein schlechtes Beispiel ist.

00:26:35.750 --> 00:26:38.230
<v Dominik>Jetzt musst du kurz erklären, was denn die Monstergruppe ist, also wenn du nicht uns drei

00:26:38.230 --> 00:26:38.570
<v Dominik>meinst.

00:26:39.750 --> 00:26:41.990
<v Johannes>Es gibt so eine Klassifizierung von Gruppen

00:26:41.990 --> 00:26:44.110
<v Johannes>und in vielen Bereichen

00:26:44.110 --> 00:26:45.970
<v Johannes>der Mathematik ist es so, dass du fünf

00:26:45.970 --> 00:26:47.410
<v Johannes>sehr schöne Beispiele findest.

00:26:47.950 --> 00:26:50.450
<v Johannes>Da gibt es die natürlichen

00:26:50.450 --> 00:26:51.530
<v Johannes>Zahlen und die

00:26:51.530 --> 00:26:53.470
<v Johannes>ganzen Zahlen und dann

00:26:53.470 --> 00:26:55.670
<v Johannes>die könntest du so erweitern und

00:26:55.670 --> 00:26:57.870
<v Johannes>da gibt es irgendwie fünf verschiedene Kategorien und dann gibt es

00:26:57.870 --> 00:26:59.770
<v Johannes>noch drei zusätzliche,

00:27:00.090 --> 00:27:01.790
<v Johannes>die einzeln sind und die eine hat

00:27:01.790 --> 00:27:03.730
<v Johannes>fünf Elemente und die andere hat sieben Elemente und dann

00:27:03.730 --> 00:27:07.130
<v Johannes>gibt es noch die Monstergruppe, die hat 880.973

00:27:07.130 --> 00:27:07.730
<v Johannes>verschiedene Elemente.

00:27:07.810 --> 00:27:08.650
<v Johannes>Irgendwie so komische Zahlen.

00:27:09.450 --> 00:27:11.770
<v Johannes>Und weil die da so rausfällt, aus dieser

00:27:11.770 --> 00:27:13.690
<v Johannes>schönen Klassifizierung, hast du einen schönen

00:27:13.690 --> 00:27:15.730
<v Johannes>Setzkasten mit den ganzen ordentlichen Gruppen drin

00:27:15.730 --> 00:27:17.450
<v Johannes>und dann hast du drei so komische dazwischen

00:27:17.450 --> 00:27:19.790
<v Johannes>und dann hast du da noch die riesige Monstergruppe

00:27:19.790 --> 00:27:21.730
<v Johannes>daneben. Hat die den Namen Monstergruppe.

00:27:22.890 --> 00:27:23.050
<v Johannes>Okay.

00:27:23.470 --> 00:27:41.370
<v Johannes>Das ist ein schlechtes Beispiel, weil die fällt halt aus diesen Klassifizierungen raus. Aber ganz viele von diesen Dingen, finde ich, sind schon eindeutig ausgedacht. Die sind so, weil wir die Definitionen so gewählt haben und daraus fallen die Sachen raus. Aber ja, das ist eine schwierige Frage.

00:27:41.370 --> 00:28:00.190
<v Jochen>Ja, aber ich würde auch eben, wenn man sagt, man kommt ja an die Dinger nicht dran, wenn man es jetzt ausrechnet, dann fallen da zwar diese langen Zahlen raus, aber da braucht man Energie und Energie hat man aber nicht unendlich viel, das heißt, also Shakespeare's Werk hat rauszukriegen, wird schwierig, da braucht man irgendwie nahezu unendlich viel Energie, das heißt, man könnte ja sagen, okay, vielleicht existieren die…

00:28:00.190 --> 00:28:01.630
<v Jochen>In unserem physikalischen Universum.

00:28:01.630 --> 00:28:22.750
<v Jochen>Ja, genau. Ja, aber ich finde das halt schon irgendwie, damit könnte man schon was sagen, wenn ich da wahnsinnig viel Energie investieren muss, um da was, kann ich zwar beliebige Sachen daraus kriegen, aber dann wird es halt dann doch wieder eher so, also wenn ich das sozusagen in unsere Existenz holen will, dann muss ich halt irgendwie, dann bin ich plötzlich, unterliege ich wieder all diesen Beschränkungen und dann ist es doch wieder mehr erfunden, weil ja, was.

00:28:23.010 --> 00:28:23.610
<v Jochen>Zeit vielleicht?

00:28:23.830 --> 00:28:25.870
<v Jochen>Ich komme halt nicht, kann sein, dass es es gibt, aber ich komme halt nicht dran.

00:28:26.070 --> 00:28:27.910
<v Dominik>Aber wenn das mit Zeit nützen kann,

00:28:27.970 --> 00:28:30.030
<v Dominik>könnte das ja vielleicht gehen, weil in der Zeit könnte es ja noch eine andere

00:28:30.030 --> 00:28:32.210
<v Dominik>Dimension versteckt haben, die dann

00:28:32.210 --> 00:28:33.790
<v Dominik>nicht nur linear in der Architektur geht.

00:28:33.790 --> 00:28:36.590
<v Johannes>Ja, aber das bringt nichts, weil das ist ja nicht unendlich.

00:28:36.710 --> 00:28:37.770
<v Johannes>Stipsen und dann...

00:28:37.770 --> 00:28:39.690
<v Jochen>Ich würde ja sagen, das ist ja im Grunde das Gleiche, ob das jetzt Zeit

00:28:39.690 --> 00:28:42.130
<v Jochen>oder Energie, das kannst du ja

00:28:42.130 --> 00:28:42.650
<v Jochen>gegeneinander

00:28:42.650 --> 00:28:44.710
<v Jochen>aufrechnen.

00:28:44.770 --> 00:28:46.930
<v Dominik>Vielleicht eine Abkürzung, so eine Meta-Abkürzung.

00:28:47.750 --> 00:28:48.310
<v Dominik>Ja, keine Ahnung.

00:28:48.370 --> 00:28:52.130
<v Jochen>Müssen wir vielleicht auch irgendjemanden fragen, der da mal...

00:28:52.130 --> 00:28:53.310
<v Jochen>Keine Ahnung, das waren so meine Gedanken.

00:28:53.310 --> 00:28:55.310
<v Jochen>Ja, vielleicht finden wir ja einen

00:28:55.310 --> 00:28:56.230
<v Jochen>Mathematiker, der

00:28:56.230 --> 00:28:58.390
<v Jochen>was weiß.

00:29:00.310 --> 00:29:01.210
<v Jochen>Ja, das ist auch

00:29:01.210 --> 00:29:03.530
<v Jochen>vielleicht eher in der Mathematik esoterisch.

00:29:05.370 --> 00:29:05.770
<v Jochen>Ja,

00:29:05.950 --> 00:29:07.690
<v Johannes>nee, aber solche Diskussionen sind in der Mathematik

00:29:07.690 --> 00:29:07.930
<v Johannes>schon,

00:29:08.430 --> 00:29:11.410
<v Johannes>die kommen immer wieder, gerade in den

00:29:11.410 --> 00:29:13.570
<v Johannes>früheren Semestern. Sobald man mal ins

00:29:13.570 --> 00:29:15.550
<v Johannes>Grundstudium abgeschlossen

00:29:15.550 --> 00:29:16.930
<v Johannes>hat, dann, ja,

00:29:17.490 --> 00:29:19.390
<v Johannes>hat man es akzeptiert. Das ist

00:29:19.390 --> 00:29:20.590
<v Johannes>die Mathematik, die gibt es halt.

00:29:21.330 --> 00:29:23.450
<v Johannes>Und da gibt es auch nicht alles. Ich hatte mal eine sehr lange

00:29:23.450 --> 00:29:24.650
<v Johannes>Diskussion mit einem, der

00:29:24.650 --> 00:29:29.110
<v Johannes>ein Student von mir,

00:29:29.270 --> 00:29:31.070
<v Johannes>den ich tutoriert habe, der offensichtlich

00:29:31.070 --> 00:29:31.770
<v Johannes>auch schon

00:29:31.770 --> 00:29:34.870
<v Johannes>einen Hang zur Esoterik hatte

00:29:34.870 --> 00:29:36.410
<v Johannes>und der dann gesagt hat, ja, aber du musst

00:29:36.410 --> 00:29:38.830
<v Johannes>alles untersuchen. Warum

00:29:38.830 --> 00:29:40.390
<v Johannes>untersuchst du das hier nicht? Und dann habe ich ihm bewiesen,

00:29:40.550 --> 00:29:43.110
<v Johannes>wenn ich das untersuche oder wenn ich diese Annahme

00:29:43.110 --> 00:29:44.970
<v Johannes>treffe, dann führt das zu Paradoxa.

00:29:45.170 --> 00:29:47.030
<v Johannes>Dann falle ich direkt raus, brauche ich gar nicht

00:29:47.030 --> 00:29:48.610
<v Johannes>weitermachen. Das hat er aber nicht akzeptiert, sondern

00:29:48.610 --> 00:29:51.210
<v Johannes>er wollte mir dann versuchen zu erklären,

00:29:51.210 --> 00:29:53.390
<v Johannes>dass das aber eine Sinneserfahrung

00:29:53.390 --> 00:29:55.010
<v Johannes>ist und du musst alle Sinneserfahrungen

00:29:55.010 --> 00:29:57.590
<v Johannes>versuchen, als Wissenschaftler

00:29:57.590 --> 00:29:58.770
<v Johannes>musst du alles akzeptieren.

00:29:59.890 --> 00:30:01.090
<v Johannes>Das ist aber nicht so, sondern

00:30:01.090 --> 00:30:03.310
<v Johannes>als Mathematiker geht man da pragmatischer vor

00:30:03.310 --> 00:30:05.350
<v Johannes>und sagt, ja, aber da brauche ich nicht

00:30:05.350 --> 00:30:06.530
<v Johannes>weitermachen, weil das bringt mir nichts.

00:30:06.630 --> 00:30:09.170
<v Dominik>Du bist ja eigentlich nur Statistiker, du hast ja so eine Approximation gemacht

00:30:09.170 --> 00:30:10.990
<v Dominik>von dem, was du glaubst, was dabei rauskommt und dann doch

00:30:10.990 --> 00:30:13.290
<v Dominik>dich auf deine eigene Sinneserfahrung verlassen,

00:30:13.410 --> 00:30:14.710
<v Dominik>die irgendwie da so ein bisschen

00:30:14.710 --> 00:30:16.830
<v Dominik>in die Glocke, in die Mitte gesetzt wird.

00:30:16.850 --> 00:30:18.250
<v Dominik>Ja, Mathematik und Sinneserfahrung.

00:30:18.250 --> 00:30:20.330
<v Johannes>Ja, das hat keine riesige

00:30:20.330 --> 00:30:21.230
<v Johannes>Überschneidungsmenge.

00:30:21.450 --> 00:30:23.810
<v Jochen>Genau, der Versuch quasi von den Sinneserfahrungen

00:30:23.810 --> 00:30:24.310
<v Jochen>zu abstrahieren.

00:30:25.250 --> 00:30:26.990
<v Jochen>Mit den eigenen Sinnen.

00:30:27.730 --> 00:30:28.830
<v Jochen>Was natürlich schwierig ist, klar.

00:30:30.310 --> 00:30:31.270
<v Jochen>Ja, sagen wir mal zu den

00:30:31.270 --> 00:30:32.830
<v Johannes>praktischen Dingen.

00:30:33.030 --> 00:30:34.430
<v Johannes>Ich habe auch ein News-Ding.

00:30:35.150 --> 00:30:36.070
<v Johannes>Ja, genau.

00:30:37.270 --> 00:30:39.510
<v Jochen>Jetzt können wir das sagen, jetzt haben wir die ganzen

00:30:39.510 --> 00:30:41.150
<v Jochen>Leute vergrault irgendwie mit

00:30:41.150 --> 00:30:43.570
<v Jochen>unseren letzten

00:30:43.570 --> 00:30:44.370
<v Jochen>drei Zuhörern.

00:30:44.370 --> 00:30:45.570
<v Jochen>Trauen wir das jetzt auch noch zu?

00:30:46.010 --> 00:30:47.810
<v Dominik>Du wolltest doch nicht irgendwas sagen, du hast

00:30:47.810 --> 00:30:50.010
<v Dominik>ein Learnings vom Barcamp, was man nicht machen soll.

00:30:50.050 --> 00:30:51.510
<v Dominik>Achso, jetzt ist der Film wieder eingeweiht.

00:30:51.510 --> 00:30:52.870
<v Dominik>Wir machen es aber gnadenlos egal.

00:30:53.950 --> 00:30:56.150
<v Jochen>Und zwar, wir machen gleich noch was über MCP.

00:30:56.870 --> 00:30:58.530
<v Jochen>Oder ich kann dazu was erzählen?

00:30:58.550 --> 00:30:58.710
<v Jochen>Nein.

00:30:58.890 --> 00:30:59.270
<v Jochen>Machen wir nicht?

00:30:59.370 --> 00:30:59.550
<v Jochen>Nein.

00:31:00.390 --> 00:31:00.750
<v Jochen>Ey!

00:31:00.890 --> 00:31:02.210
<v Jochen>Wir machen eine eigene Folge zu MCP.

00:31:02.230 --> 00:31:03.510
<v Jochen>Wir machen eine eigene Folge zu MCP?

00:31:03.610 --> 00:31:03.770
<v Jochen>Ja.

00:31:04.230 --> 00:31:04.810
<v Jochen>Okay, na gut.

00:31:04.810 --> 00:31:07.030
<v Johannes>Also ich finde ja, MCP ist das Master Control Program.

00:31:07.490 --> 00:31:08.390
<v Johannes>Genau, das fand ich auch.

00:31:08.890 --> 00:31:10.410
<v Jochen>Ich habe da Vortragsvorteile.

00:31:10.410 --> 00:31:12.270
<v Johannes>Oder Metoclub Ramit, je nachdem, wie man möchte.

00:31:13.590 --> 00:31:15.790
<v Jochen>Na gut, dann machen wir das heute eben nicht.

00:31:15.870 --> 00:31:17.970
<v Jochen>Aber das müssen wir echt dann bald machen,

00:31:18.330 --> 00:31:20.930
<v Jochen>sonst weiß ich das alles nicht mehr, ich weiß das jetzt gerade.

00:31:20.950 --> 00:31:22.730
<v Jochen>Mit dem Jochen unter den Nägeln.

00:31:22.850 --> 00:31:23.970
<v Jochen>Ja, Mathematical Compute.

00:31:24.530 --> 00:31:26.350
<v Johannes>Liebe Hörer, schreibt uns an hello

00:31:26.350 --> 00:31:28.590
<v Johannes>at python-podcast.de, ob ihr

00:31:28.590 --> 00:31:30.550
<v Johannes>diese Folge dringend hören wollt oder nicht.

00:31:30.670 --> 00:31:31.110
<v Johannes>Ja, okay.

00:31:32.210 --> 00:31:33.130
<v Johannes>Meinst du, jetzt hört noch jemand zu?

00:31:33.810 --> 00:31:36.330
<v Jochen>Aber das News-Item wäre an der Stelle irgendwie

00:31:36.330 --> 00:31:38.550
<v Jochen>hier, Ex-CTO von OpenAI

00:31:38.550 --> 00:31:40.690
<v Jochen>hat irgendwie von einem Venture Capital

00:31:40.690 --> 00:31:42.630
<v Jochen>Fonds irgendwie zwei Milliarden gekriegt,

00:31:42.630 --> 00:31:44.370
<v Jochen>ohne irgendwas, bei einer Validierung von

00:31:44.370 --> 00:31:45.990
<v Jochen>zehn Milliarden oder so.

00:31:46.990 --> 00:31:50.630
<v Jochen>Also der ursprüngliche Entwickler von ChatGPG ist halt auch dabei,

00:31:51.110 --> 00:31:54.070
<v Jochen>John Schulmann und ein paar andere Größen.

00:31:55.150 --> 00:31:57.510
<v Jochen>Also ich meine, die ganzen ursprünglichen Leute

00:31:57.510 --> 00:31:59.450
<v Jochen>sind ja alle nicht mehr bei OpenAI.

00:32:00.430 --> 00:32:03.910
<v Jochen>Und na ja, also das ist halt völlig irre.

00:32:03.970 --> 00:32:06.270
<v Jochen>Die haben kein Produkt, nichts und kriegen halt so viel Geld.

00:32:06.370 --> 00:32:07.610
<v Jochen>Das ist echt Wahnsinn.

00:32:08.550 --> 00:32:10.090
<v Jochen>Aber wenn man sich für MCP interessiert,

00:32:10.090 --> 00:32:13.090
<v Jochen>der aktuell beste Podcast, den man hören kann,

00:32:13.250 --> 00:32:16.430
<v Jochen>eine Podcast-Episode, ist tatsächlich irgendwie von einem Partner

00:32:16.430 --> 00:32:18.210
<v Jochen>auch von diesem Venture Capital Fonds

00:32:18.210 --> 00:32:20.250
<v Jochen>von einer Partnerin

00:32:20.250 --> 00:32:21.590
<v Jochen>mit Interview mit

00:32:21.590 --> 00:32:23.930
<v Jochen>David Soria Parra

00:32:23.930 --> 00:32:25.090
<v Jochen>oder ich weiß gar nicht, wie man das ausspricht.

00:32:26.570 --> 00:32:27.930
<v Jochen>Einer der beiden ist, die sich das

00:32:27.930 --> 00:32:30.110
<v Jochen>ausgedacht haben und das ist irgendwie echt ganz nett.

00:32:31.430 --> 00:32:32.190
<v Jochen>Ja, also

00:32:32.190 --> 00:32:34.030
<v Jochen>aber dieser ganze Bereich ist momentan völlig

00:32:34.030 --> 00:32:35.990
<v Jochen>irre. Das erinnert mich echt sehr stark

00:32:35.990 --> 00:32:37.010
<v Jochen>an diese ganze DotCamp

00:32:37.010 --> 00:32:39.990
<v Jochen>Bubble Ende der 90er

00:32:39.990 --> 00:32:42.130
<v Jochen>und es ist irre.

00:32:42.490 --> 00:32:43.750
<v Jochen>Ja, naja.

00:32:45.390 --> 00:32:45.870
<v Jochen>Genau.

00:32:46.430 --> 00:32:48.050
<v Jochen>Aber dann machen wir das nochmal in einer anderen Episode.

00:32:48.570 --> 00:32:48.670
<v Jochen>Okay.

00:32:50.190 --> 00:32:52.610
<v Dominik>Ja, dann ist es endgültig

00:32:52.610 --> 00:32:54.450
<v Dominik>Zeit für den

00:32:54.450 --> 00:32:56.050
<v Dominik>Unfucked.ai.

00:32:56.070 --> 00:32:58.510
<v Dominik>Jetzt kommt aber ein radikaler Wechsel. Achtung, jetzt kommt ein radikaler Bruch.

00:32:58.830 --> 00:32:59.890
<v Dominik>Data Class Builders.

00:33:00.150 --> 00:33:00.650
<v Dominik>Ah, okay.

00:33:01.730 --> 00:33:04.430
<v Dominik>Weil wir ja bei Unfucked.ai sind, das wollte ich noch einmal kurz

00:33:04.430 --> 00:33:05.910
<v Dominik>erwähnt haben, das hat Johannes eben geschickt.

00:33:06.070 --> 00:33:06.830
<v Dominik>Das war schön.

00:33:08.670 --> 00:33:09.670
<v Dominik>Link in den Show Notes.

00:33:09.670 --> 00:33:12.130
<v Dominik>Genau, für Business Leaders oder für Senior Developers.

00:33:13.070 --> 00:33:13.270
<v Dominik>Wichtig.

00:33:13.290 --> 00:33:13.650
<v Dominik>Alles klar.

00:33:15.690 --> 00:33:18.510
<v Johannes>Ja, Kapitel 5 ist ein etwas kürzeres Kapitel

00:33:18.510 --> 00:33:21.550
<v Johannes>und ich fand es sehr gemischt beim Lesen.

00:33:22.650 --> 00:33:25.250
<v Johannes>Ich fand, es ist so ein bisschen, es meandert so ein bisschen

00:33:25.250 --> 00:33:27.910
<v Johannes>und bringt dann so ein paar Themen einfach noch so mit rein.

00:33:29.690 --> 00:33:32.290
<v Dominik>Sollen wir erst über das Ende reden, warum das ein Kurzmeld ist

00:33:32.290 --> 00:33:33.490
<v Dominik>oder warum das keiner ist?

00:33:33.750 --> 00:33:35.210
<v Dominik>Ja, ich stimme dem überhaupt gar nicht zu.

00:33:36.210 --> 00:33:37.330
<v Dominik>Was ist denn das Argument?

00:33:37.450 --> 00:33:38.790
<v Dominik>Warum sollte das denn ein Kurzmeld sein?

00:33:39.530 --> 00:33:41.390
<v Johannes>Sag du doch mal, Dominik, du findest, das ist ein Kurzmeld.

00:33:41.630 --> 00:33:42.370
<v Johannes>Das habe ich nicht gesagt.

00:33:43.850 --> 00:33:45.810
<v Dominik>Also vielleicht geht es erstmal um, was es im Kapitel

00:33:45.810 --> 00:33:47.810
<v Dominik>geht. Es geht darum, wie man

00:33:47.810 --> 00:33:49.890
<v Dominik>Datenobjekte

00:33:49.890 --> 00:33:50.570
<v Dominik>einfach,

00:33:51.950 --> 00:33:53.430
<v Dominik>welche Instanz hier ist vielleicht falsch,

00:33:54.210 --> 00:33:54.750
<v Dominik>deklariert.

00:33:55.570 --> 00:33:56.990
<v Dominik>Also mit Data Class oder Named Tuple.

00:33:57.490 --> 00:33:59.730
<v Johannes>Eine Klasse, die nur Daten hält und keine Funktionen hat.

00:33:59.730 --> 00:34:01.050
<v Johannes>Wie so ein Named Tuple?

00:34:01.730 --> 00:34:03.650
<v Johannes>Ja, zum Beispiel. Das ist eine, also gleich auf der

00:34:03.650 --> 00:34:05.590
<v Johannes>ersten Seite sind drei Mechanismen

00:34:05.590 --> 00:34:07.210
<v Dominik>genannt. Oder auch wie ein TypeDict Johannes.

00:34:07.470 --> 00:34:09.210
<v Dominik>Named Tuple. Ne,

00:34:09.370 --> 00:34:11.490
<v Johannes>das nicht. Kommt direkt auf der zweiten

00:34:11.490 --> 00:34:12.870
<v Johannes>Seite, steht direkt drauf, das nicht.

00:34:13.850 --> 00:34:37.310
<v Johannes>Also es gibt Collections.NameTupel, das ist schon lange in der Python-Schneider-Bibliothek seit 2.6, haben sicherlich viele schon mal gesehen, können wir gleich noch erklären, was das ist. Dann gibt es eine neue Variante davon, Typing.NameTupel und der heißeste Scheiß ist natürlich DataClasses.DataClass, ein Dekorator, der diese ganzen Sachen mitnehmen soll.

00:34:37.310 --> 00:35:04.150
<v Johannes>Am Ende geht es immer darum, Klassen zu machen, die nur Attribute haben. Und im Endeffekt ist das auch alles nur so ein bisschen Zucker obendrauf gestreut, weil man könnte prinzipiell diese ganzen Sachen alle mit Dicks machen oder sogar mit Tuples, wenn man möchte. Das heißt, das Einzige, was man gewinnt, und das Einzige ist hier in sehr großen Anführungszeichen, dieses Wort Einzige, das Einzige, was man gewinnt, ist, dass das Programm besser verständlich wird.

00:35:05.590 --> 00:35:07.150
<v Dominik>Ruff lintet zum Beispiel

00:35:07.150 --> 00:35:08.610
<v Dominik>vom Typing-Import-Name-Tupel

00:35:08.610 --> 00:35:11.370
<v Dominik>und sagt, naja, es ist Collections-Name-Tupel, bitte.

00:35:12.610 --> 00:35:13.290
<v Dominik>Darfst du nicht.

00:35:13.830 --> 00:35:14.830
<v Dominik>Ja, sagen die das?

00:35:14.950 --> 00:35:17.150
<v Johannes>Ich bin so ein bisschen, ich bin nicht

00:35:17.150 --> 00:35:19.210
<v Johannes>ganz hundertprozentig mal einverstanden mit den

00:35:19.210 --> 00:35:21.370
<v Johannes>Sachen, die Ruff sagt. Und ich habe heute auch einen Ruff-Cycle

00:35:21.370 --> 00:35:22.030
<v Johannes>gefunden.

00:35:23.910 --> 00:35:25.150
<v Johannes>Wo ich einen Hinweis

00:35:25.150 --> 00:35:26.490
<v Johannes>gekriegt habe von Ruff, der gesagt hat,

00:35:26.590 --> 00:35:28.790
<v Johannes>der Generator ist unwichtig,

00:35:29.170 --> 00:35:30.970
<v Johannes>ist nicht wichtig, mach bitte eine Dict-Comprehension

00:35:30.970 --> 00:35:32.570
<v Johannes>draus. Dann habe ich eine Dict-Comprehension draus gemacht.

00:35:32.690 --> 00:35:34.970
<v Johannes>Dann hat er gesagt, ah, das ist eine unnütze Dict-Comprehension,

00:35:35.110 --> 00:35:38.190
<v Johannes>mach bitte einen Dikt-Aufruf mit Generator drin draus.

00:35:38.990 --> 00:35:39.950
<v Johannes>Sehr amüsiert.

00:35:42.270 --> 00:35:43.470
<v Johannes>Wie man es macht, ist falsch.

00:35:44.370 --> 00:35:47.270
<v Johannes>Ruff ist ja schon so ein bisschen opinionated.

00:35:47.450 --> 00:35:51.330
<v Johannes>Also nicht alles, was da von Ruff kommt, ist ganz richtig.

00:35:51.470 --> 00:35:52.850
<v Johannes>Und es gibt schon einen wichtigen Unterschied

00:35:52.850 --> 00:35:54.890
<v Johannes>zwischen Named Tuple und Named Tuple,

00:35:55.970 --> 00:35:57.290
<v Johannes>was auch in dem Kapitel erklärt wird.

00:35:57.390 --> 00:35:58.950
<v Johannes>Also die sind schon unterschiedlich.

00:35:59.250 --> 00:36:02.290
<v Johannes>Aber jetzt, wo wir wissen, was eine Data Class ist,

00:36:02.410 --> 00:36:05.430
<v Johannes>eine Klasse, die keine Funktionen hat,

00:36:05.510 --> 00:36:06.650
<v Johannes>sondern nur Daten halten soll,

00:36:07.590 --> 00:36:10.370
<v Johannes>kommt direkt in der Einleitung,

00:36:10.610 --> 00:36:13.150
<v Johannes>sagen sie, ja, das ist eigentlich nicht so gut.

00:36:14.050 --> 00:36:16.210
<v Johannes>Es wird an diesem Kapitel mehrmals darauf hingewiesen,

00:36:16.410 --> 00:36:18.370
<v Johannes>dass namhafte Personen

00:36:18.370 --> 00:36:23.410
<v Johannes>Data Classes durchaus als Code Smell sehen

00:36:23.410 --> 00:36:25.490
<v Johannes>oder als Einstiegspunkt

00:36:25.490 --> 00:36:28.390
<v Johannes>und als das ist noch nicht fertig ansehen.

00:36:29.250 --> 00:36:31.890
<v Johannes>Und das Hauptargument, so wie ich es verstehe,

00:36:32.010 --> 00:36:33.650
<v Johannes>ist, dass wenn du eine

00:36:33.650 --> 00:36:35.850
<v Johannes>Data Class hast, dann bedeutet

00:36:35.850 --> 00:36:37.750
<v Johannes>das, dass du eine Klasse hast, die

00:36:37.750 --> 00:36:39.670
<v Johannes>nur Daten enthält und keine Funktionen hat.

00:36:40.190 --> 00:36:41.770
<v Johannes>Und du musst ja aber trotzdem was

00:36:41.770 --> 00:36:42.590
<v Johannes>mit den Daten machen.

00:36:43.950 --> 00:36:45.570
<v Johannes>Und das bedeutet, dass die

00:36:45.570 --> 00:36:47.630
<v Johannes>eigentlich schon Funktionen hat, nur dass die irgendwo

00:36:47.630 --> 00:36:48.630
<v Johannes>anders drin stehen.

00:36:51.090 --> 00:36:51.770
<v Johannes>Weil es nur

00:36:51.770 --> 00:36:53.050
<v Johannes>ein Vehikel ist und das wäre blöd?

00:36:53.790 --> 00:36:55.150
<v Johannes>Weil du

00:36:55.150 --> 00:36:57.330
<v Johannes>mit Daten halt irgendwas machen musst.

00:36:57.330 --> 00:36:58.950
<v Johannes>Und eigentlich bedeutet

00:36:58.950 --> 00:37:00.610
<v Johannes>Data Class dann in dem Sinne,

00:37:01.810 --> 00:37:03.690
<v Johannes>dass du deine Funktionen, die zu den Daten

00:37:03.690 --> 00:37:05.870
<v Johannes>gehören sollten, irgendwo anders

00:37:05.870 --> 00:37:07.270
<v Johannes>hinschiebst.

00:37:07.950 --> 00:37:09.270
<v Johannes>Und dass du die irgendwo anders hast.

00:37:10.450 --> 00:37:11.710
<v Johannes>Und ich stimme diesem

00:37:11.710 --> 00:37:13.810
<v Johannes>Argument überhaupt gar nicht zu.

00:37:17.150 --> 00:37:19.730
<v Johannes>Das hört sich

00:37:19.730 --> 00:37:21.570
<v Johannes>für mich sehr nach, also

00:37:21.570 --> 00:37:23.410
<v Johannes>ich meine diese Namen, die immer da

00:37:23.410 --> 00:37:25.270
<v Johannes>gesagt bekommt, Martin, Fowler und Kent Beck,

00:37:25.270 --> 00:37:27.030
<v Johannes>es hört sich für mich sehr nach

00:37:27.030 --> 00:37:29.130
<v Johannes>Kingdom of the Nouns an, es hört sich für mich

00:37:29.130 --> 00:37:31.170
<v Johannes>sehr nach Java an, es hört sich für mich sehr an nach

00:37:31.170 --> 00:37:33.950
<v Johannes>der Code ist wichtiger als

00:37:33.950 --> 00:37:35.330
<v Johannes>die Daten. Und das stimmt halt in

00:37:35.330 --> 00:37:37.970
<v Johannes>ganz vielen Fällen nicht. In ganz vielen Fällen

00:37:37.970 --> 00:37:39.870
<v Johannes>sind die Daten viel wichtiger als

00:37:39.870 --> 00:37:42.010
<v Johannes>der Code. Was du da drin hast,

00:37:42.090 --> 00:37:43.650
<v Johannes>welche Felder du hast, wie du drankommst,

00:37:43.830 --> 00:37:45.770
<v Johannes>ist in ganz vielen

00:37:45.770 --> 00:37:47.910
<v Johannes>Anwendungsfällen, zumindest in denen, die mir so

00:37:47.910 --> 00:37:49.490
<v Johannes>begegnen, viel wichtiger als

00:37:49.490 --> 00:37:51.670
<v Johannes>dann, dass die

00:37:51.670 --> 00:37:53.570
<v Johannes>Funktion direkt dabei steht und dass

00:37:53.570 --> 00:37:54.910
<v Johannes>du die direkt dazu packst.

00:37:55.830 --> 00:37:57.170
<v Johannes>Das ist der eine Aspekt.

00:37:57.770 --> 00:37:59.490
<v Johannes>Du gibst der Funktionalität

00:37:59.490 --> 00:38:01.690
<v Johannes>mehr Gewicht als den Daten und das

00:38:01.690 --> 00:38:03.550
<v Johannes>ist oft nicht der Fall.

00:38:03.730 --> 00:38:05.510
<v Jochen>Da könnte man dann, mir fällt das Zitat

00:38:05.510 --> 00:38:07.270
<v Jochen>jetzt nicht ein, aber da gibt es eines von

00:38:07.270 --> 00:38:09.390
<v Jochen>Linus Torvalds, wo er sagt, naja, das ist halt

00:38:09.390 --> 00:38:11.470
<v Jochen>quasi oft ein Fehler von Leuten,

00:38:11.710 --> 00:38:13.490
<v Jochen>die quasi das Licht noch nicht so

00:38:13.490 --> 00:38:15.450
<v Jochen>richtig gesehen haben, dass sie halt Wert auf

00:38:15.450 --> 00:38:17.410
<v Jochen>Algorithmen oder sozusagen

00:38:17.410 --> 00:38:19.290
<v Jochen>auf Dinge legen und wenn man dann mal

00:38:19.290 --> 00:38:21.430
<v Jochen>irgendwann später da so weiß, was man tut,

00:38:21.570 --> 00:38:23.790
<v Jochen>dann guckt man sich eher so die Datenstrukturen

00:38:23.790 --> 00:38:25.310
<v Jochen>an und wie die eigentlich aussehen sollen

00:38:25.310 --> 00:38:27.070
<v Jochen>und dann ist das mit der

00:38:27.070 --> 00:38:29.050
<v Jochen>Funktionalität

00:38:29.050 --> 00:38:30.910
<v Jochen>ist dann ganz klar und einfach,

00:38:31.330 --> 00:38:31.810
<v Jochen>hoffentlich.

00:38:32.750 --> 00:38:35.150
<v Jochen>Und ja, aber ich würde

00:38:35.150 --> 00:38:36.970
<v Jochen>auch denken, dass, genau, also für mich erinnert

00:38:36.970 --> 00:38:38.370
<v Jochen>das auch total an irgendwie

00:38:38.370 --> 00:38:41.150
<v Jochen>objektorientierte Programmierung Ende der 90er

00:38:41.150 --> 00:38:43.110
<v Jochen>ist halt irgendwie das Heilmittel für alles

00:38:43.110 --> 00:38:44.110
<v Jochen>und

00:38:44.110 --> 00:38:46.590
<v Jochen>aber inzwischen wird man ja sagen so,

00:38:47.270 --> 00:38:48.990
<v Jochen>naja, das aktuelle Heilmittel für alles ist halt

00:38:48.990 --> 00:38:50.790
<v Jochen>Domain Driven Design und

00:38:50.790 --> 00:38:52.450
<v Jochen>aus der Perspektive

00:38:52.450 --> 00:38:55.170
<v Jochen>ist es halt, gibt es halt zwei unterschiedliche

00:38:55.170 --> 00:38:56.590
<v Jochen>Arten von Dingen, für die man halt

00:38:56.590 --> 00:38:59.030
<v Jochen>Klassen hat und das ist halt, eine sind halt

00:38:59.030 --> 00:39:01.850
<v Jochen>Entities, also Dinge, die

00:39:01.850 --> 00:39:03.870
<v Jochen>halt irgendwie eine Identität haben,

00:39:03.950 --> 00:39:05.870
<v Jochen>die halt wichtig ist. Und das andere

00:39:05.870 --> 00:39:07.910
<v Jochen>sind halt so Value Objects und

00:39:07.910 --> 00:39:09.850
<v Jochen>bei denen ist es halt wurscht.

00:39:10.010 --> 00:39:11.950
<v Jochen>Also sowas wie zum Beispiel ein Objekt,

00:39:12.150 --> 00:39:13.630
<v Jochen>das halt einen Geldbetrag repräsentiert

00:39:13.630 --> 00:39:15.750
<v Jochen>und das Wichtige ist halt der Wert von dem Geld

00:39:15.750 --> 00:39:17.830
<v Jochen>und aber nicht, welchen Geldschein man

00:39:17.830 --> 00:39:19.810
<v Jochen>hat, das ist völlig egal. Und für

00:39:19.810 --> 00:39:21.790
<v Jochen>solche Value Objects sind halt Data Classes halt auch

00:39:21.790 --> 00:39:22.530
<v Jochen>total super, weil

00:39:22.530 --> 00:39:25.750
<v Jochen>genau, aber

00:39:25.750 --> 00:39:27.090
<v Jochen>wenn es halt State hat und

00:39:27.090 --> 00:39:29.750
<v Jochen>dann braucht man halt natürlich vielleicht schon Methoden

00:39:29.750 --> 00:39:31.710
<v Jochen>und so. Also ich würde auch denken, also das

00:39:31.710 --> 00:39:33.410
<v Jochen>ist differenzierter, ja.

00:39:33.970 --> 00:39:35.590
<v Jochen>Es gibt noch einen zweiten

00:39:35.590 --> 00:39:36.610
<v Jochen>Aspekt, der mir

00:39:36.610 --> 00:39:39.590
<v Jochen>da fehlt in

00:39:39.590 --> 00:39:40.390
<v Jochen>dieser Argumentation.

00:39:41.330 --> 00:39:43.570
<v Johannes>Der geht so ein bisschen in das, was du eben gesagt hast, die Leute, die

00:39:43.570 --> 00:39:44.430
<v Johannes>sich noch nicht gesehen haben.

00:39:45.590 --> 00:39:47.630
<v Johannes>Wenn man über Klassen

00:39:47.630 --> 00:39:49.530
<v Johannes>nachdenkt und

00:39:49.530 --> 00:39:50.730
<v Johannes>die sieht als

00:39:50.730 --> 00:39:53.630
<v Johannes>eine Anzahl von

00:39:53.630 --> 00:39:55.190
<v Johannes>Funktionen und ein paar Daten dazu,

00:39:56.410 --> 00:40:00.750
<v Johannes>dann ist das ein anderer Blick auf das, was man tut.

00:40:00.830 --> 00:40:02.770
<v Johannes>Es ist ein anderer Blick auf das Programm

00:40:02.770 --> 00:40:04.690
<v Johannes>und was ein Programm kann.

00:40:06.890 --> 00:40:09.710
<v Johannes>Und zwar ist es ein Blick auf einzelne Objekte.

00:40:10.970 --> 00:40:13.210
<v Johannes>Weil wenn ich so eine Klasse schreibe,

00:40:13.990 --> 00:40:15.850
<v Johannes>also in Python gibt es den Self-Parameter,

00:40:15.950 --> 00:40:17.610
<v Johannes>in anderen Sprachen heißt der This-Parameter,

00:40:18.130 --> 00:40:21.030
<v Johannes>dann gibt es immer ein Objekt, was irgendwie hervorgehoben ist.

00:40:21.030 --> 00:40:23.750
<v Johannes>Das ist nämlich das Objekt, an dem ich gerade dran bin,

00:40:23.810 --> 00:40:24.830
<v Johannes>in dem ich gerade drin bin.

00:40:25.990 --> 00:40:40.530
<v Johannes>Wenn ich aber den Blick habe auf eine Data Class, dann geht es mir oft gar nicht so sehr um eine einzelne Instanz oder ein einzelnes Attribut von dieser Data Class, sondern dann verändert sich mein Denken hinzu, was ist denn, wenn ich tausend davon in der Hand habe?

00:40:40.530 --> 00:40:51.470
<v Johannes>Was ist denn, wenn ich eine Tabelle von diesen Objekten in der Hand habe? Und dann ist auf einmal gar nicht mehr das Einzelobjekt wichtig, sondern dann ist auf einmal die Gesamtheit der Objekte wichtig.

00:40:51.470 --> 00:41:15.770
<v Johannes>Was ist denn, wenn ich eine Million von diesen Geldbeträgen bekomme, was kann ich denn dann damit machen? Und diese Art zu denken oder auch diese Art zu modellieren ist in der klassischen OOP nicht naheliegend, weil im klassischen OOP denkt man eben oft über Einzelobjekte nach, weil du eben eine Klasse schreibst, die eine Instanz hat und für diese eine Instanz hast du diese Funktion dran.

00:41:15.770 --> 00:41:33.530
<v Johannes>Und wenn du die Funktion auf der einen Instanz aufrufst, dann hast du diesen Blick auf die eine Instanz. Und das ist schwer zu greifen und schwer zu erklären, aber das verändert das Denken über Programmstrukturen und das verändert das Denken über die Inhalte von einem Programm.

00:41:34.910 --> 00:41:36.390
<v Johannes>Und das ist was ganz

00:41:36.390 --> 00:41:38.110
<v Johannes>Gefährliches zu sagen, meiner Meinung nach,

00:41:38.670 --> 00:41:40.310
<v Johannes>dass das ein Codesmell ist, weil du

00:41:40.310 --> 00:41:42.330
<v Johannes>nur diesen einen Blick auf Programmierung

00:41:42.330 --> 00:41:43.490
<v Johannes>haben darfst.

00:41:44.550 --> 00:41:46.310
<v Johannes>Und deshalb, ich bin

00:41:46.310 --> 00:41:47.930
<v Johannes>da sehr skeptisch, wenn Leute sagen,

00:41:48.010 --> 00:41:49.550
<v Johannes>Dataclasses, ja, das ist schon

00:41:49.550 --> 00:41:51.810
<v Johannes>okay, aber hier,

00:41:52.430 --> 00:41:54.290
<v Johannes>das fängt direkt an, Dataclasses are like

00:41:54.290 --> 00:41:56.210
<v Johannes>children, they are okay as a starting point, but to

00:41:56.210 --> 00:41:58.190
<v Johannes>participate as a grown-up object, they need to take some

00:41:58.190 --> 00:41:59.850
<v Johannes>responsibility. Das heißt, die

00:41:59.850 --> 00:42:02.510
<v Johannes>grob übersetzt, Datenklassen

00:42:02.510 --> 00:42:04.170
<v Johannes>sind wie Kinder, das ist okay, wenn man

00:42:04.170 --> 00:42:05.510
<v Johannes>damit anfängt, aber wenn man sie

00:42:05.510 --> 00:42:08.050
<v Johannes>wie richtige Objekte verwenden will, dann müssen sie

00:42:08.050 --> 00:42:09.430
<v Johannes>schon auch Funktionalität haben.

00:42:10.490 --> 00:42:12.130
<v Johannes>Sehe ich gar nicht so und finde

00:42:12.130 --> 00:42:14.170
<v Johannes>ich tatsächlich nicht gut,

00:42:14.730 --> 00:42:16.090
<v Johannes>diesen Blick so zu haben.

00:42:16.210 --> 00:42:17.930
<v Dominik>Aber vielleicht meint das so ein bisschen was wie,

00:42:17.970 --> 00:42:20.330
<v Dominik>dann zu Pedantic überzugehen,

00:42:20.430 --> 00:42:22.330
<v Dominik>was ja fast sowas ist wie eine Dataklasse,

00:42:23.350 --> 00:42:24.350
<v Dominik>mit sowas wie

00:42:24.350 --> 00:42:26.170
<v Dominik>Validierung dran dann noch

00:42:26.170 --> 00:42:28.210
<v Dominik>oder so. Ja, aber auch

00:42:28.210 --> 00:42:29.890
<v Johannes>das ist noch, Pedantic

00:42:29.890 --> 00:42:31.770
<v Johannes>sind natürlich, ja, sind schon

00:42:31.770 --> 00:42:33.050
<v Johannes>Dataklasses auch, oder?

00:42:33.710 --> 00:42:55.230
<v Jochen>Ja, ich würde, das sind halt, da gibt es dann eben, genau, das ist ein bisschen, das kommt jetzt in dem Buch nicht so vor, weil das halt auch teilweise aktueller, also das Buch ist ja relativ aktuell, aber gerade so der auf, sozusagen das, Pydentic, ja genau, beschränkt sich mehr so auf die Standard, aber wobei ja auch das Vorbild von Dataclasses in der Standardlib ist Atris, ist halt auch nicht, ja, Hynix sollte man vielleicht mal fragen.

00:42:55.230 --> 00:42:59.150
<v Jochen>Es wird auch ein Band am Ende, aber mehr so als Further Reading.

00:42:59.150 --> 00:43:28.370
<v Jochen>Ja, genau, aber sozusagen Pydentic ist ja danach erst so richtig populär geworden, würde ich sagen, oder jetzt auch noch neuer Message-Spec, gibt's ja auch, ist ja vielleicht noch mal schneller und keine Ahnung, aber da muss man vorsichtig sein, also ich glaube, da vermischt man dann, also Pydentic, es ist natürlich auch praktisch, aber es vermischt halt zwei so Sachen, einmal diese Klassenbilder-Geschichte mit den Adnotationen, damit man halt sozusagen, ja, das halt kompakt hinschreiben kann, was man da für Attribute dran hat.

00:43:28.570 --> 00:43:30.190
<v Jochen>Das ist bei Pydentic ja genauso.

00:43:30.610 --> 00:43:32.310
<v Jochen>Und dann gibt es halt diesen Validierungsteil,

00:43:32.370 --> 00:43:33.950
<v Jochen>der ist aber irgendwie anders,

00:43:34.070 --> 00:43:35.630
<v Jochen>weil das hast du halt in Dataclasses

00:43:35.630 --> 00:43:39.270
<v Jochen>und halt bei NameTupel oder so eigentlich nicht.

00:43:40.290 --> 00:43:42.490
<v Johannes>Auch mal bei Typing.NameTupel hast du Validierung.

00:43:42.510 --> 00:43:43.470
<v Johannes>Nee, gar nicht, genau.

00:43:44.850 --> 00:43:46.950
<v Jochen>Und da muss man halt extrem vorsichtig sein.

00:43:47.130 --> 00:43:48.870
<v Jochen>Also ich meine, das kann natürlich auch sehr praktisch sein,

00:43:49.350 --> 00:43:53.190
<v Jochen>aber es gibt da auch eben von dem Entwickler von Atos

00:43:53.190 --> 00:43:58.230
<v Jochen>einen sehr schönen Vortrag von der letzten PyCon US,

00:43:58.230 --> 00:43:59.870
<v Jochen>wo jetzt auch die Vorträge rausgekommen sind

00:43:59.870 --> 00:44:02.230
<v Jochen>und der heißt, glaube ich, Design Pressure

00:44:02.230 --> 00:44:03.650
<v Jochen>und das ist eigentlich

00:44:03.650 --> 00:44:05.030
<v Jochen>Der Entwickler heißt Design Pressure

00:44:05.030 --> 00:44:07.010
<v Jochen>Der Vortrag heißt Design Pressure

00:44:07.010 --> 00:44:09.210
<v Jochen>Aber ist das nicht

00:44:09.210 --> 00:44:11.170
<v Jochen>Hinek Schlaback? Genau

00:44:11.170 --> 00:44:13.370
<v Jochen>Der ist doch auch Deutscher, oder?

00:44:13.530 --> 00:44:15.770
<v Jochen>Ja, genau, den sollte man auch echt mal fragen, weil

00:44:15.770 --> 00:44:16.770
<v Jochen>der hat immer tolle

00:44:16.770 --> 00:44:19.710
<v Jochen>Artikel zu diesen ganzen

00:44:19.710 --> 00:44:21.770
<v Jochen>Tolle Software geschrieben, tolle Artikel geschrieben, macht tolle

00:44:21.770 --> 00:44:23.950
<v Jochen>Videos, toller Typ, müssen wir mal fragen

00:44:23.950 --> 00:44:26.230
<v Jochen>Wenn du in dieser Episode

00:44:26.230 --> 00:44:28.130
<v Johannes>zeigst, ob er diesen tollen Podcast kommen möchte

00:44:28.130 --> 00:44:30.130
<v Jochen>Genau. Vielleicht werden wir auch toll

00:44:30.130 --> 00:44:32.070
<v Jochen>dann so ein bisschen Glanz könnte auf uns abfallen.

00:44:32.250 --> 00:44:33.270
<v Jochen>Wer weiß. Mal schauen.

00:44:34.010 --> 00:44:35.010
<v Jochen>Ja, genau. Und

00:44:35.010 --> 00:44:38.290
<v Jochen>ja, eigentlich ist das ein Vortrag über Software-Architektur.

00:44:39.070 --> 00:44:40.230
<v Jochen>Der hat ja, war ja auch Reviewer

00:44:40.230 --> 00:44:42.130
<v Jochen>für hier das Architekturbuch, was ich

00:44:42.130 --> 00:44:44.130
<v Jochen>immer empfehle, also das Software-Architecture

00:44:44.130 --> 00:44:44.630
<v Jochen>with Python.

00:44:46.050 --> 00:44:48.150
<v Jochen>Und er hat auch schon häufiger Vorträge

00:44:48.150 --> 00:44:49.730
<v Jochen>über Software-Architektur gehalten.

00:44:50.230 --> 00:44:51.550
<v Jochen>Und das ist auch wieder so einer.

00:44:51.990 --> 00:44:54.050
<v Jochen>Und der startet mit dem

00:44:54.050 --> 00:44:56.030
<v Jochen>Hot-Take irgendwie so Dinge wie

00:44:56.030 --> 00:44:58.270
<v Jochen>Identik oder irgendwie diese Geschichten

00:44:58.270 --> 00:44:59.750
<v Jochen>Data-Validation-Dinger,

00:45:00.250 --> 00:45:02.730
<v Jochen>das macht eure Architektur

00:45:02.730 --> 00:45:04.290
<v Jochen>von eurem Programm kaputt.

00:45:05.290 --> 00:45:05.890
<v Jochen>Ihr Trottel!

00:45:06.530 --> 00:45:07.590
<v Jochen>So, und jetzt sage ich euch mal,

00:45:08.230 --> 00:45:10.270
<v Jochen>warum das so ist. So, gut, man braucht

00:45:10.270 --> 00:45:11.670
<v Jochen>halt irgendwie so ein, meinte so, ja,

00:45:12.210 --> 00:45:14.270
<v Jochen>ich komme ja aus der YouTube-Welt, da macht man

00:45:14.270 --> 00:45:16.090
<v Jochen>das so, dass man so einen Hook platzieren muss

00:45:16.090 --> 00:45:18.350
<v Jochen>und dann muss man drauf deliveren oder nicht.

00:45:18.350 --> 00:45:19.770
<v Jochen>You want to believe what happens next. Genau, genau.

00:45:20.110 --> 00:45:22.070
<v Jochen>Und wenn man das halt schafft, dann ist gut und wenn man

00:45:22.070 --> 00:45:23.390
<v Jochen>es nicht schafft, ist halt doof, aber mal schauen.

00:45:24.390 --> 00:45:26.070
<v Jochen>Und ja,

00:45:26.570 --> 00:45:27.490
<v Jochen>also da

00:45:27.490 --> 00:45:29.730
<v Jochen>und ich, aber ich würde sagen, im Grunde

00:45:29.730 --> 00:45:31.610
<v Jochen>hat er da ganz recht, ja, also ich meine, wenn man

00:45:31.610 --> 00:45:33.350
<v Jochen>jetzt das so macht, dass man

00:45:33.350 --> 00:45:35.390
<v Jochen>ein paar Identik-Modelle

00:45:35.390 --> 00:45:37.370
<v Jochen>verwendet, halt als

00:45:37.370 --> 00:45:39.490
<v Jochen>Data-Classes-Ersatz und die dann

00:45:39.490 --> 00:45:41.530
<v Jochen>halt quasi benutzt, um die eigene

00:45:41.530 --> 00:45:43.490
<v Jochen>Domain, ich weiß gar nicht,

00:45:43.550 --> 00:45:45.610
<v Jochen>ob es da für irgendeinen guten deutschen Begriff gibt oder so,

00:45:45.690 --> 00:45:47.510
<v Jochen>dass also der Bereich, in dem die

00:45:47.510 --> 00:45:48.970
<v Jochen>eigene Business-Logik stattfindet,

00:45:49.030 --> 00:45:51.450
<v Jochen>zu beschreiben, dann hat man halt schon einen bösen

00:45:51.450 --> 00:45:53.030
<v Jochen>Fehler gemacht eigentlich oder dann hat man

00:45:53.030 --> 00:45:55.210
<v Jochen>sich in der Ecke modifiziert, aus dem man schlecht wieder rauskommt.

00:45:56.990 --> 00:45:57.350
<v Jochen>Ja,

00:45:57.490 --> 00:45:59.710
<v Jochen>und da muss man aufpassen. Also ich meine, man kann

00:45:59.710 --> 00:46:01.810
<v Jochen>das ja auch richtig verwenden, aber es ist

00:46:01.810 --> 00:46:03.050
<v Jochen>halt nicht so einfach. Also

00:46:03.050 --> 00:46:05.830
<v Jochen>das ist halt schon gefährlich. Also

00:46:05.830 --> 00:46:07.710
<v Jochen>insofern bei Pidentic, also

00:46:07.710 --> 00:46:09.230
<v Jochen>ist auch ein sehr cooles Projekt, aber

00:46:09.230 --> 00:46:11.650
<v Jochen>man muss halt echt aufpassen, dass man da

00:46:11.650 --> 00:46:13.010
<v Jochen>nicht, also

00:46:13.010 --> 00:46:15.670
<v Jochen>wenn man damit auf

00:46:15.670 --> 00:46:17.270
<v Jochen>irgendein Problem zielt, dann hat

00:46:17.270 --> 00:46:19.590
<v Jochen>der Pidentic-Lauf auch immer so die Tendenz,

00:46:19.650 --> 00:46:21.590
<v Jochen>so weich zu werden und so auf den eigenen Fuß runter

00:46:21.590 --> 00:46:23.130
<v Jochen>zu neigen und

00:46:23.130 --> 00:46:25.570
<v Jochen>wenn man im falschen Moment schießt, dann hat man ein Loch im Fuß.

00:46:26.110 --> 00:46:30.030
<v Dominik>Kannst du nochmal kurz vergleichen oder erklären, was du meinst, wann das passiert?

00:46:30.670 --> 00:46:36.530
<v Jochen>Naja, also wenn du zum Beispiel anstelle einer Dataclass halt ein Pidentic-Modell verwendest.

00:46:37.650 --> 00:46:38.710
<v Jochen>Warum ist das blöd?

00:46:39.170 --> 00:46:41.650
<v Jochen>Naja, weil du dann zum Beispiel Pidentic importierst in deiner Business-Logik.

00:46:42.750 --> 00:46:43.870
<v Jochen>Und dann bist du davon abhängig?

00:46:44.690 --> 00:46:51.470
<v Jochen>Ja, genau. Du hast halt dann diese Konzerns irgendwie miteinander vermischt.

00:46:52.090 --> 00:46:55.870
<v Jochen>Und dann kriegst du alle möglichen Arten von üblen Design-Problemen, Architektur-Problemen.

00:46:56.110 --> 00:46:57.570
<v Jochen>Ähm, genau.

00:46:58.290 --> 00:46:59.530
<v Jochen>Ja. Welche?

00:47:00.270 --> 00:47:01.630
<v Jochen>Naja, äh, also

00:47:01.630 --> 00:47:03.830
<v Jochen>zum Beispiel, wenn das dann halt jetzt nicht

00:47:03.830 --> 00:47:05.970
<v Jochen>äh, schnell genug ist

00:47:05.970 --> 00:47:07.970
<v Jochen>und du willst jetzt was anderes, eine schnellere Art

00:47:07.970 --> 00:47:09.850
<v Jochen>irgendwie die Sachen zu, weil du hast das

00:47:09.850 --> 00:47:11.810
<v Jochen>jetzt gekoppelt an, du spreifst das als JSON

00:47:11.810 --> 00:47:13.610
<v Jochen>raus und liest JSON rein und so,

00:47:14.550 --> 00:47:15.850
<v Jochen>was ja Pidentic auch ganz gut kann,

00:47:16.110 --> 00:47:17.210
<v Jochen>und jetzt stellst du halt fest so, oh,

00:47:17.490 --> 00:47:19.470
<v Jochen>oder gibst das über eine API raus,

00:47:19.870 --> 00:47:21.670
<v Jochen>und jetzt stellst du halt fest so, oh shit, aber,

00:47:21.830 --> 00:47:23.050
<v Jochen>also ich meine, das ist relativ schnell,

00:47:23.650 --> 00:47:25.710
<v Jochen>aber das ist nicht so schnell, wie es geht. Also es geht natürlich,

00:47:25.810 --> 00:47:27.670
<v Jochen>es gibt da Dinge draußen, die sind deutlich schneller als Pydentic

00:47:27.670 --> 00:47:29.170
<v Jochen>und dann stellst du halt fest, so okay,

00:47:30.210 --> 00:47:31.570
<v Jochen>irgendwie Pydentic ist zu langsam für mich.

00:47:32.370 --> 00:47:33.650
<v Jochen>Du wirst Pydentic niemals

00:47:33.650 --> 00:47:35.830
<v Jochen>austauschen können, da kannst du dein Ding neu schreiben, das ist halt,

00:47:36.530 --> 00:47:37.530
<v Jochen>kannst du einfach völlig vergessen.

00:47:38.810 --> 00:47:39.070
<v Jochen>Und

00:47:39.070 --> 00:47:41.890
<v Jochen>ja, das ist halt,

00:47:42.810 --> 00:47:43.710
<v Jochen>wenn man das halt

00:47:43.710 --> 00:47:44.950
<v Jochen>quasi nicht so

00:47:44.950 --> 00:47:47.750
<v Jochen>gebaut hat, dass man halt Pydentic austauschen

00:47:47.750 --> 00:47:49.730
<v Jochen>kann, dann hat man halt, so ähnlich wie bei

00:47:49.730 --> 00:47:50.990
<v Jochen>man hält von den Django,

00:47:51.530 --> 00:47:53.750
<v Jochen>Models Model erbt, also oft kann

00:47:53.750 --> 00:47:55.650
<v Jochen>das ja auch okay sein und bei Pydentic kann das ja auch oft

00:47:55.650 --> 00:47:57.890
<v Jochen>okay sein, aber wenn du halt ein Großprojekt hast und dann

00:47:57.890 --> 00:47:59.850
<v Jochen>hast du halt

00:47:59.850 --> 00:48:01.910
<v Jochen>irgendwann, willst du Dinge anders

00:48:01.910 --> 00:48:03.690
<v Jochen>machen, dann kann es gut sein, dass

00:48:03.690 --> 00:48:04.210
<v Jochen>das nicht mehr geht.

00:48:04.810 --> 00:48:07.250
<v Jochen>Ja, okay, klar, natürlich.

00:48:09.310 --> 00:48:09.630
<v Jochen>Ja.

00:48:10.970 --> 00:48:11.330
<v Jochen>Hm.

00:48:12.090 --> 00:48:12.990
<v Jochen>Ich fand das jetzt nicht so, dass

00:48:12.990 --> 00:48:14.390
<v Jochen>Kinder gegen ein Win.

00:48:16.170 --> 00:48:17.490
<v Jochen>Sollen wir mal zurückkommen zum Buch?

00:48:17.590 --> 00:48:19.730
<v Johannes>Ich glaube, da sind tatsächlich noch ein paar interessante Sachen drin.

00:48:21.770 --> 00:48:23.590
<v Johannes>Diese, es werden ja hier

00:48:23.590 --> 00:48:25.810
<v Johannes>drei Alternativen genannt.

00:48:26.010 --> 00:48:27.350
<v Johannes>Also Collections.NameTupel,

00:48:27.410 --> 00:48:29.350
<v Johannes>TypingNameTupel und DataClass.

00:48:30.290 --> 00:48:31.030
<v Johannes>Und warum nicht

00:48:31.030 --> 00:48:31.850
<v Johannes>TypeDict?

00:48:33.210 --> 00:48:34.490
<v Johannes>Ja, das ist tatsächlich hier,

00:48:35.950 --> 00:48:37.570
<v Johannes>da lese ich, ich zitiere,

00:48:37.670 --> 00:48:39.610
<v Johannes>TypeDict may seem like another DataClass-Builder.

00:48:39.670 --> 00:48:41.650
<v Johannes>Ja, das ist es nicht. However, TypeDict does not

00:48:41.650 --> 00:48:43.530
<v Johannes>build concrete classes that you can instantiate.

00:48:43.610 --> 00:48:45.550
<v Dominik>Genau, es ist in Kapitel 25

00:48:45.550 --> 00:48:46.970
<v Dominik>oder sowas, geht ja nochmal drauf ein.

00:48:47.970 --> 00:48:49.670
<v Johannes>Genau, also das macht nicht solche

00:48:49.670 --> 00:48:51.490
<v Johannes>Klassen, wie wir sie hier brauchen, sondern

00:48:51.490 --> 00:48:53.550
<v Johannes>das ist nur... TypeAnnotations für Dicts

00:48:53.550 --> 00:48:54.730
<v Johannes>aber es funktioniert anders.

00:48:55.390 --> 00:48:56.590
<v Johannes>Genau, und es ist eine böse Falle.

00:48:56.730 --> 00:48:58.370
<v Jochen>Ich weiß nicht, wie oft ich das schon gesehen habe,

00:48:58.430 --> 00:49:00.810
<v Jochen>dass Leute denken, dass sie dann sicher werden,

00:49:01.330 --> 00:49:03.270
<v Jochen>aber nie MyPy oder sowas ausführen.

00:49:03.670 --> 00:49:05.690
<v Jochen>Und dann, wenn man es dann mal ausführt,

00:49:06.150 --> 00:49:06.810
<v Jochen>kriegt man halt gesagt,

00:49:06.930 --> 00:49:08.930
<v Jochen>das, was du da machst mit den Type-Ticks,

00:49:08.990 --> 00:49:09.770
<v Jochen>das ist bei uns alles falsch.

00:49:11.410 --> 00:49:12.370
<v Jochen>Nie einer gemerkt.

00:49:13.330 --> 00:49:14.510
<v Jochen>Hat dir das Claude erzählt?

00:49:15.350 --> 00:49:17.370
<v Jochen>Nee, mir begegnet sowas ständig.

00:49:17.850 --> 00:49:18.750
<v Jochen>Hat sich jemand ausgedacht.

00:49:20.090 --> 00:49:22.550
<v Johannes>Okay, aber im Endeffekt funktionieren doch

00:49:22.550 --> 00:49:24.610
<v Johannes>diese drei Verfahren

00:49:24.610 --> 00:49:26.450
<v Johannes>alle irgendwie gleich. Du musst irgendwie eine

00:49:26.450 --> 00:49:28.570
<v Johannes>Definition schreiben und du sagst, ich möchte jetzt eine Klasse

00:49:28.570 --> 00:49:30.630
<v Johannes>haben, die soll einen Namen haben

00:49:30.630 --> 00:49:32.530
<v Johannes>und die soll folgende Attribute

00:49:32.530 --> 00:49:34.770
<v Dominik>haben. Und die werden dann getypt

00:49:34.770 --> 00:49:36.490
<v Dominik>und getyped hinted? Ja,

00:49:36.610 --> 00:49:38.570
<v Johannes>entweder getypt oder auch nicht getypt. Musst du ja nicht

00:49:38.570 --> 00:49:40.390
<v Johannes>unbedingt getypt haben.

00:49:41.690 --> 00:49:42.830
<v Johannes>Und selbst wenn du es getypt hast,

00:49:42.910 --> 00:49:43.830
<v Johannes>kannst du es ja immer noch anders verwenden.

00:49:44.810 --> 00:49:46.550
<v Johannes>Selbst wenn du deine Dataglass schön mit

00:49:46.550 --> 00:49:48.690
<v Johannes>Types versehen hast, kannst

00:49:48.690 --> 00:49:49.930
<v Johannes>du ja immer noch reintun, was du möchtest.

00:49:50.310 --> 00:49:51.690
<v Johannes>Also ein Tuple wäre jetzt immutable,

00:49:51.870 --> 00:49:53.570
<v Dominik>dann muss ich ein Frozen machen bei der Data-Klasse.

00:49:54.590 --> 00:49:57.270
<v Johannes>Genau, aber das hat mit den Types nichts zu tun.

00:49:57.690 --> 00:50:00.610
<v Johannes>Du kannst auch, also auch das Typing.name-Tuple

00:50:00.610 --> 00:50:03.130
<v Johannes>kann ja andere Sachen nehmen.

00:50:03.190 --> 00:50:04.750
<v Johannes>Das ist ja erst mal nur eine Absichtserklärung.

00:50:05.770 --> 00:50:08.570
<v Johannes>Ich beabsichtige, dass dieses Attribut nur ein Int sein kann,

00:50:08.690 --> 00:50:10.110
<v Johannes>aber da hält dich niemand davon ab.

00:50:10.910 --> 00:50:12.030
<v Johannes>Kannst auch eine Letzte reinmachen.

00:50:12.190 --> 00:50:13.290
<v Johannes>Das ist ja generell bei Python so.

00:50:16.090 --> 00:50:18.110
<v Johannes>Okay, aber ich finde es interessant,

00:50:18.110 --> 00:50:24.210
<v Johannes>weil im Wesentlichen gibt es da zwei verschiedene Syntax-Möglichkeiten.

00:50:24.790 --> 00:50:26.790
<v Johannes>Und die eine, das ist die, die von Name-Tupel kommt,

00:50:26.870 --> 00:50:28.630
<v Johannes>wo man halt sagt, ich möchte einen Name-Tupel haben

00:50:28.630 --> 00:50:32.610
<v Johannes>und dann rufe ich die Funktion oder rufe ich den Konstruktor Name-Tupel

00:50:32.610 --> 00:50:36.770
<v Johannes>als Konstruktor auf und sage eben, diese Datenklasse soll den Namen,

00:50:37.550 --> 00:50:40.050
<v Johannes>hier haben Sie das Beispiel Coordinate haben, also Koordinate haben

00:50:40.050 --> 00:50:41.430
<v Johannes>und die hat zwei Attribute, Lat und Lon.

00:50:41.490 --> 00:50:42.690
<v Johannes>Und dann kriege ich da eine Klasse raus.

00:50:43.350 --> 00:50:45.590
<v Johannes>Oder besser gesagt, ich kriege einen Konstruktor raus für eine Klasse.

00:50:45.670 --> 00:50:47.090
<v Johannes>Ich kriege ja nicht meine ganze Klasse raus,

00:50:47.090 --> 00:50:48.430
<v Johannes>sondern ich kriege nur den Konstruktor raus

00:50:48.430 --> 00:50:51.110
<v Johannes>und das ist so

00:50:51.110 --> 00:50:52.950
<v Johannes>ein bisschen irgendwie so eine textuelle Beschreibung und

00:50:52.950 --> 00:50:55.050
<v Johannes>ich habe da immer so ein bisschen Hemmungen, das fühlt sich

00:50:55.050 --> 00:50:56.610
<v Johannes>so ein bisschen an, als ob man irgendwie

00:50:56.610 --> 00:50:57.910
<v Johannes>um diesen

00:50:57.910 --> 00:51:00.810
<v Johannes>ja, um so Python

00:51:00.810 --> 00:51:03.070
<v Johannes>außen rum geht und

00:51:03.070 --> 00:51:05.250
<v Johannes>um den Interpreter

00:51:05.250 --> 00:51:07.090
<v Johannes>außen rum geht und dass man irgendwelche

00:51:07.630 --> 00:51:09.170
<v Johannes>langsamen, magischen Sachen

00:51:09.170 --> 00:51:11.070
<v Johannes>macht, aber ich glaube

00:51:11.070 --> 00:51:13.130
<v Johannes>tatsächlich, man muss da weg davon und muss sagen, okay

00:51:13.130 --> 00:51:15.050
<v Johannes>dieses Herstellen der Klasse

00:51:15.050 --> 00:51:17.130
<v Johannes>das ist langsam, aber das ist ja egal,

00:51:17.250 --> 00:51:18.810
<v Johannes>weil das macht man nur einmal. Das

00:51:18.810 --> 00:51:20.850
<v Johannes>Instanziieren, das ist dann so schnell wie ein Tupel.

00:51:22.310 --> 00:51:22.890
<v Johannes>Und das ist nicht,

00:51:23.050 --> 00:51:25.030
<v Johannes>und die verbrauchen auch nicht mehr Speicher. Also diese

00:51:25.030 --> 00:51:26.770
<v Johannes>Namen werden nicht bei jeder Instanz

00:51:26.770 --> 00:51:28.830
<v Johannes>dazu gespeichert. Das ist nicht wie bei einem

00:51:28.830 --> 00:51:30.950
<v Johannes>Dictionary, sondern es ist eben ein

00:51:30.950 --> 00:51:32.870
<v Johannes>Tupel. Und im Endeffekt ist es ein Tupel mit

00:51:32.870 --> 00:51:33.790
<v Johannes>so einem kleines bisschen

00:51:33.790 --> 00:51:36.910
<v Johannes>Karamellsoße obendrauf gestreut, wo man

00:51:36.910 --> 00:51:39.130
<v Johannes>eben nicht Index 0, Index 1

00:51:39.130 --> 00:51:41.050
<v Johannes>und Index 2 hat, sondern wo man eben Latitude

00:51:41.050 --> 00:51:42.150
<v Johannes>und Longitude sagen kann.

00:51:42.530 --> 00:51:44.570
<v Johannes>Und das bedeutet dann Index 0 und Index 1.

00:51:44.590 --> 00:51:45.910
<v Johannes>Ja, das sieht viel schneller aus tatsächlich.

00:51:45.910 --> 00:51:48.050
<v Jochen>Also lange Zeit war NameTupel

00:51:48.050 --> 00:51:50.090
<v Jochen>auch irgendwie deutlich schneller, also wobei

00:51:50.090 --> 00:51:52.070
<v Jochen>nichts ist so schnell wie tatsächlich einfach

00:51:52.070 --> 00:51:53.610
<v Jochen>quasi, wenn man eine Klasse

00:51:53.610 --> 00:51:56.110
<v Jochen>instanziiert, aber NameTupel war dann

00:51:56.110 --> 00:51:57.170
<v Jochen>halt die schnellste Alternative.

00:51:59.110 --> 00:52:00.090
<v Jochen>Und wenn man

00:52:00.090 --> 00:52:01.810
<v Jochen>jetzt früher war das halt oft so,

00:52:02.290 --> 00:52:04.410
<v Jochen>oder wenn man

00:52:04.410 --> 00:52:06.270
<v Jochen>halt Attribut-Lookup

00:52:06.270 --> 00:52:08.030
<v Jochen>macht, dann ist das bei

00:52:08.030 --> 00:52:09.050
<v Jochen>NameTupel natürlich schneller.

00:52:09.930 --> 00:52:12.050
<v Jochen>Also irgendwas, Instance, Punkt,

00:52:12.190 --> 00:52:13.850
<v Jochen>irgendein Attribut, weil

00:52:13.850 --> 00:52:15.430
<v Jochen>Tupel-Index.

00:52:15.830 --> 00:52:18.150
<v Jochen>Und inzwischen macht er aber Dataclasses

00:52:18.150 --> 00:52:20.230
<v Jochen>und auch, glaube ich,

00:52:20.230 --> 00:52:22.330
<v Jochen>nennt Tupel, wenn man davon erbt, per Default

00:52:22.330 --> 00:52:24.170
<v Jochen>irgendwie Slots. Aber vielleicht erzähle ich jetzt auch Unsinn.

00:52:24.510 --> 00:52:25.750
<v Jochen>Das müsste, muss man irgendjemand nachgucken.

00:52:25.910 --> 00:52:28.010
<v Jochen>Aber ich glaube, das ist tatsächlich so.

00:52:28.610 --> 00:52:29.430
<v Jochen>Das Fazit ist für mich,

00:52:30.550 --> 00:52:32.370
<v Johannes>das hat gar keine praktische Auswirkung.

00:52:32.470 --> 00:52:34.210
<v Johannes>In keinem Fall, den ich je hatte,

00:52:34.330 --> 00:52:36.250
<v Johannes>hätte das eine Auswirkung gehabt, dass die Konstruktion

00:52:36.250 --> 00:52:37.450
<v Johannes>von diesen Datenobjekten

00:52:37.450 --> 00:52:40.010
<v Johannes>zu langsam gewesen wäre. Das heißt, das ist auch wieder so ein

00:52:40.010 --> 00:52:42.230
<v Johannes>Jagdnig-Fall. Das ist so eine Angst,

00:52:42.410 --> 00:52:44.230
<v Johannes>die ich in meinem Kopf habe, die aber eigentlich

00:52:44.230 --> 00:52:45.750
<v Johannes>in dem Moment noch nicht berechtigt ist.

00:52:46.410 --> 00:52:48.410
<v Jochen>Eine große API-Response

00:52:48.410 --> 00:52:50.130
<v Jochen>ist, oder wo du Zeugs

00:52:50.130 --> 00:52:51.490
<v Jochen>reinkriegst, weil da kann das schon

00:52:51.490 --> 00:52:54.230
<v Jochen>so bei, wenn du so halt irgendwie 10.000

00:52:54.230 --> 00:52:56.130
<v Jochen>Dinger in Objekte verwandelst und

00:52:56.130 --> 00:52:57.650
<v Jochen>dann ist halt dein Objekt erzeugt gemeinsam.

00:52:57.870 --> 00:52:59.650
<v Johannes>Wenn da Jason reinkommt, hast du ja eh schon verloren.

00:53:00.130 --> 00:53:01.670
<v Jochen>Ja, aber es gibt ja schnelle Jason-Parser, aber

00:53:01.670 --> 00:53:03.730
<v Jochen>du musst es ja nochmal zu Objekten machen.

00:53:03.810 --> 00:53:04.630
<v Jochen>Aber du kriegst ja auch einen Dikt.

00:53:06.410 --> 00:53:07.830
<v Jochen>Wie auch immer,

00:53:08.450 --> 00:53:10.310
<v Johannes>für mich der Takeaway ist,

00:53:10.990 --> 00:53:12.130
<v Johannes>ich habe da immer so ein bisschen Hemmungen.

00:53:12.130 --> 00:53:14.110
<v Johannes>Ich habe immer so ein bisschen Hemmungen, so ein Name-Tupel zu machen,

00:53:14.450 --> 00:53:16.170
<v Johannes>weil das nicht so richtig in die Syntax

00:53:16.170 --> 00:53:17.950
<v Johannes>passt, weil das anders aussieht, als

00:53:17.950 --> 00:53:20.010
<v Johannes>andere Sachen aussehen, aber es ist gar nicht

00:53:20.010 --> 00:53:21.990
<v Johannes>schlecht. Es ist gar nicht

00:53:21.990 --> 00:53:23.410
<v Johannes>falsch, ein Name-Tupel zu machen.

00:53:23.810 --> 00:53:25.810
<v Dominik>Ja, aber was meinst du, es sieht anders aus? Also ich finde,

00:53:25.910 --> 00:53:27.690
<v Dominik>wenn du das jetzt vom Typing

00:53:27.690 --> 00:53:29.770
<v Dominik>oder vom Collections importierst, dann kannst du ja

00:53:29.770 --> 00:53:32.190
<v Dominik>Klasse schreiben. Sieht ja fast aus wie eine Data-Klasse,

00:53:32.270 --> 00:53:33.650
<v Dominik>nur dass du nicht jetzt Data-Klassen importierst.

00:53:34.070 --> 00:53:36.170
<v Johannes>Genau, das kannst du machen. Das sieht auch normal aus.

00:53:36.290 --> 00:53:37.670
<v Johannes>Das ist auch was, was ich empfehlen würde.

00:53:39.770 --> 00:53:40.090
<v Johannes>Das

00:53:40.090 --> 00:53:42.230
<v Johannes>das Ganze machen, aber dieser Konstruktor,

00:53:42.290 --> 00:53:44.090
<v Johannes>der Named-Tubel-Konstruktor, also das ist

00:53:44.090 --> 00:53:46.030
<v Johannes>tatsächlich alles klein geschrieben und dann musst du da

00:53:46.030 --> 00:53:46.770
<v Johannes>Strings reingeben.

00:53:47.630 --> 00:53:49.970
<v Johannes>Ja, das ist schon...

00:53:49.970 --> 00:53:51.950
<v Jochen>Was daran auch komisch ist halt,

00:53:52.250 --> 00:53:54.210
<v Jochen>also einmal, ich finde es auch ehrlich gesagt ein bisschen hässlich,

00:53:54.210 --> 00:53:56.210
<v Jochen>ich meine, das ist uralt, das gibt es schon ewig.

00:53:56.790 --> 00:53:57.690
<v Jochen>Das ist super praktisch.

00:53:58.310 --> 00:54:00.090
<v Jochen>Das ist natürlich manchmal super praktisch, wenn man

00:54:00.090 --> 00:54:01.170
<v Jochen>halt irgendwie auf alten

00:54:01.170 --> 00:54:03.950
<v Jochen>Interpreterversionen rumguckt, aber

00:54:03.950 --> 00:54:06.130
<v Jochen>genau, das funktioniert wahrscheinlich bis,

00:54:06.270 --> 00:54:08.190
<v Jochen>also da gibt es nichts mehr, was noch läuft, was irgendwie

00:54:08.190 --> 00:54:10.090
<v Jochen>älter ist. Das funktioniert wirklich

00:54:10.090 --> 00:54:12.230
<v Jochen>überall, aber also was halt auch

00:54:12.230 --> 00:54:14.290
<v Jochen>blöd ist, ist, dass es halt, es geht zwar auch,

00:54:14.350 --> 00:54:16.550
<v Jochen>dass man da Methoden dranhängt, aber das ist auch voll umständlich.

00:54:16.970 --> 00:54:17.910
<v Jochen>Da muss man halt auch erstmal

00:54:17.910 --> 00:54:20.090
<v Jochen>die Funktionen anzeugen und dann muss man

00:54:20.090 --> 00:54:22.110
<v Jochen>das Ding irgendwie da dranhängen und so. Und es geht

00:54:22.110 --> 00:54:24.050
<v Jochen>alles, klar, aber es ist halt schon so, wenn das

00:54:24.050 --> 00:54:26.150
<v Jochen>als Methode dransteht, ist das schon leichter

00:54:26.150 --> 00:54:28.190
<v Jochen>verständlich, wie das passiert. Ja, da kann man ganz viel

00:54:28.190 --> 00:54:30.090
<v Dominik>hässliche Magie mitmachen. Ich glaube, wenn man so Codecoil

00:54:30.090 --> 00:54:32.250
<v Dominik>spielt oder sowas, dann ist das eine Disziplin, die man so spielen kann.

00:54:32.710 --> 00:54:34.130
<v Dominik>Und wer Leute verwirren will oder

00:54:34.130 --> 00:54:35.830
<v Dominik>so ein bisschen Obfuscation, ne?

00:54:36.290 --> 00:54:37.370
<v Dominik>Nee, nee, nee, das ist nicht gut.

00:54:37.710 --> 00:54:39.370
<v Johannes>Nee, dann gehen wir über zu Typing-Name-Tupel,

00:54:39.430 --> 00:54:41.390
<v Johannes>weil Typing-Name-Tupel hat nämlich Klassen-Syntax.

00:54:41.890 --> 00:54:44.390
<v Johannes>Und die ist tatsächlich, ich finde die sehr schön.

00:54:46.490 --> 00:54:49.210
<v Johannes>Es wird gleich noch ein Problem beschrieben werden,

00:54:49.330 --> 00:54:52.090
<v Johannes>was ich auch tatsächlich sehe, jetzt, wo ich es gelesen habe.

00:54:53.350 --> 00:54:55.390
<v Johannes>Aber es ist so ein bisschen so, wie man es sich vorstellt.

00:54:55.510 --> 00:54:57.330
<v Johannes>Wenn man aus einer anderen Sprache kommt,

00:54:57.430 --> 00:54:58.570
<v Johannes>dann sagt man, ich möchte eine Klasse haben

00:54:58.570 --> 00:54:59.790
<v Johannes>und die soll folgende Attribute haben.

00:54:59.870 --> 00:55:02.210
<v Johannes>Und das ist hier genauso, weil die Klassen-Syntax halt so ist,

00:55:02.210 --> 00:55:04.310
<v Johannes>dass ich sage, Class, dann den Klassennamen,

00:55:04.690 --> 00:55:05.810
<v Johannes>abgeleitet von Name-Touple,

00:55:07.270 --> 00:55:08.350
<v Johannes>was aber so ein bisschen

00:55:08.350 --> 00:55:10.710
<v Johannes>nicht ganz

00:55:10.710 --> 00:55:12.710
<v Dominik>richtig ist. Weil die MRO da gar nicht

00:55:12.710 --> 00:55:14.490
<v Dominik>drin ist, weil das nur in Meta-Klasse ist, weil da

00:55:14.490 --> 00:55:16.370
<v Dominik>nämlich gar nicht tatsächlich Name-Touple entsteht, sondern

00:55:16.370 --> 00:55:18.630
<v Dominik>ein richtiges Toupe. Genau. Und dann

00:55:18.630 --> 00:55:20.630
<v Johannes>innerhalb von der Klasse gebe ich einfach

00:55:20.630 --> 00:55:22.590
<v Johannes>die Attribute an, die ich haben möchte

00:55:22.590 --> 00:55:24.430
<v Johannes>mit ihrem Typen. Also hier in dem Fall beispielsweise

00:55:24.430 --> 00:55:26.110
<v Johannes>Latitude, Doppelpunkt Float

00:55:26.110 --> 00:55:28.130
<v Johannes>und Longitude, Doppelpunkt Float.

00:55:28.790 --> 00:55:30.330
<v Johannes>Und das bedeutet, dass diese Klasse

00:55:30.330 --> 00:55:32.010
<v Johannes>automatisch einen Konstruktor bekommt,

00:55:32.870 --> 00:55:34.330
<v Johannes>der eben diese zwei

00:55:34.330 --> 00:55:36.990
<v Johannes>Attribute nimmt, entweder named oder unnamed.

00:55:37.690 --> 00:55:39.050
<v Johannes>Das war so der Hauptanwendungsbereich.

00:55:39.270 --> 00:55:40.690
<v Johannes>Du möchtest jetzt nicht irgendwie eine Klasse schreiben,

00:55:40.790 --> 00:55:42.670
<v Dominik>wo du reinschreibst in init, nimm folgende

00:55:42.670 --> 00:55:44.590
<v Dominik>Argumente, latitude und longitude und dann machst du

00:55:44.590 --> 00:55:46.850
<v Dominik>save, init, lot, gleich, lang und da.

00:55:47.630 --> 00:55:48.650
<v Dominik>Genau, kannst du alles selber machen,

00:55:48.810 --> 00:55:50.550
<v Johannes>aber es wird dir alles abgenommen, wenn du das hier machst.

00:55:50.650 --> 00:55:53.190
<v Johannes>Genau. Durch Meta-Klassen-Magie.

00:55:53.290 --> 00:55:54.670
<v Johannes>Und im Endeffekt

00:55:54.670 --> 00:55:56.750
<v Dominik>Jetzt ist schon das zweite Mal, dass ich

00:55:56.750 --> 00:55:58.790
<v Dominik>jetzt wieder das Trinkspiel mache, was wir letztes Mal angefangen haben.

00:55:59.570 --> 00:56:00.590
<v Dominik>Ja, ich weiß, das ist

00:56:00.590 --> 00:56:02.130
<v Johannes>mein Wort, was

00:56:02.130 --> 00:56:04.150
<v Johannes>zu oft kommt. Wir sagen das jetzt nicht

00:56:04.150 --> 00:56:04.650
<v Johannes>nochmal.

00:56:07.610 --> 00:56:08.570
<v Johannes>Bei Delta Classes

00:56:08.570 --> 00:56:09.990
<v Johannes>ist ja im Grunde genommen

00:56:09.990 --> 00:56:12.150
<v Johannes>das Gleiche, dass du so eine gewisse

00:56:12.150 --> 00:56:14.150
<v Johannes>du sagst, welche Klassennamen du

00:56:14.150 --> 00:56:16.170
<v Johannes>haben möchtest, welche Attribute du haben möchtest, welchen Typ

00:56:16.170 --> 00:56:18.030
<v Johannes>du haben möchtest. Und da ist natürlich

00:56:18.030 --> 00:56:20.390
<v Johannes>leicht, weitere Methoden hinzuzufügen.

00:56:20.470 --> 00:56:21.750
<v Johannes>Die schreibst du einfach in den Klassenkörper rein.

00:56:22.470 --> 00:56:23.650
<v Johannes>Ja, das mache ich auch.

00:56:23.650 --> 00:56:25.770
<v Johannes>Das geht ja eigentlich schon häufig im Delta Class.

00:56:25.970 --> 00:56:27.650
<v Dominik>Aber ich mache das tatsächlich relativ häufig, dass wenn irgendwie

00:56:27.650 --> 00:56:29.690
<v Dominik>auffällt, ah, ich hätte noch gerne keinen und doch das Maximum

00:56:29.690 --> 00:56:30.750
<v Dominik>und die Summe berechnet von irgendwas.

00:56:31.630 --> 00:56:33.150
<v Dominik>Das war schon super praktisch.

00:56:33.470 --> 00:56:34.830
<v Dominik>Ja, natürlich, das ist auch wichtig.

00:56:35.850 --> 00:56:36.970
<v Dominik>Das ist ja dann das, was hier

00:56:36.970 --> 00:56:39.310
<v Dominik>der Onkel Bob würde sagen,

00:56:39.530 --> 00:56:40.830
<v Dominik>das ist gut, bist du auf dem richtigen Weg.

00:56:41.190 --> 00:56:42.970
<v Dominik>I just implemented that last night.

00:56:45.770 --> 00:56:47.130
<v Dominik>Genau, es ist interessant,

00:56:47.350 --> 00:56:49.110
<v Dominik>weil da ist ja so ein bisschen

00:56:49.110 --> 00:56:50.890
<v Johannes>Triggery drin hier, dieses Name-Tupel,

00:56:50.970 --> 00:56:52.970
<v Johannes>dieses Typing-Name-Tupel, das ist ja gar keine normale

00:56:52.970 --> 00:56:55.030
<v Johannes>Klasse, sondern das ist ja eine Meta-Klasse.

00:56:56.250 --> 00:56:56.410
<v Johannes>Ja.

00:56:57.070 --> 00:56:58.410
<v Johannes>Was ist denn jetzt so eine Meta-Klasse?

00:56:58.730 --> 00:56:59.690
<v Johannes>Eine Meta-Klasse?

00:56:59.710 --> 00:57:00.590
<v Johannes>Welches Kapitel ist das?

00:57:01.590 --> 00:57:03.110
<v Jochen>Das ist weiter hinten, glaube ich.

00:57:03.110 --> 00:57:04.030
<v Jochen>Da machen wir noch ein bisschen.

00:57:05.030 --> 00:57:06.830
<v Dominik>Es sind Komplimente von Dynamic, Attribute

00:57:06.830 --> 00:57:08.850
<v Dominik>and Property. Wir verschieben das.

00:57:09.290 --> 00:57:10.770
<v Dominik>Das Metaprogramm ist Kapitel 24.

00:57:11.550 --> 00:57:13.310
<v Dominik>Ja, also Kapitel 24.

00:57:13.590 --> 00:57:15.250
<v Johannes>Also nur noch 19 weitere

00:57:15.250 --> 00:57:16.830
<v Johannes>Episoden und schon sind wir über das Buch

00:57:16.830 --> 00:57:17.450
<v Johannes>Fluren passen.

00:57:19.890 --> 00:57:21.010
<v Johannes>Dazwischen natürlich noch die

00:57:21.010 --> 00:57:22.950
<v Johannes>anderen. Okay, aber

00:57:22.950 --> 00:57:24.870
<v Johannes>dann, dieses Kapitel macht ja jetzt

00:57:24.870 --> 00:57:26.890
<v Johannes>hier eine total interessante Biege,

00:57:27.430 --> 00:57:29.010
<v Johannes>weil das nächste

00:57:29.010 --> 00:57:30.930
<v Johannes>ist ja jetzt, ah übrigens, wir müssen

00:57:30.930 --> 00:57:33.070
<v Johannes>Type-Ins machen, wir müssen noch ein bisschen über Typing sprechen.

00:57:33.290 --> 00:57:35.130
<v Johannes>Ja, ja, ja. Und das fand ich

00:57:35.130 --> 00:57:36.910
<v Johannes>interessant, als ich es gelesen habe, weil das hatte ich,

00:57:37.150 --> 00:57:39.210
<v Johannes>das war so ein Twist, den ich nicht erwartet

00:57:39.210 --> 00:57:39.490
<v Johannes>hatte.

00:57:40.550 --> 00:57:43.030
<v Dominik>Er hat deswegen darüber gesprochen, weil er

00:57:43.030 --> 00:57:45.090
<v Dominik>gesagt hat, dass es total cool ist, wenn man

00:57:45.090 --> 00:57:47.030
<v Dominik>jetzt Match-Case benutzt. Und das liegt auch daran,

00:57:47.090 --> 00:57:48.750
<v Dominik>dass das... Ja, aber das ist dann der dritte,

00:57:48.850 --> 00:57:50.730
<v Johannes>das ist der nächste Twist. Achso.

00:57:51.410 --> 00:57:53.130
<v Dominik>Ja, das wurde ja gerade erst eingeführt, als das Buch rauskam.

00:57:53.130 --> 00:57:54.890
<v Dominik>Ich glaube, deswegen ist da so die Emphasis so ein bisschen

00:57:54.890 --> 00:57:57.210
<v Dominik>tiefer. Ja, vielleicht war es

00:57:57.210 --> 00:57:59.130
<v Johannes>auch nicht genügend für ein, ups, jetzt geht hier

00:57:59.130 --> 00:58:01.370
<v Johannes>mein Aufnahmekomputer geht gerade aus,

00:58:03.150 --> 00:58:03.310
<v Johannes>die,

00:58:03.970 --> 00:58:05.330
<v Johannes>vielleicht ist es auch noch nicht groß

00:58:05.330 --> 00:58:07.170
<v Johannes>genug für ein eigenes Kapitel, aber ich

00:58:07.170 --> 00:58:09.430
<v Johannes>finde es interessant, dass hier so Type Hints

00:58:09.430 --> 00:58:11.130
<v Johannes>oder Type

00:58:11.130 --> 00:58:12.930
<v Johannes>Annotations so

00:58:12.930 --> 00:58:15.090
<v Johannes>in einem ganz

00:58:15.090 --> 00:58:17.050
<v Johannes>anderen Kapitel versteckt

00:58:17.050 --> 00:58:17.310
<v Johannes>wird.

00:58:19.270 --> 00:58:20.870
<v Johannes>Und auch nicht so, dass man es jetzt,

00:58:21.710 --> 00:58:22.550
<v Johannes>also ich habe mir ja die,

00:58:22.790 --> 00:58:25.090
<v Johannes>das, das, habe mir ja die Inhaltsangabe

00:58:25.670 --> 00:58:26.910
<v Johannes>hier die Sachen durchgelesen,

00:58:27.010 --> 00:58:28.810
<v Johannes>Aber da habe ich damit gerechnet,

00:58:29.310 --> 00:58:30.930
<v Johannes>dass das jetzt hier so eine

00:58:30.930 --> 00:58:32.750
<v Johannes>Abbiegung macht und dann sagt, ach so, übrigens,

00:58:32.930 --> 00:58:34.930
<v Johannes>hier, lassen Sie über Typen sprechen.

00:58:37.670 --> 00:58:39.150
<v Johannes>Also kommt natürlich nachher noch mal,

00:58:39.270 --> 00:58:39.430
<v Johannes>aber

00:58:39.430 --> 00:58:42.930
<v Jochen>ja. Ja, ist natürlich schon auch so

00:58:42.930 --> 00:58:44.930
<v Jochen>ein bisschen naheliegend, weil man muss halt jetzt dann

00:58:44.930 --> 00:58:46.810
<v Jochen>irgendwie, wenn man schon erklärt,

00:58:46.910 --> 00:58:48.850
<v Jochen>wie das da bei diesen

00:58:48.850 --> 00:58:50.750
<v Jochen>Class-Bildern funktioniert, dass man halt

00:58:50.750 --> 00:58:51.950
<v Jochen>über die

00:58:51.950 --> 00:58:54.430
<v Jochen>Typ-Annotation im Grunde

00:58:54.430 --> 00:58:56.450
<v Jochen>halt, ja,

00:58:56.670 --> 00:58:58.830
<v Jochen>schon sagt, was das dann sein soll, dann muss man ja auch

00:58:58.830 --> 00:59:00.510
<v Jochen>erklären, wie das funktioniert. Und dann kann man ja,

00:59:00.590 --> 00:59:02.550
<v Jochen>dann muss man ja irgendwie andere

00:59:02.550 --> 00:59:04.650
<v Jochen>Annotations irgendwie erwähnen und dann

00:59:04.650 --> 00:59:06.950
<v Jochen>ist man ja mittendrin in den Annotationen.

00:59:07.830 --> 00:59:08.410
<v Jochen>Ja, das

00:59:08.410 --> 00:59:10.670
<v Johannes>man muss da so ein bisschen in den Wald reinlaufen

00:59:10.670 --> 00:59:12.450
<v Johannes>und sich so ein bisschen drin verlaufen, ja. Also

00:59:12.450 --> 00:59:14.510
<v Johannes>ich verstehe es schon, aber es war irgendwie

00:59:14.510 --> 00:59:16.030
<v Johannes>was, hatte ich nicht erwartet.

00:59:17.770 --> 00:59:18.750
<v Johannes>Und da kommt

00:59:18.750 --> 00:59:20.810
<v Johannes>auch das eine Problem raus mit den Data Classes.

00:59:20.890 --> 00:59:22.630
<v Johannes>Also wenn ich so eine Data Class schreibe, dann

00:59:22.630 --> 00:59:24.830
<v Johannes>habe ich ja diesen Dekorator vorne dran, Data Class.

00:59:25.850 --> 00:59:27.950
<v Johannes>Dataclass ist dort Dataclass, dann

00:59:27.950 --> 00:59:29.670
<v Johannes>schreibe ich Class den Klassennamen, also

00:59:29.670 --> 00:59:31.150
<v Johannes>in dem Fall jetzt hier ClassCoordinate

00:59:31.150 --> 00:59:33.930
<v Johannes>und im Klassenkörper schreibe ich

00:59:33.930 --> 00:59:35.890
<v Johannes>dann die Attribute, die die Instanzen haben sollen.

00:59:36.630 --> 00:59:37.830
<v Johannes>Und das

00:59:37.830 --> 00:59:39.890
<v Johannes>wird hier in dem Kapitel sehr

00:59:39.890 --> 00:59:42.090
<v Johannes>deutlich gemacht und das finde ich auch sehr richtig und sehr gut,

00:59:42.610 --> 00:59:43.830
<v Johannes>weil das da tatsächlich

00:59:43.830 --> 00:59:45.810
<v Johannes>eigentlich eine Abwendung ist

00:59:45.810 --> 00:59:47.550
<v Johannes>von dem, was Python normalerweise macht.

00:59:48.030 --> 00:59:49.550
<v Johannes>Weil wenn ich normalerweise hier

00:59:49.550 --> 00:59:51.790
<v Johannes>ein Attribut reinschreibe,

00:59:52.190 --> 00:59:53.370
<v Johannes>also wenn ich Latitude gleich

00:59:53.370 --> 00:59:55.850
<v Johannes>X reinschreibe und Longitude gleich

00:59:55.850 --> 00:59:57.990
<v Johannes>Y, dann ist es ja erst mal

00:59:57.990 --> 00:59:59.190
<v Johannes>ein Klassenattribut.

01:00:01.190 --> 01:00:02.050
<v Johannes>Und hier

01:00:02.050 --> 01:00:03.890
<v Johannes>in dem Fall, wenn ich jetzt aber

01:00:03.890 --> 01:00:05.630
<v Johannes>Latitude Doppelpunkt Float,

01:00:05.830 --> 01:00:08.190
<v Johannes>also Latitude getypt mit dem

01:00:08.190 --> 01:00:09.390
<v Johannes>Float-Typ,

01:00:09.770 --> 01:00:11.570
<v Johannes>hinschreibe, dann ist es auf einmal ein

01:00:11.570 --> 01:00:12.570
<v Johannes>Instanzattribut.

01:00:13.610 --> 01:00:15.970
<v Johannes>Und dieser Unterschied wird hier

01:00:15.970 --> 01:00:18.010
<v Johannes>in einer gewissen Länge

01:00:18.010 --> 01:00:19.990
<v Johannes>diskutiert, weil der wirklich sehr wichtig

01:00:19.990 --> 01:00:21.890
<v Johannes>ist, weil es sehr leicht ist, diesen Unterschied

01:00:21.890 --> 01:00:24.030
<v Johannes>zu machen, diese beiden Sachen sind sehr nah aneinander

01:00:24.030 --> 01:00:25.890
<v Johannes>und die sehen sehr gleich aus, machen

01:00:25.890 --> 01:00:27.910
<v Johannes>aber dann andere Dinge und sind eigentlich

01:00:27.910 --> 01:00:29.990
<v Johannes>anders als das, was

01:00:29.990 --> 01:00:31.850
<v Johannes>in Python so normal ist, das heißt

01:00:31.850 --> 01:00:33.910
<v Johannes>da muss man schon besondere Vorsicht

01:00:33.910 --> 01:00:35.830
<v Dominik>Du musst nochmal bitte den Unterschied

01:00:35.830 --> 01:00:37.550
<v Dominik>genau erklären zwischen diesem

01:00:37.550 --> 01:00:39.770
<v Dominik>Instanzattribut und dem Klassenattribut, ich habe nämlich schon

01:00:39.770 --> 01:00:41.870
<v Dominik>mehrfach Menschen gesehen, die das so

01:00:41.870 --> 01:00:43.710
<v Dominik>gewohnt waren, dass das halt dann immer

01:00:43.710 --> 01:00:45.910
<v Dominik>ein Instanzattribut ist, was man

01:00:45.910 --> 01:00:47.770
<v Dominik>da direkt unter die Klasse schreibt, dass sich das

01:00:47.770 --> 01:00:49.870
<v Dominik>erst später festgestellt hat, dass das

01:00:49.870 --> 01:00:51.770
<v Johannes>In anderen Sprachen ist das ja auch so, wenn du in

01:00:51.770 --> 01:00:53.670
<v Johannes>Java oder C oder sonst wo bist, dann ist es

01:00:53.670 --> 01:00:55.410
<v Johannes>genau so. Dann sagst du, die Klasse soll folgende

01:00:55.410 --> 01:00:57.010
<v Johannes>Instanzattribute enthalten.

01:00:58.570 --> 01:00:59.610
<v Johannes>Und in Python ist es

01:00:59.610 --> 01:01:01.530
<v Johannes>aber anders. In Python sagst du, die Klasse

01:01:01.530 --> 01:01:03.450
<v Johannes>soll folgende Klassenattribute

01:01:03.450 --> 01:01:05.110
<v Jochen>enthalten. Der Hauptunterschied zwischen

01:01:05.110 --> 01:01:07.430
<v Jochen>Klassenattributen und Instanz ist halt, dass

01:01:07.430 --> 01:01:09.690
<v Jochen>ein Klassenattribut ist halt für alle Instanzen

01:01:09.690 --> 01:01:11.410
<v Jochen>der Klasse gleich. Und das ist halt

01:01:11.410 --> 01:01:13.230
<v Jochen>wahrscheinlich überraschender. Also diese

01:01:13.230 --> 01:01:15.470
<v Jochen>Eigenschaft ist mir auch schon mehrfach blöd

01:01:15.470 --> 01:01:16.170
<v Jochen>auf die Füße gefallen.

01:01:17.850 --> 01:01:18.850
<v Jochen>Aber so ist es halt. Genau.

01:01:19.550 --> 01:01:20.330
<v Jochen>Da muss man vorsichtig sein.

01:01:20.590 --> 01:01:23.470
<v Dominik>Das heißt, wenn du das setzt, irgendwo an einer existierenden

01:01:23.470 --> 01:01:24.890
<v Dominik>Entität, dann wäre das für alle

01:01:24.890 --> 01:01:26.790
<v Dominik>Gesetz?

01:01:27.270 --> 01:01:28.650
<v Dominik>Ja, also wenn das eine Klasse ist, zum Beispiel

01:01:28.650 --> 01:01:31.090
<v Jochen>sagst halt jetzt, schaffst du es irgendwie,

01:01:31.430 --> 01:01:32.570
<v Jochen>dass tatsächlich irgendwie

01:01:32.570 --> 01:01:35.030
<v Jochen>ein Klassenattribut defaultmäßig

01:01:35.030 --> 01:01:36.690
<v Jochen>zum Beispiel eine Liste ist, also

01:01:36.690 --> 01:01:37.910
<v Jochen>indem du das auf Ecke Klammer auf

01:01:37.910 --> 01:01:40.670
<v Jochen>Klammer zusetzt oder so,

01:01:41.310 --> 01:01:42.650
<v Jochen>dann... Oh, das ist jetzt aber

01:01:42.650 --> 01:01:43.870
<v Jochen>ganz hässlich, was du jetzt machst.

01:01:44.050 --> 01:01:46.870
<v Jochen>Und du überschreibst das nicht nachher nochmal irgendwie

01:01:46.870 --> 01:01:48.750
<v Jochen>in einem Konstruktor oder so, was ja dann

01:01:48.750 --> 01:01:50.770
<v Jochen>oft passiert, dann ist es kein Problem mehr,

01:01:51.010 --> 01:01:52.870
<v Jochen>weil in dem Moment, wo man es neu setzt oder so,

01:01:52.870 --> 01:01:55.210
<v Jochen>ist es dann ein Instanzattribut

01:01:55.210 --> 01:01:56.270
<v Jochen>und nicht mehr ein Klassenattribut.

01:01:56.850 --> 01:01:58.710
<v Jochen>Merkt man auch nichts von, ist vielleicht ein bisschen gefährlich,

01:01:59.270 --> 01:02:00.750
<v Jochen>aber wenn das nicht passiert, dann

01:02:00.750 --> 01:02:02.870
<v Jochen>passieren plötzlich wilde Dinge, weil

01:02:02.870 --> 01:02:04.670
<v Jochen>dann ist das halt für alle Instanzen gleich

01:02:04.670 --> 01:02:06.790
<v Jochen>und es funktioniert zwar, dass man da

01:02:06.790 --> 01:02:08.890
<v Jochen>Sachen appendet, aber da sind dann halt nicht nur die Sachen,

01:02:08.990 --> 01:02:10.710
<v Jochen>die man selber appendet hat drin, sondern alle anderen auch.

01:02:10.930 --> 01:02:12.770
<v Dominik>Deswegen ist es eine Konvention, wie man das

01:02:12.770 --> 01:02:14.470
<v Dominik>macht und zwar kann man das nennen Cache

01:02:14.470 --> 01:02:16.470
<v Dominik>unter Strich irgendwas

01:02:16.470 --> 01:02:18.370
<v Dominik>oder, ne? Dann hast du

01:02:18.370 --> 01:02:20.450
<v Dominik>einen Cache für alle Instanzen

01:02:20.450 --> 01:02:22.270
<v Dominik>dieser Klasse. Dann kannst du damit merken, alle

01:02:22.270 --> 01:02:24.350
<v Dominik>Errors, die aufgetreten sind, ever oder sowas.

01:02:24.610 --> 01:02:26.370
<v Jochen>Ja, also das hat durchaus Gründe,

01:02:26.490 --> 01:02:27.410
<v Jochen>weshalb man sowas haben will.

01:02:27.550 --> 01:02:30.390
<v Dominik>Ist ganz gut, aber damit kann man sich

01:02:30.390 --> 01:02:31.990
<v Dominik>hart infusieren. Also tatsächlich, das

01:02:31.990 --> 01:02:33.990
<v Dominik>hatten wir, glaube ich, auch schon ein paar Mal gesagt,

01:02:34.510 --> 01:02:36.330
<v Dominik>dieses Instanzieren von

01:02:36.330 --> 01:02:38.350
<v Dominik>leeren Dicts oder

01:02:38.350 --> 01:02:40.390
<v Dominik>Listen ist in Python generell sehr

01:02:40.390 --> 01:02:42.350
<v Dominik>gefährlich. Wenn man das als Default-Argument macht,

01:02:42.350 --> 01:02:44.370
<v Jochen>sollte man nicht. Ja, ganz, ganz

01:02:44.370 --> 01:02:46.350
<v Jochen>gefährlich, ja. Ja, und

01:02:46.350 --> 01:03:00.050
<v Johannes>Und generell Klassen, also ich mache oft Programmierkurse und das ist wirklich schwierig zu verstehen, was eine Klasse ist und was eine Instanz von einer Klasse ist und wie die zusammenhängen und was die zusammen tun und warum die das so tun.

01:03:00.330 --> 01:03:13.690
<v Johannes>Und das ist echt, echt schwierig. Und jetzt gibt es hier eben genau diesen subtilen Unterschied hier. Das eine, das sieht genauso aus wie das andere, aber wenn du nicht Doppelpunkt Int hinterschreibst, dann ist es auf einmal eine Klasseninstanz.

01:03:14.690 --> 01:03:34.070
<v Johannes>Ja, und das ist schon, das ist wirklich was sehr Subtiles und das geht eben weg von dem, was Python normalerweise macht. Normalerweise schreibst du in die Klasse die Klasseninstanzen rein und hier schreibst du auf einmal, wie in anderen Programmiersprachen, wo es sich natürlich anfühlt, schreibst du die Instanzeigenschaften rein, die Instanzattribute.

01:03:34.630 --> 01:03:36.730
<v Jochen>Wobei dir dann natürlich zum Beispiel Data Classes

01:03:36.730 --> 01:03:38.490
<v Jochen>schon auch auf die Finger haut, wenn du da

01:03:38.490 --> 01:03:40.790
<v Jochen>irgendwie einfach eine Liste hinschreibst

01:03:40.790 --> 01:03:42.430
<v Jochen>oder so, dann sagt dir das so,

01:03:42.470 --> 01:03:44.310
<v Jochen>nee, das kannst du aber nicht machen, du musst ja irgendwie

01:03:44.310 --> 01:03:45.610
<v Jochen>dann Default

01:03:45.610 --> 01:03:47.670
<v Jochen>wie heißt das Ding?

01:03:48.510 --> 01:03:49.810
<v Jochen>Field? Ja, eine Factory musst du rein.

01:03:49.810 --> 01:03:51.470
<v Jochen>Factory angeben, genau.

01:03:52.630 --> 01:03:53.830
<v Jochen>Aber da kommt es natürlich rum.

01:03:54.430 --> 01:03:56.770
<v Johannes>Es gibt viele Mutable Classes

01:03:56.770 --> 01:03:58.470
<v Johannes>oder viele Dinge, die du da reintun kannst,

01:03:58.590 --> 01:04:00.470
<v Johannes>die eben nicht, das ist nur jetzt für Liste und

01:04:00.470 --> 01:04:02.290
<v Johannes>für Dictionary und für Set ist es

01:04:02.290 --> 01:04:04.370
<v Johannes>Special Cased, weil

01:04:04.370 --> 01:04:05.870
<v Johannes>die so häufig vorkommen.

01:04:06.390 --> 01:04:08.410
<v Jochen>Genau. Ja, also das ist gefährlich, das

01:04:08.410 --> 01:04:09.670
<v Jochen>stimmt. Das ist,

01:04:10.490 --> 01:04:12.310
<v Jochen>ich weiß auch nicht, wie ihr das so macht.

01:04:13.030 --> 01:04:16.450
<v Jochen>normalerweise, also sicher,

01:04:16.890 --> 01:04:18.470
<v Jochen>auch wenn man jetzt Konstrukturen hat von

01:04:18.470 --> 01:04:20.510
<v Jochen>normalen Klassen, da ist es ja auch

01:04:20.510 --> 01:04:21.990
<v Jochen>gefährlich, wenn man da irgendwie

01:04:21.990 --> 01:04:24.410
<v Jochen>zum Beispiel sagt, annotiert, das ist

01:04:24.410 --> 01:04:26.510
<v Jochen>jetzt eine Liste und dann sagt man gleich und dann

01:04:26.510 --> 01:04:28.430
<v Jochen>Ecke, Klammer auf, Klammer zu. Und so

01:04:28.430 --> 01:04:30.470
<v Jochen>viele Leute denken sich wahrscheinlich nichts dabei, wenn sie das tun, aber das

01:04:30.470 --> 01:04:31.930
<v Jochen>ist halt auch schon brutal gefährlich.

01:04:32.290 --> 01:04:34.490
<v Dominik>Also ich mache immer listor none

01:04:34.490 --> 01:04:35.570
<v Dominik>gleich none.

01:04:35.870 --> 01:04:38.270
<v Dominik>Das ist das Pattern, das muss man sich einfach

01:04:38.270 --> 01:04:40.530
<v Johannes>merken. Das ist ein doofes Pattern, aber man muss es sich

01:04:40.530 --> 01:04:42.290
<v Jochen>einfach merken. Aber das ist ja auch

01:04:42.290 --> 01:04:44.450
<v Jochen>nicht so schön, weil einmal

01:04:44.450 --> 01:04:46.210
<v Jochen>ist dann deine Typ-Annotation halt

01:04:46.210 --> 01:04:48.730
<v Jochen>so ein bisschen, also einmal ist sie halt hässlich,

01:04:48.970 --> 01:04:50.530
<v Jochen>würde ich jetzt mal so sagen, mit diesem

01:04:50.530 --> 01:04:52.610
<v Jochen>pipe none, das ist halt

01:04:52.610 --> 01:04:53.230
<v Jochen>schon so, uh.

01:04:53.950 --> 01:04:56.770
<v Dominik>Es gibt doch diesen schönen unknown-typed

01:04:56.770 --> 01:04:58.350
<v Jochen>hin. Der kannst du auch optional nehmen, ist auch hässlich.

01:04:59.750 --> 01:05:00.610
<v Jochen>Unknown gibt es da noch

01:05:00.610 --> 01:05:02.250
<v Jochen>dazu? Ja, aber Anna und

01:05:02.250 --> 01:05:03.930
<v Jochen>U, da ist ja schon, wer kennt denn das?

01:05:03.970 --> 01:05:05.430
<v Jochen>Annie. Ja, U.

01:05:06.550 --> 01:05:08.450
<v Jochen>Oder Annie. Es gab noch

01:05:08.450 --> 01:05:10.210
<v Dominik>einen dritten Type, der da so ein bisschen spezieller war,

01:05:10.290 --> 01:05:12.350
<v Dominik>dass das klar ist, dass das irgendwann in der Liste hängen könnte.

01:05:13.170 --> 01:05:14.310
<v Dominik>Also, was ich an der Stelle mache,

01:05:14.390 --> 01:05:15.690
<v Dominik>also mir gefällt das alles nicht. Also,

01:05:16.230 --> 01:05:18.490
<v Jochen>okay, Leute machen das, aber ich finde auch,

01:05:18.490 --> 01:05:19.950
<v Jochen>es funktioniert nicht richtig. Wenn man jetzt

01:05:19.950 --> 01:05:22.030
<v Jochen>dem statischen Typchecker sagt,

01:05:22.290 --> 01:05:24.490
<v Jochen>das kann jetzt auch None sein, dann hat man damit

01:05:24.490 --> 01:05:26.110
<v Jochen>so einen riesen, dann hat man sich

01:05:26.110 --> 01:05:27.650
<v Jochen>einen riesen Haufen Würmer.

01:05:27.770 --> 01:05:30.370
<v Dominik>Dann sagt er immer, tatsächlich, irgendwann im Kotakt

01:05:30.370 --> 01:05:32.610
<v Dominik>immer, hey, du hast ja nicht auf None geprüft

01:05:32.610 --> 01:05:34.330
<v Dominik>und dann lintet dir das alles, weil du

01:05:34.330 --> 01:05:36.050
<v Dominik>musst vorher mal so ein Assert-as-not-none machen.

01:05:36.150 --> 01:05:38.290
<v Jochen>Oder noch schlimmer, also wenn es dann halt nur

01:05:38.290 --> 01:05:40.410
<v Jochen>nervt, ist ja noch, was noch schlimmer

01:05:40.410 --> 01:05:42.350
<v Jochen>ist, ist halt, dass Bugs dann halt

01:05:42.350 --> 01:05:44.450
<v Jochen>irgendwie unerkannt, dass halt, du kannst

01:05:44.450 --> 01:05:45.010
<v Jochen>plötzlich

01:05:45.010 --> 01:05:48.230
<v Jochen>Illegal-State repräsentieren. Und normalerweise sagt man

01:05:48.230 --> 01:05:50.190
<v Jochen>immer so, also, make

01:05:50.190 --> 01:05:52.290
<v Jochen>Illegal-State unrepresentable. Ja, das

01:05:52.290 --> 01:05:53.870
<v Jochen>sollte gar nicht passieren dürfen. Da sollte der

01:05:53.870 --> 01:05:56.210
<v Jochen>Type-Checker dir sagen, nee, das darf nicht None sein.

01:05:56.710 --> 01:05:58.130
<v Jochen>Und du hast dieses None ja nur

01:05:58.130 --> 01:06:00.190
<v Jochen>benutzt, damit du es initialisieren konntest.

01:06:00.310 --> 01:06:02.530
<v Jochen>Das hat ja gar nicht, wenn in deiner Logik

01:06:02.530 --> 01:06:04.370
<v Jochen>nicht None vorkommen darf,

01:06:04.770 --> 01:06:06.690
<v Jochen>was ja dann oft bei diesen Initialisierungsgeschichten

01:06:06.690 --> 01:06:08.470
<v Jochen>gar nicht so ist, dann darf das

01:06:08.470 --> 01:06:10.430
<v Jochen>da nicht drinstehen. Und wenn

01:06:10.430 --> 01:06:12.470
<v Jochen>du es trotzdem möglich machst, dass es drinsteht,

01:06:12.570 --> 01:06:14.070
<v Jochen>dann machst du halt eine Büchse

01:06:14.070 --> 01:06:16.510
<v Jochen>Backwürmer auf, die dich irgendwann

01:06:16.510 --> 01:06:18.410
<v Jochen>beißen werden. Und die Frage ist halt

01:06:18.410 --> 01:06:18.730
<v Jochen>nur,

01:06:19.750 --> 01:06:21.210
<v Jochen>warum ist das?

01:06:21.910 --> 01:06:24.230
<v Jochen>Oder umgekehrt, du

01:06:24.230 --> 01:06:26.250
<v Johannes>machst es wie in Java,

01:06:26.390 --> 01:06:28.490
<v Johannes>wo jeder Typ optional ist und hast dann auf einmal

01:06:28.490 --> 01:06:30.850
<v Johannes>in jeder Scheiß-Funktion, in die du reingehst,

01:06:30.930 --> 01:06:32.790
<v Johannes>musst du acht Variablen auf Null überprüfen.

01:06:32.950 --> 01:06:34.630
<v Jochen>Ja, das ist natürlich auch, genau, das ist auch hässlich.

01:06:34.950 --> 01:06:35.490
<v Jochen>Genauso schlecht.

01:06:35.830 --> 01:06:38.710
<v Jochen>Also ich würde sagen, aus der Perspektive betrachtet

01:06:38.710 --> 01:06:40.730
<v Jochen>musst du eigentlich sagen, nee, das darf

01:06:40.730 --> 01:06:42.630
<v Jochen>nicht Null sein dürfen und nicht Optional

01:06:42.630 --> 01:06:44.750
<v Jochen>sein dürfen. Die allermeisten Sachen, die man

01:06:44.750 --> 01:06:46.750
<v Jochen>so hat, die sind nicht Optional.

01:06:47.530 --> 01:06:48.870
<v Jochen>Also du würdest sagen, es ist eine leere Liste

01:06:48.870 --> 01:06:50.850
<v Jochen>und wenn da eine leere Liste reinkommt, musst du es

01:06:50.850 --> 01:06:51.650
<v Jochen>neu initialisieren.

01:06:52.290 --> 01:06:54.810
<v Jochen>Ja, das war da auch wieder verwirrend.

01:06:56.970 --> 01:06:58.210
<v Jochen>Das kannst du ja auch nicht gut machen.

01:06:58.490 --> 01:07:00.570
<v Jochen>Ne, was ich an der Stelle mache, ist, ich nehme

01:07:00.570 --> 01:07:02.250
<v Jochen>einen Trick von... Oh, eine Sentinel.

01:07:02.570 --> 01:07:04.310
<v Jochen>Eine Sentinel. Ja, genau. Von

01:07:04.310 --> 01:07:06.750
<v Jochen>Luke Plant, da habe ich das her.

01:07:06.870 --> 01:07:08.630
<v Jochen>Ja. Und zwar

01:07:08.630 --> 01:07:10.890
<v Jochen>definiere ich mir einen Typ namens

01:07:10.890 --> 01:07:12.610
<v Jochen>Auto und

01:07:12.610 --> 01:07:14.610
<v Jochen>der ist definiert

01:07:14.610 --> 01:07:16.050
<v Jochen>über eine Klasse unterstrich Auto

01:07:16.050 --> 01:07:18.410
<v Jochen>und das Ding, es macht

01:07:18.410 --> 01:07:20.530
<v Jochen>nichts, außer, dass es nach

01:07:20.530 --> 01:07:23.870
<v Jochen>Falls evaluiert

01:07:23.870 --> 01:07:25.270
<v Jochen>und

01:07:25.270 --> 01:07:27.410
<v Jochen>in

01:07:27.410 --> 01:07:29.140
<v Jochen>In Kindern dann.

01:07:29.840 --> 01:07:31.320
<v Jochen>Auto, Auto, Auto, Auto, Auto.

01:07:31.780 --> 01:07:32.700
<v Jochen>Und den Typ Any hat.

01:07:33.280 --> 01:07:35.520
<v Jochen>Und dann musst du nicht oder irgendwas sagen,

01:07:35.680 --> 01:07:37.040
<v Jochen>sondern Any geht halt überall durch.

01:07:37.220 --> 01:07:38.440
<v Jochen>Das heißt, wenn du mal eine Auto hinschreibst,

01:07:38.500 --> 01:07:40.460
<v Jochen>dann kann man die Typ-Annotation richtig lassen

01:07:40.460 --> 01:07:42.280
<v Jochen>und Auto geht halt trotzdem durch.

01:07:43.320 --> 01:07:45.860
<v Jochen>Aber Any geht überall durch, das ist doch falsch.

01:07:46.460 --> 01:07:47.820
<v Jochen>Nee, aber das ist so.

01:07:49.360 --> 01:07:50.060
<v Jochen>Aber das ist falsch.

01:07:50.060 --> 01:07:51.260
<v Jochen>Dadurch, dass Auto Any hat,

01:07:52.860 --> 01:07:56.160
<v Jochen>ist es egal, welche Typ-Annotation du vorher dran geschrieben hast,

01:07:56.420 --> 01:07:56.940
<v Jochen>ist es richtig.

01:07:57.020 --> 01:07:58.600
<v Dominik>Das ist übrigens PEP 696, oder?

01:07:59.360 --> 01:08:01.260
<v Jochen>Das weiß ich nicht. Ich kenne die nicht auswendig.

01:08:02.500 --> 01:08:03.540
<v Jochen>Wie, du kennst nicht alle

01:08:03.540 --> 01:08:04.060
<v Jochen>PEPs auswendig?

01:08:05.580 --> 01:08:05.980
<v Jochen>Entschuldigung.

01:08:07.700 --> 01:08:08.860
<v Jochen>Und dann kannst du halt

01:08:08.860 --> 01:08:11.460
<v Jochen>in dem Kurzdruck zum Beispiel dann halt

01:08:11.460 --> 01:08:13.300
<v Jochen>sagen, if das Ding

01:08:13.300 --> 01:08:15.180
<v Jochen>oder if not das Ding,

01:08:15.540 --> 01:08:17.400
<v Jochen>dann machst du, das kannst du ja mit none auch

01:08:17.400 --> 01:08:19.240
<v Jochen>nicht machen, weil none musst du in Cocktailweise immer sagen,

01:08:19.600 --> 01:08:21.600
<v Jochen>if das da ist none,

01:08:21.960 --> 01:08:22.760
<v Jochen>dann setzt es neu.

01:08:24.280 --> 01:08:25.520
<v Jochen>Und ja, also.

01:08:25.860 --> 01:08:27.560
<v Johannes>Ja, okay, aber wie würdest du das mit dem Auto machen?

01:08:27.640 --> 01:08:28.440
<v Johannes>Das habe ich jetzt nicht verstanden.

01:08:29.260 --> 01:08:30.500
<v Johannes>Eine eigene Klasse Auto.

01:08:30.700 --> 01:08:31.420
<v Johannes>Es ist halt Auto.

01:08:33.140 --> 01:08:34.960
<v Jochen>Also das importiere ich dann irgendwo her.

01:08:35.720 --> 01:08:37.220
<v Jochen>Also der Default-Wert ist Auto.

01:08:37.360 --> 01:08:39.240
<v Jochen>Die Annotation ist so, wie sie halt sein soll.

01:08:40.020 --> 01:08:40.600
<v Jochen>Und dann?

01:08:40.600 --> 01:08:45.580
<v Jochen>Und dann sage ich, if not das Ding, dann setze ich es neu.

01:08:46.140 --> 01:08:48.100
<v Johannes>Okay, aber wenn jemand eine leere Liste reingeben würde,

01:08:48.160 --> 01:08:49.160
<v Johannes>würdest du es dann auch neu setzen?

01:08:49.200 --> 01:08:52.000
<v Dominik>Der Unterschied ist tatsächlich nur,

01:08:52.220 --> 01:08:53.180
<v Dominik>dass da halt ein None

01:08:53.180 --> 01:08:55.760
<v Dominik>sparen kann.

01:08:55.760 --> 01:08:58.120
<v Jochen>Aber dann würde ja, wenn das halt nicht

01:08:58.120 --> 01:09:00.240
<v Jochen>okay wäre, dann würde ja der Type-Checker meckern.

01:09:01.160 --> 01:09:01.960
<v Jochen>Also du hast halt nicht

01:09:01.960 --> 01:09:03.660
<v Dominik>dieses If-Ding, das ist None.

01:09:03.760 --> 01:09:05.820
<v Johannes>Du hast einen semantischen Unterschied

01:09:05.820 --> 01:09:07.080
<v Johannes>eingeführt.

01:09:08.220 --> 01:09:09.620
<v Johannes>Schreibst halt nicht If-Not-Fu,

01:09:10.460 --> 01:09:11.960
<v Dominik>also du schreibst If-Not-Fu,

01:09:12.340 --> 01:09:13.440
<v Dominik>dann Foo neu setzen,

01:09:13.640 --> 01:09:15.360
<v Dominik>weil das halt Auto ist immer fault,

01:09:15.720 --> 01:09:17.740
<v Dominik>sagst nicht Foo ist None, weil dann sparst du halt

01:09:17.740 --> 01:09:19.720
<v Dominik>einfach das None, sondern... Genau, ich spare mir das None

01:09:19.720 --> 01:09:21.940
<v Jochen>und ich spare mir die Is-Geschichte

01:09:21.940 --> 01:09:24.160
<v Jochen>und ich mache es halt so, wie es

01:09:24.160 --> 01:09:25.540
<v Jochen>Leute miteinander machen. Wobei die X-Geschichte,

01:09:26.400 --> 01:09:27.460
<v Jochen>du könntest ja immer noch

01:09:27.460 --> 01:09:29.940
<v Jochen>X-Is-Auto machen. Das könnte ich auch machen, ja.

01:09:30.060 --> 01:09:31.980
<v Johannes>Ich würde tatsächlich sogar sagen, du musst

01:09:31.980 --> 01:09:32.840
<v Johannes>das machen, weil

01:09:32.840 --> 01:09:35.700
<v Johannes>nehmen wir mal an, ich rufe diese

01:09:35.700 --> 01:09:37.720
<v Johannes>Funktion, die du mir gerade eben gesagt hast,

01:09:37.800 --> 01:09:39.700
<v Johannes>oder diesen Konstruktor, rufe ich auf mit

01:09:39.700 --> 01:09:41.420
<v Johannes>dem Parameter

01:09:41.420 --> 01:09:43.940
<v Johannes>und der Parameter ist eine leere Liste.

01:09:45.140 --> 01:09:46.040
<v Johannes>Und ich behalte

01:09:46.040 --> 01:09:47.920
<v Johannes>die aber außen vor und benutze die an einer anderen Stelle

01:09:47.920 --> 01:09:49.920
<v Johannes>nochmal. Das heißt, ich pende da Sachen rein

01:09:49.920 --> 01:09:52.500
<v Johannes>Das hast du jetzt genau den Use Case,

01:09:52.640 --> 01:09:54.520
<v Johannes>den Python so gefährlich macht,

01:09:54.580 --> 01:09:55.700
<v Johannes>den hast du jetzt kaputt gemacht.

01:09:57.280 --> 01:09:58.760
<v Johannes>Und jetzt überlassen wir jetzt,

01:09:58.820 --> 01:10:00.020
<v Johannes>wir starten jetzt eine Umfrage.

01:10:00.300 --> 01:10:02.780
<v Johannes>Schreiben Sie uns an hallo.python-podcast.de,

01:10:03.220 --> 01:10:04.660
<v Johannes>ob das gut oder schlecht ist.

01:10:04.820 --> 01:10:05.080
<v Johannes>Schlecht?

01:10:06.640 --> 01:10:07.720
<v Johannes>Ja, genau.

01:10:07.720 --> 01:10:09.800
<v Jochen>Also ich bin auch noch nicht endgültig zufrieden.

01:10:09.900 --> 01:10:11.900
<v Jochen>Ich halte mich zurück, damit die Hörer was sagen können.

01:10:12.480 --> 01:10:14.580
<v Jochen>Aber ich mache es halt jetzt gerade so.

01:10:14.880 --> 01:10:16.320
<v Jochen>Ich leide dann auch mal ein bisschen darunter,

01:10:16.540 --> 01:10:18.840
<v Jochen>dass zum Beispiel LLMs, die halt das gewohnt sind,

01:10:18.900 --> 01:10:20.900
<v Jochen>dass Leute da Nan oder Nan schreiben.

01:10:21.260 --> 01:10:22.540
<v Jochen>Denn die sind immer total verwirrt.

01:10:22.640 --> 01:10:23.660
<v Jochen>So, was will der denn da jetzt?

01:10:23.720 --> 01:10:24.420
<v Jochen>Und dann sagt er mir schon wieder,

01:10:24.480 --> 01:10:25.420
<v Jochen>ich soll dieses Auto verwenden.

01:10:26.020 --> 01:10:26.300
<v Jochen>Hä?

01:10:26.620 --> 01:10:28.040
<v Jochen>Ich verstehe nur Bahnhof.

01:10:28.280 --> 01:10:28.980
<v Jochen>Hast du deine Instruktionen nicht im Griff?

01:10:28.980 --> 01:10:30.640
<v Jochen>Machen sie irgendwie komische Sachen.

01:10:31.000 --> 01:10:31.860
<v Jochen>Und ja, ja, gut.

01:10:31.900 --> 01:10:32.560
<v Jochen>Ich schreibe das dann auch immer

01:10:32.560 --> 01:10:34.680
<v Jochen>in die entsprechenden Rules mit rein.

01:10:34.800 --> 01:10:36.180
<v Jochen>Aber es hilft ja auch nur so begrenzt.

01:10:37.080 --> 01:10:37.800
<v Jochen>Es ist ein Kreuz.

01:10:37.860 --> 01:10:38.240
<v Jochen>Ich weiß auch nicht.

01:10:38.360 --> 01:10:40.500
<v Johannes>Der Code ist einfach zu wenig standardkonform.

01:10:40.500 --> 01:10:41.840
<v Johannes>Der ist zu wenig gewöhnlich.

01:10:42.360 --> 01:10:43.300
<v Johannes>Kann man den ja noch lesen?

01:10:43.540 --> 01:10:44.340
<v Johannes>Wenn er über ein Auto steht,

01:10:44.400 --> 01:10:45.320
<v Johannes>weiß ja jeder, was gemeint ist.

01:10:45.740 --> 01:10:48.060
<v Jochen>Nee, das wissen Leute dann halt dummerweise auch nicht,

01:10:48.120 --> 01:10:49.220
<v Jochen>das wäre auch schon passiert.

01:10:49.360 --> 01:10:50.700
<v Jochen>Wenn er das in NLM schaut, ich weiß.

01:10:50.700 --> 01:10:52.160
<v Jochen>Ja, genau.

01:10:52.280 --> 01:10:53.800
<v Jochen>Kontrollklick drauf.

01:10:55.760 --> 01:10:56.660
<v Jochen>Okay, aber

01:10:56.660 --> 01:10:58.940
<v Johannes>das Kapitel macht ja jetzt noch eine zweite

01:10:58.940 --> 01:11:00.560
<v Johannes>Abbiegung, der Dominik hat es ja schon erwähnt.

01:11:01.540 --> 01:11:03.020
<v Johannes>Und zwar Richtung Pattern Matching

01:11:03.020 --> 01:11:03.880
<v Johannes>Class Instances.

01:11:04.360 --> 01:11:06.440
<v Johannes>Auf einmal kommt hier in dem Kapitel noch

01:11:06.440 --> 01:11:08.340
<v Johannes>Pattern Matching. Hooray.

01:11:09.540 --> 01:11:09.880
<v Johannes>Was?

01:11:10.560 --> 01:11:11.020
<v Johannes>Ist doch schön.

01:11:12.180 --> 01:11:13.740
<v Johannes>Zweiter Twist in the end.

01:11:14.520 --> 01:11:14.680
<v Johannes>Ja.

01:11:16.300 --> 01:11:16.980
<v Johannes>Da war ich ja

01:11:18.120 --> 01:11:19.820
<v Johannes>überhaupt gar nicht drauf vorbereitet.

01:11:20.300 --> 01:11:22.360
<v Johannes>Dominik, warum magst du Pattern-Matching? Erklär mal.

01:11:22.900 --> 01:11:24.700
<v Dominik>Weil ich damit relativ

01:11:24.700 --> 01:11:25.920
<v Dominik>verschiedene,

01:11:26.120 --> 01:11:28.500
<v Dominik>das ist erst blöd, weil das mag man eigentlich

01:11:28.500 --> 01:11:30.480
<v Dominik>nicht. Also ich kann verschiedene Objekte entgegennehmen

01:11:30.480 --> 01:11:32.260
<v Dominik>und die checken und dann gucken.

01:11:32.280 --> 01:11:33.820
<v Dominik>Und wie geht das? Erklär mal, wie das geht.

01:11:34.300 --> 01:11:35.940
<v Dominik>Du machst ein Match und ein Case auf,

01:11:36.740 --> 01:11:38.280
<v Dominik>matchst dann deine Variable, die du hast

01:11:38.280 --> 01:11:40.460
<v Dominik>und gibst dann verschiedene Cases. Also da hättest du gerne

01:11:40.460 --> 01:11:42.040
<v Dominik>irgendwas ist

01:11:42.040 --> 01:11:44.440
<v Dominik>schwieriges Beispiel,

01:11:44.940 --> 01:11:45.500
<v Dominik>so eine Koordinate.

01:11:46.200 --> 01:11:48.220
<v Dominik>Dann gibst du rein, dass das eine Koordinate sein könnte

01:11:48.220 --> 01:11:50.280
<v Dominik>und dann hat der tatsächlich den Pfad,

01:11:50.360 --> 01:11:52.040
<v Dominik>okay, hier ist eine Koordinate. Und wenn du danach

01:11:52.040 --> 01:11:54.400
<v Dominik>zum Beispiel sagst, es ist eine Straßenadresse,

01:11:55.360 --> 01:11:56.300
<v Dominik>dann guckt der,

01:11:56.400 --> 01:11:58.040
<v Dominik>okay, hier ist eine Straßenadresse, passt da rein und geht weiter.

01:11:58.160 --> 01:12:00.000
<v Dominik>Und du kannst da bestimmte Attribute

01:12:00.000 --> 01:12:02.060
<v Dominik>omitten, indem du die einfach auf dann

01:12:02.060 --> 01:12:04.060
<v Dominik>setzt, falls das verständlich

01:12:04.060 --> 01:12:06.160
<v Dominik>ausgerückt ist. Und kannst

01:12:06.160 --> 01:12:07.920
<v Dominik>damit relativ schön Cases abfangen und

01:12:07.920 --> 01:12:10.240
<v Dominik>hast dann irgendwann einen Standardcase. Also so ein bisschen

01:12:10.240 --> 01:12:11.120
<v Dominik>so if, then,

01:12:11.780 --> 01:12:14.440
<v Dominik>if, elif, elif, elif,

01:12:14.500 --> 01:12:16.180
<v Dominik>in, gut lesbar finde ich.

01:12:16.200 --> 01:12:17.240
<v Dominik>Also ich mag das sehr gerne.

01:12:18.680 --> 01:12:20.080
<v Dominik>Du kannst auch Types machen

01:12:20.080 --> 01:12:21.960
<v Dominik>und kannst Guards machen

01:12:21.960 --> 01:12:24.140
<v Dominik>und sowas. Ja, man kann ja sehr viele

01:12:24.140 --> 01:12:26.040
<v Johannes>Sachen machen. Ich glaube, das verdient

01:12:26.040 --> 01:12:28.220
<v Johannes>fast eine eigene Episode. Da muss man eine eigene Episode

01:12:28.220 --> 01:12:29.940
<v Jochen>zu machen, haben wir noch nicht gemacht, haben wir auch schon häufiger

01:12:29.940 --> 01:12:32.020
<v Jochen>geplant, aber ja, genau, das müssen wir mal machen.

01:12:32.280 --> 01:12:33.880
<v Jochen>Man kann auch da, ich finde, ja,

01:12:34.080 --> 01:12:36.120
<v Jochen>es ist super mächtig. Ich brauche es ehrlich gesagt

01:12:36.120 --> 01:12:37.680
<v Jochen>nicht so oft. Ja, das ist

01:12:37.680 --> 01:12:39.800
<v Jochen>ich bin ein großer Fan davon.

01:12:39.960 --> 01:12:42.120
<v Johannes>Ich finde es großartig, das ist eines der besten

01:12:42.120 --> 01:12:44.200
<v Johannes>Language Features, was es gibt, aber ich habe es noch nie verwendet.

01:12:46.200 --> 01:12:47.320
<v Johannes>Das ist ganz komisch.

01:12:48.520 --> 01:12:49.300
<v Johannes>Also ich meine,

01:12:49.780 --> 01:12:51.500
<v Jochen>ich glaube, das ist halt auch für Leute,

01:12:51.620 --> 01:12:53.640
<v Jochen>die jetzt oft Parser für irgendwelche

01:12:53.640 --> 01:12:54.920
<v Jochen>Sachen schreiben oder so,

01:12:56.060 --> 01:12:57.860
<v Jochen>oder halt so Domain-Specific

01:12:57.860 --> 01:12:59.000
<v Jochen>Languages für irgendwas haben,

01:12:59.120 --> 01:13:01.180
<v Jochen>die brauchen das wahrscheinlich oft.

01:13:02.080 --> 01:13:03.080
<v Jochen>Aber das mache ich halt nicht so oft.

01:13:04.340 --> 01:13:04.980
<v Jochen>Also ich, also

01:13:04.980 --> 01:13:07.320
<v Johannes>das erste Mal habe ich Pattern Matching gesehen,

01:13:08.080 --> 01:13:09.780
<v Johannes>da war ich noch ein junger Mann

01:13:09.780 --> 01:13:11.720
<v Johannes>damals und das war

01:13:11.720 --> 01:13:13.620
<v Johannes>ein Erlang. Ah, ja, ja, ja, gut.

01:13:14.240 --> 01:13:15.760
<v Johannes>Und da ist es ja

01:13:15.760 --> 01:13:17.540
<v Johannes>ein Core-Language-Feature, ja, da ist es ja so

01:13:17.540 --> 01:13:19.600
<v Johannes>ein, ja, hier, da hast du eine Funktion und

01:13:19.600 --> 01:13:21.680
<v Johannes>natürlich, das Erste, was die Funktion macht, ist

01:13:21.680 --> 01:13:22.700
<v Johannes>immer erst mal Pattern-Matching.

01:13:25.120 --> 01:13:25.880
<v Johannes>Und die benutzen

01:13:25.880 --> 01:13:27.540
<v Johannes>das für alles, ja, wenn du hier ein None reinkriegst,

01:13:27.600 --> 01:13:29.700
<v Johannes>ja, klar, dann geht die Funktion, wenn das Pattern

01:13:29.700 --> 01:13:31.420
<v Johannes>hier ein None ist, dann musst du erst mal hier diesen, das

01:13:31.420 --> 01:13:31.780
<v Johannes>jedes Mal.

01:13:33.540 --> 01:13:35.620
<v Johannes>Und da ist es ja nicht, da geht es nicht so sehr um Parse,

01:13:35.700 --> 01:13:37.540
<v Johannes>sondern da geht es ja schon irgendwie auch

01:13:37.540 --> 01:13:39.580
<v Johannes>um Schnittstellen und um Datenaustausch und

01:13:39.580 --> 01:13:41.560
<v Johannes>ich habe in meinem Kopf

01:13:41.560 --> 01:13:43.520
<v Johannes>schon immer den Gedanken, dass

01:13:43.520 --> 01:13:45.500
<v Johannes>man, wenn ich eine Schnittstelle schreibe,

01:13:45.760 --> 01:13:47.260
<v Johannes>dass ich da irgendwie so ein

01:13:47.260 --> 01:13:49.260
<v Johannes>Pattern-Matching reinmachen könnte.

01:13:50.060 --> 01:13:51.380
<v Johannes>Aber irgendwie hat es noch nie so

01:13:51.380 --> 01:13:52.700
<v Johannes>richtig gut gepasst.

01:13:54.740 --> 01:13:54.940
<v Johannes>Ja.

01:13:55.380 --> 01:13:57.440
<v Jochen>Weiß auch nicht. Ich weiß auch nicht.

01:13:58.200 --> 01:13:59.380
<v Jochen>Kann man verschiedene Exception-Types

01:13:59.380 --> 01:14:01.020
<v Jochen>gucken oder...

01:14:01.020 --> 01:14:02.780
<v Johannes>Ja, aber die fange ich doch in den

01:14:02.780 --> 01:14:05.120
<v Johannes>Accept-Blocks schon ab, die verschiedenen

01:14:05.120 --> 01:14:07.360
<v Johannes>Exception-Types. Da gibt es doch schon Syntax für.

01:14:07.560 --> 01:14:09.720
<v Johannes>Und für die verschiedenen Instanz-Typen

01:14:09.720 --> 01:14:11.460
<v Johannes>muss ich eher irgendwie

01:14:11.460 --> 01:14:12.960
<v Johannes>in Funktionen reinverzweigen.

01:14:12.960 --> 01:14:14.380
<v Johannes>Und ich weiß irgendwie,

01:14:14.780 --> 01:14:17.360
<v Johannes>ich würde es gerne mehr benutzen. Ich weiß nicht, ob das

01:14:17.360 --> 01:14:19.500
<v Johannes>ein Problem an mir ist oder

01:14:19.500 --> 01:14:21.820
<v Johannes>ob das ein Problem an...

01:14:21.820 --> 01:14:23.620
<v Jochen>Also ein Problem war

01:14:23.620 --> 01:14:25.400
<v Jochen>eine ganze Zeit lang auch, also

01:14:25.400 --> 01:14:27.200
<v Jochen>jedenfalls als das Feature total frisch war, für mich

01:14:27.200 --> 01:14:29.320
<v Jochen>jedenfalls auch, dass ich mir gesagt habe, ah, ich muss

01:14:29.320 --> 01:14:31.440
<v Jochen>ein bisschen vorsichtig sein, dass ich das jetzt nicht

01:14:31.440 --> 01:14:33.480
<v Jochen>irgendwie mich zu sehr darauf verlasse, dass es das gibt,

01:14:33.860 --> 01:14:35.460
<v Jochen>weil es ist ja noch ganz neu und

01:14:35.460 --> 01:14:36.960
<v Jochen>viele verwenden halt noch ältere Python-Versionen.

01:14:36.980 --> 01:14:37.960
<v Jochen>Und vermutlich super langsam.

01:14:38.920 --> 01:14:40.460
<v Jochen>Ja, genau, aber

01:14:40.460 --> 01:14:43.120
<v Jochen>das ist ja jetzt inzwischen, ist ja

01:14:43.120 --> 01:14:45.040
<v Jochen>so 3.10 ist ja jetzt schon die

01:14:45.040 --> 01:14:47.140
<v Jochen>älteste Version, die man so, mit der man normalerweise

01:14:47.140 --> 01:14:47.760
<v Jochen>so zu tun hat.

01:14:48.400 --> 01:14:50.720
<v Johannes>Nee, 3.10, also

01:14:50.720 --> 01:14:53.120
<v Johannes>3.10 meinst du nicht? Ja, genau, und in 3.10 ist es

01:14:53.120 --> 01:14:54.740
<v Jochen>genau, nicht 3.10, meinte ich nicht, nee,

01:14:54.780 --> 01:14:57.220
<v Jochen>3.10, genau. Ja, 3.10, ja, das ist,

01:14:57.220 --> 01:14:59.140
<v Jochen>würde ich sagen, ja. Und da ist es ja

01:14:59.140 --> 01:15:01.100
<v Jochen>dazugekommen, also insofern würde ich sozusagen, jetzt ist

01:15:01.100 --> 01:15:02.820
<v Jochen>sicher, dass man es eigentlich immer verwenden kann,

01:15:03.100 --> 01:15:04.040
<v Jochen>insofern, ja,

01:15:05.000 --> 01:15:07.220
<v Jochen>muss man mal gucken, ob es da nicht doch mehr Use Cases gibt, als man

01:15:07.220 --> 01:15:08.580
<v Jochen>so denkt, aber es ist auch, auch

01:15:08.580 --> 01:15:10.980
<v Jochen>fiese Syntax, also ich habe mir dazu auch schon ein paar

01:15:10.980 --> 01:15:13.280
<v Jochen>Vortrag angeschaut und man kann sich

01:15:13.280 --> 01:15:15.080
<v Jochen>auch da wieder leicht in den Fuß schießen.

01:15:15.140 --> 01:15:17.100
<v Dominik>Ja, was nicht so ganz so interessant ist, ist, dass wenn man so die

01:15:17.100 --> 01:15:19.200
<v Dominik>Bild in Typen nimmt, also man sagt

01:15:19.200 --> 01:15:21.020
<v Dominik>irgendwie Match Unknown und dann machst du

01:15:21.020 --> 01:15:23.040
<v Dominik>eine Case List oder

01:15:23.040 --> 01:15:25.120
<v Dominik>Tupel und wenn man die dann

01:15:25.120 --> 01:15:27.140
<v Dominik>nicht instanziiert mit den Klammern,

01:15:27.400 --> 01:15:29.080
<v Dominik>dann ist es Kacke, weil es always

01:15:29.080 --> 01:15:31.000
<v Dominik>true ist, weil der auch die Funktion

01:15:31.000 --> 01:15:33.160
<v Dominik>guckt und nicht guckt, ob es eine List oder ein Tupel ist.

01:15:33.740 --> 01:15:34.020
<v Dominik>Genau.

01:15:35.220 --> 01:15:36.780
<v Dominik>Dann kann man sich auch mit den Fuß schießen.

01:15:37.440 --> 01:15:39.440
<v Jochen>Ja, und das ist der Default

01:15:39.440 --> 01:15:41.220
<v Jochen>Fall auch immer irgendwie,

01:15:41.400 --> 01:15:43.320
<v Jochen>wenn nichts anderes gefunden wird, ist es auch irgendwie etwas,

01:15:43.420 --> 01:15:45.280
<v Jochen>was halt in anderen Sprachen anders ist.

01:15:45.560 --> 01:15:47.160
<v Jochen>Und es gibt ja schon so ein paar

01:15:47.160 --> 01:15:47.720
<v Jochen>Falschstricke.

01:15:49.140 --> 01:15:51.220
<v Jochen>Naja. Und dass man den

01:15:51.220 --> 01:15:52.820
<v Jochen>am besten immer handeln sollte, genau.

01:15:53.500 --> 01:15:55.280
<v Jochen>In Python. Ja, aber das ist

01:15:55.280 --> 01:15:56.880
<v Jochen>doch auch nervig. Ja gut, aber

01:15:56.880 --> 01:15:59.200
<v Dominik>das ist ja klassische Programmierung, dass man immer

01:15:59.200 --> 01:16:01.280
<v Dominik>das else für alles, was man

01:16:01.280 --> 01:16:02.280
<v Dominik>nicht erwartet, schreibt.

01:16:03.280 --> 01:16:05.480
<v Johannes>Wenn man das else weglassen kann,

01:16:05.540 --> 01:16:06.240
<v Johannes>dann lässt man es weg.

01:16:07.280 --> 01:16:07.720
<v Johannes>Tja.

01:16:08.680 --> 01:16:10.760
<v Johannes>Je mehr man weglassen kann, umso mehr

01:16:10.760 --> 01:16:12.080
<v Johannes>kann man weglassen. Das ist doch viel besser.

01:16:13.720 --> 01:16:14.240
<v Johannes>Eigentlich schon.

01:16:16.560 --> 01:16:18.620
<v Johannes>Ja, und dann ist das Kapitel auch schon vorbei.

01:16:18.760 --> 01:16:20.140
<v Johannes>Dann kommt nur noch hier so ein bisschen...

01:16:20.140 --> 01:16:22.240
<v Dominik>Also Else makes the universe explode.

01:16:24.540 --> 01:16:26.560
<v Dominik>Also immer, wenn der Else-Case einschickt, dann alles abreißen.

01:16:26.720 --> 01:16:27.160
<v Dominik>Alles vernichten.

01:16:29.700 --> 01:16:30.300
<v Dominik>Ist das

01:16:30.300 --> 01:16:31.500
<v Dominik>Quantum-Sort, ja?

01:16:33.120 --> 01:16:35.280
<v Johannes>Kennt ihr den Quantum-Sort-Algorithmus?

01:16:35.280 --> 01:16:37.280
<v Johannes>Der ist ein O-von-1-Sortier-Algorithmus.

01:16:38.680 --> 01:16:40.120
<v Johannes>du machst

01:16:40.120 --> 01:16:41.900
<v Johannes>eine zufällige Permutation

01:16:41.900 --> 01:16:43.660
<v Johannes>von deinem Input

01:16:43.660 --> 01:16:45.540
<v Johannes>und guckst, ob sie sortiert ist.

01:16:45.660 --> 01:16:47.640
<v Johannes>Und wenn sie nicht sortiert ist, zerstörst du das Universum.

01:16:49.000 --> 01:16:49.160
<v Johannes>Ja.

01:16:49.700 --> 01:16:51.880
<v Johannes>Und das in dem Universum,

01:16:52.000 --> 01:16:52.900
<v Johannes>in dem sortiert ist,

01:16:53.260 --> 01:16:55.300
<v Johannes>da überlebst du immer.

01:16:58.720 --> 01:16:59.980
<v Johannes>Schneller geht nicht mehr.

01:17:00.840 --> 01:17:01.280
<v Johannes>Also

01:17:01.280 --> 01:17:03.660
<v Johannes>dieses Kapitel macht mehrere interessante

01:17:03.660 --> 01:17:05.000
<v Johannes>Wendungen und

01:17:05.000 --> 01:17:06.600
<v Johannes>es schneidet einige

01:17:06.600 --> 01:17:08.940
<v Johannes>Sachen an, die

01:17:08.940 --> 01:17:11.460
<v Johannes>interessant sind, die aber so ein bisschen

01:17:11.460 --> 01:17:13.500
<v Johannes>über Data Classes

01:17:13.500 --> 01:17:14.380
<v Johannes>hinausgehen.

01:17:15.580 --> 01:17:17.600
<v Johannes>Ich muss ja sagen...

01:17:17.600 --> 01:17:19.560
<v Dominik>Macht ihr denn lieber einen Data Class oder lieber einen M2P?

01:17:20.380 --> 01:17:21.220
<v Dominik>Lieber Data Class.

01:17:21.260 --> 01:17:23.120
<v Jochen>Ja, ich auch. Lieber Data Class.

01:17:23.180 --> 01:17:24.780
<v Jochen>Ich weiß jetzt gar nicht so genau, warum.

01:17:26.200 --> 01:17:26.920
<v Jochen>Ja, weil das

01:17:26.920 --> 01:17:28.480
<v Johannes>gutes Marketing hat.

01:17:31.840 --> 01:17:33.820
<v Johannes>Man steht auch hier im

01:17:33.820 --> 01:17:35.540
<v Johannes>Abschnitt Further Reading. Da sind natürlich

01:17:35.540 --> 01:17:36.660
<v Johannes>viele Verweise dann drin.

01:17:37.540 --> 01:17:39.460
<v Johannes>Und da steht auch drin hier, bei der

01:17:39.460 --> 01:17:41.420
<v Johannes>PyCon US 2018, da gibt es einen

01:17:41.420 --> 01:17:42.680
<v Johannes>Talk von Raymond Hettinger,

01:17:43.620 --> 01:17:45.700
<v Johannes>den auch wir alle schon gesehen haben.

01:17:46.060 --> 01:17:47.460
<v Johannes>Und ich gehe davon aus, dass die Hörer

01:17:47.460 --> 01:17:49.200
<v Johannes>den auch alle gesehen haben. Der heißt Data Classes,

01:17:49.240 --> 01:17:51.200
<v Johannes>the Code Generator to End All Code Generators.

01:17:52.140 --> 01:17:53.340
<v Johannes>Und das hört sich ja schon

01:17:53.340 --> 01:17:55.520
<v Johannes>sehr hochtrabend an. Und ich muss

01:17:55.520 --> 01:17:57.640
<v Johannes>sagen, ich habe mir den Talk angeguckt

01:17:57.640 --> 01:17:59.420
<v Johannes>und ich habe danach Data Classes verwendet und

01:17:59.420 --> 01:18:01.200
<v Johannes>das war gar nicht so beeindruckend.

01:18:02.600 --> 01:18:03.040
<v Johannes>Ja.

01:18:03.740 --> 01:18:05.260
<v Johannes>Es ist irgendwie gar nicht so

01:18:05.260 --> 01:18:07.220
<v Johannes>viel, was einem das macht, was

01:18:07.220 --> 01:18:07.800
<v Johannes>einem das gibt.

01:18:09.260 --> 01:18:11.060
<v Dominik>Deswegen auch Dreck neben Tupel, ist ein Tupel.

01:18:11.920 --> 01:18:13.300
<v Dominik>Ja, man darf da gar nicht

01:18:13.300 --> 01:18:13.800
<v Dominik>so viel

01:18:13.800 --> 01:18:16.980
<v Johannes>drauf geben. Da werden viele Worte

01:18:16.980 --> 01:18:19.180
<v Johannes>darüber gesagt und es wird viel

01:18:19.180 --> 01:18:20.980
<v Johannes>darüber gesprochen, aber es ist eigentlich was

01:18:20.980 --> 01:18:22.440
<v Johannes>total Simples und was total

01:18:22.440 --> 01:18:24.880
<v Johannes>Kleines und Nettes und Einfaches und das

01:18:24.880 --> 01:18:25.520
<v Johannes>ja.

01:18:25.520 --> 01:18:27.580
<v Jochen>Ja, also es

01:18:27.580 --> 01:18:29.580
<v Jochen>gibt halt so Anwendungsfälle, da verwende ich es halt sehr gerne

01:18:29.580 --> 01:18:31.100
<v Jochen>für. Also zum Beispiel eben in so

01:18:31.100 --> 01:18:33.440
<v Jochen>für, also wenn man jetzt halt so

01:18:33.440 --> 01:18:35.720
<v Jochen>Event-Driven-Architecture hat dann

01:18:35.720 --> 01:18:37.360
<v Jochen>für die Events und Commands, da

01:18:37.360 --> 01:18:38.880
<v Jochen>sind Data-Classes halt super.

01:18:40.180 --> 01:18:41.220
<v Jochen>Genau, für

01:18:41.220 --> 01:18:43.740
<v Jochen>alle Arten von Value-Objects, wo man halt

01:18:43.740 --> 01:18:45.880
<v Jochen>nichts drauf gibt, was

01:18:45.880 --> 01:18:47.960
<v Jochen>das denn konkret für ein Objekt ist, wo einem nur der Wert

01:18:47.960 --> 01:18:49.900
<v Jochen>von irgendwelchen Dingen interessiert, da ist

01:18:49.900 --> 01:18:52.000
<v Jochen>das total super. Und für alles

01:18:52.000 --> 01:18:53.560
<v Jochen>andere nehme ich normale Klassen. Also

01:18:53.560 --> 01:18:56.240
<v Jochen>genau, das ist so mein Daumenregel

01:18:56.240 --> 01:18:58.040
<v Jochen>für diesen Kram.

01:18:58.240 --> 01:18:59.940
<v Jochen>Und ja, ich glaube, in allen Fällen, wo ich

01:18:59.940 --> 01:19:01.760
<v Jochen>Data-Classes verwende, könnte ich wahrscheinlich auch einen Topfel

01:19:01.760 --> 01:19:02.560
<v Jochen>verwenden, aber

01:19:02.560 --> 01:19:04.880
<v Jochen>Ja, aber es ist schon

01:19:04.880 --> 01:19:06.720
<v Johannes>bequemer, dass man die Namen schreiben kann.

01:19:06.860 --> 01:19:08.680
<v Johannes>Das ist schon cool.

01:19:09.260 --> 01:19:10.240
<v Johannes>Das kannst du bei NameTupel auch.

01:19:10.900 --> 01:19:12.900
<v Johannes>Ja, genau. Aber dann kannst du nicht ein normales

01:19:12.900 --> 01:19:14.700
<v Dominik>Tupel nehmen. Nee, nee, aber NameTupel ist

01:19:14.700 --> 01:19:16.620
<v Dominik>doch schon... Also ich benutze fast

01:19:16.620 --> 01:19:18.800
<v Dominik>kein... Ich würde, glaube ich, fast nie

01:19:18.800 --> 01:19:19.580
<v Dominik>ein normales Tupel nehmen.

01:19:20.700 --> 01:19:22.900
<v Dominik>Sondern statt einem normalen Tupel immer ein NameTupel,

01:19:23.000 --> 01:19:24.700
<v Dominik>weil ich gerne die Namen verwende und ich mag

01:19:24.700 --> 01:19:26.500
<v Dominik>Indizes nicht so. Ja.

01:19:27.420 --> 01:19:28.820
<v Dominik>Ja, okay. Ich verwende

01:19:28.820 --> 01:19:29.520
<v Dominik>Tupel sehr häufig.

01:19:30.960 --> 01:19:33.400
<v Dominik>Ja, ich würde so implizit...

01:19:33.400 --> 01:19:35.180
<v Jochen>Genau, beim Zurückgeben von irgendwelchen

01:19:35.180 --> 01:19:36.900
<v Jochen>Sachen ist es halt ja automatisch so.

01:19:36.900 --> 01:19:39.020
<v Johannes>Aber da benutzt du ja auch den Index nicht, da benutzt du ja Unpacking

01:19:39.020 --> 01:19:41.120
<v Johannes>und dann ist ja schon diese Tupel, ist dieses Tupel

01:19:41.120 --> 01:19:42.660
<v Jochen>so ein bisschen... Da willst du ja dann nicht

01:19:42.660 --> 01:19:44.900
<v Jochen>ein Name-Tupel verwenden, ja. Ja doch, also warum nicht?

01:19:44.980 --> 01:19:46.560
<v Dominik>Als Return-Wert ein Name-Tupel, dann hast du schon

01:19:46.560 --> 01:19:48.660
<v Dominik>Type-Annotation und kannst danach auf die Attribute des Dings

01:19:48.660 --> 01:19:50.260
<v Dominik>wieder zugreifen. Ach, viel zu viel Arbeit.

01:19:50.620 --> 01:19:51.580
<v Dominik>Viel zu viel Arbeit.

01:19:52.460 --> 01:19:54.020
<v Johannes>Einfach zwei Werte zurückgeben, zack.

01:19:55.820 --> 01:19:56.820
<v Johannes>Zack, zack, dies und jenes.

01:19:58.140 --> 01:19:58.820
<v Johannes>Dies und jenes wird

01:19:58.820 --> 01:20:00.580
<v Dominik>vielleicht auch das und dafür wird ein Match-Case wieder gut.

01:20:00.960 --> 01:20:02.940
<v Dominik>Ja, sorry.

01:20:03.960 --> 01:20:05.300
<v Dominik>Ja. Ich glaube, wir haben das

01:20:05.300 --> 01:20:06.900
<v Johannes>Kapitel besprochen, oder? Wir müssen mal Beispiele sehen.

01:20:07.120 --> 01:20:09.000
<v Dominik>Wollt ihr noch was erzählen? Also,

01:20:09.340 --> 01:20:11.180
<v Jochen>genau, was wir noch tun könnten, ist irgendwie,

01:20:11.280 --> 01:20:13.280
<v Jochen>wir machen noch Picks und

01:20:13.280 --> 01:20:15.240
<v Jochen>ich weiß nicht, ob irgendjemand anders anfangen

01:20:15.240 --> 01:20:17.200
<v Jochen>möchte? Ja, ja, mach doch mal.

01:20:17.320 --> 01:20:19.160
<v Jochen>Völlig? Ja. Okay, also. Das ist doch was Gutes.

01:20:19.460 --> 01:20:21.340
<v Jochen>Ja, also was ich gerne picken würde

01:20:21.340 --> 01:20:23.200
<v Jochen>und ja, ich weiß nicht, ob die

01:20:23.200 --> 01:20:25.240
<v Jochen>so viele Hater haben wir gar nicht, aber

01:20:25.240 --> 01:20:27.340
<v Jochen>das wäre ein guter Hook für

01:20:27.340 --> 01:20:28.820
<v Jochen>die Hater. Wir hätten erst einmal einen.

01:20:29.080 --> 01:20:30.320
<v Jochen>Ja. Wenn ich mich aktiv verändere.

01:20:30.960 --> 01:20:32.640
<v Jochen>Und zwar, was mir

01:20:32.640 --> 01:20:34.300
<v Jochen>momentan tatsächlich... Nachts um halb drei mit dem

01:20:34.300 --> 01:20:35.880
<v Dominik>Tunnel, da war ich auch schon vor.

01:20:36.200 --> 01:20:38.260
<v Jochen>Ja, aber was mir tatsächlich

01:20:38.260 --> 01:20:39.780
<v Jochen>momentan richtig viel Spaß macht, ist

01:20:39.780 --> 01:20:41.980
<v Jochen>ein Tool von Anthropic.

01:20:42.240 --> 01:20:43.800
<v Jochen>Und zwar heißt das

01:20:43.800 --> 01:20:45.820
<v Jochen>Claude Coote. Und

01:20:45.820 --> 01:20:48.560
<v Jochen>das ist quasi so ein

01:20:48.560 --> 01:20:49.920
<v Jochen>LLM-basierter

01:20:49.920 --> 01:20:51.760
<v Jochen>Kommando-Teil.

01:20:53.340 --> 01:20:53.620
<v Jochen>Dein neuer

01:20:53.620 --> 01:20:55.520
<v Jochen>Agent, oder? Ja.

01:20:56.080 --> 01:20:57.820
<v Jochen>Genau. Was ist ein Agent?

01:20:57.820 --> 01:20:59.040
<v Jochen>Ja, schwierig.

01:21:00.060 --> 01:21:00.560
<v Jochen>Was ist ein Agent?

01:21:00.960 --> 01:21:13.040
<v Jochen>Und ja, also das Ding ist einfach nur, es ist halt ein LLM und es läuft in einer Schleife und macht halt Dinge. Und das funktioniert, also ich will jetzt gar nicht so definieren, was das ist.

01:21:13.040 --> 01:21:15.200
<v Dominik>Und hast du Clues schon einen Rutschgriff auf deinen Rechner gegeben?

01:21:15.280 --> 01:21:22.940
<v Jochen>Das mache ich nicht, aber in Projekten, wo ich weiß, wenn das committed ist oder gepusht, dann kann das halt auch weglöschen, ist nicht so schlimm.

01:21:22.940 --> 01:21:25.200
<v Dominik>Ja, gib dir doch mal ein, zwei Server, da kannst du dich austoben.

01:21:25.280 --> 01:21:26.340
<v Dominik>Ein bisschen Budget dafür.

01:21:27.460 --> 01:21:28.840
<v Dominik>Ja. Ich hab mal gefragt,

01:21:29.160 --> 01:21:30.400
<v Dominik>also auch Claude, ob

01:21:30.400 --> 01:21:33.260
<v Dominik>der ist jetzt eigentlich

01:21:33.260 --> 01:21:34.660
<v Dominik>mich ersetzt oder ist das,

01:21:35.460 --> 01:21:36.980
<v Dominik>was ist das so für eine Beziehung?

01:21:38.260 --> 01:21:39.260
<v Dominik>Muss ich Angst haben

01:21:39.260 --> 01:21:40.840
<v Dominik>oder augmentiert mich das eher oder sowas?

01:21:41.240 --> 01:21:43.260
<v Dominik>Und Claude meinte dann so, hey, ist eher so eine Bromance.

01:21:43.880 --> 01:21:44.660
<v Dominik>Ja, okay.

01:21:46.140 --> 01:21:47.080
<v Dominik>Das glaube ich bei dir,

01:21:47.340 --> 01:21:48.280
<v Dominik>Dominik, das glaube ich bei dir.

01:21:48.280 --> 01:21:48.460
<v Dominik>Ja.

01:21:50.200 --> 01:21:51.420
<v Dominik>I agree.

01:21:51.700 --> 01:21:54.140
<v Johannes>Die Bromance zwischen dir und KI.

01:21:55.680 --> 01:21:56.040
<v Johannes>Aber

01:21:56.040 --> 01:21:57.840
<v Jochen>also ich würde es einfach mal,

01:21:58.140 --> 01:22:00.040
<v Jochen>man kann das nicht gut beschreiben, man muss das mal ausprobieren

01:22:00.040 --> 01:22:01.820
<v Jochen>und da ist das eigentlich schon sehr

01:22:01.820 --> 01:22:04.040
<v Jochen>cool. Also ich benutze das

01:22:04.040 --> 01:22:05.420
<v Jochen>jetzt in letzter Zeit super häufig

01:22:05.420 --> 01:22:07.620
<v Jochen>und das hat mir schon echt viel...

01:22:07.620 --> 01:22:09.780
<v Dominik>Super häufig ist es untertrieben, weißt du, wenn du jochen beim Arbeiten

01:22:09.780 --> 01:22:12.300
<v Dominik>zu guckst, dann schlägst du die ganze

01:22:12.300 --> 01:22:13.920
<v Dominik>Zeit nur drauf und dann so, nö,

01:22:14.100 --> 01:22:16.020
<v Dominik>ja, doch, vielleicht, ach, mach noch mal

01:22:16.020 --> 01:22:17.680
<v Dominik>so. Ja, aber

01:22:17.680 --> 01:22:20.000
<v Jochen>das ist auch schon wichtig, also ich gucke schon noch drauf

01:22:20.000 --> 01:22:21.800
<v Jochen>und ich... Also das heißt, das

01:22:21.800 --> 01:22:23.960
<v Dominik>draufgucken ist das, was dich von Vibe unterscheidet?

01:22:24.080 --> 01:22:25.720
<v Jochen>Ist das dann... Ja, ja, nee, das ist nicht Vibe-Coding.

01:22:25.900 --> 01:22:26.960
<v Jochen>Also ich nenne das manchmal

01:22:26.960 --> 01:22:29.740
<v Jochen>bosnacherweise Vibe-Coding. Nein, nein, das ist nicht Vibe-Coding.

01:22:29.740 --> 01:22:32.120
<v Jochen>Um die Leute zu ärgern,

01:22:32.200 --> 01:22:33.920
<v Jochen>die... Keine Sorge,

01:22:34.040 --> 01:22:35.140
<v Jochen>das ist nicht Vibe-Coding.

01:22:35.620 --> 01:22:37.600
<v Dominik>Ja, es gibt ja zwei Menschen, glaube ich, die sich mit dem Begriff

01:22:37.600 --> 01:22:39.880
<v Dominik>Vibe-Coding so ein bisschen schwer tun. Simon zum Beispiel

01:22:39.880 --> 01:22:42.140
<v Dominik>sagt, das wäre gar nicht gut, weil

01:22:42.140 --> 01:22:43.660
<v Dominik>der Begriff total blöd ist, weil

01:22:43.660 --> 01:22:45.220
<v Dominik>er davon abdenkt, dass das total anstrengend ist.

01:22:45.220 --> 01:22:47.460
<v Jochen>Das war mal gut definiert und zwar

01:22:47.460 --> 01:22:49.320
<v Jochen>als Vibe-Coding ist halt dann, wenn

01:22:49.320 --> 01:22:51.100
<v Jochen>in der das Ergebnis und der Code

01:22:51.100 --> 01:22:52.940
<v Jochen>egal sind und du halt nur

01:22:52.940 --> 01:22:55.060
<v Jochen>sozusagen basierend auf dem

01:22:55.060 --> 01:22:55.440
<v Jochen>Vibe

01:22:55.440 --> 01:22:58.340
<v Jochen>sozusagen den Kram baust.

01:22:58.340 --> 01:23:00.400
<v Johannes>Ja, okay, das habe ich abgelesen, dass der Simon Wilson das nicht mag, weil jemand

01:23:00.400 --> 01:23:02.940
<v Johannes>anders sein Wort verwendet hat, was nicht so ist,

01:23:03.000 --> 01:23:04.980
<v Johannes>wie er es haben möchte. Ist doch auch Old Man

01:23:04.980 --> 01:23:07.000
<v Johannes>in der Z-Cloud. Ja, aber er hat schon

01:23:07.000 --> 01:23:08.620
<v Jochen>recht, also das war ursprünglich mal so definiert

01:23:08.620 --> 01:23:10.680
<v Jochen>und jetzt benutzen es halt alle irgendwie anders

01:23:10.680 --> 01:23:12.560
<v Jochen>und das ist natürlich schon ein bisschen doof, aber

01:23:12.560 --> 01:23:14.420
<v Jochen>Egal, jedes Wort ist halt

01:23:14.420 --> 01:23:16.520
<v Jochen>anders definiert. Ja, aber es gibt

01:23:16.520 --> 01:23:18.440
<v Jochen>in dem Bereich halt schon so viele Worte, die halt ihre

01:23:18.440 --> 01:23:20.200
<v Jochen>Bedeutung verloren haben, dass jetzt so, dass

01:23:20.200 --> 01:23:22.140
<v Jochen>ja, okay, naja gut,

01:23:22.360 --> 01:23:24.420
<v Jochen>ist auch wurscht, kann man auch nicht mehr zurückholen.

01:23:25.480 --> 01:23:26.140
<v Jochen>Meinetwegen ist es auch

01:23:26.140 --> 01:23:28.220
<v Jochen>Vibe-Coding, aber, also es ist tatsächlich so,

01:23:28.280 --> 01:23:29.120
<v Jochen>dass ich damit halt

01:23:29.120 --> 01:23:32.360
<v Jochen>viele Dinge irgendwie

01:23:32.360 --> 01:23:34.380
<v Jochen>jetzt so machen kann, die vorher mühselig waren

01:23:34.380 --> 01:23:35.740
<v Jochen>und jetzt sind sie halt nicht mehr so mühselig.

01:23:36.220 --> 01:23:38.260
<v Jochen>Und auch quasi das

01:23:38.260 --> 01:23:40.360
<v Jochen>über Copy-Paste und, oder

01:23:40.360 --> 01:23:41.820
<v Jochen>halt über Cursor oder

01:23:41.820 --> 01:23:44.300
<v Jochen>sonst wie Copilot kann man das ja auch machen.

01:23:44.640 --> 01:23:46.280
<v Jochen>Das hat auch schon alles ganz gut funktioniert, aber

01:23:46.280 --> 01:23:48.180
<v Jochen>Cloud-Code ist tatsächlich für mich nochmal

01:23:48.180 --> 01:23:50.060
<v Jochen>eine deutliche Verbesserung. Also das ist halt,

01:23:50.380 --> 01:23:51.680
<v Jochen>macht alles nochmal deutlich angenehmer.

01:23:52.840 --> 01:23:54.340
<v Dominik>Das ist schon mega gut, aber da

01:23:54.340 --> 01:23:56.240
<v Dominik>möchte ich tatsächlich für alle, die es noch nicht kennen,

01:23:56.320 --> 01:23:58.440
<v Dominik>die meisten kennen es wahrscheinlich, mein Pick machen.

01:23:59.240 --> 01:24:00.520
<v Dominik>Und zwar ist das tatsächlich

01:24:00.520 --> 01:24:02.200
<v Dominik>wie der Manns Ausschuss,

01:24:02.300 --> 01:24:03.280
<v Dominik>weiß ich nicht, NITN?

01:24:04.240 --> 01:24:05.000
<v Dominik>Ah, mhm.

01:24:06.720 --> 01:24:07.940
<v Dominik>Ich finde normalerweise so

01:24:07.940 --> 01:24:10.340
<v Dominik>Logo-Sachen ziemlich schlecht und schwachsinnig

01:24:10.340 --> 01:24:11.700
<v Dominik>und scheiße, aber das Ding ist

01:24:11.700 --> 01:24:13.020
<v Dominik>erschreckend gut.

01:24:14.220 --> 01:24:16.320
<v Dominik>In Business-Prozessen direkt anbinden

01:24:16.320 --> 01:24:18.120
<v Dominik>an der Postgres, an SAP, an

01:24:18.120 --> 01:24:19.620
<v Dominik>was auch immer du gerade brauchst.

01:24:20.280 --> 01:24:21.720
<v Dominik>Und du kannst es dir so zusammenklicken.

01:24:21.960 --> 01:24:24.300
<v Dominik>Du machst da einen Telegram-Channel dazu und dein Discord

01:24:24.300 --> 01:24:26.080
<v Dominik>und hast einen Bot und ziehst da so

01:24:26.080 --> 01:24:28.080
<v Dominik>zwei Lines irgendwie zusammen und

01:24:28.080 --> 01:24:29.920
<v Dominik>machst dann noch einen Prompt dahin und setzt dann

01:24:29.920 --> 01:24:32.140
<v Dominik>da noch eine Nachfrage für das

01:24:32.140 --> 01:24:33.920
<v Dominik>Ergebnis vom Prompt, passt das dann in JSON,

01:24:34.020 --> 01:24:35.600
<v Dominik>kannst einen kleinen Python-Schnipsel reinbauen.

01:24:37.500 --> 01:24:38.200
<v Dominik>Also wenn ich

01:24:38.200 --> 01:24:40.140
<v Dominik>Low-Code mir überlegen würde, würde ich das wahrscheinlich auch so

01:24:40.140 --> 01:24:40.500
<v Dominik>machen.

01:24:42.300 --> 01:24:44.060
<v Dominik>Ich würde sagen, das ist sehr gefährlich für

01:24:44.060 --> 01:24:45.320
<v Dominik>unsere Profession auch.

01:24:46.460 --> 01:25:05.360
<v Dominik>Also ich kann jetzt jeder Marketier hinsetzen und sagen, hey, ich bin Coder und macht sich miteinander so einen Business-Prozess, wo man vorher halt gut bezahlte Software-Ingenieure für braucht. Das ist schon so ein bisschen, schon nicht schlecht. Also da sind wir wieder bei dem Pick, den ich eben schon gespoilert habe, den der Johannes verraten wollte.

01:25:06.200 --> 01:25:07.300
<v Dominik>Nee, das ist nicht mein Pick.

01:25:07.440 --> 01:25:08.640
<v Dominik>Gut, dass das nicht dein Pick war.

01:25:08.980 --> 01:25:12.100
<v Dominik>Aber das macht es ja schon so ein bisschen.

01:25:12.300 --> 01:25:17.600
<v Dominik>Das ist, ja, erzeugt halt viel Zeugs, viel Code,

01:25:17.900 --> 01:25:20.300
<v Dominik>den man halt kaputt machen kann oder halt auch nicht.

01:25:21.000 --> 01:25:22.180
<v Dominik>Oder ist der kaputt?

01:25:22.640 --> 01:25:23.260
<v Dominik>Wen braucht man dafür?

01:25:23.320 --> 01:25:26.240
<v Dominik>Die richtigen Ingenieure wie uns, um das wieder zu reparieren?

01:25:26.640 --> 01:25:29.600
<v Dominik>Oder schafft das dann Cloud Code selber?

01:25:29.720 --> 01:25:32.020
<v Jochen>Naja, also ich meine, für den Anwendungsfall,

01:25:32.020 --> 01:25:35.100
<v Jochen>dass du halt überhaupt erstmal irgendwie rausfinden willst,

01:25:35.260 --> 01:25:37.100
<v Jochen>ob das etwas ist, was du gebrauchen kannst

01:25:37.100 --> 01:25:39.140
<v Jochen>oder nicht, dafür ist das

01:25:39.140 --> 01:25:41.100
<v Jochen>wahrscheinlich schon nicht so schlecht. Nein, aber das ist

01:25:41.100 --> 01:25:43.280
<v Dominik>ein Irrtum. Es geht nicht nur darum, rauszufinden,

01:25:43.740 --> 01:25:45.040
<v Dominik>was ist das, was du willst, weil das

01:25:45.040 --> 01:25:47.000
<v Dominik>ist genau das, was die,

01:25:47.060 --> 01:25:48.140
<v Dominik>ich sag mal, mediocre

01:25:48.140 --> 01:25:51.260
<v Dominik>Devs immer schon verkauft haben.

01:25:51.840 --> 01:25:53.080
<v Dominik>Irgendein Scheiß, der gerade so

01:25:53.080 --> 01:25:55.060
<v Dominik>aussieht, als würde er funktionieren und

01:25:55.060 --> 01:25:56.960
<v Dominik>nach zweimal Gegenpusten zusammenbricht und das

01:25:56.960 --> 01:25:58.980
<v Dominik>ist kein Unterschied mehr zu dem, was du dir einfach da

01:25:58.980 --> 01:26:01.020
<v Dominik>viben kannst und das ist das, mit dem die

01:26:01.020 --> 01:26:02.900
<v Dominik>meisten Leute irgendwie in der Branche irgendwie

01:26:02.900 --> 01:26:05.080
<v Dominik>ihren Umsatz gemacht haben und das ist jetzt einfach quasi

01:26:05.080 --> 01:26:05.940
<v Dominik>obsolet.

01:26:07.020 --> 01:26:08.920
<v Jochen>Ah, obsolet, weiß ich nicht.

01:26:09.080 --> 01:26:11.340
<v Jochen>Du bist ja immer noch dann abhängig auch da von dem Service

01:26:11.340 --> 01:26:12.960
<v Jochen>und so. Also, naja.

01:26:13.460 --> 01:26:14.620
<v Jochen>For business leaders,

01:26:14.780 --> 01:26:17.500
<v Dominik>unfuckete I. How did you find us?

01:26:17.540 --> 01:26:18.900
<v Dominik>My therapist recommended you.

01:26:19.020 --> 01:26:20.780
<v Dominik>Are you very sorry? Yes, no, fuck you.

01:26:21.560 --> 01:26:21.880
<v Dominik>Genau.

01:26:23.320 --> 01:26:25.000
<v Jochen>Ja, also ich muss, ich

01:26:25.000 --> 01:26:27.280
<v Jochen>stimme zu, dass das halt von den ganzen

01:26:27.280 --> 01:26:29.260
<v Jochen>Dingern, die es da draußen gibt, halt tatsächlich irgendwie

01:26:29.260 --> 01:26:31.220
<v Jochen>gut gemacht ist. Ich persönlich, für mich hat das

01:26:31.220 --> 01:26:33.340
<v Jochen>nicht so Appeal, weil ich denke mir so, ja gut, ich schreibe halt

01:26:33.340 --> 01:26:35.360
<v Jochen>Python macht für mich jetzt

01:26:35.360 --> 01:26:37.500
<v Jochen>mehr Aufwand. Ich kann schon programmieren, ich brauche

01:26:37.500 --> 01:26:39.300
<v Jochen>das nicht. Sehr gut, aber so eine

01:26:39.300 --> 01:26:40.860
<v Dominik>Postgres-Schnittstelle mit zwei Klicks, ne?

01:26:41.760 --> 01:26:43.100
<v Dominik>Ja, aber also

01:26:43.100 --> 01:26:44.640
<v Jochen>ist für mich jetzt nicht so ein Aufwand, aber

01:26:44.640 --> 01:26:46.940
<v Jochen>ja, gut.

01:26:47.180 --> 01:26:49.300
<v Jochen>Wir werden sehen. Vielleicht, ja, keine Ahnung.

01:26:50.120 --> 01:26:51.400
<v Jochen>Mein Pick geht in eine

01:26:51.400 --> 01:26:52.140
<v Jochen>ganz andere Richtung.

01:26:52.740 --> 01:26:53.960
<v Jochen>Turning Caffeine into Code?

01:26:54.720 --> 01:26:56.880
<v Johannes>Ich picke Unregistry.

01:26:59.400 --> 01:27:01.520
<v Johannes>Ich bin ja ein Docker-Anhänger

01:27:01.520 --> 01:27:03.820
<v Johannes>und ein Problem, was man aber hat mit Docker

01:27:03.820 --> 01:27:06.140
<v Johannes>Containern, ist, dass wenn man die lokal

01:27:06.140 --> 01:27:08.340
<v Johannes>gebaut hat, auf seine Entwicklungsmaschine,

01:27:09.000 --> 01:27:09.640
<v Johannes>dann muss man die

01:27:09.640 --> 01:27:11.900
<v Johannes>irgendwo hin tun, damit die deploybar werden.

01:27:13.200 --> 01:27:13.960
<v Johannes>Das heißt, wenn ich die auf meinem

01:27:13.960 --> 01:27:16.080
<v Johannes>Produktionsserver dann ausrollen möchte, dann müssen die

01:27:16.080 --> 01:27:18.280
<v Johannes>irgendwo sein. Und dieses irgendwo heißt normalerweise

01:27:18.280 --> 01:27:20.200
<v Johannes>RetroG. Ja, Docker Hub

01:27:20.200 --> 01:27:22.120
<v Johannes>kannst du nehmen, wenn du Open Source machst

01:27:22.120 --> 01:27:23.780
<v Johannes>und wenn du keine Geheimnisse, wenn du alle

01:27:23.780 --> 01:27:25.840
<v Johannes>deine Sachen

01:27:25.840 --> 01:27:27.040
<v Johannes>offenlegen willst auf der Welt.

01:27:27.400 --> 01:27:29.020
<v Dominik>Ansonsten ist es eine Artifactory.

01:27:30.380 --> 01:27:31.780
<v Dominik>to Factory Nexus oder

01:27:31.780 --> 01:27:33.260
<v Dominik>in die Amazon,

01:27:34.620 --> 01:27:36.280
<v Johannes>in so eine private Registry

01:27:36.280 --> 01:27:38.380
<v Johannes>für Amazon. Aber jetzt gibt es hier

01:27:38.380 --> 01:27:40.600
<v Johannes>ein Projekt, das heißt Unregistry

01:27:40.600 --> 01:27:42.680
<v Johannes>und

01:27:42.680 --> 01:27:44.500
<v Johannes>damit kann ich direkt von meiner

01:27:44.500 --> 01:27:46.240
<v Johannes>Maschine auf die Server-Maschine

01:27:46.240 --> 01:27:47.000
<v Johannes>ein

01:27:47.000 --> 01:27:50.280
<v Johannes>Image pushen,

01:27:50.280 --> 01:27:52.180
<v Johannes>ohne über eine Registry zu gehen.

01:27:53.400 --> 01:27:54.100
<v Johannes>Der Trick ist,

01:27:55.020 --> 01:27:56.180
<v Johannes>also das geht natürlich manuell auch,

01:27:56.300 --> 01:27:57.600
<v Johannes>ich kann natürlich manuell dieses

01:27:57.600 --> 01:28:00.260
<v Johannes>Docker-Image exportieren und kann es zippen,

01:28:00.380 --> 01:28:02.700
<v Johannes>und dann per SCP rüber kopieren

01:28:02.700 --> 01:28:04.280
<v Johannes>und so weiter. Aber das ist zum einen

01:28:04.280 --> 01:28:06.360
<v Johannes>nervig und es ist auch langsam, weil jedes Mal

01:28:06.360 --> 01:28:08.520
<v Johannes>das komplette Image übertragen werden muss und nicht nur

01:28:08.520 --> 01:28:10.480
<v Johannes>die Schichten, die man neu braucht.

01:28:11.300 --> 01:28:12.620
<v Johannes>Und das macht Unregistry

01:28:12.620 --> 01:28:14.240
<v Johannes>einfach alles im Hintergrund. Das heißt, der Trick ist,

01:28:14.580 --> 01:28:16.600
<v Johannes>das tut so, als ob es ein Registry wäre

01:28:16.600 --> 01:28:18.440
<v Johannes>und wenn du sagst, hier,

01:28:18.540 --> 01:28:20.360
<v Johannes>push mal auf den Server, dann macht es dort einfach kurz

01:28:20.360 --> 01:28:21.820
<v Johannes>ein Registry auf, dann pushst du dahin

01:28:21.820 --> 01:28:24.500
<v Johannes>und dann ist es bei dem Server,

01:28:24.640 --> 01:28:25.860
<v Johannes>bei dem Produktionsserver

01:28:25.860 --> 01:28:28.380
<v Johannes>einfach im lokalen,

01:28:29.060 --> 01:28:30.820
<v Johannes>in den lokalen Images drin und das ist

01:28:30.820 --> 01:28:32.660
<v Johannes>großartig, weil das macht viele

01:28:32.660 --> 01:28:34.920
<v Johannes>Deployment-Prozesse einfach super viel einfacher.

01:28:35.140 --> 01:28:36.300
<v Johannes>Du musst dann aber nicht

01:28:36.300 --> 01:28:39.280
<v Dominik>History und so was

01:28:39.280 --> 01:28:39.980
<v Dominik>hast du dann halt weg, ne?

01:28:41.280 --> 01:28:43.340
<v Johannes>Wie meinst du History? Hast du bei Docker-Containern

01:28:43.340 --> 01:28:45.140
<v Dominik>nie. Na doch.

01:28:46.040 --> 01:28:47.280
<v Dominik>Das zu, hast

01:28:47.280 --> 01:28:49.300
<v Johannes>die, jeder Tag, den du

01:28:49.300 --> 01:28:51.220
<v Johannes>pushst, ist dort. Also

01:28:51.220 --> 01:28:53.100
<v Johannes>du hast kein zentrales

01:28:53.100 --> 01:28:54.720
<v Johannes>Repo mehr und das ist genau das, was du möchtest.

01:28:55.420 --> 01:28:56.640
<v Johannes>Okay. Wenn du

01:28:56.640 --> 01:28:58.860
<v Johannes>die Sachen aufbewahren möchtest, dann brauchst du

01:28:58.860 --> 01:28:59.780
<v Johannes>eine Registrierung.

01:29:00.060 --> 01:29:02.620
<v Jochen>Ach so, mein History von

01:29:02.620 --> 01:29:03.660
<v Jochen>Images.

01:29:05.740 --> 01:29:06.820
<v Jochen>Nee, das ist ja eben

01:29:06.820 --> 01:29:08.540
<v Johannes>unregistered. Das hast du jetzt nicht mehr.

01:29:08.940 --> 01:29:10.940
<v Johannes>Und das will ich auch in ganz vielen Fällen einfach

01:29:10.940 --> 01:29:12.940
<v Dominik>nicht haben. Ja, ist eben meistens noch ein Müll im Ballast.

01:29:13.320 --> 01:29:15.180
<v Johannes>Ich habe immer nur Latest. Es gibt nur Latest.

01:29:17.700 --> 01:29:19.180
<v Johannes>Aber wenn du was kaputt gemacht hast,

01:29:19.180 --> 01:29:21.040
<v Dominik>da musst du ja dann wieder zurück, anstatt dass du

01:29:21.040 --> 01:29:23.240
<v Dominik>vorwärts gehst. Ja, gut,

01:29:23.300 --> 01:29:24.300
<v Dominik>aber das habe ich dann noch lokal.

01:29:26.360 --> 01:29:26.900
<v Dominik>Na gut.

01:29:28.160 --> 01:29:29.640
<v Dominik>YOLO, YOLO Driven Development.

01:29:31.020 --> 01:29:32.060
<v Dominik>YOLO Vibe.

01:29:32.680 --> 01:29:34.060
<v Dominik>Ja, danke

01:29:34.060 --> 01:29:35.940
<v Dominik>fürs Zuhören. Das war etwas ganz anderes.

01:29:36.200 --> 01:29:37.700
<v Dominik>Kommt zum Hörer-Treffen

01:29:37.700 --> 01:29:39.980
<v Dominik>vorbei und wir freuen uns auf euch

01:29:39.980 --> 01:29:41.940
<v Dominik>hier. Wann war das gleich noch?

01:29:42.320 --> 01:29:44.100
<v Dominik>Ja, Ende August, Ende

01:29:44.100 --> 01:29:46.420
<v Dominik>September. We are discussing that

01:29:46.420 --> 01:29:47.540
<v Dominik>in another episode.

01:29:48.260 --> 01:29:50.300
<v Dominik>Okay. Und machen wir es.

01:29:50.300 --> 01:29:52.620
<v Dominik>Ja, dann bleibt uns gewogen. Hallo at peisenpodcast.de

01:29:52.620 --> 01:29:54.140
<v Dominik>Dankeschön und bis bald.

01:29:54.460 --> 01:29:55.440
<v Dominik>Jo, macht's gut.
