WEBVTT

00:00:00.000 --> 00:00:03.280
Ja, hallo liebe Hörer und Hörer, willkommen beim Python-Podcast Episode 38.

00:00:04.300 --> 00:00:06.260
Dieses Mal wollen wir etwas über HTMLX sprechen.

00:00:06.900 --> 00:00:08.320
Hier ist der Dominik, bei mir ist wieder der Jochen.

00:00:08.800 --> 00:00:10.300
Ja, hallihallo, willkommen Dominik.

00:00:10.420 --> 00:00:12.580
Und wir haben heute einen neuen Gast, und zwar den Thomas. Hi Thomas.

00:00:13.240 --> 00:00:14.200
Hallo, grüß dich.

00:00:14.200 --> 00:00:14.800
Jo, hallihallo.

00:00:14.900 --> 00:00:15.620
Schön, dass du da bist.

00:00:16.620 --> 00:00:19.220
Ja, fangen wir wie immer an mit ein bisschen News aus der Szene.

00:00:19.320 --> 00:00:22.440
Ja, oder vielleicht kann sich Thomas kurz vorstellen.

00:00:23.020 --> 00:00:24.740
Das wollte ich dann bei HTMLX machen, aber weißt du was, du hast recht.

00:00:25.440 --> 00:00:28.380
Eigentlich müssten wir das am Anfang stellen und sagen, Leute, hallo, und man weiß gar nicht, wer das ist.

00:00:28.500 --> 00:00:29.900
Deswegen sag doch mal, Thomas, was machst du denn?

00:00:30.000 --> 00:00:48.120
Ja, ich mache Softwareentwicklung. Das schon eine ganze Menge Jahre. Habe vor 20 Jahren mal Informatik studiert und vorher schon auch als Kind daran Spaß gehabt. Und ja, mache hauptsächlich eben Webentwicklung mit Python und Django, PostgreSQL und eben seit neuestem auch mit HTMX.

00:00:48.940 --> 00:00:56.360
Und ja, Jochen hat mich mal angesprochen, wollen wir nicht einen Podcast machen? Dachte ich, ja, schön, bin ich dabei. Und ja, jetzt bin ich hier.

00:00:56.660 --> 00:00:57.620
Sehr schön. Ja, sehr cool.

00:00:57.620 --> 00:00:59.760
Ja, okay

00:00:59.760 --> 00:01:00.780
Dann geben wir ein bisschen News über

00:01:00.780 --> 00:01:01.880
Erstmal ein bisschen News, ja

00:01:01.880 --> 00:01:05.060
Ich glaube, ich habe

00:01:05.060 --> 00:01:06.980
fast gar nichts aufgeschrieben, oh doch

00:01:06.980 --> 00:01:09.660
Python 3.6 ist draußen

00:01:09.660 --> 00:01:11.320
End of Life, ich glaube es war am 23.

00:01:14.940 --> 00:01:15.920
Dezember oder so

00:01:15.920 --> 00:01:19.460
Weihnachtsgeschenk, eure Version ist duplicated

00:01:19.460 --> 00:01:21.400
Ja, das heißt

00:01:21.400 --> 00:01:22.380
quasi die erste

00:01:22.380 --> 00:01:25.440
Version Python 3, wo

00:01:25.440 --> 00:01:26.420
viele Leute irgendwie

00:01:26.420 --> 00:01:28.800
das Gefühl hatten, das ist jetzt besser als Python 2.

00:01:29.840 --> 00:01:30.540
Ist jetzt auch

00:01:30.540 --> 00:01:32.520
End of Life. Das heißt, ja, also

00:01:32.520 --> 00:01:34.500
krass. Als ich das gesehen habe,

00:01:34.560 --> 00:01:36.400
dachte ich so, wow, das ist schon wieder so lange her.

00:01:36.700 --> 00:01:38.180
Ich glaube, bei 3.6 habe ich angefangen.

00:01:38.320 --> 00:01:39.700
Das ist schon gar nicht so lange her.

00:01:40.420 --> 00:01:41.860
3.7 kam dann relativ fix und

00:01:41.860 --> 00:01:43.180
ging schnell.

00:01:44.320 --> 00:01:46.040
Also meine News, ich habe noch gelesen, dass Python

00:01:46.040 --> 00:01:47.900
Programmiersprache des Jahres 21 geworden ist.

00:01:48.480 --> 00:01:50.360
Yay! Wir werden

00:01:50.360 --> 00:01:51.240
famous und berühmt.

00:01:52.200 --> 00:01:53.020
Ganz wichtige News.

00:01:53.020 --> 00:01:55.040
Ja, es gab jetzt auch wieder eine neue Version

00:01:55.040 --> 00:01:57.940
von diesem TOB-Index,

00:01:58.180 --> 00:01:59.720
wo Python auf Platz 1 ist.

00:02:01.340 --> 00:02:01.740
Allerdings

00:02:01.740 --> 00:02:02.980
muss man dazu sagen,

00:02:03.140 --> 00:02:05.880
so wahnsinnig viel

00:02:05.880 --> 00:02:06.820
kann man da nicht daraus lesen.

00:02:06.920 --> 00:02:07.920
Ja, ist doch eigentlich relativ wurscht.

00:02:08.320 --> 00:02:10.680
Ich habe letztens, wo habe ich das gehört?

00:02:10.800 --> 00:02:12.520
Ein programmierbarer Podcast war es, glaube ich.

00:02:13.220 --> 00:02:14.640
Dass da jemand meinte, das ist eine

00:02:14.640 --> 00:02:16.640
niederländische Firma und das, was sie machen, ist,

00:02:17.920 --> 00:02:19.240
sie machen irgendwie

00:02:19.240 --> 00:02:20.580
neben den Namen der Programmiersprache

00:02:20.580 --> 00:02:23.160
Programming dahinter und

00:02:23.160 --> 00:02:24.720
googeln dann danach und dann zählen sie

00:02:24.720 --> 00:02:25.900
die Anzahl der Suchergebnisse.

00:02:26.160 --> 00:02:27.480
Das ist mehr oder weniger, was sie tun.

00:02:28.780 --> 00:02:30.460
Und das ist natürlich irgendwie, ja, gut,

00:02:30.540 --> 00:02:32.440
ob das jetzt so einem wahnsinnig viel sagt, ist halt

00:02:32.440 --> 00:02:33.780
unklar.

00:02:35.480 --> 00:02:36.760
Das habe ich von dir noch nicht gehört.

00:02:37.960 --> 00:02:38.400
Ja, ich

00:02:38.400 --> 00:02:40.600
höre immer so, was es an anderen Podcasts

00:02:40.600 --> 00:02:42.360
auch so gibt. Ja, deswegen, vielleicht ist das doch mal

00:02:42.360 --> 00:02:43.620
interessant, dass man mal kurz darüber erzählt.

00:02:44.100 --> 00:02:46.500
Ja, also, da geht es meistens

00:02:46.500 --> 00:02:48.100
so um Frontend-Themen. Also es gibt erstaunlich,

00:02:48.300 --> 00:02:50.620
das ist auch sowas, das finde ich immer ein bisschen komisch,

00:02:51.000 --> 00:02:52.400
dass es, also es gibt einige

00:02:52.400 --> 00:02:54.540
ja, Podcasts,

00:02:54.540 --> 00:02:56.060
sich mit dem Thema Programmierung und so beschäftigen,

00:02:56.660 --> 00:02:58.620
aber fast alle eher so

00:02:58.620 --> 00:03:00.060
Frontend. Also es gibt zum Beispiel

00:03:00.060 --> 00:03:01.820
Webwork, äh, nee, nicht Webwork.

00:03:04.440 --> 00:03:05.400
Working Draft

00:03:05.400 --> 00:03:06.480
heißt einer.

00:03:06.920 --> 00:03:08.360
Auch einer der, vielleicht der älteste

00:03:08.360 --> 00:03:10.660
Webentwicklungspodcast

00:03:10.660 --> 00:03:12.520
und sicherlich einer der bekanntesten.

00:03:13.160 --> 00:03:14.540
Auch mit Leuten hier aus

00:03:14.540 --> 00:03:15.940
Düsseldorf und

00:03:15.940 --> 00:03:18.940
ja, das ist aber auch sehr Frontend-lastig.

00:03:20.720 --> 00:03:20.760
Und

00:03:20.760 --> 00:03:22.720
genau, programmierbar

00:03:22.720 --> 00:03:24.140
ist relativ neu.

00:03:24.540 --> 00:03:25.940
ist halt auch sehr frontend lastig.

00:03:26.020 --> 00:03:26.920
Folge 116.

00:03:27.880 --> 00:03:29.480
Die machen häufig Dinge, ja, aber

00:03:29.480 --> 00:03:31.180
achso, vielleicht auch nicht so neu.

00:03:31.400 --> 00:03:32.960
Ja, aber gut, auf den Moment werde ich ja gerade sehen.

00:03:33.060 --> 00:03:35.240
3. November, 2. November, 10. November, 12. November,

00:03:35.400 --> 00:03:36.740
17. November, 24. November.

00:03:37.260 --> 00:03:39.380
Also ja, die Pay ist relativ häufig.

00:03:39.740 --> 00:03:41.520
Ja, Working Draft hat

00:03:41.520 --> 00:03:43.560
irgendwie über 500, 531 sind sie jetzt

00:03:43.560 --> 00:03:44.260
irgendwie oder so.

00:03:44.860 --> 00:03:46.620
Und die machen einmal die Woche.

00:03:47.460 --> 00:03:47.960
Da hast du schon.

00:03:48.480 --> 00:03:49.660
Ja, da brauchen wir noch ein bisschen.

00:03:51.400 --> 00:03:53.820
Wie sagt jemand mit dem Gameboy,

00:03:53.820 --> 00:03:55.700
kann man jetzt in 50.000 Jahren einen Bitcoin

00:03:55.700 --> 00:03:57.340
meinen. Ah ja,

00:03:57.620 --> 00:03:59.660
okay. Irgendwie so, die

00:03:59.660 --> 00:04:00.660
Zahl ist jetzt auch rein aus der Luft.

00:04:01.560 --> 00:04:03.540
Ja, und dann gibt es, also was ich auch

00:04:03.540 --> 00:04:05.420
manchmal noch höre, ist sowas, also wenn es

00:04:05.420 --> 00:04:07.640
deutschsprachige Geschichten sind, Englischsprache gibt es natürlich

00:04:07.640 --> 00:04:09.540
endlos jede Menge, aber es gibt noch

00:04:09.540 --> 00:04:11.860
sowas wie Softwarearchitektur im Stream.

00:04:13.220 --> 00:04:13.720
Höre ich

00:04:13.720 --> 00:04:14.020
manchmal.

00:04:16.860 --> 00:04:17.260
Und

00:04:17.260 --> 00:04:19.300
InnoQ hat ein paar Podcasts,

00:04:19.320 --> 00:04:21.600
das ist eine Firma und die hat auch was mit dem, also der

00:04:21.600 --> 00:04:22.260
Mensch, der

00:04:22.260 --> 00:04:26.000
Software-Aspektoren im Stream macht, der arbeitet da auch.

00:04:26.360 --> 00:04:27.020
Jeder hat Wohl.

00:04:28.660 --> 00:04:30.480
Und da arbeitet auch jemand, also der

00:04:30.480 --> 00:04:33.360
Stefan Tilkoff arbeitet da auch und der

00:04:33.360 --> 00:04:37.120
ist auch viel in anderen Podcasts unterwegs. Da habe ich auch

00:04:37.120 --> 00:04:38.100
einen Working Graph zum Beispiel.

00:04:40.160 --> 00:04:42.220
Mal ein sehr schöner, auch passend zum Thema,

00:04:42.380 --> 00:04:46.080
worüber wir gleich reden wollen. Da gibt es eine Episode

00:04:46.080 --> 00:04:49.120
zum Thema Single-Page-Apps und

00:04:49.120 --> 00:04:51.780
was ist eigentlich REST und so und die ist sehr empfehlenswert.

00:04:52.260 --> 00:04:54.560
Oh ja, was eigentlich REST ist, darüber wollen wir auch gleich sprechen

00:04:54.560 --> 00:04:56.960
Ja, genau, darüber haben wir auch schon mal

00:04:56.960 --> 00:04:58.340
eine Episode gemacht

00:04:58.340 --> 00:05:01.040
Ja, aber also so in dem

00:05:01.040 --> 00:05:03.060
also ganz kurz muss man es ja gleich wieder erwähnen

00:05:03.060 --> 00:05:04.620
weil es ja so ein bisschen heute auch darum geht

00:05:04.620 --> 00:05:06.860
Ja, stimmt, dann gibt es

00:05:06.860 --> 00:05:08.980
noch, wo wir sind, ist vorne

00:05:08.980 --> 00:05:10.720
das ist eigentlich ein sehr super

00:05:10.720 --> 00:05:12.880
produziertes Ding, der Titel ist toll

00:05:12.880 --> 00:05:15.160
Ja, der Titel ist toll und die Grafiken

00:05:15.160 --> 00:05:16.800
sind toll und das sieht alles toll aus

00:05:16.800 --> 00:05:18.920
die Website ist toll, aber ja, es ist halt auch ein sehr vorne

00:05:18.920 --> 00:05:20.920
entlastiger Ding, die machen halt

00:05:20.920 --> 00:05:22.280
auf Streams und ja.

00:05:23.560 --> 00:05:24.940
Genau. Und ich

00:05:24.940 --> 00:05:26.940
meine, das sind so fast, dann gibt es noch

00:05:26.940 --> 00:05:29.020
so ein paar KI-Geschichten.

00:05:29.540 --> 00:05:30.740
Die höre ich, da habe ich die Namen jetzt nicht.

00:05:30.880 --> 00:05:32.900
Und die höre ich auch sehr unregelmäßig, weil meistens gefällt mir

00:05:32.900 --> 00:05:34.340
das gar nicht so gut. Oh, aber das mit dem

00:05:34.340 --> 00:05:36.760
Season 4 sieht gut aus. KI in der Industrie, glaube ich,

00:05:36.780 --> 00:05:38.600
ist einer. Das gefällt mir echt ganz gut, da bin ich gespannt.

00:05:38.960 --> 00:05:40.900
Ja. Ansonsten mehr fällt mir jetzt

00:05:40.900 --> 00:05:43.000
ehrlich gesagt nicht ein, was es da auf Deutsch gibt.

00:05:45.660 --> 00:05:46.980
Ja. Fällt dir noch was ein,

00:05:46.980 --> 00:05:47.440
Thomas, dazu?

00:05:47.440 --> 00:05:49.840
Du hast gar nicht so viel Podcasts erzählt

00:05:49.840 --> 00:05:51.500
Nö, meine Überlegung gerade war bloß, ob es

00:05:51.500 --> 00:05:53.780
im DevOps-Bereich über Kubernetes

00:05:53.780 --> 00:05:55.820
oder irgend sowas, also im deutschsprachigen

00:05:55.820 --> 00:05:57.060
Raum noch was gibt

00:05:57.060 --> 00:05:59.840
Naja, keine Ahnung

00:05:59.840 --> 00:06:01.960
Vielleicht gibt es was, aber das ist auch etwas, wo ich

00:06:01.960 --> 00:06:04.100
gar nicht nachgucken würde oder weil es mich

00:06:04.100 --> 00:06:05.700
gar nicht so sehr interessiert

00:06:05.700 --> 00:06:08.380
da glaube ich, würde ich das auch gar nicht mitbekommen

00:06:08.380 --> 00:06:09.880
Niko hatte glaube ich so ein, zwei Sachen

00:06:09.880 --> 00:06:10.780
für den Niko natürlich

00:06:10.780 --> 00:06:14.060
Aber der hat auch schon ein halbes Jahr nicht mehr

00:06:14.060 --> 00:06:16.040
neue Folgen released, also weiß ich nicht

00:06:16.040 --> 00:06:17.600
von dem habe ich letztens gehört,

00:06:17.700 --> 00:06:21.300
da macht er irgendwie so ein Live-Webinar-Ding,

00:06:21.400 --> 00:06:23.040
Stream, auch eher so Richtung Stream geht das.

00:06:23.340 --> 00:06:23.780
Okay, okay.

00:06:24.760 --> 00:06:26.560
Aber ja, stimmt, der macht natürlich,

00:06:26.680 --> 00:06:28.260
also Tech-Thiefen, vorher hieß das irgendwie anders,

00:06:29.780 --> 00:06:31.160
ja, der macht auch nicht nur

00:06:31.160 --> 00:06:32.760
Frontend-Themen, sondern alles Mögliche,

00:06:32.840 --> 00:06:34.560
auch so ein bisschen mit Schwerpunkt auf Data Science, aber

00:06:34.560 --> 00:06:36.180
ja.

00:06:36.300 --> 00:06:36.880
Cool, ja.

00:06:37.160 --> 00:06:40.340
Ja, ansonsten weiß ich nicht, gab es in der Python-Welt

00:06:40.340 --> 00:06:42.160
irgendwelche Neuigkeiten,

00:06:42.300 --> 00:06:43.120
irgendwelche interessanten Dinge?

00:06:43.120 --> 00:06:45.700
sonst.

00:06:46.780 --> 00:06:47.260
War ja so

00:06:47.260 --> 00:06:49.340
Jahrespause, ne?

00:06:49.760 --> 00:06:51.860
Ja, Jahreswechsel ist immer ein bisschen ruhiger.

00:06:53.340 --> 00:06:54.220
Ja, nö.

00:06:54.420 --> 00:06:55.920
Ansonsten weiß ich da auch nichts mehr.

00:06:57.580 --> 00:06:58.880
Dann können wir

00:06:58.880 --> 00:07:00.620
fast mit dem Thema

00:07:00.620 --> 00:07:01.720
nicht früh durch.

00:07:02.020 --> 00:07:04.800
Und wie wir ja schon angekündigt

00:07:04.800 --> 00:07:06.640
hatten, angedroht, gibt es

00:07:06.640 --> 00:07:07.440
nun auch ein bisschen Werbung.

00:07:08.420 --> 00:07:10.700
Der Sponsor für diese Episode

00:07:10.700 --> 00:07:11.540
ist NordVPN.

00:07:11.540 --> 00:07:13.660
Das ist ein VPN-Anbieter

00:07:13.660 --> 00:07:14.760
und da könnt ihr etwa auf

00:07:14.760 --> 00:07:17.200
vpn.com slash pythonpodcast gehen

00:07:17.200 --> 00:07:19.460
und bekommt da 73% Rabatt

00:07:19.460 --> 00:07:20.720
auf ein 2-Jahres-Paket

00:07:20.720 --> 00:07:23.280
und noch einen Gratis-Monat extra

00:07:23.280 --> 00:07:25.600
und genau, wenn euch

00:07:25.600 --> 00:07:27.660
das nicht zusagen sollte, könnt ihr das auch

00:07:27.660 --> 00:07:29.540
innerhalb von 30 Tagen kündigen

00:07:29.540 --> 00:07:31.060
ohne, dass euch da Zusatzkosten entstehen

00:07:31.060 --> 00:07:33.620
und ja, könnt euch das mal angucken

00:07:33.620 --> 00:07:35.500
ist vielleicht ganz nett, manchmal braucht man das ja schon

00:07:35.500 --> 00:07:37.220
also ich war zum Beispiel letztens

00:07:37.220 --> 00:07:38.520
im Urlaub und

00:07:38.520 --> 00:07:42.800
und wollte da die Dinge weitergucken, die ich normalerweise so gucke und musste dann feststellen,

00:07:43.500 --> 00:07:47.560
nee, das geht nicht, weil Streaming-Dienstleister hat festgestellt, man ist woanders, als man normalerweise ist

00:07:47.560 --> 00:07:49.120
und dann geht das halt nicht mehr.

00:07:50.220 --> 00:07:54.680
Und da möchte man dann vielleicht doch eher nur so auf irgendwo VPN aktivieren klicken

00:07:54.680 --> 00:07:56.000
und dann geht das halt einfach weiter.

00:07:56.960 --> 00:08:02.120
Und hatte ich nicht, muss ich überlegen, wie ich das nicht vielleicht mal haben möchte für den Fall.

00:08:02.120 --> 00:08:04.260
und ja,

00:08:04.560 --> 00:08:05.740
auch wenn ihr einen

00:08:05.740 --> 00:08:08.220
lokalen Internet-Service-Provider habt, der

00:08:08.220 --> 00:08:10.120
vielleicht nicht so auf der Höhe ist, was seine

00:08:10.120 --> 00:08:12.140
Peerings angeht, dann könnt ihr da euch

00:08:12.140 --> 00:08:13.320
zu einem besseren Internet-Erlebnis

00:08:13.320 --> 00:08:15.820
verhelfen, indem ihr einen VPN benutzt.

00:08:17.760 --> 00:08:18.200
Ja, genau.

00:08:18.380 --> 00:08:20.120
Und wenn ihr das mal ausprobieren möchtet, einfach auf

00:08:20.120 --> 00:08:22.200
nordVPN.com slash pythonpodcast gehen

00:08:22.200 --> 00:08:24.220
und ja, ausprobieren.

00:08:25.020 --> 00:08:25.980
Vielen Dank an NordVPN

00:08:25.980 --> 00:08:26.940
für die Unterstützung.

00:08:27.860 --> 00:08:29.160
Und dann geht es direkt in das Thema rein.

00:08:29.160 --> 00:08:30.780
HTMX.

00:08:31.520 --> 00:08:32.460
Was ist denn das?

00:08:34.780 --> 00:08:36.120
Oh, das weiß ich auch nicht so genau.

00:08:36.400 --> 00:08:38.380
Das sind die High-Power-Codes für HTML.

00:08:38.940 --> 00:08:40.440
So hat es denn der Mensch genannt,

00:08:40.520 --> 00:08:41.320
der das erfunden hat.

00:08:41.880 --> 00:08:42.680
Um einfach

00:08:42.680 --> 00:08:46.000
HTML so zu erweitern,

00:08:46.080 --> 00:08:47.720
wie es der Standard bis jetzt nicht zugelassen hat.

00:08:48.720 --> 00:08:50.000
Also, dass man keinen

00:08:50.000 --> 00:08:51.460
JavaScript mehr braucht, um coole,

00:08:52.100 --> 00:08:53.600
responsivee Sachen im Web zu bauen.

00:08:53.600 --> 00:08:55.180
Na doch, JavaScript brauchst du schon.

00:08:55.480 --> 00:08:57.660
Ja, aber du musst das nicht mehr

00:08:57.660 --> 00:08:58.620
schreiben, so wirklich.

00:08:59.160 --> 00:09:00.360
Ja.

00:09:00.840 --> 00:09:02.700
Ja, es wird dann so deklarativ.

00:09:02.800 --> 00:09:03.700
Das ist eigentlich schon

00:09:03.700 --> 00:09:06.740
nicht schlecht. Es entwickelt sich ja alles so ein bisschen

00:09:06.740 --> 00:09:07.860
in die Richtung spricht.

00:09:08.880 --> 00:09:10.340
Ja, vielleicht noch mal ganz kurz,

00:09:10.500 --> 00:09:11.700
was das so ist.

00:09:12.720 --> 00:09:14.740
Wie machen

00:09:14.740 --> 00:09:16.640
wir denn normalerweise jetzt Frontend und Backend?

00:09:16.760 --> 00:09:18.600
Trennen wir das? Wie war das denn früher?

00:09:19.700 --> 00:09:19.880
Und

00:09:19.880 --> 00:09:22.420
warum dann HTMX?

00:09:22.540 --> 00:09:22.920
Also was ist das so?

00:09:24.800 --> 00:09:26.660
Früher war es einfach nur so, du hast den Server gefragt

00:09:26.660 --> 00:09:28.560
und der hat dir dann die Webseite fertig geschickt.

00:09:29.160 --> 00:09:30.600
Ja...

00:09:30.600 --> 00:09:32.620
Nein, weil ganz früher...

00:09:32.620 --> 00:09:35.840
Wie früh hättest du es denn gehabt?

00:09:35.860 --> 00:09:37.040
Anfang der 90er oder so.

00:09:37.460 --> 00:09:38.500
Also ich würde ja sagen,

00:09:38.760 --> 00:09:40.720
das Web ist ja im Grunde ein sehr neues

00:09:40.720 --> 00:09:42.440
Modell. Also insofern,

00:09:42.740 --> 00:09:45.120
fangen wir gerade mit dem

00:09:45.120 --> 00:09:46.340
harten theoretischen Kram an.

00:09:46.520 --> 00:09:48.040
Ich weiß nicht, ob das ein guter Einstieg ist, aber...

00:09:48.040 --> 00:09:48.420
Ich weiß nicht.

00:09:50.040 --> 00:09:53.020
Naja, also Web ist ja eigentlich revolutionär

00:09:53.020 --> 00:09:53.620
in vielen

00:09:53.620 --> 00:09:56.840
Eigenschaften, die es so hat. Und halt ganz

00:09:56.840 --> 00:09:58.900
anders als irgendwie die Dinge, die man vorgemacht hat.

00:09:58.900 --> 00:10:00.460
vorher, was man vorher gemacht hat, ist halt so

00:10:00.460 --> 00:10:01.880
Client-Server zum Beispiel.

00:10:02.980 --> 00:10:04.720
Oder Remote-Procedure-Calls

00:10:04.720 --> 00:10:06.200
oder sowas. Solche Dinge.

00:10:06.900 --> 00:10:08.520
Das ist halt alles deutlich älter als das Web.

00:10:08.840 --> 00:10:10.680
Und Web ist halt eigentlich was anderes.

00:10:10.840 --> 00:10:12.300
Aber ich glaube, die Geschichte erzählen wir gleich.

00:10:12.740 --> 00:10:14.280
Und dann, was ist denn Web?

00:10:14.440 --> 00:10:16.060
Dann erzähl doch erstmal, was denn Web ist.

00:10:16.280 --> 00:10:18.620
Ja, naja, also Web

00:10:18.620 --> 00:10:20.160
ist halt sozusagen

00:10:20.160 --> 00:10:22.560
da, ja,

00:10:22.740 --> 00:10:24.220
wie definiert man das?

00:10:24.220 --> 00:10:26.100
Es gibt halt diese, das hatten wir, wie gesagt,

00:10:26.160 --> 00:10:27.980
in der Rest-Episode, diese Dissertation von

00:10:27.980 --> 00:10:49.700
Roy Fielding, der halt auch an Startnards da maßgeblich mitgearbeitet hat mit Tim Berners-Lee und der hat da seine Dissertation irgendwann drüber geschrieben und da definiert er, was er quasi meint, was das ist, so als Representational State Transfer oder so. Aber es ist halt die Frage, ob das so interessant ist.

00:10:50.000 --> 00:10:52.400
Ja, ich glaube, das hatten wir ja schon in der Restepisode. Ich glaube, da müssen wir es gar nicht sagen.

00:10:52.400 --> 00:11:06.500
Ja, im Grunde so ganz, ganz, ganz grob ist es halt irgendwie, es geht darum, dass der Client im Grunde nicht mehr viel wissen muss, dass man halt alles, was an Informationen man braucht, um halt irgendwie einen Client betreiben zu können, ja sozusagen, dass das halt alles mitkommt.

00:11:06.500 --> 00:11:08.680
also sozusagen, dass man halt auch mit einem alten Browser

00:11:08.680 --> 00:11:10.580
halt zum Beispiel Dinge machen kann, dass man

00:11:10.580 --> 00:11:12.340
jetzt nicht immer den neuesten Browser haben muss, also

00:11:12.340 --> 00:11:14.240
bei kleinen Server war das Problem früher immer,

00:11:14.660 --> 00:11:16.560
wenn man da irgendwie was geändert

00:11:16.560 --> 00:11:18.240
hat, dann muss man immer dafür sorgen, dass

00:11:18.240 --> 00:11:20.480
auch die aktuellste Version vom

00:11:20.480 --> 00:11:22.420
Client irgendwie geschippt wird, weil

00:11:22.420 --> 00:11:23.740
ansonsten funktioniert das halt nicht mehr.

00:11:24.900 --> 00:11:26.200
Und das ist mit Web,

00:11:26.700 --> 00:11:28.320
also mit REST und Web ist es eigentlich

00:11:28.320 --> 00:11:30.580
dann insofern besser, als

00:11:30.580 --> 00:11:32.460
es halt auch mit alten Browsern noch funktioniert, man muss sich nicht

00:11:32.460 --> 00:11:33.460
darum kümmern, dass die Leute halt immer

00:11:33.460 --> 00:11:35.760
den aktuellsten Browser haben und

00:11:35.760 --> 00:11:38.400
und es sollte eigentlich mit jedem Browser funktionieren und so.

00:11:38.960 --> 00:11:41.620
Und der Browser muss nicht wissen, was da kommt.

00:11:42.100 --> 00:11:44.780
Also wenn ich jetzt zum Beispiel, das ist halt genau eine von diesen Geschichten,

00:11:44.920 --> 00:11:48.680
die halt jetzt bei diesen ganz modernen Geschichten in Anführungsstrichen,

00:11:48.800 --> 00:11:53.500
also dieses Single-Page-App-mäßigen Teilen, halt wieder so ist wie ganz, ganz früher.

00:11:53.960 --> 00:11:56.100
Jetzt hast du wieder was gesagt, das Single-Page-App-Teil.

00:11:56.140 --> 00:11:58.240
Und ich glaube, das müsste so ein bisschen strukturierter sein.

00:11:58.300 --> 00:12:00.560
Ich glaube, wir sind ja gerade schon wieder sehr in der Historie drin.

00:12:01.020 --> 00:12:01.800
Ja, du hast danach gefragt.

00:12:01.800 --> 00:12:05.040
Ja, ja, ich habe ja gesagt, wir müssen das auf jeden Fall später auch nochmal erzählen.

00:12:05.040 --> 00:12:06.900
gerade was kein Server ist, aber der

00:12:06.900 --> 00:12:08.860
glaube ich der entscheidende Unterschied, was HTMLX

00:12:08.860 --> 00:12:10.880
halt macht, diesen modernen Trend,

