Zum Jahreswechsel haben wir uns mit Joe Ray Gregory (@joyraygregory) hingesetzt und zusammen darüber orakelt, welche neuen Tools und Paradigmen die Frontend Entwicklung im Jahr 2023 prägen könnten. Joe ist Frontend-Entwickler und Trainer aus Hamburg und Ihr kennt ihn vielleicht aus der Revision 520 über Unit-Testing.
Schaunotizen
- [00:01:45] Frontend Development im Jahr 2023
- Wir reden natürlich über Frontend-Frameworks und denken, dass der Schwenk hin zu Frameworks fortsetzen wird, bei denen Server-Side-Rendering und so wenig JaVaScript im Client der Standard ist. Prominentestes Beispiel hierfür ist Astro, aber auch NextJS und NuxtJS entwickeln sich in diese Richtung.
Außerdem werden sich Web Components als Auslieferungsform weiter etablieren.
Für eine bessere Performance wird alles weiter in Richtung „Actor Model“ entwickelt, also dass ein Main-Thread möglichst viel Arbeit in separate Threads auslagert (höre auch Revision 329 zum Actor Model). Eine Schlüsselrolle wird das Tool Partytown spielen.
Als Unterstützung bei der Entwicklung werden Mikro-Bibliotheken aus dem UnJS-Pool große gebräuchliche Bibliotheken wie Axios oder auch Lodash ersetzen.
Im Testing wird Playwright seinen Marktanteil weiterausbauen.
Für die Komponenten-basierte Entwicklung wird Storybook zwar das Goto-Werkzeug bleiben, aber daneben wird sich Histoire aus dem Vue-Umfeld ähnlich etablieren können wie zuvor auch schon Vite.
In Sachen Bundler und Build-Tools kommt allerlei Neues auf uns zu: Turbopack wird der Nachfolger von Webpack und dann gibt es vom Erfinder von Babel noch eine ganze Build-Suite namens Rome, die Code-Formattier, Code-Linter, Com- & Transpiler, Bundler, sowie das Testing-Tool aus einer Hand sein will. Beiden ist gemeinsam, dass sie aus Performance-Gründen auf Rust bauen, was derzeit auch im Trend zu sein scheint und von SWC, Parcels Lightning CSS und esbuild (allerdings in Go) vorexerziert wurde. Darüber, ob das immer nötig ist oder ob ein wenig Nacharbeit an JavaScript-Code nicht der erste Zwischenstopp sein müsste, fragt sich da Marvin Hagemeister.
Aus dem CSS-Bereich kommend werden die Container Queries ganz viel neue Möglichkeiten eröffnen, sobald diese in allen Browsern freigeschaltet sind.
Monorepos werden ein Thema werden, dank exzellentem Tool-Support durch pnpm, Turborepo oder Lerna (das allerdings nicht mehr maintained wird).
Und schließlich schauen wir auch gespannt darauf, was der NodeJS- und Deno-Konkurrent Bun, dessen JavaScript-Engine nicht auf Googles V8, sondern auf Apple JavaScriptCore bsisert, zukünftig in die Waagschalde werfen wird.
[00:00:00] Keine Schaunotizen
- Console Ninja
- VSCode-Erweiterung, um Consolen-Output direkt in der IDE zu haben.
Transkript
WEBVTT 00:00.000 --> 00:02.000 Revision 552 00:30.000 --> 00:40.000 Kennst du das auch? Du willst mit einer neuen Technologie starten, aber das Internet ist zu voll mit Wirrm-Content in verschiedenster Qualität? 00:40.000 --> 00:51.000 Du suchst kompaktes Wissen, was dich direkt produktiv macht, mit echter Erfahrung von Experten und Expertinnen, die für deine akuten Fragestellungen da sind? 00:51.000 --> 01:11.000 Dann solltest du mal im TrainerInnen-Netzwerk von Workshops.de vorbeischauen. Hier findest du eine Community aus über 80 TrainerInnen, welche gemeinsam Material erstellen, sich gegenseitig unterstützen und weiterbilden, um möglichst nachhaltige und hochqualitative Weiterbildungsangebote zu schaffen. 01:11.000 --> 01:20.000 Es gibt sowohl Intensivschulungen über mehrere Tage als auch Masterclasses, welche dich über einige Monate unterstützen. 01:20.000 --> 01:30.000 Ist du auf der Suche nach einer qualitativen Weiterbildung im Bereich Web-Entwicklung? Oder möchtest du dich selbst als TrainerInnen einbringen? 01:30.000 --> 01:34.000 Dann bist du bei Workshops.de genau richtig. 01:34.000 --> 01:42.000 Schau einfach mal vorbei für alle Informationen, Workshops.de. Wir freuen uns auf dich. 01:47.000 --> 01:56.000 Hallo und herzlich willkommen beim WorkingDraft mit der Revision 552. Wir sind heute zu dritt. Aus dem Team dabei habe ich den Chef. 01:56.000 --> 01:57.000 Hallo. 01:57.000 --> 02:08.000 Und als Gast haben wir einen Wiederholungstäter, den Joe. Hallo Joe. Du warst schon mal bei uns in der Revision 520. Da haben wir über Unitesting gesprochen. 02:08.000 --> 02:13.000 Aber dennoch werde ich dich mal kurz nochmal bitten, dich vorzustellen, wer du bist. 02:13.000 --> 02:31.000 Ja, hallo Vanessa. Hallo Chef. Schön, dass ich wieder da sein kann. Ich bin Joe Ray Gregory. Ich bin wohnhaft in Lüneburg bei Hamburg und bin Software-Engineer seit über 15 Jahren mit dem Schwerpunkt im Front-End, im Web-Front-End. 02:31.000 --> 02:48.000 Ich bin beruflich tätig mittlerweile als Trainer, Mentor und Konsultant, wie gesagt im Bereich der Front-End-Architektur und dementsprechend freue ich mich heute zu Gast zu sein bei euch und mich über das Thema mit euch austauschen zu können. 02:48.000 --> 03:13.000 Ja, da freuen wir uns auch sehr, denn wir sind ja mittlerweile quasi im neuen Jahr 2023. Es kann nur besser werden an sich und heute sprechen wir dann über einen Ausblick, was eigentlich uns in der Front-End-Welt alles so vorausschauen können, was du vorausschauen kannst, was uns so auf uns zukommen wird. 03:13.000 --> 03:31.000 Und einen Punkt, den wir besprechen wollen, gerade im Thema Front-End, ist natürlich das Thema der Frameworks, denn davon gibt es einige und da wollten wir dich nach deiner Prognose fragen, wie es weitergehen könnte in der Zukunft. 03:31.000 --> 03:51.000 Ja, das ist gut. Ich pack schon mal die Kristallkugel habe ich schon auf den Tisch und guck einmal rein vorausschauend. Nein, Scherz beiseite. Also ja, 2023 dieses Jahr wird sich wahrscheinlich wieder ein neues JavaScript-Famework rauskristallisieren. 03:51.000 --> 04:04.000 Das ist ja nicht ohne Grund zu, dass jedes Jahr irgendwie gefühlt ein neues JavaScript-Famework rauskommt, was Dinge besser tut. Ich denke, dass wir 2023 ein starkes Wachstum bei Sweld haben werden. 04:04.000 --> 04:15.000 Das ist schon 2022 gut gewachsen und da denke ich, dass auf jeden Fall da sich ein bisschen was tun wird. 04:15.000 --> 04:24.000 Ich denke auch, dass das Wachstum von React dementsprechend nicht so krass weitergehen wird, wie es die letzten Jahre war, so meine persönliche Meinung. 04:24.000 --> 04:30.000 Ich habe das Gefühl, dass sehr viele Companies wechseln Richtung View, Richtung Sweld. 04:30.000 --> 04:49.000 Das kann ich dadurch beurteilen, dass ich sehr viele Menschen schule bei Workshops.de unter anderem und dort immer wieder vermehrt Leute zu uns kommen, Kunden zu uns kommen, die sich im Bereich Future-S-Schulen lassen, die vorher Angular oder anderen Frameworks unterwegs waren. 04:49.000 --> 05:08.000 Aber auch das Interesse nach Sweld, die Nachfragen nach Sweld, sich deutlich gesteigert hat mittlerweile, die Leute sind neugierig und finden vor allem auch bei Future-S mittlerweile den Part sehr spannend, der von Sweld nicht kopiert, sondern adoptiert wurde. 05:08.000 --> 05:26.000 Genau, inspiriert wurde, danke schön. Von daher sprich die ganze Script-Setup-Geschichte, die es im Future-S gibt, die ist ja sehr inspiriert von Sweld und deswegen glaube ich, dass das auf jeden Fall einen großen Wachstum machen wird nochmal 2023. 05:26.000 --> 05:46.000 Den Punkt, den du gerade meines von Angular zu View finde ich irgendwie persönlich immer noch sinnvoll, weil die beiden mal vor sehr langer Zeit auf der gleichen Basis beruht haben und ich von den Konzepten her klingt, dass für mich wirklich sinnvoll von Angular zu View zu wechseln. 05:46.000 --> 05:53.000 Aber hattest du auch den Eindruck, dass Developer von React zu View wechseln oder zu Sweld? 05:53.000 --> 06:13.000 Ja, teils, teils. Zumindest sieht man auch bei View Mastery, was eine Schulungsressource ist, mit Lern-Content im Web, dass zumindest React zu View Kurse angeboten werden und ja, also ich habe auch das Gefühl, dass von React es einen Umschwung gibt. 06:13.000 --> 06:26.000 Wobei, ich glaube da noch die Fronten ein bisschen härter sind und vielleicht auch der, wie du schon so schön gesagt hast, der Bedarf gar nicht so groß ist, weil die Nähe doch tatsächlich von Angular zu View eher gegeben ist. 06:26.000 --> 06:37.000 Wobei, seit der Composition API in View gibt es auch viele Leute, die sagen, okay, ich sehe die Vorteile bei View.js an der Stelle und von daher glaube ich auch, dass da einige User rüber wechseln. 06:37.000 --> 06:49.000 Das soll aber nicht heißen, dass React verschwinden wird, also die sind alle gekommen, um zu bleiben. Und das Einzige, was sich verschieben wird, ist wahrscheinlich der Markteinteil von allen anderen Richtungen, das ist meine Einschätzung aktuell. 06:49.000 --> 07:05.000 Also, Sweld wird am meisten gewinnen können. Und vielleicht View.js könnte noch ein bisschen was gewinnen, aber ich glaube React an sich sieht man ja bei State of JavaScript 2021, da hat man es ganz deutlich gesehen, dass es schon eine straight Linear, die da irgendwie gezeichnet wird. 07:05.000 --> 07:18.000 Ja, genau, ich meine gerade, was Bedarf angeht, vielleicht gibt es Bedarf tatsächlich von Angular wegzugehen aus Gründen, dass die Trade-offs, die aktuell mit dem Framework inhergehen, nicht mehr zum aktuellen Konzept des Produkts empasst. 07:18.000 --> 07:29.000 Wenn ich jetzt aber jemand Außenstehenden wirklich mal View oder React erklären müsste, würde ich schon auch manchmal sagen, naja, das ist sein Dialekt, das ist schon ziemlich ähnlich. 07:29.000 --> 07:38.000 Und React sehe ich jetzt selber, weiß ich nicht, ob es da wirklich Gründe gibt, davon wegzugehen, also das riecht driftige Gründe. 07:38.000 --> 07:50.000 Außer zum Beispiel, man hat das ganze Team ist besser im View geschult und möchte das machen und wenn es jemand irgendwie eine Firma verlässt und eine andere Firma betritt und diese Firma macht dann View.js, dann muss ich natürlich umsetteln. 07:50.000 --> 07:59.000 Aber wie du zur Richtung schmeintest, ich glaube auch nicht, dass React weiter wächst, weil es eben bisher schon die Top 1 war und jetzt die anderen ein bisschen nachrücken. 07:59.000 --> 08:12.000 Ich erinnere mich aber daran, dass es irgendwann in 2022 einen Talk darüber gab mit Vorhersagen, auch über die Web Development, der war ziemlich Big Picture-mäßig. 08:12.000 --> 08:20.000 So nach dem Motto, wir sollten wieder mit No Code Programmierung weiterleben. 08:20.000 --> 08:28.000 Und das war gar nicht der Talk, aber ich glaube, es gab einen Talk, wo React so als der einzige Stern dastand. 08:28.000 --> 08:37.000 So das hat sich durchgesetzt, so das ist das Apple, was anderes gibt es nicht mehr und View ins Welt waren da so ein bisschen am Absterben. 08:37.000 --> 08:43.000 Muss man wahrscheinlich alles wird ein bisschen grain of salt betrachten. 08:43.000 --> 08:48.000 Absolut, ich sage mal diese absoluten Aussagen, ich bin ja kein Fan von. 08:48.000 --> 08:56.000 Und letzten Endes darf man nicht vergessen, es ist alles JavaScript und wir wissen nicht, wie sich der Markt generell weiterentwickeln wird. 08:56.000 --> 09:01.000 Wie gesagt, ich habe gerne gesagt, die sind gekommen, um zu bleiben, das ist definitiv der Fall. 09:01.000 --> 09:07.000 Und ich kenne noch so viele Projekte, die auf Angular 1.7, glaube ich, sogar laufen. 09:07.000 --> 09:14.000 Das wird sich ändern. Irgendwann werden die definitiv umschwingen. 09:14.000 --> 09:21.000 Aber der Trend geht ja auch dahin, dass man auch weniger auf ein Framework setzt, also dass man wieder mehr Vanilla-Jabber-Script einsetzt. 09:21.000 --> 09:30.000 Das ist ja das, was du gerade auch meintest, also glaube ich, dass man weniger Code oder weniger Framework-Code einsetzt. 09:30.000 --> 09:35.000 Das ist ja das, was bei Swelt auch so interessant ist, dass du ja eigentlich nicht wirklich dieses Framework dahinter hast, 09:35.000 --> 09:46.000 sondern dass es halt transpiled wird zu was Eigenem, also erst dann zu einem Konstrukt wird, was zusammengesetzt wird zu Transpiled Time, Compiled Time. 09:46.000 --> 09:50.000 Und das macht das halt schon ziemlich interessant. 09:50.000 --> 09:52.000 Aber der Trend geht ja auch dahin, dass andere Frameworks das eher nicht machen. 09:52.000 --> 09:57.000 Also auch wenn man sich quick zum Beispiel anguckt, es geht ja immer darum, höher, schneller, weiter. 09:57.000 --> 10:01.000 Und am Ende ist es nur ein Werkzeug, was man einsetzt. 10:01.000 --> 10:08.000 Und ich glaube, der Schwung von React oder zu einer von einem Komponent getriebenen Framework zu einem anderen Komponent getriebenen Framework, 10:08.000 --> 10:14.000 der ist machbar, glaube ich, für jeden professionellen Frontend-Developer. 10:14.000 --> 10:22.000 Ja, was mich interessieren würde generell, es gibt ja mittlerweile wirklich viele gute kleine Frameworks, 10:22.000 --> 10:25.000 die genau für einen Use Case extrem gut sind. 10:25.000 --> 10:33.000 Und dann gibt es die größeren, die man quasi auf alles schmeißen kann und die werden schon alles davon irgendwie erledigen. 10:33.000 --> 10:39.000 Und es gibt so Situationen, da könnte ich jetzt ViewJS einsetzen. 10:39.000 --> 10:42.000 Aber eigentlich brauche ich auch nur einen Modal. 10:42.000 --> 10:46.000 Und dann drücke ich mir dafür, ich brauche da jetzt nicht einen Shavascript-Laden, um einen Modal zu öffnen. 10:46.000 --> 10:48.000 Und da habe ich immer das Problem. 10:48.000 --> 10:52.000 Jetzt weiß ich, es gibt da wahrscheinlich fünf kleine Frameworks, die das gut machen könnten. 10:52.000 --> 11:00.000 Aber dann, interessanterweise tendiere ich eher dazu, dass es so richtig war, ein Shavascript selber zu schreiben, 11:00.000 --> 11:06.000 weil bei mir dann selbst die Angst hochkommt, dass ich dann sonst zwei Frameworks maintainen müsste 11:06.000 --> 11:11.000 und das ganze Team sich mit beiden Sprachen auskennen müsste. 11:11.000 --> 11:16.000 Dann denke ich mir gut, das klingt jetzt fast wieder wie eine Ausgäte, weil es nun mal alles Frontend-Developer. 11:16.000 --> 11:21.000 Und wenn man ViewJS lernen und schreiben kann, dann kann man wahrscheinlich auch so ein anderes kleines Framework 11:21.000 --> 11:23.000 lernen und schreiben. 11:23.000 --> 11:29.000 Aber denkst du, da gibt es einen Trend hin, dass man mehrere Frameworks einsetzen könnte. 11:29.000 --> 11:34.000 Also eben tatsächlich dieses Ich wähle die richtige Technologie für das richtige Problem. 11:34.000 --> 11:42.000 Oder dass wir weiterhin alles, okay, wir haben uns entschieden, ganze Firma hat sich entschieden, wir machen Angular 7 11:42.000 --> 11:44.000 und da bleibt man jetzt dabei. 11:44.000 --> 11:48.000 Und dann erschlagen wir eben jedes Problem damit, auch wenn es uns da manchmal im Weg steht. 11:48.000 --> 11:54.000 Definitiv ist da ein Trend Richtung, sagen wir mal, den Micro-Frontends noch zu erkennen. 11:54.000 --> 12:01.000 Mit Micro-Frontends würdest du dieses Problem auf jeden Fall erschlagen können, zumindestens auf Papier. 12:01.000 --> 12:04.000 Die Praxis sagt dann nochmal was anderes an der Stelle. 12:04.000 --> 12:13.000 Das bedeutet letzten Endes, mit dem Micro-Frontend kannst du einzelnen Applikationsteile theoretisch und auch praktisch 12:13.000 --> 12:15.000 mit unterschiedlichen Technologien umsetzen. 12:15.000 --> 12:18.000 Kommt drauf an, wie man das Ganze angeht. 12:18.000 --> 12:23.000 Es gibt da die Möglichkeit, über Webpack Module Federation ranzugehen bzw. es ist jetzt kein Webpack-Ding, 12:23.000 --> 12:30.000 sondern diese Module Federation als Technik kann man auch mit Weed oder mit anderen Bandlern dementsprechend einsetzen. 12:30.000 --> 12:37.000 Wo man halt sagt, okay, dieser Bereich der Applikation ist jetzt mit Angular, der ist mit React und der ist mit View. 12:37.000 --> 12:39.000 Das würde auf der einen Seite gehen. 12:39.000 --> 12:45.000 Oder man nutzt ein Web-Component-Layer, isoliert quasi diese einzelnen Frameworks in Web-Components. 12:45.000 --> 12:52.000 Das ist ja auch ein Trend, den man auch bei, also ich bin primär im Future-S-Bereich auch als Trainer, 12:52.000 --> 12:57.000 deswegen spreche ich jetzt vielleicht ein bisschen mehr über View, aber das gleiche gilt auch für andere Frameworks. 12:57.000 --> 13:01.000 Man kann Web-Komponenten erstellen quasi. 13:01.000 --> 13:03.000 Und das ist auch was, was ich mittlerweile sehr oft mache. 13:03.000 --> 13:08.000 Wenn ich in Umgebung bin, wie du sie beschrieben hast, ich weiß nicht, da ist jetzt irgendwie jQuery im Einsatz. 13:08.000 --> 13:13.000 Ich weiß, wir sind 2023, aber trotzdem ist jQuery immer noch da. 13:13.000 --> 13:16.000 Es wird auch so schnell nicht von gewissen Seiten verschwinden. 13:16.000 --> 13:19.000 Aber wenn man jetzt eine fremde Webseite hat, meistens ist das irgendwie so, 13:19.000 --> 13:25.000 vielleicht hat man eine WordPress-Seite, ist Freelancer und soll da irgendwie ein Shirt-Konfigurator bauen. 13:25.000 --> 13:27.000 Man hat keine Ahnung, wie die Umgebung ist. 13:27.000 --> 13:33.000 Dann könnte man sehr gut auf jeden Fall mit View.js, React oder mit Spell eine Web-Component kompilen lassen, 13:33.000 --> 13:36.000 die dann dementsprechend eingesetzt werden kann. 13:36.000 --> 13:39.000 Und die ist ja isoliert vom Rest der Webseite. 13:39.000 --> 13:41.000 Das wäre auf jeden Fall eine Möglichkeit. 13:41.000 --> 13:45.000 Mit dieser Technik kann man dementsprechend auch Micro-Front and Stumbound bauen. 13:45.000 --> 13:47.000 Das wäre die andere Möglichkeit. 13:47.000 --> 13:57.000 Oder man setzt auf eine Technologie wie AstroJS und sagt da, ich erstelle mir ein Static-Website 13:57.000 --> 14:04.000 oder ich erstelle mir eine Web-Applikation, die mit unterschiedlichen Frameworks laufen kann. 14:04.000 --> 14:08.000 Vielleicht habe ich das eine Team, das kennt sich ein bisschen besser aus mit swelled 14:08.000 --> 14:13.000 und das andere Team kennt sich besser aus mit react oder preact oder was auch immer. 14:13.000 --> 14:17.000 Und Astro gibt uns dann die Möglichkeit zu sagen, hey, nutze was immer du willst. 14:17.000 --> 14:22.000 Am Ende renne ich eh Static.html raus und mache die Bereiche, die du möchtest, 14:22.000 --> 14:27.000 dynamisch mit JavaScript, mit dem JavaScript-Framework deiner Wahl. 14:27.000 --> 14:30.000 Und damit könnte man das mit dieser Island-Architecture, wie sie das Ganze nennt, 14:30.000 --> 14:33.000 natürlich dann auch gut lösen. 14:33.000 --> 14:36.000 Also es sind drei Ansätze, die ich jetzt gerade genannt habe. 14:36.000 --> 14:39.000 Du hattest auch gerade Web-Components erwähnt. 14:39.000 --> 14:41.000 Ja. 14:41.000 --> 14:45.000 Ich weiß nicht, wie die aktuelle Beliebtheit der Web-Components jetzt gerade so ist. 14:45.000 --> 14:49.000 Ich habe noch nicht die Ergebnisse auch von State of JS direkt angeschaut. 14:49.000 --> 14:51.000 Wie schaut es denn da aus? 14:51.000 --> 14:55.000 Weil das letzte Mal, als ich reingehört habe, war das immer so, ja, nicht so gut, 14:55.000 --> 14:58.000 Support nicht so gut oder Doku nicht so gut. 14:58.000 --> 15:02.000 Auf jeden Fall gab es immer so eher die nicht so gehypte Grundeinstellung. 15:02.000 --> 15:09.000 Also generell ist das so ein Thema, ich sage mal, ich habe mich damit sehr viel beschäftigt 15:09.000 --> 15:12.000 im letzten Projekt, in dem ich tätig war. 15:12.000 --> 15:17.000 Und ich will eigentlich die positiven Dinge erst mal hervorstellen. 15:17.000 --> 15:21.000 Die positiven Dinge sind, dass man mit Web-Components auf jeden Fall sehr gut 15:21.000 --> 15:25.000 User-Interface-Components bereitstellen kann, also UI-Components, 15:25.000 --> 15:32.000 die, ich sage mal, unabhängig sind, dann von dem jeweiligen Framework. 15:32.000 --> 15:35.000 Das heißt also, wenn man zum Beispiel Shoelace, 15:35.000 --> 15:41.000 Shoelace ist ein Component-Library, die auf Web-Components basierend ist 15:41.000 --> 15:45.000 und die kannst du halt einsetzen in React, View, whatever. 15:45.000 --> 15:47.000 Es spielt einfach keine Rolle. 15:47.000 --> 15:49.000 Das funktioniert einfach dementsprechend. 15:49.000 --> 15:51.000 Und da sehe ich die ganz großen Stärken. 15:51.000 --> 15:55.000 Ich sehe aber immer noch die ganz großen Schwächen auch darin, dass diese Standardthemen, 15:55.000 --> 15:59.000 wie zum Beispiel diese Global Registry von Web-Components, 15:59.000 --> 16:02.000 und das ist eines der großen Probleme bei Microfrontends, 16:02.000 --> 16:05.000 so sehe ich das zumindest in gewissen Konstellationen, 16:05.000 --> 16:09.000 dass du halt dann eben nicht independent eine Web-Componentin, 16:09.000 --> 16:12.000 eine anderen Web-Component nutzen kannst, weil die ja alle global registriert werden. 16:12.000 --> 16:16.000 Die These wäre ja eigentlich zu sagen, ich habe einen Button, 16:16.000 --> 16:19.000 und der ist in Version 1, der ist in der einen Web-Componenten, 16:19.000 --> 16:21.000 ich habe einen Button, der ist in der Version 2, 16:21.000 --> 16:23.000 hat vielleicht ein anderes Prop noch dazu, 16:23.000 --> 16:25.000 hat ein Breaking Change oder sonst irgendwas, 16:25.000 --> 16:27.000 und der ist in der anderen. 16:27.000 --> 16:30.000 Und du kannst diese beiden nicht mit dem gleichen Namen registrieren, 16:30.000 --> 16:33.000 sondern du müsstest irgendwie sagen, das eine ist der Button V1, 16:33.000 --> 16:35.000 das andere ist der Button V2. 16:35.000 --> 16:37.000 Es ist so ein Problem, was ich bei Web-Componenten sehe, 16:37.000 --> 16:40.000 und ich glaube, das Problem ist ja 2018 bekannt oder so. 16:40.000 --> 16:47.000 Und ansonsten ist das ganze Formularhandling noch ein bisschen gewöhnungsbedürftig, teilweise. 16:47.000 --> 16:51.000 Aber ansonsten sage ich mal so, glaube ich, ich persönlich setze Web-Components 16:51.000 --> 16:53.000 mittlerweile sehr, sehr gerne ein. 16:53.000 --> 16:56.000 Und zwar, wie gesagt, immer dann, wenn ich so in anderen Environments bin, 16:56.000 --> 17:00.000 die ich nicht kenne, und dementsprechend, ja, 17:00.000 --> 17:03.000 ist das auf jeden Fall eine sinnvolle Ergänzung. 17:03.000 --> 17:05.000 Ich kenne allerdings, muss ich ehrlich sagen, 17:05.000 --> 17:07.000 nicht so viele Leute, die Native Web-Components entwickeln, 17:07.000 --> 17:09.000 die meisten nutzen dann doch Lit. 17:09.000 --> 17:14.000 Das als Framework, ja, wir sind eigentlich bei den Web-Components, 17:14.000 --> 17:16.000 aber ganz ohne Frameworks geht es dann auch nicht. 17:16.000 --> 17:19.000 Und ich persönlich habe mir fast vorgenommen, 17:19.000 --> 17:24.000 20, 23 Web-Components eine neue Chance zu geben, 17:24.000 --> 17:26.000 in die sofern, dass ich sie noch ein bisschen mehr, 17:26.000 --> 17:28.000 vielleicht berücksichtige und einsetze. 17:28.000 --> 17:31.000 Ja, wir haben Ihnen in 2022 schon mal wieder eine Chance gegeben. 17:31.000 --> 17:35.000 Also, wie gesagt, das meiste mache ich dann doch irgendwie in Vanille noch mal hinterher. 17:35.000 --> 17:38.000 Aber wir haben einen, so ein Passwort-Check, 17:38.000 --> 17:42.000 so ist da auch genügend Sonderzeichen, blieb la blub drinnen. 17:42.000 --> 17:47.000 Und das haben wir ja natürlich gerade auf der Registrierungseite, 17:47.000 --> 17:49.000 gut dann auch später bei der Account-Seite, 17:49.000 --> 17:53.000 aber das sind Seiten, die laufen tatsächlich ganz ohne JavaScript. 17:53.000 --> 17:55.000 Ich war jetzt ganz verrückt, aber ich habe mir gedacht, 17:55.000 --> 17:58.000 naja, ich brauche einen User-Namen und ich brauche einen Passwort, 17:58.000 --> 18:01.000 ich brauche kein JavaScript, das läuft so statisch, 18:01.000 --> 18:04.000 so eine Form, so eine Action. 18:04.000 --> 18:06.000 Aber dann war eben, ja, jetzt brauchen wir eine Passwort-Überprüfung, 18:06.000 --> 18:09.000 da war ich so, oh, das ist aber doof. 18:09.000 --> 18:12.000 Und dann haben wir, da hat ein Kollege für mich gemeint, da weißte was, 18:12.000 --> 18:15.000 ich mache mal Webkomponent und ohne Lit Elements. 18:15.000 --> 18:19.000 Und ich kam schon mit der Syntags eher weniger klar. 18:19.000 --> 18:21.000 Also, was heißt, ich kam wieder, es war halt ungewohnt, 18:21.000 --> 18:23.000 deswegen sage ich jetzt nicht, dass ich schlecht ist, 18:23.000 --> 18:25.000 sondern nur wieder ungewohnt. 18:25.000 --> 18:30.000 Aber das läuft seit Monaten glücklich vor sich hin und funktioniert. 18:30.000 --> 18:33.000 Ja, das ist auch ein guter Anwendungsfall. 18:33.000 --> 18:36.000 Also, deswegen, ich glaube auch, aber was du meinst, ist ungewohnt. 18:36.000 --> 18:40.000 Es ist so ein bisschen, in React geht man weg von den Glass-Based-Komponenten. 18:40.000 --> 18:42.000 In View hat man gesagt, keine Glass-Based-Komponenten, 18:42.000 --> 18:45.000 dann kommst du mit Lit, beziehungsweise mit Web-Komponenten 18:45.000 --> 18:47.000 und nutzt wieder Glass-Based-Syntags. 18:47.000 --> 18:50.000 Das ist für mich persönlich mit, also ich, 18:50.000 --> 18:52.000 ist jetzt nicht so, als wenn ich ein Problem habe, 18:52.000 --> 18:53.000 aber es ist halt ungewohnt. 18:53.000 --> 18:55.000 Und geht eigentlich weg davon und da geht man halt, 18:55.000 --> 18:57.000 dann gefühlt wieder einen Schritt zurück. 18:57.000 --> 18:59.000 Stimmt, du hast das besser beschrieben, es war gar nicht ungewohnt, 18:59.000 --> 19:01.000 sondern es ist halt der Klassensyntags, 19:01.000 --> 19:04.000 von der man mir doch jetzt gerade ein halbes Jahr eingebleut hat, 19:04.000 --> 19:06.000 dass wir das nicht mehr machen. 19:06.000 --> 19:09.000 Ja, genau, richtig, genau. Das Gefühl kenne ich nur zu gut, ja. 19:11.000 --> 19:16.000 So, dann gibt es ja auch noch neben so Frameworks 19:16.000 --> 19:18.000 ganz viele Helfer-Tools. 19:18.000 --> 19:22.000 Ich erinnere mich, jetzt erzählst du dir auch mal wieder vom Krieg, 19:22.000 --> 19:25.000 an noch einander aus Scorches. 19:25.000 --> 19:29.000 Ich wollte noch einmal kurz, bevor wir uns weiterbesiegen, 19:29.000 --> 19:32.000 wollte ich noch zwei Dinge fragen. 19:32.000 --> 19:36.000 Das war, können wir noch einmal kurz über Quick sprechen? 19:36.000 --> 19:40.000 Das hast du ganz kurz erwähnt vorhin, also quasi das viel als Stichwort. 19:40.000 --> 19:43.000 Und bevor wir das machen, wollte ich noch fragen, 19:43.000 --> 19:45.000 ich glaube im JavaScript-Bereich, 19:45.000 --> 19:48.000 gibt es, arbeitet man jetzt an diesen Shadow Realms, 19:48.000 --> 19:50.000 ich weiß nicht, ob die, oder Realms, 19:50.000 --> 19:52.000 ich weiß nicht, ob die nächstes Jahr schon kommen, 19:52.000 --> 19:56.000 aber das ist ja im Prinzip so was wie eine Isolation von JavaScript, 19:56.000 --> 19:59.000 also so im Prinzip das, was man mit Shadowdom hat in JavaScript, 19:59.000 --> 20:03.000 aber da weißt du, ich glaube wahrscheinlich dürfte das nicht das Problem 20:03.000 --> 20:07.000 dieser globalen Registry lösen, 20:07.000 --> 20:09.000 weil, also zumindest wenn ich so drüber nachdenke, 20:09.000 --> 20:11.000 wird das wahrscheinlich nicht funktionieren, 20:11.000 --> 20:14.000 weil letztendlich ist ja das, der Pasa, 20:14.000 --> 20:18.000 es gibt ja nur den einen Pasa, den man alles bekannt machen kann. 20:18.000 --> 20:21.000 Genau, also sagst du auch, also Shadow Realms, 20:21.000 --> 20:24.000 die helfen dann quasi nicht wahrscheinlich. 20:24.000 --> 20:27.000 Nicht, dass ich wüsste, da muss ich aber links auch gestehen, 20:27.000 --> 20:32.000 dass ich mich da nicht so intensiv genug damit auseinandergesetzt habe bis dato. 20:32.000 --> 20:35.000 Aber wäre auf jeden Fall mal spannend, da nochmal nachzurecherchieren, 20:35.000 --> 20:38.000 aber ich glaube, wenn ich es so wie es verstanden habe, 20:38.000 --> 20:42.000 lösen die nicht das Problem, weil diese globale Registry, 20:42.000 --> 20:46.000 das ist irgendwie ein generelles architektonisches Problem von diesem Custom, 20:46.000 --> 20:48.000 man redet ja immer von Web Components, 20:48.000 --> 20:51.000 aber eigentlich sind es ja die Custom Elements an der Stelle, 20:51.000 --> 20:53.000 und du hast es ja schon gesagt, 20:53.000 --> 20:57.000 das ist ein Kombination mit dem Shadow Dom, 20:57.000 --> 20:59.000 aber Shadow Realms, wie gesagt, 20:59.000 --> 21:01.000 da weiß ich gerade zu wenig drüber, 21:01.000 --> 21:04.000 um eine qualifizierte Aussage dazu treffen zu können. 21:04.000 --> 21:07.000 Ja, also ich glaube, theoretisch ist es so, 21:07.000 --> 21:10.000 dass du quasi, du könntest jetzt in einem Shadow Realm, 21:10.000 --> 21:13.000 kannst du eine Version von React laufen lassen 21:13.000 --> 21:16.000 und in einem anderen quasi eine andere Version, 21:16.000 --> 21:19.000 und die würden sich dann eben nicht ins Gehege kommen, 21:19.000 --> 21:23.000 quasi wie getrennten Containern unterwegs werden. 21:23.000 --> 21:26.000 Also das, was eigentlich bisher gefehlt hat, 21:26.000 --> 21:30.000 an Isolation, genau, aber wahrscheinlich, 21:30.000 --> 21:33.000 also ich kann mir auch nicht vorstellen, dass das funktioniert, 21:33.000 --> 21:35.000 weil der Pasa müsste dann ja auf einmal 21:35.000 --> 21:38.000 an einer bestimmten Stelle im Dombaum sagen, 21:38.000 --> 21:41.000 so hey, jetzt vergesse ich mal, was vorhin registriert wurde, 21:41.000 --> 21:44.000 und jetzt warte ich, dass neue Dinge registriert werden 21:44.000 --> 21:48.000 und irgendwie kann ich mir das nicht vorstellen, genau. 21:48.000 --> 21:50.000 Aber interessant ist an der Technik ja, 21:50.000 --> 21:53.000 dass das ja genau eigentlich das Problem ist, 21:53.000 --> 21:56.000 was Module Federation angegangen hat, 21:56.000 --> 21:58.000 also auf Bandlerseite irgendwie, ja, 21:58.000 --> 22:04.000 und wenn wir als, ich sag mal, wir als Web, 22:04.000 --> 22:07.000 oder die Menschen, die das Web mit vorantreiben, 22:07.000 --> 22:11.000 es schaffen, diese, ja, eine Lösung zu finden, 22:11.000 --> 22:14.000 die halt nicht irgendwie abhängig ist von irgendwem Tooling, 22:14.000 --> 22:18.000 das ist ja eigentlich das erklärte Ziel gefühlt seit 2021, 22:18.000 --> 22:22.000 ja, mit Erscheinen von Veed und EES-Bild 22:22.000 --> 22:27.000 und den ganzen Tools, weniger Tooling zurück zu nativen Lösungen, 22:27.000 --> 22:31.000 dann klingt das ja wie eine perfekte Lösung für Micro Frontends. 22:31.000 --> 22:34.000 Ja, also das könnte schon gut funktionieren dafür, ja, 22:34.000 --> 22:35.000 denke ich auch. 22:35.000 --> 22:38.000 Ich weiß aber nicht, wie der Stand ist, also, 22:38.000 --> 22:42.000 genau wie das so bei der TC39, 22:42.000 --> 22:46.000 wie das da gerade auf welchem Stage das rumhängt. 22:46.000 --> 22:48.000 Nee, hab ich leider auch nicht verfolgt, 22:48.000 --> 22:50.000 aber du hattest Quick noch angesprochen, ja. 22:50.000 --> 22:51.000 Genau. 22:51.000 --> 22:53.000 Ja, Quick, ja, sehr spannend. 22:53.000 --> 22:55.000 Aus dem Nichts kam eine Framework, ja, so gefühlt 22:55.000 --> 22:59.000 und alle haben gesagt zu, hey, den Menschen kennen wir doch. 22:59.000 --> 23:02.000 Der Entwickler von Quick, jetzt muss ich sagen, 23:02.000 --> 23:07.000 ich hab das auch nur gehört durch ein Kollegen von Workshops.de, 23:07.000 --> 23:09.000 der dann, das hat mir das mal erklärt hatte, 23:09.000 --> 23:12.000 dass der Angular-Welt kommt und der Entwickler von Quick 23:12.000 --> 23:14.000 hat wohl diesen Angular-Background 23:14.000 --> 23:17.000 oder hat mit Angular entwickelt, ja, irgendwie. 23:17.000 --> 23:19.000 So hab ich das zumindestens verlauten gehört. 23:19.000 --> 23:24.000 Auf jeden Fall interessant an Quick ist doch letzten Endes, 23:24.000 --> 23:27.000 dass es auch die Probleme angeht, 23:27.000 --> 23:31.000 die andere Frameworks ähnlich versuchen anzugehen, 23:31.000 --> 23:33.000 aber auf eine spezielle Art und Weise, ja. 23:33.000 --> 23:35.000 Also bei Quick ist es ja wirklich so, 23:35.000 --> 23:38.000 dass du ja auch da voll of Performance gehst, 23:38.000 --> 23:41.000 es battelt sich so ein bisschen gefühlt mit AstroJS, 23:41.000 --> 23:44.000 hab ich das Gefühl, aber technologisch auf einer anderen Ebene. 23:44.000 --> 23:46.000 Also Quick löst das Problem einfach anders. 23:46.000 --> 23:52.000 Und ja, ich weiß nicht, ich kann es noch nicht so wirklich fassen, 23:52.000 --> 23:54.000 ich hab nur gehört, dass es einen Riesenhype gibt, 23:54.000 --> 23:57.000 das Interessante daran ist, mit dem Battle und mit Astro 23:57.000 --> 23:58.000 kann man ja auch nicht so wirklich sagen, 23:58.000 --> 24:01.000 weil man kann ja Quick in AstroJS benutzen quasi. 24:01.000 --> 24:04.000 Das ist ja das Verrückte an Astro, irgendwo so ein bisschen. 24:04.000 --> 24:06.000 Ich glaube, der Unterschied ist ja, 24:06.000 --> 24:10.000 dass Astro dieses Island-Konzept hat. 24:10.000 --> 24:12.000 Also was quasi, wo man sagt so, 24:12.000 --> 24:16.000 hey, bevor wir jetzt quasi die ganze Seite befähigen, 24:16.000 --> 24:21.000 dynamisch zu sein, machen wir die einfach nur statisch 24:21.000 --> 24:24.000 und definieren einfach nur quasi Unterbereiche. 24:24.000 --> 24:26.000 Also Böse zungen würden behaupten, 24:26.000 --> 24:29.000 das hätte jetzt endlich nichts anderes als mit J.CurryWidgets 24:29.000 --> 24:32.000 wieder reinzusetzen in so eine Seite, nur halt in modern. 24:32.000 --> 24:36.000 Aber so ist das ja oft, dass man Konzepte irgendwie 24:36.000 --> 24:38.000 in neuerer Form wiederfindet, 24:38.000 --> 24:41.000 einfach so quasi jetzt hier in der nächsten Anlauf. 24:41.000 --> 24:45.000 Genau, und ich glaube bei Quick, bei denen ist ja das Besondere, 24:45.000 --> 24:50.000 dass die beim Hydrieren irgendwie sehr clevere Wege gehen, 24:50.000 --> 24:52.000 wie die irgendwie partiell hydrieren und lazy 24:52.000 --> 24:55.000 und erst wenn irgendwie was in den Viewport kommt. 24:55.000 --> 24:57.000 Und ich glaube, da toben die sich stark aus, 24:57.000 --> 24:59.000 dass man das eben nicht alles upfront hat, 24:59.000 --> 25:03.000 sondern und demand. 25:03.000 --> 25:06.000 Ja, wobei du das ja auch bei Astro so ähnlich hast. 25:06.000 --> 25:10.000 Da kannst du ja auch sagen, dass erst lazy dann dementsprechend 25:10.000 --> 25:14.000 diese Islands geladen werden, diese JavaScript Islands. 25:14.000 --> 25:16.000 Ja, aber da genau dieser Hydration Ansatz von denen sprichst, 25:16.000 --> 25:18.000 der ist bei Quick halt anders. 25:18.000 --> 25:20.000 Und wenn ich das gesehen habe, richtig gesehen habe, 25:20.000 --> 25:22.000 oder mich richtig auch erinnere, ist es bei Quick so, 25:22.000 --> 25:24.000 dass dieser Hydration Ansatz so gar nicht da ist, 25:24.000 --> 25:28.000 weil das halt schon prehydrated ist, oder wie die das da handnennen. 25:28.000 --> 25:31.000 Also das ist schon sehr, sehr interessant, 25:31.000 --> 25:33.000 insofern sich das mal anzugucken. 25:33.000 --> 25:35.000 Interessant ist auch die Sündhacks, 25:35.000 --> 25:37.000 wenn man sich Quick so anguckt, 25:37.000 --> 25:41.000 das ist so gefühlt ein bisschen reactmäßig dann wiederum. 25:41.000 --> 25:44.000 Obwohl es eigentlich eher aus der Angular-Welt kommt, 25:44.000 --> 25:46.000 das fand ich sehr spannend. 25:46.000 --> 25:48.000 Also es ist auch wieder dieser Ansatz von JSX 25:48.000 --> 25:51.000 mit einem Einsatz das Ganze zu haben. 25:51.000 --> 25:54.000 Und also ich würde definitiv sagen, 25:54.000 --> 25:56.000 Quick hat Potenzial auch 2023, 25:56.000 --> 25:59.000 also dieses Jahr wirklich steil zu gehen. 25:59.000 --> 26:01.000 Das hängt so ein bisschen davon ab, 26:01.000 --> 26:05.000 wie die ganze Webponsche sich weiterentwickelt, 26:05.000 --> 26:07.000 wo der Fokus raufgesetzt wird. 26:07.000 --> 26:11.000 Und ich sag mal, Performance-Optimierung ist das, 26:11.000 --> 26:14.000 was sehr oft halt auch im E-Commerce-Bereich, 26:14.000 --> 26:18.000 oder ich sag mal Verlagsbereich auch benutzt wird und verwendet wird. 26:18.000 --> 26:21.000 Also von daher, glaube ich, ist Quick genau diese Lücke, 26:21.000 --> 26:23.000 die gefehlt hat, die geschlossen wird irgendwie. 26:23.000 --> 26:28.000 Man hat so diese Mischung aus SSG, SSR, pre-gerendeter Stuff, 26:28.000 --> 26:32.000 der dann dementsprechend auch in diese einzelnen Bands... 26:32.000 --> 26:35.000 In mir hat es persönlich ein bisschen an das Junking von Webpack 26:35.000 --> 26:37.000 auch erinnert, was da passiert so gefühlt, 26:37.000 --> 26:39.000 als ich das gesehen hatte. 26:39.000 --> 26:42.000 Das war nicht mich so erinnere letzten Endes, 26:42.000 --> 26:46.000 aber ich habe mit Quick persönlich jetzt noch keine App gebaut 26:46.000 --> 26:48.000 oder so qualifiziert sagen zu können. 26:48.000 --> 26:51.000 Ja, das ist voll das Problem und das ist wirklich viel, viel schneller. 26:51.000 --> 26:53.000 Und die Frage ist mal ehrlich zu sein, 26:53.000 --> 26:55.000 wie viel schneller muss es denn noch sein, 26:55.000 --> 26:58.000 ja, in gewissen Bereichen. 26:58.000 --> 27:00.000 Ja, das ist ja immer so ein Wettlauf 27:00.000 --> 27:06.000 und dann, weiß ich nicht, möchte man die ganzen Google-Core-Web-Vitals 27:06.000 --> 27:08.000 irgendwie zufrieden stellen 27:08.000 --> 27:11.000 und das geht halt dann irgendwie vielleicht mit Quick besser 27:11.000 --> 27:13.000 als mit irgendwann einem Framework. 27:13.000 --> 27:15.000 Genau, richtig. 27:15.000 --> 27:17.000 Also ist auf jeden Fall ein guter Tipp, 27:17.000 --> 27:19.000 einfach zu sagen, sich Quick nochmal genauer anzugucken. 27:19.000 --> 27:22.000 Auch nochmal hinter die Kulissen auszugucken, 27:22.000 --> 27:25.000 wiefern im Detail sie jetzt unterscheidet. 27:25.000 --> 27:27.000 Also wie auch gesagt, von der Sendung her, 27:27.000 --> 27:29.000 man kommt da schnell rein. 27:29.000 --> 27:31.000 Also ich hatte das gesehen und habe gedacht, 27:31.000 --> 27:34.000 ja, das traue ich mir zu, damit zu arbeiten auf jeden Fall. 27:34.000 --> 27:37.000 Ja, ich denke, das sinkt wahrscheinlich auch davon ab. 27:37.000 --> 27:39.000 Also so gibt es irgendwann große Fürsprecher, 27:39.000 --> 27:43.000 die das irgendwie erwähnen und so ein bisschen championen, 27:43.000 --> 27:47.000 dann wie gut ist die Dooku und die Community, 27:47.000 --> 27:51.000 also wie welcoming sind die, also die üblichen Faktoren 27:51.000 --> 27:54.000 und vielleicht dann auch noch irgendwie eine Google-IO 27:54.000 --> 27:57.000 oder Chrome Dev Summit, die dann vielleicht irgendwelche Seiten 27:57.000 --> 28:00.000 Erfolgsgeschichten so Showcases bringen, 28:00.000 --> 28:02.000 wo was benutzt wurde mit Quick 28:02.000 --> 28:05.000 und dann halt ganz toll abgeschnitten hat. 28:05.000 --> 28:08.000 So, ich glaube, das sind immer so die Faktoren, 28:08.000 --> 28:11.000 die dann zum Framework irgendwie nach vorne bringen. 28:11.000 --> 28:13.000 Und eine gute Dokumentation. 28:13.000 --> 28:17.000 Also ich persönlich möchte sagen, ich gehe immer nach gefühlt 28:17.000 --> 28:20.000 Dokumentationen, wo ich, kann ich jetzt auch nicht sagen, 28:20.000 --> 28:25.000 ich bin, glaube ich, schon, ja, aus der Welt, 28:25.000 --> 28:27.000 wo ich noch Source Code lesen musste, 28:27.000 --> 28:30.000 weil es keine Dokumentation gab, so gefühlt am Anfang, 28:30.000 --> 28:31.000 aber mittlerweile... 28:31.000 --> 28:32.000 Und zu alt für den Scheiß, ne? 28:32.000 --> 28:34.000 Ja, genau, richtig. 28:34.000 --> 28:36.000 Aber jetzt mittlerweile ist es so, 28:36.000 --> 28:39.000 dass ich es halt schätzen gelernt habe, 28:39.000 --> 28:42.000 dass eine gute Dokumentation einfach mich schneller auch 28:42.000 --> 28:44.000 als eine neue Technik einarbeiten lässt. 28:44.000 --> 28:46.000 Und das ist für mich sehr, sehr wichtig. 28:46.000 --> 28:47.000 Ja. 28:47.000 --> 28:50.000 Ja, macht auch absolut Sinn. 28:50.000 --> 28:51.000 Genau. 28:51.000 --> 28:54.000 Und jetzt, Vanessa, kannst du weiter machen. 28:54.000 --> 28:56.000 Ich habe aber jetzt was ganz anderes, 28:56.000 --> 29:00.000 als Joe, du gerade meintest, da war noch eine Lücke 29:00.000 --> 29:02.000 und die hat Quick geschlossen. 29:02.000 --> 29:05.000 Im Moment sehe ich eine ganz große andere Lücke, 29:05.000 --> 29:08.000 wo ich aber auch nicht weiß, ob jetzt Frameworks-PC 29:08.000 --> 29:10.000 dabei helfen können. 29:10.000 --> 29:13.000 Und zwar bin ich in der letzten Zeit immer wieder konfrontiert worden 29:13.000 --> 29:15.000 mit das, was wir eigentlich wissen wollen, 29:15.000 --> 29:16.000 ist, wie wir... 29:16.000 --> 29:18.000 Wir haben uns jetzt für dieses Framework entschieden 29:18.000 --> 29:21.000 und ja, ja, wir wissen, wie die Sonntagstag von funktioniert 29:21.000 --> 29:24.000 und wie die Konzepte generell funktionieren sollen. 29:24.000 --> 29:27.000 Aber jetzt ist mittlerweile die Webseite halt schon mal ganz schön groß. 29:27.000 --> 29:29.000 Die Codebase ist ziemlich gewachsen 29:29.000 --> 29:31.000 und sogar mit den Best Practices 29:31.000 --> 29:34.000 und alle Video Tutorials dieser Welt angeschaut, 29:34.000 --> 29:37.000 fühlt sich die Ijecture teilweise noch nicht so gut an. 29:37.000 --> 29:40.000 Und jetzt gehen wir das dann an, wenn wir jetzt von View 2 29:40.000 --> 29:42.000 auf View 3 gehen. 29:42.000 --> 29:44.000 Welche Schritte machen wir genau hintereinander? 29:44.000 --> 29:47.000 Und da kommen ja ganz andere Themen noch damit rein, 29:47.000 --> 29:50.000 die gar nichts speziell mit den Frameworks zu tun haben, 29:50.000 --> 29:51.000 sondern auch... 29:51.000 --> 29:54.000 Wie schreibe ich jetzt zum Beispiel auch mal Interfaces 29:54.000 --> 29:57.000 für meine Komponenten mit Interfaces, meine ich. 29:57.000 --> 29:59.000 Ich habe jetzt ein... 29:59.000 --> 30:01.000 Nennen wir das Ganze einfach mal Modul geschrieben 30:01.000 --> 30:04.000 und das verwende ich jetzt zum Beispiel in einer View 3 App, 30:04.000 --> 30:06.000 aber ich möchte es auch in einer View 2 App verwenden 30:06.000 --> 30:08.000 und darauf geht es jetzt gar nicht. 30:08.000 --> 30:10.000 Also brauche ich hier irgendwie... 30:10.000 --> 30:13.000 Das eine benutzt Redux, das andere benutzt Pinnier State Management 30:13.000 --> 30:16.000 und jetzt muss ich ja vielleicht nur irgendwie den Interface dafür schreiben, 30:16.000 --> 30:19.000 dass ich jetzt mit beiden State Managements klar komme. 30:19.000 --> 30:23.000 Und da in dieser Richtung sehe ich gerade nicht viel passieren, 30:23.000 --> 30:26.000 obwohl es da so viel Bedarf für Antworten gibt, 30:26.000 --> 30:29.000 aber ich sehe halt hier ist dieses Framework für dieses Problem 30:29.000 --> 30:31.000 und hier ist dieses Framework weil es performanter 30:31.000 --> 30:34.000 und hier ist dieses Framework weil XY. 30:34.000 --> 30:36.000 Ich sehe nicht das große Aufleben von 30:36.000 --> 30:38.000 okay, wir haben jetzt diese Codebase 30:38.000 --> 30:40.000 und das ist kompliziert 30:40.000 --> 30:44.000 und wie gehen wir mit der Folderstruktur um 30:44.000 --> 30:48.000 und Migrationen und etc. 30:48.000 --> 30:51.000 Also klar, ich habe jetzt View als Beispiel genommen 30:51.000 --> 30:53.000 und mir ist bewusst, dass es View 2 zu View 3 30:53.000 --> 30:55.000 Migrationstutorials gibt. 30:55.000 --> 30:58.000 Beispiele gibt wirklich gute Beispiele gibt, 30:58.000 --> 31:02.000 aber dennoch gibt es da so einen Bedarf an Antworten, 31:02.000 --> 31:06.000 den ich nicht gedeckt sehe aktuell in der Frontend-Entwicklung. 31:06.000 --> 31:10.000 Ja, das ist das alte Thema der Architektur 31:10.000 --> 31:14.000 und das sind auch die Fragen, die in Workshops natürlich immer wieder kommen. 31:14.000 --> 31:18.000 Ich habe nur Businesskunden in den Workshops 31:18.000 --> 31:20.000 und diese Fragen kommen relativ schnell. 31:20.000 --> 31:22.000 Es ist ja alles schön und gut, 31:22.000 --> 31:26.000 schön, dass die Basistechnik mir geschult wurde 31:26.000 --> 31:31.000 oder ich jetzt weiß, wie View 3 benutzt werden kann, 31:31.000 --> 31:33.000 welche Unterschiede es zu View 2 gibt. 31:33.000 --> 31:38.000 Aber die eigentliche Architektur-Probleme, 31:38.000 --> 31:40.000 die sind natürlich nicht gelöst 31:40.000 --> 31:44.000 und da hilft natürlich immer, 31:44.000 --> 31:49.000 vor allem Inspiration, die man sich ranziehen kann. 31:49.000 --> 31:50.000 Und ich persönlich muss immer noch sagen, 31:50.000 --> 31:52.000 eines meiner Standardwerke, 31:52.000 --> 31:54.000 egal ob das jetzt View oder React ist, 31:54.000 --> 31:56.000 das ist von Dana Premov, der hatte 2015, 31:56.000 --> 31:58.000 glaube ich, damals ein Blog-Artikel geschrieben 31:58.000 --> 32:02.000 über diese Geschichte mit den Presentational-Components 32:02.000 --> 32:04.000 und den Container-Components 32:04.000 --> 32:07.000 oder diese damals Smart- und Dump-Components 32:07.000 --> 32:08.000 werden die auch genannt. 32:08.000 --> 32:10.000 So ein Pattern halt einfach, 32:10.000 --> 32:13.000 so eine Basisarchitektur. 32:13.000 --> 32:15.000 Das ist ein Blogbeitrag von 2015, 32:15.000 --> 32:19.000 den ich persönlich immer noch mal ranziehe. 32:19.000 --> 32:22.000 Und dementsprechend gibt es wenige Leute, 32:22.000 --> 32:24.000 die darüber bloggen. 32:24.000 --> 32:27.000 Markus Oberliner ist einer, der gerne genau diese Themen sich schnappt 32:27.000 --> 32:29.000 und dann dementsprechend verpackt. 32:29.000 --> 32:31.000 Aber die Frage ist ja, 32:31.000 --> 32:33.000 kann man das vielleicht auch nochmal auf andere Ebene, 32:33.000 --> 32:35.000 wie du schon gesagt hast, als Lücke schließen? 32:35.000 --> 32:37.000 Oder wie könnte man diese Lücke schließen 32:37.000 --> 32:40.000 in Form von Packages oder Code, 32:40.000 --> 32:43.000 dass man sagt, okay, diese einzelnen Frameworks teilen 32:43.000 --> 32:45.000 sich gewisse Ressourcen, 32:45.000 --> 32:48.000 auch oder gewisse Pattern und Mustern. 32:48.000 --> 32:51.000 Und ich finde, da sind die Next-Developer, 32:51.000 --> 32:53.000 ja, ich weiß, wir sind wieder im View-Universum, 32:53.000 --> 32:56.000 okay, aber die sind ein guter Beispiel vorangegangen. 32:56.000 --> 32:58.000 Wir haben gesagt, okay, wir machen einen Revite, 32:58.000 --> 33:01.000 der gesamten Next-Architektur 33:01.000 --> 33:06.000 und den ganzen Unterbau, den wir dafür benötigen, 33:06.000 --> 33:13.000 den stellen wir quasi dann als einzelne Pakete zur Verfügung, 33:13.000 --> 33:15.000 ja, kleine einzelne Pakete 33:15.000 --> 33:20.000 und teilen das dementsprechend dann mit der Welt. 33:20.000 --> 33:23.000 Und da ist zum Beispiel was dabei herausgekommen, 33:23.000 --> 33:27.000 wie dementsprechend die Lösung, 33:27.000 --> 33:31.000 dass man sagt, okay, Pakete sind ja meistens irgendwie, 33:31.000 --> 33:33.000 oder Plug-ins sind ja nur für Veed oder für Webpack. 33:33.000 --> 33:35.000 Also man kann immer nur ein Webpack-Plug-in bauen 33:35.000 --> 33:37.000 oder ein Veed-Plug-in oder ein Roll-up-Plug-in. 33:37.000 --> 33:39.000 Und bei Ange es sind sehr hingegangen, 33:39.000 --> 33:41.000 haben gesagt, okay, wir bauen einen Rapper, der es ermöglicht, 33:41.000 --> 33:45.000 dass halt ein Plug-in für verschiedene Elemente, 33:45.000 --> 33:47.000 also nicht verschiedene Elemente, 33:47.000 --> 33:49.000 sondern verschiedene Bandler genutzt werden kann. 33:49.000 --> 33:51.000 Das ist schon mal, glaube ich, der Schritt in eine richtige Richtung. 33:51.000 --> 33:54.000 Aber das löst natürlich nicht die Architekturprobleme. 33:54.000 --> 33:57.000 Man kann jetzt nicht sagen, MPM innert 33:57.000 --> 34:00.000 so auf mein Architekturproblem oder irgend sowas, 34:00.000 --> 34:05.000 oder nutzt eine Architektur, die für alle dementsprechend gilt. 34:05.000 --> 34:08.000 Ja, da finde ich definitiv, dass das in die richtige Richtung geht, 34:08.000 --> 34:09.000 weil das war ja auch so ein Problem, 34:09.000 --> 34:11.000 das ich vorhin schon mal angesprungen hatte. 34:11.000 --> 34:13.000 Was ist jetzt, wenn ich hier halt überall Veed 3 im Einsatz habe, 34:13.000 --> 34:16.000 aber hier bräuchte es jetzt ein bisschen anders. 34:16.000 --> 34:21.000 Aber brauche ich dafür jetzt wieder Hilfsfunktionen, 34:21.000 --> 34:23.000 brauche ich dafür wieder andere Utile Functions. 34:23.000 --> 34:26.000 Und bei Utile Functions, 34:26.000 --> 34:29.000 das, was die Oma vorhin vom Krieg erzählen wollte, 34:29.000 --> 34:32.000 ist, ich habe ja damals noch underscore.js verwendet. 34:32.000 --> 34:35.000 Mittlerweile bin ich sogar auf Lowdash umgestiegen, 34:35.000 --> 34:37.000 beziehungsweise schon vor einiger Zeit, 34:37.000 --> 34:40.000 habe nur nicht wirklich den Bedarf. 34:40.000 --> 34:43.000 Muss auch sagen, ich habe es nicht mal so ganz im Hinterkopf. 34:43.000 --> 34:47.000 Ich muss hier ein Feature implementieren, 34:47.000 --> 34:50.000 boom auf, damals war es eben underscore, 34:50.000 --> 34:52.000 also boom auf Lowdash. 34:52.000 --> 34:56.000 Aber mittlerweile mit ECMAScript und gerade Avery Funktionen 34:56.000 --> 34:58.000 habe ich nicht mehr das Gefühl, 34:58.000 --> 35:02.000 dass man jetzt für alles eine Hilfsfunktion braucht. 35:02.000 --> 35:06.000 Aber da hat mich dieses Ange.js auch von Nux da genannt. 35:06.000 --> 35:10.000 Das habe ich hier ganz viele Begrifflichkeiten aufeinander gehäuft. 35:10.000 --> 35:14.000 Deswegen nochmal Lowdash und auch underscore sind generell, 35:14.000 --> 35:18.000 ich würde sich immer Utile Funktion oder Hilfsfunktion nennen, 35:18.000 --> 35:22.000 wie das sich beim Array bestimmte Funktionen aufrufen kann, 35:22.000 --> 35:26.000 wie ist es das Letzte, ist es das Erste, alles möglich. 35:26.000 --> 35:29.000 Aber von Ange.js, da kannst du uns glaube ich auch nochmal 35:29.000 --> 35:32.000 ein bisschen genauer darüber erzählen, 35:32.000 --> 35:36.000 was genau Sie da anbieten, 35:36.000 --> 35:38.000 was ich jetzt vielleicht auch ansetzen könnte, 35:38.000 --> 35:42.000 obwohl ich hier gar nicht Nux verwende. 35:42.000 --> 35:46.000 Ja, also wie gesagt, zum einen kann man mit, 35:46.000 --> 35:49.000 ich weiß jetzt nicht genau, wie die Pakete alle heißen. 35:49.000 --> 35:53.000 Ein einziger erinnere ich mich ganz besonders, das ist Oh My Fetch. 35:53.000 --> 35:57.000 Haben Sie witzigerweise umbenannt, ich hatte das heute in der Schulung, 35:57.000 --> 36:00.000 jemanden empfohlen gehabt und war erstaunt, 36:00.000 --> 36:03.000 dass es jetzt nur noch Oh Fetch heißt, also nicht mehr Oh My Fetch, 36:03.000 --> 36:05.000 wahrscheinlich haben Sie gemerkt, 36:05.000 --> 36:09.000 der Produktname muss seriöser werden, nein, weiß ich nicht, genau. 36:09.000 --> 36:14.000 Und das ersetzt quasi ein HTTP Client wie Axios. 36:14.000 --> 36:17.000 Also Axios kennen wahrscheinlich die meisten, 36:17.000 --> 36:21.000 als die Lösung im, ich sag mal, Enterprise Segment 36:21.000 --> 36:24.000 oder beziehungsweise generell bei Single-Page-Applications 36:24.000 --> 36:27.000 oder auch bei SSR-Pages oder sonst was, 36:27.000 --> 36:30.000 als den HTTP Client, den man einsetzen kann, 36:30.000 --> 36:34.000 um dementsprechend mit einer REST-API zu kommunizieren. 36:34.000 --> 36:40.000 Und das Ding ist, Axios basiert ja immer noch im Hintergrund auf XHR, 36:40.000 --> 36:42.000 also XML HTTP Request Object. 36:42.000 --> 36:49.000 So, und ja, warum nutzen die meisten Leute Axios wegen den Interceptors? 36:49.000 --> 36:51.000 Ja, diese Interceptors, diese Form der Middleware, 36:51.000 --> 36:54.000 die man zwischen Request und Response packen kann, 36:54.000 --> 36:58.000 um einfach Daten zu manipulieren nochmal an der Stelle, 36:58.000 --> 37:00.000 das ist ein cooles Feature und das kann halt Oh Fetch. 37:00.000 --> 37:04.000 Oh Fetch löst halt eigentlich alle Probleme, die Axios auch gelöst hat, 37:04.000 --> 37:07.000 aber mit der nativen Fetch API im Hintergrund. 37:07.000 --> 37:12.000 Ja, und das ist schon ein sehr cooles Paket an der Stelle. 37:12.000 --> 37:14.000 So, ein anderes Paket. 37:14.000 --> 37:16.000 Moment ganz kurz, also das heißt, 37:16.000 --> 37:20.000 weil ich wollte genau gerade fragen, wozu brauche ich jetzt ein Package Oh Fetch, 37:20.000 --> 37:23.000 weil ich kann ja einfach mittlerweile in meinen Browser ein Fetch verwenden. 37:23.000 --> 37:27.000 Aber hier ist eben der Vorteil, dass ich die Interceptors habe. 37:27.000 --> 37:31.000 Das heißt, ich kann sowohl Form Request, aber auch wahrscheinlich nach dem Request 37:31.000 --> 37:35.000 die Daten nochmal manipulieren. 37:35.000 --> 37:38.000 Genau, oder beim Federfall, da könntest du dann dementsprechend, 37:38.000 --> 37:40.000 du hast dann quasi so Hookpoints, Corebacks, 37:40.000 --> 37:44.000 wie du es nennen möchtest, technisch wahrscheinlich eher in der Middleware, 37:44.000 --> 37:47.000 weiß ich nicht, es heißt Interceptor, das Konzept so. 37:47.000 --> 37:50.000 Und genau, das ist von Axios adaptiert. 37:50.000 --> 37:54.000 Das ist das eine und das andere ist, du kannst natürlich die Fetch API einfach so benutzen, 37:54.000 --> 38:00.000 natürlich, aber wir wissen alle, dass die Developer Experience von der Fetch API 38:00.000 --> 38:05.000 ein bisschen, ja, da muss man ein bisschen was dazukoden. 38:05.000 --> 38:08.000 Und damit du das halt nicht, also du kannst eine eigene Lösung bauen, 38:08.000 --> 38:11.000 oder du nutzt halt eine Lösung, wo mehrere Leute ihr Gehirnschmalz reingesteckt haben 38:11.000 --> 38:14.000 und schon Probleme gelöst haben, die du auch selbst lösen würdest. 38:14.000 --> 38:17.000 Und vielleicht sogar schlechter lösen würdest, 38:17.000 --> 38:21.000 als sie in diesem Open Source Projekt an dementsprechend vorhanden. 38:21.000 --> 38:24.000 Ja, das ist immer die große Frage, weil ich war schon, das kann man doch selber implementieren. 38:24.000 --> 38:27.000 Also auch ein Arrow-Handler kann ich das selber implementieren. 38:27.000 --> 38:30.000 Aber du hast dementsprechend recht, 38:30.000 --> 38:33.000 meistens passiert immer was, was man vorher nicht eingeplant hatte. 38:33.000 --> 38:36.000 Und im schlimmsten Fall vergisst man selber, 38:36.000 --> 38:40.000 und dieses Tool würde daran denken, auf der anderen Seite immer die Sorge ist, 38:40.000 --> 38:42.000 ist es dann noch maintained, ist es Open Source, 38:42.000 --> 38:44.000 wie lange es ist, Open Source, etc. 38:44.000 --> 38:46.000 Genau, und im Fall ist es ja so, 38:46.000 --> 38:51.000 dass AnJS von dem Geldpot von Nux profitiert. 38:51.000 --> 38:56.000 Also Nux, man sagt ja immer so, Software sollte backed by Giants sein, 38:56.000 --> 38:59.000 also irgendwelche größeren Companies, die das Ganze unterstützen. 38:59.000 --> 39:03.000 Und Nux selbst ist ja eine Company, das darf man ja auch nicht vergessen. 39:03.000 --> 39:10.000 Und dementsprechend ist dieses Open Source Produkt ganz gut unterstützt an der Stelle. 39:10.000 --> 39:14.000 Und ich sage mal, die Komplexität dieser einzelnen AnJS-Packages 39:14.000 --> 39:19.000 ist jetzt auch nicht so groß, dass man da Sorge haben müsste, 39:19.000 --> 39:21.000 dass auf einmal das ganze System zusammenbricht. 39:21.000 --> 39:24.000 Also trotzdem könnte man mit einer guten Softwarearchitektur im Hintergrund 39:24.000 --> 39:26.000 das Ganze nochmal austauschen. 39:26.000 --> 39:29.000 Und davon gibt es halt verschiedene Pakete an der Stelle. 39:29.000 --> 39:33.000 Also gibt es viele Pakete für Node.js-Bereich, die dadurch entstanden sind, 39:33.000 --> 39:37.000 dass Nux halt viel mit Server-Site-Rendering macht, ja, an der Stelle. 39:37.000 --> 39:40.000 Und da auch sehr viele Probleme angegangen ist. 39:40.000 --> 39:45.000 Und ich glaube, es sind insgesamt über 50 kleine Pakete. 39:45.000 --> 39:49.000 Und wenn das nochmal interessieren sollte, 39:49.000 --> 39:51.000 da könnt ihr bestimmt nochmal Link zur Verfügung stellen, 39:51.000 --> 39:57.000 auf der ViewJS-Conference in Berlin dieses Jahr, die ich mitorganisiert hatte, 39:57.000 --> 40:01.000 war Alexander Lichter und der ist auch mit Core-Member bei Nux. 40:01.000 --> 40:06.000 Und der hat quasi ne, glaube ich, 20-25 Minuten genau an JS vorgestellt, 40:06.000 --> 40:08.000 die einzelnen Pakete vorgestellt. 40:08.000 --> 40:11.000 Und gezeigt, was man damit machen kann. 40:11.000 --> 40:14.000 Und ich glaube, es ist nur so ne kleine Lücke, die gefüllt wird. 40:14.000 --> 40:16.000 Weil die größere Lücke hat sie so angesprochen, 40:16.000 --> 40:18.000 das ist halt die Architektur dahinter. 40:18.000 --> 40:20.000 Und da kann man eigentlich nur sagen, 40:20.000 --> 40:23.000 vielleicht helfen irgendwelche Scar-Folding-Tools oder so. 40:23.000 --> 40:26.000 Vielleicht ist das der nächste Trend, ja, zu sagen, 40:26.000 --> 40:31.000 man sagt irgendwie, es gibt einen JS-Architektur, Scar-Folding, 40:31.000 --> 40:35.000 das, ja, Best Practices vereint für alle Systeme. 40:35.000 --> 40:39.000 Aber auf der anderen Seite neigen wir Entwickler 40:39.000 --> 40:41.000 und Entwicklerinnen ja auch immer dazu, 40:41.000 --> 40:44.000 irgendwie ein eigenes Geschmäckler anzubringen an die Dinge. 40:44.000 --> 40:46.000 Und dann heißt der Ordner halt nicht Views, sondern Pages, 40:46.000 --> 40:48.000 aber macht eigentlich das Gleiche. 40:48.000 --> 40:50.000 Dann fängt es nämlich schon an. 40:50.000 --> 40:54.000 Und es muss alles konfigurierbar sein und anpassbar sein. 40:54.000 --> 40:57.000 Könnte viel schwer werden, aber wer weiß, 40:57.000 --> 41:01.000 vielleicht ist das ja genau das Ding, was 2023 noch dazukommt. 41:01.000 --> 41:03.000 Auf der anderen Seite könnte vielleicht, 41:03.000 --> 41:05.000 ob JS dann genau dabei helfen, 41:05.000 --> 41:07.000 diese kleinen Problemchen schon mal zu lösen, 41:07.000 --> 41:09.000 damit wir nicht alle unseren eigenen Arrow-Handler 41:09.000 --> 41:11.000 alle mal genau durchdefinieren müssen 41:11.000 --> 41:15.000 und uns auf die großen Probleme fokussieren können. 41:15.000 --> 41:17.000 Denn auf jeden Fall müssen wir alle das Grad 41:17.000 --> 41:19.000 ein bisschen anders erfinden. 41:19.000 --> 41:22.000 Das ist schon auf jeden Fall sehr wahr. 41:22.000 --> 41:23.000 Ja. 41:23.000 --> 41:25.000 Ich wollte jetzt nur kurz mal fragen, 41:25.000 --> 41:28.000 ob es noch bei JS was anderes gab, was du... 41:28.000 --> 41:30.000 Jetzt nix spontan, so sage ich auch, 41:30.000 --> 41:33.000 das ist all my fetches mehr hängen geblieben. 41:33.000 --> 41:39.000 Wie gesagt, dass ich Bundles oder Plugins für Weed, Webpack und Rollup 41:39.000 --> 41:41.000 also für andere Bundler bereitstellen kann, 41:41.000 --> 41:43.000 also einen Plug-in für alle. 41:43.000 --> 41:45.000 Das ist mir auf jeden Fall hängen geblieben, 41:45.000 --> 41:47.000 weil das sind wirklich zwei Dinge, die ich auch benutzt habe schon. 41:47.000 --> 41:49.000 Weil ich gesagt habe, das ist wirklich mega cool. 41:49.000 --> 41:51.000 Und da gibt es noch andere, 41:51.000 --> 41:53.000 aber ich müsste jetzt auf die Liste rauf gucken, 41:53.000 --> 41:55.000 um zu sagen, das war genau das, 41:55.000 --> 41:57.000 weil ich einfach nicht mehr weiß, wie es heißt. 41:57.000 --> 41:59.000 Das ist gerade mein Hauptproblem. 41:59.000 --> 42:01.000 Das Problem ist hundertprozentig geteckelt hat, 42:01.000 --> 42:03.000 weil ich es halt einfach nicht im Einsatz hatte an der Stelle. 42:03.000 --> 42:05.000 Aber es lohnt sich auf jeden Fall rauf zu gucken. 42:05.000 --> 42:08.000 Es waren halt sehr viele Probleme, die auch im Node-JS-Bereich waren, 42:08.000 --> 42:12.000 die da dementsprechend gelöst wurden. 42:12.000 --> 42:16.000 Und deswegen die Empfehlung einfach mal rein zu gucken. 42:16.000 --> 42:20.000 Um noch ein bisschen im ViewJS-Bereich zu bleiben, 42:20.000 --> 42:25.000 obwohl es ja auch gar nichts per se mit ViewJS so direkt zu tun hat, 42:25.000 --> 42:30.000 würde ich gerne nochmal auf das Thema von Histoire versus Storybook kommen. 42:30.000 --> 42:34.000 Da hatten wir auch vor Kurzem auch ebenfalls eine Revision 42:34.000 --> 42:38.000 drüber, die 539, wer da nochmal reinhören möchte. 42:38.000 --> 42:42.000 Aber die Kurzzusammenfassung ist halt eben auch eine Darstellung 42:42.000 --> 42:44.000 einer Komponentenbibliothek. 42:44.000 --> 42:50.000 Und mit Storybook und ViewJS gab es so die kleine Problematik, 42:50.000 --> 42:52.000 dass man manchmal das Gefühl hatte, 42:52.000 --> 42:55.000 man schwimmt so ein bisschen gegen den Strom, 42:55.000 --> 42:58.000 weil man möchte in dieses React-Tool was Viewmäßiges reinbringen. 42:58.000 --> 43:02.000 Und Histoire ist halt eben eher aus der Viewsicht geschrieben worden, 43:02.000 --> 43:06.000 was nicht heißt, dass man nur ViewJS-Komponenten damit machen kann, 43:06.000 --> 43:10.000 sondern genauso gut gleiches Weltkamen quasi auch gleich mitgeliefert. 43:10.000 --> 43:13.000 Wie ist deine Einschätzung zu? 43:13.000 --> 43:16.000 Brauchen wir das überhaupt noch? 43:16.000 --> 43:19.000 Ist Storybook da unschlagbar? 43:19.000 --> 43:23.000 Oder kann Histoire da ein bisschen Marktanteil bekommen? 43:23.000 --> 43:30.000 Also ich kenne diese Hassliebe zu Storybook auf jeden Fall. 43:30.000 --> 43:32.000 Manchmal ist es mehr Hass als Liebe. 43:32.000 --> 43:37.000 Auch das habe ich öfter gehört gerade aus dem View oder dem Nicht-React-Lager. 43:37.000 --> 43:39.000 Mal sagen wir mal aus dem Nicht-React-Lager, 43:39.000 --> 43:42.000 weil Storybook ist ein gutes Tool, das funktioniert perfekt mit React, 43:42.000 --> 43:46.000 weil es ein React aufgeschrieben ist, dafür auch so ein Hopffokus hat. 43:46.000 --> 43:50.000 Ich finde aber persönlich aus meiner eigenen Erfahrung aus, 43:50.000 --> 43:53.000 Storybook gar nicht so dramatisch und schlimm. 43:53.000 --> 43:56.000 Das Einzige, was ich immer problematisch finde, ist dieses Doppel-Tooling. 43:56.000 --> 44:00.000 Du hast halt dieses, das eine wird damit Webpack gebundelt, 44:00.000 --> 44:02.000 das andere fähig schon mit View. 44:02.000 --> 44:05.000 Das ist schon mal eine Sache, die ich nicht so mag, 44:05.000 --> 44:08.000 weil es einfach auch einen riesen Ballast in die Applikation bringt irgendwie. 44:08.000 --> 44:11.000 Aber im Großen und Ganzen finde ich, 44:11.000 --> 44:14.000 Histoire finde ich halt mega cool vom Ansatz von der Idee her. 44:14.000 --> 44:16.000 Ich finde es gut, dass es ein Konkurrenzprodukt gibt, 44:16.000 --> 44:18.000 weil das hat mir gefehlt die ganze Zeit. 44:18.000 --> 44:21.000 Irgendwas, wo ich sage so, hey, das kann es wirklich damit aufnehmen, 44:21.000 --> 44:25.000 bzw. das ist eine wirkliche echte Alternative zu Storybook an der Stelle. 44:25.000 --> 44:28.000 Und deswegen hoffe ich, dass da mehr Merktanteil kommt. 44:28.000 --> 44:31.000 Ich verfolge das weiterhin und bin sehr gespannt, 44:31.000 --> 44:35.000 ob ich darauf wechseln werde, halt auch in Kundenprojekten 44:35.000 --> 44:38.000 oder auch diese Empfehlung in den Final aussprechen werde 44:38.000 --> 44:41.000 und nicht nur meinen eigenen Hobbyprojekten das erst mal ausprobiere. 44:41.000 --> 44:47.000 Und da sehe ich ganz große Chancen, dass das auf jeden Fall ein guter Player werden kann. 44:47.000 --> 44:51.000 Auf der anderen Seite ist es so, dass ich Storybook immer noch für, 44:51.000 --> 44:54.000 ich sage mal so, man kann das unterschiedlich einsetzen. 44:54.000 --> 44:56.000 Oftmals wird es halt für Component Libraries benutzt, 44:56.000 --> 44:59.000 aber ich habe zum Beispiel auch in Kundenprojekten dafür benutzt, 44:59.000 --> 45:01.000 dass wir gesagt haben, wir bauen das ganze User-Interface. 45:01.000 --> 45:09.000 Also auch wenn du ein Bootstrap oder ein Material-Design-Based-Component-Library einsetzt 45:09.000 --> 45:12.000 und schon fertige Komponenten da sind, habe ich trotzdem gesagt, 45:12.000 --> 45:15.000 okay, lass mal die ganze UI auch in Storybook aufbauen. 45:15.000 --> 45:18.000 Und zwar eher so mit dem Atomic-Ansatz, 45:18.000 --> 45:21.000 dass du halt sagst, okay, das sind deine Basebutton. 45:21.000 --> 45:23.000 Zwar die müssen ja auch trotzdem konfiguriert werden. 45:23.000 --> 45:26.000 Und die rappt man dann halt nochmal in Rapper-Components 45:26.000 --> 45:30.000 und baut dementsprechend dann Moleküle und dann wieder Organismen, 45:30.000 --> 45:32.000 wenn man mit Atomic-Design-Ansatz bleibt. 45:32.000 --> 45:35.000 Das funktioniert sehr gut, weil auch diese Kapsung dann da ist 45:35.000 --> 45:38.000 und man halt dementsprechend sich mehr Gedanken auch darum macht, 45:38.000 --> 45:42.000 um das User-Interface, als wenn das einfach mal so reingekloppt wird von Fullstack. 45:42.000 --> 45:45.000 Also es ist kein Bash gegen Fullstack-Developer. 45:45.000 --> 45:49.000 Ich glaube, jeder ist im Herzen mit einer bisschen mehr Erfahrung, 45:49.000 --> 45:51.000 hat irgendwann ein Fullstack-Developer, 45:51.000 --> 45:54.000 zumindest wenn er in unterschiedlichen Projekten tätig war. 45:54.000 --> 45:57.000 Ist die da von uns in der Lage auch Backendcode oder Frontendcode zu schreiben? 45:57.000 --> 46:00.000 Die Frage ist, in welcher Qualität und welcher Geschwindigkeit. 46:00.000 --> 46:05.000 Aber da pass jetzt halt doch schon auf, dass Leute mit einem Backend-Hintergrund, 46:05.000 --> 46:09.000 die Fullstack dann im Front unterwegs sind, schnell auch dazu neigen, 46:09.000 --> 46:11.000 einfach das reinzuwerfen. 46:11.000 --> 46:13.000 Ohne so Fragen ist das semantisch korrekt. 46:13.000 --> 46:15.000 Passt das ein Job zusammen. 46:15.000 --> 46:19.000 Es sieht ungefähr so aus, wie es soll und es macht, was es soll. 46:19.000 --> 46:21.000 Das ist manchmal das Kriterium. 46:21.000 --> 46:23.000 Und das ist mit Storybook ein bisschen anders. 46:23.000 --> 46:24.000 Man macht sich halt erst mal Gedanken, 46:24.000 --> 46:28.000 dass User-Interface hat meistens Leute, die darauf spezialisiert sind auch 46:28.000 --> 46:32.000 und von daher die ganzen Plugins, die es da gibt 46:32.000 --> 46:36.000 und die ganzen Erfahrungswerte, diesen zeitlichen Vorsprung in Storybook hat, 46:36.000 --> 46:38.000 den hat Histoire noch nicht. 46:38.000 --> 46:42.000 Das ist so ein bisschen wie bei Sweld und React oder Sweld und View. 46:42.000 --> 46:44.000 Da fehlen halt einfach ein paar Jahre dazwischen. 46:44.000 --> 46:47.000 Und die Frage ist, wie schnell entwickelt sich Histoire weiter? 46:47.000 --> 46:49.000 Und ich glaube, da ist Potenzial auf jeden Fall da. 46:49.000 --> 46:51.000 Die Leute sind neugierig. 46:51.000 --> 46:56.000 Und es funktioniert sehr gut mit Sweld und mit View. 46:56.000 --> 46:57.000 Beides ist sehr angesagt. 46:57.000 --> 47:00.000 Also ich glaube, da ist eine große Zukunft auf jeden Fall. 47:00.000 --> 47:03.000 Ich denke vielleicht auch gerade, weil es noch so am Start ist, 47:03.000 --> 47:09.000 kann man vielleicht tatsächlich so als End-User von dem Developer-Tool 47:09.000 --> 47:12.000 vielleicht auch so ein bisschen noch mit reinwirken 47:12.000 --> 47:14.000 und ein bisschen Feedback ergeben, 47:14.000 --> 47:17.000 welche Richtung es sich am besten weiterentwickeln sollte. 47:17.000 --> 47:20.000 Es besteht natürlich die Gefahr, dass das auch, 47:20.000 --> 47:23.000 was ich negativ ist, über Storybook höre. 47:23.000 --> 47:24.000 Das kommt ja von irgendwo her. 47:24.000 --> 47:26.000 Das kommt halt von daher, dass sie versuchen, 47:26.000 --> 47:29.000 sehr viele Probleme auch dann irgendwie zu lösen. 47:29.000 --> 47:32.000 Und das ist ein Framework. 47:32.000 --> 47:35.000 Das hat wahnsinnig viele Nutzer und Nutzerinnen. 47:35.000 --> 47:38.000 Das heißt, das kann es nicht für jeden perfekt machen. 47:38.000 --> 47:43.000 Das könnte eben auch mit Histoire quasi auch passieren. 47:43.000 --> 47:45.000 Allerdings, dann hätte man zumindest schon mal zwei. 47:45.000 --> 47:48.000 Und dann könnten die beiden jeweils ihren eigenen Fokus haben. 47:48.000 --> 47:50.000 Dann kann man sich immer noch dafür entscheiden, 47:50.000 --> 47:53.000 was jetzt im eigenen Fokus besser entspricht. 47:53.000 --> 47:56.000 Ich würde es auf jeden Fall im Hinterkopf behalten. 47:56.000 --> 48:01.000 Ich würde schon fast jetzt einfach dazu tendieren zu sagen, 48:01.000 --> 48:03.000 ich würde mal sagen, das wäre für mich sozusagen 48:03.000 --> 48:05.000 Production Ready, würde ich empfehlen. 48:05.000 --> 48:11.000 Weil ich auch nicht den allergrößten Migrationsaufwand sehe, 48:11.000 --> 48:13.000 wenn man zum Beispiel sagen müsste, 48:13.000 --> 48:15.000 dass die Funktionalitäten eben nicht ausreichen, 48:15.000 --> 48:18.000 dann wechseln wir von Histoire to Storybook 48:18.000 --> 48:20.000 versus andersherum. 48:20.000 --> 48:21.000 Bei andersherum, bei Storybook, 48:21.000 --> 48:24.000 dann hast du deine Actions und Nobs definiert. 48:24.000 --> 48:27.000 Die es halt einfach bei dem anderen Tool nicht gibt. 48:27.000 --> 48:29.000 Und das andere Tool könnte ja auch, 48:29.000 --> 48:30.000 wie Schabte schon mal gemacht hat, 48:30.000 --> 48:31.000 einfach selbst geschrieben sein. 48:31.000 --> 48:34.000 Dann hat man da diese Tools auch nicht. 48:34.000 --> 48:37.000 Was ich es aber auch euch beide damit fragen würde, 48:37.000 --> 48:40.000 Joe, weil du meintest, macht die Applikation größer 48:40.000 --> 48:41.000 und hier das dazu gebanntet. 48:41.000 --> 48:43.000 Und das wird vielleicht anders gebanntet. 48:43.000 --> 48:45.000 Würdet ihr dazu tendieren, 48:45.000 --> 48:47.000 kann man auch ganz toll für Tests fragen. 48:47.000 --> 48:49.000 Würdet ihr dazu tendieren, 48:49.000 --> 48:52.000 das in der gleichen Repository zu machen 48:52.000 --> 48:57.000 oder abzukapseln und in ein zweites Repository zu legen, 48:57.000 --> 49:00.000 dann irgendwie mit SimLinks, NPM, Private Packages 49:00.000 --> 49:02.000 sonst was irgendwie zu verknüpfen? 49:04.000 --> 49:09.000 Tja, das hängt wie immer davon ab letzten Endes. 49:09.000 --> 49:11.000 Das könnte man jetzt als ersten Satz sagen. 49:11.000 --> 49:16.000 Aber ich sage mal so, in der Praxis aus meiner Erfahrung heraus 49:16.000 --> 49:21.000 würde ich immer das Storybook als lebende Dokumentation 49:21.000 --> 49:24.000 innerhalb des Projektes auch mit sehen und dort auch angesiedelt sehen. 49:24.000 --> 49:27.000 Man kann natürlich auch, das hängt davon ab, 49:27.000 --> 49:29.000 jetzt baust du eine Component Library, 49:29.000 --> 49:31.000 also machst du das ein oder machst du das andere. 49:31.000 --> 49:33.000 Wenn du eine Component Library machst, 49:33.000 --> 49:36.000 dann hast du das Storybook in der Component Library 49:36.000 --> 49:38.000 und dann kommt ein Feature von Storybook, 49:38.000 --> 49:39.000 was wiederum sehr cool ist, 49:39.000 --> 49:41.000 und das ist dieses Storybook in Storybook. 49:41.000 --> 49:44.000 Also dass du quasi mehrere Storybooks einsammelst 49:44.000 --> 49:48.000 und dementsprechend daraus eine große Dokumentation machst. 49:48.000 --> 49:51.000 Und gerade wenn man mehrere Teams hat, 49:51.000 --> 49:54.000 die in unterschiedlichen Bereichen der Applikation arbeiten 49:54.000 --> 49:57.000 oder Microfront arbeiten, 49:57.000 --> 50:00.000 ist das natürlich eine ziemlich coole Möglichkeit, 50:00.000 --> 50:02.000 dementsprechend zu werden. 50:02.000 --> 50:04.000 Das ist das, was ich sage, das ist das, was ich sage. 50:04.000 --> 50:06.000 Das ist das, was ich sage. 50:06.000 --> 50:08.000 Das ist das, was ich sage. 50:08.000 --> 50:10.000 Das ist das, was ich sage. 50:10.000 --> 50:12.000 Das ist das, was ich sage. 50:12.000 --> 50:14.000 Das ist das, was ich sage. 50:14.000 --> 50:18.000 Das ist das natürlich eine ziemlich coole Möglichkeit, dementsprechend 50:18.000 --> 50:25.000 dafür dann Storybook zu verwenden an der Stelle. 50:25.000 --> 50:27.000 Deswegen, das wäre halt ein Vorteil, 50:27.000 --> 50:30.000 wenn man es mit drin hat, dann im Repository 50:30.000 --> 50:34.000 oder verteilt auf mehrere Repositories dann an der Stelle. 50:34.000 --> 50:36.000 Ich hatte das auch schon in einem anderen Projekt gehabt. 50:36.000 --> 50:39.000 Das war noch so 2017, 18. 50:39.000 --> 50:41.000 Da habe ich das endlich so gemacht, 50:41.000 --> 50:43.000 wie du gerade gesagt hast, Vanessa. 50:43.000 --> 50:46.000 Ich habe halt verschiedene Simlings aufgebaut 50:46.000 --> 50:48.000 und hatte verschiedene Docker-Container 50:48.000 --> 50:50.000 und habe dann die Stories da rausgecrawlt. 50:50.000 --> 50:52.000 Und dann hatte ich einen Container gehabt, 50:52.000 --> 50:54.000 der dann das Storybook zusammengebaut hat. 50:54.000 --> 50:57.000 War im Nachhinein nicht so die eleganteste Lösung. 50:57.000 --> 51:00.000 Es war gedanklich, fand ich das cool. 51:00.000 --> 51:04.000 In der Praxis war das dann doch ein ziemliches Gefummel. 51:04.000 --> 51:06.000 Wie Microfront jetzt? 51:06.000 --> 51:08.000 Genau, richtig, wie Microfront. 51:08.000 --> 51:10.000 In der Theorie mega gut. 51:10.000 --> 51:13.000 Aber jetzt bin ich gespannt, was der schreibt dazu. 51:13.000 --> 51:16.000 Ja, ich schließe mich dem auch an. 51:16.000 --> 51:18.000 Ich würde höchstens sagen, 51:18.000 --> 51:20.000 ich würde es immer darleben lassen, 51:20.000 --> 51:23.000 wo auch die Komponenten leben. 51:23.000 --> 51:26.000 Also, dass nicht irgendwie separieren voneinander. 51:26.000 --> 51:30.000 Und genau, also macht für mich keinen Sinn. 51:33.000 --> 51:35.000 Und Hosten? 51:35.000 --> 51:37.000 Das kann man ja dann anders einstellen, 51:37.000 --> 51:40.000 dass man es irgendwie bildet. 51:40.000 --> 51:45.000 Und auf irgendeinen, das Lieblingstool der Wahl, 51:45.000 --> 51:47.000 der Entwickler und Entwicklerinnen, 51:47.000 --> 51:50.000 dass man das da hostet. 51:50.000 --> 51:53.000 Ja, da gibt es ja unsliche Möglichkeiten. 51:53.000 --> 51:55.000 Am Ende ist es so, 51:55.000 --> 51:57.000 dass es in deine Pipeline wahrscheinlich verarbeitet ist 51:57.000 --> 52:00.000 und dann dementsprechend auf einen günstigen 52:00.000 --> 52:03.000 Engings raufballerst. 52:03.000 --> 52:05.000 Ja, ich hatte gerade überlegt, 52:05.000 --> 52:07.000 dass es eigentlich kein Problem gibt, 52:07.000 --> 52:09.000 wenn es in der gleichen Codebase ist 52:09.000 --> 52:11.000 versus im gedrennten Repository. 52:11.000 --> 52:13.000 Aber eigentlich sehe ich da gar kein Problem, 52:13.000 --> 52:15.000 weil man braucht einen gesonderten Befehl. 52:15.000 --> 52:17.000 Und wenn man das Glück hat, 52:17.000 --> 52:20.000 jetzt auf View und Historischung gesetzt zu haben, 52:20.000 --> 52:24.000 kann man auch beides einfach mit Weed weiter bearbeiten. 52:24.000 --> 52:27.000 Das bringt mich auch zum nächsten Punkt. 52:27.000 --> 52:32.000 Was ist 2022 auch ganz groß passiert? 52:32.000 --> 52:35.000 Da war TurboPack. 52:35.000 --> 52:40.000 Und das war ja so viel schneller als Weed hieß es. 52:40.000 --> 52:46.000 Und daher wieder die Blick in deine Kugel. 52:46.000 --> 52:49.000 Geht da jemand, was ist mit Webpack? 52:49.000 --> 52:51.000 Gibt es Roll-up eigentlich noch? 52:51.000 --> 52:53.000 Die anderen Parcel habe ich vergessen. 52:53.000 --> 52:56.000 Aber fokussieren wir uns mal auf TurboPack 52:56.000 --> 52:59.000 versus Webpack versus Weed. 52:59.000 --> 53:02.000 Gewinnt da jemand? 53:02.000 --> 53:04.000 Weiß ich nicht, ob da jemand gewinnt. 53:04.000 --> 53:06.000 Ich glaube, da haben schon einige gewonnen. 53:06.000 --> 53:08.000 Also Weed hat definitiv die letzten Jahre gewonnen 53:08.000 --> 53:10.000 an Popularität. 53:10.000 --> 53:12.000 Das ist außer Frage. 53:12.000 --> 53:15.000 TurboPack, weiß ich nicht, kam jetzt daher, 53:15.000 --> 53:18.000 fährt natürlich diesen, hey, ich baue das Tooling 53:18.000 --> 53:20.000 mit Rust lang, diesen Zugfahren, 53:20.000 --> 53:23.000 den halt auch dementsprechend Rome fährt. 53:23.000 --> 53:26.000 Rome ist mal eine andere Baustelle. 53:26.000 --> 53:30.000 Aber der neue Trend ist, hey, ich baue halt mein Tooling, 53:30.000 --> 53:32.000 nicht mehr mit JavaScript. 53:32.000 --> 53:35.000 Das war mal cool gewesen am Anfang, weil viele das verstanden haben. 53:35.000 --> 53:39.000 Aber jetzt baue ich halt einfach einen Rust lang dementsprechend. 53:39.000 --> 53:41.000 Das ist das Performante. 53:41.000 --> 53:45.000 Und dann sagt man halt einfach auch, TurboPack ist halt nur optimal. 53:45.000 --> 53:48.000 Also das ist ja diese Augenwischerei bei TurboPack. 53:48.000 --> 53:51.000 So, ja, wir haben jetzt ein Problem gelöst für Next.js. 53:51.000 --> 53:53.000 Hooray, schön, freut mich, super. 53:53.000 --> 53:55.000 Theoretisch halt auch für andere. 53:55.000 --> 54:00.000 Aber praktisch ist es halt immer noch nicht so weit wie ein Wied. 54:00.000 --> 54:02.000 Wir wissen alle, wenn wir Wied verfolgt haben, 54:02.000 --> 54:05.000 die letzten zwei Jahre ist einiges passiert in dem Bereich. 54:05.000 --> 54:07.000 Und das hat TurboPack noch vor sich. 54:07.000 --> 54:11.000 Und ich erinnere mich noch auf Twitter, diese Tweets von Avenue, 54:11.000 --> 54:13.000 der dann angefangen hat, Tests zu fahren, Vengemarks. 54:13.000 --> 54:15.000 Und den hat das so ein bisschen nicht gewurmt. 54:15.000 --> 54:17.000 Der war einfach neugierig. 54:17.000 --> 54:19.000 Das ist halt die Art von Avenue. 54:19.000 --> 54:21.000 Er sieht irgendwas, findet das cool. 54:21.000 --> 54:23.000 Und das mag ich auch so an ihm. 54:23.000 --> 54:25.000 So fachlich sachlich bleibt an der Stelle. 54:25.000 --> 54:28.000 Und dann wirklich sagt, okay, lass mal gucken, wie schnell ist es denn? 54:28.000 --> 54:30.000 Und wenn, was kann ich davon lernen? 54:30.000 --> 54:32.000 Und dann kommt auf einmal irgendwie raus. 54:32.000 --> 54:37.000 Na ja, ist es ja eigentlich so gesehen doch nicht wirklich schneller an der Stelle als Wied. 54:37.000 --> 54:44.000 Beziehungsweise Wied könnte ähnliche Dinge adaptieren von diesem TurboPack. 54:44.000 --> 54:49.000 Ja, und ja, also ich glaube für Next.js ist das ein absoluter Gewinn. 54:49.000 --> 54:51.000 Deswegen wird TurboPack definitiv bleiben. 54:51.000 --> 54:54.000 Wie sie es noch weiterentwickelt, muss man jetzt einfach verfolgen. 54:54.000 --> 54:56.000 Wenn ich gesehen habe, kann man das so... 54:56.000 --> 54:59.000 Wenn ich also Evan richtig verstanden hat, könnte man es in Kombination machen, 54:59.000 --> 55:03.000 dass man quasi TurboPack in Wied unter der Haube laufen lässt, 55:03.000 --> 55:05.000 wenn ich das richtig interpretiert hatte. 55:05.000 --> 55:07.000 Also von daher muss man mal schauen. 55:07.000 --> 55:09.000 Also man kann nur davon gewinnen, oder die Webbranche kann nur davon gewinnen, 55:09.000 --> 55:12.000 dass man sagt, okay, Webpack. 55:12.000 --> 55:18.000 Und das ist halt leider so dieser Kälch, der der Technologie nach und nach gereicht wird. 55:18.000 --> 55:22.000 Nämlich dieser Technologie, dass, ja, danke, dass du uns geholfen hast all die Jahre, 55:22.000 --> 55:24.000 aber jetzt ist dein Zenit überschritten. 55:24.000 --> 55:26.000 So, jQuery, Webpack. 55:26.000 --> 55:28.000 Das passiert halt gerade mit Webpack. 55:28.000 --> 55:33.000 Webpack wird halt abgelöst durch Lösungen wie Wied, TurboPack und so weiter und so fort. 55:33.000 --> 55:36.000 Und wird halt irgendwann in ein paar Jahren... 55:36.000 --> 55:40.000 Sitzen wir wieder da und sagen so, jetzt kommt der alte Senior, 55:40.000 --> 55:45.000 oder die alte Senior Developerin und erzählt dann dementsprechend die Geschichten von Webpack. 55:45.000 --> 55:48.000 Ja, so in zehn Jahren oder so, was sich keiner mehr daran erinnert 55:48.000 --> 55:51.000 von der jüngeren Generation an der Stelle. 55:51.000 --> 55:59.000 Kurze Frage, ist TurboPack das, was quasi vom Webpack-Macher jetzt als Nächstes gemacht wird? 55:59.000 --> 56:00.000 War das das? 56:00.000 --> 56:03.000 Oder der macht da auch jetzt irgendwas Neues, oder? 56:03.000 --> 56:04.000 Das war das, ne? 56:04.000 --> 56:05.000 Ja, okay. 56:05.000 --> 56:08.000 Also ist ja so, dass da wieder auch eine Kampagne dahinter steckt, 56:08.000 --> 56:10.000 mit einem Interesse bei TurboPack. 56:10.000 --> 56:12.000 Und dementsprechend ist da wieder... 56:12.000 --> 56:15.000 Und jetzt ja bei Wörsell... 56:15.000 --> 56:18.000 Genau, Wörsell hat ja einige Leute eingestellt, sagen wir mal so, Rich Harris von Svelte, 56:18.000 --> 56:23.000 also das Wachstum von Svelte, kommt halt auch nicht nur daher, 56:23.000 --> 56:27.000 dass wenig Geld geflossen ist, sondern da ist natürlich ein Interesse daran, 56:27.000 --> 56:29.000 das Produkt wird schneller vorangetrieben und entwickelt, 56:29.000 --> 56:31.000 das bleibt trotzdem Open Source. 56:31.000 --> 56:36.000 Und Wörsell, wissen wir alle, hat da ein großes Interesse einfach daran auch, 56:36.000 --> 56:40.000 dadurch ihre eigenen Produkte weiter voranzutreiben 56:40.000 --> 56:42.000 und natürlich auch ein gewisse... 56:42.000 --> 56:44.000 Ja, ich will es jetzt nicht als Bad Company nachstellen, 56:44.000 --> 56:47.000 ganz zum Gegenteil, aber trotzdem ist es halt schon so, 56:47.000 --> 56:51.000 dass die natürlich ein Interesse daran haben, auch Open Source Software voranzutreiben 56:51.000 --> 56:54.000 und zu ownen, eine gewisse Relevanz auch einfach zu haben, 56:54.000 --> 56:55.000 und mit sprechen zu können. 56:55.000 --> 56:58.000 Das passiert bei Nächstes gerade, das passiert mit TurboPack. 56:58.000 --> 57:00.000 Und wie du gesagt hast, es werden halt einige Developer eingestellt. 57:00.000 --> 57:05.000 Das ist überhaupt nichts Verwerfliches, so funktioniert halt die Marktwirtschaft auch mitunter. 57:05.000 --> 57:09.000 Und von daher ist es gut, dass die Technik viel schneller vorangetrieben werden kann. 57:09.000 --> 57:12.000 Die Frage ist halt nur, wie die freie Open Source Welt, 57:12.000 --> 57:14.000 ich nenne sie jetzt mal die freie Open Source Welt, 57:14.000 --> 57:17.000 klingt ein bisschen wie bei Game of Thrones oder so, die freien Völker, 57:17.000 --> 57:21.000 aber was die davon haben, was die davon lernen können, 57:21.000 --> 57:25.000 und ich glaube, das ist noch ein Geben und nehmen auf Augenhöhe an der Stelle. 57:25.000 --> 57:28.000 Ja. 57:28.000 --> 57:31.000 Du hattest jetzt gerade noch Rome erwähnt? 57:31.000 --> 57:33.000 Ja, genau. 57:33.000 --> 57:36.000 Können wir kurz zurückspulen, was ist Rome? 57:36.000 --> 57:37.000 Genau. 57:37.000 --> 57:38.000 Was macht das? 57:38.000 --> 57:41.000 Rome ist der Anlass, also wir kennen dieser ganze Zoo, 57:41.000 --> 57:45.000 die man sich da so auf so einer Festplatte hinlegt, 57:45.000 --> 57:49.000 in seinen Orten, ein Projektordner, ESLint, 57:49.000 --> 57:54.000 dann fangen wir mal weiter vorne an. 57:54.000 --> 57:57.000 Wenn man mit der Create React App arbeitet, 57:57.000 --> 58:00.000 oder mit Weed, oder mit der Fuse-Cli, 58:00.000 --> 58:03.000 oder mit irgendwelchen Scar-Folding-Tools, 58:03.000 --> 58:05.000 es ist ja mehr als ein Scar-Folding-Tool, 58:05.000 --> 58:08.000 das sind ja quasi Tools, die quasi eine Konfiguration für Webpack 58:08.000 --> 58:10.000 oder für Weed dahingestellt haben, 58:10.000 --> 58:13.000 und die garantiert, dass das alles zusammenspielt. 58:13.000 --> 58:16.000 Das sind allen einzelnen Plug-ins, die da irgendeineinander greifen, 58:16.000 --> 58:21.000 und bei Rome ist es so, dass diese ganzen Tools, die man dafür braucht, 58:21.000 --> 58:24.000 in Rome selbst quasi vereint sind. 58:24.000 --> 58:30.000 Es ist quasi ein Tool, was nicht mehr diese Zoo-Landschaft auf einmal darstellt. 58:30.000 --> 58:33.000 Ist nicht mehr so, dass du sagen musst, ich habe jetzt mal ein Webpack, 58:33.000 --> 58:35.000 und dann muss ich erst mal 12.000 Module installieren, 58:35.000 --> 58:38.000 und dafür eigene Regeln schreiben und so weiter und so fort, 58:38.000 --> 58:42.000 sondern ich habe halt Rome, und Rome macht das alles, 58:42.000 --> 58:46.000 und zwar performant und aus einem Guss. 58:46.000 --> 58:53.000 Also quasi, dass Angular unter den Webprojektinfrastrukturen 58:53.000 --> 58:58.000 gegenüber dem React, wo man sich einfach seine Teile ja zusammensuchen muss. 58:58.000 --> 59:00.000 Ja, wobei auch bei Angular das Ding ja ist, 59:00.000 --> 59:04.000 dass wir auch wieder eigene Teile da drin irgendwie zusammenkonfiguriert sind, 59:04.000 --> 59:06.000 so TypeScript zum Beispiel. 59:06.000 --> 59:09.000 Bei Rome ist es eher so, ja, kann man das so sagen, 59:09.000 --> 59:13.000 doch bei Rome ist es eher so, dass da... 59:13.000 --> 59:15.000 Ja, vielleicht ist es der Vergleich mit Angular. 59:15.000 --> 59:17.000 Habe ich so noch nicht drüber nachgedacht? 59:17.000 --> 59:20.000 Jetzt muss ich gerade kurz drüber nachdenken, und finde ihn gar nicht so... 59:20.000 --> 59:22.000 Aber im Prinzip alles aus einer Hand. 59:22.000 --> 59:23.000 Ja, genau. 59:23.000 --> 59:26.000 Du hast recht, bei Angular TypeScript kommt er ja nicht von denen, 59:26.000 --> 59:32.000 und hier auch, wie heißt das, egal das Statement-Management-Dings, 59:32.000 --> 59:36.000 das ist doch hier auch vergessen, den Namen vergessen, 59:36.000 --> 59:38.000 aber kommt ja auch nicht von denen ursprünglich. 59:38.000 --> 59:40.000 Genau, ich kann noch RXJS, kann ich da noch? 59:40.000 --> 59:41.000 Ja, genau. 59:41.000 --> 59:42.000 Genau, ja. 59:42.000 --> 59:47.000 Und genau, das kommt ja von Microsoft, mit RXJS dementsprechend. 59:47.000 --> 59:50.000 Genau, kann man das ja auch von anderen Projekten einsetzen, aber ja, 59:50.000 --> 59:53.000 es geht halt in diese Richtung, dass man mit Rome halt wirklich sagt, 59:53.000 --> 59:56.000 so, hey, dieser ganze Irrsinn mit diesen ganzen Compilern, 59:56.000 --> 01:00:00.000 ja, diesen einzelnen Compilern, die da umschwören und irgendwas machen, 01:00:00.000 --> 01:00:03.000 oder diesen einzelnen Servern, der muss einen Ende haben, 01:00:03.000 --> 01:00:08.000 und dementsprechend ist Rome halt quasi das eine Tool, was das alles kann, 01:00:08.000 --> 01:00:11.000 und nicht ein Tool, was konfiguriert werden muss. 01:00:11.000 --> 01:00:13.000 Ja, und zwar mit... 01:00:13.000 --> 01:00:18.000 Ja, jeder, der schon mal versucht hat, irgendwie ein View- oder React-Projekt aufzusetzen, 01:00:18.000 --> 01:00:23.000 ohne diese Create-React-App, oder ohne die View-Style, 01:00:23.000 --> 01:00:28.000 oder ohne Veed, der weiß, also mit dem Presets oder dem Scarf Holding, 01:00:28.000 --> 01:00:29.000 der weiß, was das bedeutet. 01:00:29.000 --> 01:00:31.000 Ja, das ist einfach viel Arbeit. 01:00:31.000 --> 01:00:32.000 Ich erinnere mich immer noch gerne daran, 01:00:32.000 --> 01:00:35.000 hatte ich das letzte Mal, als ich bei euch zu Gast war, auch erzählt, 01:00:35.000 --> 01:00:38.000 ich wollte einfach nur Jest-Tests in einem JavaScript-Projekt laufen lassen, 01:00:38.000 --> 01:00:42.000 und das mit ECMAScript-Imports, also mit JavaScript-Modules. 01:00:42.000 --> 01:00:44.000 Und dann ging diese ganze Odyssee los, ja, 01:00:44.000 --> 01:00:47.000 dieses ganze Jagd-Shaving, was dann da passiert ist. 01:00:47.000 --> 01:00:50.000 So, ich hatte wirklich am Ende das ganze Tier gefühlt rasiert gehabt, 01:00:50.000 --> 01:00:52.000 bis ich das im Laufen gebracht hatte, ist jetzt übertrieben. 01:00:52.000 --> 01:00:54.000 Aber das würde dann passieren. 01:00:54.000 --> 01:00:59.000 Und deswegen ist dementsprechend Rome nochmal eine Alternative zu so einem... 01:00:59.000 --> 01:01:05.000 Weil Vanessa das eben meinte, hier mit Parcel, diese Zero-Configuration-Bundler, 01:01:05.000 --> 01:01:08.000 die hatten ja auch schon versucht gehabt, Komplexität rauszunehmen. 01:01:08.000 --> 01:01:13.000 Aber trotzdem ist Rome dann nochmal ein Tool, 01:01:13.000 --> 01:01:18.000 was want to rule them all quasi, könnte man sagen, ja, genau. 01:01:18.000 --> 01:01:20.000 Und vor allem folgt es ja auch hier dem Trend, 01:01:20.000 --> 01:01:23.000 in Rust geschrieben worden zu sein. 01:01:23.000 --> 01:01:25.000 Aber da wir jetzt schon mehrfach mal hier erwähnt werden, 01:01:25.000 --> 01:01:29.000 und das ist dann Performante, weil Rust ist Performante als JavaScript generell, 01:01:29.000 --> 01:01:31.000 das ist jetzt mal eine Tatsache. 01:01:31.000 --> 01:01:37.000 Aber da gab es jetzt gerade vom guten Monat 01:01:37.000 --> 01:01:42.000 einen ziemlich interessanten Artikel vom Marvin Hagemeister, 01:01:42.000 --> 01:01:46.000 der ja auch für Faust Project sehr bekannt ist. 01:01:46.000 --> 01:01:51.000 Und der Artikel hat sich darüber beschäftigt, 01:01:51.000 --> 01:01:56.000 wie man jetzt eigentlich das JavaScript-Ökosystem eben mal verschnellern könnte, 01:01:56.000 --> 01:01:59.000 weil er meinte, okay, jetzt wird nichts gegen Rust, 01:01:59.000 --> 01:02:04.000 aber jetzt wird gerade Rust-Tooling so gehypt für JavaScript-Webseiten. 01:02:04.000 --> 01:02:08.000 Aber es müsste nicht so langsam sein im JavaScript-Bereich, 01:02:08.000 --> 01:02:11.000 es wird wahrscheinlich nie daran kommen können. 01:02:11.000 --> 01:02:15.000 Aber es gibt da wohl einige Low-Hanging-Fruits, 01:02:15.000 --> 01:02:19.000 die man in NPM-Packages einfach mal wechseln könnte. 01:02:19.000 --> 01:02:23.000 Und dann würden da schon teilweise Sekunden eingespart werden können beim Bilden. 01:02:23.000 --> 01:02:25.000 Und wenn wir jetzt einfach mal grob überschlagen, 01:02:25.000 --> 01:02:31.000 wir könnten eine Sekunde pro Tool, Linter, Pretier, was auch immer sparen können, 01:02:31.000 --> 01:02:37.000 dann hätte man vielleicht bei unseren Trollstausentool schon dreiftausend Sekunden gespart. 01:02:37.000 --> 01:02:41.000 Was ich einen guten Ansichtspunkt auch noch mal finde, 01:02:41.000 --> 01:02:44.000 um dem Ganzen nochmal einen anderen Blickwinkel zu geben. 01:02:44.000 --> 01:02:48.000 Den verlinken wir natürlich auch an den Show-Notes. 01:02:48.000 --> 01:02:51.000 Und ich möchte mich auch bedanken an dieser Stelle bei Stefan Jules, 01:02:51.000 --> 01:02:54.000 weil ich habe es durch seinen Newsletter gesehen. 01:02:54.000 --> 01:02:56.000 So. 01:02:56.000 --> 01:02:59.000 Das ist interessant, weil ich um einen Haken darf an der Stelle. 01:02:59.000 --> 01:03:01.000 Weil ich meine, man muss immer gucken, 01:03:01.000 --> 01:03:04.000 woher kommt das eigentlich, dass man auf einmal das mit Rust baut? 01:03:04.000 --> 01:03:07.000 Also, ich stelle jetzt mal die These auf. 01:03:07.000 --> 01:03:09.000 Das hat ein bisschen was mit dem Erfinder von Node.js zu tun, 01:03:09.000 --> 01:03:14.000 der angefangen hat, Dino als Alternative für Node zu bauen. 01:03:14.000 --> 01:03:18.000 Mit seinem Alter einen Wissen, was er aus seinem Ansicht nicht falsch gemacht hat, 01:03:18.000 --> 01:03:20.000 sondern was er einfach besser machen würde. 01:03:20.000 --> 01:03:22.000 Und hat dann angefangen, das Ding halt mit Rust zu bauen. 01:03:22.000 --> 01:03:26.000 Und ich weiß nicht, ob das daher rührt, aber auch da die Erkenntnis, 01:03:26.000 --> 01:03:30.000 naja, was bringt uns jetzt dieser Switch auf eine komplett andere Technologie, 01:03:30.000 --> 01:03:32.000 wenn die ganzen Packages nicht mehr nutzen könnten? 01:03:32.000 --> 01:03:34.000 Und ich meine, das ist ein Riesen-Ökosystem. 01:03:34.000 --> 01:03:36.000 Was schmeißt man das in die Mülltonne? Ja, bestimmt nicht. 01:03:36.000 --> 01:03:38.000 Und das ist gerade auch die Challenge, glaube ich, wo Sie sagen. 01:03:38.000 --> 01:03:40.000 Welch zählt das auch so ein bisschen? 01:03:40.000 --> 01:03:43.000 Also, ich werde auf jeden Fall den Artikel mir durchlesen, 01:03:43.000 --> 01:03:46.000 den du gerade auch da empfohlen hast, Vanessa, 01:03:46.000 --> 01:03:48.000 weil das mich einfach auch interessiert. 01:03:48.000 --> 01:03:52.000 Da geht es ja auch um diesen Ansatz bei Dino und bei Bann. 01:03:52.000 --> 01:03:56.000 Das ist auch jetzt nochmal so eine andere Alternative dann dementsprechend zu Node, 01:03:56.000 --> 01:03:58.000 wie man diese Node Packages laufen lassen kann. 01:03:58.000 --> 01:04:02.000 Und bei Bann, wenn ich das richtig verstanden habe, 01:04:02.000 --> 01:04:06.000 ist das ja auf jeden Fall möglich, diese Node Packages dann dementsprechend weiterzunutzen. 01:04:06.000 --> 01:04:09.000 Und bei Dino, glaube ich, auch mittlerweile. 01:04:09.000 --> 01:04:12.000 So, und da bin ich mal gespannt, wie sich das weiterentwickelt. 01:04:12.000 --> 01:04:15.000 Dieses, ja, wir schmeißen nicht das ganze Ökosystem weg 01:04:15.000 --> 01:04:18.000 und vielleicht dadurch, dass wir Pakete optimieren, 01:04:18.000 --> 01:04:20.000 wird das halt dann dementsprechend auch schneller. 01:04:20.000 --> 01:04:23.000 Also, ja, es ist halt Zeit, 01:04:23.000 --> 01:04:26.000 wir wollen ja nicht irgendwann enden wie im Java-Bereich, 01:04:26.000 --> 01:04:28.000 wir wollen ja keinen Bash gegen die Java-Welt, 01:04:28.000 --> 01:04:32.000 aber wir wissen alle, Java braucht manchmal ein bisschen bis es fertig ist 01:04:32.000 --> 01:04:34.000 dann mit dem fertigen Increment. 01:04:34.000 --> 01:04:36.000 Und das möchte man eigentlich vermeiden. 01:04:36.000 --> 01:04:38.000 Das wollte ich noch hinzugefügt haben. 01:04:41.000 --> 01:04:44.000 Um jetzt das Spanning-Thema und Hooling-Thema abzuschließen, 01:04:44.000 --> 01:04:47.000 wir meinten, TurboPak und Veed, 01:04:47.000 --> 01:04:49.000 beide sind sehr interessant, 01:04:49.000 --> 01:04:51.000 aber wer jetzt gerade alles auf Veed migriert hat, 01:04:51.000 --> 01:04:54.000 der muss jetzt vielleicht nicht unbedingt alles auf TurboPak migrieren, 01:04:54.000 --> 01:04:56.000 man kann es weiter beobachten. 01:04:56.000 --> 01:05:01.000 Aber bei Veed-Pak vielleicht tatsächlich die Zeit kommen, 01:05:01.000 --> 01:05:05.000 dass man sich bedankt und nicht, also wirklich, 01:05:05.000 --> 01:05:07.000 ich meine, es war ja großartig für, 01:05:07.000 --> 01:05:09.000 ich meine, es hat großartige Probleme gelöst. 01:05:09.000 --> 01:05:11.000 Das soll es gar nicht sarkastisch klingen, 01:05:11.000 --> 01:05:14.000 aber heutzutage würde man wahrscheinlich 01:05:14.000 --> 01:05:17.000 tatsächlich kein neues Projekt mit dabei anfangen. 01:05:17.000 --> 01:05:19.000 Da fällt mir ein anderes Thema ein, 01:05:19.000 --> 01:05:21.000 unser außer CSS-Welt. 01:05:21.000 --> 01:05:25.000 Und zwar hatte ich tatsächlich leider 01:05:25.000 --> 01:05:28.000 Vorurteile gegen Bootstrap jetzt eine ganze Zeit lang, 01:05:28.000 --> 01:05:32.000 nachdem ich Bootstrap nur so aus den Anfangszeiten kannte. 01:05:32.000 --> 01:05:35.000 Und das war die Zeit von, oh, guck mal, 01:05:35.000 --> 01:05:37.000 yet another Bootstrap-Web-Seite, 01:05:37.000 --> 01:05:38.000 schaut wieder so aus, 01:05:38.000 --> 01:05:40.000 hat wieder dieser gleichen blauen Button, 01:05:40.000 --> 01:05:41.000 mit dem gleichen blauen Padding, 01:05:41.000 --> 01:05:43.000 mit dem gleichen blauen Border-Radius. 01:05:43.000 --> 01:05:46.000 Und da bin ich dann auf jeden Fall 01:05:46.000 --> 01:05:48.000 vor Jahren eben schon weggegangen, 01:05:48.000 --> 01:05:50.000 weil meine Projekte dafür nicht ausgelegt waren, 01:05:50.000 --> 01:05:53.000 also ich brauchte deutlich mehr Custom-Design. 01:05:53.000 --> 01:05:55.000 Und bin so an Grenzen gestoßen, 01:05:55.000 --> 01:05:57.000 dass ich aber auch das Gefühl hatte, 01:05:57.000 --> 01:06:00.000 ich kann Bootstrap nicht mal so under the hood verwenden, 01:06:00.000 --> 01:06:03.000 sondern irgendwie steht mir hier immer dann alles im Weg. 01:06:03.000 --> 01:06:05.000 Habe jetzt aber in den letzten Monaten 01:06:05.000 --> 01:06:07.000 immer und immer wieder eigentlich nur, 01:06:07.000 --> 01:06:10.000 wer positiv es gehört und so nach dem Motto, 01:06:10.000 --> 01:06:13.000 aber das was Tavern kann, also gerade diese Utility-Klassen, 01:06:13.000 --> 01:06:16.000 bietet Bootstrap mittlerweile auch an. 01:06:16.000 --> 01:06:19.000 Und das Bootstrap scheint einfach nicht gehen zu wollen. 01:06:19.000 --> 01:06:23.000 Und tschau da wieder deine Frage an deine Kugel. 01:06:23.000 --> 01:06:27.000 Ist Bootstrap was, was man auf dem Schirm habe sollte, 01:06:27.000 --> 01:06:30.000 oder vielleicht sogar extra jetzt nochmal genauer hinschauen sollte, 01:06:30.000 --> 01:06:34.000 ob man nicht wieder dahin mal wieder mitkriegen möchte? 01:06:34.000 --> 01:06:35.000 Da muss ich gerade aufpassen, 01:06:35.000 --> 01:06:38.000 dass meine persönlichen Vorlieben jetzt nicht irgendwie 01:06:38.000 --> 01:06:43.000 eine neutrale Meinung verschmelzen lassen. 01:06:43.000 --> 01:06:46.000 Also ich sag mal so, Bootstrap selbst 01:06:46.000 --> 01:06:50.000 ist halt sehr oft eingesetzt. 01:06:50.000 --> 01:06:52.000 Es kann sehr viel. 01:06:52.000 --> 01:06:54.000 Ich würde jetzt nicht 100% zustimmen, 01:06:54.000 --> 01:06:58.000 dass es genauso vom eingesetzt werden kann wie Tailwind. 01:06:58.000 --> 01:07:00.000 Vielleicht ist es möglich in der Stelle. 01:07:00.000 --> 01:07:04.000 Aber ich sag mal so, für mich, ich bin sehr erstaunt, 01:07:04.000 --> 01:07:07.000 dass es Bootstrap überhaupt noch gibt, muss ich ehrlich sagen. 01:07:07.000 --> 01:07:09.000 Ich hätte gedacht, ehrlich gesagt, 01:07:09.000 --> 01:07:12.000 wir sind jetzt glaube ich bei Version 5 von Bootstrap. 01:07:12.000 --> 01:07:13.000 Richtig ist es richtig. 01:07:13.000 --> 01:07:17.000 Ja, ich glaube, ja, ich glaube bei Version 5 01:07:17.000 --> 01:07:18.000 müssten wir glaube ich sein. 01:07:18.000 --> 01:07:20.000 Und ich dachte es inzwischen zeitlich so, ja, 01:07:20.000 --> 01:07:22.000 SCSS, das macht ja auch keiner mehr, 01:07:22.000 --> 01:07:23.000 aber das stimmt ja nicht, 01:07:23.000 --> 01:07:25.000 nur weil ich das nicht mehr nutze 01:07:25.000 --> 01:07:28.000 und seit Jahren Richtung Post-CSS gewandert bin, 01:07:28.000 --> 01:07:29.000 auch schon vor Tailwind, 01:07:29.000 --> 01:07:31.000 und damit habe ich auch schon gespoilert, 01:07:31.000 --> 01:07:34.000 was meine Referenz ist. 01:07:34.000 --> 01:07:41.000 Ich glaube Bootstrap wird primär noch für, 01:07:41.000 --> 01:07:43.000 ich weiß nicht, ob es zum Applikationsbereich noch eingesetzt wird. 01:07:43.000 --> 01:07:46.000 Also wenn ich überlege auch im React-Bereich 01:07:46.000 --> 01:07:47.000 oder im Angular-Bereich, 01:07:47.000 --> 01:07:48.000 setzt man da noch Bootstrap ein. 01:07:48.000 --> 01:07:50.000 Ehrlich gesagt, ich glaube, das Material Design 01:07:50.000 --> 01:07:52.000 hat die Schlacht gewonnen, um ehrlich zu sein. 01:07:52.000 --> 01:07:56.000 Macht auf mich meistens auch den besseren Eindruck so. 01:07:56.000 --> 01:08:00.000 Und von daher persönlich glaube ich, 01:08:00.000 --> 01:08:05.000 dass die Utility First Libraries das Rennen machen werden. 01:08:05.000 --> 01:08:07.000 Sie lösen zwar auch nicht alle Probleme 01:08:07.000 --> 01:08:08.000 und schaffen neue, 01:08:08.000 --> 01:08:11.000 darf man jetzt nicht sagen, hey Tailwind, 01:08:11.000 --> 01:08:12.000 meine Probleme sind gegangen, 01:08:12.000 --> 01:08:14.000 nein, ich habe jetzt neue, 01:08:14.000 --> 01:08:16.000 drei Fehler gefixt, 01:08:16.000 --> 01:08:18.000 vier neue sind da gefühlt, 01:08:18.000 --> 01:08:20.000 das könnte auch da passieren. 01:08:20.000 --> 01:08:22.000 Aber letztlich, sage ich mal, 01:08:22.000 --> 01:08:23.000 so ein Komponenten getriebener 01:08:23.000 --> 01:08:25.000 und Entwicklungsumgebung, 01:08:25.000 --> 01:08:27.000 ist Tailwind halt wesentlich flexibler gefühlt 01:08:27.000 --> 01:08:31.000 oder dass man Tailwind Außen For Utility First Produkte. 01:08:31.000 --> 01:08:34.000 Und deswegen würde ich seit 2023 01:08:34.000 --> 01:08:35.000 gar nicht mehr so sagen, 01:08:35.000 --> 01:08:37.000 das Bootstrap noch eine Relevanz, 01:08:37.000 --> 01:08:40.000 die hat vielleicht bei Theme Forest, 01:08:40.000 --> 01:08:43.000 weil viele ihre Themes erstellt haben 01:08:43.000 --> 01:08:45.000 mit Bootstrap, weil es schnell anpassbar ist. 01:08:45.000 --> 01:08:47.000 Und weil man auch beim SCSS-Bereich 01:08:47.000 --> 01:08:49.000 so die Kurve nochmal gekriegt hat, 01:08:49.000 --> 01:08:52.000 mit dem Einsatz von Custom Properties 01:08:52.000 --> 01:08:54.000 und so weiter und so fort. 01:08:54.000 --> 01:08:57.000 Ja, also ich würde die Reherrichtung, 01:08:57.000 --> 01:08:59.000 ich würde erst die Karte 01:08:59.000 --> 01:09:03.000 bei Material Design getriebenen Komponenten Libraries sehen, 01:09:03.000 --> 01:09:05.000 auch weil sie flexibel aufgestellt sind. 01:09:05.000 --> 01:09:08.000 Sie wissen nicht abhängig von einem Anbieter. 01:09:08.000 --> 01:09:09.000 Und da hast du wieder das Problem, 01:09:09.000 --> 01:09:11.000 was du vorhin angesprochen hast, Vanessa. 01:09:11.000 --> 01:09:14.000 Bootstrap ist ja erstmal losgelöst 01:09:14.000 --> 01:09:17.000 von einem JavaScript Framework so gesehen. 01:09:17.000 --> 01:09:19.000 Und dann wird halt wieder migriert. 01:09:19.000 --> 01:09:22.000 Also diese Bootstrap, Library, 01:09:22.000 --> 01:09:24.000 dieser Grundansatz wird dann migriert 01:09:24.000 --> 01:09:25.000 nach React, Views, Welt. 01:09:25.000 --> 01:09:27.000 Und überall funktioniert es anders, 01:09:27.000 --> 01:09:30.000 überall sind nicht alle Komponenten verfügbar. 01:09:30.000 --> 01:09:32.000 Und das finde ich ist bei Material 01:09:32.000 --> 01:09:33.000 ein bisschen besser gelöst, 01:09:33.000 --> 01:09:34.000 weil man mehr Auswahl hat. 01:09:34.000 --> 01:09:37.000 Es gibt halt mehr Anbieter, die quasi diesen Ansatz verfolgen. 01:09:37.000 --> 01:09:40.000 Ja, das ist auf jeden Fall das, 01:09:40.000 --> 01:09:42.000 was ich persönlich darüber denke. 01:09:42.000 --> 01:09:45.000 Ja, jetzt gegen Argument hatte ich dann immer nur, 01:09:45.000 --> 01:09:49.000 dass wir doch nicht alle ständig hübsche UIs bauen, 01:09:49.000 --> 01:09:53.000 sondern vielleicht auch einfach mal die fertigen UIs brauchen 01:09:53.000 --> 01:09:55.000 für Internet Tools und etc. 01:09:55.000 --> 01:09:57.000 Oder Datenanalyse Tools, 01:09:57.000 --> 01:09:59.000 wo es ja wirklich darum geht, sich darauf zu fokussieren, 01:09:59.000 --> 01:10:01.000 Daten gut aufzubereiten, 01:10:01.000 --> 01:10:04.000 als ob jetzt der Button in einem richtigen Design ist. 01:10:04.000 --> 01:10:07.000 Aber da war dann eben auch mein nächster Gedanke, 01:10:07.000 --> 01:10:10.000 ist dafür dann Bootstrap nicht wiederum so groß. 01:10:10.000 --> 01:10:13.000 Also hat es dann wieder nicht eine große Lernkurve. 01:10:13.000 --> 01:10:16.000 Und würde ich da vielleicht nicht eher eine Komponentenbibliothek 01:10:16.000 --> 01:10:19.000 oder CSS-Bibliothek verwenden, die deutlich kleiner wäre. 01:10:19.000 --> 01:10:21.000 Ich würde es furchtbar gern wissen. 01:10:21.000 --> 01:10:23.000 Deswegen hoffe ich, dass wir irgendwelche höherer und höherer 01:10:23.000 --> 01:10:25.000 Rennen haben, die mir sagen, so nach dem Motto, 01:10:25.000 --> 01:10:28.000 ich tue hier so krumm, als wäre jQuery und PHP tot, 01:10:28.000 --> 01:10:30.000 aber ungefähr 98 Prozent des Webs 01:10:30.000 --> 01:10:32.000 bauen darauf. 01:10:32.000 --> 01:10:34.000 Ich würde super gerne darüber hören, 01:10:34.000 --> 01:10:37.000 ob noch jemand so richtig viel Bootstrap schreibt. 01:10:37.000 --> 01:10:39.000 Das kann ich dir tatsächlich sogar beantworten an der Stelle, 01:10:39.000 --> 01:10:42.000 weil ich noch sehr viel zum PHP-Bereich Kontakt habe. 01:10:42.000 --> 01:10:44.000 Und ich weiß, zumindestens, 01:10:44.000 --> 01:10:46.000 ich habe sehr viel im KONTAO CMS, 01:10:46.000 --> 01:10:48.000 das ist ein aus dem Deutsch-Spreigenraum, 01:10:48.000 --> 01:10:50.000 stammt das CMS an, 01:10:50.000 --> 01:10:53.000 mag man teilen glaube ich von 6 Prozent im Deutsch-Spreigenraum. 01:10:53.000 --> 01:10:56.000 Da weiß ich, dass sehr viele Leute Bootstrap einsetzen 01:10:56.000 --> 01:10:59.000 und da eine Megaabhängigkeit auch teilweise entstanden ist, 01:10:59.000 --> 01:11:02.000 da werden ja ganze Plugins für gebaut, auch bei WordPress. 01:11:02.000 --> 01:11:06.000 Nur dass du Bootstrap für die Redaktionsoberfläche 01:11:06.000 --> 01:11:08.000 oder den Redakteuren zur Verfügung stellen kannst, 01:11:08.000 --> 01:11:10.000 dass sie verschiedene Crits aufbauen können und so. 01:11:10.000 --> 01:11:13.000 Und für mich ist das, muss ich ehrlich sagen, 01:11:13.000 --> 01:11:15.000 sorry to say, aber fast schon der technische Schuld, 01:11:15.000 --> 01:11:17.000 die da aufgebaut ist. 01:11:17.000 --> 01:11:22.000 Weil du bist halt krass in diesem Wendor gefangen an der Stelle. 01:11:22.000 --> 01:11:24.000 Ich glaube, da kommt man einfach nicht mehr raus, 01:11:24.000 --> 01:11:26.000 ohne dass man den Kunden, 01:11:26.000 --> 01:11:29.000 oder das muss man sagen, der Kunde bezahlt es ja am Ende. 01:11:29.000 --> 01:11:32.000 Also welcher Kunde bezahlt denn dafür, dass du jetzt sagst, 01:11:32.000 --> 01:11:34.000 hey Bootstrap, das macht man heute nicht mehr. 01:11:34.000 --> 01:11:36.000 Das müssen wir jetzt umbauen. 01:11:36.000 --> 01:11:38.000 Ach, das kostet übrigens 8.000 Euro. 01:11:38.000 --> 01:11:40.000 Das wird keiner machen. 01:11:42.000 --> 01:11:45.000 Ja, ja, ich renne wieder gerade ein Haus. 01:11:45.000 --> 01:11:48.000 Und wir missten eigentlich, 01:11:48.000 --> 01:11:50.000 da ist so eine Rauferasertapete seit, 01:11:50.000 --> 01:11:52.000 weiß ich nicht, wie vielen Jahren. 01:11:52.000 --> 01:11:54.000 Und die missten jetzt hier in ein paar Stellen 01:11:54.000 --> 01:11:56.000 besser werden und die Frage war, 01:11:56.000 --> 01:11:58.000 ich habe dann jetzt Angebot bekommen von, 01:11:58.000 --> 01:12:00.000 wir bessern hier so ein bisschen Ausschaut, 01:12:00.000 --> 01:12:02.000 dann natürlich ziemlich schlecht aus, 01:12:02.000 --> 01:12:04.000 weil dann siehst du halt, dass das ausgebessert wurde. 01:12:04.000 --> 01:12:06.000 Ja oder wir machen die ganze Tapeteabfall, 01:12:06.000 --> 01:12:08.000 schwachst dann die Wand neu, 01:12:08.000 --> 01:12:10.000 und die Preise gegeneinander waren so, 01:12:10.000 --> 01:12:13.000 lasst mal Bootstrap einfach behalten. 01:12:13.000 --> 01:12:15.000 Ja, genau so. 01:12:19.000 --> 01:12:22.000 Ja genau, vielleicht kriegen wir ja nochmal 01:12:22.000 --> 01:12:24.000 ein bisschen Input von den Hörerinnen und Hörern. 01:12:24.000 --> 01:12:26.000 Das wäre auf jeden Fall cool, genau. 01:12:26.000 --> 01:12:28.000 Also wie sieht es bei euch aus mit Bootstrap 01:12:28.000 --> 01:12:31.000 und Co. und vielleicht JQuery? 01:12:31.000 --> 01:12:34.000 So, wo nutzt ihr das noch? 01:12:34.000 --> 01:12:37.000 Oder nutzt ihr das auch alle nicht mehr? 01:12:37.000 --> 01:12:40.000 Entschuldigung, Vanessa. 01:12:41.000 --> 01:12:43.000 Um im CSS-Bereich zu bleiben, 01:12:43.000 --> 01:12:45.000 haben wir als nächste Stichwort, 01:12:45.000 --> 01:12:47.000 die Container Queries, 01:12:47.000 --> 01:12:50.000 die ich bisher irgendwie einfach vor mich hin ignoriere. 01:12:50.000 --> 01:12:53.000 Deswegen übergebe ich gleich an euch beide das Wort, 01:12:53.000 --> 01:12:56.000 um uns was noch über die Container Queries zu erzählen. 01:12:59.000 --> 01:13:02.000 Ja, ich beschäft bin, du möchtest, kannst du gerne. 01:13:02.000 --> 01:13:04.000 Sind gut. 01:13:04.000 --> 01:13:06.000 Werden noch nicht von allen Browsern unterstützt, 01:13:06.000 --> 01:13:10.000 kann man progressiv verbessern schon einsetzen, 01:13:10.000 --> 01:13:12.000 würde ich sagen. 01:13:12.000 --> 01:13:16.000 Ja und sind im Prinzip so der 01:13:16.000 --> 01:13:19.000 oder einer von wenigen fehlenden Bausteinen, 01:13:19.000 --> 01:13:22.000 um wirklich Komponenten basiert zu entwickeln. 01:13:22.000 --> 01:13:25.000 Also indem man einfach, 01:13:25.000 --> 01:13:27.000 indem man Media Queries hat, 01:13:27.000 --> 01:13:31.000 die eben nicht mehr den Viewport auf den Viewport abzielen, 01:13:31.000 --> 01:13:35.000 sondern eben auf einen beliebigen Container, 01:13:35.000 --> 01:13:37.000 den man selber definieren kann, 01:13:37.000 --> 01:13:39.000 in der Regel eben quasi die, 01:13:39.000 --> 01:13:42.000 der Außencontainer einer Komponente. 01:13:42.000 --> 01:13:45.000 Genau, und da kann man halt schöne Sachen machen. 01:13:45.000 --> 01:13:47.000 Also was man bisher nur mit SVG ist, 01:13:47.000 --> 01:13:50.000 konnte, dass man eben sagt, hey, die Schriftgröße 01:13:50.000 --> 01:13:53.000 nutzt Container Query Width, 01:13:53.000 --> 01:13:56.000 zum Beispiel also als Einheit, 01:13:56.000 --> 01:13:59.000 was im Prinzip das Gleiche ist wie Viewport Width, 01:13:59.000 --> 01:14:02.000 und dann kann man den Container kleiner und größer machen 01:14:02.000 --> 01:14:05.000 und die Schrift wächst eben quasi in gleichen Maße. 01:14:05.000 --> 01:14:08.000 Das ging ja bislang in CSS nicht, 01:14:08.000 --> 01:14:11.000 das hat man sich ja immer gewünscht, 01:14:11.000 --> 01:14:15.000 dass man auch Schriften sozusagen mit ihren Elementen 01:14:15.000 --> 01:14:18.000 zusammen groß und klein skalieren kann. 01:14:18.000 --> 01:14:21.000 Und das geht eben zum Beispiel mit Container Queries. 01:14:21.000 --> 01:14:24.000 Genau, und interessant daran ist das, 01:14:24.000 --> 01:14:26.000 ich glaube in dem Fall der Firefox noch, 01:14:26.000 --> 01:14:28.000 dass der Browser ist, 01:14:28.000 --> 01:14:31.000 der sie nicht vollends implementiert hat, 01:14:31.000 --> 01:14:33.000 wenn ich mich recht in Sinne. 01:14:33.000 --> 01:14:37.000 Ja, also ich hatte mit denen gerade was Neues gebaut, 01:14:37.000 --> 01:14:41.000 und ich bin ja auf Windows, 01:14:41.000 --> 01:14:43.000 und deswegen, da mache ich, 01:14:43.000 --> 01:14:46.000 da kann ich halt nicht mal eben schnell WebKit testen, 01:14:46.000 --> 01:14:48.000 aber CanIuse hat halt gesagt, 01:14:48.000 --> 01:14:51.000 so, hey, hier alles cool bei WebKit läuft, 01:14:51.000 --> 01:14:55.000 und genau, dann habe ich aber Feedback bekommen, 01:14:55.000 --> 01:14:59.000 dass dem nicht so sei, also dass ich da und bin nicht zu selbstsicher war, 01:14:59.000 --> 01:15:03.000 also zumindest was die Container Query Units angeht, 01:15:03.000 --> 01:15:05.000 das hat der noch nicht unterstützt, 01:15:05.000 --> 01:15:09.000 aber genau, also es im Prinzip kommt, 01:15:09.000 --> 01:15:12.000 und ich glaube, es ist auch Teil von diesem Interop-Set, 01:15:12.000 --> 01:15:14.000 also quasi von diesen Dingen, 01:15:14.000 --> 01:15:16.000 wo sich alle Browser-Ersteller geeinigt haben, 01:15:16.000 --> 01:15:20.000 so, hey, im Jahr 2022 wollen wir das irgendwie noch auf die Straße bringen, 01:15:20.000 --> 01:15:23.000 genauso wie Subgrid, glaube ich, und so was. 01:15:23.000 --> 01:15:26.000 Also genau, kann man sich auf jeden Fall mit befassen, 01:15:26.000 --> 01:15:28.000 und wahrscheinlich kommt im nächsten Jahr 01:15:28.000 --> 01:15:31.000 noch die Style Queries, also da kann man dann quasi sagen, 01:15:31.000 --> 01:15:34.000 so, wenn ich in einem Element stecke, 01:15:34.000 --> 01:15:36.000 dass ein dunklen Hintergrund, 01:15:36.000 --> 01:15:40.000 also das, keine Ahnung, vielleicht ein schwarzen Hintergrund habe, 01:15:40.000 --> 01:15:42.000 dann bitte macht die Farbe weiß, 01:15:42.000 --> 01:15:46.000 dann kann das eben dieses Element selber auslösen, 01:15:46.000 --> 01:15:50.000 und man muss nicht mehr irgendwie mit Custom Properties arbeiten, 01:15:50.000 --> 01:15:52.000 oder man muss auch nicht irgendwie 01:15:52.000 --> 01:15:54.000 irgendeine Art von Prop Drilling 01:15:54.000 --> 01:15:58.000 oder irgendwie extra Style schreiben, genau. 01:15:58.000 --> 01:16:01.000 Aber da weiß ich noch nicht genau, also ich schätze mal, 01:16:01.000 --> 01:16:04.000 da können wir uns ja einfach für nächstes Jahr um die Zeit verabreden, 01:16:04.000 --> 01:16:06.000 dann gefühlt, würde ich sagen, 01:16:06.000 --> 01:16:10.000 es wäre das die Zeit, wo wir dann mit den Style Queries auch arbeiten können. 01:16:10.000 --> 01:16:13.000 Ja, ich hatte gerade heute dazu einen Blogbeitrag gelesen 01:16:13.000 --> 01:16:17.000 zu den Style Queries und dachte so, Mensch, das ist ja richtig geil. 01:16:17.000 --> 01:16:20.000 Also das löst so viel Probleme, so sofort, wo ich dachte, 01:16:20.000 --> 01:16:22.000 ja, bei den Container Queries dachte ich schon, 01:16:22.000 --> 01:16:25.000 und ich glaube, das Thema Container Queries beschäftigt uns ja auch 01:16:25.000 --> 01:16:31.000 schon mindestens seit 2018, 19, weiß ich nicht, so gefühlt, länger sogar noch, ja. 01:16:31.000 --> 01:16:35.000 Also eigentlich, seit es Media Queries gibt, hat man eigentlich das Bedürfnis irgendwie, 01:16:35.000 --> 01:16:38.000 dass man halt auch auf die Breite von dem Element, also von Elementen 01:16:38.000 --> 01:16:41.000 halt reagieren kann und nicht nur auf die Gesamtbreite des Bildschirms. 01:16:41.000 --> 01:16:46.000 Und von daher finde ich das ein mega, mega cooles Ding, 01:16:46.000 --> 01:16:51.000 dass man halt dementsprechend mit diesen Container Queries halt 01:16:51.000 --> 01:16:55.000 dieses Problem lösen kann bzw. die Style Queries bauen ja auf die Container Queries dann auf, ja. 01:16:55.000 --> 01:16:59.000 Auch die Container Queries gehen ja nur auf die Breite von den Elementen, also nur, ja. 01:16:59.000 --> 01:17:03.000 Aber dann ist es sehr wirklich so, dass man sagt, okay, wie du schon gesagt hast, 01:17:03.000 --> 01:17:10.000 ich reagiere halt wirklich auf einzelne Properties quasi, die da definiert sind. 01:17:10.000 --> 01:17:15.000 Und von daher bin ich echt gespannt, wann das überall einsetzbar ist. 01:17:15.000 --> 01:17:19.000 Ich hatte mir am Freitag, ich bin unter anderem auch als Trainer bei Coding Bootcamps Europe 01:17:19.000 --> 01:17:23.000 und wir machen Freitags immer so kleine, also wir lassen unsere Teilnehmenden 01:17:23.000 --> 01:17:25.000 immer so kleine Gruppen einteilen. 01:17:25.000 --> 01:17:28.000 Und ich hatte den Container Queries aufgeschrieben, wir haben für eine Gruppe, 01:17:28.000 --> 01:17:30.000 dass sie jetzt eine halbe Stunde recherchieren sollen 01:17:30.000 --> 01:17:33.000 und das dann dann präsentieren sollen, was das denn eigentlich ist. 01:17:33.000 --> 01:17:36.000 Und ich weiß nur, als ich die Gruppe besucht hatte, die gesagt haben so, 01:17:36.000 --> 01:17:39.000 ja, wir haben verstanden, was es ist, aber wir wissen noch nicht für, was es gut ist. 01:17:39.000 --> 01:17:41.000 Und dann war die so, dann habt ihr noch nicht gut genug recherchiert. 01:17:41.000 --> 01:17:45.000 Und am Ende saßen sie da mit strahlenden Augen und meinten so, das ist ja voll cool, 01:17:45.000 --> 01:17:48.000 das löst so und so viel Probleme. 01:17:48.000 --> 01:17:49.000 Ja. 01:17:49.000 --> 01:17:51.000 Definitiv. 01:17:53.000 --> 01:17:59.000 Ich glaube, also es gibt ja so verschiedene Dinge, wie zum Beispiel 01:17:59.000 --> 01:18:04.000 das native Image Lazy Loading, das quasi intern auf den gleichen Codefahrt 01:18:04.000 --> 01:18:07.000 aufsetzt wie der Intersection Observer. 01:18:07.000 --> 01:18:11.000 Und bei den Container Queries ist es, glaube ich, der Resize Observer, 01:18:11.000 --> 01:18:13.000 der da unten drunter benutzt wird. 01:18:13.000 --> 01:18:18.000 Und der ist ja quasi, der ist ja abgesichert gegen so einen Endless Loop. 01:18:18.000 --> 01:18:24.000 Also es ist quasi, wenn Container kleiner als X, dann macht Kind größer als, 01:18:24.000 --> 01:18:27.000 dann wird der Container aber wieder breiter, dann ist das ja quasi wieder aufgehoben 01:18:27.000 --> 01:18:32.000 und so genauso der Resize Observer hat ja da quasi so eine gewisse Art, 01:18:32.000 --> 01:18:34.000 wie er das Dom durchläuft. 01:18:34.000 --> 01:18:39.000 Und dann wird es gepainted und dann es werden keine Loops erzeugt. 01:18:39.000 --> 01:18:43.000 Und da ist das Witzige, dass man das tatsächlich bei den Container Queries 01:18:43.000 --> 01:18:49.000 auch beobachten kann, dass man, dass die quasi manchmal ein Frame brauchen, 01:18:49.000 --> 01:18:54.000 bis der Resize Observer dann greift und dann schaltet das um. 01:18:54.000 --> 01:18:57.000 Also das ist ganz hitzig. 01:18:57.000 --> 01:18:59.000 Ja, absolut genau. 01:18:59.000 --> 01:19:03.000 Also auch da, man redet immer vom CSS, aber es hängt ja viel, viel mehr davon ab. 01:19:03.000 --> 01:19:07.000 Also es ist ja einfach das Gesamtkonstrukt. 01:19:07.000 --> 01:19:11.000 Es ist ja meistens nie nur Java, es gibt oder nie nur das CSS, 01:19:11.000 --> 01:19:15.000 wenn es um, ja, ich sage mal, gerade um das Layout an sich geht, 01:19:15.000 --> 01:19:18.000 um die App Shell oder um die einzelnen Elemente innerhalb der App Shell, 01:19:18.000 --> 01:19:20.000 die die Container dann darstellen. 01:19:20.000 --> 01:19:24.000 Und das ist interessant, dass einem das eine mit dem anderen einhergeht, 01:19:24.000 --> 01:19:27.000 man dann vielleicht auch verstehen kann, warum vielleicht 01:19:27.000 --> 01:19:31.000 manche Browser das nicht vollen implementiert haben, 01:19:31.000 --> 01:19:34.000 aber warum es irgendwie Bugs gibt oder Probleme gibt an der Stelle. 01:19:34.000 --> 01:19:36.000 Ja, ist schon flex. 01:19:40.000 --> 01:19:42.000 Genau. 01:19:42.000 --> 01:19:49.000 Ja, dann haben wir hier als nächstes Stichwort stehen Playwright. 01:19:49.000 --> 01:19:52.000 Und zwar, hast du das hier rein gestellt, Joe? 01:19:52.000 --> 01:19:55.000 Und warum denkst du, dass Playwright im nächsten Jahr 01:19:55.000 --> 01:19:58.000 eine wichtige Rolle spielt? 01:19:58.000 --> 01:20:03.000 Insofern, dass Debbie O'Brien gefühlt auf jeder Konferenz darüber spricht. 01:20:03.000 --> 01:20:06.000 So, das ist das eine Ding. 01:20:06.000 --> 01:20:09.000 Auf der anderen Seite ist es so, dass mich das Produkt an sich 01:20:09.000 --> 01:20:14.000 auch mehr überzeugt hat als Cypress, muss ich ehrlich sagen. 01:20:14.000 --> 01:20:16.000 Also ich sehe da ein hohes Potenzial. 01:20:16.000 --> 01:20:18.000 Also zum einen ist es gut, dass es ein Konkurrenzprodukt gibt zu Cypress. 01:20:18.000 --> 01:20:21.000 Da haben wir dieses Histoire-Storybook-Ding. 01:20:21.000 --> 01:20:25.000 Also Cypress ist im Fall Storybook, wenn man so möchte. 01:20:25.000 --> 01:20:29.000 Und Playwright bringt aber auch neue Features einfach mit. 01:20:29.000 --> 01:20:32.000 Also auch dieses Video-Recording, was da zum Beispiel mit dabei ist. 01:20:32.000 --> 01:20:36.000 Die Art und Weise, wie man in Playwright diese Tests schreibt und so. 01:20:36.000 --> 01:20:39.000 Ich finde das alles ein bisschen intuitiver an der Stelle. 01:20:39.000 --> 01:20:41.000 Also es macht schon Spaß, das einzusetzen. 01:20:41.000 --> 01:20:43.000 Und ich habe manchmal ein bisschen das Gefühl, 01:20:43.000 --> 01:20:46.000 dass Cypress sich ein bisschen verrannt hat. 01:20:46.000 --> 01:20:48.000 Wollte ich nicht sagen. 01:20:48.000 --> 01:20:50.000 Aber die haben halt sehr viel nochmal versucht, 01:20:50.000 --> 01:20:53.000 einen zweiten Zweig aufzumachen mit diesen Component-Tests auch. 01:20:53.000 --> 01:20:57.000 Die gefühlt immer noch nicht so richtig rundlaufen, 01:20:57.000 --> 01:20:59.000 zumindest meine Erfahrung. 01:20:59.000 --> 01:21:02.000 Und von daher finde ich einfach, 01:21:02.000 --> 01:21:05.000 dass Playwright halt so ein paar Dinge besser macht. 01:21:05.000 --> 01:21:07.000 Nicht gravierend. 01:21:07.000 --> 01:21:11.000 Also man könnte trotzdem das Gleiche auch mit Cypress lösen. 01:21:11.000 --> 01:21:14.000 Aber es gibt so ein paar Features, wie zum Beispiel dieses Video-Recording, 01:21:14.000 --> 01:21:16.000 was da mit drin ist. 01:21:16.000 --> 01:21:18.000 Und die ganze Haptik und alles drum und dran. 01:21:18.000 --> 01:21:20.000 Und auch die Art und Weise, wie man die Tests schreibt. 01:21:20.000 --> 01:21:22.000 Das fühlt sich fluffiger an. 01:21:22.000 --> 01:21:27.000 Das ist vielleicht einfach nur meine persönliche Meinung an der Stelle, 01:21:27.000 --> 01:21:31.000 die bei mir einfach ein gutes Gefühl gemacht hat. 01:21:31.000 --> 01:21:34.000 Das heißt nicht, dass ich bei Cypress kein gutes Gefühl habe, 01:21:34.000 --> 01:21:37.000 aber das war halt schon so, ja. 01:21:37.000 --> 01:21:39.000 Also ich mag gerne Vanillemilchshake, 01:21:39.000 --> 01:21:42.000 aber der Schoko schmeckt ja eigentlich auch gar nicht so schlecht. 01:21:42.000 --> 01:21:46.000 Und hat noch mal andere interessante Aspekte in der Geschmacksnote, 01:21:46.000 --> 01:21:48.000 wenn man das so vergleichen möchte. 01:21:48.000 --> 01:21:51.000 Ich mag gar keine Milchshakes, aber egal. 01:21:51.000 --> 01:21:54.000 Aber diese Richtung geht das so ein bisschen. 01:21:54.000 --> 01:21:56.000 Ja, ist ja auch immer gut. 01:21:56.000 --> 01:22:00.000 Das führt ja dann auch einfach zu Innovationen auf der anderen Seite. 01:22:00.000 --> 01:22:06.000 Wenn die Cypress-Leute sehen, okay, hier Playwright läuft uns in den Bereich davon, 01:22:06.000 --> 01:22:11.000 dann vielleicht sollten wir uns da auch ein bisschen stärker wieder drauf ausrichten. 01:22:11.000 --> 01:22:14.000 Also ja, cool, genau. 01:22:14.000 --> 01:22:20.000 Ja, die Testingwelt finde ich zurzeit vergleichbar fast mit der Framework-Welt. 01:22:20.000 --> 01:22:24.000 Eigentlich sind wir sehr verwöhnt, dass wir so viel Auswahl haben. 01:22:24.000 --> 01:22:28.000 Aber jetzt haben wir wieder auch auf der anderen Seite das Problem, 01:22:28.000 --> 01:22:30.000 wie entscheidet man sich jetzt dafür? 01:22:30.000 --> 01:22:33.000 Also kann mir vorstellen, man wird irgendwann niemals testen, 01:22:33.000 --> 01:22:37.000 weil man sich einfach niemals zwischen Cypress und Playwright entscheiden kann. 01:22:37.000 --> 01:22:42.000 Und sobald man sich aber für einen Tool entschieden hat, 01:22:42.000 --> 01:22:45.000 dann kommt der Punkt, ja, die battlen sich dann so ein bisschen gegenseitig, 01:22:45.000 --> 01:22:51.000 die lassen sich gegenseitig voneinander inspirieren und liefern ja dann meistens auch die Features nach. 01:22:51.000 --> 01:22:56.000 Was jetzt aber auch dazu führt, wir könnten jetzt V-Test einsetzen oder V-Test, 01:22:56.000 --> 01:22:58.000 weil das ist so schön schnell. 01:22:58.000 --> 01:23:02.000 Und eigentlich kann das ja dann auch Components auch mit testen 01:23:02.000 --> 01:23:06.000 und weiß, was vielleicht können die in drei Jahren auch noch end-to-end testen. 01:23:06.000 --> 01:23:09.000 Mit Cypress ist ein anderer Ansatz, es kam so von end-to-end-testing, 01:23:09.000 --> 01:23:12.000 aber eigentlich können wir jetzt auch Components damit testen. 01:23:12.000 --> 01:23:17.000 Playwright, ja, doch auch end-to-end. 01:23:17.000 --> 01:23:19.000 Ich weiß gar nicht, ob man Components auch noch mit abtesten kann. 01:23:19.000 --> 01:23:22.000 Wenn nicht, dann steht es wahrscheinlich auch auf der Roadmap. 01:23:22.000 --> 01:23:25.000 Und ja, da ist das eigentlich wieder eine entscheidend. 01:23:25.000 --> 01:23:27.000 Aber Playwright war ja auch kein Testing-Tool zu beginnen, oder? 01:23:27.000 --> 01:23:32.000 War das nicht einfach ein quasi, wie heißt denn hier der ferngesteuerte Headless Chrome? 01:23:32.000 --> 01:23:36.000 Ja, und das war dann Papetier, das war dann quasi erstmal ein zweiter Papetier 01:23:36.000 --> 01:23:45.000 von Microsoft quasi, aber mit so Adaptern für Firefox und WebKit noch zusätzlich. 01:23:45.000 --> 01:23:49.000 Genau, das was Papetier nachgezogen hat irgendwann quasi auch nochmal dann, ne? 01:23:49.000 --> 01:23:53.000 Also ursprünglich ging das so in diese, ich glaube, sobald, 01:23:53.000 --> 01:23:57.000 ich weiß es nicht 100% nicht, aber ich glaube auch, so was gehört zu haben, auf jeden Fall. 01:23:57.000 --> 01:24:03.000 Und deswegen ist es schon ganz interessant zu sehen, wie sich das Produkt weiterentwickelt. 01:24:03.000 --> 01:24:06.000 Es gab da wahrscheinlich auch Interessen natürlich wieder von Microsoft, 01:24:06.000 --> 01:24:09.000 auch im Testing-Bereich unterwegs zu sein. 01:24:09.000 --> 01:24:13.000 Ich kann nur sagen, ich weiß es vom ehemaligen Kollegen von mir, 01:24:13.000 --> 01:24:16.000 der hat eine Component-Library gebaut mit Web-Components 01:24:16.000 --> 01:24:21.000 und der hatte damals schon mit Playwright diese Web-Components getestet. 01:24:21.000 --> 01:24:24.000 Also er hat dann wirklich jede einzelne Web-Component getestet, 01:24:24.000 --> 01:24:29.000 was er gesagt hat so, naja, das ist eigentlich ein echter Component-Test, wenn du es so willst. 01:24:29.000 --> 01:24:35.000 Und das hat er dann halt auch Headless gemacht, wie gesagt, also im Headless-Mode von Playwright. 01:24:35.000 --> 01:24:38.000 Und das fand ich schon damals ziemlich cool, 01:24:38.000 --> 01:24:41.000 hätte man wahrscheinlich auch mit Cypress bauen können. 01:24:41.000 --> 01:24:45.000 Aber es sah ein bisschen, damals schon geschmeidiger aus, 01:24:45.000 --> 01:24:51.000 damals ist jetzt auch schon übertrieben, ich glaube vom Jahr oder so. 01:24:51.000 --> 01:24:56.000 Ja, aber auf jeden Fall cool, dass man sowas hat. 01:24:56.000 --> 01:24:59.000 Und ich glaube, Cypress kann auch Cross Browser, wie war das? 01:24:59.000 --> 01:25:01.000 Also das geht schon eine ganze Weile, ne? 01:25:01.000 --> 01:25:02.000 Genau. 01:25:02.000 --> 01:25:07.000 Früher war das ja, glaube ich, auch wahrscheinlich, weil die auf Puppet hier gesetzt haben. 01:25:07.000 --> 01:25:11.000 Jetzt setzen die selber auch wahrscheinlich auf Playwright und unter. 01:25:11.000 --> 01:25:12.000 Wie machen die das? 01:25:12.000 --> 01:25:14.000 Cypress, weiß ich nicht. 01:25:14.000 --> 01:25:17.000 Also ich weiß, dass jetzt die ganze Idee kommt ja von Dalek.js irgendwie. 01:25:17.000 --> 01:25:22.000 Also Dalek.js war so die erste Geschichte, so Grüße an die Dr. Huferz. 01:25:22.000 --> 01:25:24.000 Das war hier von Sebastian Golasch das Ding, oder? 01:25:24.000 --> 01:25:27.000 Das kann sein, da weißt du mehr als ich, von wem das genau war. 01:25:27.000 --> 01:25:31.000 Ich weiß nur, dass, ich glaube, Cypress darauf basiert oder zumindest inspiriert ist. 01:25:31.000 --> 01:25:33.000 Und es gibt ja noch Testcafé. 01:25:33.000 --> 01:25:38.000 Testcafé ist ja auch noch so ein Produkt, was ich sage mir immer so, ja, alle reden von Cypress, 01:25:38.000 --> 01:25:42.000 aber Testcafé kann eigentlich das Gleiche und vielleicht sogar noch ein bisschen mehr. 01:25:42.000 --> 01:25:49.000 Von daher weiß ich nicht, ob Dalek.js jetzt, ob Testcafé vor Cypress da war oder umgekehrt. 01:25:49.000 --> 01:25:53.000 Auf jeden Fall, die Technik darunter ist, basieren, glaube ich, inspiriert von Dalek.js. 01:25:53.000 --> 01:25:57.000 Vielleicht sogar von dem Macher, den du gerade genannt hast. 01:25:57.000 --> 01:26:01.000 Ja, das war der ASCII-Disco. 01:26:01.000 --> 01:26:10.000 Der war früher ganz, der war vor, also vielleicht so vor 10, 9, 8 Jahren war der regelmäßig Gast hier bei uns im Podcast. 01:26:10.000 --> 01:26:16.000 Ja, okay. Dann solltet ihr nochmal einladen und fragen, was ist eigentlich aus Dalek.js geworden? 01:26:16.000 --> 01:26:24.000 Ja, ich glaube, da hat sich, also genau, er hat das dann, ich erinnere mich, dass er es damals eben aufgegeben hatte. 01:26:24.000 --> 01:26:31.000 Weil einfach bessere Alternativen da waren und er hat das eben auch nebenher gemacht. 01:26:31.000 --> 01:26:40.000 Mit dem Ordnee, der auch hier mal bei uns im Podcast caused war. Genau. 01:26:40.000 --> 01:26:47.000 Da hat man dann irgendwann keine Schnitte gegen ganze Teams, die das dann angehen. 01:26:47.000 --> 01:26:54.000 Ja, cool. 01:26:54.000 --> 01:27:03.000 Genau, dann, das war das, war es zum Thema Testing, dann hast du noch hier als Stichworte Party Town und Webworker. 01:27:03.000 --> 01:27:09.000 Genau, da gibt es ja, das sind ja, glaube ich, die gleichen Macher, die auch das Quick Framework machen, oder? 01:27:09.000 --> 01:27:15.000 Ich glaube, wenn ich das richtig gesehen habe, ja, es ist so Party Town ist auch was, was ganz neu bei mir aufgeschlagen ist. 01:27:15.000 --> 01:27:20.000 Im Feed, die Woche so, also nicht die Woche, sondern letzte Woche. 01:27:20.000 --> 01:27:26.000 Und war so sehr erstaunter drüber. 01:27:26.000 --> 01:27:27.000 Also was heißt erstaunter? 01:27:27.000 --> 01:27:36.000 Aber ich habe sofort gesehen, so, jo, macht total Sinn, dass man halt, ich sage mal, den Main Threat erleichtert oder entlastet. 01:27:36.000 --> 01:27:44.000 Ist ja etwas, was man schon mit Service-Workern auch angefangen hatte, also diese ganzen Web-Worker-basierten Möglichkeiten, 01:27:44.000 --> 01:27:50.000 Service-Worker oder ich gebe da jetzt noch den Audio-Worker und so weiter und so fort, zu sagen, okay, mit Hilfe von Party Town 01:27:50.000 --> 01:27:55.000 kann ich halt JavaScript-Code-Auslagern in einen separaten Threat in so ein Web-Worker. 01:27:55.000 --> 01:27:58.000 Wenn man genau hinguckt, macht das Google ja auch schon längere Zeit mit Analytics. 01:27:58.000 --> 01:28:04.000 Ja, die haben ja auch, wenn sie ein Web-Worker nutzen können, ein Web-Worker am Laufen, wo dann das Tracking zum Beispiel drüberläuft 01:28:04.000 --> 01:28:07.000 und ausgelagert wird, um einfach den Main Threat fluffig zu halten. 01:28:07.000 --> 01:28:14.000 Und das passt natürlich in die Nische, die die Quick-Leute natürlich bedienen, Performance-Optimierung 01:28:14.000 --> 01:28:21.000 und von daher sehe ich da ein ganz großes Potenzial für 2023, dass Party Town interessant sein kann 01:28:21.000 --> 01:28:30.000 für größere Applikationen, um einfach eine Entlastung auf den Main Threat des aktuellen Tabs zu bringen, wo die Applikation drinnen. 01:28:30.000 --> 01:28:36.000 Ja, was halt bei Party Town, also ich habe damit schon rumgespielt, was bei Party Town cool ist, 01:28:36.000 --> 01:28:45.000 du kannst halt Third-Party da reinverbanden und zwar auch welche, die das Problem so Web-Worker cool, 01:28:45.000 --> 01:28:55.000 aber sobald eben Zugriff auf zum Beispiel, sagen wir mal, Local Storage oder Stom-Stadt finden, dann war es das. 01:28:55.000 --> 01:29:04.000 Dann ist die Party halt vorbei, dann ist nix mehr mit Party Town, weil das geht eben ja nur für Skripte, die im Main Threat laufen 01:29:04.000 --> 01:29:13.000 und die Macher von Party Town, die haben halt echt sehr clevere Ansätze wie die, also im Prinzip Proxen, 01:29:13.000 --> 01:29:22.000 die Zugriffe auf eben diese APIs, die es eigentlich nur im Main Threat gibt, Proxen, die quasi stellen, die bereit im Web-Worker. 01:29:22.000 --> 01:29:29.000 Und wenn halt ein Zugriff passiert, dann ist das Problem ja, so Web-Worker können ja nur Synchronen kommunizieren mit dem Main Threat, 01:29:29.000 --> 01:29:39.000 aber diese APIs sind ja alle Synchronen und die machen das dann so, die machen quasi so Fake-Agex-Calls, 01:29:39.000 --> 01:29:50.000 die Synchronen sind, also mit dem Sync an und dann gibt es einen Service-Worker, der quasi die abfängt 01:29:50.000 --> 01:29:57.000 und die dann, glaube ich, ein Kommandos umsetzt und dann irgendwann, wenn die beantwortet und dann kann das Skript weiterlaufen 01:29:57.000 --> 01:30:05.000 ganz neu gibt es dann noch quasi anstatt diesem Konzept, kann man auch mit so Atomics arbeiten, 01:30:05.000 --> 01:30:13.000 das sind dann so Mechaniken, wo man quasi Skripte blockieren kann, bis man sie dann wieder frei gibt 01:30:13.000 --> 01:30:21.000 und so kann man quasi auch Synchronen arbeiten mit APIs, obwohl man eigentlich einen Asynchronen Bus hat. 01:30:21.000 --> 01:30:28.000 Genau, das ist halt echt cool, ist aber ganz bisschen schwierig auch das zu konfigurieren, also nicht jetzt ganz schlimm, 01:30:28.000 --> 01:30:32.000 aber es ist schon nicht so schnipp schnapp. 01:30:32.000 --> 01:30:38.000 Aber es ist ein cooler Ansatz und ganz toll, vor allem wenn man eben Third-Party einbauen muss, 01:30:38.000 --> 01:30:43.000 weil der Chef das gerne so hätte, aber man die Seite trotzdem schnell haben will. 01:30:43.000 --> 01:30:51.000 Diese Ansatz des Sandboxings an der Stelle, das ist halt wirklich ein Sandbox und da passiert halt nichts. 01:30:51.000 --> 01:30:57.000 Diese Situation ist ja aus Sicherheitsaspekten sehr, sehr wichtig, gerade bei Third-Party. 01:30:57.000 --> 01:31:04.000 Da kommen halt wieder diese Shadow-Dom eigentlich ins Spiel, was dafür mal angedacht war oder immer noch ist, 01:31:04.000 --> 01:31:11.000 wo man auch gesagt hat, okay, isolier das vom Rest der Seite, deswegen bin ich mal gespannt, was dabei Party-Town kommt 01:31:11.000 --> 01:31:18.000 und ich bin mir ziemlich sicher, dass 2023 da einfach noch was kommen wird, weil es einfach sehr vielversprechend aussieht. 01:31:18.000 --> 01:31:22.000 Deswegen habe ich es auch in die Liste aufgenommen. 01:31:22.000 --> 01:31:32.000 Ne, sollte man sich auf jeden Fall angucken, aber Achtung, es ist schon ein bisschen tricky, das an Start zu bringen. 01:31:32.000 --> 01:31:38.000 Können ja mal eure Zuhörer und Zuhörerinnen berichten, wenn sie es ausprobiert haben. 01:31:38.000 --> 01:31:43.000 Ja, genau. Ja, bei mir war es, ich hatte, ich weiß gar nicht mehr, was das war, was ich da einsperren wollte 01:31:43.000 --> 01:31:50.000 und genau, das hat im Grunde auch geklappt, es hat nur trotzdem, es hat dann einfach nicht mehr funktioniert 01:31:50.000 --> 01:31:54.000 und ich konnte es dann auch nicht debacken. 01:31:54.000 --> 01:32:00.000 Genau, und damit habe ich dann sozusagen dieses Forschungsexperiment erstmal Adaktor gelegt und gesagt, 01:32:00.000 --> 01:32:06.000 ich glaube, das machen wir jetzt erstmal, verfolgen wir gerade mal nicht weiter. 01:32:06.000 --> 01:32:09.000 Genau. Ja, aber das ist diese Goldgräberstimmung so. 01:32:09.000 --> 01:32:12.000 Wow, das ist voll geil. Ja, ich probiere es aus. 01:32:12.000 --> 01:32:17.000 Ja, warte mal. Oh, nee. 01:32:17.000 --> 01:32:22.000 Ja, was die halt haben, ist halt die einmal so Geiz für bestimmte Third-Party-Sachen 01:32:22.000 --> 01:32:28.000 und wenn man die benutzt, super, aber wenn man eben nicht genau diese Sachen nimmt, also wenn man jetzt nicht Google Analytics nimmt, 01:32:28.000 --> 01:32:32.000 sondern Pivot oder Matomo oder sowas und die einsperren will, 01:32:32.000 --> 01:32:38.000 dann ist man eben auf sich allein gestellt und muss eben gucken, ob das klappt. 01:32:38.000 --> 01:32:44.000 Und ich glaube, dass es auch besser wird, du hast ja schon gesagt, so gute Doku ist immer hilfreich, 01:32:44.000 --> 01:32:49.000 wenn es eben dann so Recipes dann gibt für diese ganzen verschiedenen Pakete. 01:32:49.000 --> 01:32:56.000 Also das fehlte dem, ist aber auch schon einige Monate her, dass ich das gemacht habe, das kann sich jetzt schon wieder geändert haben. 01:32:56.000 --> 01:33:02.000 Genau. Ja, spannend. 01:33:02.000 --> 01:33:08.000 Du hast noch Monoripos, siehst du, auch als ein Ding oder ein Trend. 01:33:08.000 --> 01:33:12.000 Ja, aber da geht es ein bisschen um das Thema Geschwindigkeit, Komplexität 01:33:12.000 --> 01:33:22.000 und ich glaube, der große, ich nenne es mal der große Learner, Crash, der da war, war das überhaupt letztes Jahr oder war das schon ja davor? 01:33:22.000 --> 01:33:27.000 Das war das von Crash? Ja, der Crash war jetzt, dass ich mit Learner nicht mehr wirklich ge-maintained wurde. 01:33:27.000 --> 01:33:35.000 Auf einmal war das Projekt, also Learner wurde ja für Mono, war ja mitunter die größte, bekannteste Lösung für Mono Repositories, 01:33:35.000 --> 01:33:41.000 mit Jahren Workspaces so, in diesem Segment so unterwegs. 01:33:41.000 --> 01:33:47.000 Und ja, und auf einmal hieß es so, ja, es maintained niemand mehr Learner. 01:33:47.000 --> 01:33:54.000 Und dann alle so, und jetzt, und dann weiß ich noch, dann ging es los, wie viel Tweets kamen, wie viel Blockpost kamen, 01:33:54.000 --> 01:34:03.000 das sind die besten Alternativen für Learner, um ehrlich zu sein, weil Learner zwar die bekannteste Lösung, aber ich fand sie noch nie wirklich gut. 01:34:03.000 --> 01:34:09.000 Also, es war schon ein bisschen sperrig, also, wie hat er mit Learner schon mal gearbeitet, weiß, glaube ich, was ich meine gerade so. 01:34:09.000 --> 01:34:13.000 Es hat funktioniert, man konnte das mit umsetzen, es gab sehr viele Anleitungen und Tutorials, 01:34:13.000 --> 01:34:17.000 aber so wirklich geil war es eigentlich nicht unbedingt. 01:34:17.000 --> 01:34:24.000 Gut, der große Aufschrei, niemand maintained es mehr, niemand, ich weiß nicht, ob das was Maintaining von der Company, 01:34:24.000 --> 01:34:29.000 ich weiß es nicht mehr, was da, irgendwas war da auf jeden Fall gewesen, wenn ich mich da recht erinner. 01:34:29.000 --> 01:34:34.000 Und dann hat man sich Alternativen angeguckt und gedacht, ja, was mache ich denn jetzt so. 01:34:34.000 --> 01:34:40.000 Und dann haben sich ja quasi Leute gefunden, die das jetzt maintainen, es gibt sogar mittlerweile hellende Webseite von Learner, 01:34:40.000 --> 01:34:44.000 also, die gab es ja vorher nicht, es gab ja nur diese Dokumentationen auf GitHub-Seiten. 01:34:44.000 --> 01:34:53.000 Und, naja, daraus resultiert war, dass man dementsprechend jetzt neue Alternativen hat, die auch wirklich Alternativen sind. 01:34:53.000 --> 01:35:01.000 Also, die dementsprechend auch Einsatz finden und auch neue innovative Ansätze, wie zum Beispiel PNPM, 01:35:01.000 --> 01:35:08.000 das heißt also, PNPM ist ja eigentlich eine Alternative für Node Package Manager, ist aber auch für Mono-Reposter. 01:35:08.000 --> 01:35:10.000 Also, es ist quasi eine duale Lösung, wenn man so möchte. 01:35:10.000 --> 01:35:21.000 Es löst halt nicht nur das Problem mit den, also eine schnellere Möglichkeit für Node Packages zu managen und zu installieren und zu verweiten, 01:35:21.000 --> 01:35:24.000 sondern es löst halt diese Problematik auch mit den Mono-Repos. 01:35:24.000 --> 01:35:29.000 Das macht Jahren auch mit den Workspaces, ja, okay, könnte auch mit NPM gelöst werden. 01:35:29.000 --> 01:35:34.000 Aber bei PNPM ist das so ein bisschen innovativer, würde ich fast schon sagen. 01:35:34.000 --> 01:35:37.000 Es wird auch von vielen Leuten mittlerweile empfohlen. 01:35:37.000 --> 01:35:43.000 Ich glaube auch in der ViewJS-Dokumentation, aber ich glaube auch bei Swelt habe ich es schon öfter gesehen, 01:35:43.000 --> 01:35:46.000 dass man sagt, okay, nutze lieber PNPM. 01:35:46.000 --> 01:35:51.000 Und da sich halt einen ganz großen Fokus darauf, dass 2023 da ein Trend entsteht, 01:35:51.000 --> 01:35:57.000 dass es Richtung PNPM bei Mono-Repos gehen wird, oder auch die Leute von Vercel, 01:35:57.000 --> 01:36:03.000 da sind sie wieder mit dem Turbo-Repo, ja, es gibt nicht nur das Turbo Pack, sondern auch Turbo-Repo. 01:36:03.000 --> 01:36:10.000 Und auch das ist wieder ein Rust langgeschrieben. Also da sehe ich ganz große Alternativen. 01:36:10.000 --> 01:36:16.000 Also wer gerade auf der Suche ist oder der offen ist für Alternativen oder wer ein Mono-Repo bauen möchte, 01:36:16.000 --> 01:36:22.000 sollte sich auf jeden Fall 2023 PNPM und Turbo-Repo angeschaut haben. 01:36:22.000 --> 01:36:32.000 Oder Rush Stack von Microsoft Rush Stack würde halt dementsprechend auch da nochmal eine gute Alternativität. 01:36:32.000 --> 01:36:35.000 Und auch noch irgendein von Facebook jetzt gerade veröffentlicht worden? 01:36:35.000 --> 01:36:39.000 Es ist 100%ig auch eines von Facebook veröffentlicht worden. 01:36:39.000 --> 01:36:47.000 Ich glaube, ich habe es auch gehört. Es gibt ja noch Basel von Google, aber Basel ist wieder, es gibt auch noch NX. 01:36:47.000 --> 01:36:54.000 Es gibt ja diese Tools, die ja noch mehr machen, als nur diese reine Mono-Repo-Lösung. 01:36:54.000 --> 01:37:01.000 Also ich glaube, da ist noch nicht das letzte Wort gesprochen, aber ich glaube 2023 wird es da nochmal neue Trends geben. 01:37:01.000 --> 01:37:05.000 Gerade Turbo-Repo sieht sehr vielversprechend aus, muss ich sagen, an der Stelle. 01:37:05.000 --> 01:37:07.000 Was können wir denn leuten? 01:37:07.000 --> 01:37:13.000 Das erklärt ja oder beantwortet auch nochmal Vanessas Frage, ob man lieber mehrere Repos oder eins haben sollte. 01:37:13.000 --> 01:37:17.000 Also die Tendenz scheint die Einrichtung ein großes Repo zu gehen. 01:37:17.000 --> 01:37:19.000 Ja. 01:37:19.000 --> 01:37:26.000 Was würde man denn leuten dann zu NPM und Dialen empfehlen? Kann ich die da nicht mehr verwenden? 01:37:26.000 --> 01:37:29.000 Oder muss ich jetzt NPNPM verwenden? 01:37:29.000 --> 01:37:35.000 Also du kannst weiterhin, das ist ja das Schöne, du kannst ja selbst entscheiden, was du am Ende verwenden möchtest. 01:37:35.000 --> 01:37:42.000 Ob du Yarn oder ob du NPNPM, also ich persönlich nutze auch immer noch NPNPM in den meisten Projekten. 01:37:42.000 --> 01:37:46.000 Das hängt immer ganz davon ab, worauf man sich geeinigt hat. 01:37:46.000 --> 01:37:50.000 Und was gerade wirklich sinnvoll vom Einsatz ist, für mich macht das nicht viel Unterschied. 01:37:50.000 --> 01:37:55.000 Also Performance-Technik diese Nummer und die einen haben die Orders und die anderen haben es nicht. 01:37:55.000 --> 01:38:02.000 Also der eine hat das Feature, der andere hat das Feature. Also ich glaube, da ist man auf einen relativ ausgeglichenen Level. 01:38:02.000 --> 01:38:07.000 Aber bei PNPM muss ich sagen, das ist wirklich schneller und es fühlt sich auch wirklich gut an. 01:38:07.000 --> 01:38:10.000 Also ich würde einfach mal empfehlen, das auszuprobieren. 01:38:10.000 --> 01:38:15.000 Und ich sage mal so, man muss es ja nicht konsequent erst mal nutzen, man kann es erst mal ausprobieren. 01:38:15.000 --> 01:38:21.000 Das kann ja parallel zu NPNPM laufen, viele haben Yarn und NPNPM installiert. 01:38:21.000 --> 01:38:27.000 Aus den Gründen, je nachdem welchem Projekt man gerade ist und ob halt diese Yarn Workspaces benutzt werden oder nicht. 01:38:27.000 --> 01:38:30.000 Wobei NPNPM ja auch Workspaces hat. 01:38:30.000 --> 01:38:38.000 Genau und deswegen dementsprechend würde ich sagen, PNPM wird man jetzt vielleicht aussehen, 01:38:38.000 --> 01:38:41.000 dann muss man reingucken bei einem State-of-Java-Script. 01:38:41.000 --> 01:38:46.000 Da habe ich auch noch nicht reingeguckt, wie da die Tendenz 2022 schon war. 01:38:46.000 --> 01:38:51.000 Auf jeden Fall war PNPM, wenn ich mich in Sinne auch mit als Technologie aufgeführt. 01:38:51.000 --> 01:38:57.000 Und da sehe ich auf jeden Fall eine klare Tendenz nach oben an der Stelle. 01:38:57.000 --> 01:39:01.000 Und das ist auch wieder dieses Thema, was Vanessa fernmeinte. 01:39:01.000 --> 01:39:09.000 Das sind diese Probleme, die nichts mit der Framework-Lösung oder mit dem eigentlichen Tool zu tun haben, sondern mit dem Drum herum. 01:39:09.000 --> 01:39:17.000 Wie organisiere ich eigentlich meine Applikation, wie stelle ich Module oder einzelne Bausteine zur Verfügung? 01:39:17.000 --> 01:39:19.000 Eigentlich ist das die Schnittstelle. 01:39:19.000 --> 01:39:28.000 Das ist zumindest das Medium, was man nutzen kann, um Code-Strukturen zu scheren als Common Base. 01:39:28.000 --> 01:39:34.000 Und dann fehlt noch die Architektur dazwischen. Das ist halt das entscheidende Thema. 01:39:34.000 --> 01:39:45.000 Und deswegen, auch 2023 sind auf jeden Fall Monorepos, glaube ich, immer noch das gute Wahl im Gegensatz zu vielen einzelnen Repositories. 01:39:45.000 --> 01:39:51.000 Und dann hätten wir zum Abschluss noch einen Thema. 01:39:51.000 --> 01:39:58.000 Das haben wir also in der Vorbesprechung eigentlich noch spontan reingenommen, wo wir gesagt haben, hey, lasst uns das doch auch reinnehmen. 01:39:58.000 --> 01:40:06.000 Und zwar Code-Pilot, Console-Ninja und Chat-DPT. 01:40:06.000 --> 01:40:11.000 Die KI ist auf dem Vomarsch. 01:40:11.000 --> 01:40:18.000 Und was würdest du sagen, wie können wir die uns zunutze machen? 01:40:18.000 --> 01:40:21.000 Oder macht sie sich uns zu nutzen? 01:40:21.000 --> 01:40:24.000 Oder ist es einen Kreislauf? 01:40:24.000 --> 01:40:30.000 Ja, müssen wir im Auge behalten, sagen wir es mal so. 01:40:30.000 --> 01:40:38.000 Ich glaube, jedes dieser Tools kann uns das Leben leichter machen. 01:40:38.000 --> 01:40:42.000 Aber mit großer Macht kommt auch große Verantwortung. 01:40:42.000 --> 01:40:57.000 Ja, bedeutet, wenn man einschätzen kann, fachlich gut einschätzen kann, ob das, was da rauskommt oder was einem vorgeschlagen wird, wirklich hilft, dann ist das eine super coole Sache. 01:40:57.000 --> 01:41:00.000 Ist es ein bisschen beängstigend? 01:41:00.000 --> 01:41:02.000 Ja, das auch. 01:41:02.000 --> 01:41:10.000 Ich persönlich bin bei Code-Pilot sehr positiv angetan, weil es wirklich eine gute Hilfe ist. 01:41:10.000 --> 01:41:16.000 Ja, ich nutze das jetzt mittlerweile, ich weiß auch von ein paar anderen Leuten, die das genutzt haben. 01:41:16.000 --> 01:41:20.000 Sag mal kurz, wie das funktioniert, nur so für die Hörer und die so nicht kennen? 01:41:20.000 --> 01:41:33.000 Bei Code-Pilot ist es so, dass es von GitHub ein Plug-in für eure IDE, JetBrains oder für euren Editor wie es Code, das könnt ihr euch installieren. 01:41:33.000 --> 01:41:40.000 Und das Ganze ist momentan, glaube ich, 60 Tage in einer Trial Version verfügbar. 01:41:40.000 --> 01:41:43.000 Das heißt, dann ist es erst mal kostenlos und danach kostet es, glaube ich, 10 Dollar-Monat. 01:41:43.000 --> 01:41:54.000 Und was das Ganze macht ist, wenn ihr anfängt zu coden, also ihr benennt eine Variable, wie zum Beispiel Count Something oder was, was ich, 01:41:54.000 --> 01:42:03.000 und euch wird daraufhin schon ein Code vorgeschlagen, oder ihr benennt, jetzt sagen wir es als eine künstliche Intelligenz, 01:42:03.000 --> 01:42:08.000 die euch begleitet werden, ihr coded, auch über euch lernt und über das Programm lernt, was ihr schreibt, 01:42:08.000 --> 01:42:18.000 und anhand eurer Benennung oder dem, was ihr schon erkennen lasst, was ihr vorhabt, euch Code-Beispiele vorschlägt. 01:42:18.000 --> 01:42:24.000 Und das ist so gut, dass ihr oftmals, nehmen wir mal eine Sorting-Funktion oder irgendetwas, 01:42:24.000 --> 01:42:34.000 ihr nennt eine Variable irgendwie, Sort By Number oder irgendetwas, Sort Descending oder sonst irgendwas. 01:42:34.000 --> 01:42:39.000 Dann würde er euch dementsprechend eine Funktion schon vorschlagen, die ihr einfach übernehmen könnt. 01:42:39.000 --> 01:42:41.000 Die ist schon wirklich fertig da. 01:42:41.000 --> 01:42:47.000 Also die Lesen dir quasi deinen Programmierwunsch beim Ticken von den Lippen oder von den Fingern ab. 01:42:47.000 --> 01:42:49.000 Und kümmern sich um den Rest. 01:42:49.000 --> 01:42:52.000 Und du musst nur noch sagen, ja, will ich oder will ich nicht. 01:42:52.000 --> 01:42:53.000 Genau, genau. 01:42:53.000 --> 01:42:57.000 Und ich hatte einen Kollegen gehabt und ich habe ihn gefragt, warum bist du eigentlich so schnell? 01:42:57.000 --> 01:43:00.000 Und dann meinte er so, ja, ich nutze Kopie. 01:43:00.000 --> 01:43:04.000 Und das ist schon ziemlich, ziemlich abgefahren. 01:43:04.000 --> 01:43:11.000 Also ich kann es noch empfehlen, diese drei Monate, die sie da anbieten, kostenlos einfach mal auszuprobieren 01:43:11.000 --> 01:43:13.000 und zu gucken, ob das was ist. 01:43:13.000 --> 01:43:17.000 Ansonsten gucken, dass man halt die Subscription wieder canceled, ja, dann. 01:43:17.000 --> 01:43:19.000 Aber es lohnt sich auf jeden Fall, das mal auszuprobieren. 01:43:19.000 --> 01:43:22.000 Also ich war sehr, ich war lange Zeit sehr skeptisch gewesen. 01:43:22.000 --> 01:43:26.000 Und seit ich angefangen habe, das zu nutzen, muss ich sagen. 01:43:26.000 --> 01:43:31.000 Man kann sich auf Dinge fokussieren, die wichtiger sind als irgendwie so ein Sorting zu bauen. 01:43:31.000 --> 01:43:38.000 Oder gewisse andere Bauteile zu bauen, die, ja, einfach mich sonst. 01:43:38.000 --> 01:43:40.000 Ja, das ist kein echten Challenge. 01:43:40.000 --> 01:43:42.000 Das ist halt dieses, was gemacht werden muss. 01:43:42.000 --> 01:43:43.000 Also Gruntwork. 01:43:43.000 --> 01:43:44.000 Genau, genau, richtig. 01:43:44.000 --> 01:43:48.000 Oder halt auch Inspiration zu bekommen, wie man Probleme tackeln kann, angehen kann. 01:43:48.000 --> 01:43:52.000 Wobei da ChatGPT natürlich nochmal ein Schritt weitergeht einfach. 01:43:52.000 --> 01:43:56.000 Also das ist schon, was habe ich heute gehört? 01:43:56.000 --> 01:44:05.000 Es hat jemand gesagt, so bitte erklär mir in few die computed properties, aber macht daraus ein Rap Song. 01:44:05.000 --> 01:44:08.000 Und das hat dann ChatGPT hat das gemacht. 01:44:08.000 --> 01:44:14.000 Ja, das kann ja wohl auch WordPress plugins quasi ganz alleine schreiben und so. 01:44:14.000 --> 01:44:17.000 Also aber auch nicht nur programmieren. 01:44:17.000 --> 01:44:23.000 Also da gibt es, das kannst du ja alles fragen, so schreibt ein Drehbuch für einen romantischen Film, 01:44:23.000 --> 01:44:26.000 der in Paris spielt im Winter oder sowas. 01:44:26.000 --> 01:44:27.000 Und dann macht er das. 01:44:27.000 --> 01:44:28.000 In leichter Sprache, ja. 01:44:28.000 --> 01:44:34.000 Also man kann es nicht nur nutzen, wie du schon sagst, für Programmieraufgaben. 01:44:34.000 --> 01:44:37.000 Man kann es halt auch nutzen für alles Mögliche. 01:44:37.000 --> 01:44:40.000 Also auch Referate oder Aufsätze oder was weiß ich. 01:44:40.000 --> 01:44:46.000 Also das sehe ich auch in großer Gefahr irgendwie, dass dadurch die Fähigkeit des Recherchierens, 01:44:46.000 --> 01:44:50.000 die enorm wichtig ist für unseren Beruf, leiden könnte. 01:44:50.000 --> 01:44:55.000 Weil man sich zu sehr verleitet und auf diese KI dann verlässt. 01:44:55.000 --> 01:45:01.000 Aber eine große Gefahr sehe ich da 2023, muss ich sagen, darin. 01:45:01.000 --> 01:45:06.000 Weil eine oder andere sagt sich jetzt so, wenn man sich Videos dazu anguckt, 01:45:06.000 --> 01:45:09.000 den Thema beschäftigt, macht es mich arbeitslos. 01:45:09.000 --> 01:45:12.000 Und ich muss ehrlich sagen, auch bei Copilot, als ich das das erste Mal gesehen habe, 01:45:12.000 --> 01:45:15.000 habe ich das gar nicht das Gefühl gehabt, so, oh das macht mich arbeitslos, 01:45:15.000 --> 01:45:17.000 sondern oh cool, für was kann ich das eigentlich einsetzen, 01:45:17.000 --> 01:45:19.000 und wie macht es mir das Leben leichter? 01:45:19.000 --> 01:45:22.000 Weil das war Nessa auf jeden Fall, ich kann es doch wieder ansprechen. 01:45:22.000 --> 01:45:23.000 Ich fand das ein so gutes Ding. 01:45:23.000 --> 01:45:26.000 Dieses Grundproblem, wie baue ich eigentlich eine Architektur auf, 01:45:26.000 --> 01:45:30.000 diese ganze Landschaft drum herum, die Tools werden das so nicht lösen können. 01:45:30.000 --> 01:45:33.000 Weil die Probleme zu komplex sind, wir müssen mit Menschen interagieren, 01:45:33.000 --> 01:45:35.000 kommunizieren, herausfinden. 01:45:35.000 --> 01:45:38.000 Durch verschiedene Interaktion schleifen, was das Beste ist für das Produkt. 01:45:38.000 --> 01:45:45.000 Und ich glaube, das wird noch nicht JetGPT können. 01:45:45.000 --> 01:45:49.000 Auf der anderen Seite frage ich mich auch so ein bisschen, ist das SkyNet? 01:45:49.000 --> 01:45:54.000 Das war eine Frage, die sich bei mir am Kopf so ein bisschen auch aufgetan hat. 01:45:54.000 --> 01:45:59.000 Und ich glaube, es ist auch so ein Wachruf an alle, 01:45:59.000 --> 01:46:06.000 die primär, ich sag mal, gelb in der Konfiguration verdienen von WordPress-Webseiten 01:46:06.000 --> 01:46:10.000 oder von einfachen Kundenwebseiten, von einzelnen, einfachen HTML-Webseiten. 01:46:10.000 --> 01:46:15.000 Ich kann da nur sagen, dass Fortbildung und Weiterbildung enorm wichtig ist. 01:46:15.000 --> 01:46:19.000 Nicht weil ich Trainer bin, sondern einfach weil das zu unserem Beruf dazugehört. 01:46:19.000 --> 01:46:23.000 Und ich weiß, es ist wichtig, gerade im Freelancing-Bereich Geld zu verdienen an der Stelle, 01:46:23.000 --> 01:46:28.000 aber man neigt dazu, dass man halt in diesem Hamsterrad die ganze Zeit drin ist. 01:46:28.000 --> 01:46:34.000 Und dann kommt sowas wie JetGPT, was dein Job dann auf einmal innerhalb von ein paar Sekunden löst. 01:46:34.000 --> 01:46:38.000 Deswegen glaube ich, ist das jetzt immer eine gute Möglichkeit zu sagen, 01:46:38.000 --> 01:46:41.000 hey, ich orientiere mich vielleicht um oder ich gucke mir neue Techniken an, 01:46:41.000 --> 01:46:43.000 all das, worüber wir jetzt gerade besprochen haben. 01:46:43.000 --> 01:46:49.000 Das hilft einfach enorm, sich das nochmal anzugucken, sich mit neuen Sachen auseinanderzusetzen. 01:46:49.000 --> 01:46:57.000 Und dann zu sagen, hey, ich nutze JetGPT, um vielleicht die Aufgaben zu erledigen, 01:46:57.000 --> 01:47:00.000 die ich sonst in drei, vier Stunden mache, um nachmittags mal in den Kindern zu spielen. 01:47:00.000 --> 01:47:06.000 Weil man wissen sagt mir, ja, es geht ja, man kauft ja nicht die Fähigkeit an, 01:47:06.000 --> 01:47:08.000 dass man Code tippen kann. 01:47:08.000 --> 01:47:10.000 Also man bezahlt ja niemanden, damit das Code getippt wird, 01:47:10.000 --> 01:47:14.000 sondern es geht darum, das Gehirnschmalz in was reingestellt wird, um ein Problem zu lösen. 01:47:14.000 --> 01:47:18.000 Und wenn man das Wissen hat und man hat ein Hilsttool dabei, 01:47:18.000 --> 01:47:21.000 dann ist es ja auch legitim, dass das Hilsttool genutzt wird. 01:47:21.000 --> 01:47:27.000 Ja, genau, und man ist am Ende, ja, genau. 01:47:27.000 --> 01:47:32.000 Und letztlich ist das im Prinzip so, wie wenn man über ein PullRequest drüber schaut, 01:47:32.000 --> 01:47:35.000 da hat man dann auch nochmal eine eigene Meinung dazu. 01:47:35.000 --> 01:47:36.000 Genau. 01:47:36.000 --> 01:47:42.000 Und tatsächlich ist es ja auch so, dass so KI ja auch nur quasi das kann, 01:47:42.000 --> 01:47:47.000 was, also die schöpft ja ihr Wissen aus dem, was wir bislang getan haben. 01:47:47.000 --> 01:47:52.000 Und die kann, also kann sie vielleicht schon, aber ich sage mal so, 01:47:52.000 --> 01:47:56.000 wenn wir quasi neue Konzepte entwickeln, 01:47:56.000 --> 01:48:02.000 dann ist das ja quasi noch gar nicht als Trainingsdaten in so eine KI eingeflossen. 01:48:02.000 --> 01:48:06.000 Und dementsprechend sind das so die Betätigungsfelder, 01:48:06.000 --> 01:48:09.000 in die sich das vielleicht dann alles rein verlagert für uns. 01:48:09.000 --> 01:48:10.000 Genau. 01:48:10.000 --> 01:48:13.000 Also ich sehe da nur Potenziale, was du gerade gesagt hast, PullRequest, 01:48:13.000 --> 01:48:17.000 interessanterweise, aber wenn man Freelancer ist, hat man oftmals das Problem, 01:48:17.000 --> 01:48:19.000 man kann sich selbst PullRequest stellen, 01:48:19.000 --> 01:48:22.000 wir wissen aber, dass man eigentlich seine eigenen PullRequest nicht merken sollte. 01:48:22.000 --> 01:48:26.000 Vielleicht ist die KI unser neuer Sparringspartner, der unsere PullRequest refued. 01:48:26.000 --> 01:48:28.000 Das können die mir gut vorstellen. 01:48:28.000 --> 01:48:29.000 Ja, stimmt. 01:48:29.000 --> 01:48:31.000 Super Idee, tatsächlich, ja. 01:48:31.000 --> 01:48:32.000 Cool Idee. 01:48:32.000 --> 01:48:34.000 Genau, also... 01:48:34.000 --> 01:48:38.000 Genau, also die Verschwörungstheorie mal in den Raum werfen, 01:48:38.000 --> 01:48:42.000 dass ChatGPT nicht die Developer ablöst, 01:48:42.000 --> 01:48:45.000 weil nach dem Motto wären es ja nicht nur die Developer, 01:48:45.000 --> 01:48:47.000 es wären auch alle Designer, Projektmanager, 01:48:47.000 --> 01:48:49.000 weil es geht ja nicht nur ums Coden, 01:48:49.000 --> 01:48:52.000 sondern ich kann ja jede explizitige Frage reinstellen. 01:48:52.000 --> 01:48:55.000 Und ich habe das Gefühl, dass wir Menschen so relativ gut darin sind, 01:48:55.000 --> 01:49:00.000 technische Dinge zu entwickeln, die uns eigentlich unsere Arbeit abnehmen sollten. 01:49:00.000 --> 01:49:04.000 Und dadurch machen wir uns grundsätzlich einfach noch viel mehr Arbeit obendrauf. 01:49:04.000 --> 01:49:08.000 Das schaffen wir seit Hunderten von Jahren ziemlich gut. 01:49:08.000 --> 01:49:13.000 Für mich ist ChatGPT so ein bisschen... 01:49:13.000 --> 01:49:17.000 Für mich ist es ein kleiner Stack Overflow-Satz. 01:49:17.000 --> 01:49:21.000 So anstatt dass ich halt bei Google was eintippe und auf Stack Overflow tippe, 01:49:21.000 --> 01:49:28.000 kann ich quasi auch bei ChatGPT fragen und bekommen so eine ähnliche Antwort da ebenfalls raus. 01:49:28.000 --> 01:49:32.000 Aber da auch, wie Jochen meinte, es hilft mir nur was, 01:49:32.000 --> 01:49:34.000 wenn ich auch tatsächlich die Antwort verstehe. 01:49:34.000 --> 01:49:37.000 Ich kann auch Stack Overflow nur benutzen, wenn ich weiß, 01:49:37.000 --> 01:49:40.000 ob ich die erste, zweite oder dritte Antwort kopieren sollte 01:49:40.000 --> 01:49:44.000 und ob ich vielleicht beim Copy-Paste den variablen Namen anpassen muss, 01:49:44.000 --> 01:49:46.000 damit es im Endeffekt funktioniert. 01:49:46.000 --> 01:49:48.000 Wenn meine ersten Programme hier versuchbar waren, 01:49:48.000 --> 01:49:50.000 dass ich blind irgendwas kopiert habe und da hat es trotzdem nicht funktioniert, 01:49:50.000 --> 01:49:53.000 da hat mir ganz Stack Overflow noch nicht so viel gebracht. 01:49:53.000 --> 01:49:55.000 Genauso sehe ich es da auch. 01:49:55.000 --> 01:50:00.000 Was ich vielleicht schwierig finden könnte, 01:50:00.000 --> 01:50:02.000 2023 in dem Bereich, 01:50:02.000 --> 01:50:04.000 ist nicht das Code schreiben, 01:50:04.000 --> 01:50:07.000 sondern das Artikel schreiben 01:50:07.000 --> 01:50:10.000 und gerade, wenn es jetzt auch in Richtung von Plaggiaten geht, 01:50:10.000 --> 01:50:14.000 ob wir uns da vielleicht in ein bisschen schwierigen Bereich reinbewegen. 01:50:14.000 --> 01:50:19.000 Ansonsten ist es für mich nur eine weitere Entwicklung von Automatisierung, 01:50:19.000 --> 01:50:22.000 genauso wie ich Tools in meinem VS Code habe, 01:50:22.000 --> 01:50:25.000 das mir automatisch meine Komponenten skifoldet. 01:50:25.000 --> 01:50:30.000 Natürlich könnte ich selber Skripser, DaplankTS, Scope, blah, blah, blah schreiben, 01:50:30.000 --> 01:50:34.000 aber ich bin halt Stellar, wenn ich schreibe, keine Ahnung, wenn ich ein Command Space mache 01:50:34.000 --> 01:50:36.000 und sage Skripser, View Komponent 01:50:36.000 --> 01:50:39.000 und boom, ist sie schon mal da. 01:50:39.000 --> 01:50:43.000 Von daher, ich glaube, unser Job bleibt schon bestehen 01:50:43.000 --> 01:50:45.000 und wenn nicht, dann sind wir einfach ganz klug 01:50:45.000 --> 01:50:47.000 und denken uns einen neuen aus. 01:50:47.000 --> 01:50:50.000 Aber das heißt auch seit, keine Ahnung, 10 Jahren. 01:50:50.000 --> 01:50:53.000 Aber jetzt gibt es doch no Code, Website, Bilder, 01:50:53.000 --> 01:50:55.000 hast du überhaupt doch einen Job? 01:50:55.000 --> 01:50:57.000 Ich kann doch jetzt auch eine Website bauen. 01:50:57.000 --> 01:51:04.000 Ja, ich baue halt keine Portfolio-Website. 01:51:04.000 --> 01:51:12.000 Wir lösen Probleme für entweder User oder Kunden oder wie auch immer, 01:51:12.000 --> 01:51:16.000 aber wir, zumindest die meisten Personen, 01:51:16.000 --> 01:51:19.000 developer die ich jetzt kenne, die schruppen keine Tickets mehr runter. 01:51:19.000 --> 01:51:22.000 Da heißt es nicht, wir brauchen genau dieses Feature 01:51:22.000 --> 01:51:24.000 mit genau diesen Akzeptanzkriterien 01:51:24.000 --> 01:51:29.000 und schon mal vorher festgelegt, dass man das in React und Redux macht. 01:51:29.000 --> 01:51:33.000 Dieses Ticket sehe ich seit 20 Jahren sowas nicht mehr, 01:51:33.000 --> 01:51:36.000 sondern es ist, wir haben ein Problem. 01:51:36.000 --> 01:51:39.000 Wir würden gerne dieses Problem für die User lösen, 01:51:39.000 --> 01:51:42.000 aber wir wissen noch gar nicht, wie wir das lösen wollen 01:51:42.000 --> 01:51:45.000 und wir sind hier noch gar nicht bei technischen Ansätzen, 01:51:45.000 --> 01:51:49.000 sondern wir sind hier wirklich, wir sind Produktentwicklungspersonen, 01:51:49.000 --> 01:51:51.000 alle zusammen im Team. 01:51:51.000 --> 01:51:54.000 Wir haben vielleicht schwieriger in ChatGPT fragen, 01:51:54.000 --> 01:51:58.000 ich würde jetzt gerne dieses spezifische Problem für diesen Kunden lösen. 01:51:58.000 --> 01:52:00.000 Was mache ich jetzt? 01:52:00.000 --> 01:52:03.000 Ja, musst du mehr Informationen über dich preisgeben, 01:52:03.000 --> 01:52:07.000 über das Produkt und über deinen Kunden und so weiter und so fort. 01:52:07.000 --> 01:52:09.000 Ich kopiere einfach mal alle Daten von Kunden rein. 01:52:09.000 --> 01:52:12.000 Genau, dann würde ChatGPT seine Datenbank durchsuchen 01:52:12.000 --> 01:52:17.000 oder seinen Data Lake dahinter so und herausfinden, 01:52:17.000 --> 01:52:24.000 dass dein Kunde irgendwie dazu neigt, irgendwie unsittliche Dinge zu tun, 01:52:24.000 --> 01:52:27.000 eine liebe Wertung mit einfließen zu lassen 01:52:27.000 --> 01:52:29.000 und dementsprechend komische Vorschläge machen. 01:52:29.000 --> 01:52:32.000 Keine Ahnung, kann ich mir vorstellen, dass das passiert irgendwann. 01:52:32.000 --> 01:52:38.000 Dass vielleicht irgendwie, ja, da auch Fehlinformationen reinfließen können, 01:52:38.000 --> 01:52:40.000 die böse Auswirkungen haben. 01:52:40.000 --> 01:52:43.000 Wenn du den Text dann nicht mehr liest, der daraus kommt zum Beispiel 01:52:43.000 --> 01:52:45.000 oder nicht wirklich bewerten kannst, 01:52:45.000 --> 01:52:47.000 dann sagst du, das wird schon stimmen, was die KI sagt, 01:52:47.000 --> 01:52:50.000 dann wird es halt schwierig an der Stelle. 01:52:50.000 --> 01:52:53.000 Ich kann nicht mehr als ein Problem vorstellen. 01:52:53.000 --> 01:52:57.000 Aber spekulativ, auf jeden Fall wird es uns dieses Jahr begleiten. 01:52:57.000 --> 01:53:02.000 Ich merke jetzt gerade bei den Junior-Developern, die ich ausbilde, 01:53:02.000 --> 01:53:05.000 da kommt öfter mal so, ich frage mal ChatGPT. 01:53:05.000 --> 01:53:10.000 Ich sage dann immer so, ja, nehmt, aber denkt. 01:53:10.000 --> 01:53:12.000 Und vor allem nehmt und versteht es. 01:53:12.000 --> 01:53:15.000 Man muss benutzen, wenn ihr es mir erklären könnt, was da steht. 01:53:15.000 --> 01:53:20.000 Und dann hört es meistens auf und dann kommt es doch die gute alte Vorschleife 01:53:20.000 --> 01:53:24.000 und weiß ich eine einfache Lösung, um das Problem anzugehen. 01:53:24.000 --> 01:53:30.000 Und deswegen bin ich da sehr gespannt, wie sich das da weiterentwickeln wird. 01:53:30.000 --> 01:53:33.000 Von daher, KI ist eine gute Sache. 01:53:33.000 --> 01:53:37.000 Und ich glaube, die wird uns auch weiterhelfen und das Leben leichter machen. 01:53:37.000 --> 01:53:39.000 Aber wir dürfen uns einfach nicht darauf verlassen, 01:53:39.000 --> 01:53:42.000 dass all unsere Probleme dadurch erschlagen sind. 01:53:42.000 --> 01:53:48.000 Und wir irgendwann, wie bei Wally irgendwie in dem Film, 01:53:48.000 --> 01:53:52.000 wenn den jemand kennt, dass der Roboter bei uns die Erde aufräumt 01:53:52.000 --> 01:54:01.000 und wir liegen da irgendwie nur noch rum in irgendwelchen Tanks. 01:54:01.000 --> 01:54:04.000 Und lassen uns füttern und was weiß ich alles. 01:54:04.000 --> 01:54:09.000 Der gab es noch einen zweiten Film, wo das gab Wally, der die Welt aufgeräumt hat, 01:54:09.000 --> 01:54:14.000 aber dann noch den zweiten Film, wo alle in so Rollwegen rumgefahren sind 01:54:14.000 --> 01:54:17.000 mit ihren riesigen Cola-Fläschchen. 01:54:17.000 --> 01:54:19.000 Ach so? Ich dachte, am ersten Teil ging es ja schon... 01:54:19.000 --> 01:54:20.000 War das das gleiche Film? 01:54:20.000 --> 01:54:22.000 Ja, ich glaube, das war der gleiche Film. 01:54:22.000 --> 01:54:27.000 Er hat auf jeden Fall einen Twist und ziemlich guten, 01:54:27.000 --> 01:54:32.000 naja, guten nicht, aber der hat doch einen Beigeschmack auf jeden Fall. 01:54:32.000 --> 01:54:34.000 Hat einen Beigeschmack, ja. 01:54:34.000 --> 01:54:35.000 Ja, ja, von daher... 01:54:35.000 --> 01:54:37.000 It's sad cause it's true. 01:54:37.000 --> 01:54:43.000 Yes, yes, yes, yes, genau. Okay, ja. 01:54:43.000 --> 01:54:45.000 Sehr schön. 01:54:45.000 --> 01:54:48.000 Aber Codeplot kann man 60 Tage frei verwenden 01:54:48.000 --> 01:54:51.000 und ChatGPT ist ja noch frei und wir warten wahrscheinlich alle darauf, 01:54:51.000 --> 01:54:52.000 dass irgendwann auch was kostet. 01:54:52.000 --> 01:54:55.000 Ja gut, ich meine Microsoft hängt drin, Elon Musk hängt drin. 01:54:55.000 --> 01:54:57.000 E. 01:54:57.000 --> 01:54:59.000 Was? 01:54:59.000 --> 01:55:03.000 Das ist ja nicht open AI. 01:55:03.000 --> 01:55:04.000 Ist da open AI? 01:55:04.000 --> 01:55:05.000 Ja. 01:55:05.000 --> 01:55:08.000 Ich bin mir ziemlich sicher, dass da auch Elon Musk sein Geld mit rein pumpt 01:55:08.000 --> 01:55:11.000 und Microsoft und von daher gerne natürlich. 01:55:11.000 --> 01:55:13.000 Also nichts, umsonst, wir wissen, 01:55:13.000 --> 01:55:15.000 wenn was umsonst ist, bist du das Produkt. 01:55:15.000 --> 01:55:18.000 Ja, und ja. 01:55:18.000 --> 01:55:20.000 Wenn du nicht deine ganzen Daten reinhängen willst, 01:55:20.000 --> 01:55:23.000 irgendwann musst du wahrscheinlich dafür bezahlen. 01:55:23.000 --> 01:55:25.000 Damn. 01:55:25.000 --> 01:55:29.000 Du hattest noch CodeNinja, hattest du ja noch irgendwie, 01:55:29.000 --> 01:55:32.000 war deine Entdeckung jetzt so ganz frisch, ne? 01:55:32.000 --> 01:55:33.000 Ja. 01:55:33.000 --> 01:55:35.000 Das fandest du, da hab ich CodeNinja gesagt. 01:55:35.000 --> 01:55:38.000 Ich mein, der ConsoleNinja natürlich, falls ich das gesagt habe. 01:55:38.000 --> 01:55:41.000 Genau, sag mal, warum ist das cool? 01:55:41.000 --> 01:55:44.000 Es ist cool, weil ihr ConsoleLogs quasi 01:55:44.000 --> 01:55:46.000 oder Testausgaben in eurem VS Code 01:55:46.000 --> 01:55:48.000 oder in eurem JetBrains Editor machen kann. 01:55:48.000 --> 01:55:50.000 Ja, das ist halt einfach, du schreibst ein ConsoleLog 01:55:50.000 --> 01:55:52.000 auf irgendwas in deinem Code 01:55:52.000 --> 01:55:57.000 und es wird halt direkt dargestellt in eurem Editor. 01:55:57.000 --> 01:56:00.000 Also ihr müsst nicht wechseln irgendwie in den Browser oder so. 01:56:00.000 --> 01:56:03.000 Ja, es wird einfach instant dargestellt. 01:56:03.000 --> 01:56:05.000 Ist von den Leuten, der eine oder andere, 01:56:05.000 --> 01:56:07.000 das klingt vielleicht wie Quokka.js. 01:56:07.000 --> 01:56:09.000 Ja, es ist von den Leuten von Quokka.js. 01:56:09.000 --> 01:56:11.000 Das ist ein neues Produkt von denen. 01:56:11.000 --> 01:56:13.000 Und bei Quokka war es immer so, 01:56:13.000 --> 01:56:15.000 dass das nochmal so ein bisschen isolierter ist in dieser, 01:56:15.000 --> 01:56:18.000 also wie ihr der Quokka.js jetzt nicht kennt. 01:56:18.000 --> 01:56:20.000 Es ist ein Tool, womit ihr quasi, 01:56:20.000 --> 01:56:24.000 ich sag mal, Testcode oder Code schreiben könnt 01:56:24.000 --> 01:56:26.000 in eurer Konsole 01:56:26.000 --> 01:56:29.000 und sagen könnt, gib mir mal das Ergebnis am Ende raus. 01:56:29.000 --> 01:56:32.000 Ja, es ist halt ein bisschen eleganter 01:56:32.000 --> 01:56:35.000 als, ich sag mal, dieses Redneck Debugging, 01:56:35.000 --> 01:56:37.000 was man mit ConsoleLogs manchmal hat, irgendwie. 01:56:37.000 --> 01:56:39.000 Jihar, umgib ihm. 01:56:39.000 --> 01:56:42.000 Das ist mit Quokka, kann man halt in so einer Sandbox dementsprechend 01:56:42.000 --> 01:56:45.000 ein bisschen besser agieren. 01:56:45.000 --> 01:56:48.000 Ja, Code-Testen, die haben noch andere Tools, 01:56:48.000 --> 01:56:53.000 wie Wallabyf, um Testergebnisse direkt anzeigen zu lassen. 01:56:53.000 --> 01:56:57.000 Und von der Company ist halt auch dieses ConsoleNinja. 01:56:57.000 --> 01:56:59.000 Und ich hab das gesehen und dachte so, cool. 01:56:59.000 --> 01:57:01.000 Also das schließt für mich eine Lücke. 01:57:01.000 --> 01:57:03.000 Ich könnte mir vorstellen, das öfter zu nutzen. 01:57:03.000 --> 01:57:06.000 Ich hab es jetzt installiert und probiere das auch aus. 01:57:06.000 --> 01:57:09.000 Und ich sag mal so, ich muss nicht mehr so oft 01:57:09.000 --> 01:57:11.000 in den Browser dann wechseln 01:57:11.000 --> 01:57:15.000 oder halt auch die Debug-Ausgabe starten von Node.js. 01:57:15.000 --> 01:57:18.000 Also, kann man sich auf jeden Fall angucken. 01:57:18.000 --> 01:57:21.000 Könnte ein cooles Tool 2023 sein? 01:57:21.000 --> 01:57:23.000 Aber kein KI-Tool. 01:57:23.000 --> 01:57:25.000 Das hatte ich nämlich gedacht, 01:57:25.000 --> 01:57:27.000 dass das quasi drei Stück wären, 01:57:27.000 --> 01:57:31.000 ChatGPT, CodePilot und das ConsoleNinja, 01:57:31.000 --> 01:57:33.000 vielleicht auch ein KI-Tool. 01:57:33.000 --> 01:57:35.000 Das ist es aber gar nicht, es ist einfach nur ein cooles Tool. 01:57:35.000 --> 01:57:37.000 Genau, ich hab einfach nur eine Falle gestellten, 01:57:37.000 --> 01:57:42.000 dass mit bei ChatGPT und CodePilot mit aufgeführt. 01:57:42.000 --> 01:57:44.000 Ja. 01:57:44.000 --> 01:57:47.000 Wir haben auf jeden Fall eine sehr umfangreiche Folge 01:57:47.000 --> 01:57:49.000 eingetütet mit dir. 01:57:49.000 --> 01:57:52.000 Hat aber total Spaß gemacht, sind auch echt super Themen gewesen, 01:57:52.000 --> 01:57:55.000 die wir hier heute in der Folge hatten. 01:57:55.000 --> 01:57:58.000 Genau, und dann vielleicht können wir uns ja einfach, 01:57:58.000 --> 01:58:00.000 also vielleicht können wir uns spätestens 01:58:00.000 --> 01:58:02.000 für in einem Jahr nochmal verabreden 01:58:02.000 --> 01:58:06.000 und dann müssten wir eigentlich mal erstmal zurückblicken 01:58:06.000 --> 01:58:10.000 auf unsere Fähigkeiten bei der Vorhersage 01:58:10.000 --> 01:58:15.000 und können das Ganze dann fürs daufallende Jahr wiederholen. 01:58:15.000 --> 01:58:17.000 Oder wir haben keinen Job mehr. 01:58:17.000 --> 01:58:21.000 Oder wir gleichen das jetzt auch mal ab mit ChatGPT, 01:58:21.000 --> 01:58:25.000 was ChatGPT sagt, genau, was die Trends in der Web-Entwicklung sind. 01:58:25.000 --> 01:58:27.000 Und das ist die Groß-ATED. 01:58:27.000 --> 01:58:29.000 Ja. 01:58:29.000 --> 01:58:33.000 Ich bin mir sicher, Sie haben irgendeine If-Abfrage da reingeschrieben. 01:58:33.000 --> 01:58:38.000 Falls jemand fragt, ob ChatGPT meinen Job ersetzen würde, 01:58:38.000 --> 01:58:40.000 dass sie pauschal mit einen einantworten, 01:58:40.000 --> 01:58:42.000 damit niemand Angst bekommt. 01:58:42.000 --> 01:58:45.000 Ja, testen wir auch. 01:58:45.000 --> 01:58:48.000 Genau, wenn ihr höheren und höherer gerne was testen wollt 01:58:48.000 --> 01:58:52.000 oder ihr spannende Sachen gefunden habt, schreibt uns gerne an. 01:58:52.000 --> 01:58:55.000 Wir sind alle noch auf Twitter, auf Masse, 01:58:55.000 --> 01:58:57.000 dann sind wir, glaube ich, auch alle, oder? 01:58:57.000 --> 01:58:59.000 Ja, da reagieren wir nur mit Verzug, 01:58:59.000 --> 01:59:01.000 weil ich weiß immer noch nicht, wie es geht. 01:59:01.000 --> 01:59:03.000 Ja, genau. 01:59:03.000 --> 01:59:07.000 Ansonsten haben wir ja auch noch unseren Community Slack Workspace, 01:59:07.000 --> 01:59:11.000 den ihr findet unter draft.community. 01:59:11.000 --> 01:59:14.000 Und genau, da hängen wir auch ab. 01:59:14.000 --> 01:59:17.000 Der Joe zwar nicht, aber den können wir auf jeden Fall flott einladen. 01:59:17.000 --> 01:59:20.000 Boom, schon ein neues Slack. 01:59:20.000 --> 01:59:23.000 Genau, so kennen wir das alle. 01:59:23.000 --> 01:59:26.000 Genau, vielen Dank fürs Dasein, Joe. 01:59:26.000 --> 01:59:28.000 Viel Gute nach Lüneburg. 01:59:28.000 --> 01:59:32.000 Danke auch an die Vanessa und den Hörerinnen und Hörern. 01:59:32.000 --> 01:59:34.000 Vielen Dank fürs Reinhören. 01:59:34.000 --> 01:59:36.000 Bis nächste Woche. 01:59:36.000 --> 01:59:38.000 Ciao. 01:59:38.000 --> 02:00:07.000 Ciao, ciao. 02:00:08.000 --> 02:00:10.000 Ciao, ciao.
Kommentare
Noch keine Kommentare oder Backlinks.
RSS-Feed zu diesem Beitrag
Kommentare sind für diesen Beitrag geschlossen.