Deep Dive 125 –

Web Components mit Adam Bien

19.05.2023

Shownotes

Die Podcastfolge zu unserem Meetup: Wir haben wieder das Vergnügen mit Adam Bien zu quatschen. Diesmal diskutieren wir das eventuell kontroverse Thema der Web Components und besprechen, wie produktiv man Webanwendungen mithilfe von Web Components und ohne zusätzliche Frameworks entwickeln kann.

Adam teilt seine Erfahrung mit uns, wie Web Components dabei helfen können, Entwicklungszeiten zu verkürzen und die Codebasis zu vereinfachen. Er erläutert die Vorteile der Verwendung von Web Components im Vergleich zu Frameworks wie Angular, React oder Vue.js. Außerdem gibt er Einblicke in bewährte Designprinzipien, Strukturierung von Projekten und die Integration von Tooling in den Entwicklungsprozess, um die Produktivität zu maximieren.

Adam Biens praxisnahe Ansätze werden sicherlich inspirieren und dir neue Perspektiven eröffnen.

/transkript/programmierbar/deep-dive-125-web-components-mit-adam-bien
Hallo und herzlich willkommen zu einer weiteren Folge der Programmier.bar. Wir haben heute mal einen Tipp für euch dabei und wir sind heute der Jojo, und da Dennis am Montag Vater geworden ist, Fabi im Urlaub ist und Sebi auf einer Hochzeit, habe ich mir noch zwei weitere Moderatoren eingeladen und das ist zum einen der Garrelt und zum anderen der liebe Fabian Hiller. Hallo, du bist nämlich heute für das mit dabei. Nicht nur da. Und dann, als ich erfahren habe, dass du im Haus. Hey, das ist ja super. Du warst schon so oft bei unserem Podcast und wärst auf jeden Fall ein guter Mitmoderator hier für diese Sendung. Mit kritischen Fragen. Mit kritischen Fragen. Wir haben nämlich heute ein sehr spannendes und auch vielleicht ein bisschen provokantes Thema für euch dabei. Es geht nämlich darum, wie man sehr produktiv im Netz und ohne die Verwendung eines einzigen Frameworks oder vielleicht nur kleiner Ausschnitte von Frameworks eben für das Web entwickeln kann. Und ich freue mich schon sehr auf dieses Thema. Und wir haben heute einen Gast dabei, den wir schon sehr oft gehört haben hier im Podcast und das ist nämlich Adam BIM Header. Freut mich, dass du da bist. Hallo, freut mich auch sehr und die neuen Moderatoren sind wirklich nett aus. Das letzte Mal war jemand, der wirklich ketzerische Fragen gestellt hat und dann heimgegangen ist. Diesmal. Vielleicht wird es besser funktionieren. Wie es am Anfang auch nett, aber nur die kritische Seite gezeigt hat. Genau. Adam ist ja schon eine bekannte Stimme unserem Podcast. Zum einen hat mir letztes Jahr unser Mitab Vite Java rocks, was sehr sehr, sehr cool war und auch da die entsprechende Podcastfolge zu. Das war die Folge 122 und auch die siebte Folge 105 haben wir mit dir gemacht zum Thema warum die Cloud so gut ist. Und nachher haben wir noch. Da wurde auch ein Live Coding. Machen wir es, wo du ein bisschen zeigst, wie du wirklich mit diesem Ansatz eben ich glaube fast alle deine Apps eigentlich umsetzt. Aber kannst uns erst mal ein paar Sätzen erklären, warum du der Meinung bist, dass man für die Webentwicklung kein Framework braucht und man alles letztendlich mit Webkomponente und vielleicht der richtigen Architektur dann umsetzen kann. Ich bin jetzt Java Entwickler und in Java war es so, früher gab es Jaspis, Java Server Pages und dann Jusuf. War sehr sehr populär. Aber dann irgendwann haben die Kunden gefragt okay, was machen wir jetzt? Weil mein Josef ist nicht immer perfekt, vor allem nicht in den Wolken. Wenn du dort Balance hast, geht es fast Atlas, aber. Oder was machen wir, wenn wir jetzt offline arbeiten wollen? Das ist noch interessanter. Naja, und wenn man. Euch. Die Podcastfolge mit. Ihr habt ja gehört. Bei mir geht es eher um Standards, Minimalismus. Und wenn man jetzt sich das Web anschaut, dann die Frage ist okay, was machen wir jetzt? Und um die Philosophie meine Java Philosophie aufs Web umgesetzt bedeutet wir schauen uns erst mal an, was der Browser kann und versuchen wir das zu verwenden. Und wenn es nicht weitergeht, nehmen wir an Framework. Und das Erstaunliche war wir sind nur mit dem Browser sehr weit gekommen und haben das sehr gemocht. Das ist eigentlich die kurze Geschichte, warum wir Webkomponenten machen. Klingt spannend? Auf jeden Fall. Ich glaube, wir können, bevor wir das Thema noch ein bisschen tiefer einsteigen, dich noch mal ganz kurz vorstellen. Also genau, Du bist freiberufliche Consultant, Architekt und Entwickler im Java und auch im Webumfeld und du bist ein großer Verfechter. Wenn man dann mal deine Podcasts verfolgt oder auch deine Sendungen ausstrahlt von sehr einfacher, klarer Struktur und auch Softwarearchitekturen, grundsätzlich ohne Frameworks. Du bietest auch verschiedene Workshops an und ich glaube, dass du mehrere Seiten, wo man Workshops von dir buchen kann, einmal ist es schon kommen, dann noch habe ich gefunden Microsoft Training und Webstandard Training. Also wenn ihr Interesse habt an diesem Thema dabei ist, ein Thema einzusteigen, ein bisschen mehr Wissen aufzubauen, sollte sie darauf gehen, um euch zu informieren. Wenn du wieder eine spannende Programmiersprache lernen möchte. Ich Java gerne mit Zertifikaten. Du hast da noch ein YouTube er Text wie Und das ist glaube ich einmal pro Monat, dass du dort eine Folge aufnimmst. Du bist da immer am Münchner Flughafen. Zumindest ist das der Hintergrund, den man sieht. Und da sprichst du auch über alle möglichen Themen oder geht es da irgendwie rein um Java Entwicklung oder versuchst du da ein sehr breites Feld abzudecken? Es ist alles so nebenbei passiert oder kommen wir immer am Flughafen München? Sind wir seit der Pandemie. Ist okay, dann machen wir das online. Dann habe ich es umbenannt auf vier Exio. Seitdem ist es online, war dann wirklich Teilnehmer aus der ganzen Welt da teilnehmen das YouTube Channel aus Zeitgründen tatsächlich. Ich habe sehr viele Fragen per Email bekommen, konnte nicht mehr beantworten. Da kamen wir auf die Idee, dass wir auf GitHub jetzt die Fragen sammeln und ich beantworte das einmal im Monat in eine Stunde. Das ist oft und das Interessante ist, das läuft schon seit acht Jahren. Also wir haben über 100 Folgen und was wir uns anschauen, was waren die Fragen vor acht Jahren? Also wir. Folge 110 Also schauen wir uns genau was ist 100 Folgen zurück passiert und welche Fragen wurden gestellt? Und das Interessante ist, sie waren gar nicht so anders. Ja wirklich, es ist auch irgendwie acht Jahre und fast nichts passiert. Und es gibt sogar Teilnehmer aus Brasilien, die sich alle Shows anschauen und versuchen, Inkonsistenzen aufzudecken. Okay, damals, aber vor acht Jahren hast du das gesagt, jetzt ist das Warum Ja, also eigentlich alles Spaß und und YouTube ist eher mache ich so tägliche Charts auch. Java über Java. Viele sagen, Java ist irgendwie komplex. Und dann zeige ich, was in 60 Sekunden so geht. Dass man auf jeden Fall immer den Eintrag, dass es sehr schnell ist, Sachen umzusetzen und zu erklären und man wirklich auch sieht, okay, es kann auch wirklich manchmal so einfach sein, solche Sachen dann umzusetzen. Und ich glaube, das andere Format, was sie auch noch sehr erfolgreich betreibt, ist im Podcast oder auch glaube ich auch über alle möglichen Themen, sprichst also auch viel Java Entwicklung. Und das läuft dann einmal pro Woche. Genau. Genau. Ich hab nie Zeit auf Konferenzen, da spreche und gehe ich wieder und Podcast. Aber die Gelegenheit interessante Leute einzuladen und einfach nur zum Beispiel vom Kubernetes haben wir uns unterhalten warum es das überhaupt gibt oder von den Wolken also alle die irgendwie interessant sind. Ja und wie kommst du dann an die interessanten Kontakte dran? Ist einfach so lernst sie kennen über Konferenzen. Genauigkeiten, die schon von früher oder die haben früher meistens alle bei Microsoft gearbeitet und jetzt überall. Und ja und es ist einfach nicht cool. Ja, dann lass uns jetzt mal in den technischen Teil einsteigen und ich denke, was vielleicht im Vorfeld ganz gut noch mal ist zu klären, was eigentlich mehr ist. Und es gibt da auch bei der Programmier.bar eine Folge, dass der digitale 72 mit Christian Label ist, aber auch schon drei Jahre alt, deswegen vielleicht auch ein bisschen aus der ins Alter gekommen, aber gehört da gerne noch mal rein, falls ihr euch ein bisschen mehr für die Details interessiert. Wir werden diesmal wirklich in einem Podcast mehr darauf gucken. Wie kann man bei uns im Verbund mit anderen Sachen sehr produktiv für die Webentwicklung nutzen? Und wenn ich dich jetzt aber richtig verstehe, ist aber dein Hauptargument für Webkomponente die Konsistenz der Technologie. Ähm, kannst du uns da ein bisschen beschreiben, was das vorhin schon so angeführt okay ist? Kam es letztendlich aus dem Java Umfeld. Aber du hast einfach letztendlich versucht, diese Technologie zu nutzen, zu gucken, was kann der Browser und hast einfach so gute Erfahrungen damit gemacht, dass du gesagt Hey, das ist das genau für dich! Meiner Philosophie entspricht, dass ich sage, ich versuche immer letztendlich bei den Basic zu bleiben, alles andere zu wie möglich da drüber zu bauen. Weil vielleicht so zurück zu Java nur kurz. In Java hatten wir auch verschiedene Frameworks wie JavaScript, also sehr, sehr viele Frameworks sogar und hat mir auch nicht so gefallen. War das Problem beim Consultant Freiberufler und ich musste ständig in ihn. Immer wieder. Also man muss sich vorstellen, ich teilweise zwei Projekte die Woche und ich musste in jedem Meeting rechtfertigen warum wir dieses wenn du nicht das andere und das war irgendwann mit der Zeit langweilig Das ist zwar lustig, vielleicht ein Jahr, aber irgendwann sagt okay, geht nicht mehr. Also habe ich in Java versucht, ein STANDARD zu finden und das ist das Mikrocontroller Java. Und das Gute daran war, es gibt, so gab es eine früher eine Seite, es gibt es immer noch Jacob Java Community Prozess, da konnte man sich die PDF runterladen. Da es war ist das stand eigentlich ganz genau, was es tun soll. Okay, wir machen das und gibt es keine Diskussion. Das ist der STANDARD, außer es reicht nicht aus, ist um produktiv oder was auch immer. Und es gibt tatsächlich sehr viele entwickelt, die das gemacht haben. Jetzt ist die Frage, was machen wir im Web und im Web ist es ja so Es gibt sehr, sehr viele Dokumentationen, sehr viele Frameworks und die ändern sie ständig. Und was mir richtig gefallen hat, war Angular eins fand ich das es interessant dass wie Jazz aus und dann kam zwei so okay das es das kann ja nicht sein ich kann ja meinen Kunden erzählen okay jetzt müsst ihr alles neu programmieren und so, okay, das muss ja irgendwie anders gehen. Und dann gab es zur gleichen Zeit des Modernes entstanden Mozilla Development Network. Aber das ist so entstanden, dass Samsung, Google, Microsoft und Apple sich committed haben. Und das ist jetzt die kanonische Ressource, wo die Webstandars beschrieben werden. Das ist super, weil in Java haben wir Java, Dock oder CCP, also können in Java Entwickler sagen Pass auf, das ist alles, was wir benötigen und fertig. Und so entstand das Ganze also eigentlich von unten. Und ich muss sagen, den Java Entwicklern und mir hat so gefallen weil ich war dann also ich wollte einfach nicht ständig neue Sachen lernen und alle alle zwei Wochen umdenken war okay am Ende des Tages. Alle Frameworks müssen eigentlich einen Dom rendern kann Canvas ob es vielleicht nur 5 %, aber alle anderen rendern den Dom. Also Dom, wenn du jetzt komplexe Projekte baust, musst du sowieso verstehen warum der nicht. Wenn wir es dann Dom nehmen und und die Standards dann schauen, wie weit wir kommen und das hat gut funktioniert. Das ist eigentlich nur der Hintergrund. Ich wollte gar nicht zu viel wiederverwenden oder einfach nur wie könnte man im Browser bauen. By the way habe ich so angefangen. 1997 haben wir genau das Gleiche gemacht im Browser, da gab es keine Frameworks, da mussten wir mit JavaScript und irgendwas bauen. Das war so die Anfänge, die man sich gar nicht so genau nehmen kann. Ja, cool, wenn wir noch ein bisschen mehr auf die Grundkomponenten von Webkomponisten eingehen. Also was sind sozusagen die Elemente, die programmieren? Da gibt es ja irgendwie vier Spezifikationen, wo man sagt, okay, das ist alles letztendlich Bestandteile, die letztendlich Webkomponenten ausmachen. Kannst du das kurz ausführen, was mir dazu gehört? Ich glaube, es sind drei Sachen übriggeblieben und ist es die Custom Elements, dann gibt es die Templates und das dritte was gibt es? Das würde schade um die sowieso genau das und da gab es noch die HTML Imports, aber die sind rausgeflogen. Das ist jetzt in Matthäus 21 zusammengefasst ein bisschen ausgelagert. Genau. Und so ein Element ist ja dann letztendlich etwas, wo ich dann wirklich eigene Komponenten beschreiben kann. Also was ist letztendlich ein Element? Genau. Das Custom Element ist das, warum ich Web Komponente benötige oder warum ich die mache. Weil früher mit Jazz, da hatten wir auch so etwas. Da gab es eine Jazz FTag und es war sehr grob Granulat. Also es war jetzt nicht irgendwie ein Date Picker, sondern eher zum Schluss hatten wir keine Ahnung. Adress Eingabe zum Beispiel. Also wir haben damit wirklich die ganzen Anwendungen strukturiert und die Web Komponente oder Custom Elements gesehen habe. Ja, okay, ich bin gar nicht interessiert, was sie Video Element macht, sondern eher so was wie Adresseingabe, also irgendwas größeres. Also wir haben von Anfang an Webkomponenten verwendet, um die Anwendung zu strukturieren, aber niemals wiederverwendbare Sachen zu bauen. Weil in Java hat man immer versucht wiederzuverwenden, aber es hat eigentlich nie geklappt. Also da die Idee, dass man irgendwas wiederverwendet im Business Projekten, ist die Wahrscheinlichkeit so gering, dass es uns nie interessiert hat. Ich meine, das ist ja das, was man sozusagen als Vorteil von diesem Wort Komponente definiert oder identifiziert hat, das halt möglich ist, solche gekoppelten Komponenten zu bauen, die man dann letztendlich verteilen kann, an Kunden rausgeben kann. Es kann immer wieder verwendet werden, aber du sagst, das ist es kann genauso gut letztendlich einfach eine Grundstruktur sein, um sein eigenes Projekt aufzubauen. Und genau das ist das Spannende eben, was ich gesehen habe, dass Webkomponente so beworben werden, dass man irgendwie gekapselte Elemente vertreibt oder oder irgendwie so Sachen wiederverwendet. Tatsächlich war nie unser Ziel. Also wir haben schon von Anfang an Webkomponenten zu Strukturierung von Anwendungen verwendet, also anstatt usw. Und deswegen finde ich es spannend, dass jetzt hier irgendwie Webkomponenten sind. Nicht geeignet ist es. Wir haben noch nie was anderes gemacht. Also ich habe solche Shadowdome verwenden wir sehr selten, weil damit ist vielleicht das ist so was wie ein kleines iFrame oder eine kleine kleine Website. Im Web Web Webseiten Fragment könnte man sogar sagen, was gekapselt ist. Das hört sich perfekt an, die Java privat könnte man sich vorstellen. Also in Java hatten wir früher mal Swing. Ich glaube es um Java. Die Teilnehmer, also die meisten wahrscheinlich zu hören. Java irgendwo gehört, vermute ich mal, in Java hatten wir zum Beispiel ein Label oder oder ein Panel. Also das gibt es. Und wenn du das privat verwendet hast, war das von außen auch nicht sichtbar. Das Problem mit mit Shadowdom ist natürlich, mit CSS kannst du das nicht stylen. Und im Enterpriseanwendung ist es ja so, dass du CSS von außen dazu geliefert bekommst oder oder selber baust. Und das ist natürlich toll, wenn du von außen alles bestimmen kannst. Deswegen in den meisten Projekten haben wir nie mit Shadowdom gearbeitet und wenn, dann eher haben wir eigentlich nicht, was man machen könnte. Wiederverwertbare Komponente von einer Abteilung zum Beispiel zu bauen, die sie schon können. Aber das geht nur in sehr, sehr großen Firmen. Okay, also in der Web Confluent hast du diese Möglichkeit zu sagen Hey, du bist bringt das gesamte JavaScript, das gesamte CSS auch mit, sagen wir, die Komponente intern zu teilen. Und dann hast du die Möglichkeit zu entscheiden, ob du das irgendwie als Shadow um sozusagen die. In irgendeiner Form musst ja dann in der Domstruktur irgendwie aufbauen in dem Element und das kann entweder in dem Shadow Dom dann integriert werden oder es kann aber auch komplett sozusagen als DOM Struktur in das Dokument dann integriert werden. Genau das kannst du mir so vorstellen. Es gibt, sagen wir, wir haben tatsächlich Adresseingabe, Adressinput, Element, also Programmier Programmier.bar Dash oder Programmier.bar, PB Dash und Kontextinput zum Beispiel so, dann ist dieses Task während View, dann ist leer, so was. Wir benötigen ein bisschen Verhalten und ein bisschen Struktur. So, jetzt hast du zwei Möglichkeiten, jetzt können wir mit eine HTML oder wie auch immer da drin oder mit DOM Dokument Create Element. Zum Beispiel können wir dort die Tags aufbauen und mit Shadowdom sieht es im Browser so aus, dass du sein Hashtag shadow heißt. Es glaube ich. Dann wird es dann quasi gekapselt, da siehst du es nicht. Und in dem Shadow ist das die ganze Struktur. Also der einzige Unterschied ist, ob du jetzt mal, ob der, ob der Browser das für dich kapselt oder auch nicht. Und by the way ist es nicht nur unsere Webkomponenten, die meisten Browser Komponenten wie Video Elemente oder soweit ist es nicht schon so gebaut? Also der Browser findet das auch selbst. Okay und dann gibt es ja, wenn man als dritte Spezifikation, die wir vorhin genannt hast, auch noch die hatte mit Templates ist das etwas, was du aktiv verwendest, also etwas, was du sinnvoller achtest. Da geht es ja nicht darum, mit dem HTM Templates einfach gewisse Grundstrukturen schon vor zu definieren, das nicht alles über entsprechende JavaScript Funktion dann irgendwie on the fly gebaut werden muss. Also wird es auch ein super Feature letztendlich von diesem STANDARD oder etwas, was du gar nicht so aktiv nutzt. Es ist super Feature damit könnte man performanter Komponenten bauen was du machen kannst du also es besteht aus Template und Slot. Das Besondere am Tablet ist, dass das CSS in dem Template Script ist und vor dem Browser vorgepasst wird. Und du kannst mit JavaScript hergehen und sagen ich klone dann dieses Element. So könnte man so was bauen wie eine Zeile in eine Tabelle 1000 mal klonen, was sehr, sehr schnell ist. Tatsächlich ist es so, dass wir nie auf Performance igkeiten gestoßen sind, deswegen verwenden wir das nicht. Was wir eher machen ist sind Wir verwenden fast immer mit HTML. Dazu kommen wir noch in den Komponenten. Und ich muss sagen, Rijeka zum Beispiel gefällt mir ziemlich gut. Also sagen wir, wenn ein Framework würde ich eher Re Preact verwenden. Eigentlich. Das ist eigentlich jetzx absolut okay und unser Web Komponente sehen wir direkt aus. Also ich sage mal, das ist sehr sehr ähnlich auch von der Form, wie sich das anfühlt und wir früher auch gemacht ein wenig sagen fast identisch. Okay, gibt es denn da Bibliotheken, die du jetzt empfehlen könntest, wenn man mit überhaupt Komponente arbeitet? Ich meine, du hattest glaube ich schon genannt, was irgendwie ein Bestandteil sein kann. Gibt es darüber noch weiter? Weil es gibt ja sehr viele Bibliotheken, die versuchen den auf diesen Fluss und die Struktur von irgendwie zu vereinfachen. Also da ist ja zum Beispiel ein Framework, was das bietet. Es gibt aber auch genauso das Polymer Project, was ja versucht auch sehr viele Komponenten zu bieten oder Standards. Und das ist bei diese Sachen, die bieten mir eigentlich schon alle irgendwie zu viel. Ich brauche eigentlich viel weniger. Da gibt es, da gibt es, dieses Polymer ist entstanden. Ähm Stenzel gibt es das glaube ich von von I Ionic. Man genau die dann auch in verschiedene Outputformate die planen kann. Ich muss da ein bisschen mit meiner Argumentation aufpassen, weil wenn ich sagen wir im Frameworks, dann würde ich gleich Regex verwenden also ich also wenn ich bevor ich Stanze nehme, würde ich nehmen, ich verwende auch kein Element, ich verwende nur die Library und die Argumentation ist dann eine andere. Also was wir in den meisten Projekten nur benötigen, ist es HTML Funktion eigentlich nur also dieses HTML und wenn man sich das genauer anschaut, ist es ja ein Text literal in JavaScript. Das bedeutet so was, was mich interessiert in meinen Projekten große Projekte, größeren Kunden. Was passiert, wenn Google die Lust verliert, Lit weiter zu pflegen? Das ist jetzt die zentrale Frage. Und in unserem Fall ich glaube, dass wir in der Lage wären, das HTML die Funktion selber weiter zu pflegen, dagegen weiter zu pflegen ist Mission Impossible und wir hatten schon Fälle Java Entwickler einer sie vielleicht in Google Web UIKit war heißt damals und gibt es effektiv nicht mehr also sehr viele Projekte haben genau das Problem was machen wir jetzt? Also wir würden quasi von dem von dem Lied das es Template heißt und HTML die zwei Funktionen. Das wurde auch auf Google glaub ich vor fünf fünf Jahren angekündigt und die passen tatsächlich auf einen auf ein Powerpoint Kleid. Also der Source Code. Also das ist das, was wir in Projekten benötigen. Es ist auch sinnvoll, nicht nur wegen der Sicherheit, sondern auch wegen Performance. Das also ohne IT wird schwierig. Und kannst du mal ein bisschen ausführen, warum du dann würdest über Lied Element zum Beispiel. Ein Lied Element wird schwierig, aber ich würde bevorzugen bevor es dann so zum Beispiel Lied Element ist schon grenzwertig, aber aber viel mehr als Lied Element dann stimmt die ganze Argumentation nicht mehr und und und die sehr stabil wobei ich sagen muss, Facebook also sehr viele Computer sind von Facebook die an andere ja jetzt gerade die die Red weiter pflegen. Irgendwann muss Facebook auch merken, dass es auch ohne Fernbus geht und ab diesem Zeitpunkt, wenn. Wenn Sie feststellen, okay, wir können sehr performanter und gute Apps ohne Facebook bauen, werden Sie Reaktruppen. Die Frage ist, was passiert dann, wenn die Community einfach sagen wir machen weiter oder nicht? Das ist die zentrale Frage und die Sachen sind immer spannend bei mir, weil das ist genau das, was das meine Arbeit ist aus Architekten Praxis irgendwas für den Kunden zu entscheiden, Was machen wir jetzt? Und ich muss zumindest argumentieren können sagt das ist die Gefahr und zum Beispiel wäre es das Framework. Ich glaube if es wird von genau einem Entwickler weiterentwickelt. Wenn ich das zeige und erwähne auf GitHub, stimmt das. Das würde nie verwendet. Also erst mal viel besser. Okay, ich sage nur Was schon mal? Ja, das ist genau einer ein Entwickler der der. Und was Es. Gibt einen Hauptentwickler. Ja, aber es gibt ja auch sehr viele in dem Umfeld, die da mit entwickeln. Aber das ist schon recht. New ist natürlich eine sehr, sehr zentrale Person. Die 80 % 80 % der Conditions anschaust. Okay, das interessant ist. Dass GitHub Contributors ist unglaublich und und so was interessiert mich interessiert sind jetzt meine Kunden sagen okay wie warum existiert das Projekt Interesse? Also was sind die Kommunikatoren und sieht eigentlich sehr gut aus Aber es gibt einen Konkurrenten Hype HTML eines euch das war so und das ist ein Hype HTML hat eigentlich angefangen mit der. Idee. Und Lit hat die Idee übernommen und weiter gepflegt. So Hype HTML ist wird zwar immer wieder erwähnt, aber seit fünf Jahren gar kein Commit zum Beispiel. Das würde ich nicht verwenden. Auch wenn Sie jetzt mit dieser Idee angefangen haben, dann ist es mit Vorrang und wird auch in Chrom selbst verwendet. Insofern finde ich, ist ziemlich stabile Entwicklung. Diese Stabilität ist für mich sehr wichtig und für viele Java Entwickler so wichtig. Und ich muss auch ehrlich sagen, ich bin. Ich finde es langweilig, sehr viele Frameworks anzuschauen, weil ich meine, wie gesagt, am Ende des Tages trifft sich sowieso alles in Dom oder in kann, was ja. Was genau macht und das Element. Element. Du musst dir so vorstellen, wenn du jetzt ein Custom Element baust, musst du von HTML Element erben und du hast nicht sehr viel Funktionalität. Also du kriegst einen Connected Callback und das Connected Callback ist ähnlich zu ReactEdit Mount und wie ist das andere. Thema. Und und und wenn du jetzt von littelement erst dann was was du bekommst ist Reaktivität also wenn jemand die Attribute ändert, wird es neu gerendert und das machen viele Projekte, was ich mache stattdessen ich verwende fast immer Relax, wenn es komplexer wird und wenn die gesamte Page Neugier ändert. Das wird bei jeder Änderung vom Rad rennen wir alles neu, deswegen benötigen wir die Reaktivität nicht und es funktioniert mit Flags und allem sehr komplex an. Für ein Java Entwickler ist es ein Singleton mit HTML drin. Ich hab mit mit Singleton fertig und die wundern sich erst mal, dass es kein Singleton ist. Aber wenn sie sich daran gewöhnen, dann ist es kein Problem mit Redaction. Ich glaube auch das können wir ein bisschen später. Wir gehen jetzt auch im Detail uns anschauen, wie das funktioniert. War auf jeden Fall eine sehr gute Einführung erstmal was wir brauchen ist überhaupt sind und wie du sie verwendest, was man in deinen Architekturen und auch bei deinen ganzen Vorträgen siehst, dass du sagst, ich brauche natürlich schon eine gewisse Struktur im Drumherum, um da mein Projekt zu organisieren und was man da bei dir findet, ist dann das Bauen. Eine Entity Control Boundary Pattern ECB war mir so gar nicht geläufig, ist ja aber glaube ich etwas, was es schon sehr sehr lange gibt und was auch glaube ich im Java Umfeld auch sehr etabliert ist. Kannst du es mal ein bisschen genauer erklären, was eigentlich dieses Pattern ist und was es dann ausmacht? Auch Java Geschichte, Aber in Java mal ein Buch geschrieben mit meinen eigenen Namen, die waren eigentlich gar nicht so schlecht. Es war die Domain Fassade und Service und so was und ich musste in jedem Projekt mich rechtfertigen. Warum heißt das jetzt Fassade und nicht and point und warum Service und nicht Action und warum Entity und nicht Domain? Sei okay, nie wieder. Ich versuche irgendein STANDARD zu finden, was auch in einem Buch beschrieben ist und dann verwende ich das. Und das älteste STANDARD, was ich finden konnte, war das ECB oder beziehe ich. Mir gefallen die Namen gar nicht so Boundary Control Entity, aber das Vorteile sind die Icons. Also wenn man jetzt in Wikipedia geht, will man die die die die markanten Icons finden, die sind in jedem Tool verfügbar. Also das gibt es in dieser Introio. Also wirklich, in allen Tools kannst du die Icons verwenden. Riesenvorteil für die Firma okay, das sind drei kann kann man schon mal was modellieren keine Diskussion und und es ist auch überall beschrieben, sogar im Haager Modell Inc. Da gibt es eine Website und da findet man die robusten Esdiagramme. So heißen die Suite mit diesen drei Icons und egal. War in Java natürlich sehr stark. So okay machen und Modellierung und was ich damit bewirken wollte einfach nicht über Namen zu diskutieren und das ist mir sehr gelungen. Also ich seitdem ich das verwende, ich musste nie wieder begründen, warum ich das verwende, weil dann verweise ich auf das Buch, was ich selber noch nicht gelesen habe, muss ich sagen von und Jacobson, da sind die Ereignisse beschrieben. Okay, lies das Buch, dann wirst ja sehen wieso. Und das war eine super Erklärung bisher und und das das basiert auf fünf zehn oder wie Controller das Problem mit MMVC ist jeder versteht was anderes darunter und andere Kontrollante, die auf Komponenten relativ einfach Boundary die der die Schnittstelle zum Benutzer, dass wir nur die Custom Element Controls werden Funktionen, die ja zum Beispiel in den Backend kommunizieren. Also Business Logik, die dann genau das wird man können. Aber wenn es Klassen und in JavaScript sind es einfach nur Dateien mit Funktionen, die dann von dem Web Komponente verwendet werden. Also ich habe in den Webpack Web Komponente in den Custom Elements gibt es keine Fachlichkeit, keine Logik. Es wird immer auf delegiert auf diese Funktionen und die Funktionen sind gut. Unity Spa und die Präsentationskomponenten werden in meinen Projekten überhaupt nicht und nicht getestet, weil die fast leer ist. Und wenn, dann wenn, wenn wir Cypress das sind, so entstehen Tests. Aber jetzt keine Unit zu finden und die Entitäten sind entweder JavaScript, Jason Object, JavaScript Objekte oder Red User in Redax Befehl und das funktioniert relativ gut. Wie ist dann die Verbindung von den Entitäten zu den Boundaries? Haben die eine direkte Schnittstelle oder geht das wieder über die Control? Sollten wir das dann ansprechen? Wenn wir das so sollten wir es glaub Zeit ist reif für Relax. Was Redax bedeutet, ist State Management, also was interessant ist als Java Entwickler in die JavaScript Welt. Ihr habt für alles lustige Namen für uns ist. Wir würden es gar nicht darauf kommen, dass man Statement Wir haben Zustand verwaltet, aber wir haben das nie State Management genannt. Wir hatten Menü Strukturen, aber es hat keine von Routing gesprochen. Was? Was? Was, was was? Wofür brauchen Sie State Management? Aber was das eigentlich ist? Die Idee ist genial. Das hatten wir in Java ganz anders gemacht. Deswegen auch, weil in Java Singletons sehr verpönt waren. Also Singletons war riesen Anti Pattern und Redax basiert auf Singletons, aber es funktioniert auch genial gut. So erstmal Redax kam von React auch. Ich glaub das war auch der gleiche Entwickler. Wir waren Redax Toolkit, nicht Redax, weil es moderner ist und wird auch empfohlen, die so zu verwenden. Und eigentlich zuletzt, ich glaube da sind 700 Zeilen Java JavaScript Code und man versteht dann auch tatsächlich, Also wenn man sich anschaut, kann man verstehen, was da passiert. Man könnte das in Java relativ einfach nachbauen und somit auch Java Entwicklern erklären, was da passiert und was Redax ist. Super einfach, finde ich. Aber ich habe auch am Anfang sehr viel gelesen. Das wurde in JavaScript so Umfeld hieß es es ist komplex. Ich finde gar nicht so komplex. Ist eigentlich super einfach man. Es gibt eine Methode Subscribe und man registriert sich an Zustandsänderung bei diesem Dokument und und wenn man den Zustand modifizieren möchte, braucht man so eine Reduce Funktion und diese Reducer Funktion, die man kriegt den Zustand rein, man modifiziert und wieder raus ist im Table also man geklont, quasi den Zustand und bei der Änderung werden alle Subscriber benachrichtigt. Also ein sehr sehr einfaches Event Pattern. Und sag ich mal. Wie finde ich jetzt diesen Zustand von außen? Da gibt es, da. Gibt es eine Funktion. Ich meine einfach, dann gibt es auch bestimmte Actions oder mit denen ich dann sozusagen und genau letztendlich diese Zustandsänderung am zentralen State dann verursache. Genau da gibt es den Boundary, das ist die Komponente. Stell dir vor, wir haben einen Knopf Save und eine Textbox, dann dieses diesen Zustand. Wie das aussehen würde es mit eher mit HTML würde das so aussehen. Wir haben ein Klick Händler so ähnlich zu React. Dann wird eine Methode in in der Boundary aufgerufen im Customelement. Diese Methode würde sich den Zustand von dem Textfeld besorgen oder man würde auch im Text event horchen, je nachdem wie man es baut. Diese und die Komponente wird gar nicht wie die Validierung zuständig, dann die, dann wird das Control aufgerufen. Das wäre eine Funktion, da würde die Validierung stattfinden oder wir würden mit dem Server kommunizieren. Wichtig immer asynchron. Man könne so vorstellen, alle Methoden in dem Control sind void, also wird nie was zurückgegeben. Und naja, und dann wird tatsächlich eine Aktion aufgerufen. Und die Aktion, Da gibt es eine Methode diskret Aktion von dem Redax Toolkit mit bestimmten Namen und dann wird in dem Store entsprechende Methode aufgerufen. Und was das nun macht es macht quasi den Zustand des Textfeldes mit dem globalen Zustand. Und jetzt kommt das Spannende, was ich da machen meinen Projekten. Da sind wir sehr weit gekommen. Also eigentlich hatten wir nie damit Probleme. Dann werden alle Komponenten der Anwendung neu gerendert, alles und lith HTML ist so schlau, dass es quasi nur die DB sendet. Also da missbrauchen wir quasi mit HTML für die, für die wir sind, auch. Die das des Doms. Und es ist wirklich so, dass wirklich jede Komponente sich noch ändert oder nur die sich letztendlich auf die Zustandsänderung des Staates dann zum Skript haben, die das Mittel bekommen möchten. Das kannst du dann entscheiden letztendlich auf welche Bereiche diese der Zustandsänderung oder dieser State Änderung, du dann die Subscribers oder die Komponenten. Die man subscribe. Also wie ich das mache es haben sich in den Store im Connected Callback von Subscribe connected das Connected Callback. Das ist tatsächlich so, dass alle alle Render Methode der Komponenten aufgerufen werden tatsächlich alles aber litt HTML so schnell, dass wir kein Problem damit haben. Aber wir bauen auch keine Riesenprojekte. Also ich komme eher aus dem Enterprise Bereich. Es ist nicht so, dass wir jetzt irgendwie Spiele bauen oder so, also die Probleme die Read hatte mit diesem, mit diesen super schnellen ist es noch mal vorbei oder hatten wir nie das in unsere Anwendung sind eher langweilige, sagen wir mal formularbasierten Apps Ja also das ist auch nicht gut. Dann auch eher Nutzer, die das am Laptop nutzen oder am Computer weniger Smartphone Smartphone auch. Wobei Smartphone Apps noch kleiner sind. Also wenn man Enterprise Apps anschaust, das sind so richtig dicke Apps, sind normale Desktops und wenn das umgeschrieben wird auf das was passiert, dann auf auf Smartphones, was dann passiert im Bereich, dass du typischerweise eine App sogar hast, also da hatten wir noch weniger Probleme und wenn du das ja so ein die Enterprise Benutzer haben auch bessere Smartphones wie wenn man sich global die die Internetbenutzer anschaut also von Performance hatten wir nie Schwierigkeiten. Das heißt ihr baut damit aber keine Websites, sondern immer sage ich mal Webanwendungen, die meistens auch in so einem Log International oder. Genau Website zu. Gerade schon. Aber es ist. Ich glaube nicht, dass das. Das ist schon Websites, aber da es keine Spiele oder so, also es wird nicht für Millionen. Also ich glaube nicht, dass man damit so was wie Facebook bauen könnte. Dann müssten wir das bisschen optimieren. Aber dafür ist mein Architektur oder mein er sehr sehr einfach und funktioniert sehr gut. Und wir messen auch die Performance. Und wenn die Performance schlechter wäre, würden wir schon was überlegen. Schon überlegt? Vielleicht haben wir mehrere Substores oder verwenden wir anderen Staaten Manager, aber bis jetzt noch keine notwendig. Aber meinst du, dass man das mit Commons gar nicht umsetzen könnte? Oder ist es eine Sache von man muss einfach viel mehr Aufwand betreiben, damit diese Performance damit möglich ist? Das interessante ist, ich habe jetzt seit wann war ich? Ja, seit Oktober. Java ist ein bisschen abgehoben und im Servicebereich gar nicht so viel Web Komponente gemacht. Nur ein wenig. Aber ich sollte eigentlich viel mehr machen. Jetzt die letzte Zeit muss ich mir auf Java fokussieren und da habe ich jetzt die letzten paar Tage mal angeschaut. Die Argumentation im Web Komponente was was was wirklich erstaunlich ist Es wird argumentiert, dass Web Komponente besonders klein und schnell sind. Diese Argumentation ich. Also mein Eindruck war, dass immer viel performanter sein muss wegen dem Cyber und ich war erstaunt, dass alle jetzt argumentieren, dass Webkomponenten so klein sind und das Lit HTML5 Kilobyte sind. Also ich hab noch nie gemessen. Also wenn so ist es um so umso besser. Also scheint so, dass jetzt mit web Komponente und mit dem HTML haben wir tatsächlich vielleicht die performanter ist die kleinste Lösung am aber tatsächlich was ich dann machen würde ich würde vielleicht pro Tab oder pro View also ich würde versuchen mit dem Boundary Control Entity zum Beispiel überlegen okay, was Sie versuchen, vergessen zu erwähnen ist, bei dem EBC das wichtigste ist Name des Folders, also bei den Webkomponente die Verzeichnisse, wo die liegen, die müssen fachliche Namen haben, das ist die Idee, also irgendwas Funktionales. Also jede Komponente gibt einen eigenen Folder. Der ja jede andere Komponente wie Adresseingabe oder Inbox Outbox. Aber nicht, dass wir zu wenig, also wir strukturieren die die Anwendung komplett anders und das würde bedeuten, man müsste sich eine Webseite erst mal anschauen, was sind die Grundprinzipien der Webseite? Was sind die Use Cases? Genau in Java hatten wir früher, wenn wir jetzt zum Beispiel haben, uns die Tabellen angeschaut, die Datenbank oder die GPS Entitäten, also so persistente Objekte und geschaut, okay, was sind die Konzepte und aus den Konzepten, zum Beispiel bei einem Online Store, der Shopping Card, Shopping Card oder oder ein Katalog oder oder oder Bestellsystem oder so was. Und das werden auch die Namen der der, der Pakete, der Packages. Was macht ihr wenn es so einen Date Picker an drei Stellen vorkommt? Ja was wir machen Also ich verwende die Webkomponenten zu Strukturierung so a date Picker würde ich eine Party Webkomponente holen. Tatsächlich? Okay. Und was bei uns spannend ist wer war denn war denn ist ein altes Java Framework tatsächlich relativ alt aber die haben war den Elements was selbst auf Webkomponente basiert und da würden wir zum Beispiel so ein war den Date Picker verwenden machen wir auch Also heute werde ich auch den zwar den Router verwenden, aber das ist für uns kein Framework. Das ist einfach nur eine ein Element und ich versuche irgendwas zu finden, was auch ohne Bild und ohne Transporttransport funktioniert. Also ich muss sagen, das ganze Bild von Anfang sehr suspekt und alle meine Projekte kommen ohne Bild aus, was die Idee für die für die Entwickler auch eigentlich spannend ist. Ich verstehe immer noch nicht, warum man so viel bauen muss. Also fürs Web. Versteh schon, man muss optimieren und alles sieht man was so immer. Bei uns spielt es gar keine Rolle, ob wir da eine Datei haben oder zehn, also wirklich und und. Also wir haben quasi wie früher, vor 20 Jahren oder 30 Jahren so sehen unsere Anwendung Web Komponente an aus und das gibt das ist wirklich super wenn du überlegst so was wie Web Deployment wir brauchen keine Pipeline, kein kann, kein aufwendigen Prozess, wir können auch Code Review und wir können sicher sein, dass sie halt auch das ist kein left padding oder was auch immer da drin ist. Also insofern ja, back to the roots, würde ich mal sagen. Ja, ist so ein ganz anderer Ansatz wie. In dem Umfeld, wo ich mich so bewege und deshalb ist es sehr interessant. Das ist, was ich festgestellt habe. Es gibt immer Gegensätze. Und wenn du die extreme Gegensätze betrachtest, hast du zwei Best Practices. Wenn du jetzt so ein High End JavaScript Frameworks verfolgst oder gar kein Framework. Beides kann funktionieren. In der Mitte wird schwierig. Wenn ich anfange, keine Ahnung mit Angular zu mischen, dann ist die Frage wozu? Es spielt keine Rolle, aber wenn du komplett ohne oder du komplett auf AM Framework setzt, macht das Ganze Sinn machen. Das war auch eine Frage von mir. Siehst du gar kein gar keinen Sinn darin, so was zu kombinieren? Also wenn es für einen bestimmten Bereich zu nutzen und dann irgendwas, was. Keine Ahnung einen. Anderen Anwendungsfall hat oder wenn wir jetzt auch die Performance sehen. Vielleicht macht es ja Sinn für Performante oder für einen Teil der User zu nutzen, die performant sein muss und den Rest halt dann mit You zu machen. Aber es ist wirklich so, dass bei uns die Seiten so schnell sind, dass es keine Rolle spielt. Und du musst auch sehen, ich komme von der Java Ecke und wenn was zu langsam ist das irgendwie so Becken Datenbank. Also selten dass die dass die Oberfläche so langsam ist. Wir haben ja alle Systeme, die aufgerufen werden Transaktionen. Das ist langsam. Aber dass das Frontend Probleme macht noch nie erlebt, muss ich sagen. Und auch nicht Angola. Übrigens wird in Java Angola sehr stark an, der Break in Angola war auch immer schnell genug, also auch noch nie gehört, dass die irgendwie Probleme mit Performance von Angola haben. Ich magister Angola nicht so, aber trotzdem muss ich sagen, war performant genug bisher. Also wir mussten nie vom Framework weg wegen Performance. Einfach muss es sein, finde ich. Also die Wartbarkeit bedeutet Einfachheit und mein Anspruch ist auch alles zu verstehen. Und da habe ich absolut die Möglichkeit mir das anzuschauen. MDN fünf Minuten und ich weiß komplett, wie es funktioniert. Was mir auch sehr wichtig ist, wenn irgendwas nicht funktioniert, dass wir irgendwie einen Workaround finden. Wenn wir ein Angular betrachten, wo du jetzt diesen Development Mod hast und ich ich, wenn da was schief geht. Ich glaube, das versteht kein Mensch. Ja, also ich würde mal sagen, ich wüsste nicht, wie lange ich. Also wenn der Kunde sagt okay, was passiert, wenn da irgendwas nicht funktioniert? Weiß ja nicht. Ja, okay, dann versuchen wir jemanden zu finden, oder? Aber bei Webkomponenten Bin mir ziemlich sicher, dass wir eine Lösung finden. Ich habe jetzt noch nie damit gearbeitet. Aber wenn ich das so sehe, frage ich mich. Ob man öfter Dinge noch mal neu baut. Weil ich das Gefühl habe, hier ist, die Basics sind da, die sind sehr stabil. Aber so viel, was so ein Framework bietet, was ja so erst mal meine Produktivität erhöhen soll, eben so Management Sachen oder so, die einfach schon da sind. Gefühlt muss man die immer selber bauen. Wir verwenden ja Redax Toolkit. Genau. Aber hast du das? Wenn es jetzt nicht um Statements mehr geht, sondern um andere Dinge, hast du das Gefühl, du baust manchmal Dinge in jedem Projekt noch mal neu oder kannst du da sehr viel kopieren? Also einfach wiederverwenden wie so was? Was ich Im Gegenteil, wie in jedem Projekt wird es einfacher. Zum Beispiel demnächst kommt die Stage Bitrise Npm zum Beispiel. Die werden wir unbedingt einbauen. Oder es kommen die modale Dialoge rein. Oder zum Beispiel dieses Titels Tag, was genial ist. Kaum bekannt, zum Beispiel so was ist bei uns der Verein. Also was wir versuchen weniger Frameworks und mehr Standards. Also wir schauen uns eher das an, was kommt dann usw. und so in diese Richtung. Und das Gefühl habe ich nicht. Wir versuchen eher zu optimieren. Können wir jetzt noch mehr vom Webstandard die Forms validieren? Können wir zum Beispiel da? Oder wie sieht es aus oder so was? Ja. Also ich glaube nicht so viel nachbauen. Ich will ja gar nicht nachbauen und ich habe nichts dagegen. Also ich würde nie selber bauen. Niemals. Also dann. Und was auch gut ist, passiert demnächst. Prime Face ist bei uns, das ist sehr bekannt mit Josef und die bauen schon drei Komponenten, die auch sehr, sehr bekannt sind und auch Angular. Und die nächste Stufe ist Webkomponenten, also der. Der Teil von diesem Projekt hat mir versprochen, dass im Februar sind wir ein bisschen schon drüber Webkomponenten veröffentlicht und dann das Interessante ist, dann könnten viele Java Projekte von Jeff. Auf. Webkomponente migrieren mit den gleichen Login viel für viele Firmen. Eine riesen Sache ist Primefaces. Node.js F Bibliothek. Oder Josephbibliothek und die Anjes Framework. Du kannst es vorstellen und das besteht aber aus ziemlich gut aussehenden Komponenten sind wirklich gut, sogar in Java gut aus. Ja und? Und was die machen, die lösen die Komponenten aus. Viele Komponenten mit eigenen ist ein eigenes, so ein, so ein System auch. Und die kannst du dann getrennt verwenden. Bei werden ist jetzt schon der Fall, da gibt es zwei fünf von SAP. Sieht auch eigentlich ziemlich gut aus. Sales Force Lightning Komponente Webkomponenten könnten wir auch verwenden. Dann gibt es Spektrum von Adobe, wenn wir auch gerne. Wir klauen auch gerne oder oder oder. Wir schauen uns auch gerne an dieses Material Design, aber nur CSS CSS. Ich sage mal, wir verwenden extrem viel, aber kein Framework, einzelne Elemente. Ich habe sehr, sehr viele Anbieter von letztendlich so Komponente Standardbibliotheken die auch erst mal so völlig wie nennt sich das wenn die nicht gestylt sind oder. 20 Leute. Das ist die Lion ist eigentlich sehr sehr bekannt von EMC von der Bank weil die sind schwarz weiß aus für meine Kunden sehr wichtig, weil die eigenen CSS haben. Das Problem ist, wenn du Wahnsinn oder so was anschaust, das sieht schon gut aus, aber nicht wie Kundensystem aus. Deswegen so was wie eng die sind eher Funktionalität. Das ist der Bank das Eingabe SIP Code und so was. Ist alles fertig, ist es spannend und ich glaube, dass so ein Tool wie Redax ist natürlich schon so, es ist recht etabliert und da gibt es natürlich etliche Bibliotheken, die danach kommen. So was wie cool ist glaube ich etwas, was auch in dem Umfeld sehr, sehr starkes Mobbing ist. Aber das ist etwas, was wir sehr stark nutzen. Und ich glaube, was auch wenn ich es anhöre, wie du deine Architektur beschreibst, obwohl deine EZB heißt, meine heißt MVV, ähm machen eigentlich genau das gleiche, dass wir sagen, einfach. Ist das von Microsoft. Das ist die alte Dotnetarchitektur. Ja, aber wir haben es letztendlich so ein bisschen umfunktioniert und aber es macht eigentlich genau das Gleiche, was wir sagen wir haben eigentlich auch diesen zentralen Store. Wir haben jetzt nicht einmal eine Schicht, wo wir sagen hey, das ist eigentlich der komplette, damit die Datenschicht, die reine Datenschicht. Dann haben wir letztendlich für die Busse noch mal eine eigene Schicht, die aber auch komplett reaktive ist. Aber wir gehen genauso über die Actions, wo wir einfach ein State verändern haben, natürlich mal weg sind, fordert, dass wir uns sehr säkular oder sehr, sehr speziell auf einzelne Zustandsänderungen einbinden können, also auch die Observer letztendlich dann um einzelne Komponenten, einzelne Properties letztendlich legen können, sodass wir da vielleicht eine feinere Granularität bekommen, aber so im Prinzip ist es genau das Gleiche, dass wir sagen, okay, wir haben letztendlich diese Control Ebene, die kommuniziert letztendlich über diesen zentralen State und letztendlich ist unser View wirklich nur die Repräsentation, die wir deswegen auch gar nicht testen müssen, weil damit die gesamte Logik natürlich dann in den Stores und in der Control liegt. Es spannend zu sehen, dass es vielleicht auch ein anderer Begriff ist, aber letztlich unter der Haube aber so was ähnliches darunter steckt. Und ich glaube, paradox ist auch interessant, was ich sehr hilfreich fand, auch bei solchen Systemen wie Pin jetzt für View, dass man ja auch Tools hat, mit denen man sich genau angucken kann, wie ist jetzt der Zustand der gesamten App, wie waren die Zustandsänderungen? Ich habe so eine Time STANDARD Funktionalität, um meinen Zustand wieder zurückzuführen. Das gibt es ja für Redax ja. Beim Redax auch für Mobics Spannendes oder oder die anderen Sachen ist es ja wichtig für mich. Redax ist der Ursprung, war die Architektur und das war das erste Framework, das sehr verbreitet ist. Und wenn es so was wie quasi STANDARD gibt, würde ich das erst mal nehmen. Aber da muss ich weniger das diskutieren. Das Problem ist, wenn ich Mobics dann unterhalte, dann wird irgendein Entwickler was anderes finden und dann sind wir bestimmt zwei Tage nur am besprechen, welche State Management die beste ist und da keine. Redax war die erste sehr stark verbreitet. Versuchen wir damit. Und wenn nicht geht, machen wir exzessiv, was nie funktioniert hat. Und dann überlegen wir uns in einer Stunde, besprechen wir, nehmen wir das oder wir nehmen wir nicht. Also, da ist es. Es wird vor allem wenn bei euch. Wir bauen ein Produkt und wir sind Entwickler von einer Firma. Ich muss mir vorstellen, bei mir sind Entwickler von verschiedensten Firmen in einem Projekt und die sind nicht unbedingt interessiert, irgendwas zu machen oder sogar produktiv was zu machen. Also Diskussion ist immer spannend. Reden wir erst mal heute über State Management oder warum nimmst du Java und ich Kotlin oder warum nicht Scala und und und und. Da ist man sehr schnell nur noch am diskutieren, muss man sehr aufpassen. Deswegen versuche ich immer irgendeine Art STANDARD oder Ursprung des Ganzen zu finden. So machen wir es mal, ja. Interessant. Ja, es stimmt. Hat man schon eher, glaube ich, so einen Konsens. Was ist etablierter Lösungen? Es hat sich natürlich auch viel getan, aber trotzdem versucht man natürlich immer, ein bisschen was auszubauen. Aber genau diese Diskussion, die du gerade beschrieben hast, hat man natürlich an gewissen Punkten sich dann zu entscheiden, Hey, da gibt es das neue coole Tool, soll man das jetzt nutzen, nicht nutzen? Ja, für euch wird auch spannend, weil der Stand und die Standards werden immer mächtiger. Und irgendwann, je mehr STANDARD du nimmst, desto schlanker wird euer Code Base und desto weniger kann er auch Security technisch passieren. Also glaub für euch. Viel spannender ist für mich, die Komponenten zu betrachten und sagen okay, vielleicht können wir uns mehr und mehr von Facebook entfernen. Das wäre auch für euch ein spannendes Thema, glaube ich. Es ist. Würdest du jetzt, wenn wir uns das mal so den Steg angucken? Ich habe das so verstanden. Okay, du hast es letztendlich als als Datenschicht, die für die Verteilung der Daten zuständig ist. Dann hast du eigentlich nur HTML, um dieses Tool zu machen, um da Updates zu bekommen und dann gibt es eigentlich nur noch den Router, der hat so ein bisschen, wenn man die Projektstrukturorganisation zusammenführt und das ist eigentlich alles das, was du brauchst, um ein Projekt zu bauen. Hast du das für dich noch mal so ein bisschen gekapselt, dass du sagst okay, bestimmte Funktionalitäten der grundlegenden Tust du jetzt eingeführt hast, habe ich jetzt noch mal ein bisschen anders. Ich habe mal gesehen, zum Beispiel einer dabei. Du hast dann dieses Element und die Spielelement macht immer sehr viel, zum Beispiel dieses Binden auf den States. Also es ist schon eine gewisse kleines Framework, was du dann nutzt, um halt diese einfache Verknüpfung dann zwischen den Komponenten und das. Element steht für EBC Element. Das ist tatsächlich das, was ich gerne wieder verwende, aber die Hauptfunktionalität ist Group Lock, dass man so schöne Logging Statements in der Konsole sieht. Und ich glaube die Klasse sind 50 Lines auf Code. Wenn wir im Meta gesehen und ich glaube, dass 20 davon das Logging, also was da wirklich nur passiert ist, connected Callback ist Subscriptstore des Connected Ansatzes und mehr passiert da nicht. Und und bei der Änderung wird eine abstrakte Methode, so was gibt es nicht. In JavaScript kann man sich aber vorstellen, eine abstrakte Rendermethode aufgerufen. Das wäre es schon. Und. Ja genau. Und übrigens, das ist auch kein Framework, das wird nicht gebaut. Also die Idee ist es, dass man das in jedem Projekt anpassen kann. Also manchmal brauchen wir mehr Callbacks weniger. Also das ist dann also, was ich gerne hätte, dass in meinen Projekten die Entwickler das komplett alles verstehen, was da passiert, dass sie auch das sagen können, Das ist eigentlich die Idee dahinter. Und mein Gefühl ist auch, dass dadurch die Entwickler auch produktiver werden, weil sie verstehen, wann etwas performant sein kann. Sie sehen auch in diesem Element, wie lange es gedauert hat. Also ich meine, das ist super, einfach. Cool hast du bist auf besondere Schwierigkeiten gestoßen, aber mit deinem Ansatz, also solche Webkomponenten zu nutzen. Also kannst du einfach so von deiner Erfahrung mitteilen, wo gewisse Fallstricke vielleicht zu suchen sind, wenn man so einen reduzierten Ansatz wählt. Ja, Shadowdom am Anfang natürlich alles gekapselt und festgestellt okay. Brauchen wir gar nicht, weil wir wollen eigentlich alles global teilen, dann, wenn du verwendest. Fokus Management ist auch spannend. Man muss wissen, dass es delegiert Fokus gibt. Also wenn du ansonsten was passiert, wenn du versuchst, in die Komponente einen Fokus zu setzen, wird nur der Host fokussiert, aber nicht drin, dass das Element, das muss man wissen, dass es gibt dann es gibt so dieses Shadowdom gibt es closed und Open des closed sollte man nicht verwenden, weil es bringt einen nichts. Das ist das das ist noch privater als das Open. Man kann es aber trotzdem umgehen. Deswegen machen wir das gar nicht. Nur wissen, dass es open eigentlich zu verwenden ist, wenn man tatsächlich was kapseln möchte. Ja, und eigentlich nur das ist das Schöne daran. Also bestimmte Attribute des Shadow Dom kann geparkt werden. So heißt es also, man kann von außen doch was vorgeben. Die Frage ist immer diese Diskussion, wann, wann kann man was außen freigeben und was nicht? Und die Antwort ist relativ einfach. Da gibt es CSS in Heritage Styles, da gibt es das in der Spec, das sind einfach weiß nicht 20 Attribute wie Color Font, die, wenn man von außen vorgibt, sie auch durchschlagen auf alles CSS aber immer schon so also das sind das schöne also dieses Webkomponenten sind voll in den STANDARD integriert und wenn man sich dann das CSS mal anschaut und sagt okay, so ist es tatsächlich, ja, also ich muss sagen, so, so, so richtige Überraschungen gab es nicht. Also mit dem Fokus zum Beispiel, da hat mich ein bisschen geärgert, dass das so ist. Ansonsten war das eigentlich sehr Stratford und ich habe früher auch sehr viel gemacht. Ich muss sagen, ist es. Eigentlich zu direkt. Jetzt mit diesem Element, wenn ich das schon habe, schon, wenn das vom Skript schreiben würde, dann denke ich schon, Also wenn du jetzt nix hättest, ich glaube schon, dass du dann ein, zwei Tage verlierst, bist du so weit bist mit diesen ganzen mit den Redax, dass du das verbindest. Aber das ist vielleicht 100 Lines of Code, aber trotzdem, man muss bisschen nachdenken. Erst mal auf die Idee kommen. Ja genau, aber ist es auch auch nicht eigentlich. Damals noch mit Klassen gearbeitet. Wenn heute also die meisten Neuen genau wegen der Betrugs und funktionalen. Da gäbe es für dich, was das heißt und das ist Web Komponente mit Reag Rekurs, aber es wieder ein Fremdwort ist, dann finden sich nicht nur Sound Project Fugu interessant. Das mit den Klassen gefällt mir als Entwickler. Wobei ich habe auch kein Problem ohne Klassen zu arbeiten, weil ja auch funktionale. Also Klassen müssen nicht unbedingt sein. Was ich auch dieser amüsant finde, dass jetzt jeder versucht so ein bisschen mit JavaScript Java nachzubauen oder oder sie schaffen. Also muss man auch fairer Weise sagen, Typsicherheit und Klassen ist ein bisschen weniger, aber Webkomponenten müssen Klassen sein. Das finde ich deswegen interessant, weil am Anfang hieß es immer, Java ist so typsicher und deswegen ineffizient und wir können mehr Units schreiben, da sind wir schneller und und die Klassen stören. Und dann nach paar Jahren sieht alles Java aus. Das find ich auch spannend. Ein bisschen weniger mit Bugs. Das heißt man könnte darüber auch Webkomponente schreiben. Ohne eine Klasse denke ich, würde es dann irgendwie wieder umgewandelt oder. Das weiß nicht was über macht. Aber jetzt kann man für die HH und D aber was man anschaut, das sind Webkomponenten mit Webhooks und eine Komponente. Eine Klasse müsste gehen. Also in der Form muss das wahrscheinlich umgewandelt werden, weil letztendlich muss es ja über dieses ich glaube es jetzt aber CustomElements die fein wie es dann letztendlich dann auch definiert wird und diese Form muss es irgendwie gebracht Genau aber an sich kann man es erst mal wahrscheinlich so normal schreiben. Das heißt also diese Utility Funktion, die hast du die einmal geschrieben dass die aber sozusagen dieses grobe Konzept die geschrieben und seitdem kannst du eigentlich darauf aufbauen und brauchst sonst nicht viel mehr um. Genau und warum ich das gemacht habe ist weil ich immer wieder die Frage gestellt habe was machen ist Städten Management gestellt bekommen haben was was mit Städten, Management und Routing also die meist gestellte Frage in den Java Projekten Routing Also das war irgendwie der Eindruck, dass Routing so sehr sehr komplex ist und ich fand Routing eigentlich super einfach der Anschluss, was dabei Routing passiert. Ja, da gibt es diesen Change. Wenn du das jetzt primitiv machst und du tauscht ein Element aus, das ist Routing, fertig. Ja, aber das. In Java hieß es ohne Routing kommen wir nicht weiter, da brauchen wir eine Library. Das ist auch der Grund, warum der Autor drin ist. Den wollte ich schon mal raus. War da. Sehr lange gab es kein Commit. Jetzt gab es wieder Commits, aber den könnte man und da gibt es Pages, da gibt es sehr viele solche Router. Aber wenn wir was nehmen, dann einen Router, der sehr einfach wie der ist. Ja, ist wichtig, dass es einfach ist. Genau. Also das typische Setup irgendwie mit Router und dann vielleicht noch ein paar Elemente dazu und das reicht schon für dich um damit ein komplettes Projekt zu. Und im Mobile ist es so paar Monate Projekten gemacht, so spät und da hatten wir gar kein Router verwendet, weil das war kontraproduktiv. Du willst ja gar nicht, dass man den die Location im Browser siehst, dann wird das mit Hash gearbeitet oder mit einfach mit Klicks und ausgetauscht. Also so sehr sehr einfach Router geschrieben, vielleicht 20 Zeilen JavaScript war eigentlich und klick reagiert und DOM Elemente ausgetauscht und einfach ein Hash Map war abgelegt Command und welches Element da zuständig ist. Eigentlich ist es so, dass alle deine Projekte letztendlich auf dieser Grundstruktur basieren, in denen du beteiligt bist. Da gibt es dann wenig Diskussion und wenn du das vorschlägst, kann man das auch so durchbringen. Und eine Sache der Praxis was, was, was ist, was kann schiefgehen? In jedem Projekt sage ich immer der gesamte Zustand muss über die Angst entstehen. Aber dann verlasse ich das Werk. Wenn ich zurückkomme, versuchen die Entwickler doch zum Beispiel tabelleneigenen Zustand in der Tabelle zu halten. Das geht nicht. Also wenn man jetzt State Management Lösung auswählt, muss wirklich tatsächlich alles im Redax drinsteht. Und viele Entwickler glauben, das ist es unmöglich, dass wir alles in einem Singleton halten können. Aber das geht tatsächlich. Also ich glaube, das Problem kriegst du tatsächlich, wenn du jetzt in der ersten Stufe hast oder im OB Nx und gleichzeitig auch in einem Model, in einer Tabelle. Also das kann kein Mensch mehr irgendwie synchronisieren. Das ist, das ist sehr wichtig, dass es. Ja. Zwei Dinge. Ich habe sie gerne gefragt TypeScript. Genau das war die Frage, die ich immer gestellt bekomme und was auch interessant ist. Webkomponente. Habe auch dieses Argument noch nie gehört. Hier gibt es quasi Plug ins, so alte Geschichten und die basieren auf Toms. Das bedeutet, wenn wir jetzt mit alten, also alten, mit sehr erfahrenen Webentwicklung arbeiten, die noch jQuery kennen, die die, die, die kennen, sehr viele Tabellen von früher, also Tabula Tabulator vor und so was, extrem mächtige Plugins. Und mit einer Webkomponente kannst es absolut rappen. Du kannst ein jQuery Element nehmen, das basiert ja auf DOM bei Webkomponente. Du hast ja keinen kein Shadow Dom heißt es noch mal dieses Virtual Dom. Du arbeitest quasi mit den echten nativen Elementen. Dann kann man quasi alles schreiben, was du vorher hattest. Du könntest ja gesamtes Framework in einem Customelement rappen. Und so können wir sehr, sehr viel, sehr, sehr viele Elemente wiederverwenden. Und das haben wir eigentlich in den Projekten sehr viel Zeit tatsächlich eingespart, weil wir hatten ganz besondere Tabellen, die es dann irgendwie gefiltert haben und da haben wir einfach gewebt, weil wir alle zusammen minimal haben wir verwendet und die Entwickler haben sich gefreut, Ja, unsere alte Technologie können wir auch weiter wiederverwenden. Genau das ist ein großer Vorteil von Bauen ist, dass Komponenten mit verschiedenen Technologien zusammenbringen kann, es damit eine einheitliche Schnittstelle schafft. Und das ist natürlich auch ein großer Anwendungsfall ist. Wie siehst du denn die Zukunft von Web Google Nest? Weil gefühlt ist es ja so, dass es nicht so etabliert ist, also vielleicht immer noch so seinen Weg sucht und dann vielleicht doch nicht angekommen ist. Und der STANDARD Weg den wir heute eigentlich. Ich habe auch das Gefühl, dass die Welt um was geht und was dazu gehört usw. irgendwie da viel krasser ist. Das zu promoten hier genau. Auch mit dem Namen schon gesagt hat alles hier Namen und alles irgendwie so und so und. Da gibt es große Konferenzen, wo man dann gehen kann. Natürlich ist es so, dass Facebook natürlich auch ein Recht als Promo nutzt, um letztendlich bei Entwicklern irgendwie sichtbar zu sein und deswegen vielleicht auch immer ein Interesse daran hat, das weiterzuentwickeln und auch die entsprechenden Ressourcen zu integrieren. Aber so von der eigenen Wahrnehmung ist es so, dass Webkomponente eher nicht so angekommen sind. Und also hat mich auch erstaunt, wie viel das eigentlich genutzt hat, also wie groß eigentlich die Verbreitung da genau. Ich glaube, die Nutzung, also die Verbreitung, ist gar nicht so schlecht, nur die Außenwahrnehmung ist halt nicht so wie jetzt bei uns, aber man sieht es zum Beispiel sehr gut. Nur mal zum Vergleich. Also viele haben ja auch schon mitbekommen, das hat bei mir in den letzten Jahren einen krassen Aufschwung gehabt gehabt, was die Verbreitung und die Nutzung angeht und hat zum Beispiel mehr wöchentliche Downloads als Welt. Aber es hat wiederum glaube ich jetzt knapp 70.000 Stände, wo glaub bei 14.000 steht. Also da merkt man so ein bissel, die Nutzung ist zwar gar nicht schlecht, aber irgendwie die Außenwahrnehmung. Die Präsenz ist nicht so stark. Meine Einschätzung ist Es gibt zwei Welten, so Enterprise Welt und Webwelt Webagenturen. Wie nennt man reine Web Entwickler, die so mit Enterprise Projekten nichts zu tun haben? Da war ich, da habe ich mal die wollten mal was Web Komponente hören. Dann habe ich mit echten JavaScript Entwicklern zu tun gehabt. Die haben Angular kaum gekannt. Das fand ich interessant. Reactio Im Enterprise Projekten ist fast alles Angular, was ich gar nicht verstehe. Das ist unmöglich. Wie könnte das vor allem im Enterprise Angular, wenn Sie genau wissen, dass es im Jahr zwei Major Updates gibt, wo Sie wo die wirklich upgraden müssen. Trotzdem wird weitergemacht. Relax wäre viel sinnvoller, sag ich mal im Enterprise, weil es ist viel stabiler. Da gibt es weniger Breaking Changes. Es ist einfach ausgereifter, würde ich mal sagen. Wir müssen aufpassen, was wir im Podcast sagen. Es ist nicht unter uns, aber es ist halt so.. Es ist auch simpler, einfacher. Angular gibt ja viel vor und stimmt auch viel mehr. Mein Eindruck ist aber, dass er zunehmend unbeliebter wird bei reinen Webagenturen. Uns fehlt es fehlt zum Beispiel extrem an Popularität, gewinnt Also, wenn es so reine Webagenturen in den Enterprises spielt es gar keine Rolle. Nur die Argumentation, wenn man sich überlegt, noch ein Problem ist, wenn du jetzt Webkomponenten verwendest, du kannst da nichts in den Lebenslauf reinschreiben. Was du am Ende machst, ist einfach nur ein Browser programmieren. Das ist kein Framework, kein State Management, gar nichts. Du schreibst einfach nur, was der Browser kann. Also das ist für viele Entwickler auch langweilig. Ja okay, was soll ich da? Okay, ich schreibe langweilige ab, aber die Argumentation ist interessant, weil in Java, wenn wir jetzt in Java Break sind, keine. Stellt die Frage, wo wir Java verwenden, wenn's geht. Also unser Mindset ist, so viele Frameworks geht zu entfernen und bei und am besten ist nur Java. Wir haben schon Erfahrung mit Log4j, habe es schon mal gesagt Jegliche Abhängigkeit bedeutet ein bisschen Gefahr. Und im Web sage ich mal, keiner stellt die Frage, warum ich jetzt ein dev Element verwende und nicht section. Das ist einfach, da verwende ich und Customelemente sind einfach da. Das ist kein Framework, also das nicht zu verwenden. Ich finde mal, man müsste argumentieren, warum man das nicht verwendet, wenn schon da ist, weil das wird von allen Browser unterstützt und das zu verwenden wäre das absolut natürlich, weil sagte sie schon da ist WP section article so kann ich auch. Wenn mir Artikel nicht gefällt, kann ich mir einen eigenen Programmier.bar Artikel machen, das bisschen erweitern. Deswegen die Argumentation finde ich ein wenig. Verstehe nicht. Ist nicht logisch, dass man immer mit einem Framework anfangen muss, um eine Anwendung zu schreiben, wenn es denn auch ohne Framework geht? Also eigentlich müsste man argumentieren, wenn Framework, weil und dann kann man das irgendwie begründen. Und wenn es nur ein fünf gäbe, würden wir verstehen. Aber da gibt es das Feld zwei dunkelgrau, zwei drei und der Übergang war nicht of war und nicht unbedingt kompatibel von 2 bis 3 Angola Jazz und Angola zwei war ein Desaster, sag ich mal Regt ist eine, ging weg, war sehr stabil. Also das war wirklich ein Gegenbeispiel. Also wenn dann reagier dann gibt es React Preact weil. Man jetzt kann man ja auch die selber komponieren. Da bin ich auch gespannt wie es Muster das hinbekommen weil das also das ändert das gesamte mentale Modell da bin ich gespannt weil sie haben es besser wie du sagst, sehr gut hinbekommen. Sie haben zu unterstützen im Grunde heute noch, was wir gefühlt Ewigkeiten mal gebaut haben und da bin ich jetzt gespannt. Und jetzt einen Schritt auf den Server gehen und. Ich weiß schon, warum Regen Enterprises überhaupt nicht verwendet wurde wegen der Lizenzen. Am Anfang gab es so die Lizenz von Facebook, dass wenn du das verwendest, du darfst jetzt nicht mit dem Facebook konkurrieren und jetzt später kam das Open Source. Deswegen und deswegen war das absolut verpönt sind, gab es auch Preact glaube ich dass es also Open Source komplett Implementierung aber ja. Das Projekt verzichtet auf Virtual Dom oder. Das ist auch nicht gerade auch ein Witz, aber im Grunde ist der Fokus bei Projekt extrem kleine Panels alles was nicht da sein muss, auch ganz weg. Also extrem simpel. Eine Frage an euch jetzt so typische JavaScript. Gurus. Habt ihr schon mal gemessen, was tatsächlich die Größe eigentlich für einen Unterschied macht? Also wenn du es wirklich, ob du vier oder fünf oder acht oder 16 Kilobyte und mal eine Anwendung bauen Mail mit break, ob das wirklich ein messbarer Unterschied ist oder jeder. Bei euch anders heißt? Oder war es jetzt. Einfach nur insgesamt? Also einfach nur statt Projekt ein Projekt zu verwenden und dann schauen. Was wir natürlich nur bekommen haben? Waren so initiale Zahlen, als wir auf der Plattform gelaufen sind, wo sie sich genau angeguckt haben, okay, diese bei null sei. Es wird letztendlich zu so einer Downloadzeit und das hat dann schon sehr stark zum Schaden der User bekommen, weil da war es eben eine Plattform. Du hast das nächste Spiel gleich um die Ecke und da war halt sehr kritisch letztendlich, wie lange es gedauert hat, bis wirklich die App gestartet ist und deswegen hat man da immer sehr stark versucht, die Bank zu kriegen, sie möglichst heißen. Aber da war es ja eher so eine normale Gamer hat vielleicht 1,3 Megabyte, also das sind ganz andere Größenordnung als jetzt ein paar Kilobyte gehabt habe. Da sind die Unterschiede nicht so gewaltig und auch nicht so. Aber wenn man die Argumentation anschaut im internet ist und die Kilobyte bei den javascript leuten, also die die. Auch in Millisekunden in Arrays gemessen. Wie schnell? Okay, in Java hatten wir auch diese Phase, aber jetzt scheinbar einfach nur einfachen Code und der Compiler kompiliert schon und optimiert schon. Also das ist. Ich glaube, gerade dieses Tempo First painting the first in der Ecke ist natürlich etwas, wo sehr viele Framework es reingehen, gerade mit Quick Framework. Da ist was ich versuche das sehr stark zu reduzieren und wo man dann sagt, Scores werden dadurch besser. Deswegen vielleicht auch die Sichtbarkeit in den Suchergebnissen. Und man muss sagen, vor allem im eCommerce ist das super wichtig, weil jede Millisekunde im Grunde halt einfach Umsatzunterschiede macht. Aber dann müssen die Customelemente gut abschneiden. Eigentlich noch mit mit? Ja, vermutlich ja. Aber ich frag mich hier wie die Sache ist mit so was halt Render Rendering. Ich habe gelesen, da gibt es was bei lit, aber das ist noch eine Alpha Beta und weil im Grunde braucht ja eine Webkomponente JavaScript Code und was also zum Beispiel was ist wenn. Also ich kann ja im Grunde nur als fertiges HTML raus rendern oder an den Browser schicken, dass er dieses so was hat. Rendering, dass die Frage wie ist das mit der Komponente? Weil im Grunde müssen die Compounds eigentlich erst mal ausgeführt werden im Browser und da ist ja schon viel besser, wenn es schon da ist. Und jetzt geht da noch mal einen ganz anderen Weg, dass es super ist. Es kann auf dem Server starten, liefert im Grunde die fertige Website und erst dann, wenn man interagiert, wird auch wirklich der JavaScript Code, der dafür erforderlich ist, ausgeführt. Und da sind wir bisschen zurück, weil bei uns ist die alle Backen sind Java also wir machen Rest and Points oder manchmal GraphQL und vorne sind typische Spaß. Also wir versuchen eigentlich auf dem Server nicht zu rendern momentan. Was ich aber schon überlegt habe, dass die alten JP Java Server Pages zu reaktivieren, weil das war eine Technologie, die extrem schnell war zu jetzt Business Service. Das sind ja unter Java entwickeln sehr verpönt weil damit die haben komplette Logik darein geschrieben aber das Template ist ist eigentlich genial und das Jaspis wird in Java Code kompiliert und was im Hintergrund passiert ist, werden quasi das Ding und patentiert. Also das könnte man wunderbar mit Webkomponente verbinden, wenn man das schlau macht. Also da sollten wir noch ein bisschen die Geschichte anschauen, weil ich glaube, es hat schon Zukunft. Das Problem ist nämlich, wenn ich jetzt so was wie IT auf dem Server ändern möchte, bräuchte ich Nokias oder ähnliches oder Dino oder so was. Haben wir aber nicht. Wir haben quasi in meinem Projekt ein Korpus oder das ist so native und wir wollen gar nichts. JavaScript im Backend die ganze Infrastruktur aufbauen. Warum glaubst du denn, sind wir uns einfach noch nicht so verbreitet? Also ich habe auch das Gefühl, dass es recht wenig genutzt wird, auch einfach nicht so bekannt. Was ist denn deine Einschätzung, woran das liegt? Ich glaube er war falsch. Gestartet sind. Also das war ein Fehlstart. Viele erinnern sich noch dran. Das war auch dieses der Versuch die Web Komponente am Anfang sollten reine HTML Technologien sein, auch die HTML Imports. Das war und und erst dann haben sie es glaube ich 2016 noch mal gestartet mit Modul und JavaScript und ab dann ist es für. Davor habe ich es auch nicht gemocht. Also das Polymer aus meiner Sicht, das war furchtbar. Also das war so aufgebläht, das hat mich an so Enterprise Service Basis und Java erinnert mit Soap ist Wahnsinn und viele erinnern sich noch dran. Das ist genauso. Bei uns in Java werden so JUI und so alte Server wie Webs. Für die gab es kurz, aber die waren die halbe Stunde und jeder hatte nur das Erinnerung sagt okay das wir wollen das Gateway nicht weil ein Server startet eine halbe Stunde und ich glaube das ist genau das gleiche bei Webkomponenten. Man sagt okay, ich möchte mit dem nichts zu tun haben, das ist aufgebläht und komplex. Und Fakt ist glaube ich, wenn man sich die JavaScript Frameworks anschaut, die sind immer nett, da gibt es eine nette Website mit paar netten Icons, ist schön bunt und wenn man sich Webkomponente anschaut, da geht man auf eine schwarz weiß sehr trockene Beschreibung, was mir gefällt, aber viele nicht. Also da gab es doch ein Vanilla Jazz Website, Das wurde quasi als Framework verkauft, war aber nur STANDARD. Also es war so ein Gag und die haben einfach gesagt, okay, das ist das kleinste Framework überhaupt und das endet überall und das war gar kein Framework, ist einfach nur nette Webseite. Man müsste ein bisschen Marketing rund um den STANDARD betreiben, vielleicht das Schöne verpacken und und das gibt es von verschiedenen Frameworks wie der Frameworks. Ja, da müsste vielleicht Mozilla oder Google haben sie versucht, aber haben wieder aufgehört. Einfach nur den STANDARD bewerben. Das ist ein bisschen zu trocken, zu zu steril. Ich habe auch das Gefühl, dass es auf uns junge Leute teilweise einfach nicht so sexy wirkt. Hat halt irgendwie so ein cooles, wenn es hier genau allein das Fehlende ist für mich so ein Die Wiedererkennbarkeit ist sehr gering. Aber ich hatte tatsächlich mal auf JavaScript Konferenz gesprochen in München Web Komponente und ich war Java Entwickler und gezeigt da kann man die JavaScript Leute auf mich zu und sag ja Wahnsinn das wussten wir dass das geht und und und und die waren begeistert. Okay freut mich weil ich ein bisschen Bedenken gab, dass ich als Java Entwickler hier auf der Konferenz dann sprechen werde und und viele denken, dass es gar nicht möglich ist, ohne ein Framework eine gute Web abzubauen. Dann sind wir heute eines Besseren belehrt worden. Hoffentlich hast du noch nichts gesehen. Genau. Aber vielen, vielen Dank für deine Ausführungen. Wir haben jetzt noch unsere Picks of the Day s und da starten jetzt Rennen. Richtige Begegnungen mit mir. Es gibt ein Buch vorgeschlagen, das ist ohne Make me think. Und dieses Buch sagt einfach man soll. Sachen entwickeln oder oder oder Design überlegen, wo offensichtlich ist, was es eigentlich tut. Das ist so ein ganz kleiner Pick. Das habe ich schon mal erwähnt. Ein größerer Punkt ist natürlich Java Komponente. Und zwar wenn ihr Java mal anschaut. Da gibt es auch die Webkomponente. Warum das so alles so kompliziert ist und aufgebläht, stimmt eigentlich überhaupt nicht. Und wenn Java dann ohne Frameworks einfach mal ausprobieren. Java 17, 19 oder 20 coole Sachen wie zum Beispiel um das Projekt Lumix an die New Jersey Entwickler, die vielleicht es nie für möglich halten, aber wir können dann Millionen von Threads starten, ohne dass es Speicherfrist. Interessante Geschichte. Und vielleicht, wenn ihr Java anschaut, auch egal wer. Und gerade das Besondere ist, man kann JavaScript mit Java und Python zum Beispiel in eine CRM kombinieren und die können sich gegenseitig aufrufen und das Ganze auch noch nativ kompilieren, sodass wir eine Binary haben wie bei Rust. Wenn man das aufruft, läuft alles. Alle verstehen Sie so polyglott. Programmierung in egal warum. Ich verwende das sehr oft als Kommando, ein Interface zum Beispiel für Java zu installieren. Es ist nicht unbedingt bequem, aber wenn du so mit WM kompiliert, hast du ein Binary. Ist ungefähr 20 Meter groß und kannst einfach weitergeben. Ist wie go ungefähr und funktioniert sehr sehr gut und. Startet auch sehr schnell fast, dass man für einen Server. Minute Sekunden fünf Millisekunden. Das ist Wirklichkeit und damit kann man natürlich an die Enterprise Kunden sehr viel Geld in den Wolken sparen. Das ist, warum ich jetzt auch mit Java beschäftigt bin. Dann Garrelt Was ist denn Picks of the Day? Ich muss auch noch einen haben. Musst du nicht. Sonst kriegst du von mir also zwei. Nimm doch den Editor. Wie kommt das? Also, ich habe einmal als Pic einen Editor, der nennt sich Set. Findet ihr das Set? Also z. B. Steve. Soweit ich richtig informiert bin, sind das auch die Entwickler oder zumindest teilweise, die hinter dem Atomeditor standen oder stehen. Und der ist jetzt glaube ich komplett in Russ geschrieben. Komplett auf Performance getrimmt. Steht sogar Multiplayer Code Editor und ich bin mal gespannt, was daraus wird. Man kann den jetzt schon nutzen, der ist ein Beta. Ich habe ihn auch schon mal ausprobiert. Mir fehlen noch so ein paar Sachen, die ich einfach gerne bei mir in Entwicklung habe. Hat er mit geht Integration? Da bin ich mir unsicher. Okay. Also wenn halt nicht so, vielleicht nicht so jetzt wie es kommt. Und da bin ich gespannt. Weil ich habe selber mit meiner Open Source Projekt immer wieder mal TypeScript Probleme, einfach weil der TypeScript Language Server da nicht hinterherkommt und neustarten. Und es ist einfach nervig und manchmal auch den kompletten Editor. Und da bin ich sehr gespannt, wie das hier abschneiden wird und. Also wenn man sowas selber implementieren, dann oftmals ist es ja so, dass alle eine ist eigentlich so ein Lenkrad ist, aber im Hintergrund nutzen. Das weiß ich nicht. Also ob da bin ich mal gespannt, weil ich fand, als ich damals von einem anderen Editor dann auf es Code gegangen bin, war ich erstaunt von der Performance. Wie schnell kann der alles durchsuchen und wie gut läuft es? Und aber mittlerweile komme ich so immer wieder mal an bestimmte Grenzen ran und da bin ich jetzt gespannt. Wie es aussieht, weil es nervt einfach, wenn du dann dauernd da drinnen neu starten und dann muss ich warten und dann manchmal kriegt es wieder nicht hin. Darf ich es noch mal machen? Und das ist nervig. Okay, dann noch mal einen Kick off the day, dass es diesmal Hacking Shading Cheat ist. Eine Alternative zu CPT, die auf dem Modell von Facebook basiert und von Hacking Fake betrieben wird, von daher auch mit entwickelt wurde und ist sehr sehr praktisch, gerade wenn es immer wieder belegt ist, weil es einfach so viel genutzt wird. Es funktioniert auch gerade für Code Anwendungen sehr sehr gut. Ich hatte gestern gerade einen Fall, wo da zB die völlig halluziniert hat, was die Ergebnisse angibt und nicht bei Hacking Chat das richtige Ergebnis bekommen habe. Also kann auf jeden Fall interessante Alternative sein, gerade unter dem Aspekt, dass das natürlich dann Open Source ist und da demokratisch entwickelt wird. Noch zum Set, das wirklich super spannend und was ich fand Visual Studio Code ist langsam. Also ich war eher die Java is gewohnt also da gab es sehr stark verwendet, aber nicht sofort was getan Und bei Visual Studio Code merkt man wirklich den Like, wenn man schreibt. Und ich habe schon lange überlegt, eigentlich wird Zeit, dass jemand so was wie Visual Studio Code nun nativ macht und nett ist. Super interessant. Die haben den Language Code, schreiben sie selber. Deswegen unterstützt noch nicht sehr viel und Warp ist auch ein anderes System, dass es auch der Entwickler von Set arbeite. Mit einer Weg von Warp ist ein Terminal, das auch komplett überarbeitet wird. Das ist eine Mischung aus Terminal und und Editor und mit so einem mit so Blogs, wo man auch die Kommandos durchsuchen kann, also darf. Das Problem ist nur man brauchen GitLab Account muss man angeben, wenn man sich da anmelden möchte. Aber was darf dev unbedingt anschauen? Java und JavaScript Entwickler ist super spannend. Die haben. Jetzt auch coole. Tools und man auch. Immer einen Commander in der ganzen Welt. Also ist super cool. Ich habe viel mehr Picks of the Day als ich. Bräuchte ich dann noch ein. Gibt es noch und zwar den Blog von Bilderio. Dort werden echt sehr sehr coole Artikel zu allem möglichen veröffentlicht, auch teilweise sehr tiefgründig und von Leuten mit wirklich viel Erfahrung. Und wer sich zum Beispiel mal irgendwie mit Skills auseinandersetzen möchte oder mit irgendwelchen anderen neuen Entwicklungen, die so passiert und teilweise aber auch mit ganz alten Sachen, ist das. Dann. Vielen Dank Herr Adam, für das wieder sehr interessante Gespräch für die ganzen Einblicke. Und ja, auch ist immer ein Anstoß, noch mal über seine Ansätze, Glaubenssätze, vielleicht nachzudenken, wie man eigentlich entwickelt und sehr spannend. Ich freue mich auf jeden Fall auch sehr auf das Meta später mit dir. Ja, falls ihr wieder Fragen habt oder auch Anregungen für uns, dann meldet euch gerne. Macht's gut. Vielen Dank. Ciao. Ciao, ciao, Ciao.