00:12:11.020 --> 00:12:13.240
dass man halt eine Single-Page-Application braucht,

00:12:13.360 --> 00:12:14.880
um Frontend schön darzustellen,

00:12:15.400 --> 00:12:16.620
ersetzen kann und zwar mit

00:12:16.620 --> 00:12:19.000
Auslieferung vom Backend, also so Servers halt dann.

00:12:19.320 --> 00:12:20.800
Aber vielleicht will der Thomas das

00:12:20.800 --> 00:12:22.800
gerade genau da jetzt nochmal einsteigen.

00:12:23.840 --> 00:12:24.940
Ja, also

00:12:24.940 --> 00:12:27.000
bei HTMLX, das ist

00:12:27.000 --> 00:12:29.000
sicherlich auf JavaScript basiert, anders

00:12:29.000 --> 00:12:30.920
kommt man ja in den Browser nicht wirklich

00:12:30.920 --> 00:12:32.980
rein, um dort irgendwas

00:12:32.980 --> 00:12:34.180
zu programmieren im Browser.

00:12:34.180 --> 00:13:01.880
aber Ziel der Übung ist eigentlich, dass der Endanwender, also der Entwickler dann kein JavaScript mehr schreibt oder wenig JavaScript und da wird HTML erweitert um neue Attribute, sodass man das HTML klassisch verwenden kann, also wie es eben vor 20 Jahren gemacht wurde, sprich vom Server zum Client kommt HTML, gegebenenfalls auch HTML Schnipsel oder so ähnliches

00:13:01.880 --> 00:13:07.680
und man braucht das jetzt nicht in ein JSON-Format erstmal konvertieren

00:13:07.680 --> 00:13:12.180
und dann am Client wieder aus dem JSON dann irgendwie HTML machen oder DOM-Objekte machen.

00:13:13.060 --> 00:13:15.800
Das ist eben so recht revolutionär eigentlich.

00:13:17.120 --> 00:13:20.880
Revolutionär so hingegen, weil es halt wie das Wort Revolutionär ist,

00:13:20.880 --> 00:13:29.760
am Ende wird zurückgewälzt auf den Status, wo wir eben vom Server zum Client HTML geschickt haben

00:13:29.760 --> 00:13:33.100
und geht dann da sozusagen einen anderen Weg.

00:13:34.640 --> 00:13:37.960
Und mir persönlich hat es sehr gut gefallen, dass man dann sagt,

00:13:38.040 --> 00:13:42.000
man hat eben eine übliche HTML-Seite und kann dann kleine Schnipselchen

00:13:42.000 --> 00:13:45.800
eben interaktiver und ähnliches gestalten und muss sich

00:13:45.800 --> 00:13:50.040
das nicht so komplizierte Frameworks ranziehen

00:13:50.040 --> 00:13:53.920
wie React oder Vue. Das kann man mit einfachen Mitteln

00:13:53.920 --> 00:13:57.340
eine ganze Menge erreichen und das fand ich ganz cool, habe es mal ausprobiert in einem kleinen Projekt.

00:13:57.340 --> 00:14:01.120
und da bin ich jetzt hier, um ein bisschen davon zu erzählen.

00:14:03.800 --> 00:14:06.140
Ja, ich finde es super spannend.

00:14:06.960 --> 00:14:09.460
Ich höre ja schon seit einiger Zeit davon.

00:14:10.480 --> 00:14:13.560
Wenn man sich anguckt, was sind die meistgesehenen Talks auf sowas wie,

00:14:13.700 --> 00:14:16.880
das ist auch der Grund, auf den Thomas gekommen ist,

00:14:17.400 --> 00:14:21.620
bei DjangoCon EU oder DjangoCon US, das ist halt HTMX, das ist halt ganz heiß.

00:14:23.960 --> 00:14:26.400
Ja, ich kann es auch sehr gut verstehen.

00:14:26.400 --> 00:14:28.420
also ich habe irgendwann mal angefangen mich auch mit

00:14:28.420 --> 00:14:29.820
diesen sozusagen

00:14:29.820 --> 00:14:32.160
Frontend Frameworks so ein bisschen zu beschäftigen

00:14:32.160 --> 00:14:34.400
für mich war damals der Grund, warum ich das gemacht habe

00:14:34.400 --> 00:14:36.580
dass ich gerne so

00:14:36.580 --> 00:14:37.780
ja

00:14:37.780 --> 00:14:40.160
so ein

00:14:40.160 --> 00:14:41.300
UI

00:14:41.300 --> 00:14:44.360
Anmutung gerne hätte, wie bei

00:14:44.360 --> 00:14:44.940
einer nativen

00:14:44.940 --> 00:14:47.140
Applikation sozusagen

00:14:47.140 --> 00:14:50.420
das hat man ja halt so früher eigentlich bei Webseiten

00:14:50.420 --> 00:14:52.420
nicht so wirklich gehabt, weil

00:14:52.420 --> 00:14:54.280
naja, da

00:14:54.280 --> 00:14:55.100
hat man immer

00:14:55.100 --> 00:14:56.960
Request-Response-Cycle

00:14:56.960 --> 00:14:59.020
irgendwie und das dauert dann halt einfach

00:14:59.020 --> 00:15:01.000
und man sieht das auf jeden Fall, dass da was passiert und es ist halt

00:15:01.000 --> 00:15:02.960
nicht so schnell, als wenn man jetzt halt irgendwie

00:15:02.960 --> 00:15:03.600
eine

00:15:03.600 --> 00:15:06.980
in Anführungsstrichen klassische App hat,

00:15:07.120 --> 00:15:08.660
die halt irgendwie lokal auf dem Rechner läuft

00:15:08.660 --> 00:15:09.660
und

00:15:09.660 --> 00:15:13.040
für mich war das halt so,

00:15:13.120 --> 00:15:14.160
das Versprechen dieser

00:15:14.160 --> 00:15:16.620
quasi Frameworks, dass man das halt

00:15:16.620 --> 00:15:18.760
auch im Browser so hinkriegen kann, dass man da

00:15:18.760 --> 00:15:20.820
keine Latenz mehr hat und dass das halt alles

00:15:20.820 --> 00:15:22.900
super schnell ist und dass sich das anfühlt

00:15:22.900 --> 00:15:24.040
wie was natives.

00:15:24.280 --> 00:15:26.300
und das hatte mich interessiert und da dachte ich,

00:15:26.400 --> 00:15:28.340
okay, naja gut, wenn man das halt so

00:15:28.340 --> 00:15:30.280
machen muss, dann geht das halt nicht anders und

00:15:30.280 --> 00:15:31.760
dann muss ich halt dieses komische JavaScript

00:15:31.760 --> 00:15:34.220
da mitmachen. Okay,

00:15:34.620 --> 00:15:36.040
aber wenn ich dafür diese

00:15:36.040 --> 00:15:38.520
UI-Geschichte

00:15:38.520 --> 00:15:40.440
kriege, dann ist es das ja vielleicht

00:15:40.440 --> 00:15:42.400
wert, weil das ist ja tatsächlich

00:15:42.400 --> 00:15:43.620
so ein bisschen so eine nervige Geschichte.

00:15:44.740 --> 00:15:46.140
Und ja,

00:15:46.600 --> 00:15:48.340
ich dachte eigentlich immer, der Grund, warum

00:15:48.340 --> 00:15:50.580
das bei normalen Web-Anwendungen

00:15:50.580 --> 00:15:52.500
halt so ein, oder bei Webseiten

00:15:52.500 --> 00:15:54.600
so ein Problem ist, lag an diesem Request-Response,

00:15:54.680 --> 00:15:56.520
weil es dauert halt irgendwie, je nachdem wo ein Server

00:15:56.520 --> 00:15:58.500
steht, hat man alleine eine Latenz

00:15:58.500 --> 00:16:00.180
bei einem Request von, weiß ich nicht,

00:16:00.360 --> 00:16:02.080
mindestens mal so 50 Millisekunden oder sowas

00:16:02.080 --> 00:16:04.380
und ich dachte, das liegt dann halt, das

00:16:04.380 --> 00:16:06.040
führt dann schon dazu, dass man das irgendwie dann,

00:16:06.440 --> 00:16:07.940
dass sich das dann langsam anfühlt und

00:16:07.940 --> 00:16:10.040
hab dann sogar solche Sachen eingebaut

00:16:10.040 --> 00:16:12.380
in meine ersten Versuche mit so

00:16:12.380 --> 00:16:14.540
diesen, also ich glaube, das erste

00:16:14.540 --> 00:16:16.540
hab ich tatsächlich React irgendwie am Anfang

00:16:16.540 --> 00:16:18.100
verwendet und

00:16:18.100 --> 00:16:20.480
hab dann immer irgendwie die

00:16:20.480 --> 00:16:22.480
Daten für, so, ich hatte

00:16:22.480 --> 00:16:24.300
so eine Liste von Dingen, wo ich

00:16:24.300 --> 00:16:26.480
Pagination hatte und dann habe ich die Daten

00:16:26.480 --> 00:16:28.680
für die nächsten, immer für die paar Seiten außenrum

00:16:28.680 --> 00:16:30.380
immer schon gleich mitgeflatscht,

00:16:30.460 --> 00:16:32.440
damit ich die nicht holen muss, weil ich dachte, wenn ich da auf

00:16:32.440 --> 00:16:33.140
einen

00:16:33.140 --> 00:16:36.140
sozusagen Link in Anführungsstrichen klicke

00:16:36.140 --> 00:16:38.360
und dann müssen Daten geholt werden, dann dauert das ja

00:16:38.360 --> 00:16:40.360
wieder lange und das will ich ja gar nicht, sondern ich will, dass das sofort

00:16:40.360 --> 00:16:41.720
da ist. Genau.

00:16:42.340 --> 00:16:43.640
Und tatsächlich

00:16:43.640 --> 00:16:46.140
das habe ich jetzt auch

00:16:46.140 --> 00:16:48.260
mit HTMLX ein bisschen rumgespielt oder so

00:16:48.260 --> 00:16:50.380
und da habe ich gemerkt, oh, das ist gar nicht der Punkt, das ist halt

00:16:50.380 --> 00:16:52.560
schnell genug. Also wenn das 50 Millisekunden

00:16:52.560 --> 00:16:54.260
dauert, dann reicht das vollkommen aus, dass

00:16:54.260 --> 00:16:55.500
sich das halt schnell anfühlt.

00:16:57.200 --> 00:16:58.180
Also vielleicht hast du

00:16:58.180 --> 00:17:00.020
zu viele Daten dann sonst am Kleinen drin, die der

00:17:00.020 --> 00:17:00.680
dann handeln muss?

00:17:01.500 --> 00:17:04.020
Nö, nö. Das ist einfach, also meine Vorstellung,

00:17:04.460 --> 00:17:06.360
dass das halt daran liegt, dass die Langsamkeit

00:17:06.360 --> 00:17:08.200
von dem Netzwerk festkommt, war so

00:17:08.200 --> 00:17:08.860
nicht ganz korrekt.

00:17:09.960 --> 00:17:12.900
An der Interaktivität?

00:17:13.180 --> 00:17:14.140
Das liegt daran, dass

00:17:14.140 --> 00:17:16.040
das komplette Browserfenster immer ausgetauscht wird.

00:17:16.260 --> 00:17:18.180
Das ist halt der Punkt. Und dass der

00:17:18.180 --> 00:17:20.180
Browser teilweise auch bei komplizierteren

00:17:20.180 --> 00:17:22.200
halt einfach lange braucht, um das

00:17:22.200 --> 00:17:23.200
wieder komplett neu zu rendern.

00:17:23.360 --> 00:17:24.860
Ja, aber das Ganze rendern, solange dauert.

00:17:25.300 --> 00:17:28.120
Was ich ganz interessant fand von dem, was der Thomas gerade gesagt hat, war, dass er

00:17:28.120 --> 00:17:30.140
sagte, man muss das erst in

00:17:30.140 --> 00:17:32.440
JSON umwandeln von dem alten Zustand,

00:17:32.700 --> 00:17:34.240
damit man es wieder zurückdrehen kann.

00:17:34.880 --> 00:17:36.140
Das heißt, so der Urzustand

00:17:36.140 --> 00:17:38.160
ist halt ein anderer dann gewesen als JSON.

00:17:38.280 --> 00:17:40.240
Was ich jetzt, muss ich sagen, weil ich bin auch nicht so lange

00:17:40.240 --> 00:17:42.120
dabei wie ihr, gar nicht

00:17:42.120 --> 00:17:44.040
so unintuitiv finde, weil ich zum Beispiel jetzt aus

00:17:44.040 --> 00:17:46.240
Django Models immer direkt in JSON reinrendere oder so

00:17:46.240 --> 00:17:48.060
und halt diesen Umweg über die Templates

00:17:48.060 --> 00:17:49.760
gar nicht so häufig gehen musste.

00:17:50.180 --> 00:17:52.820
Deswegen ist das für mich so ein bisschen

00:17:52.820 --> 00:17:54.720
Umgewöhnung, also ich finde das Django-Template-System sehr

00:17:54.720 --> 00:17:56.580
angenehm, weil es halt die ganzen

00:17:56.580 --> 00:17:58.240
Features von Django zurückholt,

00:17:58.640 --> 00:18:00.240
die man sonst verliert, wenn man halt Js macht,

00:18:00.720 --> 00:18:02.740
aber ansonsten hat es für mich

00:18:02.740 --> 00:18:04.620
auch so einen Sinn, wenn man halt irgendwie diese serialisierten

00:18:04.620 --> 00:18:05.820
Objekte durch die Gegend schicken kann.

00:18:07.400 --> 00:18:08.720
Und deswegen, also was meintest du denn damit,

00:18:08.780 --> 00:18:10.820
wenn du sagst, dass wir zurückdrehen, also was wäre für dich

00:18:10.820 --> 00:18:12.680
denn so die... Also zurückdrehen, das war

00:18:12.680 --> 00:18:14.740
eher so zeitlich gemeint, also dass

00:18:14.740 --> 00:18:16.700
man eben so

00:18:16.700 --> 00:18:18.480
ähnlich macht, wie man es vor

00:18:18.480 --> 00:18:48.460
und Jochen unterhalten sich über die Programmiersprache Python

00:18:48.480 --> 00:19:18.460
und Jochen unterhalten sich über die Programmiersprache Python

00:19:18.480 --> 00:19:18.700
ficken.

00:19:20.120 --> 00:19:22.200
Ja, und das

00:19:22.200 --> 00:19:24.160
habe ich bei so einem kleinen

00:19:24.160 --> 00:19:26.220
oder zwei kleinen Projekten ausprobiert und

00:19:26.220 --> 00:19:27.960
funktioniert prima

00:19:27.960 --> 00:19:29.780
und

00:19:29.780 --> 00:19:32.240
kann bloß sagen, dass es auch eine ganze Menge

00:19:32.240 --> 00:19:34.220
anderer Leute eben sozusagen auch sehen,

00:19:34.680 --> 00:19:36.100
die gerade halt Leute, die aus dem

00:19:36.100 --> 00:19:38.360
eher Backend-Sprachen kommen,

00:19:38.360 --> 00:19:39.780
die eben Python oder

00:19:39.780 --> 00:19:42.400
Ruby oder irgendwas anderes programmieren,

00:19:42.460 --> 00:19:43.400
die haben halt in dem Bereich

00:19:43.400 --> 00:19:46.300
eben Spaß dran, weil sie dann in ihrer

00:19:46.300 --> 00:19:48.320
gewohnten Programmierumgebung bleiben

00:19:48.320 --> 00:19:50.280
können und brauchen jetzt nicht

00:19:50.280 --> 00:19:52.060
da sich diesen großen

00:19:52.060 --> 00:19:53.520
JavaScript-Stack

00:19:53.520 --> 00:19:56.080
anzutun. Sicherlich, das HTML

00:19:56.080 --> 00:19:58.000
selber ist auch in JavaScript geschrieben, aber

00:19:58.000 --> 00:20:00.100
das heißt jetzt ja nicht bloß, dass

00:20:00.100 --> 00:20:02.200
man dann mit JavaScript

00:20:02.200 --> 00:20:04.060
schreiben muss. Man kann es einfach, weil es rein

00:20:04.060 --> 00:20:05.940
deklarativ ist und das finde ich halt sehr schön.

00:20:06.700 --> 00:20:08.160
Es gibt ein paar Attribute, mit denen

00:20:08.160 --> 00:20:10.060
man das HTML erweitern kann und dann

00:20:10.060 --> 00:20:12.260
kann man eben auch einzelne Bereiche

00:20:12.260 --> 00:20:13.960
auf so einer Seite austauschen.

00:20:14.100 --> 00:20:16.000
Man hat also eine große Seite und dann kann man eben

00:20:16.000 --> 00:20:18.140
drei, vier Bereiche haben

00:20:18.140 --> 00:20:19.780
und dann kann man in diesen Bereichen

00:20:19.780 --> 00:20:22.020
Interaktivität schaffen, indem man dort

00:20:22.020 --> 00:20:23.720
einen Button hat und dann tut sich aber halt auch bloß nur

00:20:23.720 --> 00:20:25.360
dieser kleine Bereich austauschen.

00:20:26.920 --> 00:20:28.120
Und das macht halt die Seite

00:20:28.120 --> 00:20:29.080
irgendwie, ja,

00:20:29.860 --> 00:20:31.060
intern interaktiv.

00:20:31.660 --> 00:20:33.980
Ja, ja, das was ich jetzt, ich hab

00:20:33.980 --> 00:20:35.600
gestern, vorgestern mal so ein bisschen

00:20:35.600 --> 00:20:37.940
damit rumgespielt

00:20:37.940 --> 00:20:39.960
und was ich, ich hab

00:20:39.960 --> 00:20:41.920
mein altes, meinen alten Use Case

00:20:41.920 --> 00:20:44.080
mir nochmal quasi

00:20:44.080 --> 00:20:46.000
versucht damit umzusetzen und das ist halt

00:20:46.000 --> 00:20:47.820
gar nicht so einen kleinen Teil austauschen, sondern

00:20:47.820 --> 00:20:49.860
quasi so den Hauptcontent

00:20:49.860 --> 00:20:51.740
auf einer Seite. Also man kann quasi eine

00:20:51.740 --> 00:20:53.820
Liste von Dingen und zum Beispiel wie

00:20:53.820 --> 00:20:56.000
bei einem Podcast so die Episoden

00:20:56.000 --> 00:20:57.760
oder bei einem Blog die Artikel und jetzt

00:20:57.760 --> 00:20:59.560
paginated man da so durch

00:20:59.560 --> 00:21:01.100
und das hat

00:21:01.100 --> 00:21:03.840
für mich war der Grund früher mal, warum

00:21:03.840 --> 00:21:05.520
ich gedacht habe, okay, ich muss mir das mal

00:21:05.520 --> 00:21:07.780
angucken mit den JavaScript-Frameworks, dass das halt

00:21:07.780 --> 00:21:09.660
dann schneller geht, wenn man das halt irgendwie

00:21:09.660 --> 00:21:11.920
schon, wenn man da nicht jedes Mal

00:21:11.920 --> 00:21:13.360
die Seite neu laden muss.

00:21:13.840 --> 00:21:15.800
Und das habe ich jetzt mit HTMLX gemacht und auch selbst

00:21:15.800 --> 00:21:17.760
wenn man den kompletten Content der

00:21:17.760 --> 00:21:19.960
auszutauschen. Es ist immer noch sauschnell und man

00:21:19.960 --> 00:21:21.680
spürt da keinen Unterschied.

00:21:22.600 --> 00:21:24.180
Oder man hat nicht das Gefühl,

00:21:24.300 --> 00:21:26.300
dass man den

00:21:26.300 --> 00:21:27.940
kompletten Content ausgetauscht hat, sondern

00:21:27.940 --> 00:21:30.240
erst wenn man tatsächlich die komplette

00:21:30.240 --> 00:21:32.180
Seite austauscht, dann wird es langsam.

00:21:32.260 --> 00:21:34.060
Also Lizenz hast du 100 Millisekunden, merkst du

00:21:34.060 --> 00:21:36.140
halt, ein bisschen unter, so unter 50

00:21:36.140 --> 00:21:37.940
oder ist schon super. Da merkt man das eigentlich nicht und

00:21:37.940 --> 00:21:39.980
das kann man durchaus schaffen, da drunter zu bleiben.

00:21:40.160 --> 00:21:41.880
Und das ist natürlich dann, und da dachte ich so, als ich das

00:21:41.880 --> 00:21:43.920
gemerkt habe, okay, dieser Use-Kit geht auch

00:21:43.920 --> 00:21:45.220
damit, dachte ich so, wow, okay.

00:21:45.220 --> 00:21:47.840
Dann entfällt für mich

00:21:47.840 --> 00:21:50.380
eigentlich der Grund für diese JavaScript-Dinge

00:21:50.380 --> 00:21:52.360
Also was mich interessieren würde

00:21:52.360 --> 00:21:53.540
was ich jetzt noch nicht genau gesehen habe

00:21:53.540 --> 00:21:55.340
aber es liegt wahrscheinlich daran, dass ich das noch nicht so eingebaut habe

00:21:55.340 --> 00:21:57.980
Kann ich das trotzdem so in Komponenten strukturieren

00:21:57.980 --> 00:22:00.220
wie ich mir das vorstelle aus dem Vue.js raus

00:22:00.220 --> 00:22:01.660
und wie läuft das mit den ganzen

00:22:01.660 --> 00:22:04.000
netten

00:22:04.000 --> 00:22:05.940
Animation-Plugins und sowas

00:22:05.940 --> 00:22:08.280
muss ich das dann kleinteilig einbauen

00:22:08.280 --> 00:22:09.480
vom Server, hängt das dann drüber

00:22:09.480 --> 00:22:11.660
und wie werden die Sachen da wieder reingerendert

00:22:11.660 --> 00:22:13.060
das habe ich immer noch nicht so ganz begriffen

00:22:13.060 --> 00:22:17.080
weil also VDS rendert das ja auch irgendwie im Hintergrund einmal durch

00:22:17.080 --> 00:22:20.060
und tauscht dann die Teile aus im DOM.

00:22:21.100 --> 00:22:22.900
Und auf welcher Ebene muss ich das denn machen?

00:22:23.960 --> 00:22:27.400
Ja, man hat ja die ganz normalen HTML-Tags.

00:22:27.540 --> 00:22:33.480
Also wenn du eine Seite hast und da sind eben drei interaktive Bereiche drin,

00:22:34.320 --> 00:22:36.940
dann wäre es eigentlich sinnvoll, du machst eine große Seite

00:22:36.940 --> 00:22:40.580
und dann hat die da dreimal ein Form-Tag zum Beispiel.

00:22:40.580 --> 00:22:45.460
und wenn du ein Submit für dieses Form macht, also für eins dieser Forms,

00:22:46.540 --> 00:22:48.780
dann werden die Daten dieses einzelnen,

00:22:48.800 --> 00:22:52.340
des einen Forms zum Server geschickt und kriegst die Antwort wieder zurück.

00:22:52.540 --> 00:22:56.080
Also dann, die Komponenten sind sozusagen

00:22:56.080 --> 00:22:57.040
HTML-Tags.

00:22:58.800 --> 00:23:02.440
Ja, also wenn du meinst, dass du sowas hast, also eben

00:23:02.440 --> 00:23:05.700
Vue und React, die machen das, da ist ja genau das,

00:23:06.260 --> 00:23:10.440
das ist ja ein ganz anderes Modell und wahlweise, je nachdem aus welcher Geschichte

00:23:10.440 --> 00:23:40.420
und Jochen unterhalten sich über die Programmiersprache Python

00:23:40.440 --> 00:23:42.220
und so. Aber genau an der Stelle

00:23:42.220 --> 00:23:44.320
müssen wir jetzt vielleicht nochmal einiges hochgehen, weil ich glaube,

00:23:44.360 --> 00:23:46.220
jetzt haben wir ein bisschen die kleine Einleitung gemacht, aber

00:23:46.220 --> 00:23:47.760
das wäre jetzt genau nochmal interessant zu wissen,

00:23:48.200 --> 00:23:50.020
was ist denn jetzt genau der Unterschied zwischen

00:23:50.020 --> 00:23:51.920
RPC und

00:23:51.920 --> 00:23:54.100
Client-Server und...

00:23:54.100 --> 00:23:56.020
Naja, also auch der Unterschied sozusagen

00:23:56.020 --> 00:23:57.740
zwischen JSON und HTML,

00:23:58.300 --> 00:24:00.660
also ich muss

00:24:00.660 --> 00:24:01.780
auch sagen, ich finde JSON

00:24:01.780 --> 00:24:03.940
ehrlich gesagt so als Entwickler

00:24:03.940 --> 00:24:06.100
viel angenehmer, um damit zu arbeiten,

00:24:06.280 --> 00:24:07.900
als jetzt sowas wie XML oder

00:24:07.900 --> 00:24:08.820
HTML oder sowas.

00:24:08.820 --> 00:24:11.540
oder überhaupt Markup Languages

00:24:11.540 --> 00:24:13.420
einfach deswegen, weil JSON

00:24:13.420 --> 00:24:14.960
halt viel einfacher ist,

00:24:15.140 --> 00:24:17.080
zum Beispiel, also einer der wesentlichen Unterschiede,

00:24:17.180 --> 00:24:19.320
das ist ein bisschen subtil, aber tatsächlich ist es halt das,

00:24:19.420 --> 00:24:21.240
was einem dann so extrem

00:24:21.240 --> 00:24:22.940
auf die Füße fallen kann oder

00:24:22.940 --> 00:24:24.860
was halt sehr viel Aufwand erzeugt, ist halt

00:24:24.860 --> 00:24:27.460
XML oder HTML

00:24:27.460 --> 00:24:29.480
ist halt ein Dokumentformat.

00:24:29.480 --> 00:24:31.680
Es ist halt nicht so, dass das einfach nur Daten sind.

00:24:32.800 --> 00:24:33.660
Und das Gute ist natürlich auch,

00:24:33.700 --> 00:24:34.840
als Backend-Entwickler kann man natürlich sagen,

00:24:34.920 --> 00:24:36.220
wenn man sich mit dem Pixel-Schubschrauber beschäftigt,

00:24:36.220 --> 00:24:38.500
sichert sich Frontend damit. Man gibt denen einfach die Daten

00:24:38.500 --> 00:24:40.020
und dann ist gut, dann hat man damit nichts mehr zu tun.

00:24:40.140 --> 00:24:42.080
Das heißt, es gibt ja auch diese Zweigattung von Entwicklern.

00:24:42.480 --> 00:24:44.060
Das führt halt auch dazu,

00:24:44.180 --> 00:24:46.480
dass es halt nicht so mächtig

00:24:46.480 --> 00:24:48.300
ist in gewisser Weise. Also der Hauptunterschied

00:24:48.300 --> 00:24:50.180
zwischen Dokument und Daten

00:24:50.180 --> 00:24:52.620
ist halt zum Beispiel die Reihenfolge.

00:24:53.180 --> 00:24:54.000
Du hast halt in einem Dokument

00:24:54.000 --> 00:24:55.680
eine Reihenfolge von Dingen.

00:24:56.180 --> 00:24:58.220
Da spielt es eine Rolle, ob Sachen vorne stehen oder hinten.

00:24:58.540 --> 00:24:59.540
Wenn ich in JSON

00:24:59.540 --> 00:25:01.800
ein Objekt habe, dann ist das egal,

00:25:02.000 --> 00:25:03.560
ob das vorne steht oder hinten.

00:25:03.740 --> 00:25:04.980
Das sind immer die gleichen Daten.

00:25:04.980 --> 00:25:07.520
und ja, das

00:25:07.520 --> 00:25:09.480
macht es sehr schwer zu handeln, weil

00:25:09.480 --> 00:25:11.380
ich dann beim Parseln halt aufpassen muss und so,

00:25:12.040 --> 00:25:13.540
aber auf der anderen Seite macht es halt auch

00:25:13.540 --> 00:25:14.740
sehr mächtig. Ich kann halt auch

00:25:14.740 --> 00:25:16.780
ja, also

00:25:16.780 --> 00:25:19.540
die Dinge quasi, die ich da anzeigen

00:25:19.540 --> 00:25:21.520
möchte, direkt drin beschreiben. Das kann ich so in JSON

00:25:21.520 --> 00:25:23.500
ja nicht machen, aber in HTML kann ich das.

00:25:24.740 --> 00:25:25.660
Also in HTML kann ich

00:25:25.660 --> 00:25:27.540
halt ein Formular hinschreiben, das halt irgendwie

00:25:27.540 --> 00:25:29.440
einen Kontakt

00:25:29.440 --> 00:25:31.600
zum Beispiel anzeigt oder halt mir anzeigt,

00:25:31.660 --> 00:25:33.480
wie ich den ändern kann, ohne dass

00:25:33.480 --> 00:25:35.140
dazu sonst irgendwas wissen muss.

00:25:35.180 --> 00:25:37.180
Du kannst ja tatsächlich auch den ganzen Datentyp verändern.

00:25:37.360 --> 00:25:39.560
Du musst ja jetzt nicht nur irgendwie ein JSON-Objekt durch ein anderes

00:25:39.560 --> 00:25:41.620
austauschen, sondern du kannst ja was ganz anderes

00:25:41.620 --> 00:25:42.580
dahin stellen auf einmal.

00:25:42.780 --> 00:25:44.200
Das ist ja so magisch irgendwie.

00:25:45.600 --> 00:25:47.100
Ja genau, und bei JSON geht das halt nicht.

00:25:47.320 --> 00:25:48.940
Bei JSON musst du halt wissen, was das ist.

00:25:49.080 --> 00:25:50.600
Ansonsten funktioniert es nicht.

00:25:51.520 --> 00:25:53.580
Was mir bei JSON jetzt nicht so gefällt,

00:25:53.580 --> 00:25:55.780
ist halt, die Datentypen

00:25:55.780 --> 00:25:56.960
sind recht eingeschränkt.

00:25:59.200 --> 00:25:59.820
Ordentliches

