WEBVTT

00:00:00.017 --> 00:00:05.417
Das übergeordnete Ziel von Void Zero ist es, eine Unified JavaScript-Tool-Chain zu bauen.

00:00:06.497 --> 00:00:10.897
Beat 7 ist ja gerade erst released worden. Das Ziel aktuell ist erstmal testen.

00:00:11.097 --> 00:00:14.357
Wir haben sehr viele Early Adopter schon gehabt. Viele Leute haben berichtet,

00:00:14.477 --> 00:00:15.597
wie schnell ihre Builds wurden.

00:00:16.497 --> 00:00:20.717
Es gibt Ideen für den View 4, genau. Die Frage ist halt, wann die Ideen umgesetzt

00:00:20.717 --> 00:00:23.537
werden, wann es kommt. Weil aktuell ist der Fokus noch auf Vapor-Mode.

00:00:24.677 --> 00:00:27.297
Max 4 ist wirklich einfach zu migrieren. Kann ich nur empfehlen.

00:00:27.397 --> 00:00:29.917
Und die Entscheidung macht, denke ich, Sinn.

00:00:35.577 --> 00:00:39.357
Diese Revision von Working Draft wird euch präsentiert von wahren Podcast-Fans wie euch.

00:00:39.777 --> 00:00:42.077
Wenn ihr es noch nicht getan habt, würden wir uns sehr darüber freuen,

00:00:42.177 --> 00:00:44.157
wenn ihr uns eine positive Bewertung geben könntet.

00:00:44.577 --> 00:00:48.137
Auf den einschlägigen Podcast-Portalen wie Spotify und Apple Podcast könnt ihr

00:00:48.137 --> 00:00:50.977
uns gerne ein paar Sternchen hinterlassen, damit das, was wir hier machen,

00:00:51.197 --> 00:00:52.957
von mehr Menschen gefunden und gehört werden kann.

00:00:53.437 --> 00:00:55.917
Danke für eure Unterstützung und danke für eure Sternchen.

00:01:01.877 --> 00:01:07.677
Revision 673 Hallo und herzlich willkommen zum Working Draft.

00:01:07.897 --> 00:01:14.897
Wir sind heute zu dritt. Aus dem Team dabei habe ich den Stefan. Guten Morgen. Hallo.

00:01:15.857 --> 00:01:23.357
Und aus dem Norden, Norden von mir aus, habe ich dabei den Alex Lichter. Hi Alex.

00:01:23.757 --> 00:01:26.777
Hallo, grüßt euch. Schön, dass ich wieder dabei sein kann.

00:01:27.697 --> 00:01:32.177
Genau, du warst nämlich schon mal bei uns. Und zwar war das 2024,

00:01:32.497 --> 00:01:39.357
warst du einmal bei der 608 für Naxx und Unshare es für uns und 611 mit SEO.

00:01:39.857 --> 00:01:45.057
Und du warst auch bei unserer Jubiläumsepisode 600 dabei gewesen.

00:01:45.517 --> 00:01:49.997
Das alles ist tatsächlich gar nicht so lange her, aber schon ein bisschen.

00:01:50.297 --> 00:01:54.437
Deswegen würde ich dich nochmal kurz fragen, wer du bist, was du so machst und

00:01:54.437 --> 00:01:58.197
was sich vielleicht auch in der letzten Zeit so ein bisschen geändert hat. Ja, absolut.

00:01:58.797 --> 00:02:01.817
Erstmal noch als kleiner Funfact. Ich hatte, ich weiß gar nicht warum,

00:02:02.037 --> 00:02:04.637
letztens mal geguckt so, ihr habt ja eine schöne Seite mit Statistiken beim

00:02:04.637 --> 00:02:08.477
Working Draft und da habe ich gesehen, dass die SEO-Episode in 2024 tatsächlich

00:02:08.477 --> 00:02:10.397
die meistgedownloadeste Episode war.

00:02:10.677 --> 00:02:12.837
War ich ein bisschen überrascht, habe mich natürlich sehr gefreut.

00:02:13.597 --> 00:02:17.197
Deswegen umso schöner noch dabei zu sein. Ja, mein Name ist Alexander Lichter.

00:02:18.897 --> 00:02:23.937
Ich mache ein bisschen Open Source, habe einen YouTube-Channel und bin im Nux-Team tätig.

00:02:23.937 --> 00:02:26.677
Da hatten wir auch schon eine Episode zu, rund um Nux und an JS,

00:02:27.217 --> 00:02:31.937
kennen mich so ein bisschen im Vue-Universum aus und möchte das natürlich auch etwas ausweiten,

00:02:32.477 --> 00:02:38.057
auf das ganze JavaScript-Ekosystem und bin seit März dann nicht nur selbstständig

00:02:38.057 --> 00:02:42.437
unterwegs bei einer eigenen kleinen Firma und Consulting, sondern bin auch bei Void Zero mit dabei.

00:02:42.597 --> 00:02:47.317
Das ist die Firma, die Avenue letztes Jahr im Oktober, also 2024 im Oktober

00:02:47.317 --> 00:02:49.297
angekündigt hat, gegründet hat.

00:02:49.957 --> 00:02:52.497
Und darum soll es heute so ein bisschen gehen, was da so passiert,

00:02:52.657 --> 00:02:56.917
was für interessante Dinge, da los und vielleicht auch einige spannende Themen,

00:02:56.997 --> 00:02:58.817
die wir hier debattieren und diskutieren können.

00:03:00.111 --> 00:03:04.051
Genau, danke dir. Und vor allem aber auch, was es denn überhaupt ist.

00:03:04.171 --> 00:03:09.491
Denn ich würde jetzt mal in den Raum werfen, dass es einige EntwicklerInnen

00:03:09.491 --> 00:03:17.031
gibt, die quasi Void Zero benutzen, ohne es aber zu wissen, dass es Void Zero gibt und was das ist.

00:03:17.551 --> 00:03:22.251
Von daher würde ich dich gleich direkt am Anfang mal fragen, was ist das denn?

00:03:23.011 --> 00:03:30.091
Genau. So das übergeordnete Ziel von Void Zero ist es, eine Unified JavaScript Tool Chain zu bauen.

00:03:30.231 --> 00:03:33.091
Also wenn man das sich so in anderen Sprachen anguckt, beispielsweise Rust,

00:03:33.211 --> 00:03:36.951
man hat da ein Tool, so Cargo, damit kann man alles mögliche machen,

00:03:37.091 --> 00:03:40.551
von irgendwie, ich baue meine Applikationen, Dokumentationen,

00:03:40.611 --> 00:03:44.811
Tests, ich habe noch einen Command Runner, Task Runner ähnliches drin.

00:03:44.811 --> 00:03:47.811
Also nicht das Problem im JavaScript-Universum, wo ich sagen muss,

00:03:47.911 --> 00:03:51.551
okay, ich baue mir eigentlich meine Build-Chain so Step-by-Step zusammen.

00:03:51.671 --> 00:03:54.271
Ich nehme mir irgendwie einen Build-Tool, ich nehme mir irgendwie einen Bundler,

00:03:54.391 --> 00:03:55.951
also früher hatten wir irgendwie Webpack noch genommen.

00:03:56.431 --> 00:04:00.831
Mittlerweile nutzen die meisten Leute ja Veed, das wiederum Rollup und ES-Bild

00:04:00.831 --> 00:04:01.651
unter der Haube benutzt.

00:04:01.651 --> 00:04:04.831
Und dann geht es aber weiter mit, naja, okay, was nutze ich denn für ein Test-Tool,

00:04:04.971 --> 00:04:08.271
nutze ich ja den, jetzt mittlerweile gibt es ja einen nativen Node-Test-Runner

00:04:08.271 --> 00:04:13.211
für einfache Sachen, das ist ideal, oder ein Tool wie Jest oder V-Test und so weiter und so weiter.

00:04:13.971 --> 00:04:16.571
Das ist also das typische Problem, dass man sagt, wenn ich jetzt ein Projekt

00:04:16.571 --> 00:04:19.771
starte, so Schritt für Schritt muss ich mir so ein bisschen meine eigene kleine

00:04:19.771 --> 00:04:24.351
Build-Pipeline zusammenbauen und dann hat man das große Thema Interoperabilität,

00:04:24.511 --> 00:04:27.131
also passen denn die Tools überhaupt zusammen, kann ich das so zusammen nutzen,

00:04:27.651 --> 00:04:28.591
gibt es dann da wieder Probleme.

00:04:28.591 --> 00:04:31.771
Immer, das ist so ein bisschen das Ziel, was Void Zero lösen möchte.

00:04:32.726 --> 00:04:37.806
Um das Ganze zu realisieren, naja, gut, es gibt schon einen zentralen Baustein,

00:04:37.926 --> 00:04:41.606
so ein bisschen diese, sagt man, das geteilte Infrastruktur des Webs aktuell,

00:04:42.086 --> 00:04:47.306
nämlich Veed, schon erwähnt, hat ja Evan Yu, der Ersteller von Vue,

00:04:47.666 --> 00:04:51.146
auch mit erstellt, als er gemeint hat, so ist Vue CLI eigentlich ganz cool,

00:04:51.246 --> 00:04:54.166
aber die Erfahrung ist nicht die beste und dann hat er ein bisschen daran gearbeitet

00:04:54.166 --> 00:04:58.306
und ja, da ist Veed dann bei rausgekommen und wie man das so ein bisschen aus

00:04:58.306 --> 00:04:59.606
der Community kennt, aus der Vue Community,

00:04:59.826 --> 00:05:02.646
man geht da ganz gern so den extra Schritt oder die extra Meile,

00:05:02.726 --> 00:05:05.206
um das Ganze nicht nur für eine kleine

00:05:05.206 --> 00:05:09.806
Community, sondern die ganze JavaScript-Community verfügbar zu machen.

00:05:09.986 --> 00:05:16.026
Das sehen wir eben bei AnJS, bei Veed und auch VTest natürlich ähnlich.

00:05:16.946 --> 00:05:22.406
Ja, deswegen ist das so ein bisschen der Start. Und dann haben wir bei uns einige Leute im Team.

00:05:22.846 --> 00:05:25.526
Viele arbeiten an Roldown, da werden wir noch ein bisschen durchsprechen,

00:05:25.706 --> 00:05:29.406
und OXC, das sind so JavaScript-Tools, die in Rust gebaut sind.

00:05:30.126 --> 00:05:33.486
Dann haben wir aber auch Teammitglieder von VEAT, die direkt an VEAT eben arbeiten,

00:05:33.986 --> 00:05:37.806
da gucken, dass das alles läuft. Wir haben den Lead-Maintainer von VTest mit an Bord.

00:05:38.246 --> 00:05:42.066
Und ich mache so ein bisschen die Devler-Geschichte, erzähle so ein bisschen

00:05:42.066 --> 00:05:45.586
was über die Firma, was so das Ziel ist und beantworte Fragen drumherum.

00:05:45.626 --> 00:05:48.026
Das heißt, jeder, der eigentlich VEAT nutzt oder VTest nutzt,

00:05:48.726 --> 00:05:52.586
nutzt ein Tool von Void Zero. Dabei noch wichtiger Disclaimer.

00:05:53.806 --> 00:05:59.386
Das sind alles, also VEAT und VTest. Die beiden sind Multi-Company-Projects

00:05:59.386 --> 00:06:03.546
und Tools, bedeutet also, ja, es steuern dann nicht die Richtung bei Void Zero.

00:06:04.066 --> 00:06:07.066
Bei Roaldown und OXC ist das anders, werden wir gleich noch ein bisschen drüber

00:06:07.066 --> 00:06:10.326
reden, aber das ist immer ein wichtiger Unterschied, dass zum Beispiel Veeds,

00:06:10.366 --> 00:06:13.586
da arbeiten Leute, die zum Beispiel in Core-Main-Tainer wurde lange von Astro

00:06:13.586 --> 00:06:18.426
angestellt oder jemand, der bei StackBlitz dabei ist, etc., etc.

00:06:18.426 --> 00:06:21.146
Also das liegt nicht nur in unserer Hand, das ist auch gut so,

00:06:21.526 --> 00:06:25.386
weil natürlich es ist ja ein Projekt für die gesamte Community und da ist viel

00:06:25.386 --> 00:06:29.486
Input wichtig und ist auch rein so vom Machtgleichgewicht ganz gut,

00:06:29.626 --> 00:06:33.926
wenn dann nicht nur eine Firma überall die Finger im Spiel hat und vor allem die Finger am Drücker.

00:06:35.139 --> 00:06:41.699
Jetzt würde ich nur einmal kurz da einhaken, weil du meintest Rolldown und nicht Rollup.

00:06:41.939 --> 00:06:47.859
Ich würde nur einmal da kurz anhören, weil ich habe gehört, es gibt beides und

00:06:47.859 --> 00:06:49.779
ich stolze da jetzt immer die ganze Zeit drüber.

00:06:50.919 --> 00:06:56.639
Rolldown ist das von Void Zero. Genau, richtig. Also Rollup ist der existierende JavaScript-Bundler.

00:06:56.699 --> 00:06:59.879
Der wurde ja immer von Rich Harris, dem Ersteller von Svelte unter anderem.

00:06:59.879 --> 00:07:04.899
Hat auch ganz viel für die Web-Community schon gebaut, hat das Ganze erstellt,

00:07:05.019 --> 00:07:10.419
ging es los, mittlerweile wird das Main-Tate von Lukas Tegger-Atkinson, denke ich.

00:07:11.759 --> 00:07:14.279
Genau, und von verschiedensten Leuten, JavaScript geschrieben,

00:07:14.799 --> 00:07:17.359
und die Idee war dann zu sagen, okay,

00:07:18.359 --> 00:07:22.499
wir, es gibt ja verschiedene Bundler und Build-Tours, und Rolldown soll sozusagen

00:07:22.499 --> 00:07:25.959
das Beste aus allen Welten vereinbaren, weil sonst können wir einfach sagen,

00:07:26.039 --> 00:07:28.059
ich nehme jetzt irgendwie Rollup, klatsche da ein bisschen Rust drauf,

00:07:28.159 --> 00:07:31.319
um das schneller zu machen, aber das war genau nicht nur das Ziel,

00:07:32.259 --> 00:07:34.439
sondern Rolldown soll so ein bisschen mehr dahinter machen.

00:07:34.739 --> 00:07:36.699
Wollen wir da direkt ins Thema mit einsteigen?

00:07:38.259 --> 00:07:41.199
Das wäre jetzt eine gute Überleitung. Ich war jetzt leider gemutet,

00:07:41.299 --> 00:07:43.219
aber ich habe noch eine Frage, bevor wir da reingehen, und zwar,

00:07:43.319 --> 00:07:46.519
du hast jetzt einige Projekte genannt, die ihr betreut,

00:07:46.879 --> 00:07:50.699
zum Teil teilweise, was ja eine sehr gute Sache ist, aber wie groß ist jetzt

00:07:50.699 --> 00:07:53.439
die Bude, wenn du sagst, du hast da überall die Finger drinnen und ein paar

00:07:53.439 --> 00:07:55.059
Sachen leitet sich ja komplett.

00:07:55.679 --> 00:07:59.339
Gerade zu Themen wie Rolldown und Oxy stellen wir doch als Mehrentwickler und

00:07:59.759 --> 00:08:00.419
Entwicklerinnenprojekt vor.

00:08:00.779 --> 00:08:05.439
Genau, also 13 Leute aktuell auf der Teamseite, dann gibt es natürlich dann

00:08:05.439 --> 00:08:08.139
noch Leute, die so ein bisschen Consulting machen oder zum Beispiel,

00:08:08.279 --> 00:08:11.339
wir haben auch eine Kollaboration Anthony Fu, der ja auch viel ein Begriff ist,

00:08:11.439 --> 00:08:13.099
der arbeitet zum Beispiel an DevTools für VEAT.

00:08:13.599 --> 00:08:16.099
Der ist jetzt nicht Teil der Firma, sondern das ist eine Kollaboration mit einer

00:08:16.099 --> 00:08:17.059
anderen Firma, mit Nuxlabs.

00:08:17.659 --> 00:08:22.019
Aber 13 Leute, die sozusagen Vollzeit und ich tatsächlich nur Teilzeit,

00:08:22.079 --> 00:08:25.619
wenn es weiter streitzen, aber daran arbeiten. Alles klar.

00:08:26.245 --> 00:08:29.605
Ja, also für das, dass es die Filme erst zu kurz gibt, ist das ja eine beachtliche

00:08:29.605 --> 00:08:30.285
Größe eigentlich, nicht?

00:08:31.265 --> 00:08:35.085
Absolut. Das Spannende dazu noch, es gibt halt viele Leute, die natürlich gerade

00:08:35.085 --> 00:08:37.345
an dem Rust-Teilen davon arbeiten.

00:08:37.905 --> 00:08:41.225
Und die haben halt natürlich Erfahrung in jeglicher Hinsicht.

00:08:41.325 --> 00:08:44.085
Es gab halt also Contributors, die damals noch zu Roam kontributet haben.

00:08:44.785 --> 00:08:49.705
Es gab Leute, die an verschiedensten Sachen bei ByteDance gearbeitet haben.

00:08:49.745 --> 00:08:51.665
Die haben ja auch sehr interessante Projekte, was das angeht.

00:08:52.525 --> 00:08:55.265
Leute, glaube ich, auch so an Turbo Pack mitgewerkelt haben.

00:08:55.265 --> 00:08:57.845
Also da ist sehr, sehr viel Expertise vorhanden.

00:08:58.325 --> 00:09:03.865
Und du hast gesagt, die Ownership von Roldown und Oxy ist tatsächlich bei der World Zero Company.

00:09:04.145 --> 00:09:08.305
Also das ist nicht nur gesteuert, sondern das ist euer Projekt,

00:09:08.525 --> 00:09:09.765
das ist euer Open Source Outlet.

00:09:10.785 --> 00:09:13.325
Also der wichtige Punkt da ist erstmal, es ist alles MIT.

00:09:14.805 --> 00:09:17.545
Die Projekte selber liegen jetzt nicht in der World Zero Organisation.

00:09:17.765 --> 00:09:20.585
Die haben eigene Organisationen, also genau Roldown, Oxy Project.

00:09:20.945 --> 00:09:22.465
Links auch bestimmt wie immer in den Show Notes.

00:09:23.405 --> 00:09:26.905
Und genau da ist wichtig, dass wir so die Richtung steuern. Ownership ist immer,

00:09:27.085 --> 00:09:32.765
das ist halt MIT und Open Sources zweitens, aber genau, wir sind letztendlich dafür verantwortlich.

00:09:35.585 --> 00:09:37.765
Alles klar. Wann nicht OECC,

00:09:40.005 --> 00:09:42.905
auch ein Projekt ist, das lange vor Volt Zero existiert hat,

00:09:43.065 --> 00:09:46.605
das vom Entwickler aus, bah, keine Ahnung, wo ist der her?

00:09:47.845 --> 00:09:50.705
Gestartet. Also mir kommt das Projekt natürlich sehr stark bekannt vor,

00:09:50.845 --> 00:09:54.225
weil Also jedes RAS-Projekt, das auftaucht, ist irgendwann einmal durch meinen

00:09:54.225 --> 00:09:56.065
Newsfeed gegangen. Das glaube ich.

00:09:57.125 --> 00:10:01.525
Und ich habe gerade Kaffee- und Paketlieferung bekommen.

00:10:03.865 --> 00:10:07.605
Kurz abgelegt. Aber soweit ich das in Erinnerung habe, ist ja auch,

00:10:09.717 --> 00:10:14.097
nicht nur ein Projekt. Da geht es ja darum, dass du JavaScript,

00:10:14.297 --> 00:10:18.077
CSS, also diese ganze Minification, Syntax-Parsing-Sache etc.

00:10:18.557 --> 00:10:21.637
Ist ja dort drinnen. Moment, wir haben jetzt drei Trajektarien.

00:10:21.737 --> 00:10:23.797
Gehen wir nochmal kurz einen Schritt zurück, weil wir könnten jetzt über Rolldown

00:10:23.797 --> 00:10:27.057
versus Rollup reden, wir könnten nur OXI reden und was war das andere?

00:10:27.477 --> 00:10:29.717
Lass uns vielleicht ganz oben anfangen. Ja, passt ab.

00:10:31.477 --> 00:10:35.697
Und dann nach unten gehen. Das ist immer das Verrückte, weil es so viele Ecken

00:10:35.697 --> 00:10:37.497
und Kanten gibt und so viel, wo wir reden können.

00:10:37.897 --> 00:10:40.397
Genau. Fangen wir vielleicht damit an, die Leute, die Beat nutzen,

00:10:40.637 --> 00:10:44.477
also eigentlich heutzutage jeder in einem modernen Projekt, außer ihr nutzt

00:10:44.477 --> 00:10:48.417
Next.js, weil ja, die Versailles wollte nicht auf Beat.

00:10:48.997 --> 00:10:52.937
Das ist auch öffentlich bekannt, es gab einen Prototyp, der hat so 80% Next.js

00:10:52.937 --> 00:10:58.657
abgedeckt und die restlichen 20 war so, ja, sehr stark in SWC mit verankert,

00:10:58.737 --> 00:11:00.757
das ist ja wiederum ein anderes Rust-Trueck,

00:11:01.097 --> 00:11:04.517
der Small Web Compiler und hat dann Versailles gesagt, so ja,

00:11:05.037 --> 00:11:08.317
das wird nichts und Angst vor Bugs und Problemen.

00:11:08.317 --> 00:11:12.277
Aber sie haben ja in die Webpack-Infrastruktur investiert. Genau, richtig.

00:11:14.917 --> 00:11:20.277
TurboPack ist im Sinne der Company, dass sie dort noch ein bisschen die Hand drauf haben.

00:11:20.917 --> 00:11:23.677
Das denke ich doch auch. Und ich meine jetzt, TurboPack hat ja mittlerweile

00:11:23.677 --> 00:11:26.657
Production, alle Tests grün.

00:11:27.057 --> 00:11:31.317
Das war auch ein großer Meilenstein. Und auch mit RS-Pack-Support auf jeden

00:11:31.317 --> 00:11:32.377
Fall geht man da mehr in die Richtung.

00:11:32.737 --> 00:11:35.317
Während eigentlich ja der Rest des Ökosystems, also wenn man jetzt wirklich

00:11:35.317 --> 00:11:39.337
schaut, so von, keine Ahnung, Angular und das Dev-Server und will da noch weiter rein investieren.

00:11:39.697 --> 00:11:43.337
Keine Ahnung, Vue, Plane React, gab es ja auch die Diskussion mit CreateRackDab und Co.

00:11:44.177 --> 00:11:48.737
Zwelt, selbst irgendwie Frameworks wie Ember nutzen wie alle VEAT und selbst

00:11:48.737 --> 00:11:50.837
ORA Framework kannst du es ja auch nutzen. Genau, das würde ich gerade erwähnen.

00:11:50.997 --> 00:11:53.617
Also das ist ja eigentlich das Geile daran, du kannst ja einfach mit VEAT einmal

00:11:53.617 --> 00:11:57.077
ausstarten und du hast dann einen ziemlich simplen ECMAScript-Modul-Server,

00:11:57.317 --> 00:11:58.697
der halt die Intellektion kann. Genau, einfach Dev-Server.

00:11:59.297 --> 00:12:02.317
Ich habe ja VEAT ausprobiert. Tatsächlich, das jetzt mal, wo ich wirklich ein