Picks of the Day

Speaker Info

  • Adam Bien Event

    Adam Bien

    Adam Bien arbeitet seit dem JDK 1.0 und seit über 25 Jahren mit Java und findet auch heute noch große Freude an der Sprache und den Möglichkeiten, die sie mit sich bringt. Er ist online sehr aktiv und ihr findet neben seinem eigenen Podcast auch diverse YouTube-Videos und Live-Events von ihm. Wenn euch das noch nicht genug ist, checkt doch mal seine Bücher über JavaFX, J2EE, und Java EE aus! Um Adam noch etwas besser kennenzulernen, haben wir ihm zehn Entweder-Oder-Fragen gestellt: Hunde Katzen Tee Kaffee Auto Fahrrad Java JavaScript Mac Windows iOS Android Büro Remote Frontend Backend Funktional Objektorientiert Teamwork Individualist Was war deine erste Programmiersprache? BasicWas war dein erster Computer? ZX Spectrum?Wie alt warst du, als du deinen ersten Computer hattest? 12Was ist deine liebste Programmiersprache? JavaWas ist dein liebstes Frontend-Framework? Webcomponents ES6, kein Framework!Was ist dein liebstes Open-Source-Framework? QuarkusWas ist deine Lieblingsapp? Visual Studio CodeWas ist dein Lieblingsspiel? Minecraft

    Mehr Infos