00:25:59.820 --> 00:26:01.320
Timedelta oder irgendwas.

00:26:01.760 --> 00:26:01.940
Ja.

00:26:01.940 --> 00:26:28.288
und Python und dann will ich aus dem SQL irgendwie das beim Client anzeigen und da ist es f mich relativ klar wenn ich sage ich mache aus dem SQL

00:26:28.848 --> 00:26:31.228
mache ich HTML und das schicke ich zum Browser.

00:26:31.928 --> 00:26:33.488
Das ist relativ einfach.

00:26:33.868 --> 00:26:39.008
Also wenn ich da erstmal aus dem SQL JSON mache und dann mache ich aus dem JSON HTML,

00:26:39.988 --> 00:26:41.008
ist es einfach ein Schritt mehr.

00:26:42.088 --> 00:26:43.088
Und da frage ich mich, warum?

00:26:43.088 --> 00:26:44.388
Ja und

00:26:44.388 --> 00:26:47.928
es ist halt auch so, dass man dann die ganzen

00:26:47.928 --> 00:26:49.988
Probleme aus der alten Welt wiederbekommt

00:26:49.988 --> 00:26:51.808
nämlich zum Beispiel, was ist wie

00:26:51.808 --> 00:26:54.028
also deine Applikation

00:26:54.028 --> 00:26:56.068
muss jetzt natürlich das JSON verstehen

00:26:56.068 --> 00:26:57.688
und hat jetzt auch

00:26:57.688 --> 00:26:59.328
Versionen zum Beispiel, also was ist denn

00:26:59.328 --> 00:27:01.208
wenn jetzt kommt das JSON

00:27:01.208 --> 00:27:03.268
von heute sozusagen

00:27:03.268 --> 00:27:05.088
aus irgendeinem Backend, aus irgendeiner Datenbank

00:27:05.088 --> 00:27:07.948
und die Applikation ist aber ein Jahr alt

00:27:07.948 --> 00:27:09.528
weil ich halt jetzt, weiß ich nicht, keine Ahnung

00:27:09.528 --> 00:27:11.448
ein Browserfenster irgendwie

00:27:11.448 --> 00:27:17.468
Ich habe einen Rechner irgendwie in die Ecke gelegt, der dann ein Jahr lang gelegen hat, jetzt kreufe ich den wieder auf und was macht die Applikation denn jetzt mit den Daten?

00:27:19.148 --> 00:27:20.628
Das wird wahrscheinlich nicht funktionieren.

00:27:21.408 --> 00:27:38.828
Das haut nicht hin und das hat man ja auch eigentlich in allen von diesen frontendlastigen Anwendungen, dass dann ab und zu irgendwo so ein Popup kommt, bitte Seite neu laden, weil neue Software-Update oder irgendwas anderes, so ein Browser-Reload dann sozusagen wie so ein Software-Update.

00:27:38.828 --> 00:27:40.968
Genau, das hat man in dem

00:27:40.968 --> 00:27:42.428
HTMLX-Fall eigentlich

00:27:42.428 --> 00:27:44.968
Ja, das hat man in dem

00:27:44.968 --> 00:27:46.868
Rest-Web irgendwie sozusagen

00:27:46.868 --> 00:27:49.008
Fall, in dieser Architektur hat man das nicht, weil da gibt es

00:27:49.008 --> 00:27:50.188
das einfach nicht

00:27:50.188 --> 00:27:53.008
Man kann prinzipiell auch auseinanderlaufen, also wenn ich jetzt

00:27:53.008 --> 00:27:54.888
ein Formular einmal erstmal mir

00:27:54.888 --> 00:27:56.248
lade, ein HTML-Formular

00:27:56.248 --> 00:27:58.408
und dann vergeht wirklich

00:27:58.408 --> 00:28:01.028
eine Menge, vergeht eben Zeit und es gibt

00:28:01.028 --> 00:28:02.768
ein Software-Update und dann mache ich bei mir

00:28:02.768 --> 00:28:04.708
einen Post von meinen Formulardaten

00:28:04.708 --> 00:28:06.748
kann das prinzipiell ja auch gegen den Baum gehen, weil

00:28:06.748 --> 00:28:08.328
es dann nicht mehr hinhaut auf Server-Seite

00:28:08.328 --> 00:28:10.308
wenn sich tatsächlich an der

00:28:10.308 --> 00:28:12.608
Datenschema oder so irgendwas geändert hat.

00:28:12.988 --> 00:28:14.568
Und ja, okay.

00:28:16.568 --> 00:28:17.768
Aber tatsächlich,

00:28:18.888 --> 00:28:20.268
ja gut, okay.

00:28:20.688 --> 00:28:22.468
Wir gehen einfach mal davon aus, dass man, wenn man

00:28:22.468 --> 00:28:24.548
Dinge irgendwie jahrelang da liegen lässt, man nicht davon

00:28:24.548 --> 00:28:26.868
ausgehen sollte, dass die einwandfrei so funktionieren wie am ersten Tag.

00:28:27.388 --> 00:28:27.788
Ja, ja, okay.

00:28:27.988 --> 00:28:30.528
Aber du kriegst das Problem auch

00:28:30.528 --> 00:28:32.508
deutlich schneller. Und du hast halt dieses Problem

00:28:32.508 --> 00:28:34.448
plötzlich wieder. Du hast das Problem wieder, dass

00:28:34.448 --> 00:28:35.968
du deine Clients aktuell halten musst.

00:28:37.028 --> 00:28:38.028
Das war eigentlich,

00:28:38.028 --> 00:28:41.788
Das ist eine der großen Versprechungen von Webgeschichten, dass man sagt, das musst du nicht mehr machen.

00:28:41.828 --> 00:28:44.928
Also um nochmal zurück zu kommen, die alte Client-Server-Architektur bedeutet,

00:28:45.088 --> 00:28:49.488
ich habe eine Hauptanwendung, einen Server, auf dem die ganzen Daten, die ganze Datenbank liegt

00:28:49.488 --> 00:28:54.228
und die Clients, die selbstgeschriebene Anwendungen sind, die auf anderen Rechnern laufen,

00:28:54.748 --> 00:28:57.448
die dann halt mit dem Server kommunizieren, die halt eine bestimmte Version haben.

00:28:57.528 --> 00:29:00.128
Und wenn ich jetzt irgendwas Neues veröffentliche, dann muss ich dafür sorgen,

00:29:00.228 --> 00:29:03.548
dass der jeweilige Client sich ein Update herunterlädt, seine Applikation aktualisiert,

00:29:03.628 --> 00:29:05.248
um wieder mit dem Server reden zu dürfen.

00:29:05.248 --> 00:29:07.428
Der Kern der Applikation ist eben nicht auf dem Server,

00:29:07.568 --> 00:29:09.168
sondern der Kern der Applikation ist halt auf dem Client.

00:29:10.468 --> 00:29:11.588
Und vom Server kommen nur Daten.

00:29:12.068 --> 00:29:13.648
Okay, also der Kern der Applikation bedeutet

00:29:13.648 --> 00:29:14.088
tatsächlich

00:29:14.088 --> 00:29:17.468
der State der Applikation.

00:29:17.908 --> 00:29:19.588
Jetzt hast du schon wieder State gesagt,

00:29:19.668 --> 00:29:21.728
ich glaube, das haben wir auch noch nicht so richtig

00:29:21.728 --> 00:29:23.448
beschrieben. Was ist denn ein

00:29:23.448 --> 00:29:24.788
State überhaupt? Also

00:29:24.788 --> 00:29:26.848
die Wahrheit

00:29:26.848 --> 00:29:29.548
vielleicht über das, was gerade

00:29:29.548 --> 00:29:30.748
ist?

00:29:31.368 --> 00:29:33.228
Ja, also sozusagen die Information,

00:29:33.228 --> 00:29:35.228
und wenn du jetzt eine Liste von Kontakten hast, zum Beispiel

00:29:35.228 --> 00:29:37.488
irgendwie in einer Applikation,

00:29:37.748 --> 00:29:38.868
wo liegt diese

00:29:38.868 --> 00:29:41.168
Liste? Also auch wie hast du die

00:29:41.168 --> 00:29:42.868
sortiert, welche hast du wieder rausgeschmissen und

00:29:42.868 --> 00:29:45.128
wer kennt das? Kennt das der Client

00:29:45.128 --> 00:29:47.208
selber oder kennt das auch oder nur

00:29:47.208 --> 00:29:47.948
der Server? Genau.

00:29:48.828 --> 00:29:51.208
Und das ist der Unterschied. Ja, quasi bei Client-Server liegt es

00:29:51.208 --> 00:29:53.248
halt beim Client. Ja, oder es könnte

00:29:53.248 --> 00:29:54.828
auf dem Server liegen, also der große Unterschied zu Web

00:29:54.828 --> 00:29:57.168
ist jetzt sozusagen, okay, jetzt rede ich über

00:29:57.168 --> 00:29:59.208
Dinge, von denen ich keine Ahnung habe, aber der große Unterschied

00:29:59.208 --> 00:30:01.188
ist halt, das liegt halt in dem

00:30:01.188 --> 00:30:02.988
HTML selber.

00:30:03.228 --> 00:30:05.788
Das ist halt der große

00:30:05.788 --> 00:30:07.188
Unterschied zu allem, was früher war

00:30:07.188 --> 00:30:08.848
Das ist halt sozusagen dieser revolutionäre Schritt

00:30:08.848 --> 00:30:11.788
Das hat man vorher, soweit ich weiß

00:30:11.788 --> 00:30:12.728
noch nie gemacht

00:30:12.728 --> 00:30:15.848
Und das ist neu in HTML

00:30:15.848 --> 00:30:17.248
und mit REST

00:30:17.248 --> 00:30:20.648
Ich kenne halt auch die

00:30:20.648 --> 00:30:22.488
Frage, was man will

00:30:22.488 --> 00:30:25.208
Ob man jetzt so eine

00:30:25.208 --> 00:30:27.488
Seite will, eine Seite, die sich

00:30:27.488 --> 00:30:29.388
eben super schnell lädt, weil

00:30:29.388 --> 00:30:31.768
der Nutzer bei Google was danach gesucht hat

00:30:31.768 --> 00:30:33.728
und dann folgt er dem Link, der ihm

00:30:33.728 --> 00:30:35.968
angezeigt wird und dann zack, will er die Seite da haben

00:30:35.968 --> 00:30:37.688
und will die Seite geöffnet haben

00:30:37.688 --> 00:30:38.988
und sehen und da ist halt ganz wichtig,

00:30:40.348 --> 00:30:40.588
dass

00:30:40.588 --> 00:30:43.788
was jetzt Google mit den Webvices

00:30:43.788 --> 00:30:45.548
oder irgendwas so abprüft, dass

00:30:45.548 --> 00:30:47.768
zack, diese First-Time-User-Experience

00:30:47.768 --> 00:30:49.548
gut ist, zack, die Seite soll sich schnell laden.

00:30:50.768 --> 00:30:51.828
Und witzigerweise

00:30:51.828 --> 00:30:53.768
gibt es ein Produkt von dem gleichen

00:30:53.768 --> 00:30:55.828
Großkonzern, Google,

00:30:56.288 --> 00:30:57.148
zum Beispiel Gmail

00:30:57.148 --> 00:30:59.728
und wenn ich Gmail starte, sehe ich

00:30:59.728 --> 00:31:00.948
erstmal einen Wartebalken.

00:31:01.768 --> 00:31:03.488
Das geht mir natürlich als so zu Eichei auf den Keks.

00:31:05.188 --> 00:31:05.988
Sehe ich erstmal,

00:31:06.148 --> 00:31:07.608
wie sich die ganze Anwendung lädt.

00:31:08.348 --> 00:31:09.108
Das will ich nicht.

00:31:09.428 --> 00:31:11.968
Im Endeffekt will ich auch gar nicht so eine

00:31:11.968 --> 00:31:13.048
Native GUI

00:31:13.048 --> 00:31:15.848
im Web haben. Ich will, zack, dass die Seite

00:31:15.848 --> 00:31:16.268
da ist.

00:31:18.808 --> 00:31:19.848
Und drum ist

00:31:19.848 --> 00:31:21.748
die Frage eigentlich, was man

00:31:21.748 --> 00:31:23.028
will. Sicherlich gibt es Anwendungen,

00:31:23.468 --> 00:31:25.708
die tut man als Anwender eben

00:31:25.708 --> 00:31:27.888
morgens starten und die tut man

00:31:27.888 --> 00:31:29.248
abends dann wieder schließen oder so.

00:31:30.248 --> 00:31:31.488
Da ist ja noch

00:31:31.488 --> 00:31:32.128
Das ist okay.

00:31:32.428 --> 00:31:35.748
Was ich will, ist ein Nutzererlebnis.

00:31:36.148 --> 00:31:37.568
Also ja, das ist natürlich schon, dass es schnell

00:31:37.568 --> 00:31:39.228
da ist. Es muss schnell irgendwas passieren.

00:31:39.548 --> 00:31:41.548
Aber ich brauche nicht direkt sofort den ganzen Content,

00:31:41.708 --> 00:31:43.508
sondern ich will da so reingeführt werden,

00:31:43.728 --> 00:31:45.388
dass ich willkommen bin, dass ich

00:31:45.388 --> 00:31:46.968
eingeschubt werde, auch was da funktioniert.

00:31:47.748 --> 00:31:49.388
Na gut, aber das ist halt, das liegt halt

00:31:49.388 --> 00:31:51.388
im Use Case. Da denke ich drauf an, was das für

00:31:51.388 --> 00:31:52.508
eine Applikation ist,

00:31:53.628 --> 00:31:54.908
die man da, oder was der Use Case ist.

00:31:55.388 --> 00:31:57.528
Und für die allermeisten Web-Use

00:31:57.528 --> 00:31:59.348
Cases ist es halt wichtiger, dass man

00:31:59.348 --> 00:32:00.928
quasi von, dass man das auch

00:32:00.928 --> 00:32:30.908
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.928 --> 00:32:33.008
zu klicken. Also das mit den Links

00:32:33.008 --> 00:32:34.988
und dass man von einer Seite auf die andere kommt, das funktioniert

00:32:34.988 --> 00:32:36.768
nur, wenn es halt diese,

00:32:37.368 --> 00:32:38.408
wenn da nicht jedes Mal

00:32:38.408 --> 00:32:41.028
megabyteweise Zeugs rüberkommt und initialisiert

00:32:41.028 --> 00:32:43.388
werden muss und nicht irgendwie eine komplexe

00:32:43.388 --> 00:32:44.088
User,

00:32:44.748 --> 00:32:46.808
ein komplexes User-Interface hochgefahren wird, sondern

00:32:46.808 --> 00:32:48.968
wenn es halt was Einfaches ist. Auf der anderen Seite

00:32:48.968 --> 00:32:50.448
ist natürlich diese Vernetzung auch total

00:32:50.448 --> 00:32:51.648
interessant und cool.

00:32:52.608 --> 00:32:54.828
Ja, ich meine, die großen

00:32:54.828 --> 00:32:56.568
Web-Frameworks, die

00:32:56.568 --> 00:32:58.888
wie React und Vue, die haben das ja auch erkannt

00:32:58.888 --> 00:32:59.788
und jetzt versuchen die,

00:32:59.788 --> 00:33:02.148
serverseitig zu rendern.

00:33:02.948 --> 00:33:04.608
Dann gibt es dieses mit Hydration

00:33:04.608 --> 00:33:06.108
und Dehydration oder

00:33:06.108 --> 00:33:08.408
Serverseitrendering und den ganzen Späßen.

00:33:08.448 --> 00:33:10.548
Moment, was ist Hydration, was ist Dehydration,

00:33:10.668 --> 00:33:12.728
was ist Serverseitrendering in dem Fall?

00:33:13.468 --> 00:33:13.888
Gemeint?

00:33:15.068 --> 00:33:16.708
Ja, also du benutzt im Grunde

00:33:16.708 --> 00:33:18.548
Node.js auf dem Server, um halt

00:33:18.548 --> 00:33:20.768
dein, also du hast ja

00:33:20.768 --> 00:33:22.528
meistens dann auch so eine Templatesprache, so ähnlich wie

00:33:22.528 --> 00:33:23.788
Django-Templates, bloß halt in JavaScript,

00:33:24.428 --> 00:33:26.328
also JSX oder weiß nicht, wie das bei Vue heißt,

00:33:26.608 --> 00:33:28.608
keine Ahnung. Und du kannst

00:33:28.608 --> 00:33:30.288
das ja jetzt, du kannst es im Browser rendern,

00:33:30.668 --> 00:33:32.468
da läuft JavaScript, was seine

00:33:32.468 --> 00:33:34.028
Templates nimmt und dann halt

00:33:34.028 --> 00:33:36.608
quasi mit den Daten, die es über JSON oder sonst irgendwie bekommt,

00:33:37.068 --> 00:33:38.588
halt dann HTML rausrendert.

00:33:38.968 --> 00:33:40.208
Du kannst es aber auch auf dem Server rendern.

00:33:40.328 --> 00:33:42.428
Du kannst ja da Node.js laufen lassen, dann kannst du auch Templates nehmen

00:33:42.428 --> 00:33:44.368
und dann halt auch HTML rausrendern.

00:33:44.768 --> 00:33:46.528
Und das HTML, was du da rausrenderst, kannst du

00:33:46.528 --> 00:33:48.208
auch einfach so an den Kleinen schicken.

00:33:48.868 --> 00:33:50.448
Sodass das Rendering halt nicht bei dir im Browser

00:33:50.448 --> 00:33:51.468
passiert, sondern auf dem Server.

00:33:51.908 --> 00:33:54.708
Das ist halt dann für kürzere Antwortzeiten.

00:33:55.408 --> 00:33:56.508
Ja, ja, also dann

00:33:56.508 --> 00:33:58.268
fühlt es sich für deinen Browser, ist es dann so wie

00:33:58.268 --> 00:34:00.288
eine klassische, wie so

00:34:00.288 --> 00:34:01.488
eine Django-Webseite oder so.

00:34:02.048 --> 00:34:04.328
Und dann aber schiebt der Server

00:34:04.328 --> 00:34:06.348
ja doch dann noch irgendwie so ein JavaScript-Bundle

00:34:06.348 --> 00:34:08.048
dahin und dann wird das ersetzt.

00:34:08.208 --> 00:34:10.188
Und ich weiß nicht, ehrlich gesagt, ich weiß jetzt auch nicht genau, wie das

00:34:10.188 --> 00:34:11.548
funktioniert mit dem Hydration oder so.

00:34:11.728 --> 00:34:13.188
Aber was ist jetzt das Hydration?

00:34:13.468 --> 00:34:15.288
Ich nehme mal an, dass es irgendwie so

00:34:15.288 --> 00:34:16.828
sozusagen

00:34:16.828 --> 00:34:20.348
diese reine, das HTML-Wass gekriegt ist,

00:34:20.348 --> 00:34:22.148
ist quasi in Anführungszeichen irgendwie trocken.

00:34:23.068 --> 00:34:24.208
Und weil es halt so

00:34:24.208 --> 00:34:26.268
statisch ist. Und ich nehme mal an, dass sie mit Hydration

00:34:26.268 --> 00:34:28.248
meinen, du schickst halt den Bundle

00:34:28.248 --> 00:34:30.208
dahin und wenn das Wandel da ist, dann sagt es, okay, jetzt gibt

00:34:30.208 --> 00:34:32.188
man die Daten per JSON und dann rendert es das

00:34:32.188 --> 00:34:33.127
halt auf den Client selber.

00:34:33.328 --> 00:34:35.868
Dann ist das, was zum Beispiel bei Vue.js in den Komponenten passiert,

00:34:35.988 --> 00:34:37.228
wenn da bestimmte Teile

00:34:37.228 --> 00:34:40.048
im DOM getauscht werden, so HTML-Stipsel

00:34:40.048 --> 00:34:41.808
von Antworten vom Server dann auch.

00:34:42.668 --> 00:34:43.828
Nee, das muss man bloß,

00:34:43.887 --> 00:34:45.468
das ist bloß on top sozusagen.

00:34:46.088 --> 00:34:47.988
Das ist bloß, wenn du es optimieren willst.

00:34:48.188 --> 00:34:49.968
Also das ist bloß für

00:34:49.968 --> 00:34:51.688
den Fall, wenn du feststellst,

00:34:51.768 --> 00:34:53.968
eine Vue-Anwendung, die ist eben

00:34:53.968 --> 00:34:56.068
jetzt nicht so schnell für den First-Time-User,

00:34:56.627 --> 00:34:57.708
dann kannst du dieses

00:34:57.708 --> 00:34:59.308
Hydration, Dehydration einsetzen,

00:34:59.848 --> 00:35:02.168
um diesen ersten Seitenaufruf

00:35:02.168 --> 00:35:03.208
zu beschleunigen.

00:35:03.248 --> 00:35:05.488
Und sozusagen als Browser, wenn du auf so eine

00:35:05.488 --> 00:35:07.528
Seite, wenn du jetzt zum Beispiel NUX

00:35:07.528 --> 00:35:09.548
nimmst bei Vue und machst da

00:35:09.548 --> 00:35:11.528
Server-Site-Rendering, dann dein

00:35:11.528 --> 00:35:13.528
Browser kriegt einfach nur HTML und zeigt

00:35:13.528 --> 00:35:15.087
das an, wie bei jeder anderen Seite auch.

00:35:16.728 --> 00:35:17.148
Für den

00:35:17.148 --> 00:35:19.408
führt kein JavaScript

00:35:19.408 --> 00:35:20.028
erstmal aus.

00:35:21.808 --> 00:35:23.188
Nur dann später. Also

00:35:23.188 --> 00:35:25.668
die Frage ist, wo es gerendert wird. Bei Server-Site-Rendering

00:35:25.668 --> 00:35:27.607
wird es auf dem Server gerendert und bei

00:35:27.607 --> 00:35:29.948
irgendwann später, wenn das Bundle da ist,

00:35:30.008 --> 00:35:31.968
was halt aber megabyteweise Zeug sein kann,

00:35:32.048 --> 00:35:33.127
ja, das dauert halt, bis das da ist,

00:35:33.868 --> 00:35:35.428
dann wird wieder auf den Client gerendert

00:35:35.428 --> 00:35:37.268
und dann werden nur die Daten per JSON geholt

00:35:37.268 --> 00:35:39.728
und das ist, denke ich, das, was mit

00:35:39.728 --> 00:35:40.748
Hydration gemeint ist.

00:35:41.528 --> 00:35:43.708
Und die Sache ist, es ist ja schön, dass man das alles

00:35:43.708 --> 00:35:45.728
machen kann. Und die

00:35:45.728 --> 00:35:46.948
Frage ist aber, ob man es will.

00:35:48.268 --> 00:35:49.587
Und da bin ich eben

00:35:49.587 --> 00:35:51.928
vielleicht auch zu alt oder zu

00:35:51.928 --> 00:35:53.748
steif. Ich verwende

00:35:53.748 --> 00:35:55.808
seit Jahren Python und bin mit der Sprache

00:35:55.808 --> 00:35:56.548
sehr zufrieden.

00:35:57.607 --> 00:36:02.228
und dass ich jetzt JavaScript, die Sprache, die mir eh nicht so 100% sympathisch ist,

00:36:02.308 --> 00:36:04.828
jetzt auch noch auf dem Server einsetze oder irgendwas,

00:36:05.448 --> 00:36:07.508
habe ich eben persönlich keinen Bock drauf.

00:36:08.908 --> 00:36:13.528
Und darum habe ich das Schöne, ich habe da angefangen im privaten Kontext auch,

00:36:13.528 --> 00:36:19.448
ich habe für jemanden eine Seite machen wollen und so ein Bestellsystem.

00:36:20.748 --> 00:36:24.728
Und das Schöne, da hatte ich einfach Zeit und es war auch kein Druck irgendwie da

00:36:24.728 --> 00:36:27.968
und auch keiner, der gesagt hat, Thomas, nimm die oder jene Tools.

00:36:28.408 --> 00:36:30.508
Wenn man da Zeit hat, kann man wirklich nochmal recherchieren

00:36:30.508 --> 00:36:33.148
und auch sagen, nee, so möchte ich es jetzt nicht machen,

00:36:33.348 --> 00:36:34.488
ich will es jetzt so machen.

00:36:35.168 --> 00:36:36.688
Und dann habe ich erstmal ewig gesucht,

00:36:36.808 --> 00:36:38.188
bis ich überhaupt was gefunden habe

00:36:38.188 --> 00:36:41.068
und durch Zufall bin ich eben auf das HTMX dann gestoßen.

00:36:41.587 --> 00:36:42.768
Inzwischen ist es auch populärer,

00:36:42.828 --> 00:36:45.348
inzwischen steuert man selbstständig zu,

00:36:45.348 --> 00:36:48.107
aber vor mehr als einem Jahr war das eben noch recht unbekannt.

00:36:49.087 --> 00:36:51.627
Gut, und da war es halt eine coole Sache

00:36:51.627 --> 00:36:53.488
und gerade wenn man halt

00:36:53.488 --> 00:36:55.587
eh sagt,

00:36:55.688 --> 00:36:57.087
man selber ist in einem

00:36:57.087 --> 00:36:59.768
Backendsprache damit vertraut,

00:37:01.087 --> 00:37:01.228
dann

00:37:01.228 --> 00:37:03.308
macht das eigentlich großen Sinn,

00:37:03.428 --> 00:37:05.028
weil dann kann man das auch sehr

00:37:05.028 --> 00:37:06.828
leicht verwalten, diesen Stack.

00:37:07.328 --> 00:37:09.428
Ansonsten, ja, sicherlich

00:37:09.428 --> 00:37:11.048
kann man das machen. Ich glaube auch, dass das

00:37:11.048 --> 00:37:13.428
prima funktioniert mit dem Vue und React und so alles.

00:37:14.087 --> 00:37:15.408
Aber wenn man das selber

00:37:15.408 --> 00:37:17.087
alles in der Kontrolle haben will,

00:37:17.528 --> 00:37:19.328
also ich kenne es selber jetzt beruflich zum Beispiel,

00:37:19.328 --> 00:37:21.248
nutzen wir auch Vue.js

00:37:21.248 --> 00:37:23.428
und ja, das ist dann

00:37:23.428 --> 00:37:25.248
manchmal so, hm, dann ist der

00:37:25.248 --> 00:37:27.268
Frontend-Entwickler sozusagen

00:37:27.268 --> 00:37:29.308
oder da ist da einer mal krank oder im Urlaub

00:37:29.308 --> 00:37:31.748
oder irgendwas und dann klemmt es Frontend-seitig,

00:37:31.828 --> 00:37:33.308
obwohl Backend-Kapazität dabei ist

00:37:33.308 --> 00:37:34.988
und dann ist es gleich mal andersrum oder irgendwas.

00:37:36.008 --> 00:37:37.308
Ist doch eigentlich schöner, wenn man

00:37:37.308 --> 00:37:38.928
da sagt, okay, ich mache wirklich eben

00:37:38.928 --> 00:37:41.208
Fullstack vom HTML bis

00:37:41.208 --> 00:37:43.587
zur Datenbank, habe ich alles unter Kontrolle

00:37:43.587 --> 00:37:45.268
und da finde ich diese Trennung

00:37:45.268 --> 00:37:47.568
zwischen Frontend-Entwickler und Backend-Entwickler,

00:37:47.648 --> 00:37:48.248
das ist so wie

00:37:48.248 --> 00:37:51.048
so eine komische Diskriminierung,

00:37:51.048 --> 00:37:52.148
irgendwie, ja,

00:37:53.028 --> 00:37:54.268
muss eigentlich nicht sein.

00:37:55.768 --> 00:37:56.168
Ja.

00:37:57.428 --> 00:37:58.928
Ja, ja, ich würde auch sagen,

00:37:59.028 --> 00:38:00.648
also normalerweise ist diese Unterscheidung von

00:38:00.648 --> 00:38:02.888
Webpacking eigentlich halt hauptsächlich irgendwie, es gibt halt Leute,

00:38:03.228 --> 00:38:06.688
JavaScript mögen und es gibt andere Leute, die

00:38:06.688 --> 00:38:08.107
JavaScript free-bail finden und

00:38:08.107 --> 00:38:10.408
das war jetzt auch schon mal, also

00:38:10.408 --> 00:38:12.248
ja.

00:38:12.468 --> 00:38:14.868
Alle, die JavaScript-Liebe haben,

00:38:14.928 --> 00:38:15.788
die bitte einmal aufzeigen.

00:38:16.788 --> 00:38:18.368
Ja, naja, gut, also ich,

00:38:18.368 --> 00:38:20.928
das ist übrigens auch so ein Ding,

00:38:21.048 --> 00:38:36.708
Also ich meine, im Grunde die Entwicklung wird da getrieben von, also weil in der JavaScript-Welt und ich höre da ja auch ab und zu Dinge, da geht man jetzt sozusagen schon in die Richtung zu sagen, ah ja, also wir sind jetzt eigentlich weit genug, warum machen wir nicht JavaScript also komplett, also auch im Server vor allen Dingen.

00:38:36.708 --> 00:38:45.348
Es gibt eigentlich keinen Grund mehr, das nicht zu verwenden. Ich würde sagen, schon, doch gibt es Gründe, das nicht zu verwenden. Aber sagen wir so, diesen Druck, den gibt es schon sehr stark.

00:38:45.348 --> 00:38:47.528
und aber nochmal vielleicht ganz kurz,

00:38:47.607 --> 00:38:49.308
ich würde ganz kurz nochmal

00:38:49.308 --> 00:38:51.648
da ansetzen, wo wir

00:38:51.648 --> 00:38:53.148
eben waren, weil auch

00:38:53.148 --> 00:38:55.428
man kann jetzt mit diesen Frameworks natürlich auch

00:38:55.428 --> 00:38:57.748
Serversite-Rendering machen, nur das löst

00:38:57.748 --> 00:38:59.228
die Probleme nicht. Also

00:38:59.228 --> 00:39:01.627
wenn alle Webseiten

