¶ Event-driven vs. Polling
Heute geht es in Folge 2 unserer Doppelfolge zu VRPC. Falls Sie es noch nicht getan habt, hört euch doch erst die vorherige Folge nochmal an. Viel Spaß dabei. Jetzt gucken wir andere Sprache. Nicht, dass wir gucken jetzt mal eine moderne Sprache, nämlich javascript und Java Script gibt es typischerweise ganz viel im Web und vor allen Dingen im Browser und das Java Script, was nicht im Browser läuft. Sondern im Server, also im Backend.
Das nennt sich Note JS jetzt wieder stark vereinfacht, da gibt es auch andere Varianten und so, aber sehr bekannt ist halt no JS als Programmiersprache und das ist im Prinzip Java Script, was aber keinen Browser braucht um ausgeführt zu werden, sondern was halt selbst stehend quasi als als kompetente objektorientierte Sprache irgendwie laufen kann ich ein. Wichtiges Learning irgendwie.
Das lass mich zusammenfassen. Wir hatten gesagt, im Browser läuft eigentlich immer HA plus CSS plus javascript. Und du sagst jetzt javascript fürs Backend oder für den Server ist letzten Endes noch. S genau, also einfach gesagt ja nichts wirklich richtig sogar, und das ist halt, das ist eigentlich ganz elegant und schick, weil dann kannst du, so wie ich das mache, ich muss ich grad an beiden Fronten implementiert im Frontend und Backend, also das nennt man Full
Stack, wenn du sowas machst. Ja also ne Frontend und Backend machst du typischerweise Full Stack. Und wenn du die gleiche Programmiersprache Technologie hast, das ist halt total schön, weil das menschliche Hirn, dann musst du ja ständig irgendwie irgendwie hinter springen und mit verschiedenen Tastaturen, aber das gleiche so, und dann wirst du, dann wirst du nicht so im Kopf, dann kannst du halt beides gleichzeitig machen, weil s halt die gleiche Sprache ist.
Ja natürlich ein paar andere Limitierungen und ein paar Extras und ne paar Extras weniger. Aber am Ende des Tages hat die gleiche Sprache, ja, das hat ziemlich schick, deswegen setzt sich immer mehr durch, das hat auch so ziemlich. Ziemlich gut genutzte Sprache also AS und Python und so Python also spielen auf einer Liga
Python und TSOK. So, du könntest natürlich irgendwas anderes nehmen, wir haben ja gesagt, haben inzwischen a dazwischen und der ist völlig hupe, ob das dann am Ende Python aufruft und GS aber für die Entwickler ist vielleicht schön, wenn du gerade Full Stack machst nimmst du die gleiche Sprache. Ja, genau.
Jetzt geht es los. Wo fängt die getriebenen Krams an und so, ja und typischerweise das erste einfache Beispiel verstehen kann, ist, wenn ich zum Beispiel IO mache, Input Output. Ja, das ist eine Grundlage der ganzen Informatik IO Input Output der was heißt das?
Das ist das, das befasst sich mit dem ganzen Datei Gedöns ja wenn ich zum Beispiel Datei schreibe oder lese ist das halt IO Input Output ja und wenn ich jetzt kannst du dir vorstellen wenn ich jetzt zum Beispiel Datei schreibe mit einem Computerprogramm also ich hab irgendwelche Daten angesammelt die jetzt gerade egal wo die herkommen, ich kann ja zum Beispiel generieren ich irgendwelche Zufalls zahlen sowas und will die Datei klatschen macht gar keinen Sinn
aber sagen wir mal ja so und jetzt willst du von deinem. Von deinem No GS Programm aus einer Datei schreiben. Wenn du jetzt jetzt nicht gerade nur 2 Werte da rein schreibst, sondern das ist vielleicht du willst halt 20 Gigabyte große Datei schreiben, Vollmacht Zufallszahlen, dann dauert das halt Moment und zwar vielleicht sogar ganz schön lange.
Ja also also wenn was dauert in der Software, dann ist das schon ne, dann ist schon ziemlich lang ja so und 20 Gigabyte schreibst du wahrscheinlich nicht in einer Stunde ne es ist auch erstaunlich, es geht schon erstaunlich schnell heutzutage, aber egal ich will ich will den Punkt machen, dass wenn wenn
dieser. Wenn dieser, und das ist auch wieder eine Funktion, ja, die heißt sowas wie tatsächlich gibt Pfeil System Bibliothek auch wieder direkt in der Sprache verankert und dann kannst du sagen FS Punkt Right, dann gibt es noch den Film den Pass an zu dem also fad und Teilnahme zusammen und die Daten ne und dann schreibt dir noch eine Datei hin und so das sind so Sachen die kannst programmieren wenn du programmierst machen ne und wäre das jetzt so und es
geht auch, dass du das synchron machst wie man so schön sagt, also jetzt quasi nicht Event getrieben. Dann wird diese Funktion deinen Code, deine ganze Anwendung anhalten, bis das verdammte Pfeil geschrieben ist und dann zurückkommen. Ach so, das das heißt, weil das sozusagen abgearbeitet wird, Punkt für Punkt das Programm und jetzt kommt die Funktion schreibe file mit dem Namen, in dem Fahrt mit dem Inhalt ja das passiert wenn das erledigt ist,
dann kannst du nächsten. Kannst weitergehen. Ja, so und und wären, wenn das synchron ist. Also jetzt mal was Programm und so weiter also wir haben einen Prozess, also Programme, Software, Programm läuft im sogenannten Prozess ist immer gleich, alle Betriebssysteme und der Prozess ist quasi die oben, ist ja quasi der oberste Ausfuhr Container für jede Anwendung ist immer ein Prozess.
Punkt. Ja, der Prozess kriegt ein gewisser D nennen sich Process IDPID auch sehr wichtiges Konzept. Jeder der mal bisschen administriert w ist, die gibt es auch sogar in Windows im Taskmanager sieht manchmal komische Nummern wenn sich mal so richtig verabschiedet hat, dann muss immer dann kannst du sagen will diese Nummer oder irgendwas kannst du glaube ich auch wieder und so aber egal so und das identifiziert hat einen Prozess und wichtig ist in dem jede Software arbeitet halt
erstmal an einem Prozess und warum weil dem Prozess quasi der Anwender als Anwendungs Memory zugeschrieben. Wird also die Daten alle Daten, die in dem Prozess anlaufen,
auflaufen? Gehören halt nur diesen Prozess und jeder andere Prozess in diesem auf diesen ganzen Computer auf dem Betriebssystem darf da halt nicht drauf zugreifen, das regelt das Betriebssystem schon für dich und das ist total wichtig, weil sonst hätten wir noch Security Leaks so ja das wäre total gruselig, dann könnte jeder irgendwo ein Programm starten und von quer irgendwie auf ein anderes Programm zugreifen, da die Daten abstauben.
So, jetzt ist aber so ein Prozess an sich erstmal nur eine ausführbare Einheit. Ja, das was du gesagt hattest, das arbeitet alles ab. Ja jetzt kommen irgendwelche Aufrufe und dann irgendwann kommt diese Funktion und soll halt dieses falsch schreiben ja so und wenn das synchron ist und dann passt, dann steht halt dieser Prozess fest für die Zeit, dass dieses Fall geschrieben wird.
Wenn das jetzt aber in Backend ist, n Server ist, ja dann kann das ja sein und das interessiert dich ja nicht, wenn du Gerrit jetzt gerade den Server nochmal anfragst Grad mal fresh den Browser gedrückt, was passiert denn dann? Kommt ne Anfrage an diesen an dieses Programm. Das wird dann halt irgendwie Daten haben, die du haben soll. Dann halt Daten abliefern, die du haben willst du gerade
anfragst. Du sitzt ganz anderen Ecke vom Planeten und dieses Programm schreibt aber gerade 50 Gigabyte filin, weil ich den gleichen Server gesagt hab ich erstmal meine generieren mal 50 Gigabyte Daten und schmeißt die auf die Festplatte so ja wir sind völlig gemachter K so aber ist egal,
ist zeigt was los ist. So dann kriegst du keine Antwort, so lange nicht mein Fall fertig geschrieben ist steht quasi die Ganze die nicht die das kommt zwar an durch die durch Netzwerkkabel kommt deine Anfrage an und bleibt aber stehen bis die Anwendung frei ist. Diese Anfrage. Abzuarbeiten das Betriebssystem, das dann irgendwie in Reihe gestellt wird und. Genau da gibt es noch. Bei Synchronem bearbeiten sozusagen. Auch bei asynchron.
Also mal, dass ich noch zu so ich will, das will ich kurz erzählen, wichtig, und das ist halt synchron so, ja. Und, und das ist halt besonders, gerade für so Server Sachen für, man sagt für IO lästige Anwendungen ja und wann ist IO
lastig? Wenn wenn du viel Files schreibst liest und falsch schreiben ist das gleiche wie Datenbank Zugriffe machen am Ende ist eine Datenbank eigentlich neues organisiertes Pfeil ja vielleicht nochmal Anwendung und also zum Beispiel Sequel Light wenn das mal kurz ist quasi ne in in Process Datenbank, die macht das tatsächlich, die schreibt andauernd in den Pfeil und lies wieder macht das aber so geschickt, dass es quasi wie Datenbank agiert kann man sich merken Maid ist ein Datenbank
Lösung für dabei habe ich gar kein Netzwerk dazwischen, die größeren Datenbanken laufen typischerweise im eigenen Prozess, auch im Prozess, Kommunikation also quasi wieder einfach Netzwerk, ja, die Prozesse können auf unterschiedliche Prozesse auf dem gleichen Betriebssystem laufen. Ja, dann kriegen wir 2 verschiedene IDS, können sich miteinander unterhalten, aber nur, wenn die quasi ihre Memories, die eigentlich getrennt sind, explizit vom einfach zum anderen schicken.
Ja, auch hier wird dann v er PC nochmal spannend und das muss ich auch machen irgendwie über ich muss dann quasi die Bytes die ich hab wieder serialisieren, das hatten wir auch schon mal quasi in eine Kette von Einsen und Nullen verpacken und von dem einen zum anderen schicken und muss wieder einpacken ja hin und her so, das hat extrem aufwendig so aber alles das passiert in in wenn du eine Datenbank zum Beispiel hast, dann wird die typischerweise in einem eigenen
Prozess. Laufen und eine Anfrage kommt in die Anwendung. Die fragt dann die Datenbank gibt. Bitte gib mir mal, warte mal diesen SQL Dings aus und gib mir die Daten zurück. Ja und alles dies kostet Zeit und wäre das alles synchron könnten halt alle anderen die mit dieser sprechen nichts mehr machen. Ne und so hat es auch noch nie funktioniert also damit wirst du überhaupt gar nichts skalieren. Das war nur eine theoretische Erklärung.
Theoretische Erklärung was wir jetzt so und jetzt bleiben wir dran und jetzt quasi eine Parallelisierung im Prinzip ja, wir wollen das halt trotzdem, wir wollen das, auch wenn es Zeit dauert, dann dauert es halt dauernd. Wir wollen aber wieder, wir wollen halt quasi wieder, wir wollen trotzdem mehr Performance.
Der Anwendung und jetzt die erste naive Überlegung ist fein, OK, dann muss ich halt irgendwie irgendwie was gleichzeitig machen, kann ja nicht sein, dass mein Computer ist ja auch nicht, nur weil diese einen Befehl ausführt, ja der ist halt nur beschäftigt, das heißt doch nicht, dass C bei 100% oder irgendwas gar nicht, ja, das frisst überhaupt gar kein Brot da und jetzt kommen die sogenannten nochmal ins Spiel, die hatten auch schon eine Folge, wenn wir sind in einem
Prozess so und jetzt die Möglichkeit mehrere Sachen gleichzeitig zu tun, ja ist halt quasi und ich Threads sogenannte Threads nehmen ja so kann ich sagen OK gut da. Drucker, der will hier seine randomisierten zahlen n großes schreiben, dann mach ich halt vielleicht auf. Und der läuft neben des Nebenläufig. Das passiert halt irgendwie gleichzeitig.
Ja, und während das so passiert, kommt die Gerrit Anfrage rein und die wir dann auch noch bedient, weil das ist auch wieder so. Ja so, jetzt aber schon wieder das jetzt schon wieder, jetzt musst du ja wissen wann ist denn der Burkhard fertig mit seinem Pfeil? Ja, da brauch event. Ja, oder du musst Polen ne, also ich muss wieder. Also deswegen ich wollte mal im Urschleim anfangen damit jemand da ist. Schon alarm so jetzt hier oder mach schon wieder events.
Hast du gefragt, worauf die Geschichte? Hinausläuft. Ja genau, ich muss, also ich, ich weiß nicht ob ich musste, aber ich wollte immer so tief ausholen, damit ihr wirklich mal durch verstehen können, wo schon ja wo ja schon irgendwie sagt der Hund vergraben hat, so ist der Hund vergraben, ich glaube. Ich nicht passt.
Ja doch, kann man sagen. OK, also das heißt auf dieser Ebene der Prozesse und der Nebenläufigkeit und der Threads, ich glaub Folge weiß ich nicht, ich schätze g 12 irgendwas kann sich mal anhören, brauch ich schon Events um einfach wieder Bescheid zu sagen, dass ich jetzt gewisse gewisse Arbeitsschritt erfolgt ist oder? Es geht sogar noch tiefer.
Und jetzt sage ich noch, was die diese ganzen, diese ganzen Signale, die von außen in deinen Computer reinkommen oder auch von innen, ne, diese diese hier ist was da, hier wird das geschrieben, hier ist fertig, hier ist dein Socket wird aktiv weil von außen über das Netzwerkkabel quasi. Paris gesendet wurden. Ne, das war früher sogar auch so, dass das quasi im Betriebssystem quasi gepolt wurde. Ja, diese Anfragen. Es liefert immer durch, das nennt man File Deskriptoren,
also jedes. Man kann sich ja vorstellen, Server hält halt nicht nur eine Verbindung, sondern erhält gleichzeitig Zehntausende 20., je nachdem welchen Winter steht. Ja 50 hunderttausend Verbindungen gleichzeitig, über die kann jederzeit über die verschiedenen Verbindungen jederzeit irgendwas kommen, so ja. Jetzt kann man das im Betriebssystem auch sagen.
Ich gehe immer wieder durch hier, was ist hier, was ist hier was und dann wird das furchtbar furchtbar in Anführungszeichen, langsam und seit 2 ich jetzt muss ich ein bisschen jetzt eigentlich seit 2002 gibt es im Linux Kernel i pol, das muss man einmal auch gehört haben, finde ich das ist totaler Urschleim, so dass also das kennt keiner der jetzt den einfach komplex fast nicht gehört hat und nicht Softwareentwickler der weiß
nicht was es ist. Aber das E Poll das da steht glaub ich tatsächlich Event ja das ist quasi die Unterliegende im Betriebssystem. Verankerte Einheit KQ heißt das. Gibt es n analoge analoges Wort und anderen Implementierung, aber e und K, da fängt das ganze Krams an.
Ja und da wird schon im Prinzip ganz unten im urschleim Betriebssystem werden quasi schon Events registriert, das heißt so viel wie gib mir mal eine Nachricht raus liebes Betriebssystem, wenn auf dem Socket da mal was ankommt, ja und das wird hoch gereicht in den in den sogenannten Thread Pool jetzt gehe ich n bisschen kompliziert, wir haben quasi, aber das ist total, das ist wichtig weil das auch total aktuell ist. Jeder Softwareentwickler muss.
Sich um mit diesem Kreis, mit diesem Krams beschäftigen, ja. Und was jetzt notwendig ist, so toll gemacht ist, wenn du dich mit den Threads selber abschaffen musst, dann haben wir das ganze Problem, was wir in der Folge haben.
Du musst wissen, wann sind die fertig und so, wann ist das Event fertig, dann fängst Dupont wieder e Regierungs und so weiter dann hast du auch gleich sind wenn 2 schwarz an der gleichen Stelle irgendwie schreiben was du eigentlich willst, weil die müssen ja Memory die Daten Sachen austauschen auch von einem zum anderen das kannst du weil du kannst ihn schreiben an die gleiche Stelle in Memory wird das Memory gehört und wir sind im Prozess noch verfolgt hast ja
also die laufen die können die Threads die können auf das Gleiche. Sorry, zugreifen während die
Prozesse das nicht können. Das ist vielleicht ein wichtiges, wichtiges Ablage, ja gerade ja, und wenn die das machen, dann bist du halt, dann bist du halt im Schlamassel so, ja jetzt kriegst du nicht mehr aussortiert, wenn die gleichzeitig irgendwie schreiben ist alles Käse, dann mach mal was von hier, die Daten sind grob da fragt man sich so hey das heißt ja meine Datenbank ist korrupt, wie kann sowas passieren, so ja zum Beispiel wenn es dann die gleiche
schreiben passiert will. Dann erstmal anderscht für. Nee, das ist ja programmieren, verbockt oder so und sagt ich nochmal klären. PS wenn du dieses Programmierst, dann hast du nur einen Thread als Programmierer. Also du programmierst so als gäbe es gar keine Threads und gar keine Gleichzeitigkeit. Ist total schick, aber hinten drinnen gibt es tatsächlich bei jeder Anwendung mehrere Threads. Genau 4 default. Die dieses ganze Management
machen. Also du kriegst, du sagst in OGS und jetzt kommst du sagst dann quasi right file in der asynchronen Variante synchron und asynchron sind auch so Worte, die damit ein bisschen zu tun haben. Ne synchron heißt halt immer. Ich für was aus und warte so
lange, bis es zurückkommt. Asynchron heißt, ich sage, ich hätte das gerne und registriere einen sogenannten Call Back, das ist auch ganz wichtiges Ding. Ja n Call Back, das heißt eine weitere Funktion, eine benachrichtigungs Funktion, die dann aufgerufen wird, die ich nicht aufrufe, dann Event getrieben aufgerufen wird wenn das fertig ist was ich da gesagt habe. Und die ruft dann wieder an. Deswegen komme. Ich dann wieder an.
Genau deswegen Call Back Call me back if you dont ne oder irgendwas so ja genau so funktioniert es ist total. Das muss man, deswegen wollte ich ihnen, dass man das ist, weil das ist so fundamental, dass man einmal irgendwie gesagt haben, also wenn ich jetzt sage, schreibt die 50 Gigabyte file im asi im asynchronen Zustand, dann sage ich, Liebes Neujahrs, tue das, und hier gebe ich dir ne Funktion mit, die hab ich auch programmiert von außen, die rufst du bitte auf, wenn das
fertig ist. So, und wenn ich das so mache, dann dann hab ich verliert, dann warte ich quasi nur noch für diesen nur das Event zu registrieren hat Anfang mit dem Macht das, bitte registriere ich quasi Event. Und wenn der Call Back kommt, dann wird das Event aufgeführt und das feine geschrieben wird. Das passiert dann komplett nebenher und in dem Moment wo ich registriert bin ich schon wieder fertig und 1000 andere Sachen gleichzeitig machen.
Kannst, weil dann unter Umständen weiter benutzen oder wie auch immer. Ja, nicht das gleiche Fall. Das ist dann vielleicht, aber ich habe. Am Event kam das jetzt fertig. Ja, dann kannst du n bisschen fertig. Ja dann das garantiert ja das Betriebssystem, das zurückkommt, dann ist das geschrieben, dann kannst du es benutzen, aber das wichtige ist, während dieses feige geschrieben wird, ist meine Anwendung völlig
responsive. Ich ich habe 1000 ich hab 1000 Millionen als würdest du irgendwie bügelbrett stehen, irgendwie bügeln. Radio reparieren, telefonieren, so als gleichzeitig, das kannst du machen und du merkst halt nicht, dass Threads am am Start sind.
Du musst ihn nicht synchronisieren, das tut Notiz für dich und zwar mit einem ganz wichtigen Konzept, mit dem sogenannten Event Loop. Das heißt, wir sind jetzt quasi dabei, noch mal zu erklären, ob er gesagt, du, was jetzt Events ausmachen beziehungsweise wie tief sie eigentlich verankert sind. Genau erstmal bist du auf das Betriebssystem allgemein eingegangen und jetzt wie man in OGS mit Events umgeht, das haben wir jetzt gelernt. Genau. Dafür die eingesetzt werden.
Ne so. Genau, ich mach n bisschen natürlich will ich sag mal n bisschen, vielleicht ein bisschen weiter, ich geb mal kurz einen Ausblick wo ich hin will, dann gehe ich wieder zurück auf das Level, wäre es nicht schön, wenn jetzt zum Beispiel, also jetzt ist es ja am Ende, am Ende am Ende des Tages sagt zum Beispiel irgendein Client, ich sag mal im Browser lieber Server, tu mal für mich irgendwas, was halt Zeit kostet, also du veranlasst
irgendwie zum Beispiel eine Datenbank Abfrage und erwartet ein Ergebnis. Jetzt ist es ja so für dich, ganz privat im Browser, wenn du das tust. Also du bist mir ein Beispiel aus der, weil irgendwie hat oder E oder irgend sowas und machst halt ne n bisschen komplizierte Anfrage und hast vielleicht also bisschen größer als wir jetzt und dann ist das wirklich ne Weile bis das irgendwie zusammen gemacht wird, dann ist ja deine UX deine User Experience, du warst du eigentlich haben willst.
Ist das in dem Moment wo das fertig ist ne die Anfrage, dass ich den Browser von alleine aktualisiert und das angezeigt wird und zwar sofort und jetzt ich denke, dass durch schick wäre denn das wenn dieses Event. Was eigentlich von dem mal ganz ursprünglich, von dem E Poll kam, weil nämlich die das Datenbank Socket nach der Anfrage gesagt, hier hab ich
gemacht, fertig. So, ja dann habt ihr das Recht übernommen, dann eventuell natürlich, dann hat Call Back aufgerufen und der Call Back, der ruft dann quasi das Interface irgendwie auf und dann gehts irgendwie magisch, da kommen wir PC rüber bis zum Browser hin und der das ist
¶ Event Loop
alles alles durch das Gleiche. Tiefste Urschleim Event ausgelöst. Eine riesen Kette von Events die bis zum Browser Mandanten fähig auf dich zugeschnitten gehen und dann das Event auflösen und du kriegst direkt live Update und du hast nicht geholt. Du hast nicht gesagt und das passiert meistens wenn A dann schickst du es ab und dann musst du sagen gibts was neues gibts was neues gibts was neues so ja. Kapiert also so lange, bis es dann tatsächlich was Neues gibt
und wird ausgeliefert. Aber ist Riesen. Nee, aber es kann ja auch sein. Und wenn du, wenn du das jetzt du kannst, nicht machen kannst. Du kriegst immer in in frühestens 10 Sekunden zum Beispiel Ergebnis oder in 5 oder sowas, je nachdem wie das Ding ist. Während wenn der Server gerade Zeit hat zum Beispiel und rechtlich performt aufgestellt ist, und der hat halt fertig gemacht mit dem Event, kriegst du halt so schnell wie es halt ist. Ja genau das hab ich verstanden.
Das ist ein neues Paradigma. Ja, also an der Stelle K. Darauf wollen wir hinaus, das heißt, wir haben jetzt die Betriebssystem Ebene durch, wir haben die Ebene durch. Genau, wir haben die eben noch nicht durch, da bin ich, da ist nämlich eine Schwierigkeit, die gelöst werden muss, das will ich noch sagen, jetzt im im G. Es gibt einen sogenannten Event Loop, der Event loop ist quasi. Der Manager quasi diese ganzen
Events wegen Event loop. Ja das heißt wenn ich jetzt nen asynchrone Funktionen beauftrage, also quasi einen Task registriere der irgendwas macht h und m Call Back damit gebe, dass er dann quasi aufgerufen wird, dann liegt das quasi auf eventuelle Threads machen das und wenn die fertig sind legen die quasi das Zeichen, dass es fertig ist auf den Event loop und der wird einfach Event abgefrühstückt.
Irgendwann ist dieses Event dran und jetzt ist es wird sich vorzustellen tatsächlich jetzt wird halt quasi irgendwann mittendrin im Programm. Ablauf des nicht mehr, dann ist halt einfach Spaghetti ne, also deine Funktionen werden die mäßig schon getriggert auf dem Level, das ist wichtig zu verstehen, es läuft halt nicht von oben nach unten links Reduktion Instruktionen sondern jetzt kommt kommt quasi der Event Loop an an deinen Brötchen das fertig geworden ist springt
quasi an die Stelle im Code zurück. Und genau diese Funktion aufzurufen, die sagt, jetzt fertig mit dem Bock 2 ist fertig hier. Jetzt kannst du hier weitermachen, ja und das was dann passiert wird dann weitergemacht und das ist quasi, man kann sich vorstellen, dass der ganze Code in so kleine Mini Blöcke sind, der ganze Code ist quasi blockartig und liegt quasi immer auf dem Event loop und werden immer nur ganz kleine Blöcke fertig gemacht und die werden quasi gecuted.
Du hast zwar gefragt was passiert dann irgendwas kommt ich bin noch nicht fertig das ist der Event loop ja das ist quasi wie lange Q in der engen also quasi ne Schlange wo fertige Brötchen vorbereitet werden ja.
Und so schnell wie es geht, wie ein wie ein Thread, das ist tatsächlich diese Thread. Der Event läuft der sogenannten Main Thread, deswegen hab ich als Entwickler nichts mehr zu tun mit irgendwelchen Races, also mit irgendwelchen Geschreibsel das gleiche Memory irgendwas vorher aussortiert, weil alles was auf dem Event loop ist hat schon passiert und ich frühstücke jetzt einfach nur und ich hab selbst eventlog sehe ich nicht mehr weil ich noch die Funktion aufgerufen bekomme.
Ja so und jetzt noch eine Runde schicker. Ich finde es. Toll, wenn ich komplett, wenn ich jetzt komplett abgehängt, weil ich. Höre Nein, hast du nicht, du nicht. Ich hab natürlich n bisschen Vorwissen was vor P eingehende, das hilft mir vielleicht an der Stelle. Aber ich glaube, dass selbst wenn du abhängt, ist es auf jeden Fall total nachvollziehbar. Die Begründung, wofür es gut ist, jedes Detail und immer alles verstehst auch nicht, kann man sich auch 3 mal gescheitert,
wenn das genau verstehen. Möchte ich ganz nachlesen. Hier posten ich n guten Artikel rein, der mal die Wahrheit über diesen ganzen Kram. Es gibt nämlich sehr viele Informationen auch tatsächlich über genau dieses Thema wird sehr viel Quatsch verbreitet im Internet sehen, schade genau eventlog und Threads und dies zusammenhängt, ich habe aber einen sehr schönen und sehr akkurat natürlich auch sehr gut. Das ist auch ein, wir haben jetzt schon 30 folgender
gemacht. Interessierst du immer wieder die Folge über Threads oder über die Reste? AP und so weiter also es ist ja schon alles da. Man kann sich das ja alles zusammen. Ja, und wir waren ja, ich meine, das ist heute wieder tatsächlich mal richtig technische Folge so, wir haben ja auch, also unsere Urlaubswoche war zum Beispiel vielleicht auch gar. Nicht so richtig. Genau die. Muss mal ne Folge auslassen. Genau, aber wir wollen, wir wollen nicht trotzdem nicht den Faden verlieren.
Ich hab nämlich h redet, ihr merkt, dass es auch mein Thema, aber ich hab das selber als Entwickler, ich habe extrem lange gebraucht um das alles zu. Zusammenzukriegen? Ja, das steht irgendwo immer auf einer Seite. Schön, sowas ist nicht so einfach, alles durch zu verstehen, quasi von vom Betriebssystem urschleim bis was ist da los? Ja und wo wir die Zeit und was sind überhaupt die an welcher Stelle und so? Ja deswegen vielleicht für den einen oder anderen doch ganz.
Interessiert können dann mal schreiben. Ja, so eine Sache jetzt. Was tatsächlich vom Coding ja total kompliziert ist. Jetzt wieder, jetzt gucken wir quasi auf den Text, dass des Quellcodes, also der Software, wenn ich jetzt so ein asynchrones Event programmiere. Dann gebe ich, dem hab ich gesagt ne Funktionen mit und ich weiß ja nicht wann ich aufgerufen wird, dann ist sie quasi wieder im ganz eigenen Kontext.
Das ist Call back. Das nennt sich das Call Back genau, der Call Back und der Call Back der der verliert quasi den nennt man das Vertrieb den Kontext. In dem ich gerade war, während ich aufgerufen habe, denn das passiert. Zum anderen Zeitpunkt hab ich gesagt, ich rufe irgendwann auf und irgendwann später kommt der
¶ Callback und Promise
kommt der Call Back zurück und alle Variablen, also Variablen sind eigentlich nur Speicherung von irgendwelchen zuständig, gerade um mich herum. Hab ne also zum Beispiel zu dem Zeitpunkt durch registriere weiß ich zum Beispiel gerade noch welcher User das war, ne mit welchem Browser zum Beispiel angefragt hat und so weiter also diese Ganzen, diese ganzen drumherum Informationen die ich brauche dann quasi eine gescheite Antwort wieder zuschneiden, verliere ich
eigentlich. Beziehungsweise mir dann irgendwie per Hand merken und die wieder an die Call Back wenn der kommt dran friemeln. Ne, manchmal gibt es auch so Sachen, dass man den Call back dann quasi so eine Art Daten Struktur mit gibt und die bringt dann wieder, dass mit den Kontakt wiederherstellen kann damit ich weiß ne das ist so ein bisschen so als würde irgendwo pennen und jemand weckt dich
auf, so sagst du hier fertig. Ja das ist so Alter was ist jetzt hier fertig bin muss ich zusammenschneiden und du hast irgendwie 3 Gläser irgendwie auf dem auf dem auf dem Nachttisch gestellt so und das erste war halt von dem wenn du das erste Mal geweckt das zweite Mal zweiten geweckt und beim dritten Mal Dritte geweckt wenn du gerade hörst, du erst wieder zusammen sortieren, ne, ich weiß nicht wie es besser schildern, aber es ist total aufwendig von K.
Ich glaube das können wir so nehmen wir mal hier und jetzt gibt es ein Konzept das wir hier nochmal, das ist total wichtig, weil das hat mir andauernd so, also jedenfalls Softwareentwickler, als Laie weiß ich nicht, es gibt sogenannte Promis, was ist ein schönes Konzept und das ist ganz modern und hier. Tu ich so, und das ist das können die Programmiersprachen oder auch nicht, kann das sehr, sehr gut. Jetzt kann ich zum Beispiel
sagen, diese Funktion awaited. Await schreibt das file also. Erwarte away. Erwarte, dass das was ich da Aufrufe passieren wird und jetzt passiert etwas ganz Neues und tolles ist viel Magie und total kompliziert wie Internet ist.
Jetzt kann ich jetzt quasi was die Funktion eigentlich ausspucken würde, nämlich irgendwie das OK das ist falsch, geschrieben wurde irgendwas der Return wert, der nennt die Antwort auf diesem asynchronen Abfrage die im synchronen Fall ja auch hab sofort das schreib ich einfach hin und was aus der Funktion zurückkommt kann ich nehmen und weitergeben, ja weil dann weiß ich, dass auch fertig ist. Beim asynchron Ding kann ich halt nicht was in die Hand nehmen. Weil es halt noch nicht fertig
ist. Ja, wenn ich das weitergebe ist halt Trash, weil das nicht passiert. Ab jetzt gibt es aber trotzdem, das nennt sich dann Promis, wird dann quasi diese Antwort wird an einer sogenannten Versprechen eine Promis gepackt, die kann ich dann sehr wohl weitergeben.
Ja ich sagen hier ist die Antwort, ist aber noch nix drin, aber wenn sich die Promis auflöst, das heißt wenn die asynchrone Funktionen fertig wird ja und das Ergebnis da ist, dann kommt auf einmal die Wahrheit raus und dann steht da auf einmal stehen die Daten da drin ne. Ja, das heißt, das hab ich jetzt nicht verstanden. Das Programm doch weiter läuft irgendwie und so ne Art des Promis und Platzhalter ist ja damit weiterarbeiten kann.
Einfach so. Und jetzt kannst du, und das ist das ist, das war also, das gibt es auch noch gar nicht so ewig, dass die Programmiersprache und das so durchziehen, ne.
Also als ich noch beim XL gearbeitet hatten wir diese Probleme haben wir auch Entries hingeschrieben, weil das machen wir einfach richtig viele Daten durchsetzen mussten, aber wir müssen machen, du kriegst unglaublich viele Kopfschmerzen und wenn das groß wird so ja und wenn du auf einmal hast du diese Promis ist ja und die Promis wie Variable ne du kannst so tun als hätten die schon den Wert ne. Aber die Programmiersprache richtet für dich, dass sie nicht, dass sie quasi nicht
aufgemacht. Wir Geschenk ja dann oder ne Zauber Box ist irgendwie und irgendwo hin da drin, ja. Oder hier Schrödingers Katze. Ja genau, irgendwie so ne und und aber quasi wissen, also wenn du es weitergibst an der nächste Funktion, die werden gekennzeichnet async und so weiter dann wissen die von alleine wenn diese Promis Full Field ist. Resolved ist so ja die können auch n Fehler haben das auch immer ganz wichtig ich will auch mal sagen es kann ja immer einen Funktionsaufruf gerade wenn
asynchron ist. Gerade wenn du falsch schreibst mal schief gehen ja. Weil die Festplatte war voll. Zum Beispiel kann ich nicht schreiben. Ja hab 40 Gigabyte geschrieben und beim letzten Gebiete ja.
¶ Anwendungsfälle von VRPC
Dann musst du auch wissen, dass das nicht geklappt hat, weil wir wollen ja Fehler Behandlungen machen, ordentlich, ja, sonst kriegst du eine Antwort und sagst alles cool, aber die fehlenden Gebiete ja. Und dann löst sich eine Promis quasi nicht auf, sondern wenn, dann wird daraus quasi eine Exception, wie man so schön sagt. Ja, also eine Ausnahme im Code, das ist auch ein sehr generisches Konzept, ja. So, jetzt habe ich sehr viel erzählt, aber jetzt nochmal ein Teaser.
Wie cool wäre es denn, wenn man diese Promisses. Direkt verschicken könnte über das Netz als Teil einer Anfrage.
Also ne, wir haben jetzt, wir haben was ich sagen will ist wir haben extrem krasse Konzepte um diese extrem herausfordernde Event Architektur dieses Event driven Architecture auf dem Level der Software und des Betriebssystems und der Sockets und so weiter das haben wir jetzt nicht, wir reden haben wir in Tiefe besprochen so und diese Konzepte, die haben wir da ja und dann haben wir so tolle Dinge wie Promis.
Ja und auf einmal wenn wir jetzt jetzt die Welt des Internets erreichen, schnallen wir so einen alten Ranz. Davor wie Rest API. Ja das ist wie wenn das ist wie Idee ankomme muss jetzt auch muss die Schmalspur Bahn setzen so ja das ist ne Katastrophe eigentlich ja und das das jetzt Kommission Moment lass mich ja aber jetzt muss ich nochmal wenn du noch. Fragen hast du jetzt auch gemacht. Ja, das heißt diese Konzepte,
das hast du ja auch gesagt, die. Es gibt, wenn Programme miteinander Daten austauschen und die kannst du jetzt
plötzlich Internet benutzen. Ja, wenn wenn Anwendungen an verschiedenen Orten sind und gar nicht so eng beieinander liegen, wie es in dem besagten Beispiel nehmen, von dem gerade erst sozusagen oder in einer Programmiersprache sogar in einem Programm eigentlich ne. Ja, also kannst du halt eben nicht im Internet ja nicht VRP hast du ja so, das ist nämlich derspringende.es gibt jetzt viele, also es gibt halt diese, das sind quasi Internet Protokolle und tatsächlich jetzt
n bisschen ich will auch nicht sagen wir spielen das VP spielt auf dieser dieser. Der Protokolle wenn du willst, da ist halt überhaupt nicht verbreitet und so weiter und ist noch, vielleicht wird es mal so, weil ich die Idee gut genug ja, aber es spielt in dieser Liga und es löst dieses Problem, während die anderen das halt nicht können und deswegen musst du jetzt an dieser Stelle umsteigen von dieser schönen eventuell Architektur und diesen tollen Konzepten die in der
Sprache gibt. Und muss die auch programmier mäßig als Softwareentwickler musste auf einmal das quasi in also du kommst von einer Solarbetriebenen Elektro Lok und musst dann irgendwie so n daraus n Haufen Kohle machen und dann irgendwie Dampflok übers Internet schicken, so ja da musst du viel codieren, da musst du viel umbauen und dann wird es wieder gepolt auf der anderen Seite es ist halt wirklich
furchtbar. Ich verstehe, verstehe OK, vielleicht muss man dazu noch sagen, dass das ganze Open Source ist. Das haben wir noch gar nicht besprochen und wir sind ja schon in der 2. Folge zum Thema. Gehe ich mal von aus. Ja, wahrscheinlich. Und wir haben jetzt nicht dass und dass deswegen hier gar nicht als Werbung gewertet werden darf, zu sehr ne. Also du machst es ja verfügbar.
Nee, überhaupt nicht. Genau, nee, und ich finde halt, weil das halt, das ist halt auch ein Tool, das ist halt so generisch, also grundsätzlich funktional für alle möglichen, das definiert mich nicht irgendwie, ja, das hat auch mit unserem speziellen Anwendungsfall gar nicht wirklich was zu tun, das löst natürlich das Problem sehr elegant, aber genau das ist völlig open Source ist MIT Lizenz ist kann man sogar kommerzialisieren, wenn man
möchte. Vielleicht können wir ein bisschen über die erstmal nicht so technischen Themen rund um VP, da hab ich ein paar Fragen. OK, dann machen wir zwischen. Zwischen also du hast gerade schon erwähnt, Anwendungsfälle, also es ist agnostisch was den Anwendungsfall angeht, das habe ich verstanden, aber wo bietet es sich dann kann man das sagen, wo es sich ganz besonders anbietet, also mal ein Bild vor Augen hat, also IOT klar, aber vielleicht erst nochmal kurz. Ja, also es gibt. Genau.
Also es bietet sich, es bietet sich, es gibt sehr viele Ebenen, wo sich anbietet, weil das quasi weil ich hab jetzt ganz viel erzählt, dass mit dem Internet so das Problem haben.
Ja das Internet ist aber gar nicht, das ist quasi nur ein Anwendungsfall, wenn wir quasi im Internet dazwischen haben, zwischen diesen asynchronen Funktions aufrufen, es kann, aber es kann sogar auf innerhalb von Micro Service Architekturen auch ganz relevant sein, ne, also was sind jetzt Microsoft hat auch schon f habe ich meine containerisierten Anwendungen und da habe ich auch schon gesagt die können halt auch den Halt abgeschlossen, die können halt quasi.
So wie das Internet miteinander spricht, kommunizieren über Netzwerke. Ja, das ist zwar alles quasi das lokale Netzwerk, ja, wenn die quasi auf dem gleichen auf dem gleichen Server sitzen, auf dem gleichen Computer, was ja oft ist ne Micro Services. Also man sagt zum Beispiel in der Micro Service Communication ne, also wie wie kommuniziere ich von einem Container zum anderen? Ja, da kannst du es auch einsetzen.
Ja und da ist es auch besonders schick, weil du da, du bist ja quasi im Code. Wir sind ja in der Scouting Welt, sogar im Backend noch zusammen.
Da hast du quasi den einen Microservices, den anderen Microservices, liegt im gleichen Backend ja ganz nah beieinander und hast du auf einmal wieder diesen diesen krass krasse Problem, dass du, wenn du zum Beispiel mit einer Rest API machen wolltest, du dir einfach die die Knüppel zwischen die Beine schmeißen, weil du vom ganz eleganten asynchronen Promis basierten Code einmal die Dampflok besteigst fährst rüber zum anderen Container und da bastelt wieder d zusammen?
So, ja, ist wirklich so. Ja wenn du nimmst, so, und deswegen ist da zum Beispiel auch die PC ganz viel im Einsatz. GPS hat eine andere Form des RPCS. Dann auch mal gucken, wo sind die Unterschiede, jedoch nicht vielleicht später vielleicht.
Ich weiß nicht, auf jeden Fall ist das cool, ja und also der Anwendungs also hinter Micro Service Kommunikation zum Beispiel auch oder halt aber auch zum Beispiel gerät wenn wenn du selbst wenn du zum Beispiel in der Sprache unterwegs bist und du hast findest n ganz tolles Stück C plus plus Code, was zahlt einfach es nicht gibt hat noch keiner geschrieben Open Source Code zum Beispiel von einer anderen Technologie E Plus oder in Python und du möchtest den
einfach. Integrieren in deine Software da? Ja dann kannst du auch VRPC benutzen, weil du dann quasi die beiden Schnipsel adaptiert und das spricht halt quasi trotz des Funkt sich halt quasi durch die Gegend, dann halt quasi lokales Internet, wenn man möchte. Ja das muss man wissen, es gibt immer einen Back Interface.
Also ne ne ne Software bibliothek die ich jetzt in der Technologie oder der Programmiersprache, die ich gerade primär benutze nicht zur Verfügung habe, aber in einer anderen Sprache zur Verfügung steht, kann ich dann einfach ja einbauen. Extra Aufwand, weil ich PC noch dazwischen packe, aber. Ich hab die Funktionalität exakt und VB frisst. Fast kein Brot, das ist das ne, das ist halt dadurch, dass es halt diese ganzen asynchronen
Klatsch einfach mitmacht. Ist halt so und das ist jetzt sage ich, aber da ziemlich irgendwie ich nochmal sagen, es macht das mit, weil ich bald zum Beispiel das VRPC über die Leitung quasi, also entweder über Internet sockets, wenn ich Bibliotheken spreche oder Microservices oder halt auch über das große böse Internet, es kann halt diese Promises
verpacken und schicken. Na s schickt diese asynchrone Elemente tatsächlich rüber, so dass ich und das Internet selber und ne, also wenn ich in Netzwerk aufrufe mach, dann ist das selber eine asynchrone Aktivität, weil das dauert und das sag ich jetzt gleich mal ganz exakt.
Ja, wenn ich jetzt vom Browser n Datenbankabfrage machst in einer standardmäßigen Web Anwendung, dann hast du 2 asynchrone Prozesse, du hast nämlich den den asynchronen oder den Wartenden langwierigen Teil von Request vom Klienten zum Server und dessen Response Request Response. Das ist ein, da könntest du jetzt synchron drauf warten, dann dauert das ja oder du machst. Das ist quasi in sich asynchron und der zweite asynchrone Part
ist. Wenn der Server die Request erhält und eine Datenbank Abfrage gemacht, dann ist die Halt auf dem Backend asynchron. Weißt du was ich meine? Da sind 22 du hast 2 asynchrone Aktivitäten, nämlich die Netzwerk Anfrage und die Datenbankanfrage.
Weil der Server ist ja erstmal nur so ne Art eingangs Server, dann guckt was muss ich eigentlich tun und in dem Fall wäre noch die Abfragen. So, und jetzt ist es so, dass wenn du jetzt VPC benutzt, dann sitzt VPN Server und am Klienten, also in dem Browser VP läuft im Browser dann halt auch mal sagen ja. Und VAPC sorgt dafür, dass diese ganze Asynchronität, diese Doppelte sogar einfach verpackt wird. Und du kannst dann im Browser das jetzt wieder javascript ist sagen.
Such aus der Datenbank den Quatsch raus, das SQL Server oder kannst du schreiben sogar schon im Browser und diese ganze Asynchronität ist komplett verpackt und da kommt wieder Promis raus und und du machst damit weil das javascript im Browser kann auch diese ganzen modernen Dinger da ist wieder IC am Start so ja. Und aber du verlässt.
Du steigst aus dem ICE nicht mehr aus bei VIPCH du bleibst sitzen und so. Ja du sagst halt irgendwie, gib mir vom vom Backend die Datenbank Abfrage zurück und dann kriegst du ne Promis die dauert die Lust hat sich genau dann aus, wenn das alles schon passiert ist und wenn es nicht passiert schick VB die entsprechende Option das wird alles Back aufgesammelt, das ist im Endeffekt relativ kompliziert. Ausführt aber also zu
programmieren. Aber es führt dazu zum als anwendungs Programmierer im Browser, das überhaupt nicht nachdenken muss, so als wäre das quasi neben dir. Ja als würdest du einfach sitzen. BE ist voll cool, prima und das benutzen wir quasi.
Jetzt kommt ein kleines Geheimnis unserer App, Bilder machen ganz bisschen Werbung, aber unser App Bilder ist ja quasi die Plattform mit dem wir quasi andere Apps bauen, das ist am Ende des Tages einfach nur eine sehr mächtige Web Anwendung, die sehr viel Backend verschiedenen Code aufrufen muss und ganz viele Sachen machen muss weil da ne. Ist ja so weg. Du schiebst irgendwas ständig. Ja, ständig ist Backend Kommunikation.
Dass selbst haben wir unser eigenes Produkt mit unserem Produkt geschrieben, so dass passiert alles auf VRPC. Ja, und deswegen kommen wir relativ zügig voran und sind da auch schnell, weil wir, wir bleiben halt immer schön IC sitzen und das alles easy, ja. Wo andere noch in die Umsteigen? Genau, ja, cool. Ich mag das, ruhig zu formulieren, ich n bisschen provokanter war.
Ich muss mal sagen. Ja, ich finde schlechtes Bild, vor allem, weil es ja insofern nicht so clever ist, weil man ja schon schnell unterwegs ist und dann auch wieder anders irgendwas anderes rein denken muss. Genau. Vielleicht noch eine wichtige Sache zu dem RPC, das gibt es ja schon länger rojales, die waren halt früher und das ist der Unterschied, die waren halt
synchron. Jetzt verstehst du vielleicht, was ist das heißt, wenn du den du konntest zwar schon immer PC Calls machen vom Klienten aus, aber der muss dann wieder tatsächlich hart warten bis der ganze Kram fertig war, deswegen hat sich diese Technologie nicht durchgesetzt, die P Technologie und wenn du jetzt Leuten, nicht Leuten manchmal haben benutzen wie P und dann sagen die OK die sind halt irgendwie von gestern, das hat sich schon längst gezeigt, dass das Scheiße ist,
so ja. In RB war tatsächlich nicht so erfolgreich, weil halt quasi beim Aufruf von dieser von dieser PC, also beim Aufruf des Experten Code musst du halt warten, weil diese ganze asynchronität Gedöns nicht gelöst wurde von diesen alten RPC Bibliotheken und dann hast du echt gewartet und wenn du im Browser javascript echt warten musst eine echte Katastrophe, weil dann kannst du auch keinen Knopf klicken, das ist sehr dein Browser eingefroren so ja darfst
halt nicht warten müssen so ja und deswegen ist es wichtig, dass das RPC quasi asynchron mit geht, ja. Jetzt vielleicht ne andere Frage. Ich habe ganz gut. Und zwar wollte ich mal hören, wie du denn eigentlich darauf gekommen bist. Jetzt das VRPC ja letzten Endes zu entwickeln.
¶ Funktionsweise von VRPC
Also ich weiß ja, das hat sich so mit der Zeit ergeben und weil jetzt p war schon da und dann hast du hast du von der Idee gehört oder hast du das gesehen? Dachtest clever, hier müssen wir die Fehler ausmerzen, kann man das vielleicht auch benutzen oder hat sich das so ergeben im Laufe der Zeit vielleicht einfach mal? Also das finde ich echt cool. Also dazu gekommen bin ich überhaupt diese ganzen Probleme irgendwie wahrzunehmen mit dem mit meinem ersten Job quasi beim
European XFL. Also weil wir, das hab ich schon mal erzählt haben, ja einen Skala System, also ein Leitsystem aufgebaut und da haben wir halt diese OT mäßigen Anforderungen, dass wir ganz viel Hardware gesteuert haben
und Sensoren ausgelesen haben. Und, und davon gingen auch wieder Komponenten und kamen und wir haben halt und dann muss man sich halt überlegen, das ist sehr lustig, da fließen viele Daten hin und her und jeder will irgendwie die ganze Zeit in Echtzeit mehr oder weniger sehen, was passiert. Und da musste ich dieses Problem damals schon lösen. Da gab es aber noch nicht das Q 11, da gab es auch keine Container und nichts und so und das war quasi.
Ja, das hat mich halt hart genervt und da habe ich das erste Mal richtig fundamental drüber nachgedacht, was ich machen kann und dass Karabo heißt. Du heißt das Kontrollsystem, was immer noch im Einsatz ist am European XFL, das ist halt für damalige Verhältnisse natürlich entsprechend implementiert, aber komplett Event getrieben, genau wie also Event getrieben, umständlicher vom Code her ne sehr umständlich zu programmieren die. Da haben wir ja leider müssen die Entwickler, dann hast.
Du brauchst ja, wenn du einmal im Einsatz ist, haben wir auch schon erzählt, dass du ja nicht einmal um die könnten natürlich schöner PC nehmen ist aber jetzt nicht, weil alles im Einsatz ist. Das Schöne ist, es funktioniert und es hat richtig viel Last. Ich war neulich da, irgendwie so ein Release Event, daraus gibt es nämlich Open Source.
Mittlerweile ist auch ganz nice, aber nur am Rande so und aber das System schafft es halt diese wahnsinnigen Datenraten die da fließen ne und wir sprechen ja von Zigtausenden von Motoren und noch viel mehr Tausenden von Pumpen und so weiter all diese ganzen und die schicken die ganze Zeit irgendwelche Sensordaten hin und her und so weiter es wird alles abgefräst mit gar nicht so viel, das gibt es keine Cloud oder sowas ja das ist gar nicht so viel Server, das ist jetzt nicht hier,
sondern das fließt halt alles schnell und geschmeidig ineinander. Weil das Halt von Grund auf Event getrieben ist, wird halt nirgendwo an keiner Stelle irgendwas gepolter. Ja, so, und das war quasi meinen, das war so mein mein Lehrstück. Und dann habe ich mir gedacht das ne mit allem was so genervt hat beim Code nur für die Softwareentwicklung, das muss doch eigentlich noch viel eleganter und cooler gehen ne und wie geil wäre denn das wenn man.
Man hätte, wenn man das alles eigentlich ganz easy ineinander bröseln kann, so ja und man muss einfach nur die Kommunikation so doll nachdenken. Ich muss halt, also will auch eigentlich, eigentlich willst du eigentlich, willst du an dieser nicht Medien heute ja, also normalerweise tut man sowas nicht auf diesem Level irgendwelche Bibliotheken zu schreiben, weil typischerweise gibt es ja immer alles schon im Netz und auch sehr gut vom sehr cleveren.
Jetzt denkt man immer, das ist immer schon alles. Denken immer, ich halt diese Nische für sich entdeckt und es gab damals keine gute Lösung und alles was es gab, es hat mir nicht so geschickt, wie ich gedacht habe, ich das müsste eigentlich nochmal schicken. Ich hab auch n Moment gedauert.
Hab ich aber schon sehr früh angefangen, quasi diese schon damals schon drüber nachgedacht und dann in der während der nächsten Firma quasi das weiter gedacht und auch viel in meiner Freizeit n Wochenende konzeptuell daran gearbeitet und dann irgendwie, weil das quasi professionell fertiggemacht so genau und das ist eigentlich in einem guten Zustand, so dass da müssen wir das Spiel jetzt auch jeden Tag darum. Jetzt, wo wir dabei gerade sind, sagt jetzt, das war alles nicht
elegant genug. Wie sieht das aus, wenn jetzt das benutzen möchte? VRPC ja für was auch immer Inter, Microservices oder eben um. Oder? Wir anzubinden oder haha oder sowas. Und du hast vorhin, du hast jetzt am Beispiel A erklärt, aber es gibt ja auch dann für andere Sprachen. Richtig, genau das ist da, wo wir noch ein bisschen Arbeit reinstecken müssen.
Also s gibt es für C plus Plus und für G. Es ist immer sehr wichtig für Python, zum Teil für die Programmiersprache R gibt es das, da freu ich mich, wenn das hat auch noch keiner benutzt. Wir hatten mal ne Kundenanfrage wo das irgendwie interessant gewesen wäre, da habe ich das quasi als akademische Hand Übung mal geguckt ob ich r. Kriege sind sehr extravagante Programmiersprache, die bei den ganz viel Psychologen genutzt wird.
Also eine statistische Auswertung, Sprache also, in dem entweder Python oder r. Aber er hat auch so seine seine Vereinigen und dann kannst du das Prinzip. Kannst du das für solche Sachen nehmen?
Ja genau schick, also wir werden demnächst nochmal Python fertig machen und dann gibt es natürlich noch andere Sprachen shap ne die zum Beispiel in der Windows Welt unterwegs sind ist natürlich total spannend, hätte ich gerne alles in Java selbst, so dass noch nicht da, aber wenn wir das quasi alles fertig haben konzeptuell ist völlig klar, ist eigentlich noch programmiert werden, also haben wir gerade nicht, aber vielleicht findet
sich vielleicht auf wenn jemand zuhört der sich mächtig genug fühlt in einer vielleicht Softwareentwickler ist oder jemanden kennt. Es alles Open Source, da kann sich kann sich einfach kann sich beteiligen.
Es gibt sogar eine Produkt Webseite das VRPC Punkt IO und da findet man den Status quo wenn man ganz viele Dokumentationen auch ganz viel Beispiele es kann sofort losgelegt werden und wenn man VP ausprobieren möchte ist auch ganz einfach weil wir einen wir bieten quasi an for Free n Broker den Kreis hab ich noch nicht geschlossen, den schließe ich jetzt vielleicht auch gereicht dennoch Klick, denn wir haben jetzt gesprochen das Event getrieben und es geht übers
Internet dann könnte man sich jetzt wahrscheinlich schon gefragt. Könnt ihr dann, wenn sie nicht Rest ist. Als Transport Protokoll. Und der nimmt halt einen QT, ja. Weil das passt wie Arsch auf einmal oder wie Deckel auf Topf, weil das MQTT genau das ist. MQTT ist quasi Event getriebenes benachrichtigen durchs Internet mit so einem Broker Krams. Ja das ist Subscribe, Publish und so weiter das passt halt, das ist das was man dafür nehmen. SVPC auf MQTT auf, könnte man
das so sagen? Das VRPC liegt auf MQTT auf, wenn man es, wenn man es übers Internet schickt. Ja ich brauche einen t nur dann, wenn ich quasi übers Internet gehe. Eine gute Idee ist quasi raus, wenn wenn du Inter Microservices machst und so weiter dann kann ich dann kann ich direkt agieren, ne? Eine letzte Frage oder bitte das? Geht nicht. Ich muss mich korrigieren. MT ist raus, wenn du quasi Hardware, also wenn du Software Bibliotheken einbinden direkt so und bei Inter Microservices
brauchst du auch. Im QTT Instanz, die kann aber lokal dann sein. Ne genau und vielleicht sag ich doch zum Abschluss vielleicht noch Verständnis.
VPC ist quasi ein Protokoll, also wenn viele Leute beim T sprechen, dann sprechen Sie messages und werden ganz oft messages formuliert, wie die Aussehen mit der Pilot und so weiter von verschiedenen Geräten gibt, Standardisierungsgremien und so weiter und sofort also ein sogenanntes Message oriented System und es gibt was da geschickt wird VRPC man muss sich nicht messen, das ist ein Protokoll, das heißt eben, dass es ruft ja einfach die Funktion auf, das ist halt dieses.
P Systems basiert zwar auf MQT, aber welche Topical benutzt werden und welche Messages durch die Gegend fliegen, das organisiert das von sich selbst so. Du kannst auch nur du packst deinen Code rein, genau du packst es, wenn ich es richtig mitbekommen auch dahin wo ich etwas aufrufen möchte, dann muss.
Ich dann alleine. Du hast Klienten, also wir nennen es Agenten, wir nicht nur Client Server können, wir können mit ganz vielen Servern, deswegen nennen wir den Server Part Agent ja und du kannst dann mit einem mit als einen Klienten kannst du mit beliebig vielen Agenten sprechen die beliebig irgendwo liegen und die beliebig verschiedene Technologien haben. Dann gibt es noch sogenannte Adapter.
Der Adapter es gibt 3 Komponenten, Klienten der der Macht quasi, der löst den Auftrag aus, ne der will was haben kriegt diese diese Nachricht zurück als wäre es nebenan ist der Client der Agent kriegt die Nachricht der muss das Ausführen, der ne sammelt das zusammen und der horcht quasi im Netz und der Adapter ist wichtig, der Adapter ist dafür da wenn du ich hab ja gesagt wir müssen nicht wieder anfangen ist wenn du Code hast der schon existiert in der
Lieblingssprache dann klatscht du quasi Adapter dran und und der erkennt quasi was du für Code geschrieben hast. Und ohne dass du den Anfassen musst, ist er halt quasi von Remote aufrufbar. Das ganz schick plus Adapter sogar noch ganz nett deine Dokumentation, wenn du diesen hast. Also deine Code die oft die Dokumentation der Public Functions quasi der kann, nämlich gibt es eine bestimmte Sprache wie man dokumentiert und Standard ja der heißt. Java. Doc. Im Java Doc Stil kommentiert.
Dann bringt Dir VP sogar die Dokumentation der Funktion, also die API Dokumentation mit direkt in den in den Aufrufen in den Klienten Code. Das ist ganz schön krass also. Du quasi damit auf r sehr elegante Art und Weise an deinen Code andere Funktionalität einfach so dran. Und du kannst, ich hab auch mal genannt, tatsächlich Glaube BO steht drin auf der ersten Seite des Internet of Code Internet Code. Ich finde das ganz gut zusammen, also weil wir genau das was du gesagt hast.
Wir erleben quasi beliebige Coach Schnipsel von beliebigen Technologien an beliebigen Stellen. Mit ihrer vollen Eleganz in der ganzen Asynchronität mit. Mit Weiterleitung von Exceptions und so weiter also wir versuchen dieses Bild hat dieses Bild, das ist quasi neben dir sitzt im Code, in allen seinen Facetten irgendwie hinzukriegen. Und das Paradebeispiel für die Anwendung ist quasi für die Anwendung ist unsere Bilder, unsere Plattform, die komplett
darauf basiert. Und auch wenn wir jetzt mit kann ich noch mal sagen mit externen externe Daten aufrufen, woher auch immer ja von Hardware zum Beispiel oder aus Dateien oder. Das Betriebssystem oder wie auch immer das auch über VP und. Tun genau machen wir auch, aber auch. Das ist natürlich abstrahiert, dass kein Mensch, der unser Produkt benutzt muss vor PC. Versteht. Nein, überhaupt. Müssen wir.
Sagen Wir sind zum Beispiel auch schnell, also wir sind, also wir sind ja, wir sind ja Advokaten der Open Source Community, deswegen ist das auch selber Open Source und wir nutzen halt auch sehr viel Open Source, und das können wir besonders intelligent, weil auch da wieder ein Open Source ist. Ja, existierende Code in Bibliotheken Form gegossen, OPCUA zum Beispiel haben wir schon mal geredet, ist eine große Bibliothek, sehr schön von einem von von Etienne.
Draußen nun. Genau, danke Gerrit und die können wir halt auch mit VP machen und das finden wir quasi. Die Funktion die er geschrieben hat an und schwupps haben wir die irgendwie für unsere App Bilder Kunden irgendwie sofort zur Verfügung die dann aufrufen können. Ne, genau, nicht zu viel Werbung jetzt, aber das mal gekriegt und wie gesagt, an was andere Leute mit VPC machen, ich weiß nicht, weißt du gar nicht genau ne aber es gibt die Downloads die Leute
benutzen das, aber was genau? Ist sehr überschaubar, kleines genau ja, also das ist ja wie immer, du kannst n schönes Produkt. Wir haben eine Firma sein und trotzdem ganz wenig Visibility haben. Ist ja auch ganz normal. Wir sind ja noch jung, ist ganz am Anfang im Vergleich zu anderen Open Source Projekten noch ziemlich ja noch ziemlich jung. Ja, da ist bestimmt, da gibt es noch Potenzial das zu erweitern, wie gesagt. Vielleicht wird jetzt Nachfolger. Gibt es noch irgendwas vergessen
hab? Ich schon, erzähl ich Schweißperlen auf der Stirn, insofern 30 Grad hier. Ich glaube, wir müssen mal Glück. Hat noch immer bekommen. Ja nee, ich würde sagen, wir haben Syrer, glaube ich, ziemlich über die Maßen gespannt, so dass uns den Sack. So machen wir das ne. Ja, prima, dann vielen Dank und. Ja, ich bin gespannt, wie das Thema so ankommt bei euch sagt es uns gerne über Podcast heise.com ladet euch runter auf auf PCIO oder direkt auf github verlinkt natürlich alles. Genau.
Oder klickt man Stern dran, selbst wenn er Spaß hat beim Sorry. Alles klar. Gut Leute, danke fürs Zuhören und danke für die Erklärung, mit der heute sehr weitergeholfen. Alles klar? Dann machs gut aus Hamburg, Tschüss. Vielen Dank fürs Zuhören dieser Folge von einfach komplex.
Die Folge gefallen? Dann lass uns doch ne gute Bewertung da oder Teile die Folge mit jemanden aus seinem Netzwerk für Kritik zufolge Anregungen und Fragen für neue Folgen freuen wir uns auf deine Email an Podcast teilnehmer.com Abonniere jetzt unseren Podcast, um keine Folge zu verpassen bis zum nächsten Mal. Tschüss aus. Hamburg. H.