00:12:02.317 --> 00:12:03.657
bisschen reingegangen bin in die

00:12:03.657 --> 00:12:07.497
VEAT Internals, war, wie es rausgekommen ist. Da habe ich es mit diesen,

00:12:08.196 --> 00:12:12.176
Mit Snowpack verglichen, glaube ich. Das war ja vom Astro-Fred.

00:12:12.396 --> 00:12:13.376
Ja, vom Fred-Peshout, ja.

00:12:14.076 --> 00:12:21.396
Das war ja ein sehr ähnliches Projekt. Aber der Zugang zu VIT war ja halt irrsinnig niederschwellig.

00:12:21.616 --> 00:12:24.636
Du hast halt einfach gesagt, hey, das sind deine Files, die existieren als CS-File

00:12:24.636 --> 00:12:27.256
oder als MGS-File oder was auch immer.

00:12:27.536 --> 00:12:31.656
Und das Einzige, was das Tool macht, ist, dass es nachher in irgendwas Konvertiertes

00:12:31.656 --> 00:12:32.956
vom Browser konsumiert werden kann.

00:12:33.776 --> 00:12:36.696
Aber der Modulbaum und so weiter und wie das geliefert wird,

00:12:36.696 --> 00:12:38.736
das bleibt, wo ich es gleich kriege, so sehr, sehr wettnah.

00:12:39.256 --> 00:12:42.996
Richtig. Und das ist ein guter Punkt, da können wir gleich einsteigen,

00:12:43.096 --> 00:12:46.416
denn Viet hat eben diese Besonderheit, das ist halt super schnell im Vergleich

00:12:46.416 --> 00:12:50.636
zu Webpack damals, weil Webpack hat ja den Ansatz gehabt, okay, ich bundle erstmal.

00:12:52.016 --> 00:12:54.916
Bundle alle Fires, muss die irgendwie verarbeiten, gerade so TypeScript zu JavaScript,

00:12:55.096 --> 00:12:58.896
damit der Browser es versteht, verschiedene andere Sachen und das dauert ja

00:12:58.896 --> 00:13:00.736
erstmal. Es dauert eine gewisse Zeit.

00:13:01.436 --> 00:13:04.196
Viet macht das halt anders, sagt, okay, es gibt zwar ein paar Sachen,

00:13:04.296 --> 00:13:09.136
die werden sozusagen präpariert oder pre-bundled, aber es gibt keinen richtigen Bundle-Step.

00:13:09.616 --> 00:13:13.456
Und wie gibt es dafür im Dev-Server ES-Build? Ist in Go geschrieben, recht schnell auch.

00:13:14.296 --> 00:13:17.676
Und da ist die Idee, okay, ich habe den Entry-Chunk und alles Weitere löse ich

00:13:17.676 --> 00:13:19.976
über diese dynamischen Importe. Das sage ich, okay, wenn was anderes gebraucht

00:13:19.976 --> 00:13:21.876
wird, dann lade ich das einfach der Browser-Leters.

00:13:22.376 --> 00:13:26.356
Das ist halt ganz cool. In Produktion dann eben Roll-Up, weil ja,

00:13:26.456 --> 00:13:30.616
ES-Build ist natürlich auch limitiert, hat einen kleineren Scope und Roll-Up

00:13:30.616 --> 00:13:32.076
hat natürlich eine sehr schöne Plugin-API.

00:13:32.316 --> 00:13:37.796
Also ES-Build hat auch Plugins, aber die Roll-Up-Hooks, die auch mittlerweile so viel genutzt werden.

00:13:38.336 --> 00:13:43.256
Die sind da recht freundlich und einfach und da kann man sehr einfach Plugins erstellen.

00:13:43.576 --> 00:13:46.896
Plus Rollup ist natürlich nochmal ein bisschen besser, was so die Production

00:13:46.896 --> 00:13:49.336
Bundles angeht, Tree Shaking, etc.

00:13:50.096 --> 00:13:54.416
Und da hat man so ein bisschen das Problem von diesem, ja, jetzt nutzt man zwei Bundler.

00:13:55.056 --> 00:13:58.016
Einmal für Dev, immal für Prod. Könnt ihr euch ja denken, die Probleme,

00:13:58.196 --> 00:14:00.616
oh, was im Dev vielleicht geht, könnte ein Prod kaputt gehen.

00:14:00.856 --> 00:14:05.636
Kommt halt drauf an, was es genau ist, wie das aussieht, aber dieses Risiko gibt es immer.

00:14:05.736 --> 00:14:09.116
Gerade auch für Maintainern zu sagen, naja gut, dann müssen wir aber beides

00:14:09.116 --> 00:14:13.976
supporten, so vielleicht keine Ahnung, eine Unified API für beides schreiben, etc.

00:14:14.836 --> 00:14:18.296
Es gibt aber auch noch andere Probleme, ein anderes Problem von diesem Unbundled-Ansatz,

00:14:18.936 --> 00:14:24.196
und der wurde dann so ein bisschen spannender, als Veed auch in die Enterprise-Welt

00:14:24.196 --> 00:14:25.876
so ein bisschen rübergeschwappt ist.

00:14:26.516 --> 00:14:30.576
Das dauert ja immer, Enterprise ist ja eher etwas langsamer und behäbiger,

00:14:30.716 --> 00:14:33.456
aber irgendwann kann man, ja gut, lass mal Veed nutzen.

00:14:33.636 --> 00:14:37.316
Und wenn du dann aber so 10.000 Komponenten hast und dann noch ganz viele Dependencies,

00:14:37.656 --> 00:14:40.316
dann ist dieser Unbundle-Ansatz schwierig mit der Skalierung,

00:14:40.416 --> 00:14:42.296
weil dann hast du auf einmal auch zehntausende Requests.

00:14:42.436 --> 00:14:45.256
Und wenn man dann noch irgendwie einen Proxy hat, weil ja Corporate Environment.

00:14:46.236 --> 00:14:50.456
Ja, tricky, dann hat man halt diese Requests und ist erstmal nur für einen Dev-Server,

00:14:50.576 --> 00:14:54.716
aber man will ja auch Features irgendwie bauen, dann dauert das halt alles recht

00:14:54.716 --> 00:14:56.856
gerne. Nur die Startups einbücherweise.

00:14:57.796 --> 00:15:02.336
Und diese zwei Punkte haben dann sozusagen einmal halt eben diesen Overhead

00:15:02.336 --> 00:15:07.056
von gut zwei Bundler unter der Haube Wie man das aus jeglicher Sicht und eben,

00:15:07.827 --> 00:15:11.387
das Thema Inkonsistenzen plus sehr langsame Dev Server für Enterprise,

00:15:11.767 --> 00:15:14.287
da war so der Punkt, lasst doch dieses Layer vereinheitlichen.

00:15:16.607 --> 00:15:19.287
Und da gab es natürlich verschiedenste Ansätze. Da könnte man jetzt sagen,

00:15:19.347 --> 00:15:22.647
gut, wir nehmen jetzt einfach eins der Projekte, in dem Fall Rollup,

00:15:22.747 --> 00:15:26.007
weil das ist ja schon in Produktion genutzt, und klatscht einfach Rust drauf,

00:15:26.127 --> 00:15:27.247
schreiben das Rust neu und fertig.

00:15:27.867 --> 00:15:31.567
Und genau das ist Rolldown nicht. Also das ist immer ganz wichtig.

00:15:32.007 --> 00:15:35.987
Es ist kein 1 zu 1 Rust-Port, weil so kommt es ja jetzt darüber.

00:15:36.267 --> 00:15:39.547
Das ist wahrscheinlich ich auch ein bisschen eine Werbesache,

00:15:39.627 --> 00:15:43.007
weil das Erste, was dort noch steht, Speed of Rust, Rollup Compatible.

00:15:43.147 --> 00:15:44.567
Passt, cool. Weiter lese ich eh schon nicht.

00:15:44.747 --> 00:15:47.267
Das ist eh schon viel zu viel Information für einen Freitagmorgen.

00:15:47.827 --> 00:15:50.767
Und deswegen habe ich natürlich den Eindruck, passt, in Rust neiggeschrieben,

00:15:50.827 --> 00:15:54.127
das ist ja sowieso ein Meme, also rewrite it in Rust, das passiert immer noch.

00:15:54.707 --> 00:15:59.807
Gute Sache sollte jeder machen, unbedingt, und dann bei mir Workshops einkaufen. Aber super Ding.

00:16:00.287 --> 00:16:05.147
Aber du hast gesagt, das ist es nicht. Jetzt wäre ich gespannt, was ist das extra?

00:16:05.627 --> 00:16:08.167
Ja, so die Idee ist, also genau, es steht da, Rollup-Compatible,

00:16:08.247 --> 00:16:11.227
das ist auch richtig, das war uns auch wichtig, weil die Idee war zu sagen,

00:16:11.347 --> 00:16:13.247
wir wollen dieses Layer, also

00:16:13.247 --> 00:16:16.207
diese Schicht von Veed effektiv vereinheitlichen, zu sagen, ein Bander.

00:16:17.127 --> 00:16:18.987
Das bedeutet aber auch, wir wollen jetzt niemanden dazu zwingen,

00:16:19.027 --> 00:16:21.547
jetzt musst du deine Plugins neu schreiben, jetzt muss hier alle müssen updaten,

00:16:21.667 --> 00:16:24.407
weil realistisch passiert halt nicht. Das dauert Jahre.

00:16:26.087 --> 00:16:30.767
Idealerweise, die Rollup-API, die ist so kompatibel und so, also anders,

00:16:30.847 --> 00:16:35.867
die ist so simpel und einfach und so schön zu nutzen, dann war die Idee,

00:16:35.927 --> 00:16:37.007
lass sie doch einfach weiter nutzen.

00:16:37.007 --> 00:16:39.827
Also lasst uns Roller-Kompatibel bleiben, sodass all die Roller-Plugins,

00:16:39.947 --> 00:16:43.347
die es schon gibt, und das sind schon eine ganze Menge, die können einfach weiter genutzt werden.

00:16:43.847 --> 00:16:47.927
Also auch da natürlich so ein bisschen die Frustration des Nutzers reduzieren.

00:16:48.507 --> 00:16:52.327
Idealerweise, das wird in Veed 8 der Fall sein, wenn alles gut geht,

00:16:52.727 --> 00:16:57.187
wird Rolldown dann der Standard-Bundler für Veed und it just works.

00:16:57.407 --> 00:16:59.367
Also alles funktioniert so, wie es ist.

00:16:59.767 --> 00:17:02.007
Aktuell kann man das auch schon austesten. Es gibt ein Paket,

00:17:02.067 --> 00:17:04.807
das nennt sich Rolldown-Veed, also Veed mit Rolldown.

00:17:05.387 --> 00:17:08.947
Gibt es einen langen Announcement-Blogpost zu, auf der Void-Zero-Seite und auch

00:17:08.947 --> 00:17:10.507
ein gutes Migrations-Guide, weil

00:17:10.507 --> 00:17:13.227
es gibt natürlich wie immer gerade in der Testphase noch ein, zwei Sachen.

00:17:13.947 --> 00:17:16.487
Aber letztendlich ist es ein Drop-in-Replacement. Also ich nehme Veed,

00:17:16.807 --> 00:17:19.187
ich nehme das Paket, was ich in meiner Package JSON habe, ich schreibe einen

00:17:19.187 --> 00:17:23.267
Alias mit meinem Paketmanager, den ich halt nutze.

00:17:23.707 --> 00:17:26.267
Keine Ahnung, PNPM oder Yarn oder NPM als Override.

00:17:26.807 --> 00:17:28.667
Und dann kann ich schon Veed und Rolldown benutzen.

00:17:29.367 --> 00:17:32.267
Das ist in einer sehr guten Phase. Rodan selber als Bundler ist ein Beta-Beta.

00:17:33.088 --> 00:17:37.148
Und vereinheitlicht das Ganze schon auf dem Level. Das löst halt das Problem,

00:17:37.568 --> 00:17:42.968
dass man erstmal sagt, okay, zum einen Geschwindigkeit, zum anderen die Inkonsistenzen

00:17:42.968 --> 00:17:47.028
durch einen Bundler sind halt deutlich weniger und man kann es halt direkt austesten.

00:17:47.608 --> 00:17:50.388
Kurz aber noch zu der Frage zurück, um darauf zurückzukommen,

00:17:50.428 --> 00:17:53.168
was mehr als Roll-Up? Wir haben ja noch die ES-Build-Seite.

00:17:53.508 --> 00:17:56.468
Da kann man sagen, okay, den Speed von ES-Build wollen wir nicht nur beibehalten,

00:17:56.548 --> 00:17:57.388
sondern wollen auch schneller sein.

00:17:57.888 --> 00:18:01.868
Das ist auch der Fall. Es gibt Benchmarks mit allen Bundlern und Roll-Up,

00:18:01.868 --> 00:18:05.208
sorry, Rolldown ist der schnellste Bundler, was das da angeht.

00:18:05.948 --> 00:18:08.988
Auch da gebe ich gerne noch mal Links in den Show Notes zu finden,

00:18:09.068 --> 00:18:10.808
für alle Leute, die Zahlen nachlesen wollen.

00:18:11.548 --> 00:18:15.568
Und das dritte ist Webpack. Jetzt kann man sagen, hier Webpack ist jetzt ja

00:18:15.568 --> 00:18:19.728
nicht mehr so super relevant in neuen Projekten, aber was Webpack besser macht.

00:18:20.408 --> 00:18:25.968
Richtig, in alten noch genug. Und was Webpack aber besser macht als Rollup oder

00:18:25.968 --> 00:18:28.928
auch ES-Build ist das Thema Optimierung.

00:18:29.188 --> 00:18:31.848
Zum Beispiel in Webpack gab es eine schöne Möglichkeit, wie ich meine Chunks

00:18:31.848 --> 00:18:34.208
definiere, also die JavaScript-Files, die mal rauskommen.

00:18:34.788 --> 00:18:38.008
Rollup kann das so zu einem gewissen Teil, da gibt es so eine Option,

00:18:38.188 --> 00:18:40.248
die heißt Manual Chunks, und da kann man so ein paar Sachen angeben,

00:18:40.308 --> 00:18:43.828
aber es ist nicht so flexibel und es ist nicht so granular bestimmbar.

00:18:44.288 --> 00:18:46.988
Deswegen war da die Idee, zu sagen, gut, okay, ein Rolldown,

00:18:47.068 --> 00:18:50.488
wir wollen das Beste aus allen Welten, wenn wir also diese erweiterten Optimierungsfeatures

00:18:50.488 --> 00:18:54.408
direkt mit im Bundler drin haben, und weil weder Rollup noch ES-Bild sagen,

00:18:54.488 --> 00:18:55.168
wir wollen das unterstützen,

00:18:55.748 --> 00:18:58.988
hat man eben nicht gesagt, man forkt irgendwie Rollup, macht das Rustify,

00:18:59.148 --> 00:19:04.068
sondern man baut halt das Ganze mit den besten Teilen der vorherigen,

00:19:04.228 --> 00:19:06.288
sozusagen Prior Art, der vorherigen Technologien.

00:19:07.668 --> 00:19:10.368
Okay. Du hast gesagt, dass Rolldown

00:19:10.368 --> 00:19:14.388
die gleiche Plugin-Infrastruktur verwenden können soll wie Rollup.

00:19:14.568 --> 00:19:19.068
Jetzt ist natürlich das Spannende, weil Plugins in Rollup sind ja in JavaScript geschrieben. Richtig.

00:19:19.448 --> 00:19:22.868
Und wie laufe ich die jetzt in einer rastbasierten Tool?

00:19:23.108 --> 00:19:26.248
Brich ich da aus und lege mich wieder in Node-Jazz? Oder habt ihr dort irgendwo

00:19:26.248 --> 00:19:28.388
eine Embedded Engine, die dort funktioniert?

00:19:29.768 --> 00:19:33.728
Und wenn eine Embedded Engine wie kompatibel ist die zu der echten Welt?

00:19:33.968 --> 00:19:35.308
Also das ist eine spannende Frage.

00:19:36.088 --> 00:19:40.288
Absolut, absolut. Das Schöne ist, also die Idee ist, dass eben alles entsprechend

00:19:40.288 --> 00:19:43.408
JavaScript läuft, das wird dann auch in JavaScript ausgeführt, das ist auch in Ordnung.

00:19:43.708 --> 00:19:46.808
Es gibt ja nur ganz viel Optimierungspotenzial. Eine der Sachen ist nämlich,

00:19:47.148 --> 00:19:50.628
okay, bisher war das so bei Rollup und dann auch entsprechend Beat-Plugins.

00:19:51.448 --> 00:19:53.848
Die werden einfach für jedes File ausgeführt.

00:19:54.328 --> 00:19:56.848
Man hat dann zwar in einer Funktion zum Beispiel, ich habe so einen Hook,

00:19:57.048 --> 00:20:00.148
der sagt Transform, also ich möchte gerne den Code transformieren und dann sage

00:20:00.148 --> 00:20:03.528
ich, oh, und das Pfeil nicht mit, was ich .view endet oder .ts endet oder nicht

00:20:03.528 --> 00:20:05.668
den Query-Parameter hat, dann machen wir nichts.

00:20:06.351 --> 00:20:08.691
Das ist ganz schön, in JavaScript funktioniert das wunderbar.

00:20:09.071 --> 00:20:11.291
Jetzt hat man nur das Problem, wenn das wirklich für jedes File passiert,

00:20:11.371 --> 00:20:16.271
ist natürlich der Overhead zwischen der Kommunikation Rust JavaScript recht hoch.

00:20:16.811 --> 00:20:20.151
Heißt, eine Sache, die eingeführt wurde, und das ist was, was es in Rollup gibt,

00:20:20.231 --> 00:20:23.511
das ist was man jetzt schon nutzen kann, um dann einfach sicher und bereit für

00:20:23.511 --> 00:20:27.411
die Zukunft zu sein, auch in Wien, sind sogenannte Plug-in-Hook-Filter.

00:20:27.631 --> 00:20:31.351
Also statt dass man sagt, ich hab diesen Check mit, oh, endet diese Datei,

00:20:31.531 --> 00:20:34.571
oder endet der Name des Files mit TS in der Funktion selber,

00:20:34.571 --> 00:20:38.891
an dieser Transform-Funktion, sagt man, okay, ist das jetzt ein Objekt?

00:20:39.071 --> 00:20:41.411
Und dann habe ich ein Filter-Objekt und dann habe ich ein Handler.

00:20:41.511 --> 00:20:42.711
Handler ist die Funktion wie zuvor.

00:20:42.911 --> 00:20:47.091
Und ein Filter kann ich sagen, hey, ich filtere nach ID, also nach dem Namen,

00:20:47.751 --> 00:20:51.211
oder nach dem Code, der drin ist, und kann dann sagen, ich lasse ein Regex laufen

00:20:51.211 --> 00:20:52.851
oder ich mache irgendwie Glob-Pattern.

00:20:53.471 --> 00:20:56.211
Und die sind dann natürlich auch wiederum evaluierbar in Rust,

00:20:56.371 --> 00:20:59.671
sodass man da sagt, okay, der Overhead da ist halt so gering wie möglich.

00:21:00.511 --> 00:21:04.031
Trotzdem ist es halt möglich für Leute weiterhin, Sachen in JavaScript zu schreiben,

00:21:04.031 --> 00:21:06.791
Weil andersrum würde man halt keine weiteren Plugins schreiben.

00:21:07.191 --> 00:21:14.651
Oder weniger Leute, sage ich mal. Okay, das heißt, der Filter macht ja total Sinn, also egal wo.

00:21:14.931 --> 00:21:18.491
Aber du sagst, dieser Filter greift schon, keine Ahnung, dort,

00:21:18.591 --> 00:21:23.411
wo ich meinen File-Glob habe, in Rust, hin, schmeißt die Sachen raus, die ich nicht brauche.

00:21:23.531 --> 00:21:26.311
Und dann kommt aber der Teil, wo ich JavaScript ausführen muss.

00:21:26.391 --> 00:21:28.951
Das heißt, da läuft ein Notprozess nebenbei, ein Rust-Prozess,

00:21:29.091 --> 00:21:30.931
die kommunizieren hin und her.

00:21:31.551 --> 00:21:36.431
Also genau, die kommunizieren. Das Spannendste da ist auch, es gibt einige Teile,

00:21:36.631 --> 00:21:38.151
die sehr interessant sind.

00:21:38.451 --> 00:21:42.131
Nämlich auch das andere ist dann so das Thema Tourismap-Generierung zum Beispiel.

00:21:42.331 --> 00:21:45.191
Oder ich möchte irgendwie meinen AST umbauen, weil wenn ich sage,

00:21:45.571 --> 00:21:46.771
geht dann natürlich auch weiter.

00:21:46.931 --> 00:21:51.591
Ich nehme meinen Code, meinen Codestring und den möchte ich in den Abstract Syntax Tree umwandeln.

00:21:51.771 --> 00:21:53.971
Also die schematische Darstellung des Codes.

00:21:54.211 --> 00:21:57.031
Die ist halt ein bisschen anders auf der Rust-Seite, auf der JavaScript-Seite.

00:21:57.391 --> 00:21:59.431
Und jetzt will man nicht immer ping-pong hin und her spielen.

00:21:59.651 --> 00:22:03.751
Es gibt nämlich eine Technologie, die wir anwenden und die nennt sich Raw Transform.

00:22:04.131 --> 00:22:08.191
Also die Idee ist nicht zu sagen, genau, Raw Transform von Rust in JavaScript,

00:22:08.991 --> 00:22:12.131
sondern wir nehmen einfach das Ganze, was in Memory ist, packen das in einen

00:22:12.131 --> 00:22:13.651
Shared Area Buffer, senden das rüber,

00:22:14.391 --> 00:22:16.651
und von da aus kann man halt ganz viele Sachen machen, wie okay,

00:22:16.791 --> 00:22:19.731
wenn ich zum Beispiel sage, ich möchte durch diesen Abstract Syntax Tree gehen

00:22:19.731 --> 00:22:23.591
und ich habe so ein Visitor Pattern, irgendwie klassisch bei Linting oder ähnliches,

00:22:23.991 --> 00:22:25.731
dann kann ich vielleicht auch sagen, ich.

00:22:27.071 --> 00:22:29.631
Deserialisiere nur die Nodes, die mich interessieren, ich kann das lazy machen.

00:22:30.371 --> 00:22:32.611
Also da brauchst du nicht den gesamten Astran transformieren,

00:22:32.711 --> 00:22:35.171
sondern nur da, wo du gerade bist und dort gerade hingreifen willst.

00:22:35.871 --> 00:22:38.911
Du hast gerade Shared Array Buffer gesagt, wie kommuniziert es hier zwischen

00:22:38.911 --> 00:22:41.591
Rust und JavaScript? Ist das über...

00:22:42.892 --> 00:22:46.172
Und JavaScript gibt einen Host-Prozess, der noch ein Rust aufruft.

00:22:46.612 --> 00:22:50.412
Nee, es müsste andersrum sein. Es muss schon andersrum sein. Ja, genau, richtig.

00:22:51.552 --> 00:22:53.972
Und dann gibt es natürlich weitere Sachen, die man machen kann.

00:22:54.112 --> 00:22:57.232
So was wie wenn ich jetzt dieses Transform-Thema, wie transformiert man Code,

00:22:57.372 --> 00:23:00.372
dann gibt es üblicherweise Magic String, nennt sich das ein Paket,