00:39:01.627 --> 00:39:03.448
irgendwie fette

00:39:03.448 --> 00:39:05.348
irgendwie Dinger wären

00:39:05.348 --> 00:39:07.468
mit Serversite-Rendering, würde das

00:39:07.468 --> 00:39:09.568
Web so nicht mehr funktionieren. Das würde kaputt

00:39:09.568 --> 00:39:11.548
gehen. Also und das ist

00:39:11.548 --> 00:39:13.488
halt irgendwie, weil du musst diese Megabyte-Daten ja

00:39:13.488 --> 00:39:14.808
immer noch durch die Gegend schieben.

00:39:14.988 --> 00:39:16.788
Auch wenn dir das jetzt nicht mehr so auffällt,

00:39:17.587 --> 00:39:19.388
aber da werden halt dauernd

00:39:19.388 --> 00:39:19.988
die gleichen

00:39:19.988 --> 00:39:23.428
minifizierten JavaScript-Dinger durch die Gegend geschoben.

00:39:23.587 --> 00:39:24.828
Wenn du von einer Seite auf die andere gehst,

00:39:24.928 --> 00:39:26.688
immer das gleiche Zeug, megabyteweise.

00:39:26.908 --> 00:39:28.508
Das ist total verrückt.

00:39:28.508 --> 00:39:30.448
Weil ich nicht die Einzelteile

00:39:30.448 --> 00:39:31.388
vom Dom nur tausche?

00:39:32.368 --> 00:39:34.868
Ja, weil du musst halt die komplette Applikation

00:39:34.868 --> 00:39:36.188
schickst du halt in der Gegend rum.

00:39:36.208 --> 00:39:36.408
Ja?

00:39:37.668 --> 00:39:40.508
Und die Applikation ist ja in weiten Teilen immer die gleiche.

00:39:41.587 --> 00:39:41.828
Okay.

00:39:41.828 --> 00:39:43.908
Aber so viel ist es ja nicht. Ich meine, es wird ja dann

00:39:43.908 --> 00:39:45.888
gecached und ich kann mir vorstellen,

00:39:46.087 --> 00:39:47.148
dass die ersten drei Bilder

00:39:47.148 --> 00:39:49.988
jeder Webseite dann größer sind

00:39:49.988 --> 00:39:51.988
als das ganze JavaScript-Spaß.

00:39:52.268 --> 00:39:53.768
Also ich hätte jetzt auch tatsächlich irgendwie

00:39:53.768 --> 00:39:55.968
intuitiv gedacht, dass man das halt auch mit VJS zum Beispiel

00:39:55.968 --> 00:39:57.308
so löst, dass man dann eben nur

00:39:57.308 --> 00:39:59.788
den einzelnen kleinen Bestandteil

00:39:59.788 --> 00:40:01.548
dann innerhalb dieser Komponente

00:40:01.548 --> 00:40:02.708
neu rendert.

00:40:02.948 --> 00:40:05.768
Ich weiß nicht genau, es gibt noch so

00:40:05.768 --> 00:40:07.607
Geschichten, da bin ich jetzt aber auch nicht vertraut mit,

00:40:07.908 --> 00:40:09.768
dass du so dieses Hot-Module

00:40:09.768 --> 00:40:11.728
du kannst halt teilweise

00:40:11.728 --> 00:40:15.768
mit, es gibt so Exima Script jetzt Module irgendwie auch und manchmal kannst du halt,

00:40:16.248 --> 00:40:19.788
musst du für manche Seiten, kannst du Module nachladen und so, aber bisher

00:40:19.788 --> 00:40:24.188
der klassische Weg war halt, du baust deine komplette Applikation in einen JavaScript-File

00:40:24.188 --> 00:40:28.008
und das lieferst du aus. Und solange du das nicht hast, geht gar nichts.

00:40:30.428 --> 00:40:31.888
Und ja, also

00:40:31.888 --> 00:40:35.948
wenn deine Applikation, also ich meine gut, sie muss nicht über Megabyte groß sein, aber

00:40:35.948 --> 00:40:39.528
ja, also es ist schon groß und

00:40:39.528 --> 00:40:44.948
und ja, oft ist View drin oder React und dann halt die Bibliotheken, die alle verwenden

00:40:44.948 --> 00:40:49.248
und das Zeug wird halt bei jedem, wenn du auf eine andere Seite gehst, wird das halt immer mit übermittelt.

00:40:49.808 --> 00:40:51.668
Und das ist ja eigentlich vollkommen verrückt ineffizient.

00:40:52.008 --> 00:40:55.748
Also es ist ja eigentlich, tut einem ja weh, wenn man sich das so überlegt.

00:40:58.048 --> 00:41:01.107
Eigentlich wollten wir ja über HDMIX reden und nicht über Render.

00:41:01.228 --> 00:41:02.848
Nicht was anderes irgendwie.

00:41:02.848 --> 00:41:03.648
Ja, okay.

00:41:04.408 --> 00:41:04.888
Genau.

00:41:04.888 --> 00:41:05.087
auf.

00:41:07.868 --> 00:41:08.348
Ja,

00:41:08.648 --> 00:41:10.348
wie

00:41:10.348 --> 00:41:12.428
funktioniert das denn bei

00:41:12.428 --> 00:41:13.188
HTMX?

00:41:15.048 --> 00:41:16.748
Ja, wollen wir mal so ein Beispiel

00:41:16.748 --> 00:41:17.087
besprechen?

00:41:17.988 --> 00:41:20.388
Ja, also wir können mal ein Beispiel

00:41:20.388 --> 00:41:22.408
besprechen. Also am

00:41:22.408 --> 00:41:24.668
besten, man gibt dann selber mal

00:41:24.668 --> 00:41:26.668
HTMX einfach in seine bevorzugte

00:41:26.668 --> 00:41:28.728
Suchmaschine ein und dann kommt man

00:41:28.728 --> 00:41:30.548
auf die Seite und da gibt es auch ein paar Beispiele

00:41:30.548 --> 00:41:32.788
oben in der Kopfleiste ist das zu sehen,

00:41:32.788 --> 00:41:34.688
ein paar Examples und

00:41:34.688 --> 00:42:04.668
ein. Beispiel ist zum Beispiel Click2Edit. Das ist, glaube ich, mit das erste. Da hat man erstmal so eine ganz normale HTML-Seite und da unten ist so ein kleiner Block und da steht irgendwie Click2Edit und in diesem Block sieht man irgendwie Name, sage ich mal, Peter oder irgendwas oder irgendein Name, Vorname, sogar ein ganz einfaches Nutzerdaten irgendwie. Da kann man hinklicken und wenn man hinklickt, dann tut sich dieser kleine Bereich aktualisieren und man hat einen HTML-Block.

00:42:04.688 --> 00:42:12.508
HTML-Formular. Dann kann man dieses HTML-Formular eben befüllen und sagen speichern und mit dem

00:42:12.508 --> 00:42:17.228
Speichern, schwupp, ändert sich wieder dieser kleine Block und der ist sozusagen wieder Read-Only,

00:42:17.368 --> 00:42:24.848
wie er am Anfang war, bloß mit den aktualisierten Daten. Und das Ganze funktioniert natürlich so,

00:42:25.028 --> 00:42:30.828
dass kein, der gesamte Browser immer auf dieser Seite bleibt, also nicht die gesamte Seite wird

00:42:30.828 --> 00:42:34.428
neu geladen. Also sprich, ich würde mal irgendwo hingescrollt haben oder irgendwas und es dann unten

00:42:34.428 --> 00:42:38.508
auf einer Seite machen, würde die Scrollposition oder irgend sowas alles gleich bleiben.

00:42:38.508 --> 00:42:40.368
Da ist die Frage, wie das funktioniert.

00:42:40.908 --> 00:42:54.708
Mit dem Click to Edit wird dann der Server kontaktiert und der Server schickt dann ein kleines HTML-Schnipselchen an den Client

00:42:54.708 --> 00:43:03.048
und entsprechend der Angabe in dem HTML und das HTMLx erweitert im Endeffekt das HTML bloß um ganz einfache neue Attribute.

00:43:03.048 --> 00:43:09.587
anhand dieser Attribute stellt eben diese Library fest, aha, das soll hier eingefügt werden.

00:43:10.148 --> 00:43:14.528
Gibt es verschiedene Swap-Methoden, da kann man sagen, innerHTML soll ausgetauscht werden,

00:43:14.648 --> 00:43:20.528
also dass in dem Tag oder outerHTML, sprich das Tag selber, auch mit ersetzt werden.

00:43:20.528 --> 00:43:28.308
Und dann kriegt man eben dieses HTML-Schnipselchen vom Server und das wird dann durch HTMLX dort eingebaut.

00:43:28.308 --> 00:43:33.448
und dann hat man das Formular, kann es befüllen und am Endeffekt passiert der gleiche Spaß wieder.

00:43:33.587 --> 00:43:38.248
Also ich kann das als Nutzer dann ausfüllen und wenn ich auf Speichern klicke,

00:43:39.028 --> 00:43:45.288
dann wird eben auch nur dieser kleine Bereich zum Server hingeschickt

00:43:45.288 --> 00:43:50.028
und man erhält wieder ein HTML-Schnipselchen, der dort an dieser Stelle eingebaut wird.

00:43:50.928 --> 00:43:54.348
Und das Schöne für den Anwender ist, dass es halt super simpel ist.

00:43:54.348 --> 00:44:02.688
Man muss dann bloß mit ganz wenigen Attributen sagen, hier, tauschen wir bitte dieses oder jenes aus und dann hat man das Ganze schon.

00:44:02.808 --> 00:44:05.168
Also man muss sich da nicht mit JavaScript beschäftigen oder so.

00:44:06.607 --> 00:44:18.468
Und ja, das ist sozusagen diese Grundidee der Bibliothek, dass man HTML-Schnipsel über die Leitung schickt und das deklarativ im HTML verfügbar macht.

00:44:19.748 --> 00:44:23.468
Ja, sehr spannend. Das macht doch auch solche Sachen wie möglich, dass man dann...

00:44:23.468 --> 00:44:25.107
Das ist auch ein weiteres Beispiel

00:44:25.107 --> 00:44:27.028
auf der Seite, dass man Infidelscrollen

00:44:27.028 --> 00:44:29.268
machen kann, dass er dann in diesem HXWeb-Attribut

00:44:29.268 --> 00:44:30.908
einfach After End sagt und dann wird das einfach

00:44:30.908 --> 00:44:31.688
angehängt.

00:44:32.868 --> 00:44:34.067
Das ist auch ein schönes Beispiel.

00:44:36.168 --> 00:44:37.048
Da kriegt man

00:44:37.048 --> 00:44:38.708
den besten Eindruck, wenn man einfach mal

00:44:38.708 --> 00:44:40.127
durchgeht.

00:44:40.508 --> 00:44:41.808
Das ist schon super.

00:44:45.368 --> 00:44:46.308
Eigentlich ist die Idee,

00:44:46.428 --> 00:44:48.908
mich wundert, dass das nicht schon viel früher

00:44:48.908 --> 00:44:49.248
passiert.

00:44:49.248 --> 00:44:50.208
Das ist ehrlich gesagt.

00:44:50.228 --> 00:44:53.008
Das ist genau von dem ich

00:44:53.008 --> 00:44:54.968
eigentlich geträumt habe, gerade vor Jahren,

00:44:55.067 --> 00:44:56.708
als ich mit Jake Ferry da so, sagen wir mal,

00:44:56.708 --> 00:44:58.428
selber irgendwie was gelöst, irgendwie.

00:44:59.148 --> 00:45:01.328
Und das ist eigentlich die Idee dieses Deklarativen

00:45:01.328 --> 00:45:02.488
auch. Also das ist eben,

00:45:02.948 --> 00:45:04.928
das HTML ist da sehr schön,

00:45:05.008 --> 00:45:06.408
diese Beschreibungssprache.

00:45:06.528 --> 00:45:08.788
Es ist keine Programmiersprache, eine Beschreibungssprache.

00:45:09.448 --> 00:45:10.988
Aber im Endeffekt geht ja

00:45:10.988 --> 00:45:12.567
vieles hin in das Deklarative.

00:45:12.748 --> 00:45:14.748
Also man will ja einfach bloß sagen, das soll

00:45:14.748 --> 00:45:16.868
so und so sein und dann kümmert

00:45:16.868 --> 00:45:18.828
sich irgendein anderer Prozess dann darum,

00:45:19.248 --> 00:45:20.908
dass das dann auch umgesetzt

00:45:20.908 --> 00:45:22.988
wird und so. Und das macht es im Endeffekt dann einfacher.

00:45:23.008 --> 00:45:24.928
Ja und im Grunde

00:45:24.928 --> 00:45:27.208
behandelt es eigentlich, macht es

00:45:27.208 --> 00:45:29.107
genau das gleiche, was man im Browser auf einer Webseite

00:45:29.107 --> 00:45:30.968
tut, nur halt nicht jetzt

00:45:30.968 --> 00:45:33.308
dass man zum Beispiel, wenn man im Browser halt auf einer Webseite

00:45:33.308 --> 00:45:34.668
ist, kann man ja immer nur das komplette

00:45:34.668 --> 00:45:37.107
HTML-Element ersetzen

00:45:37.107 --> 00:45:38.567
und jetzt hat man sozusagen per JavaScript

00:45:38.567 --> 00:45:41.268
in HTMLX halt die Dinge

00:45:41.268 --> 00:45:43.107
die man nur auf dem einen großen Ding machen kann, kann man

00:45:43.107 --> 00:45:45.168
jetzt auf allen kleinen Elementen halt auch machen

00:45:45.168 --> 00:45:47.127
man kann das halt irgendwie durch was anderes

00:45:47.127 --> 00:45:48.567
ersetzen, man kann

00:45:48.567 --> 00:45:51.148
also normalerweise im Browser lösen halt nur

00:45:51.148 --> 00:45:52.968
zwei Events

00:45:52.968 --> 00:45:55.388
lösen halt irgendwie ein Request aus.

00:45:55.468 --> 00:45:57.348
Das eine ist halt anchor, anchor-tag

00:45:57.348 --> 00:45:58.968
und das andere ist halt irgendwie

00:45:58.968 --> 00:46:00.748
submit, also form.

00:46:01.708 --> 00:46:02.988
Und es gibt nur

00:46:02.988 --> 00:46:05.208
get und post, aber es gibt ja noch

00:46:05.208 --> 00:46:07.048
viel mehr HTTP-Werben.

00:46:07.148 --> 00:46:08.268
Es gibt ja noch die lead-put-patch

00:46:08.268 --> 00:46:10.888
und das habe ich mich auch früher gefragt.

00:46:11.127 --> 00:46:13.028
Da gab es auch so bei Django REST Framework

00:46:13.028 --> 00:46:14.488
ja irgendwie über diese browsable-api

00:46:14.488 --> 00:46:17.067
und dann wollte ich halt mal so, da drinnen

00:46:17.067 --> 00:46:18.868
kann man ja auch Dinge hinzufügen und so.

00:46:19.148 --> 00:46:20.888
Okay, und jetzt muss ich noch put testen und so.

00:46:21.607 --> 00:46:22.728
Komisch, put geht irgendwie nicht.

00:46:22.728 --> 00:46:52.708
und Jochen unterhalten sich über die Programmiersprache Python

00:46:52.728 --> 00:46:54.127
wächst. Also zum Beispiel

00:46:54.127 --> 00:46:55.968
Django, was ich jetzt hier eben

00:46:55.968 --> 00:46:57.868
einsetze für die Serverseite,

00:46:58.127 --> 00:47:00.768
kann man ja auch auf einer HTML-Seite

00:47:00.768 --> 00:47:02.528
mehrere Formulare dann

00:47:02.528 --> 00:47:04.368
reintun und mit Präfixen das dann

00:47:04.368 --> 00:47:05.548
auswerten und so weiter.

00:47:06.328 --> 00:47:08.188
Und es war auch, wenn ich mich da

00:47:08.188 --> 00:47:10.148
zurückerinnere, rechter Krampf irgendwie immer.

00:47:11.228 --> 00:47:12.668
Und hier ist es einfach

00:47:12.668 --> 00:47:14.328
entkoppelt.

00:47:14.428 --> 00:47:16.567
Ich kann ja auch auf einer Seite drei Formulare haben

00:47:16.567 --> 00:47:17.848
und die submitten sich eben

00:47:17.848 --> 00:47:20.368
einzeln individuell. Da brauche ich

00:47:20.368 --> 00:47:22.067
da nicht ein großes

00:47:22.067 --> 00:47:23.948
Formular machen mit drei

00:47:23.948 --> 00:47:26.228
Unterbereichen oder so. Das macht es

00:47:26.228 --> 00:47:28.048
auch serverseitig deutlich

00:47:28.048 --> 00:47:29.208
einfacher, das zu handeln.

00:47:30.587 --> 00:47:30.708
Ja.

00:47:31.728 --> 00:47:33.508
Naja, und es ist jetzt

00:47:33.508 --> 00:47:35.948
tatsächlich auch nicht nur, also

00:47:35.948 --> 00:47:37.928
hat demnächst vielleicht zu der Geschichte, dass

00:47:37.928 --> 00:47:40.188
der Autor hatte vorher

00:47:40.188 --> 00:47:42.127
eine Bibliothek geschrieben als jQuery

00:47:42.127 --> 00:47:44.308
Plugin. Das nennt sich

00:47:44.308 --> 00:47:45.228
irgendwie Ethercooler.js.

00:47:46.488 --> 00:47:47.968
Daher, das hat auch mit

00:47:47.968 --> 00:47:49.328
jQuery relativ viel zu tun.

00:47:50.908 --> 00:47:52.048
Und das war halt

00:47:52.048 --> 00:47:53.048
dann quasi auch halt,

00:47:53.708 --> 00:47:55.788
HTMX ist jetzt noch in der Nachfolge davon, der dann halt ohne

00:47:55.788 --> 00:47:57.627
JQuery auskommt und diesen ganzen Kram nicht mehr macht.

00:47:59.868 --> 00:48:00.208
Und

00:48:00.208 --> 00:48:01.408
was ich auch,

00:48:01.928 --> 00:48:03.448
wo ich auch denke, das ist

00:48:03.448 --> 00:48:04.668
halt ein sehr

00:48:04.668 --> 00:48:07.868
breiter Trend, das macht es auch

00:48:07.868 --> 00:48:09.848
so interessant, weil es ist halt nicht nur diese eine

00:48:09.848 --> 00:48:11.668
Geschichte, es ist nicht nur HTMX, sondern

00:48:11.668 --> 00:48:13.868
diesen Ansatz verfolgen ganz

00:48:13.868 --> 00:48:15.928
viele Projekte in ganz vielen unterschiedlichen Sprachen.

00:48:16.488 --> 00:48:17.688
Und ich weiß nicht,

00:48:17.688 --> 00:48:19.768
in welchem Talk das war, ob das

00:48:19.768 --> 00:48:21.888
der von der JunkoCren US

00:48:21.888 --> 00:48:24.548
Es war auch, glaube ich, mit TalkPython2Me

00:48:24.548 --> 00:48:27.968
Interview mit dem Entwickler von

00:48:27.968 --> 00:48:31.587
HTMX, sagt er einen Satz,

00:48:31.668 --> 00:48:34.328
den ich von unterschiedlichen Leuten aus unterschiedlichen Communities

00:48:34.328 --> 00:48:37.368
schon ganz oft gehört habe. Den habe ich auch schon gehört

00:48:37.368 --> 00:48:40.008
von Chris McCord von Phoenix LiveView

00:48:40.008 --> 00:48:42.948
und ich habe den auch nochmal woanders gehört.

00:48:43.067 --> 00:48:46.028
Und zwar, der Satz ist, ja, also ehrlich gesagt,

00:48:46.127 --> 00:48:49.488
dafür, dass ich kein JavaScript schreiben wollte, habe ich jetzt ganz schön viel JavaScript geschrieben.

00:48:49.488 --> 00:48:52.228
und das

00:48:52.228 --> 00:48:53.928
sagen, also das ist halt

00:48:53.928 --> 00:48:55.868
dieses Thema, also ganz viele Backend-Leute,

00:48:55.968 --> 00:48:57.468
die eigentlich nie JavaScript schreiben wollten,

00:48:58.188 --> 00:48:59.428
haben jetzt

00:48:59.428 --> 00:49:01.928
dann doch viel JavaScript geschrieben, um das loszuwerden

00:49:01.928 --> 00:49:03.888
und wenn

00:49:03.888 --> 00:49:05.228
das viele Leute machen und

00:49:05.228 --> 00:49:07.648
quasi zu einem ähnlichen Ergebnis kommen und

00:49:07.648 --> 00:49:09.788
das tatsächlich funktioniert, dann wird das wahrscheinlich

00:49:09.788 --> 00:49:11.788
auch so bleiben und das sieht danach aus, als hätte

00:49:11.788 --> 00:49:13.668
man da was gefunden, was tatsächlich gut funktioniert und das

00:49:13.668 --> 00:49:15.567
macht es dann natürlich auch interessant, also wenn das jetzt nur

00:49:15.567 --> 00:49:17.848
eine Geschichte wäre, aber ich weiß

00:49:17.848 --> 00:49:19.748
nicht ob mir jetzt die ganzen Namen einfallen, aber

00:49:19.748 --> 00:49:21.908
in der Ruby on Rails Welt

00:49:21.908 --> 00:49:23.928
also bei HTMLX wird ja auch viel mit Ruby on Rails

00:49:23.928 --> 00:49:25.908
zusammenverwendet, gibt es halt noch Hotwire

00:49:25.908 --> 00:49:27.828
also ist auch Akronym

00:49:27.828 --> 00:49:29.087
für HTML over the wire

00:49:29.087 --> 00:49:31.868
und Turbolinks, wo

00:49:31.868 --> 00:49:33.188
halt dann quasi schon die

00:49:33.188 --> 00:49:35.748
Seite hinter dem Link gefetcht wird

00:49:35.748 --> 00:49:37.648
sodass wenn man auf den Link draufklickt, das halt dann

00:49:37.648 --> 00:49:39.048
direkt da ist

00:49:39.048 --> 00:49:40.808
dann gibt es

00:49:40.808 --> 00:49:43.567
eben bei

00:49:43.567 --> 00:49:44.448
Elixier

00:49:44.448 --> 00:49:47.587
in der Elixier Welt Phoenix gibt es LiveView

00:49:47.587 --> 00:49:49.868
wo auch HTML-Snippets halt über den Websocket

00:49:49.868 --> 00:49:51.468
geschickt werden, dann gibt es das

00:49:51.468 --> 00:49:53.127
in PHP,

00:49:53.748 --> 00:49:55.408
da heißt das irgendwie Livewire in Laravel

00:49:55.408 --> 00:49:57.208
und

00:49:57.208 --> 00:49:59.368
ja,

00:49:59.748 --> 00:50:01.448
ich weiß es gar nicht, da gibt es

00:50:01.448 --> 00:50:03.528
also auf jeden Fall in vielen unterschiedlichen

00:50:03.528 --> 00:50:04.928
Communities machen Leute jetzt gerade sowas

00:50:04.928 --> 00:50:06.708
und ja,

00:50:07.488 --> 00:50:09.708
das scheint irgendwie ein sehr, sehr

00:50:09.708 --> 00:50:10.748
breiter Trend zu sein, ja.

00:50:11.587 --> 00:50:13.708
Der Schöne an dem HTML-X ist ja auch,

00:50:13.908 --> 00:50:14.488
dass es

00:50:14.488 --> 00:50:17.508
sich da vollkommen raushält, also das

00:50:17.508 --> 00:50:18.308
kann man mit jedem

00:50:18.308 --> 00:50:21.288
Backend-Framework nutzen, wie man möchte

00:50:21.288 --> 00:50:23.067
und die anderen, die sind halt

00:50:23.067 --> 00:50:25.248
oft Backend-spezifisch,

00:50:25.408 --> 00:50:26.587
also bei Ruby und Rails

00:50:26.587 --> 00:50:28.288
ist es Hotwire

00:50:28.288 --> 00:50:30.228
und drum war das,

00:50:31.048 --> 00:50:33.148
ich habe es mir angeschaut und hätte

00:50:33.148 --> 00:50:35.107
eigentlich da Interesse gehabt, aber das war dann

00:50:35.107 --> 00:50:37.368
irgendwie schon wieder irgendwie kompliziert

00:50:37.368 --> 00:50:38.868
und nicht so einfach. Das

00:50:38.868 --> 00:50:41.228
HTMX hat es, glaube ich, der Carson Cross

00:50:41.228 --> 00:50:43.248
hat es da sehr, sehr schön

00:50:43.248 --> 00:50:45.228
nochmal reduziert von der Komplexität

00:50:45.228 --> 00:50:46.828
und das ist ja auch im Endeffekt sein Ziel.

00:50:46.828 --> 00:51:16.808
und Jochen unterhalten sich über die Programmiersprache Python

00:51:16.828 --> 00:51:18.668
von Adam Johnson,

00:51:18.928 --> 00:51:20.488
der hat irgendwie ein Ding geschrieben,

00:51:21.788 --> 00:51:22.988
Django HTMX,

00:51:23.528 --> 00:51:24.948
das ist eben als

00:51:24.948 --> 00:51:26.708
Integration jetzt auch in Django als Framework,

00:51:26.788 --> 00:51:28.888
aber das macht auch fast nichts, das macht ganz wenig,

00:51:29.408 --> 00:51:30.087
das macht nur

00:51:30.087 --> 00:51:32.748
sozusagen eine Middleware dabei,

00:51:33.148 --> 00:51:34.848
die an den Request halt ein Attribut

00:51:34.848 --> 00:51:36.648
dran bappt,

00:51:36.728 --> 00:51:39.008
ich weiß nicht, ist HTMX oder sowas, wo man dann einfach nachgucken

00:51:39.008 --> 00:51:40.868
kann, weil man muss auf der Serverseite halt

00:51:40.868 --> 00:51:43.028
unterscheiden können, war das jetzt ein Request,

00:51:43.127 --> 00:51:44.688
der von HTMX gekommen ist oder nicht und dann

00:51:44.688 --> 00:51:46.828
je nachdem, rendert man eben

00:51:46.828 --> 00:51:48.508
die komplette, das ist auch sowas, wenn

00:51:48.508 --> 00:51:50.968
ein Browser kein JavaScript kann, das ist gar kein Problem

00:51:50.968 --> 00:51:52.268
das funktioniert einfach so weiter

00:51:52.268 --> 00:51:54.928
weil auf der Serverseite rendert

00:51:54.928 --> 00:51:56.708
man halt, wenn man sieht, okay

00:51:56.708 --> 00:51:58.728
es war kein HTMLX-Request, dann rendert man einfach

00:51:58.728 --> 00:52:00.188
die komplette Seite raus, das ist gar kein Problem

00:52:00.188 --> 00:52:02.607
und wenn es ein HTMLX-Request war, gut, dann

00:52:02.607 --> 00:52:04.688
rendert man halt nur das Fragment raus, das halt

00:52:04.688 --> 00:52:06.768
ersetzt werden muss und das heißt

00:52:06.768 --> 00:52:08.668
es funktioniert in beiden Fällen und irgendwie

00:52:08.668 --> 00:52:10.627
man hat halt diese Windelware dann, um halt

00:52:10.627 --> 00:52:12.708
da quasi sich nicht selber überlegen zu müssen, wie

00:52:12.708 --> 00:52:14.548
man jetzt erkennt, ob das jetzt ein HTMLX-Request war

00:52:14.548 --> 00:52:14.868
oder nicht.

00:52:16.228 --> 00:52:18.448
Und dann hat das Ding auch noch so Teile drin

00:52:18.448 --> 00:52:20.148
für, damit diese

00:52:20.148 --> 00:52:22.627
Fehlerviews halt

00:52:22.627 --> 00:52:24.648
ordentlich funktionieren. Also wenn halt ein Fragment

00:52:24.648 --> 00:52:26.468
nicht ordentlich gerendert wird, dann ist

00:52:26.468 --> 00:52:28.028
wenn man sonst nichts macht,

00:52:28.888 --> 00:52:30.468
ignoriert, also wenn dann zum Beispiel

00:52:30.468 --> 00:52:32.107
ein 400 zurückkommt auf ein

00:52:32.107 --> 00:52:34.587
HTMLX-Request, dann sieht man nichts, weil

00:52:34.587 --> 00:52:48.155
HTMLX schmei einfach die Antwort dann weg Und vielleicht will man die Standard Django aber haben mit dem Stacktrace oder so Und das ist halt auch noch so ein bisschen das ist glaube ich eine HTMLX

00:52:48.155 --> 00:52:49.975
in JavaScript, die

00:52:49.975 --> 00:52:51.355
in Django-HTMLX drin ist,

00:52:51.795 --> 00:52:53.875
die dann halt dafür sorgt, dass man eben die normale

00:52:53.875 --> 00:52:55.835
Django-Fehler-Seite sieht,

00:52:56.075 --> 00:52:57.935
auch wenn ein HTMLX-Request

00:52:57.935 --> 00:52:59.195
halt aus der Seite schiebgegangen ist.

00:52:59.915 --> 00:53:01.975
Genau. Also ich habe es mir auch angeschaut, die Bibliothek,

00:53:02.875 --> 00:53:04.055
habe eher das gleiche festgestellt

00:53:04.055 --> 00:53:06.055
wie du. Es ist relativ wenig

00:53:06.055 --> 00:53:08.235
eigentlich drin und es ist auch wenig notwendig

00:53:08.235 --> 00:53:10.135
und darum nutze ich es ja auch

00:53:10.135 --> 00:53:11.975
gar nicht, weil ich habe mir für mich dann

00:53:11.975 --> 00:53:14.155
nochmal überlegt, wie willst du deine

00:53:14.155 --> 00:53:15.715
Anwendung gestalten? Also zum einen

00:53:15.715 --> 00:53:17.035
unterstütze ich nicht

00:53:17.035 --> 00:53:20.015
JavaScript-lose Browser,