Verwandte Podcasts

  • News Asset 48

    News 48/24: Tate ohne Security // Google ohne Chrome // JavaScript ohne Trademark // App Store mit Awards // CSS mit Logo

  • News Asset 28

    News 28/24: Ladybird // Cursor // Google I/O Connect // dotenvx // window.ai

  • 141 Insta Fb Chritian Weyer

    Deep Dive 141 – Integration von LLMs mit Christian Weyer

  • News Asset 6

    News 06/24: iOS App Marketplaces // Browser Interop // jQuery // JetBrains

  • 134 Ig Fb Alexander Lichter

    Deep Dive 134 – The State of Nuxt

  • News 38 23

    News 38/23: Bun 1.0 // Flutter 3.13 // PowerSync // Jetpack Compose Multiplatform // Astro 3.0 // Unity Fee // Node 20.6

  • 129 Ig Fb Fabian Hiller

    Deep Dive 129 – Qwik mit Fabian Hiller

  • News 20 23

    News 20/23: Google I/O 2023 // Vue 3.3 // KI-Gerüchte über Apple auf der WWDC

  • News 19:23

    News 19/23: Mojo // Qwik // Angular 16 // Bing Chat Open Preview // Open Source AI

  • 122 Ig Fb Stefan Tilkov

    Deep Dive 123 – "Software Architecture Matters" mit Stefan Tilkov

Feedback