00:23:00.432 --> 00:23:03.752
dass ich sage, ich habe jetzt meinen Source-Code, dann möchte ich was ändern, dann apply ich das.

00:23:04.132 --> 00:23:07.372
Da gibt es auch Ideen, dass man sagt, okay, man möchte da eine API für schreiben,

00:23:07.552 --> 00:23:10.772
aber diese ganzen Transformationen, die sollen dann halt auch auf der Rust-Seite

00:23:10.772 --> 00:23:14.412
passieren. Also ich gebe effektiv nur die Instruktionen rüber und mache das nicht in JavaScript.

00:23:15.912 --> 00:23:18.352
Da gibt es auf jeden Fall einige Sachen, die wir uns anschauen,

00:23:18.412 --> 00:23:20.052
wo das performance-technisch einfach noch besser wird.

00:23:20.132 --> 00:23:22.892
Aber allein, dass man sagt, der Hauptteil ist in Rust geschrieben und die Plugins

00:23:22.892 --> 00:23:25.912
für die paar Fires und die Szenarien sind abgedeckt.

00:23:26.012 --> 00:23:28.992
Und alles, was zum Beispiel Veed nativ ist, ist auch in Rust geschrieben.

00:23:29.052 --> 00:23:32.432
Sowas wie Resolving, Aliasing, etc., Reporting.

00:23:32.992 --> 00:23:35.892
Da kann man halt schon recht viel abdecken, sodass nur noch ein kleiner Teil

00:23:35.892 --> 00:23:38.212
dann dazukommt. und mit den Hookfiltern.

00:23:38.592 --> 00:23:44.072
Ich sage mal, ein Memory-Sharing zwischen zwei Prozessen ist jetzt keine einfache

00:23:44.072 --> 00:23:46.192
Sache, das sauber und richtig zu machen.

00:23:46.392 --> 00:23:51.892
Da bin ich interessiert. Vielleicht machen wir noch off the record,

00:23:52.152 --> 00:23:55.792
dass du ein paar Seiten im Gita-Projekt sagst, weil das würde mich jetzt echt

00:23:55.792 --> 00:23:59.372
interessieren, wie da die Kommunikation stattfindet. Aber es ist sehr interessant.

00:24:00.932 --> 00:24:02.772
Denkst du, es wird dann auch einmal möglich sein, wenn ich sage,

00:24:02.872 --> 00:24:09.552
okay, ich bin Rust-fähig, ich kann Rust-Plugins schreiben, die,

00:24:09.592 --> 00:24:13.272
keine Ahnung, in einer Web-Assembly-Sandbox oder so weiterlaufen, hinzuzufügen.

00:24:13.412 --> 00:24:19.552
Weil tatsächlich ist ja dann, je umfangreich diese Transformation ist,

00:24:20.032 --> 00:24:23.012
wird es halt auch in JavaScript auch wieder zum Bottleneck. Genau, richtig.

00:24:23.832 --> 00:24:29.072
Das wird möglich sein. Aktuell ist die Flaggininfrastruktur aber noch nicht fertig.

00:24:29.632 --> 00:24:31.632
Also gerade wenn man sagt, okay, ich habe da Interesse dran,

00:24:31.792 --> 00:24:35.452
am besten auf den Roller-Diskol kommen, da sind die Entwickler auch mit Quatschen.

00:24:35.772 --> 00:24:37.812
Ist auf jeden Fall eine Möglichkeit, dass man gesagt hat, genau so,

00:24:37.912 --> 00:24:43.032
gerade kostspieligere Transformationen könnte man dann irgendwie entsprechend als Plugin auslagern.

00:24:45.152 --> 00:24:49.812
Ja, wir haben jetzt sehr viel über App-Striks, Syntax-Trees und so weiter geredet.

00:24:49.952 --> 00:24:56.232
Du wirst ja wahrscheinlich dann Lexapars-Implementierung haben, und ich denke mal, man,

00:24:57.278 --> 00:25:01.758
Also, wenn sie irgendwie mitgebracht haben, wird die nicht in OXC und in Roldown

00:25:01.758 --> 00:25:04.558
separat entwickelt, sondern das ist irgendwie ein geteiltes Projekt.

00:25:06.138 --> 00:25:13.498
Perfekte Überleitung. So ist es. Denn Roldown selbst nutzt eben den Oxidation Compiler, den OXC.

00:25:13.818 --> 00:25:17.618
Das Logo, ich finde immer die Story ist so gut dazu, es ist ein Anker.

00:25:18.038 --> 00:25:19.918
Der Anker ist braun, weil der ist rostig.

00:25:20.418 --> 00:25:24.678
Und wie entsteht Rost? Durch Oxidierung. Deswegen Oxidation Compiler.

00:25:24.678 --> 00:25:28.798
Ja, ich bin jetzt seit fünf Jahren in der Rast-Community tätig.

00:25:28.918 --> 00:25:31.658
Wir haben Oxide-Computer, die Oxidation-Conf.

00:25:32.218 --> 00:25:37.358
Ja, es ist wie jemand, der aus dem Javascript-Universum kommt. Es ist mega lustig.

00:25:38.478 --> 00:25:44.578
Consulting-Bude, die Corrored hast, weil Corrosion ist ja auch ein Nebeneffekt von Rostner.

00:25:44.778 --> 00:25:47.438
Das ist schon gut. Die Wortspieler, herrlich.

00:25:48.678 --> 00:25:51.938
Das Wunderschönste war, ich habe jetzt mit den Leuten von Volvo geredet und

00:25:51.938 --> 00:25:54.218
sie waren sehr happy, dass sie endlich Rost in Volvo-Autos haben.

00:25:54.218 --> 00:25:57.438
Also Rust in Volvo Cast. Das war herrlich.

00:25:58.658 --> 00:26:02.838
Da findet man fünf Munde Spitze. Genau, da haben wir eben entsprechend das OXC-Projekt

00:26:02.838 --> 00:26:05.558
und das ist auch so ein Thema, genau, ein Compiler.

00:26:05.838 --> 00:26:09.758
Jetzt sind wir auch so, ja, okay, was passiert da? Das ist effektiv ein Set

00:26:09.758 --> 00:26:12.798
von Tools fürs JavaScript-Universum in Rust geschrieben.

00:26:13.078 --> 00:26:17.018
Genau, und das enthält natürlich auch einen Parser, der ist komplett spec compliant,

00:26:17.198 --> 00:26:19.678
also alle Stage-4-Tests funktionieren da, ist ja auch super wichtig.

00:26:20.318 --> 00:26:22.678
Alle Conformance-Tests. Und der ist halt auch wirklich schnell.

00:26:22.958 --> 00:26:27.138
Also die Idee ist auch von OXC zu sagen, das sind so die schnellsten Tools mit,

00:26:27.218 --> 00:26:28.198
die hat auch gut funktionieren.

00:26:28.538 --> 00:26:32.798
Wir hatten SWC vorhin schon erwähnt, im Thema von sehr stark mit Next integriert.

00:26:32.818 --> 00:26:35.618
Das ist ja auch im React-Universum immer eine gute Möglichkeit zu sagen,

00:26:35.758 --> 00:26:38.138
ich nehme kein Barbell oder ähnliches.

00:26:38.338 --> 00:26:41.978
Und der Parser von OXC ist dreimal schneller als der SWC.

00:26:42.718 --> 00:26:44.838
Der SWC hat auch in Rust geschrieben, also da sieht man auch schon,

00:26:44.898 --> 00:26:46.878
das ist nicht nur die Sprache. Ist auch immer ganz nett.

00:26:47.600 --> 00:26:50.660
Und da kommen noch weitere Sachen hinzu. Also auch das Resolven,

00:26:50.680 --> 00:26:54.420
ich habe da irgendwie einen großen Modulgraf, ich muss erstmal die Files entsprechend

00:26:54.420 --> 00:26:57.660
finden, ich sage, ich mache Import oder ein Require oder ähnliches.

00:26:58.040 --> 00:27:01.300
Das wird sowohl ECMAScript Modules als auch CommonJS supported,

00:27:01.480 --> 00:27:07.880
also Imports und auch das gute eben gerade Require oder Module und Exports, eben auch ein Bundler.

00:27:08.480 --> 00:27:11.960
Das ist beides möglich. Natürlich idealerweise heutzutage sollte man nur noch

00:27:11.960 --> 00:27:17.020
ESM verwenden, wenn möglich, aber React alleine. Ja, wenn möglich, du sagst es ja schon.

00:27:17.460 --> 00:27:21.600
Also wir haben es ja auch vorhin gerade schon mal gesagt, bei neuen Projekten

00:27:21.600 --> 00:27:27.080
hast du halt Wied, aber es gibt halt viele alte und es gibt wirklich viele alte

00:27:27.080 --> 00:27:29.560
und es ist ja auch jetzt kein.

00:27:30.380 --> 00:27:33.740
Man kann sich ja da nicht hinsocksetzen und sagen, ich perfectere das jetzt

00:27:33.740 --> 00:27:37.020
mal alles, du musst dir jedes Mal abwägen, lohnt sich das jetzt oder ist es

00:27:37.020 --> 00:27:39.640
auch irgendwie egal, weil es ja irgendwie so weiterläuft.

00:27:40.160 --> 00:27:42.760
Genau, was ist der Business-Wert? Das ist ja auch immer so ein Punkt,

00:27:43.560 --> 00:27:46.080
weil man wird ja nicht nur bezahlt und sagen, ich mache das alles schön neu,

00:27:46.200 --> 00:27:50.840
sondern klar, wenn man jetzt sieht, okay, wenn ich das von CJS auf ESM konvertiere,

00:27:50.940 --> 00:27:54.840
ist es auf einmal dreimal kleiner und auch schneller, ist es super.

00:27:56.180 --> 00:27:58.340
Spannend ist es bei sowas halt bei Libraries. Wenn man sagt,

00:27:58.440 --> 00:28:01.000
ich habe eine Library, die wird von voll vielen genutzt und die ist halt CommonJS,

00:28:01.380 --> 00:28:05.140
dann kann ich die halt nur sehr begrenzt reshaken, also ungenutztem Code entfernen,

00:28:05.240 --> 00:28:06.240
Dead Code Elimination und Co.

00:28:06.880 --> 00:28:11.340
Mit ESM ist das deutlich einfacher. Rodan hat vor ein paar Tagen offiziell jetzt

00:28:11.340 --> 00:28:13.280
auch CGS-Tree-Shaking implementiert.

00:28:13.660 --> 00:28:17.960
Hauptsächlich, wir haben Strube geredet, React als Dependency ist kein ESM,

00:28:18.060 --> 00:28:19.780
wird wahrscheinlich auch nicht so schnell ein ESM werden.

00:28:20.840 --> 00:28:24.580
Ja, da braucht man also auch ein bisschen Optimierung dort, gerade wenn es die

00:28:24.580 --> 00:28:29.160
populärste Lösung ist im Ökosystem, was so Frameworks angeht.

00:28:30.360 --> 00:28:33.200
Aber natürlich ESM hauptsächlich ist so die Idee.

00:28:33.440 --> 00:28:35.520
Und dann gibt es noch andere Sachen. Wir haben einen Transformer,

00:28:35.560 --> 00:28:38.920
weil was man auch machen möchte, ist ja zu sagen, okay, ich habe jetzt ein Browser-Target

00:28:38.920 --> 00:28:44.540
oder ein Node-Target, sowas wie ich möchte gerne Node 16 und Jünger supporten

00:28:44.540 --> 00:28:47.780
oder, keine Ahnung, Chrome 140, was auch immer,

00:28:48.440 --> 00:28:51.980
dann gebe ich das Ganze an und idealerweise möchte man ja Syntax-Lowering haben,

00:28:52.100 --> 00:28:54.860
also sowas wie, oh, Optional-Chaining geht in, was weiß ich,

00:28:55.060 --> 00:28:59.920
Node 14, ich will Node 14 aber supporten, dann wird das entsprechend gepolyfillt, wenn möglich.

00:29:00.060 --> 00:29:03.640
Proxys und sowas kann man ja nicht polyfillen, aber wenn möglich sollte das

00:29:03.640 --> 00:29:04.620
entsprechend machbar sein.

00:29:04.820 --> 00:29:07.680
Und das ist halt auch mit eingebaut, da gibt es einen OXC-Transformer für,

00:29:08.080 --> 00:29:09.460
Genauso, Typeskripping und Co.

00:29:10.060 --> 00:29:14.760
Und supporten tut das ganze Typescript, JSX, natürlich normales JavaScript auch.

00:29:14.940 --> 00:29:21.400
Und ist halt auch Babel-kompatibel. Und man kann sogar die DTS-Files damit stellen,

00:29:21.620 --> 00:29:24.620
also die Declaration-Files für Typescript auch recht schnell.

00:29:28.291 --> 00:29:31.771
Weil jetzt gerade Pause ist, springe ich jetzt mal rein und gehe nochmal komplett

00:29:31.771 --> 00:29:35.951
zurück, weil ich wollte bei Veed nochmal was nachfragen.

00:29:36.131 --> 00:29:40.711
Es gibt jetzt eben das Package Rolldown Veed, was man schon mal ausprobieren

00:29:40.711 --> 00:29:44.671
könnte, aber wenn ich es jetzt richtig verstanden habe mit Veed 8,

00:29:45.051 --> 00:29:47.471
kommt es dann sowieso mit Rolldown.

00:29:47.471 --> 00:29:51.271
Genau, also Beat 7 ist ja gerade erst released worden, so vor ein paar Tagen,

00:29:51.391 --> 00:29:52.411
Wochen, sowas in der Richtung.

00:29:53.011 --> 00:29:57.811
Und wann auch ihr die hört. Also vielleicht ist es wieder auch schon draußen,

00:29:57.891 --> 00:29:59.931
man weiß ja nicht, aber das wird auch ein bisschen dauern.

00:30:00.771 --> 00:30:05.131
Genau, die Idee ist, also das Ziel aktuell ist erstmal testen.

00:30:05.331 --> 00:30:08.571
Wir haben sehr viele Early Adopter schon gehabt, viele Leute haben berichtet,

00:30:08.711 --> 00:30:09.851
wie schnell ihre Builds wurden.

00:30:10.851 --> 00:30:12.891
Excalidraw als App ist vielen Leuten vielleicht ein Begriff,

00:30:13.011 --> 00:30:15.571
da haben wir uns das Ganze mal angeguckt und haben einfach mal 16.

00:30:17.471 --> 00:30:19.791
Fache Bildzeitverringerung gesehen, also nicht 16 Prozent, sondern wirklich

00:30:19.791 --> 00:30:26.131
16 mal schneller beim Bauen und haben dann entsprechend das Ganze mit Rolldownbeat mal getestet.

00:30:26.331 --> 00:30:31.551
Auch verschiedene andere Firmen, da gibt es so eine schöne Repository,

00:30:31.651 --> 00:30:35.071
die nennt sich Rolldownbeat PerfWins, haben da eingetragen, okay, wie sieht das aus?

00:30:35.311 --> 00:30:39.311
Einmal Beat vorher, dann mit Rolldownbeat und dann haben wir noch so eine experimentelle

00:30:39.311 --> 00:30:40.991
Flag für die nativen Plugins.

00:30:41.371 --> 00:30:44.071
Das ist aktuell auch experimentell, weil die noch nicht eins zu eins den gleichen

00:30:44.071 --> 00:30:47.091
Output liefern, könnte also Probleme geben, in den meisten Fällen geht aber

00:30:47.091 --> 00:30:50.211
alles gut und ja, das ist immer schon recht cool Improvements.

00:30:50.311 --> 00:30:52.231
Also da ist die Idee, wirklich testen, wenn ihr ein V-Projekt habt,

00:30:52.611 --> 00:30:55.251
das ist auch wirklich egal, welches Framework ihr da nutzt, also ob ihr da sagt,

00:30:55.331 --> 00:30:58.531
ihr nehmt vielleicht gar kein Framework oder egal, ob React Views wählt.

00:30:59.946 --> 00:31:02.666
Bei Angular könnte es ein bisschen tricky sein, weil die nutzen ja eher das

00:31:02.666 --> 00:31:04.606
Bild für ihren Bildprozess, da hilft es nicht so viel.

00:31:05.426 --> 00:31:09.746
Dadurch, dass die meisten Gains aktuell einfach im Bild sind,

00:31:10.246 --> 00:31:14.166
könnt ihr das entsprechend austesten und schreibt gerne auf Social Media oder

00:31:14.166 --> 00:31:16.526
macht ein PR in die Repo, sagt hier, wir haben es ausgetestet,

00:31:16.566 --> 00:31:19.846
das sind unsere Zahlen, immer gerne, sowas wird gern gemerged.

00:31:20.366 --> 00:31:25.826
Ja, bei GitLab hat es ja ein Kollege von mir auch ausprobiert und hat herausgefunden,

00:31:25.966 --> 00:31:29.686
dass bei uns der größte Win der Speicherverbrauch ist.

00:31:29.846 --> 00:31:34.166
Und ich glaube, da wurde fast 100 Mal weniger, also irgendwas von 5 GB auf 400 MB.

00:31:34.526 --> 00:31:37.786
Ich werfe jetzt die Zahlen im Raum, die Stimmen. Nein, ich bin jetzt einfach

00:31:37.786 --> 00:31:38.746
in der Realization-Greise.

00:31:39.466 --> 00:31:43.046
Ja, weil wir haben einen riesigen Monolithen, das muss man da an der Stelle

00:31:43.046 --> 00:31:46.706
sagen. Nein, und JavaScript-Hip lässt sich halt prinzipiell einmal aufwärts.

00:31:46.846 --> 00:31:48.466
Das ist das Erste, was es macht.

00:31:49.026 --> 00:31:51.786
Das fand ich auch so verrückt. Ich hatte das ja auch gelesen.

00:31:51.966 --> 00:31:55.006
Das Lustige war da, ich habe den PR irgendwann gefunden, weil ich hatte gesehen,

00:31:55.146 --> 00:31:59.086
dass er ein Issue aufgemacht hat in der Roadrun Beat Repository.

00:32:00.146 --> 00:32:04.126
Und da hatte ich mir den MR heißt es ja auf GitLab, den Merch Request angeguckt,

00:32:04.266 --> 00:32:07.126
das ist wichtig. Ich habe schon gerade geschrieben, MR, genau.

00:32:08.546 --> 00:32:11.166
Sehr gut. Bevor ich es gelesen habe, bevor die Nachricht kam.

00:32:11.726 --> 00:32:13.186
MR. Das ist ein großer Ding.

00:32:13.966 --> 00:32:17.986
Den Merch Request, weil es soll ja gemercht werden. Da kommt schon der Tutu-Finger

00:32:17.986 --> 00:32:22.026
von der Vanessa, wenn man das falsch brandet. Da geht's ab.

00:32:25.466 --> 00:32:28.106
Ja, den habe ich mir auf jeden Fall angeguckt und dann ging es auch so ein bisschen

00:32:28.106 --> 00:32:31.006
darum, ja, hier hast du das mal ausprobiert und was geht denn nicht und so ein

00:32:31.006 --> 00:32:33.226
bisschen hin und her und dann auch so, ja, okay, Sachen funktionieren,

00:32:33.266 --> 00:32:36.966
es gab irgendwie noch ein Lightning-CSS ein Problem und da noch eine Kernelpanic.

00:32:37.386 --> 00:32:40.086
Die wurden aber alle recht schnell behoben. Was auch immer sehr schön ist,

00:32:40.146 --> 00:32:43.386
wir sind da eigentlich sehr responsive, also wir antworten sehr schnell und

00:32:43.386 --> 00:32:44.666
fixen auch Sachen sehr schnell.

00:32:44.666 --> 00:32:48.946
Ich war total begeistert bei dem MR, weil normalerweise, wir haben jetzt auch

00:32:48.946 --> 00:32:53.526
Chest 29 und jetzt gibt es Chest 30 und dann können wir wieder drauf migrieren. Was ist Chest?

00:32:54.992 --> 00:32:58.812
Du meinst, das andere W-Test? Jetzt ist diese Technical Dead.

00:33:00.852 --> 00:33:03.592
Technical Dead und Technical Dead, aber das sind andere. Nee, jetzt aber,

00:33:04.732 --> 00:33:08.412
wir haben jetzt fast 29, es gibt jetzt fast 30 und dann ist die Frage,

00:33:08.592 --> 00:33:12.372
okay, da fehlen jetzt nur 130 Specs, also wir haben viele, ich kann euch jetzt

00:33:12.372 --> 00:33:16.172
nicht mal die Zahl sagen, so viele, aber lohnt es sich überhaupt, die zu fixen,

00:33:17.412 --> 00:33:19.812
weil sinnvoller wäre es ja eigentlich, auf W-Test dann zu gehen.

00:33:20.132 --> 00:33:23.652
Aber vielleicht gibt es da dann auch wieder Migrationsproblemchen und sowas,

00:33:23.652 --> 00:33:26.372
Also ich weiß gar nicht, wer jetzt da gerade so sein Köpfchen drauf hat,

00:33:26.432 --> 00:33:27.772
wer dafür gerade verantwortlich ist.

00:33:28.192 --> 00:33:31.692
Aber es ist halt immer so ein bisschen ein Auffall. Und als dieser MA geöffnet

00:33:31.692 --> 00:33:36.272
wurde mit Read on Rolldown, dann war das, oh ja, das läuft eigentlich so ganz gut.

00:33:36.432 --> 00:33:39.452
Und dann kam der Alex Lichter daher und hat uns auch nochmal mit ausgeholfen.

00:33:39.572 --> 00:33:40.352
Ich weiß überhaupt nicht, wie

00:33:40.352 --> 00:33:44.152
du da mal kurz, also das ist ja wirklich ein super Job, den du da machst.

00:33:44.412 --> 00:33:46.512
Danke, danke. Weil das hat natürlich auch den Vorteil, wenn man Open Source

00:33:46.512 --> 00:33:49.692
ist, dann bekommt man halt auch Hilfe plötzlich von außen.

00:33:49.972 --> 00:33:52.812
Absolut. Dann muss man sich gar keine Hilfe reinholen, dann kommt die plötzlich.

00:33:53.652 --> 00:33:57.312
Und genau meine große Frage wäre jetzt für alle, die jetzt dazuhören und sich

00:33:57.312 --> 00:33:58.472
denken, boah, ich will das auch,

00:33:58.692 --> 00:34:02.772
aber ist das eine Migration, die jetzt tatsächlich vielleicht bei allen so ein

00:34:02.772 --> 00:34:05.132
bisschen einfacher geht oder müssen wir jetzt ein bisschen Angst haben,

00:34:05.232 --> 00:34:10.432
wenn BID 8 rauskommt, dass wir bei manchen Repositories auf BID 7 bleiben müssen,

00:34:10.592 --> 00:34:15.332
weil das bei uns irgendwie mit Rolldown funktionieren wird.

00:34:15.792 --> 00:34:19.812
Genau, das Einfachste ist, die Angst zu nehmen und einfach mal zu testen.

00:34:19.812 --> 00:34:24.372
In, ich glaube, also ich würde sagen, in den meisten Fällen sollte das kein Problem sein.

00:34:24.432 --> 00:34:27.452
Das ist ja auch gerade die Idee, weshalb es nicht einfach sofort in Main Veed

00:34:27.452 --> 00:34:29.812
reingemerged wird, sondern weil es ein separates Paket gibt,