00:53:20.295 --> 00:53:22.195
also JavaScript ist für meine Seite

00:53:22.195 --> 00:53:23.115
jetzt notwendig, also

00:53:23.115 --> 00:53:25.875
da ist es schon im 21. Jahrhundert

00:53:25.875 --> 00:53:28.015
und aber das ist dann

00:53:28.015 --> 00:53:29.995
so, dass ich die

00:53:29.995 --> 00:53:32.055
URLs trenne, also

00:53:32.055 --> 00:53:33.955
es gibt den ersten Seitenaufruf

00:53:33.955 --> 00:53:38.155
und der erste Seitenaufruf bringt eben eine ganz normale HTML-Seite

00:53:38.155 --> 00:53:41.635
mit dem HTML-Tag, Head-Tag, Poly-Tag und HTML wieder zu.

00:53:42.715 --> 00:53:47.515
Und ab dann werden eigentlich meistens Schnipsel ausgetauscht.

00:53:47.715 --> 00:53:52.135
Und die URLs, wo ich eben ein Schnipsel bekommen will,

00:53:52.775 --> 00:53:56.315
die liefern immer ein Schnipsel zurück und die werden immer über HTMLX aufgerufen.

00:53:56.775 --> 00:53:59.255
Ob das ist diese Fallunterscheidung, selber seit ich gar nicht habe,

00:53:59.335 --> 00:54:02.915
von wegen, ist das jetzt ein HTMLX-Request oder nicht.

00:54:02.915 --> 00:54:10.355
Es gibt glaube ich auch sowas von Django Forms, irgendwie Django Forms Dynamic oder sowas, dass man da quasi Django Forms nutzen kann, direkt als HTMLX Forms.

00:54:10.415 --> 00:54:11.855
Ah, okay. Das kann ich noch gar nicht.

00:54:11.875 --> 00:54:13.055
Das ist irgendwie auch ganz cool dazu.

00:54:14.215 --> 00:54:14.755
Cool, ja.

00:54:16.195 --> 00:54:19.075
Das heißt, also Django Forms kennt ihr vielleicht, da kann man das direkt so einbauen.

00:54:19.915 --> 00:54:20.775
Das ist immer ganz hilfreich.

00:54:21.795 --> 00:54:24.635
Ja, ich habe letztens auch das irgendwo gesehen, aber ich habe es mir noch nicht angeguckt.

00:54:26.015 --> 00:54:26.375
Interessant.

00:54:28.535 --> 00:54:28.895
Ja.

00:54:28.895 --> 00:54:33.835
Ja, also wir haben so ein bisschen jetzt glaube ich über

00:54:33.835 --> 00:54:37.715
die Syntax gesprochen, über das Beispiel und das, was alles Schönes gibt

00:54:37.715 --> 00:54:42.155
also man macht meistens halt mit diesem Swap-Target oder sowas, ja, also Moment, es gibt

00:54:42.155 --> 00:54:46.235
Swap und Target glaube ich, ja, also das heißt wir haben, wir sagen quasi, was getauscht werden

00:54:46.235 --> 00:54:50.215
soll, wohin das getauscht werden soll und wann es

00:54:50.215 --> 00:54:54.115
getauscht werden soll. Genau, richtig, das mit dem Trigger geht sozusagen los

00:54:54.115 --> 00:54:58.175
also bei einem Form muss man den Trigger jetzt gar nicht angeben, weil bei einem Form ist es

00:54:58.175 --> 00:55:00.795
das Drücken auf den Submit-Button.

00:55:01.675 --> 00:55:04.275
Aber es gibt eben andere Trigger, wie du vorhin

00:55:04.275 --> 00:55:07.375
Dominik angesprochen hast, den Revealed-Trigger

00:55:07.375 --> 00:55:09.275
zum Beispiel. Also ich kann so einen Infinite-Scroll

00:55:09.275 --> 00:55:12.295
implementieren, indem ich ganz unten eben

00:55:12.295 --> 00:55:16.055
einen HTML-Schnipsel habe mit dem

00:55:16.055 --> 00:55:18.695
Trigger Revealed und der feuert dann,

00:55:19.055 --> 00:55:21.915
sobald dieses Schnipselchen in den sichtbaren Bereich

00:55:21.915 --> 00:55:24.875
kommt im Browser. Und das ist natürlich dann

00:55:24.875 --> 00:55:27.955
relativ cool. Dann kriege ich das Event, dann hole ich mir

00:55:27.955 --> 00:55:30.075
neue Daten, dann kann ich 5, 6, 7

00:55:30.075 --> 00:55:31.975
neue Einträge unten

00:55:31.975 --> 00:55:33.935
machen und wenn der Nutzer nach unten

00:55:33.935 --> 00:55:35.875
scrollt, kommt er wieder nach

00:55:35.875 --> 00:55:37.635
unten, kommt wieder das Revealed Event,

00:55:37.935 --> 00:55:39.335
und er holt sich die nächsten Einträge.

00:55:39.435 --> 00:55:41.895
Dann kann man ohne eine Zeile JavaScript

00:55:41.895 --> 00:55:43.735
zu schreiben, so ein Endless

00:55:43.735 --> 00:55:45.495
Scrolling implementieren.

00:55:45.655 --> 00:55:48.035
Das ist eine feine Sache.

00:55:49.715 --> 00:55:50.015
Wir haben

00:55:50.015 --> 00:55:50.535
Swap.

00:55:51.615 --> 00:55:54.015
Swapmesser in der HTML, tauschen out der HTML.

00:55:55.195 --> 00:55:55.635
Target

00:55:55.635 --> 00:55:57.775
und out of band gibt es auch noch.

00:55:57.775 --> 00:56:27.755
und Jochen unterhalten sich über die Programmiersprache Python

00:56:27.775 --> 00:56:35.175
und Out of Band kommt dann noch dazu, bitte tausche außerdem hier das Element mit der ID aus

00:56:35.175 --> 00:56:38.835
und dann kommt dann dort die neue Zahl für die gesamte Summe.

00:56:39.975 --> 00:56:44.755
Das gibt es auch noch, das Out of Band Aktualisierung von Daten angekommen ist.

00:56:44.875 --> 00:56:51.695
Also man kann eben zusätzlich Out of Band, also wenn der Server weiß, hier ich möchte noch was aktualisieren,

00:56:51.695 --> 00:56:56.595
was aber jetzt nicht in dem aktuellen Schnipsel mit aktualisiert wird

00:56:56.595 --> 00:57:00.295
kann der Server out of band noch zusätzliche Schnipsel mitschicken

00:57:00.295 --> 00:57:03.235
was dann eben am Client aktualisiert wird

00:57:03.235 --> 00:57:05.935
Anwendungsfall war eben so eine Art Warenkorb

00:57:05.935 --> 00:57:08.295
man klickt unten bei dem einen Artikel plus

00:57:08.295 --> 00:57:11.175
dann weiß ich, jetzt habe ich jetzt zweimal diesen einen Artikel

00:57:11.175 --> 00:57:16.415
aber oben, rechts oben als Beispiel ist so ein Einkaufswagensymbol

00:57:16.415 --> 00:57:19.055
und da will ich die Summe aller Waren anzeigen

00:57:19.055 --> 00:57:21.195
dann kann ich damit eben das auch aktualisieren

00:57:21.195 --> 00:57:22.655
sondern zwei Stellen, einmal diese

00:57:22.655 --> 00:57:25.075
unten bei der eigentlichen Ware

00:57:25.075 --> 00:57:26.115
und oben im Warenkorb.

00:57:27.135 --> 00:57:28.875
Das ist auch so ein ganz nettes Feature

00:57:28.875 --> 00:57:30.235
von dem HTMX.

00:57:31.695 --> 00:57:33.135
Ja, was gibt's

00:57:33.135 --> 00:57:33.975
sonst noch zu sagen?

00:57:35.455 --> 00:57:36.895
Ja, auch solche Sachen, dass man

00:57:36.895 --> 00:57:39.035
da fand ich auch nett

00:57:39.035 --> 00:57:41.095
sagen kann, okay

00:57:41.095 --> 00:57:43.155
lad mal dieses Element

00:57:43.155 --> 00:57:45.195
alle zwei Sekunden nach, das ist halt auch so ein

00:57:45.955 --> 00:57:47.315
Anwendungsfall

00:57:47.315 --> 00:57:48.875
für Autoharte, man könnte sich auch fragen, wozu

00:57:48.875 --> 00:57:50.055
brauchen wir eigentlich Autoharte und Inner?

00:57:50.055 --> 00:57:52.435
weil wenn man das komplette

00:57:52.435 --> 00:57:54.615
Element ersetzt, dann werden halt auch

00:57:54.615 --> 00:57:56.155
die HTMLX Attribute mit ersetzt

00:57:56.155 --> 00:57:58.395
und man kann zum Beispiel dann von der

00:57:58.395 --> 00:57:59.815
Serverseite her steuern

00:57:59.815 --> 00:58:02.235
wie lange irgendwas dann

00:58:02.235 --> 00:58:04.495
also man könnte zum Beispiel, man hat halt irgendwie einen Newsticker oder sowas

00:58:04.495 --> 00:58:06.115
und sagt halt alle zwei Sekunden

00:58:06.115 --> 00:58:08.635
werden da neue Daten geladen

00:58:08.635 --> 00:58:10.455
und dann kann man von der Serverseite aber sagen

00:58:10.455 --> 00:58:12.435
wenn man das komplette Element austauscht, okay man nimmt

00:58:12.435 --> 00:58:13.815
diesen Trigger raus

00:58:13.815 --> 00:58:16.075
irgendwann nach 10 Minuten oder so

00:58:16.075 --> 00:58:17.655
und dann werden halt keine neuen

00:58:17.655 --> 00:58:20.135
wird halt nicht mehr gepollt quasi.

00:58:21.195 --> 00:58:22.635
Und dafür muss man dann das komplette

00:58:22.635 --> 00:58:24.355
Element ersetzen. Dann braucht man halt out HTML.

00:58:24.995 --> 00:58:26.695
Ja, also genau. Solche Sachen kann man

00:58:26.695 --> 00:58:27.575
auch sehr einfach machen.

00:58:30.135 --> 00:58:32.955
Was gibt es noch?

00:58:35.915 --> 00:58:36.755
Ja, genau.

00:58:36.855 --> 00:58:38.315
Überhaupt diese Geschichten, wenn

00:58:38.315 --> 00:58:40.615
vom Server Sachen kommen, da weiß ich

00:58:40.615 --> 00:58:42.155
auch noch nicht so genau, wie das dann...

00:58:42.155 --> 00:58:44.675
Gibt es Support für Websockets oder solche

00:58:44.675 --> 00:58:44.975
Sachen?

00:58:44.975 --> 00:58:47.435
irgendwie? Ja, ja, WebSocket-Support

00:58:47.435 --> 00:58:49.215
gibt es, habe ich aber selber jetzt noch

00:58:49.215 --> 00:58:51.275
nicht ausprobiert. Und es wird

00:58:51.275 --> 00:58:53.375
aktuell eben die Bibliothek

00:58:53.375 --> 00:58:55.255
aktualisiert, dass WebSockets zu einem

00:58:55.255 --> 00:58:56.475
externen Paket wird.

00:58:57.035 --> 00:58:59.055
Dass man also das gar nicht mehr per Default

00:58:59.055 --> 00:59:00.255
drin hat, sondern

00:59:00.255 --> 00:59:02.735
dann sich selber nachladen muss.

00:59:03.595 --> 00:59:05.155
Ich persönlich finde es gut, das hält die

00:59:05.155 --> 00:59:07.255
Bibliothek klein. Ja, die meisten Leute brauchen

00:59:07.255 --> 00:59:09.215
das halt nicht, denke ich mal. Genau, und dann kann man es auch

00:59:09.215 --> 00:59:11.095
auslagern. Ja,

00:59:11.255 --> 00:59:11.775
ich glaube,

00:59:11.775 --> 00:59:14.255
Server-Sent-Events

00:59:14.255 --> 00:59:16.955
Support dafür ist auch irgendwie drin.

00:59:17.975 --> 00:59:18.635
Da dachte ich auch so,

00:59:18.755 --> 00:59:20.695
habe ich irgendwann letztens

00:59:20.695 --> 00:59:22.775
nochmal geguckt, was das denn wirklich ist, weil das habe ich nie so,

00:59:23.095 --> 00:59:24.655
das ist zwar schon uralt und gibt es total lang,

00:59:24.775 --> 00:59:26.775
aber ich wusste nie so richtig, was das ist.

00:59:27.315 --> 00:59:28.915
Aber ja, es ist halt auch eigentlich nichts Besonderes.

00:59:29.215 --> 00:59:30.835
Und vor allen Dingen, es belegt halt auf dem Server auch,

00:59:30.955 --> 00:59:32.455
man muss halt eine Verbindung offen halten, nur

00:59:32.455 --> 00:59:34.835
dass man halt vom

00:59:34.835 --> 00:59:36.795
Client aus nichts zurückschicken kann, sondern es ist halt

00:59:36.795 --> 00:59:38.275
eine Verbindung, die immer offen bleibt,

00:59:38.875 --> 00:59:40.855
wo man vom Server halt irgendwie Daten

00:59:40.855 --> 00:59:41.675
und klein schicken kann.

00:59:43.375 --> 00:59:44.475
Aber ja,

00:59:44.755 --> 00:59:46.975
mit Django geht das nicht gut.

00:59:47.935 --> 00:59:48.855
Aber man muss halt dafür

00:59:48.855 --> 00:59:49.795
Django Channels verwenden.

00:59:50.395 --> 00:59:50.895
Ja, genau.

00:59:53.475 --> 00:59:54.875
Eine Sache fällt mir noch

00:59:54.875 --> 00:59:57.275
ein, mehr so eine allgemeine

00:59:57.275 --> 00:59:57.555
Sache.

00:59:58.815 --> 01:00:00.755
Viele sind ja Freunde dieser JSON

01:00:00.755 --> 01:00:02.975
APIs, weil sie sich dann denken, ah super,

01:00:03.175 --> 01:00:04.315
dann habe ich ja eine

01:00:04.315 --> 01:00:06.855
API und damit kann ich zum

01:00:06.855 --> 01:00:08.895
einen ein Webfrontend machen und

01:00:08.895 --> 01:00:10.775
zum anderen kann ich da eine API

01:00:10.775 --> 01:00:13.395
anbieten für eine Maschine-Maschine-Kommunikation.

01:00:14.455 --> 01:00:16.155
Und das ist aus meiner Sicht

01:00:16.155 --> 01:00:17.755
Blödsinn.

01:00:19.215 --> 01:00:20.935
Weil man

01:00:20.935 --> 01:00:23.215
zwei ganz verschiedene Anwendungsfelder

01:00:23.215 --> 01:00:23.975
zusammenwürfelt.

01:00:25.235 --> 01:00:26.335
Bei einer GUI,

01:00:26.835 --> 01:00:28.895
da will ich super agil sein, die will ich

01:00:28.895 --> 01:00:30.675
täglich aktualisieren können, da will ich

01:00:30.675 --> 01:00:32.955
täglich deployen können und da sollen

01:00:32.955 --> 01:00:34.795
sich auch täglich kleine Änderungen ergeben

01:00:34.795 --> 01:00:37.235
können. Weil das den Nutzer

01:00:37.235 --> 01:00:38.895
in der Regel nicht stört,

01:00:38.895 --> 01:00:40.515
wenn es so ein kleines bisschen irgendwie anders ist

01:00:40.515 --> 01:00:42.235
und ein kleines bisschen verbessert wird

01:00:42.235 --> 01:00:43.295
kontinuierlich.

01:00:44.235 --> 01:00:46.695
Will ich aber eine Maschine zu Maschinenkommunikation haben,

01:00:47.335 --> 01:00:48.195
ist sowas wie

01:00:48.195 --> 01:00:50.195
A-B-Testing vollkommener Schwachsinn.

01:00:50.315 --> 01:00:51.655
Natürlich, ich werde ja nicht

01:00:51.655 --> 01:00:54.315
einer Maschine sagen,

01:00:54.375 --> 01:00:56.275
du kriegst die API und

01:00:56.275 --> 01:00:58.215
der andere Client kriegt

01:00:58.215 --> 01:01:00.415
diese APIs und diese Daten.

01:01:00.595 --> 01:01:02.215
Das ist ja vollkommen konträre, ganz

01:01:02.215 --> 01:01:03.575
verschiedene Anwendungsfälle.

01:01:04.755 --> 01:01:06.175
Und drum, das war bei mir

01:01:06.175 --> 01:01:08.275
anfangs bei Angular, wo ich dachte, oh cool,

01:01:08.275 --> 01:01:10.295
eine API und da kann ich dann

01:01:10.295 --> 01:01:12.195
GUI entwickeln und außerdem

01:01:12.195 --> 01:01:14.095
eben da einen maschinellen

01:01:14.095 --> 01:01:16.375
Zugriff auf dieser Seite haben. Aber es sind eben

01:01:16.375 --> 01:01:18.495
zwei ganz getrennte Dinge, die auch

01:01:18.495 --> 01:01:20.955
ganz getrennt

01:01:20.955 --> 01:01:21.935
behandelt werden sollten.

01:01:22.815 --> 01:01:24.715
Da könnte man

01:01:24.715 --> 01:01:27.315
ja dann auch dann sagen, na gut, wenn ich Maschine-Maschine-Kommunikation

01:01:27.315 --> 01:01:28.855
machen will, könnte man ja

01:01:28.855 --> 01:01:30.855
sowas wie gRPC einsetzen,

01:01:31.415 --> 01:01:32.595
was dann im Endeffekt auch

01:01:32.595 --> 01:01:34.795
mehr Datentypen unterstützt und insgesamt

01:01:34.795 --> 01:01:35.715
optimaler ist.

01:01:35.715 --> 01:01:39.715
Wir haben noch nicht genau RPC erklärt und jetzt kommst du mit gRPC an.

01:01:39.795 --> 01:01:41.515
Das muss man erklären, was das ist.

01:01:42.135 --> 01:01:45.735
Das gRPC ist eine Technologie von Google

01:01:45.735 --> 01:01:50.175
und das ist ein binäres RPC, also Remote Procedure Call

01:01:50.175 --> 01:01:54.875
Methode und das ist sehr effizient

01:01:54.875 --> 01:01:58.135
und schnell. Es ist auch

01:01:58.135 --> 01:02:02.575
schema-basiert, also du musst klar, der Server sagt klar,

01:02:02.575 --> 01:02:04.275
was für Daten er austauscht

01:02:04.275 --> 01:02:05.535
und das wird

01:02:05.535 --> 01:02:08.595
im Kubernetes-Bereich

01:02:08.595 --> 01:02:10.515
oder so ähnlich dann auch stark

01:02:10.515 --> 01:02:12.575
verwendet. Aber halt bei den

01:02:12.575 --> 01:02:14.615
Web-Entwicklern ist gRPC noch nicht angekommen

01:02:14.615 --> 01:02:16.595
und das wird wahrscheinlich auch noch

01:02:16.595 --> 01:02:17.875
ein bisschen dauern, bis das

01:02:17.875 --> 01:02:20.615
da bekannt und verstanden wird,

01:02:20.695 --> 01:02:21.415
um was es da eigentlich geht.

01:02:24.195 --> 01:02:24.635
Ja.

01:02:26.215 --> 01:02:27.015
Naja, da ist

01:02:27.015 --> 01:02:28.915
JSON schon so das Ding,

01:02:29.215 --> 01:02:30.675
also ich meine, es gibt ja im Grunde

01:02:30.675 --> 01:02:32.655
keinen großen, keinen wirklichen Grund, warum man

01:02:32.655 --> 01:02:34.615
jetzt irgendwie, außer dass man halt

01:02:34.615 --> 01:02:36.455
das JSON irgendwie nahe liegt, wenn man

01:02:36.455 --> 01:02:38.355
jetzt JavaScript macht, aber

01:02:38.355 --> 01:02:40.135
ansonsten gibt es ja gar keinen

01:02:40.135 --> 01:02:42.235
Grund dafür, dass man könnte halt auch irgendwie

01:02:42.235 --> 01:02:43.275
andere

01:02:43.275 --> 01:02:46.435
Datenformate halt benutzen.

01:02:46.655 --> 01:02:48.495
Ich meine, bei Django REST Framework war das ja auch mal so,

01:02:48.555 --> 01:02:50.475
da konnte man halt auch, ich glaube, ich weiß nicht,

01:02:50.495 --> 01:02:52.475
ob das heutzutage noch jemand macht, aber früher war das halt

01:02:52.475 --> 01:02:54.495
durchaus auch üblich, da zu sagen, okay,

01:02:54.575 --> 01:02:56.495
ich rendere meinen Kram nicht nach JSON,

01:02:56.595 --> 01:02:57.255
sondern nach XML.

01:02:59.455 --> 01:03:00.395
Oder wie heißt dieses

01:03:00.395 --> 01:03:01.835
Es gibt auch einen Binär-JSON.

01:03:02.975 --> 01:03:03.515
B-JSON?

01:03:05.055 --> 01:03:05.855
Jason B.

01:03:06.415 --> 01:03:07.575
Ja, nee, das ist es.

01:03:08.155 --> 01:03:10.935
Ach, ich hab's wieder vergessen.

01:03:11.595 --> 01:03:13.415
Aber ja,

01:03:13.595 --> 01:03:14.875
es gibt irgendwie auch eine

01:03:14.875 --> 01:03:16.795
binäre Variante davon, die

01:03:16.795 --> 01:03:19.075
man auch mit Django Resolver ganz gut verwenden konnte.

01:03:19.195 --> 01:03:20.075
Da wurde es halt ein bisschen kleiner.

01:03:20.875 --> 01:03:22.795
Aber ja, tatsächlich

01:03:22.795 --> 01:03:25.355
benutzen aber doch irgendwie alle JSONs letztlich.

01:03:25.835 --> 01:03:26.775
Ja, aktuell.

01:03:26.775 --> 01:03:28.655
Ich bin ehrlich gesagt ganz tiefenentspannt.

01:03:28.655 --> 01:03:30.495
also um 2001

01:03:30.495 --> 01:03:32.515
habe ich meine Diplomarbeit

01:03:32.515 --> 01:03:34.475
geschrieben und klar, was war das Thema? XML.

01:03:35.235 --> 01:03:36.455
Damals ging alles um

01:03:36.455 --> 01:03:38.115
XML und auch das HTML

01:03:38.115 --> 01:03:39.975
sollte XML werden und so weiter.

01:03:40.075 --> 01:03:42.155
Da bin ich ja so froh, dass dann dort

01:03:42.155 --> 01:03:44.095
irgendwie die Vernunft gesiegt hat und

01:03:44.095 --> 01:03:46.135
das XHTML sich nicht

01:03:46.135 --> 01:03:46.935
durchgesetzt hat,

01:03:47.035 --> 01:03:50.115
weil das ist am Endeffekt dann auch nur

01:03:50.115 --> 01:03:51.635
Krampf, wenn man das zu sehr

01:03:51.635 --> 01:03:53.395
in die Richtung treibt und wie gesagt,

01:03:54.335 --> 01:03:55.695
damals war alles mit XML,

01:03:56.555 --> 01:03:57.835
aktuell ist alles mit JSON

01:03:57.835 --> 01:03:59.875
und da bin ich auch ganz tief

01:03:59.875 --> 01:04:01.695
entspannt, dass da dann irgendwie auch nochmal

01:04:01.695 --> 01:04:04.155
was Neues kommt. So ist auf jeden Fall

01:04:04.155 --> 01:04:05.895
die Entwicklung aus meiner Sicht.

01:04:07.015 --> 01:04:07.135
Ja.

01:04:07.975 --> 01:04:09.135
Naja, da ist noch nicht

01:04:09.135 --> 01:04:11.855
aller Tage Abend, was diese

01:04:11.855 --> 01:04:13.475
alle

01:04:13.475 --> 01:04:14.735
gehandelt hätten.

01:04:16.875 --> 01:04:17.835
Ehrlich gesagt, ich finde es

01:04:17.835 --> 01:04:19.755
persönlich angenehmer als XML. XML war nochmal

01:04:19.755 --> 01:04:20.875
ein Stück schrecklicher.

01:04:24.195 --> 01:04:25.475
Das ist der Grund, wo ich sage,

01:04:25.475 --> 01:04:26.735
den Computer will ich nicht anfassen.

01:04:27.835 --> 01:04:29.095
Das ist komisch, ganz komisch.

01:04:30.235 --> 01:04:30.675
Wirklich.

01:04:31.715 --> 01:04:33.815
Ja, klar, da gab es die größten

01:04:33.815 --> 01:04:35.815
komischen Sachen wie XLT

01:04:35.815 --> 01:04:36.395
und sowas.

01:04:38.395 --> 01:04:39.975
Viel schlimmer als Assembly oder sowas.

01:04:43.735 --> 01:04:45.655
Tja, ja. Aber wir haben doch einige Sachen nicht

01:04:45.655 --> 01:04:47.575
erklärt und zwar, wie hieß der nochmal?

01:04:47.675 --> 01:04:48.435
Carsten Gross?

01:04:48.955 --> 01:04:50.715
Carsten Gross, glaube ich,

01:04:50.835 --> 01:04:52.695
weil er möchte wahrscheinlich vermeiden, dass wir

01:04:52.695 --> 01:04:53.955
ihn towern.

01:04:55.175 --> 01:04:55.615
Sorry.

01:04:55.615 --> 01:05:02.655
jedenfalls hat er so ein Talk gehalten und da hat er auch viel über Haters gesprochen.

01:05:04.335 --> 01:05:07.415
Das Akronym ist auch ein bisschen unglücklich.

01:05:07.795 --> 01:05:09.155
Ja, sehr gut.

01:05:09.935 --> 01:05:11.475
Was ist denn das und worum geht es denn da?

01:05:12.015 --> 01:05:13.675
Da hatten wir eigentlich schon drüber gesprochen.

01:05:14.055 --> 01:05:16.895
Ja, weil da gibt es ja schon Beispiele auch auf der Seite von HTMX.

01:05:17.495 --> 01:05:21.535
Ich persönlich kann dazu halt nur sagen, dass ich es nicht weiß und mich interessiert es auch nicht.

01:05:21.995 --> 01:05:25.335
Das ist ein Steckenpferd und er zählt viel und redet viel.

01:05:25.615 --> 01:05:27.475
Aber mir ist das zu abstrakt.

01:05:28.055 --> 01:05:29.775
Ich halte mich aus den Diskussionen

01:05:29.775 --> 01:05:31.315
da auch raus, was ist REST, was ist

01:05:31.315 --> 01:05:32.175
HATEOs oder irgendwas.

01:05:33.655 --> 01:05:35.535
Für mich ist HTTP greifbar,

01:05:35.675 --> 01:05:37.475
HTML ist für mich greifbar und so weiter.

01:05:38.335 --> 01:05:39.435
Aber das ist mir dann

01:05:39.435 --> 01:05:41.275
zu abstrakt und

01:05:41.275 --> 01:05:42.895
kann ich nicht viel zu sagen.

01:05:43.795 --> 01:05:44.375
Ich glaube,

01:05:44.715 --> 01:05:47.775
die Übersetzung von

01:05:47.775 --> 01:05:49.315
HATEOs ist

01:05:49.315 --> 01:05:51.435
Hypermedia as the Engine of Application State.

01:05:51.615 --> 01:05:53.075
Da geht es so ein bisschen darum, dass

01:05:53.075 --> 01:05:54.955
tatsächlich die

01:05:54.955 --> 01:06:24.935
und Jochen unterhalten sich über die Programmiersprache Python

01:06:24.955 --> 01:06:25.815
eine Perspektive.

01:06:28.775 --> 01:06:29.955
Ja, aber genau,

01:06:30.095 --> 01:06:31.015
das sind dann halt deine

01:06:31.015 --> 01:06:32.875
Datenhaltung, aber

01:06:32.875 --> 01:06:35.775
der Application State ist ja jetzt nicht

01:06:35.775 --> 01:06:36.635
unbedingt in der,

01:06:37.575 --> 01:06:39.735
da hast du ja auch noch andere Sachen, da hast du ja auch noch solche Sachen wie

01:06:39.735 --> 01:06:41.615
dein Cache

01:06:41.615 --> 01:06:43.155
oder du hast halt vielleicht irgendwelche

01:06:43.155 --> 01:06:45.795
Queues und du hast halt auch noch irgendwie

01:06:45.795 --> 01:06:47.435
eine Session und

01:06:47.435 --> 01:06:48.635
ganz viel Zeugs.

01:06:51.635 --> 01:06:53.515
Aber klar, natürlich, also

01:06:53.515 --> 01:06:54.555
Die Frage ist halt,

01:06:55.255 --> 01:06:57.295
bei alles, was sozusagen im Browser passiert, ist halt

01:06:57.295 --> 01:06:58.795
in dem HTML halt irgendwie drin.

01:06:59.275 --> 01:07:01.535
Das ist halt so eine Hattie-S-Geschichte.

01:07:01.655 --> 01:07:03.055
Aber ja, ich finde das auch ziemlich

01:07:03.055 --> 01:07:05.335
kompliziert und theoretisch und das ist

01:07:05.335 --> 01:07:06.695
sehr schwer, das zu erklären.

01:07:08.115 --> 01:07:09.575
Wenn du es ehrlich wie Dependency

01:07:09.575 --> 01:07:11.595
Injection, da kann man sich das hundertmal

01:07:11.595 --> 01:07:13.535
erklären lassen und dann sage ich immer,

01:07:13.595 --> 01:07:15.035
für mich ist es wie Konfigurierung.

01:07:16.055 --> 01:07:17.755
Aber keine Ahnung, das ist

01:07:17.755 --> 01:07:18.415
mir zu abstrakt.

01:07:21.775 --> 01:07:23.275
Ja, weil man den Talk

01:07:23.275 --> 01:07:24.995
schaut und erklärt das halt so ein bisschen.

01:07:25.115 --> 01:07:27.075
Das ist vielleicht ganz gut, wenn man das vielleicht ein bisschen versteht.