00:34:29.912 --> 00:34:32.212
zu sagen, okay, guck dir das mal an, teste das mal,

00:34:32.892 --> 00:34:35.972
damit wir auch einfach sicherstellen, die weirdesten Use Cases sind zumindest

00:34:35.972 --> 00:34:39.192
bekannt oder kann man sagen, okay, hier gibt es irgendwie noch ein Problem,

00:34:39.352 --> 00:34:41.792
weil da wird was ganz Komisches genutzt, etc., etc.

00:34:42.372 --> 00:34:44.852
Also die Idee ist für Veed 8, dass es wirklich...

00:34:45.405 --> 00:34:50.845
Ohne große Aufwände passieren soll. Jetzt hatten wir das Thema Chunking ja vorhin

00:34:50.845 --> 00:34:53.905
erwähnt, ein Webpack, Viet hat ja aktuell auch eben diese Manual Chunks API,

00:34:54.505 --> 00:34:56.085
die wurde erst von Roldern nicht supported.

00:34:56.385 --> 00:34:58.365
Mittlerweile gibt es da auch einfach ein Support für zu sagen,

00:34:58.465 --> 00:35:01.305
okay, es klappt halt, aber nutzt lieber unsere neue, flexible API.

00:35:01.505 --> 00:35:04.645
Also wir versuchen da auch so backwards compatible wie möglich zu sein,

00:35:05.045 --> 00:35:08.105
einfach um eben diesen Churn beim Wechseln zu reduzieren.

00:35:08.285 --> 00:35:10.425
Einfach dieses, okay, ich mache das jetzt und okay, es geht nicht.

00:35:11.165 --> 00:35:15.125
Idealfall soll sein, ich bumpe meine Major Version, ich lese mir dieses simple

00:35:15.125 --> 00:35:18.205
Migrationsguide durch, einfach zu gucken, was muss ich denn eigentlich wirklich machen.

00:35:19.765 --> 00:35:23.125
Und das Schöne ist, wenn man halt wieder auch da ein Framework nutzt oder ein

00:35:23.125 --> 00:35:25.205
Metaframework nutzt, bei Naxx

00:35:25.205 --> 00:35:28.745
zum Beispiel das Weltkit, die migrieren halt alle schon rüber, also die

00:35:29.165 --> 00:35:33.045
gucken alle schon, okay, wenn ihr Roder Meet aktuell habt, dann werden bestimmte

00:35:33.045 --> 00:35:36.025
Sachen anders gesetzt, heißt, ihr könnt das auch alles schon mit den Frameworks nutzen,

00:35:36.265 --> 00:35:38.645
hier und da muss man vielleicht mal eine andere Endvariable einstellen,

00:35:38.745 --> 00:35:43.145
aber die Idee ist auch da, dass natürlich frühzeitig schon migriert wird und

00:35:43.145 --> 00:35:44.745
dann, wenn wirklich das Ganze stabil ist,

00:35:45.125 --> 00:35:48.565
Ja, dann wird halt einfach nur die Flag umgestellt oder die Flag klappt halt

00:35:48.565 --> 00:35:50.545
nach wie vor noch und it just works.

00:35:51.565 --> 00:35:54.505
Also probiert es am besten schon mal aus und wenn es Probleme gibt,

00:35:54.605 --> 00:35:58.585
sagt ihr uns, weil dann können wir die lösen, bevor ihr wirklich migrieren müsst.

00:35:58.825 --> 00:36:01.185
Das ist, glaube ich, die einfachste Antwort, aber im besten Fall,

00:36:01.405 --> 00:36:03.825
ich habe halt von ganz vielen Leuten gelesen, ey, unproblematisch,

00:36:03.925 --> 00:36:06.505
it just works und so soll es auch sein.

00:36:07.045 --> 00:36:10.745
So soll es wirklich sein und jetzt würde ich mal vorschlagen,

00:36:10.925 --> 00:36:13.605
wir können mal wieder zu dem vorherigen Thema zurückkommen, bevor ich da hier

00:36:13.605 --> 00:36:16.125
eingesprungen bin. Wir waren bei.

00:36:17.507 --> 00:36:19.907
Waren wir schon bei Tears Down? Das hattest du hier auch noch ein bisschen?

00:36:19.907 --> 00:36:23.227
Ne, wir waren noch bei OXC so ein bisschen, weil es ist halt auch ein riesiges Projekt.

00:36:23.467 --> 00:36:26.027
Wir hatten gerade über den Transformer-Gerede, dass er sagt,

00:36:26.147 --> 00:36:27.567
okay, der kann auch JSX transformieren.

00:36:27.747 --> 00:36:29.947
Das ist auch bei Rolldown so, also ich brauche jetzt kein Plugin,

00:36:30.147 --> 00:36:34.167
um zu sagen, ich handele jetzt mein JSX in JavaScript um, sondern das klappt

00:36:34.167 --> 00:36:36.887
auch einfach out of the box, was sehr angenehm ist.

00:36:37.347 --> 00:36:40.407
Ist auch tatsächlich die Idee, dass einige dieser typischen,

00:36:40.827 --> 00:36:43.867
gewollten de facto Standards einfach in Roldown mit drin sind.

00:36:44.187 --> 00:36:45.907
Genauso das Thema Hotmodule Reload.

00:36:46.807 --> 00:36:50.407
Veeds selber ist aktuell für das Hotmodule Reload verantwortlich und die Idee

00:36:50.407 --> 00:36:52.927
ist, dass auch das integriert wird in Roldown, dass man da sagt,

00:36:53.007 --> 00:36:54.807
okay, wenn ich Roldown ohne Veed

00:36:54.807 --> 00:36:58.527
nutzen würde, könnte ich auch einfach HMA haben, was ja ganz nett wäre.

00:37:00.367 --> 00:37:03.587
Dann war auch auf den Low-Level-Teil nochmal da, also auf OXC zurückzukommen.

00:37:04.167 --> 00:37:08.647
Die wichtigsten Komponenten intern für Rolldown auch, die könnt ihr ja selber

00:37:08.647 --> 00:37:09.867
nutzen, wurden schon genannt.

00:37:09.987 --> 00:37:12.707
Also wenn ihr sagt, ihr müsst zum Beispiel Code transformieren,

00:37:13.007 --> 00:37:16.447
wir haben das zum Beispiel in Nux selber, kann ich ein bisschen da erzählen,

00:37:16.807 --> 00:37:19.767
dass wir sagen, wir haben Komponenten, wir würden gerne Metadaten extrahieren.

00:37:20.167 --> 00:37:23.147
Das heißt, wir müssen eine Abstraction-Industree erstellen, also wie gesagt,

00:37:23.247 --> 00:37:26.627
Code schematisch umwandeln und dann durchlaufen, bestimmte Sachen uns angucken

00:37:26.627 --> 00:37:30.907
und das macht man dann, hat man vorher gemacht, sowas wie mit Acorn zum Beispiel

00:37:30.907 --> 00:37:32.687
und dann irgendwie einem Walker wie

00:37:33.127 --> 00:37:35.387
ES Walker, I think, oder ES Walk oder so.

00:37:35.867 --> 00:37:39.467
Und mittlerweile kann man einfach sagen, gut, das tausche ich für OXI aus und

00:37:39.467 --> 00:37:40.807
das Ganze funktioniert einfach deutlich schneller.

00:37:40.947 --> 00:37:44.927
Heißt dann, Bildschritte werden deutlich zügiger, auch für Endanwendung.

00:37:45.787 --> 00:37:48.127
Ja, das heißt, solltet ihr irgendeinen Case haben, wo ihr sagt,

00:37:48.187 --> 00:37:51.287
ich muss irgendwas parsen, transformieren, Syntax-Laurering betreiben,

00:37:51.407 --> 00:37:54.247
etc., guckt euch das gerne mal an, ist recht nett zu nutzen.

00:37:54.767 --> 00:37:57.447
Auch da, wie gesagt, passiert noch recht viel. Also auch Performance-Technisch,

00:37:57.587 --> 00:38:00.687
so diese Verbesserungen, die wir bisher gesehen haben, die sind gut,

00:38:01.027 --> 00:38:02.787
aber das ist noch nicht das Ende.

00:38:03.007 --> 00:38:06.607
Man will ja erstmal auch Sachen stabil bekommen, Wette testen, etc.

00:38:08.523 --> 00:38:12.223
Und ich glaube von da, die letzte Sache, die auch wichtig ist für Rolldown selber,

00:38:12.283 --> 00:38:16.283
dann können wir noch über zwei Sachen reden, die mehr spannend für die Entwickler

00:38:16.283 --> 00:38:18.743
sind, nicht nur für die Framework-Entwickler, sondern auch für die App-Entwickler.

00:38:19.263 --> 00:38:20.883
Also die meisten Hörer würde ich behaupten.

00:38:22.483 --> 00:38:25.483
Zum Rolldown ist noch der Minifier, das ist auch immer ein großes Thema,

00:38:25.663 --> 00:38:28.343
ja, Code Minifyen, der ist nur Alpha-Status aktuell,

00:38:28.883 --> 00:38:32.823
ist bei Default an, in Rolldown, heißt, ihr könnt aber auch sagen,

00:38:32.883 --> 00:38:35.163
ich nehme SWC, ES-Build, was auch immer,

00:38:35.523 --> 00:38:38.543
da gibt es schon das Benchmark, wo es darum geht, okay, wie gut sind denn die

00:38:38.543 --> 00:38:44.403
Minifier und da ist so die Stat immer entweder, okay, wie schnell und natürlich, wie

00:38:44.823 --> 00:38:47.183
gut werden die Files komprimiert und,

00:38:47.743 --> 00:38:52.183
der OXC Minifier ist weder der schnellste, noch der, der am besten komprimiert.

00:38:52.403 --> 00:38:55.123
Liegt aber auch daran, dass die Schnellsten meist nicht so gut komprimieren

00:38:55.123 --> 00:38:58.563
und wiederum andersrum, die, die am besten komprimieren, sind halt sehr langsam.

00:38:59.363 --> 00:39:03.203
Und der OXC Minifier hat da so eine gute Mittellinie, also er ist schneller

00:39:03.203 --> 00:39:05.223
als er ist Builds, macht aber auch kleinere Fires.

00:39:05.663 --> 00:39:07.723
Da ist natürlich trotzdem die Idee, da arbeiten wir weiter dran,

00:39:08.123 --> 00:39:11.083
das Ganze noch weiter und besser zu machen, dass wir dann auch an zum Beispiel

00:39:11.083 --> 00:39:15.263
SWC rankommen, weil die Minifier auch und sind da recht gut dabei.

00:39:16.043 --> 00:39:17.843
Deswegen jetzt noch ein Alpha, da gibt es verschiedene Sachen,

00:39:17.843 --> 00:39:19.163
die noch gemacht werden.

00:39:19.223 --> 00:39:22.783
Es funktioniert aber, also wir hatten, keine Ahnung, zwei Issues,

00:39:22.983 --> 00:39:26.623
die recht schnell behoben wurden, wo es wirklich echte Probleme gab bei Minifine.

00:39:27.143 --> 00:39:29.743
Wenn man damit Probleme aber hat, einfach das Ganze ausstellen.

00:39:29.843 --> 00:39:34.503
Wichtig natürlich, die Production Bunnels testen und dann einfach einmal gucken.

00:39:35.743 --> 00:39:40.123
Und nicht die User testen lassen. Das ist mein Testort. Also ich schreibe keine

00:39:40.123 --> 00:39:41.083
Testiertest beim Kunden.

00:39:41.903 --> 00:39:45.763
Das kann irgendwie funktionieren. Solange man Error-Tracking hat,

00:39:45.763 --> 00:39:47.883
dann sieht man das vielleicht auch, bevor der Kunde anruft.

00:39:48.343 --> 00:39:50.263
Das ist unser Blade & Butter.

00:39:52.043 --> 00:39:55.543
Aber nein, wir testen schon. Es ist nur ein Running Deck, den ich mache.

00:39:55.703 --> 00:39:57.963
Ja, das ist jetzt noch schnell. Das ist auf der Aufnahme.

00:39:58.383 --> 00:40:01.363
Das schneit man weg mit. Das war nur schwer. Wir testen schon,

00:40:01.483 --> 00:40:02.483
das wird rausgecuttet, genau.

00:40:06.283 --> 00:40:10.903
So, du hast gerade uns angeteasert mit, was jetzt tatsächlich noch interessant

00:40:10.903 --> 00:40:12.623
ist für die App-EntwicklerInnen.

00:40:12.823 --> 00:40:16.103
Genau, das wird jetzt ein bisschen weniger rumgenörder, obwohl kann ich nicht

00:40:16.103 --> 00:40:17.823
garantieren. Und zwar das eine ist Linting.

00:40:18.903 --> 00:40:24.603
Großes Thema, weil die Idee ist, so ein bisschen OX hier soll auch das Fundament

00:40:24.603 --> 00:40:26.983
sein für diese vereinheitlichte Toolchain.

00:40:27.223 --> 00:40:32.163
Also kein ES-Lint dann mehr. Genau, kein ES-Lint dann mehr. Wir haben Oxlint oder OX-Lint.

00:40:32.743 --> 00:40:35.063
Die Idee war da, ist in Rust geschrieben, klar.

00:40:35.998 --> 00:40:39.038
Aber wir haben mehr als 500 Regeln.

00:40:39.638 --> 00:40:42.638
Wir, meine ich, nicht nur Leute von Void Zero, sondern das ist ein großes Community-Projekt.

00:40:42.858 --> 00:40:44.438
Das hatte Stefan auch anfangs schon gesagt.

00:40:44.518 --> 00:40:46.978
Es gibt da richtig viele Contributor, die auch im Team sind,

00:40:47.118 --> 00:40:48.018
nicht bei uns angestellt sind,

00:40:48.018 --> 00:40:53.578
von Leuten, die bei GitHub arbeiten und contributen zu Around the World.

00:40:54.418 --> 00:40:58.218
Genau, wurden Regeln rüberportiert. Also die beliebtesten Recommended-Regeln

00:40:58.218 --> 00:41:01.338
von vielen ESLand-Plugins, natürlich die ESLand-Core-Regeln etc.

00:41:01.338 --> 00:41:06.158
Es gibt drei Ausnahmen, die wir aktuell nicht unterstützen.

00:41:06.438 --> 00:41:10.718
Das eine sind Type-Aware-Linting-Regeln, also alles, wo man TypeScript-Types

00:41:10.718 --> 00:41:12.778
verbraucht, ist halt das Problem.

00:41:13.238 --> 00:41:17.378
Man muss dann die Typen auch evaluieren und dann muss man sich auf den TypeScript-Compiler

00:41:17.378 --> 00:41:21.098
verlassen. Der ist halt sehr langsam, was auch ein übliches Problem ist,

00:41:21.178 --> 00:41:24.598
wenn man Linting aktuell nutzt mit irgendwie den TypeScript ES-Sendregeln,

00:41:25.078 --> 00:41:27.538
was auch viele Leute frustriert. Deswegen, das ist erstmal raus.

00:41:27.738 --> 00:41:30.878
Da gucken wir uns aber, haben wir auch eine Roadmap für, sagen,

00:41:30.918 --> 00:41:34.138
das kommt in der Zukunft, dass wir das dann mit zum Beispiel TSGO integrieren

00:41:34.138 --> 00:41:41.458
oder es gibt TSS-Lint, also mit zwei S von Johnson aus dem Vue-Team.

00:41:41.998 --> 00:41:44.898
Das ist eigentlich der schnellste Type-Aware-Linterdienst aktuell gibt.

00:41:45.138 --> 00:41:47.638
Da gucken wir so ein bisschen, was möglich ist und wie man das sinnvoll integriert.

00:41:47.878 --> 00:41:48.958
Kann aber noch ein bisschen dauern.

00:41:49.238 --> 00:41:53.078
Das zweite sind Stylistic Rules, also alles mit, keine Ahnung,

00:41:53.178 --> 00:41:57.378
wie soll mein Indent sein, wo sollen Klammern gesetzt werden, etc.

00:41:57.838 --> 00:42:00.018
Das hat ESLand ja auch irgendwann verbannt.

00:42:00.538 --> 00:42:03.498
Gibt viele Leute, unter anderem Josh Goldberg, die sagen ja,

00:42:03.558 --> 00:42:05.298
ja, ESLand nicht als Formatter.

00:42:05.918 --> 00:42:09.898
Andere Leute wiederum sind da anderer Meinung. Beispielsweise Anthony Fu hat

00:42:09.898 --> 00:42:13.118
dann gesagt, okay, ESLand schmeißt die Regeln raus, ich mache ein neues Paket,

00:42:13.258 --> 00:42:16.678
ESLand Stylistic Rules, die werden noch von vielen genutzt, zum Beispiel von

00:42:16.678 --> 00:42:18.818
Anthony Fu selber, seiner Konflikt, die super beliebt ist.

00:42:19.578 --> 00:42:22.238
Da gibt es entsprechend unterschiedliche Meinungen. Bei uns haben wir gesagt,

00:42:22.338 --> 00:42:24.038
okay, das kommt in den Formatter irgendwann.

00:42:24.238 --> 00:42:28.038
Das ist der zweite Teil. Das war nämlich genau mehr und gehenswässig gewesen, weil normal.

00:42:30.192 --> 00:42:34.292
Die Diskussionen, die ich schon geführt habe, wie JavaScript-Code zu formatieren

00:42:34.292 --> 00:42:37.912
ist, die sind unendlich und das Hintergrund ist minimalistisch.

00:42:38.112 --> 00:42:42.712
Weil ganz ehrlich, irgendein Default-Formatting, es ist mir eigentlich total

00:42:42.712 --> 00:42:44.012
egal, wie das formatiert ist,

00:42:44.292 --> 00:42:48.172
solange es irgendwie einheitlich ist und ich nicht einen Context-Switch brauche,

00:42:48.232 --> 00:42:51.952
nur weil auf einmal die Line länger ist oder irgendwelche Strukturen dort verwendet

00:42:51.952 --> 00:42:55.912
werden, weil alles andere ist, glaube ich, eine Fleißaufgabe.

00:42:55.912 --> 00:43:02.092
Aber gut, das sind die Diskussionen da, die sind einfach und die können unendlich sein.

00:43:02.192 --> 00:43:07.592
Und Leute wollen ja gerne über solche Sachen diskutieren, weil sie so niederschwellig sind.

00:43:08.232 --> 00:43:10.872
Aber in Wirklichkeit, nein. Also wenn du einmal mit einer Programmiersprache

00:43:10.872 --> 00:43:14.832
gearbeitet hast, wo Formatting erledigt ist, wirst du dir die Diskussion nicht

00:43:14.832 --> 00:43:16.672
mehr geben, ob das jetzt GoRust ist.

00:43:16.792 --> 00:43:21.332
Oder tatsächlich hat ja das Java schon in den späten 90ern gesagt, das ist unser Guide.

00:43:21.932 --> 00:43:25.212
Nehmen wir das formatiert und der Clips macht es und fertig.

00:43:25.912 --> 00:43:28.472
Und von dem, das wird eigentlich auch von einem modernen JavaScript-Tool schon

00:43:28.472 --> 00:43:31.352
erwartet und gesagt, hey, formatier es so, wie du denkst, dass das ist,

00:43:31.452 --> 00:43:32.332
da gibt es andere Meinungen.

00:43:32.732 --> 00:43:36.932
Da gibt es das wunderschöne Zitat vom Rock Riesemann, der GoFund gemacht hat,

00:43:36.992 --> 00:43:41.932
das GoFormatting-Tool, der hat gesagt, Go's Formatting is nobody's favorite,

00:43:42.292 --> 00:43:44.412
but GoFormat is everybody's favorite.

00:43:44.592 --> 00:43:47.992
Weil es genau so ist es. Also es schaut halt nicht so aus, wie es das du gerne

00:43:47.992 --> 00:43:50.512
hättest, aber es ist wurscht. Es schaut zumindest überall gleich aus und es

00:43:50.512 --> 00:43:52.112
ist erledigt. Das ist ein Problem weniger.

00:43:52.972 --> 00:43:56.272
Korrekt. Und das gehört meiner Meinung nach auch nicht in der Linting ein.

00:43:56.532 --> 00:44:00.032
Linting soll mir Schwachstehen im Programm geben und nicht irgendwie eine Meinung

00:44:00.032 --> 00:44:02.852
anzeigen, wie Sachen zu formatieren sind.

00:44:03.152 --> 00:44:05.572
Also das ist... Das ist auch sehr spannend.

00:44:06.072 --> 00:44:10.112
Das ist ein guter Punkt da. Nämlich bei Oxlint gibt es verschiedene Kategorien

00:44:10.112 --> 00:44:12.232
für Regeln und die größte ist tatsächlich Correctness.

00:44:12.352 --> 00:44:14.652
Also genau das. Das Programm soll korrekt laufen, wir wollen Fehler vermeiden.

00:44:15.112 --> 00:44:19.312
Ja. Es gibt dann noch so andere Kategorien wie Performance oder bestimmte Restriktionen,

00:44:19.372 --> 00:44:22.692
so sind die API nicht oder ähnliches. Aber das wäre es dann auch.

00:44:23.332 --> 00:44:26.912
Ja, das heißt auch da, wie du schon gesagt hast, Linter-Focus auf Correctness

00:44:26.912 --> 00:44:29.192
und alles, was mit Formatierung angeht, soll den Formator.

00:44:29.572 --> 00:44:34.672
Der Formator, während OXLint oder OXLint ist mittlerweile 1.0, ist da.

00:44:35.392 --> 00:44:40.072
OX Format ist noch Work in Progress, weil Formatierung ist halt nicht einfach.

00:44:40.632 --> 00:44:42.972
Spannend ist, wurde sich darauf geeinigt, dann zu sagen, gut,

00:44:43.052 --> 00:44:45.332
das soll Pretia-Compatible sein, nutzen eh schon viele Leute.

00:44:45.752 --> 00:44:48.972
Damit hat man auch das Thema, was soll man denn nutzen, so ein bisschen geklärt.

00:44:49.152 --> 00:44:51.752
Es gibt dann so ein paar Regeln, wie zum Beispiel das Sortieren von Imports,

00:44:51.752 --> 00:44:54.712
wo man auch so ein bisschen Analyse braucht, weil je nachdem,

00:44:54.852 --> 00:44:57.492
welche Reihenfolge du Imports machst, können natürlich, je nachdem,

00:44:57.572 --> 00:44:58.872
wie Dependencies wo geladen werden,

00:44:59.412 --> 00:45:02.192
kann sich ja zu Problemen führen, heißt, da braucht man so ein bisschen mehr

00:45:02.192 --> 00:45:06.012
Analyse, aber das ist auf jeden Fall auch was, was in den Format am Ende kommt

00:45:06.012 --> 00:45:08.652
und da eben alles Stylistik dann da mit rein.

00:45:09.847 --> 00:45:13.547
Ja, der, wie gesagt, ist noch Work in Progress, also so ein bisschen prototypisch

00:45:13.547 --> 00:45:15.247
schon gearbeitet, da ist aber,

00:45:15.827 --> 00:45:19.767
sind ein paar Leute bei uns in der Firma mit dran, das voranzubringen.

00:45:20.427 --> 00:45:24.347
Bei Oxlind sei noch eine Sache gesagt, und das gilt generell für OXC an sich,

00:45:24.687 --> 00:45:28.927
der Fokus ist JavaScript und TypeScript, also was aktuell nicht geht,

00:45:28.967 --> 00:45:32.207
ist sowas wie, ich möchte CSS minifien oder ich möchte.

00:45:33.767 --> 00:45:36.667
HTML minifien oder linten oder was auch, oder ähnliches.

00:45:37.167 --> 00:45:40.607
Das ist also wichtig, sorry, für das Linting, für das Minify, nicht für das Linting.

00:45:41.067 --> 00:45:44.747
Ich glaube, der HTML, CSS geht nicht. Custom Components sind auch schon schwierig,

00:45:44.987 --> 00:45:48.247
so, keine Ahnung, Astro Components, View zählt da auch mit rein.

00:45:48.587 --> 00:45:52.447
Da gibt es teilweise Support für, auch bei Svelte, dass man sagt,

00:45:52.547 --> 00:45:54.647
den Skript teilen, kein Problem, machen wir.

00:45:55.247 --> 00:45:58.727
Alles andere erstmal nicht, weil da müsste man ja wiederum den Parser für die

00:45:58.727 --> 00:46:01.887
Templates in Rust bauen oder eine Möglichkeit haben zu sagen,

00:46:02.027 --> 00:46:07.947
ich transformiere die Komponente in JSX und wende dann JSX-Region an und mappe das wieder zurück.

00:46:08.047 --> 00:46:11.867
Da gibt es einige Ideen, das ist auch auf der Roadmap, aber aktuell eben nicht supported.

00:46:13.247 --> 00:46:17.067
Und das letzte, was sehr cool ist, Migration ist recht einfach.

00:46:17.207 --> 00:46:19.187
Es gibt ein Migrations-Skript, das könnt ihr ausführen.

00:46:19.607 --> 00:46:23.027
Ich kann einfach sagen, hier ist meine ESLandRC, generieren wir daraus bitte

00:46:23.027 --> 00:46:27.987
eine auxlandrc.json und das generiert.

00:46:28.147 --> 00:46:31.887
Und falls es Regeln gibt, sowas wie Custom Rules, kann man auch noch ein bisschen

00:46:31.887 --> 00:46:35.367
drüber reden, weil auxland, da sind wir gerade dran, so eine Custom Rule API

00:46:35.367 --> 00:46:40.127
zu schreiben, dass es auch schnell klappt, weil es soll ja idealerweise interoperabel

00:46:40.127 --> 00:46:42.247
sein mit ESLint, aber auch nicht so langsam.

00:46:42.747 --> 00:46:46.187
Gucken wir mal so gerade, wie das sinnvoll funktioniert. Und aktuell gibt es

00:46:46.187 --> 00:46:48.707
das eben noch nicht, deswegen kann es sein, keine Ahnung, fünf bis zehn Regeln,

00:46:48.807 --> 00:46:51.267
die ihr vielleicht habt oder hunderte, kommt bei euch auf die Firma drauf an,

00:46:51.307 --> 00:46:53.767
wie viele Custom Rules ihr habt, die müssen weiterhin in ESLint laufen.

00:46:54.267 --> 00:46:57.647
Aber da gibt es ein Plugin für, das nennt sich ESLint Plugin Oxlint,

00:46:57.727 --> 00:46:58.507
das ist ein bisschen confusing.

00:46:59.347 --> 00:47:02.467
Da ist die Idee zu sagen, automatisch alle Regeln, die es in Oxlint gibt,

00:47:02.647 --> 00:47:06.167
werden in eurer ESLint-Config deaktiviert, dann könnt ihr es auch im Tandem laufen lassen.

00:47:06.707 --> 00:47:12.187
Airbnb zum Beispiel nutzt Oxlant, um Barrel-Files zum Beispiel zu checken,

00:47:12.267 --> 00:47:15.187
das hat auch keine Ahnung, Cyclical Imports, also zu sehen, gibt es irgendwelche

00:47:15.187 --> 00:47:16.467
zyklischen Abhängigkeiten,

00:47:16.787 --> 00:47:21.087
wenn ja, dann reporte das oder eben entsprechend die nicht gewollten Barrel-Files

00:47:21.087 --> 00:47:23.047
mit den ganz vielen Exports.

00:47:23.587 --> 00:47:27.307
Und das klappt natürlich gerade bei riesigen Anwendungen deutlich schneller,

00:47:27.467 --> 00:47:29.927
wo dann die Eslant eher ein Time-Out rennen würde.

00:47:30.807 --> 00:47:34.787
Insofern, das sind so 50 bis 100 Mal schneller als die Eslant auch da,

00:47:34.787 --> 00:47:36.107
nicht Prozent, wirklich fach.

00:47:36.667 --> 00:47:38.987
Und das ist natürlich super hilfreich bei großen Anwendungen.

00:47:39.367 --> 00:47:43.227
Ansonsten so Preact, Shopify, Bun, die nutzen auch alle.

00:47:43.507 --> 00:47:49.107
Oxlant, also teilweise eben Open Source, Preact in Oxlant als Projekte und Shopify

00:47:49.107 --> 00:47:51.367
ist für immer auch in ihrer großen Anwendung.

00:47:52.599 --> 00:47:58.039
Wenn ich jetzt ein Repository habe, das noch mit Webpack bundled wird,

00:47:58.319 --> 00:48:00.639
kann ich denn aber trotzdem oExcellent verwenden?

00:48:03.079 --> 00:48:07.739
All diese Sachen, über die wir heute gesprochen haben, kann ich so als App-User

00:48:07.739 --> 00:48:11.539
das mal ansehen, dass ich die alle so ein Bits und Pieces irgendwie verwenden

00:48:11.539 --> 00:48:13.859
kann und die nicht unbedingt diese ganze Chain,

00:48:14.439 --> 00:48:18.499
sofort alles migrieren muss? Richtig, genau.

00:48:18.739 --> 00:48:21.039
Also das sind aktuell auch eben so ein bisschen die Bestandteile,

00:48:21.099 --> 00:48:24.679
die dann irgendwann in diese vereinheitlichte JavaScript-Toolchain reinkommen.

00:48:24.819 --> 00:48:27.239
Es wurde halt noch nicht vereinheitlicht, weil es zielt es ja erstmal an,

00:48:27.379 --> 00:48:30.879
den Sachen zu arbeiten, damit sie da sind und dann vereinheitlicht werden können.

00:48:31.699 --> 00:48:35.979
Richtig. Jetzt habe ich mich gerade gefragt, vielleicht ist ja bei irgendjemandem

00:48:35.979 --> 00:48:39.039
von Webpack auf Viet noch kompliziert, aber vielleicht hat man da auch noch

00:48:39.039 --> 00:48:42.539
ESLint 8 rumhängen und denkt sich jetzt, ach mei, jetzt müsste ich mir eigentlich

00:48:42.539 --> 00:48:44.779
mal die Zeit nehmen auf ESLint 9 zu upgraden.

00:48:44.779 --> 00:48:48.499
Aber stattdessen könnte ich mir eventuell die Zeit nehmen, nicht auf ESLint

00:48:48.499 --> 00:48:50.159
9 zu gehen, sondern auf OXLint.

00:48:50.539 --> 00:48:56.439
Absolut, so ist es. Und das sollte recht schnell funktionieren durch das Skript. Das ist echt einfach.

00:48:57.019 --> 00:48:59.099
Also ich hatte das zum Beispiel bei NUXT mal aus... Ist auch von ESLint 8 aus,

00:48:59.099 --> 00:49:02.399
ist es dann einfach... Genau, von ESLint 8 ist es gar kein Problem, richtig.

00:49:03.139 --> 00:49:07.599
Ich hatte das mal bei NUXT ausgetestet. Da haben wir zwar schon auf den ersten

00:49:07.599 --> 00:49:10.339
Modulen recht neu, aber da auch einfach gesagt, okay, wie geht das?

00:49:10.919 --> 00:49:13.659
Migrationsskript angeworfen. Ich musste fast nichts ändern. Ich hatte so ein

00:49:13.659 --> 00:49:15.799
paar kleine Anpassungen gemacht. Aber das war es auch schon.

00:49:17.159 --> 00:49:20.619
Und am Ende funktioniert es recht gut. Haben wir am Ende trotzdem nicht gemerged,

00:49:20.719 --> 00:49:24.879
weil die Type-Aware-Rules bei ESLand sehr viel Zeit in Anspruch genommen haben

00:49:24.879 --> 00:49:26.839
und auch da sehr viele Stylistik-Rules genutzt haben.

00:49:26.919 --> 00:49:29.539
Das wurde nicht supported. Deswegen haben wir gesagt, okay, beides in Tandem.

00:49:29.799 --> 00:49:32.519
Kann sehr gut funktionieren. In dem Fall da hat es immer gesagt,

00:49:32.659 --> 00:49:34.719
so ja, wir sehen halt den Benefit nicht.

00:49:34.799 --> 00:49:38.399
Es läuft halt auch nicht zwingend schneller, wenn eh alles gecashed ist.

00:49:38.519 --> 00:49:41.999
Und man sagt, okay, nur die ESL-Regeln müssen neu laufen. Die brauchen eh so lange.

00:49:42.459 --> 00:49:45.159
Aber in sehr vielen Fällen macht das Sinn. Also einfach austesten,

00:49:45.239 --> 00:49:48.379
das dürfte auch nicht lange dauern und dann gucken, was am Ende klappt.

00:49:48.839 --> 00:49:52.499
Und nebenher kann ich trotzdem auch weiterhin Prettier verwenden und es läuft

00:49:52.499 --> 00:49:54.779
alle so ein bisschen zusammen und kommt sie nicht in die Quere.

00:49:54.939 --> 00:49:58.059
Richtig, ganz genau. Nicht, dass man dann hat, so Prettier möchte dies machen

00:49:58.059 --> 00:50:00.839
und OX sagt dann, nein, nein, wir wollen das anders haben.

00:50:01.099 --> 00:50:04.239
Dadurch, dass ja Org-Send gar kein Formatting macht, dürfte da gar nichts passieren.

00:50:04.419 --> 00:50:07.619
Deswegen mag ich jetzt diese Entscheidung auch, dann ist man da so ein bisschen

00:50:07.619 --> 00:50:11.459
freier und muss nicht wieder alle Regeln da überschreiben. Absolut.

00:50:12.959 --> 00:50:16.359
Genau, aber das ist so ein bisschen der Low-Level-Geteil. Noch als kleiner Fun-Fact,

00:50:16.399 --> 00:50:19.779
weil du Pretia schon gesagt hast und Pretia schon ein paar Mal gefallen ist,

00:50:20.839 --> 00:50:24.819
OXC, also der OXC-Parser kann jetzt auch als Parser für Pretia genutzt werden,

00:50:24.879 --> 00:50:28.279
um nochmal Pretia ein bisschen schneller zu machen, weil auch da Pretia bei

00:50:28.279 --> 00:50:31.219
sehr vielen Fires wissen wir, dass es nicht zwingend das Schnellste,

00:50:31.899 --> 00:50:34.559
mit dem Rust-basierten Parser könnte es ein bisschen schneller werden,

00:50:34.699 --> 00:50:36.559
bis dann Ox-Format irgendwann rauskommt.

00:50:37.799 --> 00:50:42.539
Und der Ox-Format, der wird jetzt quasi in Void Zero,

00:50:44.191 --> 00:50:48.331
Konzipiert und implementiert, aber ist das jetzt quasi Open Source und ich könnte

00:50:48.331 --> 00:50:51.231
da mitquatschen oder habt ihr das jetzt quasi erstmal intern,

00:50:51.411 --> 00:50:54.791
um zu sagen, ihr braucht jetzt erstmal einen Fokus, wie das so funktionieren

00:50:54.791 --> 00:50:58.571
soll mit so einer kleinen Taskgruppe, die sich da voll drauf fokussiert?

00:50:58.571 --> 00:51:02.911
Also generell, alles ist MIT, heißt auch jetzt könnte man schon ins OEC-Projekt

00:51:02.911 --> 00:51:04.691
reinschauen, schauen, was passiert auf der Branch.

00:51:05.071 --> 00:51:07.851
Es wird vielleicht noch nicht so viel nach außen hin kommuniziert.

00:51:07.951 --> 00:51:09.431
Das ist so ein bisschen wie bei einigen Projekten, wo man sagt,

00:51:09.671 --> 00:51:12.111
okay, ja klar, erstmal intern gucken, aber an sich, ich glaube,

00:51:12.251 --> 00:51:14.251
das ist schon alles öffentlich verfügbar.

00:51:14.831 --> 00:51:17.631
Da gibt es auch keine irgendwie geheimen Repos oder ähnliches.

00:51:18.331 --> 00:51:22.691
Alles, was die Low-Level und die abstrahierten, nicht so sehr abstrahierten

00:51:22.691 --> 00:51:24.231
Projekte angeht, kein Problem.

00:51:24.771 --> 00:51:27.951
Also wahrscheinlich läuft es auch so ein bisschen für mich jetzt weiter wie vorher. ja.

00:51:28.131 --> 00:51:31.731
Ich habe ja auch nicht großartig mitbekommen, dass an Wied gearbeitet wird.

00:51:31.871 --> 00:51:34.511
Na gut, das Wied weiß eine andere Geschichte. Das schon.

00:51:36.991 --> 00:51:41.651
Denkt euch ein hartiges Beispiel aus. Aber plötzlich war es dann eben da und

00:51:41.651 --> 00:51:43.491
dann kann man auch da mitquatschen.

00:51:43.911 --> 00:51:47.171
Genau. Und zum Beispiel, da gibt es ganz coole Stories, weil es wird ja oft

00:51:47.171 --> 00:51:50.831
erwähnt, so gerade mit Ja, Rust-Projekten, wie sieht es denn aus mit Leuten, die contributen?

00:51:50.931 --> 00:51:56.691
Und wie gesagt, das OEC hat eine sehr schöne Anzahl von auch Contributors von all over the world.

00:51:57.051 --> 00:52:01.131
Es gab eine coole Story von jemandem aus dem Core-Team, der hat nämlich gesagt,

00:52:01.231 --> 00:52:03.151
okay, ich möchte ja Rust lernen, hat sich das Projekt angeguckt,

00:52:03.311 --> 00:52:05.071
hat Schritt für Schritt, hat sich

00:52:05.071 --> 00:52:09.331
das angeeignet und ist jetzt eben im OXC Core-Team, was auch mega ist.

00:52:10.451 --> 00:52:12.751
Und man muss auch nicht das ganze Projekt verstehen, das ist auch wichtig.

00:52:12.931 --> 00:52:16.591
Es reicht halt, wenn man teilnimmt. Nein, da scheißen sie sich immer recht an, ich verstehe das nicht.

00:52:18.211 --> 00:52:20.891
Entschuldigung, wenn ich da jetzt gut ein bisschen steirisch werde,

00:52:20.991 --> 00:52:24.051
wie man bei uns so schön sagt, aber es ist eine andere Programmiersprache.

00:52:24.111 --> 00:52:26.311
Klar gibt es ja gar nicht Hürde da drinnen, aber es ist vielleicht auch gar

00:52:26.311 --> 00:52:28.691
nicht so schlecht. Vor allem, Rust ist eine Programmiersprache,

00:52:28.831 --> 00:52:32.171
wo du durch den Compiler so eine gute Unterstützung hast, dass es wirklich sehr,

00:52:32.251 --> 00:52:34.151
sehr schwierig ist, dass du nachher auch etwas falsch machst.

00:52:34.251 --> 00:52:38.251
Das ist zum Beispiel, wenn du jetzt Go hernimmst, da kannst du vielleicht irgendein

00:52:38.251 --> 00:52:41.571
Memory-Problem oder irgendein Null-Point oder was auch immer einfinden,

00:52:41.631 --> 00:52:43.471
das passiert dir dort einfach nicht.

00:52:43.611 --> 00:52:47.871
Oder wenn, dann wird es sofort ersichtlich. Und es ist vielleicht ein Projekt, das du gut verstehst,

00:52:48.811 --> 00:52:52.231
weil du in dem Sektor schon gearbeitet hast, da eine richtig gute Einstiegsdroge

00:52:52.231 --> 00:52:57.831
oder Einstiegsprojekt für Rust und es ist grundsätzlich sehr zu empfehlen,

00:52:57.911 --> 00:53:01.811
dass man sich nicht so hyperfokussiert auf nur diese eine Sprache.

00:53:02.131 --> 00:53:05.771
Das stimmt. Das hat natürlich ein bisschen eine Ironie, weil JavaScript-Tooling

00:53:05.771 --> 00:53:10.671
existiert ja eigentlich, weil Node.js auf einmal existiert hat und Leute sehr

00:53:10.671 --> 00:53:12.611
niederschwellige Common-Client-Tools damit schreiben haben können.

00:53:12.891 --> 00:53:17.611
Das hat ja diesen ganzen Boom entfacht und da ein wenig zu dieser aktuellen

00:53:17.611 --> 00:53:21.151
Situation geführt, in der wir gerade sind, dass einfach das ein Riesensauhafen

00:53:21.151 --> 00:53:24.271
ist und wir eh dringend solche Projekte brauchen, die das ein bisschen konsolidieren,

00:53:24.391 --> 00:53:26.991
ein bisschen schlanker machen,

00:53:27.511 --> 00:53:29.131
das Ganze ganzheitlich überlegen.

00:53:29.311 --> 00:53:33.551
Wir haben ja eingangs in der Vorbesprechung über E18E gesprochen.

00:53:33.771 --> 00:53:36.551
Das ist ja auch eine gute Initiative in dem Bereich. Und da haben wir,

00:53:36.671 --> 00:53:38.731
wenn ich das richtig mitgekriegt habe, haben wir da ein Follow-up, gell?

00:53:39.907 --> 00:53:42.987
Das kommt irgendwann, ja genau, zum Thema. Wie kannst du das für die Performance?

00:53:43.507 --> 00:53:46.227
Super, super, eine riesengute Geschichte, gehört unbedingt besprochen.

00:53:47.047 --> 00:53:51.427
Und von dem her ist es gut, dass es dort jetzt ein bisschen eine Konsolidierungsphase gibt.

00:53:53.027 --> 00:53:57.247
Im Dokument haben wir geschrieben, oder alles, was World Zero macht, ist ja nicht das Erste.

00:53:57.307 --> 00:54:00.287
Wir haben ja mit Rome vor ein paar Jahren am Versuch gehabt,

00:54:00.367 --> 00:54:06.167
die haben auch Fandim bekommen, haben dann zu zweit dran gewerkt und sind irgendwie massiv gescheitert.

00:54:06.307 --> 00:54:08.707
Ja, da wurde auch Geld veruntreut. also.

00:54:11.067 --> 00:54:14.947
Schwierig. War keine schöne Geschichte ne? Aber das Projekt lebt ja weiter.

00:54:15.667 --> 00:54:20.107
Also Biom ist ja der Fork von Rome und das ganze Open Source.

00:54:21.147 --> 00:54:25.287
Das ist eben noch ein weiterer Ansatz dahin Biom ganz interessant,

00:54:25.507 --> 00:54:28.507
weil aktuell machen die es ein bisschen umgedreht, also während,

00:54:28.627 --> 00:54:32.327
naja, wie war bei Zero, okay, Veed war da und dann hat man geguckt,

00:54:32.427 --> 00:54:34.247
natürlich irgendwie Parser und Transformer und Co.

00:54:34.687 --> 00:54:39.167
Das ist bei Biom glaube ich einmal andersrum seit okay, Linter und Formeter existiert.

00:54:39.167 --> 00:54:43.167
Die haben auch schon einen gewissen Ansatz von Type-Aware-Linting implementiert,

00:54:43.307 --> 00:54:48.307
aber ich glaube, der ihr Floating-Promises-Regel, also die Regel zu sagen, okay,

00:54:48.587 --> 00:54:51.447
Promises, die ich nicht irgendwie awaite und sinnvoller Handler,

00:54:51.667 --> 00:54:57.427
sollen detectet werden durch TypeScript, die nimmt so 75%, wenn ich es richtig in Erinnerung habe,

00:54:58.287 --> 00:55:01.387
der Case auf die typische TypeScript-DS-Regel nutzt.

00:55:01.487 --> 00:55:05.607
Also auch da ist halt, es funktioniert, es ist schneller, aber es ist halt weniger korrekt.

00:55:06.467 --> 00:55:11.947
Was natürlich auch tricky ist. Allerdings unterstützt halt bei HTML und CSS

00:55:11.947 --> 00:55:15.287
aktuell schon auch weitere HTML-isch Sprachen sind unterwegs.

00:55:15.587 --> 00:55:18.227
Das ist ein bisschen der andere Ansatz von einer anderen Seite.

00:55:18.947 --> 00:55:22.427
Spannend ist da halt nur, naja, ein Linter oder ein Formatter kann man deutlich

00:55:22.427 --> 00:55:26.107
schneller wechseln als ein Build-Tool, als irgendwie ein Bundler oder ein Parser.

00:55:26.887 --> 00:55:31.107
Deswegen auf jeden Fall spannend zu sehen, auch die Leute von RS-Pack,

00:55:31.167 --> 00:55:35.207
bei ByteDance dahinter, zu gucken, was da alles passiert, weil die bauen ja

00:55:35.207 --> 00:55:39.527
auch so ein bisschen ihren Stack auf, also sozusagen das Rustified-Webpack, aber,

00:55:40.187 --> 00:55:43.727
ja, wenn man, wie gesagt, nochmal guckt, wer denn alles Veed nutzt und da findet

00:55:43.727 --> 00:55:46.907
man eigentlich jegliches Framework, abgesehen von Next.js und Links,

00:55:47.107 --> 00:55:53.427
deren von ByteDance das Framework-agnostische Mobile-Rack-Native-like-Framework sozusagen.

00:55:54.587 --> 00:55:57.347
Ist da eigentlich sonst alles vertreten, was sehr spannend ist.

00:55:58.631 --> 00:56:04.611
Wir haben hier noch einen großen Themenblock. Da werfe ich den einfach mal rüber zu Stefan.

00:56:05.191 --> 00:56:09.051
Ja genau, das ist ein bisschen lauflicher gewesen und ein paar Sachen sind schon

00:56:09.051 --> 00:56:11.531
ein bisschen klarer geworden. Aber prinzipiell geht es ja um das.

00:56:12.011 --> 00:56:16.471
Ja, aber im State of Jazz habe ich mich ein bisschen vorsichtig geäußert.

00:56:16.551 --> 00:56:19.691
Also alle mal nachhören. Ich schaue mal die gewisse Kunstnummern raus und verlinke

00:56:19.691 --> 00:56:22.231
dich hier, wie das Thema noch so aufkam. Ja.

00:56:26.311 --> 00:56:31.691
Wie verholt sich das mit VC-funded Companies, die jetzt an unserer JavaScript-Infrastruktur

00:56:31.691 --> 00:56:33.311
arbeiten? Das ist im Grunde eine große Aufhänger.

00:56:33.391 --> 00:56:37.171
Und du musst ja auch dazu sagen, ich habe absolut nichts gegen VC-Funding und so weiter.

00:56:37.351 --> 00:56:39.971
Ich kenne viele Firmen, die sehr erfolgreich sind dadurch und das war genau

00:56:39.971 --> 00:56:43.971
die richtige Finanzspritze, die es braucht, damit sie starten können.

00:56:44.071 --> 00:56:49.571
Und ich finde es auch gut, wenn Funding für wichtige JavaScript-Projekte da ist.