01:07:27.475 --> 01:07:28.715
Aber den Talk müssen wir natürlich auch verlinken.

01:07:28.895 --> 01:07:30.075
Der ist natürlich sehr bannrecht.

01:07:30.075 --> 01:07:30.555
Ja, das ist wahr.

01:07:31.115 --> 01:07:33.735
Ja, okay.

01:07:34.795 --> 01:07:36.135
Ja, aber da am besten

01:07:36.135 --> 01:07:37.815
hört man sich genau den Talk dann an

01:07:37.815 --> 01:07:39.535
und nicht uns, wie wir da hochgelegt werden.

01:07:40.155 --> 01:07:41.335
Ja, das ist wahrscheinlich so.

01:07:41.355 --> 01:07:42.955
Ich kann da nicht mitreden.

01:07:45.555 --> 01:07:45.915
Ja.

01:07:46.955 --> 01:07:48.275
Ja, dann habe ich noch eine Frage

01:07:48.275 --> 01:07:49.735
irgendwo. Ich sehe da,

01:07:51.015 --> 01:07:52.015
wo sind die Grenzen

01:07:52.015 --> 01:07:55.295
oder irgendwann, wann sollte man tatsächlich auf React oder Vue umsteigen.

01:07:55.675 --> 01:07:57.735
Da kam dann mal vorher so eine Frage.

01:07:58.755 --> 01:08:01.215
Und da sehe ich aktuell eigentlich keinerlei Grenzen.

01:08:02.915 --> 01:08:06.515
Es erinnert mich so, wie ich vor 20 Jahren mit Python angefangen habe.

01:08:06.735 --> 01:08:09.555
Und da war eben so eine Sache in der Firma.

01:08:09.735 --> 01:08:11.575
Da meinte ich, wollen wir das nicht lieber mit Python machen,

01:08:11.775 --> 01:08:14.735
anstatt aus einer Mischung aus C, C++ und Shell-Skripten.

01:08:15.575 --> 01:08:19.415
Und dann hieß es, naja, da konnte ich bloß herausboxen,

01:08:19.475 --> 01:08:21.535
dass wir für den Prototypen Python nehmen.

01:08:21.535 --> 01:08:23.395
aber danach muss es sozusagen

01:08:23.395 --> 01:08:24.735
dann mal richtig gemacht werden.

01:08:24.735 --> 01:08:26.075
Eine richtige Programmiersprache.

01:08:28.075 --> 01:08:28.595
Ja,

01:08:28.935 --> 01:08:30.675
und das war ich sehr froh,

01:08:30.755 --> 01:08:32.915
dass ich diesen Kompromiss rausboxen

01:08:32.915 --> 01:08:34.375
konnte und im Endeffekt

01:08:34.375 --> 01:08:36.635
hat nie jemand dann

01:08:36.635 --> 01:08:38.275
nochmal nachgefragt, wir sollten das ja

01:08:38.275 --> 01:08:40.555
in C oder C++ machen, weil einfach die Kunden

01:08:40.555 --> 01:08:41.335
zufrieden waren.

01:08:42.155 --> 01:08:44.615
Das hat schnell funktioniert, war alles prima und da

01:08:44.615 --> 01:08:46.615
kamen reihenweise neue Wünsche von

01:08:46.615 --> 01:08:48.675
den Kunden, sodass dann

01:08:48.675 --> 01:08:50.215
das

01:08:50.215 --> 01:08:53.415
eben nie wirklich richtig gemacht werden musste,

01:08:53.555 --> 01:08:55.255
wo ich auch sehr froh

01:08:55.255 --> 01:08:56.515
drüber bin und so.

01:08:56.855 --> 01:08:59.195
Ähnlich ist es jetzt auch hier. Jetzt könnte man sagen,

01:08:59.295 --> 01:09:01.235
ja dann, wenn man es richtig macht, dann müssten wir es

01:09:01.235 --> 01:09:02.675
doch in Vue oder React machen, aber

01:09:02.675 --> 01:09:04.895
keine Ahnung, ich sehe da jetzt

01:09:04.895 --> 01:09:05.735
keinerlei Grenzen.

01:09:07.175 --> 01:09:07.575
Ja.

01:09:08.955 --> 01:09:10.415
Ne, würde ich auch sagen.

01:09:11.695 --> 01:09:13.235
Man kann damit wahrscheinlich

01:09:13.235 --> 01:09:15.015
für die allermeisten Sachen

01:09:15.015 --> 01:09:16.235
ausreichend viel machen.

01:09:16.315 --> 01:09:18.875
Das einzige Problem ist wahrscheinlich, dass man wieder wie immer von vorne anfangen muss,

01:09:18.875 --> 01:09:22.595
und das einmal alles wieder in schönen, mit der eine Technologie bauen muss oder so,

01:09:22.715 --> 01:09:24.835
dass das Change immer das Pain ist.

01:09:24.895 --> 01:09:27.735
Das war wahrscheinlich auch der Grund, warum die Leute und die Menschen bei dir dachten,

01:09:27.835 --> 01:09:29.895
mit C++ schreibt man bessere Webanwendungen oder so.

01:09:30.955 --> 01:09:32.655
Wenn es eine Webanwendung war, das war das natürlich nicht.

01:09:32.655 --> 01:09:37.635
Ja, das war damals auch im Web basiert, aber auch viele Backends.

01:09:37.855 --> 01:09:41.115
Aber das war halt einfach so üblich, das war unüblich.

01:09:41.515 --> 01:09:44.715
Und das Unübliche wird natürlich erstmal in Frage gestellt.

01:09:44.915 --> 01:09:46.775
Und da ist klar, es ist erstmal kein Vertrauen da.

01:09:46.775 --> 01:10:16.755
und Jochen unterhalten sich über die Programmiersprache Python

01:10:16.775 --> 01:10:18.955
ehrlich gesagt sagen würde, das will ich

01:10:18.955 --> 01:10:19.835
gar nicht haben.

01:10:21.175 --> 01:10:22.575
Frameworks sind nicht meine Freunde.

01:10:23.095 --> 01:10:24.355
Und das ist mir durchaus klar.

01:10:24.695 --> 01:10:27.055
Ich will eigentlich möglichst wenig mit Frameworks zu tun

01:10:27.055 --> 01:10:28.275
haben. Also eins, das du kannst?

01:10:29.795 --> 01:10:30.915
Nee, ich will

01:10:30.915 --> 01:10:32.455
eigentlich keine Frameworks verwenden.

01:10:33.115 --> 01:10:34.895
Weil das Problem bei Frameworks

01:10:34.895 --> 01:10:36.735
ist natürlich, dass ich da halt eine richtig fiese,

01:10:36.735 --> 01:10:37.415
harte Kopplung,

01:10:38.055 --> 01:10:40.755
enge Kopplung dran habe und dass ich

01:10:40.755 --> 01:10:42.535
davon nicht mehr wegkomme. Und deswegen

01:10:42.535 --> 01:10:44.695
finde ich als Entwickler das natürlich

01:10:44.695 --> 01:10:45.395
gar nicht so angenehm.

01:10:45.395 --> 01:10:49.235
Auf der anderen Seite gibt es halt einen großen Druck, die zu verwenden

01:10:49.235 --> 01:10:51.735
Aber der kommt ja meistens nicht von den Entwicklern

01:10:51.735 --> 01:10:52.955
sondern der kommt ja meistens dann halt

01:10:52.955 --> 01:10:55.475
und ich würde denken, dass bei den JavaScript-Frameworks

01:10:55.475 --> 01:10:56.035
ist das halt so

01:10:56.035 --> 01:10:58.795
Das sind halt irgendwie

01:10:58.795 --> 01:11:01.595
Firmen, die halt

01:11:01.595 --> 01:11:02.855
vorher eine Applikation haben

01:11:02.855 --> 01:11:04.715
Das habe ich jetzt auch aus der Nähe

01:11:04.715 --> 01:11:07.215
in letzter Zeit irgendwie oft bestaunen dürfen

01:11:07.215 --> 01:11:08.735
gerade was irgendwie

01:11:08.735 --> 01:11:10.935
in dieser Pandemie-Zeit halt

01:11:10.935 --> 01:11:12.715
Die haben halt Applikationen so

01:11:12.715 --> 01:11:15.095
tatsächlich in C++ geschrieben oder Java

01:11:15.095 --> 01:11:15.635
oder sowas,

01:11:16.875 --> 01:11:19.055
die auf Clients laufen,

01:11:19.515 --> 01:11:21.015
also die irgendwie auf dem Desktop laufen

01:11:21.015 --> 01:11:23.075
und die dann halt irgendwie mit einem

01:11:23.075 --> 01:11:24.935
Server reden oder halt irgendwas,

01:11:25.095 --> 01:11:27.175
was auch immer die dann tun. Und das

01:11:27.175 --> 01:11:28.755
funktioniert aber nicht so gut, weil

01:11:28.755 --> 01:11:30.975
irgendwie, wenn die Leute jetzt zu Hause sitzen, dann

01:11:30.975 --> 01:11:32.615
den kannst du dann zum Beispiel einfach nicht mehr so gut,

01:11:33.255 --> 01:11:35.135
also deren Rechner hast du nicht so richtig unter Kontrolle,

01:11:35.775 --> 01:11:37.275
dann irgendwie

01:11:37.275 --> 01:11:38.935
Netzwerk ist oft schlecht,

01:11:39.575 --> 01:11:40.915
irgendwie, das funktioniert

01:11:40.915 --> 01:11:42.915
alles nicht so super. Dann hilft bloß halt so ein

01:11:42.915 --> 01:11:44.815
Citrix oder so. Genau, das war

01:11:44.815 --> 01:11:48.835
und das ist dann eine Lösung, aber das ist halt auch schrecklich

01:11:48.835 --> 01:11:50.955
und

01:11:50.955 --> 01:11:52.215
im Zuge

01:11:52.215 --> 01:11:54.595
dieses Erkenntnisprozesses, dass dann viele

01:11:54.595 --> 01:11:56.475
sagen, oh, das ist ja alles ganz furchtbar, das funktioniert ja gar nicht,

01:11:57.175 --> 01:11:58.655
stellen jetzt ganz viele um

01:11:58.655 --> 01:12:00.355
auf webbasierte Geschichten, weil

01:12:00.355 --> 01:12:01.755
mit webbasierten Geschichten geht das halt.

01:12:03.515 --> 01:12:03.795
Und

01:12:03.795 --> 01:12:06.715
naja, wenn ich jetzt sozusagen

01:12:06.715 --> 01:12:07.855
irgendwie eine große

01:12:07.855 --> 01:12:10.595
grafische GUI

01:12:10.595 --> 01:12:12.655
Anwendung umstelle, halt

01:12:12.655 --> 01:12:14.295
auf irgendwas webbasiertes, naja,

01:12:14.815 --> 01:12:16.775
Dann ist halt sehr naheliegend zu sagen, okay, ich habe hier

01:12:16.775 --> 01:12:18.935
mein Team mit irgendwie 50, 100 Leuten, keine Ahnung,

01:12:19.115 --> 01:12:20.775
irgendwie ein paar Teams aufgeteilt

01:12:20.775 --> 01:12:22.215
und die haben halt ihren

01:12:22.215 --> 01:12:24.755
Bildprozess und keine Ahnung, ihre Tools

01:12:24.755 --> 01:12:26.415
und die Architektur-Patterns, die sie halt irgendwie verwenden.

01:12:26.955 --> 01:12:29.095
Gibt es da nicht vielleicht irgendeinen Enterprise

01:12:29.095 --> 01:12:30.835
Web-Framework, das ich verwenden kann,

01:12:30.935 --> 01:12:32.515
wo ich das dann quasi genauso machen kann?

01:12:33.115 --> 01:12:34.735
Und dann greifen wir halt vielleicht zu Angular

01:12:34.735 --> 01:12:36.795
irgendwie oder so, weil das halt

01:12:36.795 --> 01:12:38.635
so ähnlich ist und halt auch dieses ganze

01:12:38.635 --> 01:12:40.955
Framework irgendwie Sprech

01:12:40.955 --> 01:12:42.695
und Enterprise Sprech halt

01:12:42.695 --> 01:12:43.355
damit drin ist.

01:12:43.355 --> 01:12:46.575
und das Problem dabei ist aber natürlich,

01:12:46.695 --> 01:12:48.035
dass man das eben nicht machen kann.

01:12:48.115 --> 01:12:50.335
Du kannst nicht einfach irgendwie eine große Applikation nehmen

01:12:50.335 --> 01:12:52.255
und dann das

01:12:52.255 --> 01:12:54.315
quasi genauso, wie du es vorher gemacht hast,

01:12:54.375 --> 01:12:56.295
mit JavaScript machen und dann ist es halt eine Web-Anwendung.

01:12:56.355 --> 01:12:58.135
Das funktioniert halt nicht, sondern du musst eigentlich

01:12:58.135 --> 01:13:00.515
dir überlegen, okay, die muss dann halt anders

01:13:00.515 --> 01:13:02.455
funktionieren, weil Web-Anwendungen halt nun mal einfach

01:13:02.455 --> 01:13:03.875
anders funktionieren als diese

01:13:03.875 --> 01:13:06.715
klassischen Desktop-UI-Integrale.

01:13:06.715 --> 01:13:08.755
Ja, dann müsste jemand auf jeden Fall erstmal den Unterschied verstehen,

01:13:08.935 --> 01:13:10.755
was vielleicht schon eine Herausforderung ist

01:13:10.755 --> 01:13:12.575
und dann muss ja jemand, der den Unterschied

01:13:12.575 --> 01:13:14.475
verstanden hat, den Leuten, die das entscheiden, auch

01:13:14.475 --> 01:13:16.355
erklären, dass das auch die richtige Idee ist, das zu tun.

01:13:16.555 --> 01:13:18.595
Aber das Problem ist jetzt, stell dir vor, du bist derjenige,

01:13:18.735 --> 01:13:20.495
der zuständig ist für diese Entwickler und du weißt, die

01:13:20.495 --> 01:13:22.395
kennen jetzt aber ihr sonst was

01:13:22.395 --> 01:13:24.455
Framework halt und wie kriegst du

01:13:24.455 --> 01:13:25.615
die beschäftigt mit

01:13:25.615 --> 01:13:28.535
der Umstellung auf irgendwas Webbasiertes?

01:13:29.875 --> 01:13:30.575
Ohne, dass

01:13:30.575 --> 01:13:32.595
du die ein Jahr lang schulen musst oder keine Ahnung

01:13:32.595 --> 01:13:34.395
wie der Produktivität so beeinträchtigt ist.

01:13:34.415 --> 01:13:36.475
Das geht nicht so einfach. Ja, aber wenn du

01:13:36.475 --> 01:13:38.295
halt dann ganz verzweifelt genug bist, denkst du dir,

01:13:38.355 --> 01:13:39.055
vielleicht geht es mit Angular.

01:13:40.495 --> 01:13:42.515
Ich würde sagen, ohne diese Schulung geht das

01:13:42.515 --> 01:13:43.175
nicht so einfach.

01:13:44.055 --> 01:13:45.715
Also es ist einfach eine schwierige Situation auch.

01:13:46.855 --> 01:13:48.615
Also wenn du die Sprache

01:13:48.615 --> 01:13:49.855
wechseln musst, ist natürlich schon mal schwierig.

01:13:50.875 --> 01:13:52.475
Das heißt, vielleicht ist es gut tatsächlich,

01:13:52.575 --> 01:13:54.835
wenn man irgendwie vor Desktop-GUI-Anwendung

01:13:54.835 --> 01:13:56.035
in Python geschrieben hat,

01:13:56.135 --> 01:13:58.735
dann kann man vielleicht auch Web-Anwendung in Python

01:13:58.735 --> 01:14:00.415
schreiben, obwohl ich auch schon finde, dass TestDjango

01:14:00.415 --> 01:14:02.555
schon sehr anders ist als GUI-Sache

01:14:02.555 --> 01:14:04.495
in Python schreiben, was man ja bestimmt unbedingt machen will.

01:14:06.555 --> 01:14:06.955
Naja.

01:14:08.495 --> 01:14:10.635
Also ich glaube, diesen Plattform-Wechsel,

01:14:10.635 --> 01:14:11.655
den kriegst du nicht so einfach hin.

01:14:11.655 --> 01:14:16.135
Also ich wüsste jetzt auch nicht so genau, wie ich jetzt eine Android-Anwendung entwickeln will in gut.

01:14:18.015 --> 01:14:23.255
Ja klar, das ist nicht einfach, aber das ist eine Aufgabe.

01:14:25.015 --> 01:14:27.875
Aber langsam geht alles Richtung Web.

01:14:28.075 --> 01:14:30.875
Also für mich ist der Chromium mein neuer Desktop.

01:14:31.135 --> 01:14:35.915
Also ich schalte zwischen Tabs hin und her, die im Chromium drin sind.

01:14:36.635 --> 01:14:39.395
Und Native GUI habe ich nur noch den PyCharm.

01:14:40.075 --> 01:14:41.475
Und ansonsten eigentlich nichts.

01:14:41.475 --> 01:14:43.655
Du bist auch einer von diesen PyCharm-Nutzern, okay, verstehe.

01:14:43.935 --> 01:14:44.035
Ja.

01:14:44.655 --> 01:14:45.695
Ach, das kann man schon machen.

01:14:45.775 --> 01:14:48.095
Du hast ja auch in letzter Zeit viel PyCharm benutzt, ja.

01:14:49.395 --> 01:14:51.695
Ja, wobei, also ich meine, ich weiß nicht, wie dir das geht,

01:14:51.775 --> 01:14:53.595
also tatsächlich mich benervt bei PyCharm, dass es halt

01:14:53.595 --> 01:14:54.775
relativ langsam reagiert.

01:14:55.555 --> 01:14:57.195
Letztens habe ich irgendwo gelesen,

01:14:57.835 --> 01:14:59.335
David Beasley hat das, glaube ich,

01:14:59.415 --> 01:15:01.475
in einem

01:15:01.475 --> 01:15:03.815
seiner Readmes zu irgendeinem anderen Softwareprojekt

01:15:03.815 --> 01:15:05.815
hat er sehr bösartige Dinge über Java

01:15:05.815 --> 01:15:08.015
gesagt, und zwar meinte er so,

01:15:08.115 --> 01:15:09.915
ja, Java, ach, der spricht nicht

01:15:09.915 --> 01:15:11.635
für Java, sondern er sagte, es gibt

01:15:11.635 --> 01:15:13.455
diese Programmiersprache, ihr wisst schon, sie

01:15:13.455 --> 01:15:14.355
reint sich auf Lava.

01:15:15.855 --> 01:15:17.515
Und da ist es immer so,

01:15:17.715 --> 01:15:18.795
die erkennt man immer daran, dass

01:15:18.795 --> 01:15:20.975
an diesem

01:15:20.975 --> 01:15:23.695
Moment peinlicher Stille,

01:15:24.115 --> 01:15:25.495
bevor die Lüfter dann losheulen.

01:15:25.815 --> 01:15:27.635
Das ist halt...

01:15:28.595 --> 01:15:29.615
Das

01:15:29.615 --> 01:15:31.275
Python ist flüssig zu bedienen.

01:15:32.115 --> 01:15:32.755
Echt, findest du?

01:15:33.035 --> 01:15:33.555
Nein.

01:15:36.055 --> 01:15:37.815
SSD, so und

01:15:37.815 --> 01:15:38.935
also doch, läuft eigentlich schon.

01:15:38.935 --> 01:15:39.535
Naja.

01:15:39.915 --> 01:16:00.455
Ich meine vor allen Dingen bei PyCharm solche Sachen, wie man drückt auf irgendeinen Button oder man macht halt eine Tastenkombination. Also man macht zum Beispiel sowas wie, bei mir ist es Command 0 oder Command 1 für den Verzeichnisbaum aufmachen oder halt Git-Dings aufmachen, zumachen. Und ich habe immer das Gefühl, wenn ich das draufdrücke, da sind so 100 Millisekunden Verzögerung oder so, bevor da irgendwas passiert. Und das nervt fürchterlich.

01:16:00.455 --> 01:16:05.075
Ich habe übrigens angefangen,

01:16:05.155 --> 01:16:06.835
Jochen, dieses Jahr, und das habe ich mir

01:16:06.835 --> 01:16:09.215
fest vorgenommen, mein VI einzurichten

01:16:09.215 --> 01:16:10.875
und mal zu gucken, ob ich den

01:16:10.875 --> 01:16:12.035
vernünftig zu laufen kriege.

01:16:13.655 --> 01:16:14.895
Ja, muss man machen.

01:16:15.255 --> 01:16:15.975
Ja, es nervt ein bisschen.

01:16:17.975 --> 01:16:19.015
Ansonsten, PyCharm finde ich

01:16:19.015 --> 01:16:20.995
eigentlich tatsächlich, nachdem ich das jetzt eine ganze Zeit lang benutzt

01:16:20.995 --> 01:16:22.635
habe, ziemlich gut. Also von den Features

01:16:22.635 --> 01:16:24.935
her finde ich das total super. Da ist es echt gut.

01:16:26.615 --> 01:16:27.195
Es ist ziemlich

01:16:27.195 --> 01:16:28.315
komplett und

01:16:28.315 --> 01:16:30.615
Ja, ist alles durchdacht, aber

01:16:30.615 --> 01:16:32.775
irgendwie, dass es halt so ein bisschen, sich so ein bisschen

01:16:32.775 --> 01:16:34.915
äh, ja

01:16:34.915 --> 01:16:36.815
Ich find's hässlich. Langsam anfühlt, ja gut,

01:16:36.855 --> 01:16:38.495
das ist halt eine andere, ja

01:16:38.495 --> 01:16:40.755
Persönliches Empfinden,

01:16:40.835 --> 01:16:42.735
aber vielleicht kann ich das so stylen, wie ich meine anderen Sachen style

01:16:42.735 --> 01:16:44.395
und dann macht das doch gar keinen Unterschied mehr.

01:16:44.955 --> 01:16:46.695
Ja, aber tatsächlich,

01:16:46.695 --> 01:16:48.555
das mit Chromium ist halt neu, deshalb, ich meine,

01:16:48.675 --> 01:16:50.555
da auch da irgendwie VS Code, ich weiß nicht,

01:16:50.575 --> 01:16:52.755
ob du schon mal VS Code ausprobiert hast?

01:16:53.755 --> 01:16:55.035
Ich hab's mal ausprobiert,

01:16:55.155 --> 01:16:55.315
aber

01:16:55.315 --> 01:16:58.415
Ja, mehr kann ich nicht dazu sagen

01:16:58.415 --> 01:17:00.075
Ja, ich habe Python zum Beispiel auch

01:17:00.075 --> 01:17:02.295
eigentlich gar keine Ahnung, ich muss das auch meistens auch auf der Liste

01:17:02.295 --> 01:17:03.735
aber kommt nach wie eitern

01:17:03.735 --> 01:17:06.155
Ja, weil

01:17:06.155 --> 01:17:08.175
da ist es ja auch irgendwie krumm drunter

01:17:08.175 --> 01:17:10.035
und das funktioniert eigentlich tatsächlich auch

01:17:10.035 --> 01:17:11.975
ziemlich gut, ich würde sagen

01:17:11.975 --> 01:17:13.555
tatsächlich, ich habe jetzt auch eine ganze Zeit irgendwie skutt

01:17:13.555 --> 01:17:16.115
es ist nicht so komplett wie PyCharm, es ist auch nicht

01:17:16.115 --> 01:17:17.495
so durchsacht und so, aber

01:17:17.495 --> 01:17:20.275
es ist tatsächlich, wenn man da irgendwie

01:17:20.275 --> 01:17:22.235
Command-B oder das ist schneller

01:17:22.235 --> 01:17:23.255
als bei PyCharm

01:17:23.255 --> 01:17:47.915
Okay, ja, kann schon sein, aber beim Laptop und auch selbst auf meinem Vorgänger ging es eigentlich gut, er hatte mal irgendwie Probleme, als er irgendein Verzeichnis indiziert hat, wo er eigentlich rein indizieren sollte, da hat er ganz schön zu tun gehabt, aber das kann man dann auch exkluden, dass er da nicht reingucken soll, weil da eben zigtausend Dateien drin sind und dann hat er auch oft damit und ging es eigentlich, kann ich erstmal nicht klar.

01:17:47.915 --> 01:17:49.795
Vielleicht habe ich auch irgendwas falsch konfiguriert, das kann natürlich auch sein.

01:17:50.135 --> 01:17:52.695
Was ich auch mal hatte, da hat es mir immer den Akku leergesaugt,

01:17:52.815 --> 01:17:53.995
da habe ich die

01:17:53.995 --> 01:17:56.315
JVM für Intel

01:17:56.315 --> 01:17:57.535
auf meinem

01:17:57.535 --> 01:18:00.575
ARM

01:18:00.575 --> 01:18:02.475
Mac verwendet

01:18:02.475 --> 01:18:04.095
und das lief dann in der Emulation

01:18:04.095 --> 01:18:05.735
und das war irgendwie auch ganz schrecklich.

01:18:05.895 --> 01:18:07.815
Da dachte ich mir so, hä, warum zieht denn das so viel Akku?

01:18:08.815 --> 01:18:10.075
Dann musste ich eine andere

01:18:10.075 --> 01:18:12.135
JVM nehmen und dann war es gut

01:18:12.135 --> 01:18:13.215
und dann funktioniert es auch.

01:18:14.295 --> 01:18:14.735
Aber ja.

01:18:14.735 --> 01:18:16.675
Ja, aber ein was

01:18:16.675 --> 01:18:18.435
fiel mir noch ein zu

01:18:18.435 --> 01:18:20.575
JavaScript und den ganzen

01:18:20.575 --> 01:18:22.735
Spaßsachen, was ich ja

01:18:22.735 --> 01:18:24.735
schön finde, dass das HTML sich immer

01:18:24.735 --> 01:18:25.715
noch weiterentwickelt

01:18:25.715 --> 01:18:28.395
und vorangetrieben wird

01:18:28.395 --> 01:18:30.335
sodass man im Endeffekt dann

01:18:30.335 --> 01:18:31.895
weniger schreiben muss

01:18:31.895 --> 01:18:34.995
zum Beispiel ein Datepicker

01:18:34.995 --> 01:18:36.635
oder irgendwas, wenn man danach sucht, da gibt es

01:18:36.635 --> 01:18:38.715
tausend Implantierungen

01:18:38.715 --> 01:18:39.735
von Datepickern

01:18:39.735 --> 01:18:42.795
aber ich als Web-Anwender will

01:18:42.795 --> 01:18:44.275
einfach dann nur fertig werden und da

01:18:44.275 --> 01:18:54.535
Es ist einfach schön, wenn ich sagen kann, Input-Type ist gleich Date zum Beispiel oder eben Input-Date-Time-Local, um eben Date und Zeit zu picken.

01:18:55.335 --> 01:19:06.683
Und das finde ich spannend dass sich da halt das immer noch alles entwickelt und die Spezifikationen gibt es und sicherlich ist es leider noch so dass eben unter iOS

01:19:06.683 --> 01:19:08.623
kein richtiger

01:19:08.623 --> 01:19:10.462
Chrome verfügbar ist, das ist ein bisschen

01:19:10.462 --> 01:19:11.322
schade, dieses

01:19:11.322 --> 01:19:13.782
Apple Browser Ban,

01:19:14.522 --> 01:19:16.482
aber kann durchaus

01:19:16.482 --> 01:19:18.062
sein, dass da die EU

01:19:18.062 --> 01:19:20.102
dem bald einen Riegel

01:19:20.102 --> 01:19:22.302
vorschiebt mit dem Digital Market Act.

01:19:23.522 --> 01:19:24.382
Es wäre sehr

01:19:24.382 --> 01:19:26.302
schön, wenn da, weil das ist

01:19:26.302 --> 01:19:28.222
Da kannst du als einzelner Webentwickler

01:19:28.222 --> 01:19:29.882
ja auch von niederspringen und vielleicht

01:19:29.882 --> 01:19:32.302
kommt auch doch mal von der Legislative

01:19:32.302 --> 01:19:34.382
da irgendwas, weil es ist einfach ein Markt

01:19:34.382 --> 01:19:36.123
der Apple Play Store und

01:19:36.123 --> 01:19:38.222
es ist ein globaler Markt und

01:19:38.222 --> 01:19:40.422
das dann dort zu diskriminieren

01:19:40.422 --> 01:19:41.762
gegenüber anderen Browsern

01:19:41.762 --> 01:19:44.402
ist einfach nicht in Ordnung.

01:19:44.722 --> 01:19:46.362
Also hoffen wir mal,

01:19:46.522 --> 01:19:47.982
dass dort das vorwärts geht,

01:19:48.623 --> 01:19:50.042
weil dann ist nochmal mehr Druck da,

01:19:50.582 --> 01:19:52.242
dass die Safari

01:19:52.242 --> 01:19:54.143
Engine mal vorwärts macht und dass die

01:19:54.143 --> 01:19:55.742
da nicht das

01:19:55.742 --> 01:19:57.842
absichtlich blockieren können. Das wird ja absichtlich

01:19:57.842 --> 01:19:59.862
blockiert, damit sie weiterhin

01:19:59.862 --> 01:20:01.842
schön Geld verdienen innerhalb ihres

01:20:01.842 --> 01:20:03.822
App-Stores. Und darum hat Apple

01:20:03.822 --> 01:20:06.102
überhaupt keinen Bock drauf auf Progressive Web Apps.

01:20:07.123 --> 01:20:07.982
Das ist halt vielen Leuten

01:20:07.982 --> 01:20:08.502
nicht bekannt.

01:20:09.362 --> 01:20:11.643
Wenn man mit Leuten darüber spricht,

01:20:11.722 --> 01:20:13.842
die jetzt nicht aus dem Software-Bereich kommen, die verstehen das

01:20:13.842 --> 01:20:15.203
erstmal gar nicht, von was man da spricht.

01:20:16.542 --> 01:20:17.762
Und naja, hoffen wir mal,