00:56:51.431 --> 00:56:55.111
Die große Frage, die ich mir halt dort immer stelle, wenn es eine Company gibt,

00:56:55.191 --> 00:56:58.551
die daran arbeitet, das ist ja keine Pro-Bono-Gesellschaft.

00:56:58.731 --> 00:57:02.871
Also ihr macht ja das nicht alle, damit wir alle davon konsumieren können und happy sind.

00:57:03.191 --> 00:57:06.491
Da wird irgendwann einmal ein Business-Modell entwickelt werden müssen.

00:57:06.591 --> 00:57:09.471
Beziehungsweise muss irgendwann einmal ein Geldstrom auch fließen.

00:57:09.651 --> 00:57:13.751
Und auch wenn es im Seed-Funding meistens heißt, ja gut, macht sich ums Geldverdienen

00:57:13.751 --> 00:57:15.691
im Seed noch keine Gedanken.

00:57:15.851 --> 00:57:17.851
Die Investoren machen sich schon sehr, sehr viele Gedanken darüber.

00:57:17.851 --> 00:57:21.791
Und wenn ich sehe, ich glaube, ich habe es 4,5 Millilie bekommen im Seed-Funding,

00:57:22.371 --> 00:57:24.231
das ist eine fette Evaluierung.

00:57:24.371 --> 00:57:26.631
Also ich glaube, ich hätte es das einfacher machen können, wenn es nur irgendwie

00:57:26.631 --> 00:57:32.791
Volt Zero oder ATI gewesen wäre, weil das ist gerade im Moment komplett, was da rennt.

00:57:33.791 --> 00:57:38.271
Aber 4,6 Millilie im Seed-Funding ist eine fette Stange Geld,

00:57:38.371 --> 00:57:41.131
da ist die Evaluierung dahinter wahrscheinlich auch entsprechend hoch,

00:57:41.211 --> 00:57:43.651
einen entsprechenden Return of Investment erwarten sich die Investoren.

00:57:44.311 --> 00:57:48.411
Und ich verstehe noch nicht, was für ein Businessmodell man.

00:57:49.251 --> 00:57:52.371
Über diese JavaScript-Infrastruktur ziehen kann.

00:57:52.651 --> 00:57:54.871
Vor allem, weil ich auch in der Vergangenheit, da können wir gerne nachher noch

00:57:54.871 --> 00:57:57.911
reden, Projekte gesehen habe, wo es einmal fast schiefgegangen wäre.

00:57:58.051 --> 00:58:01.131
Eins, was massiv schiefgegangen ist und eins, wo ich hundertprozentig sicher

00:58:01.131 --> 00:58:02.111
bin, der schiefgehen wird.

00:58:02.951 --> 00:58:07.031
Ich würde da gerne ratschen. Aber meine große Frage ist, wie soll das ganze

00:58:07.031 --> 00:58:08.031
Investment wieder zurückkommen?

00:58:08.251 --> 00:58:12.191
Und was erwartet mich dann vor allem als Anwender oder Anwenderin von dem Projekt?

00:58:12.951 --> 00:58:17.691
Weil, also ich sage es dir gleich, wir sind ein sizable company.

00:58:17.691 --> 00:58:21.291
Wir haben 5.000 Employees, davor 2.500 Entwicklerinnen und Entwickler.

00:58:21.751 --> 00:58:25.551
Wir schauen sehr stark auf das Projekt, weil es löst viele, viele unserer Probleme,

00:58:25.631 --> 00:58:27.431
die wir jetzt gerade haben. Und wir würden das gerne adoptieren.

00:58:27.511 --> 00:58:32.071
Und wirklich tatsächlich eins der Dinge, warum wir ein wenig zurückhaltend sind,

00:58:32.271 --> 00:58:35.511
ist, weil genau jetzt World Zero gekommen ist und wir gesagt haben,

00:58:35.571 --> 00:58:38.991
hey cool, also wenn dort jetzt Geldströme fließen sollen,

00:58:39.491 --> 00:58:43.131
was zu Recht auch fließen kann, wie betrifft uns das als Kompanie,

00:58:43.191 --> 00:58:45.231
die auch Geld hat, bei der es aber sehr, sehr schwierig ist,

00:58:45.311 --> 00:58:47.831
dieses Geld zu mobilisieren, damit man dort auch was zurückbringen kann.

00:58:47.931 --> 00:58:53.931
Also das ist ja ein weiterer Faktor, den man beachten muss. Genau, absolut.

00:58:54.471 --> 00:58:57.731
Ja, sehr guter Punkt. Ich habe die Stand-of-Stand-of-Stand-Fisode auch gehört,

00:58:57.931 --> 00:59:01.611
habe da auch mit ein paar Leuten darüber gesprochen, weil es auch,

00:59:01.731 --> 00:59:04.131
also ich fange mal von dem Punkt an, den du gerade erwähnt hast,

00:59:04.211 --> 00:59:05.331
Stefan, das ist recht wichtig.

00:59:05.451 --> 00:59:07.971
Genau, die 4,6 Millionen Dollar Seed Money.

00:59:08.731 --> 00:59:12.691
Ich habe damals, als ich noch nicht Teil der Firma war, im Oktober Evan getroffen,

00:59:12.751 --> 00:59:14.551
auf der Konferenz, habe direkt gesagt, ja, lass mal Interview machen.

00:59:14.891 --> 00:59:17.211
Auch da, da habe ich auch gefragt, wie sieht es denn aus?

00:59:17.711 --> 00:59:20.711
Genau die gleiche Frage. So Monetarisierung, aber auch wie VC-Funding.

00:59:21.191 --> 00:59:25.171
Habe natürlich viel mit ihm auch off the record drüber geredet und mittlerweile,

00:59:25.371 --> 00:59:27.991
natürlich quatsch man noch mehr, da ich auch mittlerweile für ihn arbeite.

00:59:28.411 --> 00:59:29.631
Das war damals aber noch nicht absehbar.

00:59:30.491 --> 00:59:33.391
Und hat auch gesagt, so okay, zum einen ist natürlich wichtig.

00:59:34.425 --> 00:59:38.865
Was ist die Idee dahinter? Und Avenue hat natürlich ein Standing als Creator

00:59:38.865 --> 00:59:44.345
von Vue.js, von Veed, dann sagt, okay, erst mal ihn interessiert OpenSource

00:59:44.345 --> 00:59:46.125
sehr, ihm liegt OpenSource am Herzen.

00:59:46.505 --> 00:59:49.045
Sonst wäre er wahrscheinlich nicht da, wo er jetzt ist.

00:59:49.685 --> 00:59:53.085
Das große Problem ist natürlich, wenn man sagt, man baut sowas wie Void Zero

00:59:53.085 --> 00:59:56.885
auf, um zu sagen, okay, ich baue halt diese ganze Infrastruktur darunter,

00:59:57.525 --> 01:00:02.085
also Rolldown und OXC, dann klappt das nicht wie beim Vue.core-Team,

01:00:02.485 --> 01:00:03.745
wie ich sag mal, Spenden finanziert.

01:00:03.745 --> 01:00:07.725
Auch da Hinweis, das VueCore-Team, habe ich jetzt ein Video von mir auch letztens

01:00:07.725 --> 01:00:09.985
schon gesagt, das ist underfunded, also nicht genug Geld da,

01:00:10.185 --> 01:00:14.785
dass Leute an Vue und dem Ökosystem arbeiten können, weil, wie es halt oft so

01:00:14.785 --> 01:00:17.185
ist, okay, sind da mit anderen Leuten angestellt, mache es in der Freizeit,

01:00:17.285 --> 01:00:19.545
kriegen vielleicht 10% Zeit oder sowas in der Richtung.

01:00:20.705 --> 01:00:23.445
Evan zahlt da natürlich auch einigen Leuten was aus seiner eigenen Tasche,

01:00:23.525 --> 01:00:25.205
also verbreitet es sozusagen ein bisschen.

01:00:25.505 --> 01:00:28.665
Es gibt auch einige Firmen, die sponsern auch da immer, das ist super appreciated.

01:00:28.745 --> 01:00:33.365
Aber um zum Beispiel sowas wie Rolldown auf die Beine zu bekommen und das nicht

01:00:33.365 --> 01:00:37.125
erst irgendwie in fünf Jahren, sondern recht flügig, ja, da brauchst du natürlich

01:00:37.125 --> 01:00:37.925
eine andere Geschwindigkeit.

01:00:38.085 --> 01:00:40.305
Und da ist das VC Money natürlich wichtig.

01:00:40.645 --> 01:00:43.405
Das war so die Idee zu sagen, okay, es kann halt was bewegt werden,

01:00:43.485 --> 01:00:46.885
das ist nicht so, naja gut, dann arbeitet halt jemand tagsüber und dann vielleicht

01:00:46.885 --> 01:00:49.725
noch zwei Stunden am Nachmittag ein bisschen an Rolldown oder OXC.

01:00:50.145 --> 01:00:52.965
Bei jedem, der es machen möchte, wenn es klappt, das ist echt super,

01:00:53.525 --> 01:00:55.805
aber das wird natürlich schwierig, dann Sachen voranzubringen.

01:00:56.745 --> 01:00:59.485
Das heißt also, okay, die Idee war auf Versuchen nach Investoren.

01:01:00.005 --> 01:01:02.525
Das Gute auch wieder durch das Standing ist natürlich der Fakt,

01:01:02.725 --> 01:01:05.025
dass ja, wenn man sagt, ich habe jetzt, kann auch nicht gründen,

01:01:05.125 --> 01:01:07.545
ich habe keinen großen Namen, ich habe eine Idee, ich habe vielleicht eine MVP,

01:01:07.965 --> 01:01:11.245
dann ist die Auswahl recht limitiert meistens, außer es ist halt,

01:01:11.405 --> 01:01:13.745
naja, es hat AI vorne dran und das ist anyway,

01:01:14.405 --> 01:01:17.845
haben wir gerade schon gesagt, aber auch da, denke ich, war der große Vorteil

01:01:17.845 --> 01:01:21.185
einfach und ich war nicht dabei, aber das kann ich mir zumindest so vorstellen,

01:01:21.565 --> 01:01:22.945
durch das Standing und einfach die Vision,

01:01:23.445 --> 01:01:27.545
Leute mit an Bord zu holen, die diese Vision verstehen, jetzt nicht sagen,

01:01:27.665 --> 01:01:30.165
okay, ich brauche aber meinen Return of Investment in zwei Jahren,

01:01:30.225 --> 01:01:32.025
wir müssen jetzt hier alles kommerzialisieren.

01:01:32.445 --> 01:01:33.965
Nee, nee. Ganz im Gegenteil.

01:01:34.525 --> 01:01:38.465
Das ist absolut nicht die Idee. Und auch da ist wichtig zu sagen,

01:01:38.685 --> 01:01:41.645
es gab die Idee von anderen, weil zum Beispiel kann man vielleicht eine Foundation

01:01:41.645 --> 01:01:46.305
machen oder ähnliches, aber die VC-Richtung war das, was den größten Erfolg

01:01:46.305 --> 01:01:50.725
für das Projekt an sich, also für die Toolchain, für alles, was darunter liegt, entspricht.

01:01:50.905 --> 01:01:56.585
Und das ist alles MIT, das ist Open Source und was MIT ist, wird auch MIT bleiben.

01:01:56.825 --> 01:02:01.485
Das war ganz am Anfang im Firmen-Announcement so, das hat sich auch nicht geändert. That's it.

01:02:02.890 --> 01:02:06.610
Das heißt, die ganzen Tools, die da sind, kein Problem. Ist natürlich trotzdem

01:02:06.610 --> 01:02:09.190
richtig, es muss irgendwann ein bisschen wieder herkommen.

01:02:09.350 --> 01:02:12.090
Das ist jetzt aber auch nicht so, dass man sagt, okay, wir müssen jetzt irgendwie

01:02:12.090 --> 01:02:13.870
direkt, wie gesagt, Geld verdienen.

01:02:14.810 --> 01:02:17.370
Aktuell kann man auch so sagen, wir arbeiten noch mit Firmen zusammen,

01:02:17.830 --> 01:02:20.270
um die zum Beispiel auf RollerMe zu bringen oder Sachen zu optimieren.

01:02:20.390 --> 01:02:22.670
Also da gibt es auch schon Möglichkeiten, aber es ist natürlich nichts,

01:02:22.690 --> 01:02:23.810
was skaliert in dem Sinne.

01:02:24.250 --> 01:02:27.030
Heißt, irgendwann wird es ein Punkt sein, dass ein Produkt kommt.

01:02:27.030 --> 01:02:33.170
Evan hat Anfang des Jahres auf der JS World Conference auch schon grob von Viet Plus geredet.

01:02:33.370 --> 01:02:37.570
Das ist effektiv die Idee, dass das Cargo für JavaScript, was das Ganze zusammenbringt,

01:02:37.670 --> 01:02:38.870
also eben diese Unified Toolchain.

01:02:39.390 --> 01:02:42.770
Und da gibt es verschiedenste Ideen, das zu monetarisieren. Wichtig ist aber,

01:02:42.870 --> 01:02:44.490
das war auch von Anfang an klar und das war auch die Antwort,

01:02:44.650 --> 01:02:47.230
die ich damals bekommen habe, der Fokus liegt auf Enterprise.

01:02:47.730 --> 01:02:51.710
Dass man sagt, okay, der Average Web Entwickler, der seit ich möchte das Projekt

01:02:51.710 --> 01:02:55.210
anfangen, der soll kein Gatekeeping erfahren, der soll nicht an was gehindert

01:02:55.210 --> 01:02:57.530
werden, sondern er kann diese Toolchain komplett nutzen.

01:02:57.970 --> 01:03:00.650
Andererseits würde es auch nicht funktionieren. Du brauchst ja auch Adoption,

01:03:01.090 --> 01:03:02.750
du brauchst ja auch Nutzung letztendlich.

01:03:03.070 --> 01:03:07.950
Und da gibt es natürlich Möglichkeiten, mal reingesponnen von,

01:03:08.170 --> 01:03:11.810
ich habe irgendwelche Premium-Services, Host-Solutions etc.

01:03:12.010 --> 01:03:17.050
Ich habe SLAs, Security-Guarantees, sagt, okay, wir zertifizieren das Ganze,

01:03:17.210 --> 01:03:20.050
das wird gepatcht, ihr müsst euch darüber keine Gedanken machen.

01:03:20.430 --> 01:03:22.370
Halt wirklich an größere Firmen adressiert.

01:03:22.850 --> 01:03:25.290
Oder kann natürlich auch sein, dass man irgendwann sagt, Okay.

01:03:26.080 --> 01:03:29.120
Und machen ja andere Firmen beispielsweise Direktos als CMS,

01:03:29.460 --> 01:03:33.100
nicht gleich der Use Case, sozusagen, okay, wir machen sowas wie eine Business

01:03:33.100 --> 01:03:35.180
Source License, also Dual Licensing,

01:03:35.740 --> 01:03:38.140
zu sagen, hey, das könnt ihr nutzen, wenn ihr eine Firma seid,

01:03:38.280 --> 01:03:42.580
die, keine Ahnung, mehr als 10 Millionen ERA verdient, dann müsst ihr euch eine Lizenz holen.

01:03:42.920 --> 01:03:45.680
Und dann wendet ihr euch an uns und dann kann man darüber sprechen.

01:03:45.680 --> 01:03:47.760
Ja, aber das ist ja genau mein Problem, das ich gerade habe.

01:03:47.960 --> 01:03:53.240
Wir haben 1,7 Milliarden EAA und da fallen wir 100%ig in der Kategorie,

01:03:53.320 --> 01:03:55.980
wo wir zur Kasse gebeten werden.

01:03:56.100 --> 01:03:59.080
Wir haben aber auch das Problem, dass wir ein JavaScript-Framework zur Verfügung

01:03:59.080 --> 01:04:03.520
stellen, dass wir also für unser Produkt, jeder intern, aber auch Leute extern

01:04:03.520 --> 01:04:06.620
können für unsere Plattform Applikationen entwickeln. Das ist ein ganz,

01:04:06.660 --> 01:04:08.020
ganz wichtiger Business Case für uns.

01:04:08.940 --> 01:04:12.980
Und wir haben auch ein Team von zwölf Leuten, die am Tooling warten.

01:04:13.320 --> 01:04:18.620
Da passiert auch, was die schreiben, CRIs, machen B-Prozesse und unser Auge

01:04:18.620 --> 01:04:23.500
ist wirklich eben auf das, wo wir sagen, Neovit wird uns viele Probleme abnehmen

01:04:23.500 --> 01:04:25.020
und wir können viel, viel besser.

01:04:27.840 --> 01:04:30.660
Unser Produkt weiterentwickeln, wenn wir das als Infrastruktur verwenden.

01:04:30.780 --> 01:04:33.220
Wenn du mir jetzt aber sagst, hey, cool, machen wir Dual-Licensing von dem Ding,

01:04:33.300 --> 01:04:35.060
dann sagen wir, okay, dann haben wir uns wahrscheinlich.

01:04:36.600 --> 01:04:39.340
Das ist wichtig. Es geht nicht um VEAT an sich.

01:04:39.940 --> 01:04:42.660
VEAT und OXC, alles, was wir heute besprochen haben, das ist alles,

01:04:42.840 --> 01:04:46.160
als die Komponenten da sind, das wird alles MIT bleiben. Da gibt es kein Dual-License-Sing, gar nichts.

01:04:46.360 --> 01:04:50.180
Es geht eher um D4-Komponenten, die auf der Webseite angekündigt werden,

01:04:50.280 --> 01:04:53.140
diese grundlegenden Dinge, die bleiben zu Ordnung. Ja, auf jeden Fall.

01:04:53.540 --> 01:04:55.100
Es wird nicht so sein, dass wir,

01:04:56.200 --> 01:04:58.880
Milktekau, VEAT wird es irgendwie Dual-License. Nein, um Gottes Willen.

01:05:00.640 --> 01:05:02.320
Das gibt es nicht. Deswegen habe ich auch von Anfang gemeint,

01:05:02.340 --> 01:05:05.320
das bleibt alles MIT. Da geht es wirklich um ein extra Produkt.

01:05:05.840 --> 01:05:08.480
Das wird natürlich, keine Ahnung, VEAT Plus, Es wird natürlich VEAT nutzen oder

01:05:08.480 --> 01:05:11.820
OXC nutzen, Roller nutzen, aber da geht es natürlich um deutlich mehr.

01:05:12.080 --> 01:05:15.040
Es gibt zum Beispiel Monorepo-Support, es gibt einen Task-Conner-ATC.

01:05:15.300 --> 01:05:16.900
Heißt das wirklich die Idee, alles,

01:05:17.510 --> 01:05:22.770
in the box, wie bei Cargo für JavaScript sozusagen, also wirklich als Rust-Fan

01:05:22.770 --> 01:05:24.110
kennst du die Analogie ja.

01:05:25.670 --> 01:05:28.630
Das ist natürlich, was man guckt, wie das monetarisierungstechnisch aussieht,

01:05:28.670 --> 01:05:32.470
aber die Komponenten an sich, also wer sich seine eigenen Toolchain zusammenfassen möchte,

01:05:32.970 --> 01:05:35.210
viel Spaß, dann hat man natürlich das gleiche Problem, wie man jetzt ist,

01:05:35.270 --> 01:05:38.810
wie ist das, wie ist denn Kompatibilität und natürlich für größere Firmen dann,

01:05:38.930 --> 01:05:41.630
ne, das Thema Zertifizierung, Security, SIS, etc., etc.

01:05:47.470 --> 01:05:51.130
Es ist spannend, weil es gibt ja da einige Gefahren, aber trotzdem nicht.

01:05:51.190 --> 01:05:53.190
Also es ist schon mal gut, dass du sagst, das Projekt bleibt so,

01:05:53.290 --> 01:05:57.190
wie es ist und das Projekt soll so weiter funktionieren, wie es ist.

01:05:57.370 --> 01:06:00.290
Also gerade wenn du jetzt sagst, Google nimmt das für Angular her,

01:06:00.510 --> 01:06:04.530
sind die sicher happy, wenn die das weiter so verwenden können. Ja, ja, absolut.

01:06:04.970 --> 01:06:07.330
Und das ist halt ein Multi-Company-Projekt. Also wie gesagt,

01:06:07.410 --> 01:06:09.730
das ist nicht so, dass World Zeroes sagen können, wie du es hier leistest.

01:06:09.970 --> 01:06:14.110
Das ist alles nicht so einfach. Also bei WIT und bei WIT, nachdem du gesagt

01:06:14.110 --> 01:06:17.410
hast, das ist nicht nur alleine in den Händen von Volt Zero,

01:06:17.530 --> 01:06:21.730
ist das schon mal eine gute Sache.

01:06:22.930 --> 01:06:26.390
Und wo würde ich jetzt noch hingehen?

01:06:28.430 --> 01:06:31.570
Ein Problem, das ich da noch auftun kann, und das sehen wir gerade bei einer

01:06:31.570 --> 01:06:33.650
anderen Firma, die auch heute oft genannt worden ist,

01:06:34.550 --> 01:06:39.650
die haben ja auch ein ganz cooles JavaScript-Framework veröffentlicht und unterstützen

01:06:39.650 --> 01:06:45.030
viele RAS-basierte Tooling-Projekte und das Ding schneller zu machen und schneller zu machen und,

01:06:46.290 --> 01:06:49.870
investieren in alles, was wir quasi so heute genannt haben,

01:06:50.510 --> 01:06:52.630
in der Parallelwelt von React.

01:06:52.970 --> 01:06:56.490
Und da merkst du, das war ein spitzen Framework, das haben wir alle super geliebt

01:06:56.490 --> 01:06:59.750
und mit der Zeit sind die Sachen, die weiterhin Open-Source geblieben sind,

01:06:59.890 --> 01:07:06.450
weiterhin MIT-kompatibel geworden sind, striktens nach der Roadmap vom Konzern definiert worden.

01:07:06.590 --> 01:07:12.070
Also da hat die Company halt ein Ziel gehabt mit Verkauf von Serverless-Compute-Units,

01:07:12.870 --> 01:07:16.510
und deswegen sind alle Entwicklungen, die im Framework passieren und witzigerweise

01:07:16.510 --> 01:07:18.230
sogar im React-Framework dahinter,

01:07:18.490 --> 01:07:22.390
also da haben sie sich auch stark eingekauft mit einer Entwicklungsmannschaft,

01:07:22.590 --> 01:07:25.750
haben React-Server-Components gepusht, die es eigentlich eh niemand braucht,

01:07:25.750 --> 01:07:28.610
außer sehen, nur damit sie halt weitere Serverless Computer Units verkaufen können.

01:07:29.050 --> 01:07:31.870
Das ist natürlich das andere Problem, was passieren kann.

01:07:32.090 --> 01:07:35.630
Du hast, alles wie du gesagt hast, du bleibst MIT-kompatibel,

01:07:36.470 --> 01:07:40.490
die Grundtools bleiben so, wie sie sind, du kannst sie weiterhin zusammen stecken,

01:07:40.530 --> 01:07:43.270
wie sie sind, aber die Roadmap der Tools ist stark.

01:07:44.330 --> 01:07:49.170
Dominiert durch die Features, die die Kompanie treiben will und das ist natürlich

01:07:49.170 --> 01:07:53.290
eine weitere Trajektorie, die passieren kann und die, also wo ich halt jetzt

01:07:53.290 --> 01:07:56.730
gerade sehe, die Community ist ja stark dagegen.

01:07:57.410 --> 01:08:00.310
Man spürt das in den State of Jazz Umfragen. Ich glaube, da haben wir auch drüber

01:08:00.310 --> 01:08:02.550
gesprochen, wenn ich mich nicht täusche, und merkt, dass,

01:08:03.368 --> 01:08:08.708
Also, meine Vermutung ist, das wird schief gehen. In zwei Jahren wird so viel

01:08:08.708 --> 01:08:10.868
verbrannte Erde dort sein und Leute gehen wieder auf was hin,

01:08:10.908 --> 01:08:12.768
was ein bisschen netter ist.

01:08:13.488 --> 01:08:16.828
Und du hast auch gesagt, wie deckt du eh 80% der Use-Cases-Opfer,

01:08:16.888 --> 01:08:18.448
der muss Next.js eigentlich machen.

01:08:19.008 --> 01:08:21.528
Ja, und dann hast du noch Tenslack und dann bist du gut dabei eigentlich.

01:08:21.928 --> 01:08:24.548
Das verwendet man witzigerweise nämlich auch.

01:08:24.768 --> 01:08:28.528
Also, da sind wir auch stark dabei. Das wird ja auch nur noch ein V-Plugin werden.

01:08:30.968 --> 01:08:35.968
Und Solid Start genauso. Also ich habe einen Evan auch einmal getroffen und so weiter,

01:08:36.268 --> 01:08:41.328
der macht sich wirklich viele Gedanken dabei, aber das wäre halt wirklich eine

01:08:41.328 --> 01:08:46.368
Sicherheit auch zu geben, dass diese Projekte weiter auch unabhängig bleiben.

01:08:46.688 --> 01:08:50.528
Also ich glaube, das wird ganz, ganz wichtig sein für die Adoption dann,

01:08:51.428 --> 01:08:55.568
gerade in großen Konzernen, gerade wo auch potenziell Geld zu Hause wäre,

01:08:56.248 --> 01:08:58.628
dass man auf den Core immer nur zugreifen kann.

01:08:58.628 --> 01:09:04.728
Ich glaube, es gibt halt ein großes Learning, wie du es schon gesagt hast an

01:09:04.728 --> 01:09:08.028
dem Beispiel, das du gerade gemacht hast, dass das halt nicht der richtige Weg ist.

01:09:08.928 --> 01:09:11.948
Deswegen, also wie du schon gesagt hast, mit jemandem wie Evan,

01:09:12.168 --> 01:09:16.868
der Vue und Veed als große, bekannte Open-Source-Projekte maintained.

01:09:18.368 --> 01:09:20.728
Ich glaube, die Motivation ist dahinter eher eine andere.

01:09:21.308 --> 01:09:24.688
Und vor allem zu sagen, okay, wenn man diese Toolchain, diese Unified-Toolchain

01:09:24.688 --> 01:09:28.748
ans Leben bringt, dann zu sagen, okay, die soll halt überdauern.

01:09:28.948 --> 01:09:32.628
Und da geht es nicht darum, zu sagen, okay, was bringt das meiste Geld,

01:09:32.888 --> 01:09:34.888
das meiste Dollars, logischerweise.

01:09:35.588 --> 01:09:37.928
Ist auch da ganz spannend. Ich habe die Zahlen nicht im Kopf.

01:09:38.028 --> 01:09:41.788
Wie viel zum Beispiel das Seed Money an Prozenten eingetauscht wurde,

01:09:41.868 --> 01:09:46.048
also wie viel die MS-Tourn halten, hat es im Interview erwähnt mit mir damals.

01:09:46.208 --> 01:09:48.288
Aber ich weiß noch, ich hatte auch gefragt, wie viel Board Seeds?

01:09:48.748 --> 01:09:49.688
Ja, der sagt, noch keinen.

01:09:50.513 --> 01:09:52.533
Ja, das ist schon mit gut. Und das sind halt auch so Punkte,

01:09:52.613 --> 01:09:55.173
wo man sagt, okay, selbst mal sage ich jetzt, keine Ahnung, Leute,

01:09:55.273 --> 01:09:57.513
das sind die besten Menschen der Welt, die sind super lieb, ja,

01:09:57.613 --> 01:10:01.553
wenn die Horror-Stories mit VCs und Investoren sagen, ja, aber was,

01:10:01.673 --> 01:10:03.733
wenn die dann dafür pushen, ich glaube,

01:10:04.713 --> 01:10:08.193
da ist schon sehr viel Gedanke dahinter, dass das nicht passiert.

01:10:08.753 --> 01:10:12.433
Deswegen ich denke, das geht in eine sehr gute Richtung.

01:10:13.073 --> 01:10:17.733
Und ich finde auch, also beispielsweise V-Tests und auch V-Tests sind für mich

01:10:17.733 --> 01:10:20.893
keine VC-backed Projects oder VC-Projects.

01:10:21.253 --> 01:10:25.973
Nur weil der Maintainer von Veed jetzt auf der Payroll von uns ist,

01:10:26.093 --> 01:10:31.033
also Vladimir, dass der von uns bezahlt wird, macht Veeds ja nicht jetzt zwingend

01:10:31.033 --> 01:10:32.673
so ein Projekt, was VC-backed ist.

01:10:33.753 --> 01:10:37.153
Das ist immer so ein bisschen, es ist Definitionssache, es ist schwierig,

01:10:37.453 --> 01:10:41.253
aber das ist noch was anderes als eben, keine Ahnung, Astro als Framework zum

01:10:41.253 --> 01:10:44.053
Beispiel, da gibt es halt die Astro-Company dahinter, wo ich sage,

01:10:44.193 --> 01:10:45.853
das ist ein VC-backed Framework.

01:10:46.593 --> 01:10:49.973
Ähnliche Geschichte, zum Beispiel, ich weiß es nur noch aus der State of Jazz-Ephisode,

01:10:50.033 --> 01:10:52.893
deswegen aus einem der Teile, wegen welcher drauf zurückkommen,

01:10:52.993 --> 01:10:57.193
ist es bei NUX so ein bisschen, weil NUX an sich, wir sind auch ein Multi-Company-Projekt, ne,

01:10:57.813 --> 01:11:00.013
klar, es gibt eigentlich bei NUX Labs Arbeiten, das ist die Firma,

01:11:00.073 --> 01:11:04.693
die der Gründer gegründet hat, so ein bisschen was, was Taylor Autry bei Laravel

01:11:04.693 --> 01:11:08.293
ja auch gemacht hat, und NUX Labs hat VC-Money bekommen, absolut.

01:11:09.113 --> 01:11:12.013
Aber mal theoretisch, sollte es NUX Labs irgendwann nicht mehr geben,

01:11:12.193 --> 01:11:13.553
ist das Framework damit nicht tot.

01:11:14.213 --> 01:11:18.333
Gerade Danny Roe zum Beispiel, der Head of Framework bei NUX,

01:11:18.573 --> 01:11:21.693
der hat sicher Möglichkeiten, genauso wie Anthony Fu oder auch in Puja,

01:11:22.173 --> 01:11:25.313
andere Möglichkeiten zu finden, bei anderen Firmen dann weiter in dem Projekt zu arbeiten.

01:11:25.653 --> 01:11:27.893
Und der Rest, naja, wir haben alle Dayjobs oder sind halt bei anderen Firmen

01:11:27.893 --> 01:11:31.713
und machen das in unserer Freizeit oder 10%-Time oder ähnliches.

01:11:32.233 --> 01:11:36.493
Deswegen, bei solchen Situationen, also bei solchen Projekten sind die Risiken

01:11:36.493 --> 01:11:39.933
deutlich geringer als eben bei einem, ja, Astro beispielsweise.

01:11:41.979 --> 01:11:48.519
Es ist cool, weil tatsächlich eine ganz schwierige Kommunikationssituation,

01:11:48.599 --> 01:11:49.479
in der ich gerade befinde.

01:11:49.619 --> 01:11:52.299
Zum einen wollte ich natürlich sagen, wir sind jetzt die Firma hinter dem ganzen

01:11:52.299 --> 01:11:54.099
geilen Scheiß, der euch wirklich was weiterbringt.

01:11:54.859 --> 01:12:00.019
Aber eigentlich sind sie nicht die Firma. Ja, also bei Roadrun ist sie auf jeden Fall.

01:12:00.259 --> 01:12:03.839
Bei dem Rest ist es halt so, Leute von uns bauen halt den geilen Scheiß.

01:12:03.939 --> 01:12:07.059
Na klar, Evan, der die Firma gewohnt hat, hat auch Wied erstellt. Absolut.

01:12:08.079 --> 01:12:11.419
Aber ich denke, das ist vom Branding her natürlich auch spannend,

01:12:13.239 --> 01:12:17.159
weil Evin ist halt einfach eins zu eins verknüpft mit WIT. Das ist halt sein

01:12:17.159 --> 01:12:17.759
Ding. Ja, das stimmt nicht.

01:12:20.439 --> 01:12:23.959
Würdet ihr euch, wenn ich jetzt sage, okay, es gibt, genauso wie es bei WIT

01:12:23.959 --> 01:12:26.819
oder WITest ist, es gibt eine weitere Company, die stark interessiert ist,

01:12:26.939 --> 01:12:30.099
dann dass sie in OXC und HOLD dann investiert, aus unterschiedlichen Gründen.

01:12:30.519 --> 01:12:34.179
Würdet ihr denen Agency und Mittwochspracherecht in diesem Projekt umgeben oder

01:12:34.179 --> 01:12:36.679
ist das für den Moment komplett losgelöst?

01:12:37.119 --> 01:12:40.459
Das würde ich gerne beantworten. Das kann ich aber gar nicht sagen,

01:12:40.679 --> 01:12:42.779
weil da bin ich auch Das ist nicht meine Entscheidung.

01:12:44.279 --> 01:12:47.699
Ich kann es mir auf jeden Fall vorstellen. Letztendlich, das ist ja auch was,

01:12:47.759 --> 01:12:49.119
das kann ja easy organisch wachsen.

01:12:49.259 --> 01:12:52.639
Wenn man jetzt sagt, okay, hier gibt es eine Firma, die will OXC stark benutzen,

01:12:52.719 --> 01:12:56.779
und ist interessiert daran und sagt, hier sind aber die Use Cases.

01:12:57.319 --> 01:13:01.239
Ich glaube, erst mal, da ist alles auf einer recht low-levelen Ebene.

01:13:01.399 --> 01:13:05.659
Es gibt, glaube ich, so viel, was alle am Ende ein Vorteil für wäre.

01:13:06.799 --> 01:13:09.659
Deswegen, das würde ich jetzt einfach nicht absprechen. Aber auch da,

01:13:09.779 --> 01:13:14.659
wenn es da Leute gibt, dreht den Kontakt mit uns, schreibt auf den Discord, kommt gerne mit ran.

01:13:15.239 --> 01:13:18.719
Wir sind immer interessiert zu sehen, was Leute, worauf Leute Bock haben.

01:13:20.139 --> 01:13:23.779
Ja, cool. Nein, es ist, du hast mir schon richtig gut erklärt,

01:13:23.839 --> 01:13:27.499
es ist echt eine spannende und prekäre Situation drinnen.

01:13:28.759 --> 01:13:32.579
Zum einen will man ja endlich zeigen, hey, das ist jetzt nicht nur mehr ein

01:13:32.579 --> 01:13:35.259
Hobbyprojekt, sondern da ist jetzt wirklich ähm.

01:13:37.875 --> 01:13:41.055
Ein bisschen finanzielle Power auch dahinter, um das Ganze wirklich zu bewerkstelligen.

01:13:41.195 --> 01:13:42.575
Es ist absolut notwendig.

01:13:42.815 --> 01:13:48.335
Also der JavaScript-Ökosystem krankt an dem fragmentierten Tooling und krankt

01:13:48.335 --> 01:13:51.815
an dem schlechten Tooling und krankt an diesen Projekten, die spontan ins Leben

01:13:51.815 --> 01:13:53.755
gerufen werden und nachher ausbluten.

01:13:53.975 --> 01:13:57.515
Also Chess ist ja das Paradebeispiel. Jahn ist ein Paradebeispiel.

01:13:58.135 --> 01:14:02.995
Das sind lauter Dinge, die alle mit Pump und Hype und weiß nicht was ins Leben

01:14:02.995 --> 01:14:05.315
gerufen worden sind und das jetzt keiner mehr wirklich nutzen kann,

01:14:05.315 --> 01:14:11.615
ohne dass er sich irgendeiner spannenden Fantasie verschreibt oder merkt,

01:14:11.715 --> 01:14:14.315
hey, Moment, das ist eigentlich alles Legacy-Stuff, der versucht,

01:14:14.955 --> 01:14:16.455
am Leben gehalten zu werden.

01:14:17.375 --> 01:14:22.695
Von dem her ist Unified Chouse Script Tooling mit finanziellem Backing eigentlich

01:14:22.695 --> 01:14:24.115
genau das, was wir jetzt noch brauchen.

01:14:24.395 --> 01:14:29.835
Also ich bin da 100% überzeugt davon.

01:14:30.515 --> 01:14:33.995
Natürlich ist halt das Problem, wenn du nachher sagst, cool,

01:14:33.995 --> 01:14:37.415
da ist das Geld im Investment drin, es gibt eine Company, die das macht,

01:14:38.475 --> 01:14:42.315
die kommt das Geld wieder zurück und da musst du in der Kommunikation ganz, ganz vorsichtig sein.

01:14:42.735 --> 01:14:45.975
Absolut, absolut, aber ich glaube, da gibt es diesen Herbst,

01:14:45.995 --> 01:14:48.895
es wird es auf jeden Fall Informationen geben, es gibt ja jetzt zum ersten Mal

01:14:48.895 --> 01:14:50.555
V-Conf in Person in Amsterdam,

01:14:51.255 --> 01:14:55.395
das heißt, da gibt es möglicherweise ein, zwei Neuigkeiten, was das angeht,

01:14:55.715 --> 01:14:59.675
kann ich aber nicht zu viel verraten, guckt es auf jeden Fall an.

01:15:00.695 --> 01:15:04.475
Da bin ich gerade in Paris auf einer Konferenz und in beiden Tagen.

01:15:05.575 --> 01:15:09.055
Ah, schade. Ja, cool. Ja, da ist die Eurorast, die ist zur gleichen Zeit.

01:15:09.155 --> 01:15:11.115
Ach, okay. Ja, ärgerlich.

01:15:12.635 --> 01:15:15.195
Ah, da weiß ich, da ist ein Kumpel von mir auch, der wurde angenommen.

01:15:16.055 --> 01:15:18.635
Philipp Schuster, grüße ich ihn raus in dem Sinne. Der hat da,

01:15:18.695 --> 01:15:19.315
glaube ich, auch einen Talk.

01:15:21.735 --> 01:15:24.955
Eurorast. Ah, das ist ein Kollege für dich. Ja, cool. Das ist ein Kumpel von

01:15:24.955 --> 01:15:26.335
mir, wir haben zusammen studiert, ja, tatsächlich.

01:15:26.995 --> 01:15:31.855
Ich bin nämlich tatsächlich im Programmkomitee gewesen. Ja, cool. Ja, wird spannend.

01:15:32.635 --> 01:15:35.095
Übrigens, ich muss mich gerne mal entschuldigen, meine Kopfhörer sterben gerade.

01:15:35.175 --> 01:15:37.495
Das heißt, ich kann euch nicht mehr hören. Ich hoffe, ihr könnt es mir noch hören.

01:15:38.295 --> 01:15:40.735
Auf jeden Fall, was ich noch sagen wollte zum Schluss, bevor ich meine Kopfhörer

01:15:40.735 --> 01:15:43.195
rauszue und auf Stumm gehe und euch so zuhöre.

01:15:43.595 --> 01:15:46.815
Danke sehr. Das war sehr, sehr informativ. Das war sehr hilfreich.

01:15:47.115 --> 01:15:50.715
Das hat mir in eigenen Bereichen wieder mehr Klarheit gegeben.

01:15:52.375 --> 01:15:55.335
Und jetzt stehe ich mich mal auf Stumm, da meine Kopfhörer raus.

01:15:56.600 --> 01:15:58.920
Und dann schreckt du mich spontan wieder ein, wenn ich was sagen will.

01:15:59.140 --> 01:16:01.060
Also mach was. Alles klar. Danke dir, Stefan.

01:16:02.260 --> 01:16:06.940
Wenn wir jetzt noch gerade so ein bisschen im... Naja, es ist ja immer so ein

01:16:06.940 --> 01:16:08.000
bisschen zu schwer zu unterscheiden.

01:16:08.120 --> 01:16:11.260
Also eigentlich ist es ja nicht Vue.js, worum es jetzt irgendwie geht.

01:16:11.300 --> 01:16:12.760
Aber vieles kommt halt aus Vue.js.

01:16:12.960 --> 01:16:16.200
Stimmt. Deswegen würde ich dich so gerne fragen, wie schaut es denn aus bei

01:16:16.200 --> 01:16:19.740
Vue.js 4 oder den neuesten NUXT-Versionen?

01:16:20.080 --> 01:16:23.240
Und ich weiß jetzt nämlich nicht, ob ich dann NUXT 4 oder NUXT 5 sagen soll,

01:16:23.280 --> 01:16:25.800
weil ich glaube ja, dass NUXT 4 für Vue.3 war.

01:16:27.080 --> 01:16:31.620
Klär mir doch nochmal kurz auf. Genau. Wir fangen mal an bei Vue 4.

01:16:33.460 --> 01:16:37.240
Ist nicht angekündigt, wird noch ein bisschen dauern. Letztes Jahr tatsächlich,

01:16:37.540 --> 01:16:39.460
im August, hatten wir Evan im DejaVue-Podcast.

01:16:39.560 --> 01:16:42.140
Er hatte so ein bisschen gespoilert, so, ja, das sind ein paar Ideen,

01:16:42.220 --> 01:16:44.420
die für Vue 4 interessant sein könnten. Also es gibt Ideen.

01:16:45.180 --> 01:16:48.660
Es ist auch nicht so, dass man sagt, nee, wir haben jetzt Vue 3 und da machen

01:16:48.660 --> 01:16:52.440
wir jetzt Features, sondern es gibt Ideen für ein Vue 4. Es gibt Ideen für ein Vue 4, genau.

01:16:52.620 --> 01:16:55.660
Die Frage ist halt, wann die Ideen umgesetzt werden, wann es kommt,

01:16:55.740 --> 01:16:57.880
weil aktuell ist der Fokus noch auf Vapor-Mode.

01:16:58.380 --> 01:17:02.580
Vapor-Mode ist ja immer noch in Entwicklung, kommt in 3.6 und da habe ich jetzt.

01:17:03.500 --> 01:17:08.820
Gestern gesehen von einer der Maintainerinnen vom Vapor-Mode gesagt hat,

01:17:08.900 --> 01:17:13.260
ja, hier im letzten Meeting hat Evan gesagt, lass doch Vapor mal in die Miner-Branch

01:17:13.260 --> 01:17:15.100
reinmerchen, lass mal eine Alpha erstellen.

01:17:15.540 --> 01:17:19.000
Das heißt, die experimentelle Version von Vapor-Mode mit einer Alpha für 3.6

01:17:19.000 --> 01:17:22.600
kommt sehr bald, wenn das raus ist, vielleicht schon draußen,

01:17:22.740 --> 01:17:24.200
weiß ich nicht genau, ich kenne das Datum auch nicht.

01:17:24.680 --> 01:17:27.940
Aber das sind auf jeden Fall Fortschritte da. Das hat ja alles ein bisschen

01:17:27.940 --> 01:17:30.560
gedauert, wenn man auch überlegt, die letzte View-Version ist ja von letztem

01:17:30.560 --> 01:17:34.960
Jahr im Herbst sowas in der Richtung, glaube ich, gewesen. Also alles ein bisschen her.

01:17:35.723 --> 01:17:39.843
Was aber auch okay ist, weil letztendlich ist es halt ein elf Jahre altes Framework.

01:17:39.943 --> 01:17:44.663
Man braucht jetzt keine zwingend neuen APIs, aber da kommt der Vapor Mode, was sehr cool wird.

01:17:45.123 --> 01:17:48.603
Und es ist ja auch cool, wenn es immer nur so eine Neuerung immer gibt und nicht

01:17:48.603 --> 01:17:53.003
so hier ist alles auf einmal. Richtig, richtig. Bugfixes gibt es natürlich auch, wie immer.

01:17:53.683 --> 01:17:57.343
Und was aber tatsächlich noch eine weitere Neuerung ist, die ihr vielleicht

01:17:57.343 --> 01:18:00.543
alle, wenn ihr V-Entwickler seid, schon gesehen habt, ist, wenn ihr euren VSCode

01:18:00.543 --> 01:18:03.743
aufmacht, falls ihr VSCode nutzt, sonst seht ihr den nicht, gibt es die Version

01:18:03.743 --> 01:18:06.143
3 der VS Code Extension jetzt.

01:18:06.643 --> 01:18:12.103
Also Johnson, hatten wir schon erwähnt, der TSS-Lint baut, aber auch Volar,

01:18:12.283 --> 01:18:15.563
das Framework, was zum Beispiel die Vue Extension, die MDX Extension,

01:18:15.683 --> 01:18:16.603
ich glaube Astro auch, etc.

01:18:17.763 --> 01:18:22.503
Mit befeuert und Alien Signal ist als schnellste Signal Library auf dem Planeten.

01:18:23.223 --> 01:18:26.743
Das sind auch alles lustige Projekte. Der hat jetzt zusammen mit Kazaris,

01:18:26.763 --> 01:18:32.023
ein anderer Maintainer, die neue Version 3 veröffentlicht und da hatte ich auch

01:18:32.023 --> 01:18:33.323
die Ehre, ein bisschen was beizusteuern.

01:18:33.383 --> 01:18:36.063
Johnson hat mich nämlich schon vor Monaten gefragt, so ja, wenn Phyzeron 3 rauskommt,

01:18:36.123 --> 01:18:37.003
kannst du ein Video machen?

01:18:37.263 --> 01:18:39.963
Ich so, ja, klar, kein Problem. So, ja, hier, das sind die Features,

01:18:40.163 --> 01:18:42.563
so nach dem Motto, hier ist die Übersicht und mehr Features,

01:18:42.663 --> 01:18:43.523
guckt euch einfach das Video an.

01:18:43.843 --> 01:18:47.263
Das heißt, wenn ihr dann mal eine View-Komponente öffnet in eurem VS Code und

01:18:47.263 --> 01:18:50.203
die Vyzeron 3 ist erst installiert, dann habt ihr so eine Willkommensübersicht.

01:18:50.623 --> 01:18:52.643
Wenn ihr ein bisschen runterscrollt bei irgendwie Learn More Features,

01:18:52.923 --> 01:18:56.403
dann dürft ihr da mein Gesicht nur einfach mehr sehen und könnt euch da die

01:18:56.403 --> 01:18:58.863
acht Minuten noch reinziehen, was es für spannende Sachen gibt.

01:18:58.863 --> 01:19:01.843
Auch da kann ich Ihnen empfehlen, wenn ihr Video-Entwickler seid,

01:19:02.683 --> 01:19:06.403
sponsert gern Johnson oder hast eure Organisation sponsern, dann kriegt ihr

01:19:06.403 --> 01:19:10.403
noch ein paar nette Features, wie die Visualisierung von Reaktivität in VS Code,