01:20:17.882 --> 01:20:19.922
dass da irgendwie das in der Richtung auch

01:20:19.922 --> 01:20:20.982
weitergeht.

01:20:21.962 --> 01:20:23.722
Weil dann geht es eben

01:20:23.722 --> 01:20:25.123
Richtung Progressive Web App,

01:20:25.123 --> 01:20:26.982
Progester... Gut, okay, das ist natürlich

01:20:26.982 --> 01:20:29.102
wieder eine Sache. Aufhänger

01:20:29.102 --> 01:20:30.822
HTMLX, also HTMLX

01:20:30.822 --> 01:20:31.722
ist sozusagen

01:20:31.722 --> 01:20:34.683
auf keinen Fall offline first oder

01:20:34.683 --> 01:20:36.802
irgendwas, man braucht die Verbindung zum Server.

01:20:37.703 --> 01:20:38.862
Das ist sozusagen, ja,

01:20:39.862 --> 01:20:40.902
sind ganz zentrale

01:20:40.902 --> 01:20:42.623
Sachen an dieser Stelle.

01:20:43.602 --> 01:20:44.082
Wenn man dann

01:20:44.082 --> 01:20:46.663
Web-App schaut, dass man sagt, okay,

01:20:46.742 --> 01:20:48.683
man hat eine offline-fähige

01:20:48.683 --> 01:20:50.302
Web-Anwendung, klar,

01:20:50.602 --> 01:20:52.382
dann ist es mit JavaScript natürlich besser.

01:20:53.882 --> 01:20:54.022
Aber

01:20:54.022 --> 01:20:58.623
99% der Fälle braucht man das eigentlich auch gar nicht.

01:20:58.802 --> 01:21:04.102
Ja, offline-first war auch mal eine ganze Zeit lang, das kam irgendwie so aus dieser ganzen Couch-DB-Ecke und

01:21:04.102 --> 01:21:07.722
eigentlich finde ich den Ansatz ja auch ganz interessant irgendwie,

01:21:09.382 --> 01:21:12.722
halt quasi auch eine Datenbank einfach auf der kleinen Seite zu haben und

01:21:12.722 --> 01:21:16.502
da gibt es ja auch diverse Geschichten in den Browsern, also gibt es ja auch irgendwie, weiß ich nicht mehr,

01:21:16.862 --> 01:21:20.582
quasi so ein SQLite haben die meisten irgendwie drin, was man verwenden kann

01:21:20.582 --> 01:21:22.822
und dann synchronisiert man das halt wieder zurück

01:21:22.822 --> 01:21:24.643
irgendwie und so. Das ist eigentlich auch alles ganz nett.

01:21:25.502 --> 01:21:25.822
Aber

01:21:25.822 --> 01:21:28.542
ja, tatsächlich

01:21:28.542 --> 01:21:30.842
genau war das dann aber

01:21:30.842 --> 01:21:32.902
doch nie so nötig, weil inzwischen ist ja doch

01:21:32.902 --> 01:21:34.762
fast überall Netz und es funktioniert eigentlich auch ganz gut.

01:21:35.402 --> 01:21:35.422
Genau.

01:21:37.802 --> 01:21:38.502
Verzehnfacht einfach

01:21:38.502 --> 01:21:40.462
die Komplexität und den Aufwand.

01:21:41.542 --> 01:21:42.742
Und drum geht

01:21:42.742 --> 01:21:44.962
eigentlich alles Richtung ständige

01:21:44.962 --> 01:21:46.402
Verbindung zum Internet.

01:21:46.902 --> 01:21:48.643
Es gibt ja ganz wenige Sachen, wo es eigentlich

01:21:48.643 --> 01:21:51.782
wirklich braucht, wenn ich will. Ich will, wenn ich in der Bahn bin und habe kein Netz,

01:21:51.902 --> 01:21:54.522
kein Netzanbinder, will ich eine WhatsApp-Nachricht schreiben können

01:21:54.522 --> 01:21:57.582
oder ich will eine E-Mail schreiben und lesen können. Aber für alle

01:21:57.582 --> 01:22:00.482
möglichen anderen Sachen brauchst du einfach auch den Server, weil der hat ja die

01:22:00.482 --> 01:22:03.183
aktuellen Informationen. Du kannst ja nicht aus den Fingern saugen.

01:22:03.462 --> 01:22:06.203
Du brauchst halt eben die Netzwerkverbindung.

01:22:07.082 --> 01:22:09.382
Und darum klappt das erstmal so

01:22:09.382 --> 01:22:12.742
eigentlich ganz gut. Auch kann man ganz gut

01:22:12.742 --> 01:22:15.502
viel abdecken. Eine Frage habe ich mir noch aufgeschrieben.

01:22:16.502 --> 01:22:18.442
Ganz zentral ist eigentlich gut, also wir stellen

01:22:18.442 --> 01:22:19.742
jetzt HTML-serverseitig.

01:22:20.502 --> 01:22:22.482
Und irgendwie bin ich persönlich da jetzt auch noch gar nicht

01:22:22.482 --> 01:22:24.542
glücklich, mit der

01:22:24.542 --> 01:22:26.342
Methode HTML-serverseitig zu

01:22:26.342 --> 01:22:28.382
erstellen. Also ich

01:22:28.382 --> 01:22:30.562
habe da jetzt aktuell, verwende ich von Django

01:22:30.562 --> 01:22:32.683
zum Beispiel das Format

01:22:32.683 --> 01:22:33.862
unterstrich HTML.

01:22:34.522 --> 01:22:36.143
Das finde ich ganz praktisch, weil

01:22:36.143 --> 01:22:38.522
eben da dieses SaveString

01:22:38.522 --> 01:22:40.502
ausgewertet wird. Also da wird

01:22:40.502 --> 01:22:42.683
alles, was gequotet

01:22:42.683 --> 01:22:44.442
werden soll, wird automatisch gequotet,

01:22:44.623 --> 01:22:46.602
außer es ist eben ein SaveString, wo explizit

01:22:46.602 --> 01:22:48.282
klar ist, dass der soll nicht gequotet werden.

01:22:48.442 --> 01:22:51.102
und das ist für mich erstmal ganz schön,

01:22:51.862 --> 01:22:52.982
aber was ich auch

01:22:52.982 --> 01:22:55.042
schön finde, sind diese F-Strings in Python

01:22:55.042 --> 01:22:57.222
und da

01:22:57.222 --> 01:22:58.762
fehlt mir aktuell noch so eine Mischung.

01:22:58.842 --> 01:23:00.942
Ich hätte gerne so eine Mischung, dass ich sage, also im Python

01:23:00.942 --> 01:23:02.862
will ich HTML erstellen, also ich will das jetzt nicht

01:23:02.862 --> 01:23:04.322
auslagern, ich will da nicht immer

01:23:04.322 --> 01:23:06.722
zwischen zwei Dateien hin und her wechseln,

01:23:06.762 --> 01:23:08.862
einmal in mein Template-File und dann mein Python-File.

01:23:09.762 --> 01:23:10.942
Also ich würde gerne das HTML

01:23:10.942 --> 01:23:12.442
im Python erstellen

01:23:12.442 --> 01:23:15.123
und das würde ich

01:23:15.123 --> 01:23:16.322
am liebsten mit F-Strings machen,

01:23:16.322 --> 01:23:18.822
Haut aber halt nicht hin, weil das F-Strings

01:23:18.822 --> 01:23:20.922
hat ja keine Ahnung, was es quoten

01:23:20.922 --> 01:23:21.462
soll oder nicht

01:23:21.462 --> 01:23:24.882
und da habe ich bis jetzt auch noch nicht so richtig

01:23:24.882 --> 01:23:26.482
die optimale Lösung gefunden

01:23:26.482 --> 01:23:28.982
Ja, ne, hab ich auch noch

01:23:28.982 --> 01:23:30.542
nichts, ich weiß nicht genau, ob das

01:23:30.542 --> 01:23:32.183
mit F-Strings, also

01:23:32.183 --> 01:23:34.402
tatsächlich in JavaScript geht das wahrscheinlich

01:23:34.402 --> 01:23:36.822
da gibt es ja diese Template Literal Strings

01:23:36.822 --> 01:23:38.802
damit könnte man das

01:23:38.802 --> 01:23:39.542
wahrscheinlich machen

01:23:39.542 --> 01:23:41.742
Ja, wäre schön, wenn sowas

01:23:41.742 --> 01:23:42.822
Aber so im Python gibt es das nicht

01:23:42.822 --> 01:23:44.262
Ja

01:23:44.262 --> 01:23:47.042
Ja, ja, ja, ja, ja, ne

01:23:47.042 --> 01:23:49.482
Ne, weiß ich auch nicht

01:23:49.482 --> 01:23:51.022
Aber ja, es stimmt

01:23:51.022 --> 01:23:52.962
Ich meine, ja, das ist die Frage, ob das

01:23:52.962 --> 01:23:55.202
Alle machen das jetzt halt

01:23:55.202 --> 01:23:56.442
über diese Template-Geschichten, ne

01:23:56.442 --> 01:23:59.522
Aber ob das jetzt der

01:23:59.522 --> 01:24:01.502
der beste Weg ist, weiß ich auch nicht

01:24:01.502 --> 01:24:02.663
Ja, aber

01:24:02.663 --> 01:24:05.442
im Kontext von HTMLX ist es bei mir

01:24:05.442 --> 01:24:07.282
solcher Stelle kleine Methoden, die

01:24:07.282 --> 01:24:08.723
kleine Schnipsel zurückgeben

01:24:08.723 --> 01:24:09.782
Ja, warum brauchen die denn so viel?

01:24:09.782 --> 01:24:11.602
Und dann sind das eben 6-7 Zeilen

01:24:11.602 --> 01:24:13.183
und für diese 6-7 Zeilen

01:24:13.183 --> 01:24:15.702
dann nochmal eine extra Datei öffnen

01:24:15.702 --> 01:24:17.602
das tut dann den Fluss beim

01:24:17.602 --> 01:24:19.102
Softwareentwicklung

01:24:19.102 --> 01:24:21.223
irgendwie behindern

01:24:21.223 --> 01:24:23.782
Aber kannst du nicht auch einfach ein Django-Template

01:24:23.782 --> 01:24:25.742
quasi in den Spring reinschreiben und den dann

01:24:25.742 --> 01:24:27.802
rendern, weil du musst es ja nicht in den File reinführen

01:24:27.802 --> 01:24:29.022
Könnte ich auch, ja

01:24:29.022 --> 01:24:31.742
könnte ich machen, aber dann muss ich dem halt auch

01:24:31.742 --> 01:24:34.022
wieder einen Kontext geben und dann muss ich immer wieder schreiben

01:24:34.022 --> 01:24:35.742
Name ist

01:24:35.742 --> 01:24:37.143
gleich Name und

01:24:37.143 --> 01:24:39.482
Login ist gleich Login und

01:24:39.482 --> 01:24:41.862
ähnlichen Spaß muss ich dem Kontext

01:24:41.862 --> 01:24:43.762
reingeben. Kann man machen,

01:24:43.842 --> 01:24:44.482
funktioniert auch.

01:24:46.022 --> 01:24:47.022
Aber irgendwie muss der

01:24:47.022 --> 01:24:49.683
seine Variablen bekommen. Man könnte

01:24:49.683 --> 01:24:51.163
da vielleicht einfach Globals übergeben.

01:24:52.202 --> 01:24:53.723
Ja, aber dann weiß

01:24:53.723 --> 01:24:55.723
die IDE nicht mehr, dass diese Variable eigentlich

01:24:55.723 --> 01:24:57.742
verwendet wurde. Und tut die

01:24:57.742 --> 01:24:59.643
hellgrau anzeigen,

01:24:59.723 --> 01:25:01.502
so nach dem Motto, hey, die kannst du doch eigentlich wegwerfen,

01:25:01.562 --> 01:25:02.322
die Variable hier.

01:25:03.462 --> 01:25:04.562
Ja, auch nicht ideal.

01:25:06.342 --> 01:25:07.362
Gibt es noch

01:25:07.362 --> 01:25:08.723
Entwicklungsmöglichkeiten an der Stelle?

01:25:08.723 --> 01:25:09.143
Ja.

01:25:09.143 --> 01:25:39.123
Ja, aber genau das hat mich gerade diese Offline-Geschichte drauf gebracht. Ich weiß gar nicht, ob das Leute machen, aber ehrlich gesagt würde ich das auch gerne mal ausprobieren. Im Grunde kann man ja auch, man kann ja auch, das ist wieder dann das Problem mit der Paketierung, man kann in Python nicht einfach ein Binary bauen, aber wenn ich mir jetzt überlege, SQLite ist ja, also klar, kann man nicht so concurrent draufschreiben, aber ist auch sehr mächtig und kann man auch so ein bisschen auf die Seite bringen.

01:25:39.143 --> 01:25:40.862
wahrscheinlich irgendwie das meiste, was man so

01:25:40.862 --> 01:25:43.123
braucht, wenn man jetzt irgendwie eine Datenbank

01:25:43.123 --> 01:25:45.183
für eine Webgeschichte hat, kann man

01:25:45.183 --> 01:25:47.082
nicht einfach die komplette Webapplikation schippen

01:25:47.082 --> 01:25:48.683
mit einer SQLite und den Daten drin

01:25:48.683 --> 01:25:51.062
und dann sagen so, hier

01:25:51.062 --> 01:25:53.062
startet das Ding und dann geht das halt

01:25:53.062 --> 01:25:55.262
auf Localhost, hat man halt eigentlich sozusagen

01:25:55.262 --> 01:25:57.223
die eigene Seite und dann

01:25:57.223 --> 01:25:59.482
wenn irgendwas geschrieben wird, kann man es ja einmal in SQLite

01:25:59.482 --> 01:26:01.422
schreiben, aber halt auch nochmal irgendwie übers Netz oder so

01:26:01.422 --> 01:26:03.082
oder man synchronisiert die Datenbanken irgendwie.

01:26:03.602 --> 01:26:05.282
Das ist natürlich viel möglicher,

01:26:05.362 --> 01:26:06.762
prinzipiell kannst du das, also

01:26:06.762 --> 01:26:08.562
überwaltet. Da wird sich noch viel entwickeln.

01:26:08.683 --> 01:26:10.402
Nach WebAssembly alles kompilieren. Du kannst

01:26:10.402 --> 01:26:12.882
prinzipiell auch bei Python nach WebAssembly

01:26:12.882 --> 01:26:14.462
kompilieren. Ja, das haben wir auch schon losgemacht.

01:26:14.562 --> 01:26:16.282
Puppi-Pupps alles paketieren und dann

01:26:16.282 --> 01:26:18.062
haust du noch ein Postgres hinterher und

01:26:18.062 --> 01:26:21.062
dann hast du

01:26:21.062 --> 01:26:22.502
leider der Kunde erstmal hier

01:26:22.502 --> 01:26:24.022
50 Megabyte runter.

01:26:24.762 --> 01:26:26.742
Ich meine, obwohl 50 Megabyte sind auch

01:26:26.742 --> 01:26:27.442
schnell runtergeladen.

01:26:28.702 --> 01:26:30.643
Und dann hast du dort alles

01:26:30.643 --> 01:26:32.623
drinnen im WebAssembly.

01:26:33.802 --> 01:26:34.762
Ich bin gespannt,

01:26:34.762 --> 01:26:35.562
was sich da entwickelt.

01:26:36.762 --> 01:26:38.562
Ja, naja.

01:26:40.322 --> 01:26:41.062
Tja, tja.

01:26:42.082 --> 01:26:44.862
Da kann man auf jeden Fall sich auch noch eine Menge interessante Dinge überlegen,

01:26:44.942 --> 01:26:45.902
was man damit alles machen kann.

01:26:47.223 --> 01:26:49.502
Ja, ich glaube, im Platin-Mix sind wir so ein bisschen fast zu ruhig.

01:26:50.022 --> 01:26:50.342
Ja.

01:26:50.683 --> 01:26:54.582
Ich hatte aber beim Thomas noch auf seinem Repo noch so ein paar Sachen entdeckt,

01:26:54.643 --> 01:26:59.102
wie sein Working Out Loud Repo, wo er so ein bisschen dann Sachen verlinkt

01:26:59.102 --> 01:27:00.482
und dann auch die Pausen-Tipps entdeckt und so,

01:27:00.982 --> 01:27:02.822
wo sich einige Sachen an Jochen's Philosophie erinnerten.

01:27:02.822 --> 01:27:04.742
und was ich entdeckt habe,

01:27:04.822 --> 01:27:06.623
war, du, den PDM,

01:27:07.502 --> 01:27:09.002
den kannte ich tatsächlich noch nicht.

01:27:09.042 --> 01:27:09.723
Was ist denn das?

01:27:11.123 --> 01:27:12.382
Nochmals, habe ich dich schlecht verstanden.

01:27:12.442 --> 01:27:14.742
Den PDM, das ist ein Python-Distro-Manager

01:27:14.742 --> 01:27:15.302
oder sowas.

01:27:16.582 --> 01:27:17.822
Was war der? Ich muss mal gucken.

01:27:18.582 --> 01:27:19.062
PDM.

01:27:19.062 --> 01:27:21.002
PDM, also ein Paketmanager,

01:27:21.502 --> 01:27:22.982
den du entdeckt hast. Als Alternative zu Poetry

01:27:22.982 --> 01:27:24.802
hast du den beworben.

01:27:25.402 --> 01:27:26.442
Beworben habe ich den, glaube ich, nicht.

01:27:26.502 --> 01:27:28.183
Ja, genau.

01:27:28.882 --> 01:27:30.902
Ich war einfach da unsicher.

01:27:30.902 --> 01:27:34.942
oder was, genau, bei mir ist es öfter so, oder geht ja wahrscheinlich vielen so,

01:27:35.422 --> 01:27:38.262
man steht da, nehme ich jetzt Tool A, nehme ich Tool B, nehme ich 0C

01:27:38.262 --> 01:27:42.882
und seit einer Weile mache ich das so, dann gehe ich zu GitHub,

01:27:43.502 --> 01:27:47.742
zu meinem Account, erstelle da ein Repository, was im Endeffekt aus einer Readme besteht

01:27:47.742 --> 01:27:52.802
und dann schreibe ich da auf, was für Möglichkeiten überhaupt existieren.

01:27:53.022 --> 01:27:55.482
Das hilft mir, um meine Gedanken zu strukturieren.

01:27:56.163 --> 01:27:59.102
Im Endeffekt ist es erstmal eigentlich fast ein Zettel für mich,

01:27:59.102 --> 01:28:22.702
und

01:28:22.702 --> 01:28:24.262
hat, über das PDM, also das heißt

01:28:24.262 --> 01:28:25.663
Python Development

01:28:25.663 --> 01:28:28.382
Habe ich auch noch nicht gehört, Karl.

01:28:29.322 --> 01:28:30.462
Jetzt ist das M wieder weg,

01:28:30.542 --> 01:28:30.882
das ist nicht dein.

01:28:33.282 --> 01:28:34.762
Das hast du bei den Python-Tipps

01:28:34.762 --> 01:28:36.442
gefunden. Ja, PDM

01:28:36.442 --> 01:28:40.582
Moment, ich muss das wieder zurückführen.

01:28:40.822 --> 01:28:42.502
Python Development Master heißt es.

01:28:43.663 --> 01:28:44.822
Genau. Als Alternative

01:28:44.822 --> 01:28:46.782
für Poetry. Ich habe noch nicht genau

01:28:46.782 --> 01:28:48.442
verstanden, wovor das ist. Deswegen war ich neugierig,

01:28:49.002 --> 01:28:50.762
weil wir ja mit Poetry

01:28:50.762 --> 01:28:52.342
in letzter Zeit ein paar Probleme hatten.

01:28:52.702 --> 01:28:55.382
und ob das

01:28:55.382 --> 01:28:56.402
vernünftig funktioniert. Aber

01:28:56.402 --> 01:28:59.262
wenn es dir nicht sofort einfällt, dann hast du es wahrscheinlich

01:28:59.262 --> 01:28:59.762
auch gar nicht.

01:28:59.942 --> 01:29:03.422
Ich habe damals recherchiert an einem Abend, das mal so aufgeschrieben,

01:29:03.882 --> 01:29:05.502
aber ich kann da jetzt keine Details

01:29:05.502 --> 01:29:07.502
dazu sagen. Und genau, mir geht es

01:29:07.502 --> 01:29:09.442
genauso. Ich tue nämlich den Artikel jetzt hier mal kurz

01:29:09.442 --> 01:29:10.742
aktualisieren mit dem Poetry.

01:29:11.962 --> 01:29:13.542
Ich bin aktuell einfach

01:29:13.542 --> 01:29:15.342
bei Pip und das

01:29:15.342 --> 01:29:17.042
klappt auch soweit eigentlich ganz gut.

01:29:17.322 --> 01:29:19.382
Das Poetry konnte ich

01:29:19.382 --> 01:29:21.582
nicht so richtig da...

01:29:21.582 --> 01:29:25.962
Also ich verwende es nach wie vor, ich finde nur, man muss ja die blöden Bugs fixen, die uns allen auf die Nerven gehen.

01:29:27.183 --> 01:29:27.542
Ja.

01:29:28.082 --> 01:29:31.683
Also ich bin, wie gesagt, mit den PIP-Tools quasi auch nicht warm, dass das irgendwie...

01:29:31.683 --> 01:29:34.643
Also ich meine, vom User-Interface her ist Poetry schon deutlich schöner.

01:29:34.723 --> 01:29:36.402
Das Problem ist nur halt, es funktioniert nicht.

01:29:36.782 --> 01:29:37.163
Ja, genau.

01:29:37.942 --> 01:29:41.022
Ja, aber man muss ja nicht immer alles noch verdreckt wegschmeißen, wenn es kaputt ist.

01:29:41.102 --> 01:29:42.942
Manchmal kann man sich auch ein bisschen zuverlässigieren.

01:29:43.042 --> 01:29:43.442
Ja, gut.

01:29:44.183 --> 01:29:51.442
Aber hast du mal, ich meine, ich habe letztens auch wieder, war ich auf dem Repository bei Poetry,

01:29:51.442 --> 01:29:53.623
weil ich irgendwie bestätigen wollte

01:29:53.623 --> 01:29:55.282
nach irgendwie, ich weiß nicht wie viele Leuten, dass das

01:29:55.282 --> 01:29:57.163
auch bei mir nicht funktioniert und

01:29:57.163 --> 01:29:59.402
da habe ich dann, also wenn man da, ich weiß nicht

01:29:59.402 --> 01:30:01.282
wie viele offene Issues da sind gerade

01:30:01.282 --> 01:30:03.842
irgendwie

01:30:03.842 --> 01:30:04.942
1000 oder sowas

01:30:04.942 --> 01:30:06.183
und das ist ja nur ein einzelner...

01:30:06.183 --> 01:30:09.183
Und alle gemeinsam an Poetrys Verbesserung arbeiten

01:30:09.183 --> 01:30:11.482
und dann ist das Problem endlich alle mal aus der Welt

01:30:11.482 --> 01:30:13.123
geschafft. Tja, tja

01:30:13.123 --> 01:30:15.102
ja genau, offene Issues über 1000

01:30:15.102 --> 01:30:16.282
also das ist halt schon, ja

01:30:16.282 --> 01:30:18.683
und das ist halt nur ein einzelner Typ, der das in seiner Freizeit macht

01:30:18.683 --> 01:30:21.223
Ja klar, kann man ihm ja auch keinen Vorwurf machen

01:30:21.223 --> 01:30:21.922
Nein, eigentlich nicht.

01:30:21.982 --> 01:30:23.282
Das ist alles prima.

01:30:24.202 --> 01:30:26.183
Ja, aber es ist halt so beliebt, dass

01:30:26.183 --> 01:30:27.163
so Sachen gefunden werden.

01:30:27.822 --> 01:30:28.962
Ich brauche eigentlich Hilfe.

01:30:30.882 --> 01:30:32.143
Ich habe hier Pip

01:30:32.143 --> 01:30:34.342
und dann für Sachen kann man

01:30:34.342 --> 01:30:35.683
noch Pip-Tools oben drauf nehmen.

01:30:36.163 --> 01:30:38.002
Reicht erstmal voll aus.

01:30:39.702 --> 01:30:40.723
Ja, Pip-Tools

01:30:40.723 --> 01:30:41.562
habe ich jetzt auch letztens.

01:30:42.362 --> 01:30:43.922
Das hat auch ganz gut funktioniert.

01:30:44.022 --> 01:30:45.342
Es ist halt so ein bisschen hakliger zu benutzen.

01:30:46.242 --> 01:30:47.982
Aber weil man dann halt lange

01:30:47.982 --> 01:30:49.802
Kommandozeilen, mit denen man da irgendwie

01:30:49.802 --> 01:30:50.802
den Kram dann.

01:30:51.802 --> 01:30:53.762
Aber es funktioniert tatsächlich

01:30:53.762 --> 01:30:55.862
ziemlich gut, muss ich auch sagen. Und das hat halt die ganzen

01:30:55.862 --> 01:30:57.922
Paketfunktionen, die

01:30:57.922 --> 01:30:59.962
Pultree hat halt nicht. Aber ehrlich gesagt, die brauche ich

01:30:59.962 --> 01:31:01.742
auch nicht. Ja, also was

01:31:01.742 --> 01:31:04.002
ich halt eigentlich nur brauche, sind eigentlich zwei Sachen.

01:31:04.242 --> 01:31:05.623
Pultree Add, Pultree Remove,

01:31:05.762 --> 01:31:07.802
Pultree Update und

01:31:07.802 --> 01:31:09.762
Pultree Install. Ja gut, aber dann

01:31:09.762 --> 01:31:11.802
ist es ja auch ungefähr bei dem, was PIP-Tools können.

01:31:11.922 --> 01:31:13.663
Nur das PIP-Tool ist halt sehr unkomfortabel.

01:31:14.022 --> 01:31:15.502
Ja, genau.

01:31:17.502 --> 01:31:18.163
Naja, gut.

01:31:18.163 --> 01:31:20.322
Ja. Aber irgendwie ist das noch nicht

01:31:20.322 --> 01:31:22.542
aller Tage Abend, was das angeht, tatsächlich.

01:31:23.643 --> 01:31:24.382
Ja, ähm,

01:31:24.522 --> 01:31:26.402
weiß nicht, habt ihr noch was? Habt ihr eure Liste stehen?

01:31:27.602 --> 01:31:28.683
Nö, ich bin durch.

01:31:29.123 --> 01:31:30.302
Nö, also wir könnten ja noch

01:31:30.302 --> 01:31:32.362
Pics machen. Dann kommen die Pics der Woche,

01:31:32.522 --> 01:31:34.242
des Monats, der Folge jedenfalls dann.

01:31:35.862 --> 01:31:36.762
Ähm, was habt ihr denn

01:31:36.762 --> 01:31:38.562
da ausgesucht? Also ich fang vielleicht einfach an.

01:31:38.902 --> 01:31:40.702
Ich weiß nicht, ob ich schon mal gesagt habe, das vergesse ich wie gesagt immer.

01:31:41.022 --> 01:31:42.442
Ich muss das jetzt mal aufschreiben. Ähm, die Python

01:31:42.442 --> 01:31:43.362
DevTools, kennt ihr die?

01:31:44.842 --> 01:31:45.942
Das ist so, ähm,

01:31:46.202 --> 01:31:47.902
Python DevTools, da kann man sich einloggen.

01:31:48.163 --> 01:31:50.623
einfache Sachen, wie statt Print ein Debugstatement

01:31:50.623 --> 01:31:52.262
in Python, was dann Prattit Print macht und so,

01:31:52.302 --> 01:31:53.502
so einfach so ein paar Kleinigkeiten.

01:31:54.322 --> 01:31:55.442
Ne, kenn ich nicht.

01:31:56.782 --> 01:31:57.942
Wofür nennt man das, oder was ist das?

01:31:58.143 --> 01:31:58.882
Einfach Python.

01:31:59.882 --> 01:32:02.522
Was macht das?

01:32:02.762 --> 01:32:03.782
Ich glaub, das ist ein anderes.

01:32:04.102 --> 01:32:04.723
Guck mal kurz, ist das

01:32:04.723 --> 01:32:08.282
auf die Doc, Help Manual,

01:32:08.422 --> 01:32:10.183
I.O., irgendwie, Python minus DevTools,

01:32:10.183 --> 01:32:10.602
ein Wort.

01:32:12.262 --> 01:32:12.902
Ne, ist ein anderes.

01:32:13.623 --> 01:32:15.502
Minus DevTools.

01:32:15.723 --> 01:32:16.882
Help Manual.io

01:32:16.882 --> 01:32:19.582
Nee, okay, das kriege ich nicht hin.

01:32:19.982 --> 01:32:21.542
Ja, egal, auf jeden Fall, das sind nicht viele

01:32:21.542 --> 01:32:23.522
Funktionen, aber irgendwie fand ich es ganz nett und das sah ganz

01:32:23.522 --> 01:32:25.342
niedlich aus. Und ich mag ja so

01:32:25.342 --> 01:32:26.802
moderne Terminal-Sachen sehr gerne.

01:32:27.562 --> 01:32:29.202
Ah, noch ein Pick der Woche, ich habe meine

01:32:29.202 --> 01:32:30.762
Dot-Files mal ein bisschen aktualisiert.

01:32:31.942 --> 01:32:33.382
Die sind ja vor allen Dingen auch für

01:32:33.382 --> 01:32:35.422
viele Windows-Nutzer ganz gut geeignet, weil ich muss das

01:32:35.422 --> 01:32:37.242
ja auch auf der Arbeit nutzen und so. Und

01:32:37.242 --> 01:32:39.322
da kann man sich jetzt, wenn man das vernünftig

01:32:39.322 --> 01:32:41.143
installiert, unter einer PowerShell

01:32:41.143 --> 01:32:43.442
die ganzen Modern Unix-Commands ziehen

01:32:43.442 --> 01:32:45.602
und die alle reinpacken. Ist jetzt nicht so Python-spezifisch.