01:19:10.503 --> 01:19:13.023
also sowas wie ich, klick dann auf ein Ref und dann sehe ich,

01:19:13.083 --> 01:19:14.663
welche Computers und Watcher das alle nutzen.

01:19:14.943 --> 01:19:18.223
Das sind recht coole Features und ich glaube irgendwie Start ist 3 oder 8 oder

01:19:18.223 --> 01:19:22.083
sowas Dollar im Monat, das ist so nichts, was jetzt ein Entwickler das Genick

01:19:22.083 --> 01:19:23.043
brechen würde, eigentlich.

01:19:23.763 --> 01:19:26.663
Auf jeden Fall sehr, sehr coole Features. Es gibt natürlich auch genug Unpaid-Features

01:19:26.663 --> 01:19:29.163
und auch da nochmal der Hinweis, das ist, wie du mir das andere fandest,

01:19:29.203 --> 01:19:32.263
also kann ich nur empfehlen, dass da weiter cooles Zeug kommt.

01:19:33.293 --> 01:19:37.593
Genau, das wäre so in Richtung Vue, was es jetzt so an großen Neuigkeiten gibt zumindest.

01:19:39.053 --> 01:19:44.113
Wie schaut es denn jetzt eigentlich aus mit Vue 2 und den Tools wie die VS Code

01:19:44.113 --> 01:19:46.233
Extension oder die Chrome Extension,

01:19:46.673 --> 01:19:49.833
DevTool Extension für egal welchen Browser jetzt mal? Guter Punkt.

01:19:50.213 --> 01:19:54.873
VS Code, die Version 3 sollte erst kein zweimal supporten, supportet es jetzt

01:19:54.873 --> 01:19:57.753
noch, aber wird das in 3.1 nicht mehr supporten.

01:19:58.653 --> 01:20:02.093
Heißt auch da, entweder bleibt man auf der Version 3 oder muss dann irgendwann

01:20:02.093 --> 01:20:03.253
einen Schritt zu wie frei machen.

01:20:03.533 --> 01:20:05.993
Bei den DevTools weiß ich es gar nicht sicher, aber es gibt auf jeden Fall noch

01:20:05.993 --> 01:20:07.213
DevTools-Versionen, die damit laufen.

01:20:07.553 --> 01:20:11.493
Bei den neueren glaube ich fast nicht mehr, aber das habe ich den Überblick

01:20:11.493 --> 01:20:13.353
tatsächlich nicht. Müssten wir nochmal gucken.

01:20:14.053 --> 01:20:16.993
Kein Ding. Wenn hier irgendjemand das Problem hat, dann wird schon irgendjemand

01:20:16.993 --> 01:20:21.073
ganz laut schreien. Ganz sicher. Oder irgendeine Wege für dann damit umzugehen.

01:20:21.713 --> 01:20:25.333
Upgraden. Und dann, das letzte, was ich noch gefragt hatte, hier war Nuxt.

01:20:25.953 --> 01:20:28.793
Genau, das ist ganz witzig. Also wir sind ja aktuell auf NUX3.

01:20:29.233 --> 01:20:30.073
Das ist auch so eine Story.

01:20:30.333 --> 01:20:34.553
NUX4 wurde angekündigt und wird diesen Monat rauskommen.

01:20:35.113 --> 01:20:38.473
Es gibt Alphas schon. Die Story wird nämlich folgendes. Das kann ich so ein

01:20:38.473 --> 01:20:40.793
kleines bisschen ausholen, wer da auch mehr Details wissen will.

01:20:40.953 --> 01:20:42.893
Habe ich mit Daniel auch lange drüber geredet im Podcast.

01:20:43.153 --> 01:20:47.753
Aber die TLDR-Story ist, NUX4 sollte Nitro-Version 3 beinhalten.

01:20:47.853 --> 01:20:53.713
Nitro ist die Server-Engine, die ja auch Analog, 10-6-Dat, Solid-Daten-Powered

01:20:54.013 --> 01:20:56.533
und die das Angular-Team sich tatsächlich auch anguckt für CLI,

01:20:56.613 --> 01:20:58.413
aber das ist eine andere Geschichte und eben auch Nuxt.

01:20:59.120 --> 01:21:01.260
Und da soll die Version 3 rauskommen. Und dann war die Idee,

01:21:01.420 --> 01:21:02.740
okay, lasst auf Version 3 warten.

01:21:03.320 --> 01:21:06.420
Und wie es immer so ist mit Deadlines, Einschätzungen, Features,

01:21:06.680 --> 01:21:10.620
es ist sehr schwierig, das zu schätzen. Und Nightmare Version 3 ist halt immer noch nicht draußen.

01:21:10.880 --> 01:21:16.660
Und als ich mit Daniel gequatscht habe in den Staaten, als ich bei der Viewconf.us

01:21:16.660 --> 01:21:18.980
war, da war es so, ja, lass doch einfach.

01:21:19.140 --> 01:21:21.000
Also wir haben jetzt so viele Breaking Changes für Nux 4 schon,

01:21:21.100 --> 01:21:22.580
weil es gibt so eine Compatibility-Flag.

01:21:22.960 --> 01:21:27.640
Den nutzen Leute schon. Es heißt so, ja, aber lass doch einfach Nux 4 jetzt

01:21:27.640 --> 01:21:28.980
mit den Changes haben, die wir releasen.

01:21:29.120 --> 01:21:34.000
Und dann mit Nitro dann einfach eine Major-Version. Das war so auf der einen

01:21:34.000 --> 01:21:37.100
Seite halb im Scherz, auf der anderen Seite ist es schon realistisch.

01:21:37.460 --> 01:21:41.500
Ja, ich finde es schon sinnvoll. Ja, lass doch machen, weil dann belohnen man

01:21:41.500 --> 01:21:42.460
Leute, die schon migriert haben.

01:21:42.560 --> 01:21:46.000
Man macht die Migration doch nochmal einfacher, weil, okay, jetzt die Schritte,

01:21:46.180 --> 01:21:47.720
das ist eine gute Übersicht.

01:21:47.980 --> 01:21:50.260
Das ist für die meisten Leute, okay, eine neue Ordnerstruktur,

01:21:50.400 --> 01:21:52.300
die ist auch optional, nicht so groß.

01:21:52.420 --> 01:21:55.240
Man kann dann schön zu den Modulen vielleicht noch kontributen und updaten,

01:21:55.460 --> 01:21:59.040
was man vielleicht updaten muss an an Changes, aber es ist gut übersichtlich.

01:21:59.380 --> 01:22:02.580
Und es ist dann noch NUX 3, weil es keine große Breaking, oder weil es keine

01:22:02.580 --> 01:22:04.200
Breaking Changes ist. Das wird dann NUX 4 tatsächlich.

01:22:04.720 --> 01:22:07.040
Es sind Breaking Changes eine Handvoll.

01:22:08.040 --> 01:22:12.200
Ja, dann ist es ja fast vielleicht eh klüger, dass man nicht so viele Würde

01:22:12.200 --> 01:22:15.360
dieser Vapor Change für Breaking Changes für NUX User ergeben?

01:22:15.580 --> 01:22:17.400
Oder würde man das so mit... Das ist ja auch eine meiner Version.

01:22:17.880 --> 01:22:20.320
Also Video Vapor ist ja auch eine meiner Version. Das sollte also alles klappen.

01:22:21.280 --> 01:22:25.940
Und dann haben wir gesagt, NUX 5, sobald also Nitro Version 3 ready ist...

01:22:25.940 --> 01:22:28.640
Naja, plant jetzt einfach nochmal nicht mit Nux 5 und Wafer,

01:22:28.800 --> 01:22:31.020
sondern warte einfach abwarten.

01:22:31.180 --> 01:22:34.140
Die Idee ist wirklich zu sagen, wenn Nitro ready ist, wollen wir es integrieren

01:22:34.140 --> 01:22:36.380
und dann kommt halt Version 5 nicht vielleicht erst in einem Jahr,

01:22:36.480 --> 01:22:40.160
weil wir haben eigentlich einen jährlichen Rhythmus, sondern kommt dann halt als Ball.

01:22:40.240 --> 01:22:43.720
Die Idee ist aber, zwei Major Versions mit kleineren Changes sind halt einfacher

01:22:43.720 --> 01:22:45.800
zu migrieren als eine große, logischerweise.

01:22:47.260 --> 01:22:49.900
Und dadurch, dass wir eben auch noch nicht wissen, was für Breaking Changes

01:22:49.900 --> 01:22:54.620
in Nitro Version 3 so kommen, wie das aussieht, ist es schon ganz gut, wenn wir das aufteilen.

01:22:55.340 --> 01:22:59.180
Deswegen, also NUX 4, es gibt schon Alphas, es wird ein Release,

01:22:59.220 --> 01:23:01.680
kann ja der Mitte des Monats geben, so 13.

01:23:01.860 --> 01:23:05.000
Oder sowas in der Richtung, und dann rechtzügig das Release selber.

01:23:05.460 --> 01:23:07.500
Dann gibt es sechs Monate Support für NUX 3.

01:23:09.200 --> 01:23:13.200
Und dann, wenn immer auch immer NUX 5 rauskommt, also dann ist irgendwann so,

01:23:13.260 --> 01:23:16.220
ja, Nitro 3, integrieren, gucken, testen, Alphas, etc.

01:23:16.620 --> 01:23:19.140
Ab dem Punkt wird es dann auch mal sechs Monate für NUX 4 geben.

01:23:19.240 --> 01:23:23.240
Aber die Migration sollten, also NUX 4 ist wirklich einfach zu migrieren, kann ich nur empfehlen.

01:23:23.320 --> 01:23:25.880
Und die Entscheidung macht, denke ich, Sinn.

01:23:26.600 --> 01:23:30.260
View Vapor kann man dann aber sowohl in 3 als auch in 4 als auch in 5 benutzen,

01:23:30.340 --> 01:23:31.980
weil das ja einfach nur die View-Version bumpen ist.

01:23:32.960 --> 01:23:35.640
Wir müssen aber noch gucken, von unserer Seite, ob wir irgendwas dahingehend

01:23:35.640 --> 01:23:36.900
integrieren müssen, anpassen müssen.

01:23:37.320 --> 01:23:40.360
Sobald ihr aber erstmal kein Server-Site-Rendering braucht, ist es gar kein

01:23:40.360 --> 01:23:44.500
Problem mit Server-Site-Rendering, muss man sich anschauen, ob es da noch was für unsere Seite gibt.

01:23:44.640 --> 01:23:50.200
Aber in den 6 Monaten werden auch Sachen backported, also das sollte auch kein Problem sein.

01:23:50.776 --> 01:23:53.996
Nee, ich finde, es klingt dann ein super Plan.

01:23:54.456 --> 01:23:57.656
Es ist halt immer ein Problem, wenn man einfach Versprechen machen möchte und

01:23:57.656 --> 01:23:59.936
man hat schon selber diesen Plan, dann machen wir das so und dann machen wir

01:23:59.936 --> 01:24:02.576
das so. Aber das reale Leben läuft halt selten so.

01:24:02.876 --> 01:24:06.056
Das gibt es einen großen Stil, schätze ich. Ich würde das, was du jetzt gerade

01:24:06.056 --> 01:24:07.836
erklärt hast, mal so einen größeren Stil erklären.

01:24:08.016 --> 01:24:12.936
Ich kenne das genauso im kleinen Stil, wie wenn ich sage, ich habe da mein Frontend am Freitag fertig.

01:24:13.616 --> 01:24:17.936
Aber mir fehlten halt selber noch fünf Abhängigkeiten und dann so,

01:24:18.236 --> 01:24:19.516
es ist doch nicht fertig.

01:24:20.496 --> 01:24:23.776
Richtig, richtig. Das haben wir ja alle jeden Tag hier eigentlich.

01:24:24.356 --> 01:24:27.976
Das Spannende. Und das ist halt immer das Wichtige, dass man da halt irgendwie flexibel bleiben muss.

01:24:28.096 --> 01:24:31.276
Und vielleicht eben nicht zu viele Versprechungen, wenn man schon vorher macht.

01:24:31.316 --> 01:24:35.396
Ich habe es auch mal eine Zeit lang gerne gemacht, dass ich schon Sachen gedemot

01:24:35.396 --> 01:24:38.596
habe, irgendwie im Team einfach ein Screen Recording in Slack geschickt habe,

01:24:38.896 --> 01:24:41.136
als es halt noch nicht mal der Merch Request gemerged war.

01:24:41.216 --> 01:24:44.076
Und ich habe halt so dazu geschrieben, Leute, das ist eine Demo, a Proof of Concept.

01:24:44.356 --> 01:24:46.256
Das ist ein Merch Request, der ist noch nicht gemerged.

01:24:46.676 --> 01:24:50.196
Das habe ich früher gemacht, so vor fünf Jahren oder sowas. Damals?

01:24:50.936 --> 01:24:54.116
Damals und habe gemerkt, manchmal ist es halt so die Reaktion,

01:24:54.176 --> 01:24:57.376
ja, so voll cool und ich habe Feedback-Ideen und dann kommt ganz viel,

01:24:57.836 --> 01:25:00.736
das ist noch nicht die richtige Link-Farbe und ich so, ja, ja.

01:25:00.936 --> 01:25:04.056
Ja, Schrittgröße, so, ja, ja, genau, oh ja. Das sind auch gute Hinweise,

01:25:04.156 --> 01:25:06.776
weil vielleicht war es ja sogar ein Ausführerin, aber es ist dann immer so ein

01:25:06.776 --> 01:25:10.096
kleiner Stich und ich so, ich will aber schreiben, ich weiß doch, ich weiß doch.

01:25:11.136 --> 01:25:16.296
Aber ja, deswegen, ich glaube, das wird komplett verziehen, wenn das jetzt die

01:25:16.296 --> 01:25:20.036
Roadmap, die offiziell nicht so eingehalten wird, wie erst versprochen oder wie auch immer.

01:25:20.216 --> 01:25:22.816
Ich glaube, der wichtige Punkt, den du da gesagt hast, sind Abhängigkeiten.

01:25:23.216 --> 01:25:27.596
Und Daniel hat auch schon gemeint, dass er hier Head of Framework bei Nuxt und auch guter Freund.

01:25:28.116 --> 01:25:31.076
Der Punkt, dass wir gesagt haben, wir machen uns abhängig von wann auch immer

01:25:31.076 --> 01:25:33.936
Nitro 3 rauskommt, es war auch so ein bisschen ein Fehler.

01:25:34.156 --> 01:25:38.776
Also nicht Blame auf Nitro oder Puja oder irgendwen, sondern einfach zu sagen,

01:25:38.916 --> 01:25:40.876
wir machen uns auch nicht abhängig, wie es rauskommt.

01:25:40.956 --> 01:25:44.016
So, Viet 7 ist draußen, Leute können Viet 7 in Nuxt schon nutzen,

01:25:44.136 --> 01:25:45.456
das ist eigentlich alles kein Problem.

01:25:45.976 --> 01:25:50.996
Die Idee wäre halt zu sagen, okay, entweder released man dann eine Major-Version,

01:25:51.176 --> 01:25:54.416
keine Ahnung, ein paar Monate später, aber in einem normalen Zyklus und upgradet dann.

01:25:54.616 --> 01:25:56.916
Man hat vielleicht schon eine Flag, dass man sagt, okay, wir bauen schon mal

01:25:56.916 --> 01:25:59.776
Code ein, wenn die Flag drin ist, das Feature-Flag, Experimental,

01:25:59.836 --> 01:26:03.196
was auch immer, könnt ihr Nitro Version 3 nutzen oder ähnliches,

01:26:03.236 --> 01:26:05.996
aber dass man nicht sagt, wir koppeln unser Release-Datum und das Release-Datum

01:26:05.996 --> 01:26:06.896
von einer Major-Dependency.

01:26:07.236 --> 01:26:12.216
Das ist, glaube ich, das größte Problem mit und das werden wir halt auch nicht nochmal machen.

01:26:12.856 --> 01:26:15.896
Dazu ziehen alle Major-Dependencies. Also wie gesagt, in Veed,

01:26:16.016 --> 01:26:18.036
in Nitro, ein View genauso,

01:26:18.336 --> 01:26:21.636
deswegen ist da die Idee, weil man kann halt in einem Meta-Framework ganz viel

01:26:21.636 --> 01:26:24.736
noch machen und sagen, ich baue hier noch einen Kompatibilitätslayer,

01:26:24.996 --> 01:26:28.316
wenn das in Racking Changes für mich als direkter Nutzer des Pakets ist,

01:26:28.656 --> 01:26:30.456
muss es ja nicht für den Endnutzer des Frameworks sein.

01:26:30.736 --> 01:26:34.016
Also da ganz, ganz viele Möglichkeiten, die wir uns angucken.

01:26:34.736 --> 01:26:38.236
Nur eben diese Probleme mit, wir möchten da trotzdem jährlich releasen und wir

01:26:38.236 --> 01:26:41.956
möchten so wenig Abhängigkeiten wie möglich, das sollte damit gelöst sein.

01:26:43.719 --> 01:26:48.099
Gut, ich wäre durch mit meinem, ich glaube, ich spreche für Stefan mit.

01:26:48.179 --> 01:26:50.179
Wir sind durch mit unserem Fragenkatalog.

01:26:50.679 --> 01:26:54.479
Ich bin happy. Ich habe alles zu erfahren, was ich erfahren will. Stefan ist happy.

01:26:55.639 --> 01:27:00.099
Super. Aber Alex, bist du happy oder liegt dir noch was auf der Seele,

01:27:00.199 --> 01:27:01.879
was du uns erzählen möchtest?

01:27:02.419 --> 01:27:05.539
Wir könnten bestimmt noch mal eine Stunde reden, aber...

01:27:06.919 --> 01:27:10.759
Also ansonsten, ich glaube, wir haben die meisten Tools besprochen.

01:27:11.139 --> 01:27:13.579
Eine Sache, die wir nicht groß besprochen haben, ist TS-Down.

01:27:14.239 --> 01:27:19.319
Das ist aber auch recht TLDR-mäßig einfach nur ein Builder für Libraries,

01:27:19.799 --> 01:27:22.719
basierend auf Roldown, also einfach nur optimiert dafür und noch ein paar Sachen

01:27:22.719 --> 01:27:26.079
integriert, wie zum Beispiel Publint, also zu gucken, dass die Settings für

01:27:26.079 --> 01:27:29.399
ein Publischt alle richtig eingestellt sind, dass die Typen stimmen mit Other Types wrong, etc.

01:27:30.099 --> 01:27:34.599
Das man nutzen kann statt TS-Up, das war so der Way-to-Go, um irgendwelche Sachen

01:27:34.599 --> 01:27:37.979
zu bundeln, früher, basierend auf ES-Build, ist mittlerweile nicht mehr aktiv

01:27:37.979 --> 01:27:42.339
maintained und der Ersteller nutzt zum Beispiel auch TS-Down, was ganz lustig ist.

01:27:42.899 --> 01:27:46.639
Das steht halt nur nicht publik irgendwo, das ist halt irgendwo mal ein Tweet.

01:27:48.059 --> 01:27:50.079
Deswegen hatte ich auch mal ein Pair eingesendet zu sagen, hier,

01:27:50.159 --> 01:27:53.099
möchtest du das vielleicht irgendwo deklarieren, dass das nur noch ein Maintenance-Mode

01:27:53.099 --> 01:27:54.339
ist, was ja auch vollkommen okay ist.

01:27:54.359 --> 01:27:58.899
Es ist halt so, it's done und ja, TS dann halt mit Rolldown ist ganz viel für Libraries.

01:27:59.119 --> 01:28:02.439
Da ist natürlich die Idee ESM first, standardmäßig gibt es nur ESM aus,

01:28:02.499 --> 01:28:07.139
aber man kann auch Dual-Publishing machen mit ECMAScript Modules und CGS oder

01:28:07.139 --> 01:28:09.659
auch nur CGS, wenn man möchte und der Rest ist recht ähnlich.

01:28:10.099 --> 01:28:11.659
Wie gesagt, nur deutlich schneller.

01:28:12.179 --> 01:28:17.899
Und das Schöne ist, die TypeScript-Declarations durch den OXC-Transformer gehen

01:28:17.899 --> 01:28:18.919
halt auch rechtszügig durch.

01:28:19.079 --> 01:28:24.659
Heißt, wenn man dieses isolated declarations enabled hat, überall die Return-Typen

01:28:24.659 --> 01:28:27.619
von Funktionen mit reingeschrieben hat, bei Libraries ist das mittlerweile gang

01:28:27.619 --> 01:28:31.199
und gäbe, bei größeren geht das alles recht fix. Oder eben mit TSGO kann man

01:28:31.199 --> 01:28:31.919
sogar auch nutzen damit.

01:28:32.519 --> 01:28:35.199
Das ist, glaube ich, das Einzige, was man noch mit erwähnen kann, was recht cool ist.

01:28:35.279 --> 01:28:40.839
Und das wird dann später der Library-Mode, sozusagen das Fundament für den Library-Mode,

01:28:40.839 --> 01:28:44.739
für VEAT 8 sozusagen, also für die Rustified VEAT-Version.

01:28:45.279 --> 01:28:46.879
Aktuell aber eben einfach als Standalone.

01:28:48.561 --> 01:28:52.781
Aber ansonsten hatte ich, glaube ich, nichts weiter. Alles klar.

01:28:53.361 --> 01:28:55.061
Dann machen wir den Deckel drauf.

01:28:56.241 --> 01:29:00.701
Lieber Stefan, liebe Grüße nach Österreich. Vielen Dank fürs Dabeisein.

01:29:00.881 --> 01:29:05.421
Lieber Alex, dir vielen lieben Dank für deine Zeit und dass du vorbeigekommen

01:29:05.421 --> 01:29:07.441
bist und für all dein Wissen.

01:29:07.801 --> 01:29:10.601
Ich habe ja nebenbei auch versucht, schon ein bisschen die Notizen mitzubeziehen.

01:29:10.641 --> 01:29:13.461
Beziehungsweise die Notizen waren schon da, aber ein bisschen Links noch mit rauszusuchen.

01:29:13.661 --> 01:29:16.841
Nachdem hier plötzlich Prettier, E.S.Land, Tears Up, Tears Down.

01:29:17.941 --> 01:29:21.481
Alle Begriffe, die wir heute mal genannt haben. Ich versuche sie weiterhin zusammen

01:29:21.481 --> 01:29:25.041
zu sammeln und irgendwie strukturiert auf unsere Shownotes reinzubekommen.

01:29:26.621 --> 01:29:30.241
Nächste Woche geht es dann bei uns weiter mit der Alkaterina Hoffmann und einem

01:29:30.241 --> 01:29:34.381
ganz anderen Thema, nämlich Security Awareness ohne die Moralkeule.

01:29:34.881 --> 01:29:38.661
Wie man die Menschen wirklich erreicht. Ja, ich freue mich auch immer,

01:29:38.761 --> 01:29:41.061
wenn wir immer so ein bisschen in Kontext witschen.

01:29:41.781 --> 01:29:47.521
Und ansonsten, wir freuen uns wie immer über Sternchen und Upvotes bei allen

01:29:47.521 --> 01:29:49.161
möglichen sozialen Netzwerken.

01:29:49.441 --> 01:29:54.901
Und jetzt nochmal vielen Dank an euch beide und bis nächste Woche. Ciao, ciao.

01:29:56.720 --> 01:30:25.239
Music.