01:32:45.602 --> 01:32:47.842
Aber auch Virtual Entwrapper habe ich eingebaut

01:32:47.842 --> 01:32:49.902
nur die Funktion, die ich nutze, dass es nicht viele sind

01:32:49.902 --> 01:32:53.782
damit es ein bisschen kompatibel ist, weil Virtual Entwrapper

01:32:53.782 --> 01:32:55.442
PowerShell irgendwie nicht so richtig funktioniert hat

01:32:55.442 --> 01:32:57.402
Das ist doch eine sehr gute Überleitung

01:32:57.402 --> 01:32:59.862
Was benutzt du denn zum Managen deiner Dot-Files?

01:33:01.742 --> 01:33:02.522
Tatsächlich Git

01:33:02.522 --> 01:33:07.683
Was meinst du mit Managen meiner Dot-Files?

01:33:07.782 --> 01:33:09.822
Naja, wenn du jetzt auf einer, du hast einen neuen Account

01:33:09.822 --> 01:33:11.422
irgendwie auf einer anderen Maschine, loggst dich die ein

01:33:11.422 --> 01:33:14.002
setzst du gerne deine Dot-Files da so wie überall sonst auch

01:33:14.002 --> 01:33:18.902
Ich habe in meinem .files Repo für die jeweiligen Systeme, also im Moment ist es halt POSIX und Windows

01:33:18.902 --> 01:33:22.782
und für Nix ist es auch was, aber das funktioniert nicht richtig, das ist halt nicht public.

01:33:24.342 --> 01:33:29.482
Insideskripte, das heißt ich mache halt eine Admin-Shell auf und starte das Insideskript.

01:33:30.022 --> 01:33:35.163
Dann klont er mir die eigentlich an die richtige Stelle, die meistens einfach home.dotfiles ist.

01:33:36.882 --> 01:33:41.842
Dann im Insideskript führt er dann das Simulink-Skript aus, das heißt der linkt quasi von meinen

01:33:41.842 --> 01:33:43.942
Konfig-Files komplett

01:33:43.942 --> 01:33:46.082
auf die Konfigs von dem Programm, die ich natürlich

01:33:46.082 --> 01:33:47.882
installieren muss, auch in dem Insidescript. Das heißt,

01:33:47.942 --> 01:33:49.663
er installiert alle Programme, hat sie im Link und fertig.

01:33:51.782 --> 01:33:52.223
Okay, aber

01:33:52.223 --> 01:33:53.902
und welches Skript ist das dann?

01:33:54.242 --> 01:33:55.282
Hast du das selber geschrieben? Ja.

01:33:55.922 --> 01:33:58.242
Ah, okay. Ja, aber da gibt es

01:33:58.242 --> 01:33:59.962
ja dann schon einige Sachen. Also ich habe

01:33:59.962 --> 01:34:02.143
bisher immer .bot verwendet dafür.

01:34:02.462 --> 01:34:03.962
Okay. Aber das ist

01:34:03.962 --> 01:34:06.042
mir letztens irgendwie,

01:34:06.223 --> 01:34:06.562
als ich,

01:34:07.442 --> 01:34:10.102
ich weiß gar nicht, was der Anlass war, wo es mir dann kaputt

01:34:10.102 --> 01:34:13.362
gegangen ist. Ich mir dachte so, also das habe ich mir jetzt auch schon so lange nicht mehr angeguckt.

01:34:14.082 --> 01:34:16.163
Irgendwie muss ich da mal schauen, ob es da was Besseres gibt.

01:34:16.302 --> 01:34:17.643
Vielleicht möchte ich auch sowas benutzen.

01:34:18.502 --> 01:34:20.102
Ich habe es alles noch ganz einfach selber geschrieben,

01:34:20.183 --> 01:34:21.042
so viel es besser nicht ist.

01:34:22.163 --> 01:34:24.042
20 Simlinks oder was der da setzt und dann

01:34:24.042 --> 01:34:25.762
einmal Software mit dem jeweiligen

01:34:25.762 --> 01:34:28.102
System Paketmanager installieren, den du ja

01:34:28.102 --> 01:34:30.322
auch auf Windows installieren kannst. Dann musst du halt nur zuerst

01:34:30.322 --> 01:34:31.362
den Paketmanager installieren.

01:34:32.143 --> 01:34:33.542
Und dann musst du alles eh umsourcen.

01:34:33.623 --> 01:34:34.482
Das macht ja alles drauf.

01:34:35.602 --> 01:34:38.022
Und dann hast du immer auf jeden Fall die gleiche Shell, was ich immer sehr super finde.

01:34:38.022 --> 01:34:39.962
und was sogar einigermaßen

01:34:39.962 --> 01:34:41.522
mittlerweile für die PowerShell geht.

01:34:41.922 --> 01:34:44.062
Und das ist auch was ganz Tolles, das ist auch in der DotFile schon drin.

01:34:44.163 --> 01:34:45.242
Es gibt seit November

01:34:45.242 --> 01:34:47.902
für die PowerShell einen Autocompletion, das so ein bisschen

01:34:47.902 --> 01:34:49.643
funktioniert wie das von Fisch und das ist, ja,

01:34:49.842 --> 01:34:51.842
das brauche ich natürlich immer, weil ich normalerweise

01:34:51.842 --> 01:34:53.143
mit der Fischshelle da sehr dran gewöhnt bin,

01:34:53.782 --> 01:34:54.942
weil ich sehr viel Zeit sparen kann.

01:34:56.542 --> 01:34:57.742
Ja, genau,

01:34:58.002 --> 01:35:00.042
und das Ergebnis war dann,

01:35:00.183 --> 01:35:01.882
wäre dann mein Pick,

01:35:02.402 --> 01:35:03.623
was ich jetzt versuche zu verwenden.

01:35:03.723 --> 01:35:05.862
Also ich bin gerade dabei, das auszuprobieren und zu gucken,

01:35:05.862 --> 01:35:07.942
wie ich das so hin bieten kann,

01:35:08.022 --> 01:35:10.002
und das ist das Tool, was ich gerne davon hätte

01:35:10.002 --> 01:35:11.002
und zwar das Tool heißt

01:35:11.002 --> 01:35:12.102
Chessmois

01:35:12.102 --> 01:35:13.782
Chessmois

01:35:13.782 --> 01:35:15.882
genau

01:35:15.882 --> 01:35:19.163
und

01:35:19.163 --> 01:35:19.982
das

01:35:19.982 --> 01:35:23.482
das ist so ein Go geschrieben

01:35:23.482 --> 01:35:25.762
das ist halt so wie so ein, auch eines von den

01:35:25.762 --> 01:35:27.522
wir haben ja momentan ganz viele

01:35:27.522 --> 01:35:28.962
Systemtools

01:35:28.962 --> 01:35:31.683
das macht tatsächlich keine

01:35:31.683 --> 01:35:33.862
Simlink-Geschichte, oder macht halt auch unter Umständen

01:35:33.862 --> 01:35:35.623
Simlinks, ich glaube aber eigentlich nicht

01:35:35.623 --> 01:35:37.862
das

01:35:37.862 --> 01:35:40.022
guckt sich an, wie der Zustand

01:35:40.022 --> 01:35:42.002
deiner aktuellen Files ist, wie es

01:35:42.002 --> 01:35:44.282
sein sollte, sozusagen auch aus dem Git-

01:35:44.282 --> 01:35:45.582
Repo und passt es dann halt an.

01:35:46.362 --> 01:35:48.042
Und das kann halt jetzt noch so ein paar Sachen

01:35:48.042 --> 01:35:49.723
mehr. Also einmal das Schöne ist halt, dass es halt

01:35:49.723 --> 01:35:50.842
das Go ist, ist halt

01:35:50.842 --> 01:35:54.163
so ein statisches Binary, was keine Abhängigkeiten

01:35:54.163 --> 01:35:56.042
hat, relativ leicht auf jeder Maschine

01:35:56.042 --> 01:35:57.522
und

01:35:57.522 --> 01:36:00.163
das hat halt

01:36:00.163 --> 01:36:01.882
auch noch so eine Templating-Language mit drin,

01:36:03.242 --> 01:36:04.143
womit man dann halt

01:36:04.143 --> 01:36:06.062
sozusagen je nachdem, was auf der Maschine irgendwie

01:36:06.062 --> 01:36:07.702
gesetzt ist, halt Dinge anders machen kann,

01:36:07.862 --> 01:36:37.842
und Jochen unterhalten sich über die Programmiersprache Python

01:36:37.862 --> 01:36:40.302
und probiert damit seit ein paar Tagen Dinge mitzumachen.

01:36:40.742 --> 01:36:41.922
Und ich bin eigentlich sehr angetan.

01:36:42.082 --> 01:36:43.582
Also ich glaube, das wird wahrscheinlich demnächst

01:36:43.582 --> 01:36:46.082
meine neue Lösung zum Managen

01:36:46.082 --> 01:36:46.802
meiner .files.

01:36:47.282 --> 01:36:50.002
Das klingt sehr, sehr gut. Ich hätte da noch eine andere

01:36:50.002 --> 01:36:51.942
Frage an der Stelle. Ich weiß nicht, ob das jetzt hier hinpasst,

01:36:52.102 --> 01:36:52.302
aber

01:36:52.302 --> 01:36:55.922
wo ich gerade versuche umzustellen ist, die ganzen

01:36:55.922 --> 01:36:57.342
Keys, weil du gerade von geredet hast mit

01:36:57.342 --> 01:37:00.123
Key-Repos und so, mit Yubi-Keys zu schützen.

01:37:00.763 --> 01:37:02.143
Also zwei Faktor-Antentifizierung

01:37:02.143 --> 01:37:02.683
da reinzubauen.

01:37:04.002 --> 01:37:05.162
Geht das auch einfach so?

01:37:05.162 --> 01:37:07.102
Bei mir funktioniert es auch so

01:37:07.102 --> 01:37:09.202
Mittel gut. Also ich habe jetzt meine wichtigsten

01:37:09.202 --> 01:37:11.062
Applikationen da mit drin, aber das könnte

01:37:11.062 --> 01:37:13.282
das wäre natürlich noch richtig

01:37:13.282 --> 01:37:14.822
klasse, wenn ich dann einfach an der richtigen Stelle

01:37:14.822 --> 01:37:16.723
den richtigen Stick stecke.

01:37:16.723 --> 01:37:18.623
Das müsste eigentlich funktionieren.

01:37:20.082 --> 01:37:20.842
YubiKey ist halt

01:37:20.842 --> 01:37:21.662
die Frage, wie man das

01:37:21.662 --> 01:37:26.842
ich meine, ich würde es sowieso

01:37:26.842 --> 01:37:28.582
ich meine, ich verwende ja OnePassword,

01:37:28.763 --> 01:37:30.502
auch wenn es natürlich

01:37:30.502 --> 01:37:32.602
irgendwie auch ein bisschen

01:37:32.602 --> 01:37:34.462
unangenehm ist, dass er so teuer ist und dass es

01:37:34.462 --> 01:37:36.162
ein sub-strukturales Modell hat, aber

01:37:36.162 --> 01:37:46.683
Das ist halt das einzige Ding, was ich gefunden habe, was halt zuverlässig auf allen Geräten funktioniert und halt auch irgendwie eine durchsachte UI hat. Und das funktioniert auch mit Chinois.

01:37:46.683 --> 01:37:49.862
Chinois, meine Güte, Französisch.

01:37:49.862 --> 01:37:50.602
Franz, Vorsicht.

01:37:53.742 --> 01:37:57.143
How to, ich weiß jetzt nicht genau.

01:37:57.143 --> 01:38:01.062
Ja, ich muss mir das einfach mal durchlesen, das sieht auf jeden Fall sehr toll aus, weil genau das ist halt diese ganze Skripte,

01:38:01.102 --> 01:38:03.062
weswegen ich alles nicht mehr machen muss, weil es alles schon automatisch weiß,

01:38:03.123 --> 01:38:06.662
da muss ich dann eine Struktur halten von meinen .files, dann, irgendwie standardisiert oder so.

01:38:06.942 --> 01:38:07.123
Ja.

01:38:07.842 --> 01:38:08.342
Wahrscheinlich, ne?

01:38:09.022 --> 01:38:11.223
Ja, mal gucken, vielleicht mag ich das, das sieht auf jeden Fall sehr toll aus,

01:38:11.263 --> 01:38:16.322
dass man einfach sagt, Chemois und dann die gleiche Line mit Install dein Username und dann einfach nur Chemois update, das ist schon cool.

01:38:16.723 --> 01:38:16.882
Ja.

01:38:17.902 --> 01:38:18.442
Ja, ja.

01:38:19.542 --> 01:38:19.842
Ja.

01:38:21.362 --> 01:38:21.902
Und du?

01:38:24.242 --> 01:38:24.723
Äh, ich?

01:38:24.842 --> 01:38:25.062
Ja.

01:38:25.062 --> 01:38:28.502
Ich nutze da kein Tool

01:38:28.502 --> 01:38:29.643
also ich hatte da früher mal

01:38:29.643 --> 01:38:31.542
das wenigstens noch irgendwie weggesichert

01:38:31.542 --> 01:38:32.263
oder irgendwie so

01:38:32.263 --> 01:38:35.362
also speziell nochmal extra zu einem normalen Backup

01:38:35.362 --> 01:38:37.842
aber ansonsten habe ich da jetzt eigentlich

01:38:37.842 --> 01:38:39.582
nichts Spezielles, weil ich da auch nicht viel

01:38:39.582 --> 01:38:40.562
anpasse eigentlich

01:38:40.562 --> 01:38:40.922
also

01:38:40.922 --> 01:38:43.742
ja

01:38:43.742 --> 01:38:46.502
ich nutze ja nicht den VI oder so

01:38:46.502 --> 01:38:47.123
wo es so viele

01:38:47.123 --> 01:38:49.782
Ja, ja, den muss man halt irgendwie ausgiebig konfigurieren

01:38:49.782 --> 01:38:53.062
Ich habe vom Emacs mal weggewechselt

01:38:53.062 --> 01:38:54.702
und da war das auch noch beim Emacs

01:38:54.702 --> 01:38:56.602
Das muss man eine ganze Menge machen.

01:38:57.302 --> 01:38:58.442
Aber jetzt habe ich eigentlich

01:38:58.442 --> 01:39:00.862
nichts, was ich da

01:39:00.862 --> 01:39:03.042
groß verwalten sollte.

01:39:03.143 --> 01:39:04.842
Da musst du jetzt mit deinem Pick

01:39:04.842 --> 01:39:06.962
der Folge noch...

01:39:06.962 --> 01:39:07.562
Hast du einen?

01:39:12.763 --> 01:39:13.763
Nö, habe ich nicht.

01:39:15.422 --> 01:39:16.882
Kein Python, wo du drüber gestolpert

01:39:16.882 --> 01:39:18.282
bist und sagst, das muss die ganze Welt kennen.

01:39:21.282 --> 01:39:22.562
Ganz kurz, zum Beispiel

01:39:22.562 --> 01:39:24.662
eine Sache, die ich gerade gesehen habe,

01:39:24.702 --> 01:39:26.402
wo du sagst, dass Sachen installieren, wenn man

01:39:26.402 --> 01:39:28.162
das macht, also ich habe

01:39:28.162 --> 01:39:30.602
das ist eine der Geschichten, die ich gestern glaube ich gemacht habe,

01:39:31.102 --> 01:39:32.123
schon mal, wenn dann

01:39:32.123 --> 01:39:34.242
wenn das, man kann

01:39:34.242 --> 01:39:36.542
Dinge skriptetifizieren, die ausgeführt werden

01:39:36.542 --> 01:39:38.683
sollen, wenn sich was geändert hat

01:39:38.683 --> 01:39:40.702
und wenn, ich habe dann zum Beispiel

01:39:40.702 --> 01:39:44.742
man kann

01:39:44.742 --> 01:39:46.522
bei Mac gibt es ja Homebrew,

01:39:46.623 --> 01:39:48.362
nicht Chocolaty, ist es bei Windows,

01:39:48.502 --> 01:39:49.542
bei Mac ist es Homebrew,

01:39:50.263 --> 01:39:52.702
da kann man ein Brew-File haben, wo die ganzen Pakete, die man so installieren

01:39:52.702 --> 01:39:53.962
möchte, drinstehen und wenn man das ändert,

01:39:53.962 --> 01:39:55.822
und dann sagt man auf einer anderen Maschine

01:39:55.822 --> 01:39:56.542
irgendwie

01:39:56.542 --> 01:39:58.982
Update, genau.

01:39:59.522 --> 01:40:01.223
Dann wird dieses Skript ausgeführt,

01:40:01.482 --> 01:40:03.643
zieht sich das File rein und wenn sich das

01:40:03.643 --> 01:40:05.763
geändert hat, dann installiert

01:40:05.763 --> 01:40:06.242
es das halt direkt.

01:40:06.942 --> 01:40:08.822
Und das ist schon sehr nett.

01:40:08.882 --> 01:40:11.683
Ja, sowas muss ich halt alles noch manuell machen. Ich habe halt meine Listen, die dann

01:40:11.683 --> 01:40:13.422
unterschiedliche

01:40:13.422 --> 01:40:15.322
paketierte Paket-Packages

01:40:15.322 --> 01:40:17.522
quasi installieren, wenn ich

01:40:17.522 --> 01:40:18.002
das dann will.

01:40:19.183 --> 01:40:21.202
Aber ja, ich finde das ganz interessant, weil ich finde, man will vielleicht

01:40:21.202 --> 01:40:23.442
auf verschiedenen Maschinen auch nicht immer alle Pakete gleichzeitig

01:40:23.442 --> 01:40:25.082
Egal, dass das so ein bisschen...

01:40:25.082 --> 01:40:27.382
Ich muss mir das auch jetzt nochmal angucken, wie der Use Case davon ausgedacht ist.

01:40:27.402 --> 01:40:29.322
Mir ist noch was eingefallen. Ich habe das

01:40:29.322 --> 01:40:30.942
Tool CopyQ

01:40:30.942 --> 01:40:33.223
verwendet. Also wie Copy und dann

01:40:33.223 --> 01:40:35.442
in Q. Und das ist ein Keyboard-Manager

01:40:35.442 --> 01:40:37.342
und das finde ich ganz praktisch, weil der eben

01:40:37.342 --> 01:40:39.263
eine History hat von den Sachen, die ich eben

01:40:39.263 --> 01:40:40.962
in der letzten Zeit mit Copy und Paste

01:40:40.962 --> 01:40:43.322
hergenommen habe. Und dann kann ich mit

01:40:43.322 --> 01:40:44.582
STRG ALT V

01:40:44.582 --> 01:40:47.183
eben gucken, was ist in der Liste drin. Und da hat er

01:40:47.183 --> 01:40:49.223
ja sogar auch Bilder drin und mit Formatierung

01:40:49.223 --> 01:40:49.662
und so weiter.

01:40:51.623 --> 01:40:53.062
Das ist, finde ich,

01:40:53.062 --> 01:40:56.962
super praktisch und dann kann man halt natürlich auch in der Liste super schnell suchen, indem ich mit

01:40:56.962 --> 01:41:01.202
Autocomplete halt eben hier die ersten Zeichen von der gesuchten Zeichenkette

01:41:01.202 --> 01:41:04.962
eingeben kann. Und das finde ich sehr praktisch, dass man da so

01:41:04.962 --> 01:41:07.342
eine Art Rucksack mit dabei hat, da kann man gut alles reingeworfen haben.

01:41:07.342 --> 01:41:10.982
Also so ein Copy, also Buffer mit bären Buffern halt, das ist schon sehr schön.

01:41:11.202 --> 01:41:15.902
Genau, das gibt es im Emacs, gibt es im PyCharm, aber im Endeffekt ist es ja cooler, wenn man es

01:41:15.902 --> 01:41:19.022
auf dem Desktop hat, überall Anwendungen hin. Ja genau, gibt es halt auch irgendwie, ist gut.

01:41:19.022 --> 01:41:20.862
oder sogar auf Windows. Ich habe auch mal gesucht

01:41:20.862 --> 01:41:22.502
für so eine Alternative für Windows und das

01:41:22.502 --> 01:41:24.202
funktioniert alles einigermaßen cool.

01:41:24.902 --> 01:41:27.062
Ah, schön. Ja, genau. Das ist ganz praktisch.

01:41:27.982 --> 01:41:28.763
Ja, sehr gut.

01:41:29.162 --> 01:41:30.522
Ah, ich habe auch noch einen zweiten.

01:41:30.922 --> 01:41:32.982
Aber gab es jetzt letztens ein neues Buch

01:41:32.982 --> 01:41:34.802
von Adam Johnson? Ein sehr schönes

01:41:34.802 --> 01:41:36.683
schon geschrieben. Nennt sich

01:41:36.683 --> 01:41:38.922
Speed Up Your Django Tests. Da haben wir bestimmt auch schon mal

01:41:38.922 --> 01:41:40.242
drüber geredet. Das ist irgendwie ganz toll.

01:41:40.562 --> 01:41:42.962
Wir haben über Tests von HTMX noch gar nicht gesprochen. Das ist mir eingefallen.

01:41:43.982 --> 01:41:44.522
Ach, äh.

01:41:45.702 --> 01:41:47.002
Wieso? Oder was muss man da?

01:41:47.002 --> 01:41:48.902
Das ist nicht so schlimm. Ich glaube, es gibt noch nicht so richtig gute Möglichkeiten,

01:41:49.022 --> 01:41:49.482
zu testen.

01:41:49.702 --> 01:41:50.643
Klar, natürlich.

01:41:51.402 --> 01:41:53.643
Wie in jedem anderen View auch.

01:41:54.802 --> 01:41:55.643
Da musst du gar nichts machen.

01:41:55.702 --> 01:41:56.242
Das ist toll.

01:41:57.342 --> 01:41:58.502
Dann habe ich nichts gesagt.

01:41:59.542 --> 01:42:01.422
Ja, das ist tatsächlich sehr nett.

01:42:01.862 --> 01:42:04.362
Dann wollte ich dich nicht weiter bei deinem

01:42:04.362 --> 01:42:04.782
Boot picken.

01:42:04.922 --> 01:42:08.382
Ja, Moment, aber ich würde gerne abschweifen und nochmal über JavaScript herziehen,

01:42:08.382 --> 01:42:09.662
weil das noch nicht genau passiert ist.

01:42:10.082 --> 01:42:11.582
Also ich habe ja jetzt in letzter Zeit auch so ein bisschen

01:42:11.582 --> 01:42:14.002
Vue, Vue ist halt das Framework, was ich

01:42:14.002 --> 01:42:15.302
am interessantesten finde.

01:42:16.562 --> 01:42:18.282
Und Websockets und so gemacht und so

01:42:18.282 --> 01:42:20.362
und da halt auch dann Tests geschrieben.

01:42:21.202 --> 01:42:22.462
Und ja, also

01:42:22.462 --> 01:42:24.402
dann habe ich

01:42:24.402 --> 01:42:26.662
mit Jest ganz viel Tests gemacht

01:42:26.662 --> 01:42:28.223
und das ist echt, also das ist,

01:42:28.683 --> 01:42:30.422
das hat wirklich keinen Spaß gemacht.

01:42:30.482 --> 01:42:33.042
Ist das denn wohl von Jest nicht, diese Clowns-Gaukler-Mütze

01:42:33.042 --> 01:42:33.542
auf dem Kopf?

01:42:34.482 --> 01:42:35.442
Ich weiß es nicht genau.

01:42:35.882 --> 01:42:37.802
Ich gucke mal kurz bitte nach.

01:42:38.002 --> 01:42:39.183
Kann sein.

01:42:39.183 --> 01:42:40.842
Ja, ich musste auch Tests mit der schreiben.

01:42:41.962 --> 01:42:42.322
Ja.

01:42:42.842 --> 01:42:44.763
Ja, auf jeden Fall, das war halt echt,

01:42:45.042 --> 01:42:46.342
oh, also.

01:42:46.862 --> 01:42:47.643
Das ist der Gaukler-Schuh.

01:42:47.643 --> 01:43:17.123
Also das ist ja jetzt auch quasi gar nicht mehr so neu und so und dann, ich bin mehrfach in Sachen reingelaufen, wo ich dachte, das geht nicht oder oh, das kann ich jetzt so nicht machen, okay, wie macht man das dann richtig und dann landet man halt auch irgendwie so in so Wüsten-GitHub-Issues, wo seit Jahren Leute sagen, das ist aber nicht so schön hier, was ist denn da los, geht das nicht und dann geht es halt tatsächlich nicht und zwar immer noch nicht und es ist halt auch und dann die Integration mit Vite ist dann halt schwierig und oh, also,

01:43:17.643 --> 01:43:20.102
Die Developer-Experience

01:43:20.102 --> 01:43:21.462
war eher so

01:43:21.462 --> 01:43:22.482
mittelmäßig.

01:43:23.502 --> 01:43:25.143
Allen Leuten, die glauben, dass

01:43:25.143 --> 01:43:27.022
JavaScript-Entwicklung voll gut ist und

01:43:27.022 --> 01:43:29.382
dass das noch nicht zugeliefert ist und dass man das unbedingt auf dem Server

01:43:29.382 --> 01:43:30.782
machen möchte, dann

01:43:30.782 --> 01:43:33.502
würde ich fragen, also ihr kennt schon so ordentliche

01:43:34.502 --> 01:43:35.562
Web-Frameworks auf dem Server.

01:43:35.782 --> 01:43:36.702
Habt ihr schon mal verwendet? Ja.

01:43:37.362 --> 01:43:38.802
Habt ihr euch das mal angeguckt, wie das da so geht?

01:43:39.442 --> 01:43:40.982
Und wenn nein,

01:43:41.183 --> 01:43:41.902
guckt es euch mal an.

01:43:43.263 --> 01:43:45.263
Aber das wird ja besser. Du hast ja letztens auch noch

01:43:45.263 --> 01:43:47.162
eine Sache gelinkt, Pinja als Ersatz für

01:43:47.162 --> 01:43:48.862
VX, das ist ja schon eine Verbesserung.

01:43:48.862 --> 01:43:49.763
Für den VUX-Store, genau.

01:43:49.763 --> 01:43:51.723
Mit DevTools-Support und so, das ist ja auch, ja.

01:43:52.342 --> 01:43:54.062
Aber das braucht man halt nicht, wenn man das so ganz

01:43:54.062 --> 01:43:54.422
so weit macht.

01:43:54.763 --> 01:43:58.102
Ja, naja,

01:43:58.202 --> 01:44:00.223
jedenfalls, genau, da wollte ich noch mal kurz...

01:44:00.223 --> 01:44:00.322
Genau,

01:44:02.882 --> 01:44:03.842
Adam Johnson, der hat

01:44:03.842 --> 01:44:05.422
ein neues Buch geschrieben,

01:44:07.322 --> 01:44:07.942
Boost Your

01:44:07.942 --> 01:44:11.862
Developer

01:44:11.862 --> 01:44:13.982
Experience, und genau,

01:44:14.123 --> 01:44:16.042
ich habe es noch nicht gelesen, weil es ist so frisch, es kam jetzt

01:44:16.042 --> 01:44:17.942
im Montag raus, dass ich noch nicht dazu gekommen bin.

01:44:18.542 --> 01:44:20.022
Aber kann man sich mal angucken.

01:44:20.183 --> 01:44:22.162
Da ist auf jeden Fall wahrscheinlich

01:44:22.162 --> 01:44:23.902
eine Menge tolle Sachen drin. Also es geht halt um

01:44:23.902 --> 01:44:25.462
viel, auch jetzt eben solche Dinge

01:44:25.462 --> 01:44:27.902
wie halt Pricometux

01:44:27.902 --> 01:44:29.002
oder halt

01:44:29.002 --> 01:44:30.922
PyUpgrade

01:44:30.922 --> 01:44:33.202
und ja,

01:44:33.502 --> 01:44:35.763
auch viel Nicht-Django-Zeugs ist da halt auch drin.

01:44:36.582 --> 01:44:37.742
Ja, ich kann es auch empfehlen.

01:44:37.802 --> 01:44:39.162
Hab schon gelesen. Ach so, sehr gut.

01:44:40.062 --> 01:44:41.922
Ja, ich hab es zufälligerweise zugeschickt bekommen

01:44:41.922 --> 01:44:42.582
vom Auto her.

01:44:43.263 --> 01:44:44.242
Zum Probelesen.

01:44:44.242 --> 01:44:44.982
Ja.

01:44:46.042 --> 01:44:49.643
und es ist okay, genau.

01:44:49.802 --> 01:44:50.402
Also ich finde es auch schön,

01:44:50.502 --> 01:44:52.922
auch das vorgehende Buch von ihm,

01:44:53.582 --> 01:44:55.382
Speedup, ja, Python-Tests.

01:44:56.162 --> 01:44:57.442
Ich finde es schön, wie er schreibt,

01:44:57.562 --> 01:44:59.502
ganz pragmatisch, also ohne großes

01:44:59.502 --> 01:45:00.342
Blablabla, schön.

01:45:00.962 --> 01:45:02.143
Ja, lohnt sich.

01:45:03.962 --> 01:45:04.763
Ja, ja, ja, ja.

01:45:05.582 --> 01:45:07.643
Na gut, dann noch mit diesen

01:45:07.643 --> 01:45:08.723
Worten als Schlusssatz.

01:45:09.082 --> 01:45:11.382
Bleibt es noch gebogen und teilt es wieder rein, das nächste Mal.

01:45:12.183 --> 01:45:12.502
Ja, klar.

01:45:12.902 --> 01:45:15.242
Und hört uns gerne immer, wenn ihr mögt.

01:45:15.242 --> 01:45:18.342
und wünsche euch noch einen schönen Tag, Abend, Nacht, wo auch immer ihr seid.

01:45:19.382 --> 01:45:20.263
Und bis dann. Tschüss.

01:45:20.602 --> 01:45:20.742
Ciao.

01:45:20.982 --> 01:45:21.562
Danke, Thomas.
