Leute, hier ist Volker 37 von eurem Lieblings Podcast einfach
komplex und Burkhard ist auch wieder dabei.
Ja Moin Gerd, hat gerade gesagt, wir begrüßen so komisch ja das
jetzt ich ganz normal. Ich bin andere Podcast sind viel
anstrengender Begrüßung aber ist egal.
Gut ich hab dich unterbrochen. Weil wir morgen sagen und dann
eigentlich sitzen wir schon 5 Stunden zusammen.
B Ach so, deswegen aber das ist nicht unsere Zuhörer nicht
stören ja das. Tun wir, wenn wir uns erstmal
ja. Alles klar, Martin.
Gerrit schön dich zu sehen. Ja find ich auch gut.
Nein, wir haben nicht getrunken. Also genau, wir haben getrunken.
Also J Sonata ist das Thema J Sonata, da fällt euch
wahrscheinlich, dass Jason drin steckt und Jason ist ein Thema,
das haben wir schon gemacht. Jason ist n ja Dateiformat quasi
oder n Format um Daten irgendwie strukturiert auszutauschen und J
Sonata ist eine Deklarative Open Source Abfrage und
transformations Sprache für Jason Data.
Ja das hab ich jetzt gelesen von jona.org und Burkhard was hat es
denn eigentlich mit Jason auf sich und beziehungsweise e ja
auch. Und was hat das mit Jason zu
tun? Ich will erst mal auf den Namen
kurz, wie schön ist eigentlich dieser Name der Sonata.
Also wenn man auf die Webseite geht, dann sieht man auch, dass
die das mit Sonata und sind Kanuten und n bisschen Bilder
ist ganz schön, ja. Egal also, man kann ihnen.
Da kann man singen. Ja, genau, was hat das auf sich.
Wir hatten ja schon mal ganz alleine nur über Jason, wo wir
quasi herausgestellt haben, wie wichtig heute Jason als
Austausch, Format als Datenstruktur Format quasi ist.
Ich will das überhaupt nicht wiederholen, aber nur ganz kurz
für diese Folge. Zum Anti Seren Jason ist halt
das Format. Wenn du zum Beispiel AB heute
hast. Die modernen ist, dann ist es
quasi Jason was ausgetauscht wird.
Ne also wenn A fragt zum Beispiel gib mir jetzt irgendwie
die die Adress Informationen von von dem von der Person mit der
ID hast du nicht gesehen und so weiter dann kommt typischerweise
Jason zurück ja und Jason selber ist ja irgendwie ne ja ein
komplexes Wesen, denn das kann innen drin verschiedene
Strukturen haben und deswegen ist überhaupt Senator wichtig,
denn wir haben 2 strukturgebende Elemente, ich will das
wiederholen, Folge. Also vielleicht für die Folge
ganz cool für alle Zuhörenden, die jetzt noch nicht die Folge
gehört haben, geht glaube ich gerade.
Ja, ich schnell raus. Und wer Bock und Zeit hat noch,
der hört die gerade vor. Dann ist man glaube ich besser
aufgegleist. Das ist folge 22.
OK genau folge 22, aber in so vielen nur es gibt 2
strukturgebende Elemente im Jason, nämlich Gerrit.
Objekt und Array. Richtig genau.
Und das Objekt nochmal zu wiederholen sind quasi
assoziative Folgen. Also sagt man es gibt immer n
Key und Value n Paar so und dann darf man ganz viele dann nicht
das Objekt und das ist typischerweise in geschweiften
Klammern, also geschweifte Klammer auf irgendeinen Key
Doppelpunkt, irgendein Welove ja und davon dann halt n während
des RA ist quasi eckige Klammer auf.
Und dann eine Abfolge von Values.
Und da ist die Reihenfolge relevant.
Auch übrigens ist es auch so, dass ich gerade eben Jason
Objekt wird auch die Reihenfolge beibehalten, wenn ich das mal
irgendwie code mäßig oder überhaupt das Jason quasi
definiere, dann garantiert mir eigentlich die die Java Script
Sprache die Reihenfolge dieser Key values, das ist ganz oft
gestellte Frage im Stack over Flow, aber heute im modernen
Javascript ist so. Gut, dass du so Sachen nochmal
mit Reinbringst, weil wir haben gelernt, dass hören uns auch die
einen oder anderen Informatiker. Richtig zu sagen wir einmal
weniger Becker Flow gucken, ja. Ja, oder?
Allgemein ist es auch OK, dann mal über so ein sehr technisches
Thema neu zu reden. Ja wie Senator.
Ja genau, und jetzt haben wir gerade nochmal kurz gesagt,
warum. Also erstens, warum ist Jason,
warum kannst du eine Abfrage Sprache geben, weil wenn du
jetzt nämlich diese Elemente kombinierst, also wenn du zum
Beispiel außen Objekt hast, es kann auch außen ebay sein ne das
haben wir auch in der Folge besprochen, aber du hast Objekt,
dann kannst du dann wieder beliebige Objekte haben oder
Airways und ich mach gleich mal das Beispiel was wir durch die
ganze Folge mitnehmen werden aber jetzt einmal kurz
aufpassen, ich hatte schon so eine Adress Eintrag quasi
genannt. Das ist jetzt etwas ganz
klassisches, wie aus jeder x beliebigen Rest API rauskommen
könnte das natürlich nicht standardisiert, jeder a macht
das so wie es Bock hat, typischerweise kommen die Daten
dann irgendwie mal Finale aus einer Datenbank, das auch noch,
aber da hätten wir zum Antrag Eintrag wo quasi einen Jason
Objekt zurückgegeben wird was wie folgt aussieht geschweifte
Klammer auf also außen Objekt ja und dann habe ich Kies wie First
Name Value Fred Sir Name Value Smith.
Value twenty und habe ich kurz auch.
Jetzt hatte ich Fred Smith, das wären dringend Werte während des
H twenty wäre dann quasi ne ne number wert hat.
Setzt man die kleine Anführungszeichen ne.
Da würde es ja genau jetzt schreibst und deine
Anführungszeichen drin. Genau und beim beim beim Twenty
dann quasi nicht, da steht einfach nur die 20 Jason weiß
dann OK, das ist eine Nummer ja so und dann hätten wir zum
Beispiel einfach die Adresse von diesem Herrn Fred Smith und
Adress, da steht dann Doppelpunkt wieder geschweifte
Klammer auf und jetzt kommen wir zu den strukturgebende
Maßnahmen, was heißt das? Wenn du hinter dem Key
geschweifte Klammer aufgeht. Dann ist wahrscheinlich der
Value auch ein Objekt. Genau richtig.
Und dann geht es nämlich weiter und dann haben wir quasi als
neue Keys in diesem net Object Street.
Hörst Park City Manchester Post Code irgendwas ja so dann
geschweifte Klammer zu, dann haben wir jetzt quasi in unserem
Ding First Name and Address auf dem ersten Level, wobei wir
verschiedene Typen dann sehen, also zweimal trinken, einmal den
Number und bei der Adress halt wieder ein Objekt wie du richtig
gesagt hast. Gerrit, Jetzt haben wir noch 1
und dann höre ich auf wenn man sich nicht mehr vorstellen
können ja auch schreiben oder geht so Jonathan auf die
Webseite in die Dokumentation das hab ich nämlich genau das
Beispiel kann man auch nachlesen, jetzt gibt es noch
den Eintrag Phone den Key. Schon im also auf der ersten
Ebene dieses Objektes. Und der hat jetzt eckige Klammer
auf als Wert, was ist denn dann? Das Array.
Richtig, genau. Und jetzt habe ich jetzt geht
als nächstes hinter der Klammer geschweifte Klammer auf.
Also einen Array was im J und wieder in sich.
Richtig, genau. Ich hab jetzt ne von Objekten
als Items genau und das auch typisch so.
Ja also Phone eckige Klammer auf geschweifte Klammer auf da
drinne type und number type zum Beispiel Home number, die
Telefonnummer, dann geschweifte Klammer zu Komma, nächster
Eintrag in diesem Hay. Die Objekte in dem R und der
nächste n Type Office, das ist diese Typische, das hast du,
kennst du auch vom vom vom Adressbuch in deinem Google oder
was? Ja du hast ja du kannst ja den
Leuten mehrere Nummern verpassen, Arbeit, mobil,
privat. Man hätte auf die erste Ebene
heben können mit Office Number und Home Number.
In dem Beispiel sind die nochmal unter Phone geordnet als
einzelnes. Genau und und warum das so ist
und ob das Sinn macht oder nicht, das ist halt, der hat mir
auch ne Folge drüber. Ne wie strukturiere ich meine
Daten hatten wir auch schon mal Kennzahlen hast du deine Daten
strukturiert, bist du bist ist das A und o für alle Software
und so weiter ja. Also.
Eigentlich gar nicht. Ich dachte, jetzt kommt ein,
hast du deine Daten strukturiert?
Ja, bist du irgendwie? Ja, kann ich jetzt auch nicht.
Ja, ich hatte gestern bisschen Abend keine heute ja OK so gut,
das wollte ich nur sagen, also das könnte halt so ein
klassisches und dann halt alle Klammern wieder zu und so weiter
ne das hab ich jetzt weggelassen und so ein so ein einzelnes json
Objekt könnte quasi klassischerweise eine Antwort
sein auf einen 1 Rest API frage gib mir mal Personen mit der d
27 oder irgendwas ja und da haben wir unseren Festen
gefunden. So und jetzt, warum Jonathan?
Ja, also jetzt könnte ich ja. Bevor jetzt haben wir erstmal
verstanden. Es Jason, was also für mich,
aber willst du noch n bisschen? Du hast doch ein bisschen
vorbereitet woher das kommt so J Senator ne und und und so Sachen
was einschieben was. Machen also jetzt ist ja die
Frage wo wo, also ich habe ganz viele Daten, API ja auch und an
an an welcher Stelle fange ich an Daten zu manipulieren und zu
filtern und zu verändern, ne und da gibt es in dieser Kette viele
Möglichkeiten und wenn ich jetzt ich habe am Anfang gesagt, kommt
wahrscheinlich irgendwie aus einer Datenbank aus einer
relationalen Datenbank Daten wieder folgen und natürlich kann
ich bei einer relationalen Datenbank schon ne Filtering
machen. Das ist ganz klassisch über zum
Beispiel über Close. Ja, und Manipulationen können
wir auch machen. Datenbank kann auch so schon so
ein bisschen hochfunktionellen wie summieren, Averages
berechnen. Oder auch in Accounting und
Ordering und Filtering und so weiter das gibt es alles in der
SQL Sprache, das ist die Structured Curie Language, wir
ne und die macht eigentlich im Prinzip das gleiche, also hat
hat das gleiche Ansinnen wie J Sonata, nämlich alle diese
Operationen auszuführen, allerdings wo direkt auf der.
Datenbank OK, also angenommen, ich möchte jetzt nur den First
Name Fred in deinem Beispiel auslesen.
Könnte ich einmal über den SQL. Curry genau da wird s Statement
machen, wo der Clown quasi die entsprechenden Anweisungen gibt,
dass nur die Leute rauskommen, die mit erstem Namen Fred
heißen. K.
Ein komplizierter. Nö, ist auch.
Ja nee, ist man muss halt n bisschen können wir n bisschen
gelernt hat auch schwierig ist. Auch dann ist auch Klassiker.
OK, was ist denn der Grund, warum ich natürlich sehr, dass
weniger Last auf Datenbank oder? Na ja, also wenn du, wenn du mit
einer Red PI sprichst, dann machst du halt k statements
mehr, dann bist du halt, dann bist du halt geflickt so ja du
kriegst. Du kannst halt genau die B
abfragen und dann kommt ein Objekt in Deinen in Triest
angepappt und du hast gar nicht die Möglichkeit einer Datenbank
rumzuspielen, das haben die schon für dich gemacht so ja
also du bist das Kind ist im Brunnen an der Stelle.
Du kriegst den ganzen Datensatz. Einfach zum Beispiel jetzt
verpasst. Und jetzt dreht das n bisschen
und das ist nicht nur WI so. Ja, also die ganze Welt bewegt
sich in Richtung Jason, also alle Arten von Daten die von
irgendwo kommen sind irgendwie irgendwann mal Jason und du
kannst sogar ganze Files machen, wir auch ne kannst du CSV file
einlesen also Komma separated Values oder Excel in Excel Sheet
also Excel Tabelle sagen wir mal nicht so und das kommt, das
kannst du auch alles wunderbar und herrlich durch diese
Struktur geben Elemente in einem Jason darstellen und das wird
auch gemacht und immer mehr und das heißt du hast beliebig
komplexe Jasons mit denen du eingehen willst.
Ja und jetzt kommt es. Ja, du bist ja irgendwie.
Du willst ja meistens noch einen Mehrwert schaffen.
Du bist ja nicht fertig in dem Moment wo du ne ne rest API
abfragst. Also könntest du kannst dir das
Ergebnis angucken und sagst, oh cool, das sieht halt aus so ja
aber sag mal, wenn du jetzt irgendwie Business Logik haben
willst, wenn du jetzt diese Datensätze die rauskommen aus
einer I automatisiert weiterverarbeitet möchtest oder
besonders schön anzeigen möchtest in einer Grafik oder
irgendsowas ja und wo du quasi Teile raus schneiden willst oder
umformatieren oder umsortieren, all diese Manipulationen machen
möchtest, dann musst du das jetzt quasi auf dem Jason
machen, was anderes hast du nicht in der Hand.
Und jetzt kommt Sonata und arbeitet eigentlich vom Prinzip
her. Sowas macht das sowas wie ne SQL
Abfrage. Früher gab es noch für die ich
kenne ich kann es selber nicht, ich habe jetzt beim Vorbereiten
gesehen, es gab ja auch mal XML, hatten wir auch schon ne als als
Datenaustauschformat gab ja mal jetzt gibt es immer noch also
ist auch sehr weit verbreitet. Wird Kontakt zu.
Genau. Aber es ist halt so ein
bisschen. Na ja, es fängt an, bisschen
staubig zu werden, so und x gibt es übrigens auch das x Pass, das
ist quasi das also SQLX Pass und Sonata.
Sind so die Tools, die so ungefähr das Gleiche machen,
gegeben. Verschiedenen Quellen sag ich
mal der Abfrage orten so OK so um das mal so zu sortieren und
das J Senata ist eigentlich, ich glaube das ist gar nicht so
bekannt, s hat es jetzt erstmal Open Source Software ist in Java
Script geschrieben und verhandelt dann das macht Sinn
weil es auch mit Jason Objekten arbeitet jetzt hat ich hab
gerade geguckt es hat über zweihunderttausend Downloads pro
Woche als NPM Paket es hat 1,7 Kilo also
eintausendsiebenhundert Sterne. Am github Repository ist voll
open Source und ich hab mal in den Quellcode geguckt, wurde
geschrieben hauptsächlich von Andrew Coleman.
Und seinem Co Autor. Der hat auch viel dazu
beigetragen, Matt Bailey und dann kommt natürlich ganz viele
Koautoren noch, die kann ich jetzt alle nennen, die hier und
da natürlich mal ein Bug und ein Feature hinzu getragen haben,
aber ich würde sagen, Andrew Coleman mit Bailey, die kann man
schon mal so als. Haupt Aktoren mal kurz nennen,
ab 2005 oder sowas. Wenn ich es richtig gesehen hab
was los. Nee warte mal 2525 macht keinen
Sinn was ich hier geschrieben habe.
Dann 16 oder 17 oder. Sowas kann sein.
Ich hab ich Quatsch aufgeschrieben.
Ich war Andrew Coleman auf dem Linken und dann irgendwie seit
2016 Trainer und könnte Britta. Und es scheint, es scheint in
seinem Haupt Job oder zumindest zusätzlich auch bei m
Softwareentwickler zu sein, bei dem man weiß allerdings nicht.
Weil ich nicht, habe ich nicht. Aber cool.
Also vielen Dank vielleicht mal selber Podcast vielen Dank an
der Stelle an die Leute, die solche Projekte machen, die auch
recht cool sind und super schnell und super gut
funktionieren und einfach open Source sind.
Ja, also kann jeder der jetzt der sich denkt ich hab immer
schon mit Jason umgehört, wollte umformen vielleicht selber ein
bisschen entwickelt zum Spaß oder sogar professionell guck
mal rein JN Cooles. Prima, dann haben wir n bisschen
gesteckt, warum eigentlich Janata so so wichtig ist.
Ja weil du Scheiße Jason eben das moderne Datei
austauschformat ist oder Datenaustauschformat.
Das ist das, was anderes rauskommt.
Und ich kann es mir nicht aussuchen, wie es rauskommt,
sondern das wird von demjenigen, der die Rest API oder dem
Programm zur Verfügung stellt, einfach irgendwie rausgegeben
oder auch andere Schnittstellen vermute ich mal genau so.
Und jetzt was passiert bei Jason, Nata oder Janata und und
wie kann ich das benutzen also und wo benutze ich das auch habe
ich mich gefragt schreib ich direkt den Code rein oder wie
läuft das? Also du kannst es also Jonas so
aufgebaut, dass das erste Mal, dass ich meistens wo kannst, die
Frage, wo kann ich es benutzen, hat immer nur 2 Möglichkeiten
eigentlich in der modernen Welt. Nämlich entweder im Browser
direkt, also dann läuft es quasi in der Engine des Browsers beim
Klienten lokal oder das läuft auf dem Server läuft auf dem
Server. Dann habe ich gerade schon
gesagt, NP ist ja quasi der Paket Manager für diese
javascript basierten Sachen, wenn es wenn es also in dem
Moment wo du auf dem Server läuft benutzt hat TS
beziehungsweise Script und im Browser ist es halt einfach Java
Script entsprechend den kompiliert das läuft da kannst
du kannst dir aussuchen was benutzt aber.
Also jetzt wäre jeweils im Code zu finden.
Tatsächlich. Ja, Code Code im Code aber und
weil das halt ein bisschen, weil s halt.
Developer Werkzeug ist ja im im Code quasi genau.
Das auch n bisschen. Genau das ist ein bisschen
schwer zu sehen, wie es funktioniert und so weiter gibt
es ziemlich cool gemacht von den Jungs von Jonathan sogenannten
Play Ground. Ich glaube nicht.
GJ Senator exerciser ich hab sie grad noch offen, was ganz cool
ist. Da kann man nicht, das ist
einfach ne fette Webseite und links ist quasi ein ziemlich
komplexes. Haben Sie da schon mal gemacht?
Kann man austauschen gegen seine eigenen und so weiter ist schon
ein ziemlich komplexes Jason File abgebildet und rechts oben
kann man dann quasi diese, ja diese quasi die.
Also den die Expression und das mal Fachterminus zu sagen hin
tippen, die dazu führt, dass dieses Jason entsprechend der
Jona Regeln quasi gefiltert, geändert oder irgendwas wird.
Dann habe ich noch ein Drittel in diesen Dingen war das
Ergebnis zeigt ne also einmal original dann die Abfrage oder
oder um formatierungs Expression und dann das Ergebnis ja so das
ziemlich cool, weil dann kannst du einfach deinen zum Üben
erstmal reinklatschen und so und dann auch deine eigenen Jasons
da reinmachen vielleicht hast du von der irgend so ein dings und
dann guckst du mal ob das klappt und dann kodierst du entweder
hart in deinen Code rein. Das ist immer die Umformung,
macht oder so wie wir. Wir lassen quasi unsere User,
denen das Jonathan so als Logo tippen.
So und dann kannst du das umformen, ne.
Und du sagst jetzt schon die expressions kannst du rein tun.
Ich glaub das haben wir gar nicht, sagt er doch gar nicht
gesagt, das ist so ein bisschen der Kern eigentlich von von J
Sonata ist oder die verschiedenen Expressions, also
Standard Funktionalität. Du kannst damit Summen bilden
und solche Sachen oder Durchschnittswerte et cetera.
Wie sieht das aus, also kannst du auch kombinieren
untereinander denke ich mal klären n bisschen.
Genau das hab ich also. Das ist natürlich immer
schwierig. Podcast aber wir versuchen das n
bisschen. Du hast das Beispiel Anfang.
Genau dieses Beispiel. Ich nenne es auch gleich nochmal
daran, haben wir uns ein bisschen langsamer
Vorstellungen, wie Expression aussieht.
Ja, also wir fangen ganz einfach an und das ist also man kann ja
erstmal überlegen, was will ich grundsätzlich machen, ich fang
mal an mit Curing, also mit quasi mit Herausfiltern von
bestimmten Eigenschaften eines komplexeren Jason Objekte, also
wir bleiben unserem Beispiel, wir haben quasi ein Objekt mit
den Kirsten Susanne Address Phone und den verschiedenen
Typen. Und wenn ich jetzt einfach zum
Beispiel nur den First Name haben wollen würde, ja, also
diese kommt Abfrage an und ich will einfach nur den den Wert
des, also den Vornamens wert haben.
Also Thread in dem Fall den Values Keys values first Name
dann tippe ich einfach und dann ist Jason Expression einfach nur
First Name. Schluss aus.
A einfach. Und genau einfach findet dann
so. Ja, und das ist das nennt man
der sogenannte Location Pass und das Konzept ist genau analog für
für XML. Also ich gebe quasi, ich gehe
quasi durch die durch die Struktur des Jasons durch und
verbindet quasi tiefer liegende Adress Elemente mit dem Punkt,
das ist auch so ein Klassiker, eigentlich passiert auch in der
Sprache intern, also wenn ich dann zum Beispiel nicht den
First Name, sondern die Street und wir erinnern uns, Street war
unter Adress, dann war es ein unter Objekt mit Street City und
Post. Und sagen wir mal jetzt, die
rausholen wollen, dann würde ich jetzt adressieren.
Adress Punkt Street. Perfekt genau.
Und dann kommt diese Straße raus, so so, und das ist halt,
das ist halt die Security Sprache, ich sag eine technische
Sache, manchmal hat man bei Jason, das ist nämlich erlaubt,
die Kies müssen zwar immer stringent sein.
Aber es geht auch, dass die Keys zum Beispiel in Space haben.
Also ich könnte zum Beispiel was Company Name wilder Weise
irgendwie Company Space Name nennen als Key, was ist Valides
Jason, da würde er im Juni würde sofort rechts und links
abbiegen, wer sowas macht, das macht man nicht aber manchmal so
ne, das schützt ja nicht weil ich eine Frage, dass jemand
Verrücktes trotzdem gemacht hat, so dann nimmst du Back Ticks die
du kennst. Ja die Packs auch schon ne also
die viele Leute kennen nicht programmieren, das sind die
Fragen oben links an und gehen nach unten rechts und seine
Häkchen also es sind nicht die normalen.
Einfachen Anführungszeichen auch nicht doppelt, sondern es gibt
einen speziellen Charakter, der heißt Actic, die.
Sind die sind auch sehr auf der deutschen Tastatur, zumindest
zwischen dem SZ und Fragezeichen und dem Back Space.
Zu finden es ist, wieso ein Backslash irgendwie oben ist.
So, ja irgendwie ja braucht man glaube ich nicht so häufig.
S programmieren bisschen dings, so ist aber auch wichtig,
Jonathan kenne. Ich, ich hab da bisher nur eine
Anwendung bei den französischen Accent Aigu und Accent grave und
so. Weiter ist davon ja auch ne.
Also ich hab nicht graphique, aber einer von beiden wird es
sein so ne genau, aber wenn du quasi dein dein dein, also sagen
wir mal First Name wäre jetzt nicht wie es ordentlich ist Case
geschrieben sondern first Space Name, ja dann müsstest du und
den rauszuholen quasi Back machen und den Sprint mit dem
Space quasi dazwischenschreibe war also Actic First Space Name
Actic ja und dann kommt dann quasi wieder raus.
Ja das wollte ich nur sagen Besonderheit aber also manchmal
schon deswegen würde ich also da muss man mal gucken, also ist
das quasi. Frage, Herr Senator, wenn du
das. Jetzt nicht ganz richtig machen
würdest. Würde dir so ne so ne Integrated
Development Environment der Stelle auch Bescheid sagen, wenn
der letzte Woche das Gespräch über die Idee ist und du hast
die macht alles bunt und unterstrichen wenn irgendwas
falsch ist kennen die auch Jonathan.
Nee, das glaube ich nicht. Aber es gibt also nicht per
Default, aber es gibt garantiert, ich hab nicht
geguckt, ne gute Frage, es gibt garantiert und jona Vormittag
oder also Extension Module für die IDE für Janata, manchmal
machen das die Entwickler selber gleich, vielleicht der Andrew
Coleman gleich irgendwie für. Durch das Studio Code
entsprechende Extension gemacht, die dann seine Sprache quasi es.
Gibt, dann haben wir auch noch mal an die Folge.
Richtig guter Punkt, geht das denn das sollte ich mir auch
runterladen, das macht Sinn, ne? Da sieht man gleich alles
richtig getippt hat, obwohl die Tipps nicht gesagt, evaluieren
sind. Runtime aber macht trotzdem Spaß
zu haben ja OK und dann und dann kurz was also das war jetzt, das
war jetzt einfach weil wir haben jetzt quasi uns lang gehangelt
durch strukturgebende Elemente die jetzt alle Objekte waren.
Jetzt n Bier, wenn er dazwischen haben.
Deswegen haben wir dieses quasi das Phone Beispiel drin gehabt
ne also wir erinnern an das Beispiel von Anfang hatten wir
vorne als Top Level Key und dann war ja ne von.
Von Number ja verschieden genau, verschiedene Nummern so ja und
wenn ich jetzt, wenn ich wenn ich das jetzt habe und will, da
aber quasi mir einen rausholen Element, ja dann, dann benutze
ich dieses eckige Klammer Feld. Also ich hab dann quasi hin,
also jetzt zum Beispiel den ersten Eintrag von einem
adressieren will, dann muss ich schreiben Phone eckige Klammer
auf und jetzt den Index des Elements, so ist im Fachjargon
und die Informatiker fangen nicht wie normale Leute an bei 1
zu zählen, die Fangen immer bei 0 zu zählen, also wissen sie das
ist also wenn ich das erste Element.
Aus haben will, dann darf ich auf keinen Fall Phone Klammer
auf Einschreiben, das ist nämlich das zweite Element, das
fängt bei 0 an C also vorne geht Klammer auf 0 Klammer zu was
kommt dann raus? Ach so, die, die die Nummer, die
unter dem. Home Nee, das ist nämlich ein
Objekt. Jetzt haben wir das Item
adressiert, kommt jetzt zurück, Type und Number hast du jetzt,
weil du hast nicht vor ich habe. Natürlich vor type Number.
Oder ich hatte gesagt Phone der originale Eintrag sieht so aus,
Phone Jerry und dann NA von Objekten und jedes Objekt hat
die Keys Type und Number für mobile Arbeit also ne privat und
so weiter ist der Typ und die Nummer hat die Nummer und wenn
ich jetzt erstmal sage Phone an der Stelle 0 quasi ne Klammer
auf 0 Klammer zu dann kriege ich als wert immer erstmal das
nächste. Komplexe so funktioniert das mit
der Sprache. Ja, und das da drin ist halt
wieder ein Objekt und deswegen gibt mir dann Jonathan, der das
Objekt zurück, also der Ausgabe wäre tatsächlich geschweifte
Klammer auf Type Home Number, was auch immer die Erste die
Nummer ist, die da in diesem ersten Feld steht, so würde ich
jetzt nur die Number haben wollen vom ersten Element.
Was würdest du sagen, wäre wäre eine gute UX.
Ihr müsst ich wieder nach den geschweiften Klammern und der 0
drinne wahrscheinlich n Punkt setzen und dann.
Nach den eckigen Klammern. Und der 0 drinnen Schwestern.
Klammer auf 0. Klammer zu Punkt.
Und dann? Welcher Tag war das Home also?
Die Nummer also würde ich den Key von dem Objekt wiedergeben
wie vorher war OK, also wir fangen an.
Phone ist schon der vom ersten Ding da e Klammer auf 0 weiteres
Element, dann haben wir im Kopf n kommt Objekt zurück, das hat
wieder n Key und Value also in dem Fall 2 und wenn der Key
number heißt dann schreib Punkt Number ja also Phone Klammer auf
0 Klammer zu Punkt number so dann habe ich richtig Nummer
und. Respekt wäre jetzt noch folgen
könnten. Wir ja gut, stimmt Respekt.
Man kann sich das angucken oder so.
Was ich halt einfach sagen will, dass es ist ganz typisch für
Programmiersprachen, jetzt gar nicht.
Statt speziell ist. Es werden immer adressiert.
Ja du hast, du hast ja quasi ein Index von dem R und der wird
immer eckigen Klammer gesetzt und dann gibt es noch ein paar
Features, geht nicht drauf ein, aber man kann Ranges definieren
zum Beispiel ganz geil, das kannst du nicht in Java Script
so einfach, wobei Jena kannst du einfach sagen, zeig mir alle an
von 1 bis 4 und schreibst du 1 Punkt Punkt 4 in nochmal eckige
Klammern speziell wenn kriegst du Ranges raus so ja und eine
Sache ich auch so und dann auch cool wenn du negative Werte
eingibst. Was könnte das bedeuten?
Also Phone eckige Klammer auf -1 Klammer zu.
Was nutzen die also ganz viele Programmiersprachen das
negatives Indexing. Ich kann nur Hamburg, weiß ich
ja doch mal, ist hier gerad hat gesagt er will mehr mit mit
Raten. Werden.
OK. Vielleicht negativen Wert
einfach oder wahrscheinlich nicht irgendwie so von hinten,
von hinten, ja. Bezahlt von hinten ist voll
cool, das brauchst du ganz oft. Ja, also wenn du hast das
Element, wenn du das letzte Element vom r.
Du weißt ja manchmal nicht, Einträge sind, wenn du einfach
das letzte Element haben willst, dann machst du halt -1 ist das
zweite Element ist -2 und so weiter das hab ich ganz nice.
Das macht auch das Skript so. Gut, das sind jetzt die, die
Basic expressions quasi. Gewesen.
Das ist auch das Wichtigste für die Folge, dass man einmal
verstanden hat, weil ich glaube, das ist auch der wichtigste
Anwendungsfall, dass du quasi dein gegebenes, n bisschen
komplexes Jason Objekt runter filterst.
Du Unterbrichst auf die Sache und so.
Aber vielleicht kannst du mal n bisschen das nochmal ein
bisschen weiter aufspannen, was dann theoretisch noch alles
ging. Also nur beispielhaft.
Also da hört ja nicht auf. Oder ne hört sich auch ein
bisschen noch besprechen. Ich weiß nicht, wie wir unsere
Zeit ist, aber so genau da hört nicht auf.
Ich sag mal kurz. Mal rauchen also, das ist das
das rausholen von den Sachen, dann können wir quasi
Konditionen mit einbauen beim rausholen so bisschen wie Claus.
Also ich könnte zum Beispiel sagen, gib mir alle, hol mir
alle Telefonnummern raus, die mit plus 49 beginnen zum
Beispiel, ja das kannst du auch mit einbauen und dann baust du
quasi in diese in diese eckige Klammern, wo normalerweise
direkt ein Element adressiert, baust du dann quasi conditional
Logic rein, ne sowas wie kannst du halt quasi wieder auf die auf
die Variable mit dem gleichen, deswegen hab ich angemacht mit
dem gleichen Pasing. Beziehen wir schon gerade bei
dem Turing gemacht haben, kannst du so schreiben, zum Beispiel
Punkt Number gleich ja oder größer oder kleiner, da gibt es
diese ganzen Operationen, braucht dringend eine bestimmte
Nummer und dann dann sucht quasi für dich daraus.
Also das ist quasi das wichtig, das nennt sich Prädikats bei bei
Jonathan und das ist für mich eine Art Abfrage suche mit
Konditionen ne und dann das Ding noch Funktionen einfache
Funktionen, aber die wichtigsten also sowas wie also das
funktioniert, die Funktion sind meistens geil auf auf ebay
Strukturen. Also sowas wie Sam.
Ne, wenn du kannst jetzt bei den wir Telefonnummer macht nicht
viel Sinn aber wenn du jetzt ausprobieren wolltest zum
Beispiel werden die Jäger, dann kannst du sagen über das ganze
Array summiere mir alle Nummern ja oder machen Average oder
Match match ist regular expression, also irgendwas was
irgendwie so und so geformt ist irgendwie e Mail ja.
Mit einer drinnen irgendwas oder contains non funktion contains
heißt hat das also das er beinhaltet ne und splitt kannst
du machen als Funktion. Also du kannst ja quasi
Funktionen mit hinein fügen um deine Daten zu manipulieren und
dann hast du den großen Bereich, den hab ich erst ganz spät
verstanden. Leider hätte ich schon viel mehr
machen können, selbst du kannst quasi auch deine Objekte
komplett neu umformen umformen, das ist das was Jauch bietet
also ich sag jetzt da kurzes Beispiel dazu wenn du jetzt zum
Beispiel nen den ersten Namen herauslesen.
Wolltest von dem Beispiel, Wir hatten Fürsten Name und willst
es aber nicht nur den. Also wenn wir schreiben First
Name, dann kommt ja raus Fred. Wenn ich jetzt zum Beispiel
wieder Objekt haben möchte, muss halt nicht First Name heißt,
sondern irgendein Name, weil meine nächste aber einfach nur
Name braucht. Ja dann kann ich jetzt
schreiben. Eckige Klammer, Quatsch.
Eckige Klammer, geschweifte Klammer ich machen, und jetzt
schreibe ich einfach ganz normal hin, was ich brauche, also ich
schreibe. Gänsefüßchen Name, Gänsefüßchen,
doppelpunkt. Also ich kreiere quasi neuen Key
und schreib dann dahin First Name First Name wird einfach
interpretiert, denn das ist wichtig, das habe ich nicht
verstanden, du kannst quasi diese diese Queries die wir ganz
am Anfang gesprochen hatten ne wir haben jetzt ein paar
Durchgeübt, die kannst du an eine beliebige Stelle schreiben
innerhalb dieses innerhalb dieser J Sonata Expression und
damit kannst du quasi und und ansonsten ist es nämlich
Jonathan wieder Jason heißt du kannst wilde Objekte mit wilden
Strukturen aufbauen und an beliebigen Stellen.
Diese Querys einfügen und auch mehrere gleichzeitig und dann
kannst du total komplexe neue Objekte aufbauen und neue
Datenstrukturen. Das heißt, du bist nicht nur in
der Lage zu inflight zu zu filtern, die Daten und
rauszusuchen nach Konditionen, sondern auch komplett Umzug
modellieren ne und das ist ich kann gar nicht sagen wie wichtig
sowas ist. Ja wenn man also wie wichtig
sowas ist, wenn man zum Beispiel verschiedene Sachen miteinander
verkuppeln will, weil du immer weil der nächste Input von der
nächsten API Funktionen was auch immer wird immer irgendwie
leicht anders sein als der Output da.
Ich wollte dich schon fragen, wie würde man das denn jetzt?
Immer heimlich machen, auf welche Art und Weise, dass man
die Daten irgendwie modifiziert und transformiert, das geht
schon anders. Und Jonathan macht da einen
leichter. Ne, würde man das?
Ja, du kannst einfach mit den von javascript das machen.
Ne, also mach ich jetzt. Also ich hab verstanden wie das
so geht so und du kannst einfach auch Expression in Java Script
schreiben, muss dann halt auswerten und dann javascript s
auch sehr einfach. Ja da gibt es auch die ganzen
Funktionen Map und Reduce und Summen und so weiter aber du
musst du halt schon, das ist typischerweise etwas länger
hinzu Schreiben und du kannst es auch nicht so einfach hin
kombinieren, ein neues Objekt, dann musst du dir mehr Gedanken
machen also es geht alles aber. Ist halt schon ziemlich schick
und ziemlich elegant und einfach mit.
Hat, das wollte ich hinaus, ja. Und vor allem wahrscheinlich
schneller als hip. Also die haben sich schon Mühe
gemacht, dass extreme Performance auch zu machen, das
die Abfragen und so weiter wird viel gelacht, alles was da im
Hintergrund irgendwie gespeichert werden kann für
diese Abfrage wird gemacht. Ja, und wenn ich mir anschaue,
dann ist es für mich auf jeden Fall deutlich leichter, zu zu
lesen und zu verstehen. Irgendwie also javascript
expressions. Ja, ich glaube, die können auch
werden. Diese Abfrage sprach Senator
Sachen, so hab ich auch schon wilde Dinger gesehen, aber ich
glaube so in auf der Schnittstelle zwischen Code und
Low Code. Ist auf jeden Fall, dass Low
Code ja und ja und wie gesagt, also auch sogar für Entwickler
auch gerade wenn man irgendwie Runtime quasi umsetzen kann,
aber auch ein compile Time n sehr mächtiges Tool.
Genau das wäre jetzt also für mich wär das jetzt auch schon so
passend irgendwie, weil ja, wir machen mal so aufmerksam darauf,
dass es, dass es gibt, genau, und das ist eigentlich die.
Idee haben erklärt, Glaube ich. Ja, und die Ganzen, die ganzen
Links gucken mal rein. Ich wollte, ich wollte nicht,
oder? Ö.
Aber du hast schon recht. Also ich hab jetzt alles durch,
eigentlich Wildcard gleich. Sagen.
Weißt du was? Nicht die wird ja immer so
gerne. Ja, also ich weiß nicht ist, das
ist klar. Nee, weil in meiner Welt Eltern.
So ja, ich hab ja ich weiß schon was du meinst du es auch so?
Ja genau, ja, nee, dann Stern. Nee, das lasse ich keinen Stern
glaube ich ne. OK, Stern hat auch irgendwas ne
Bedeutung. OK also Raute oder Stern
entweder denn für den Ganzen, für das ganze Topic oder halt
nur ein. Teil.
Aber der Stern ist auch in der Sprache der klassische Wildcard.
Also jedenfalls gibt es einen Stern in Jena, und das heißt
also, wenn du zum Beispiel Stern, Punkt, irgendwas, Stern,
Punkt Number oder irgendwas dann dann ist es Wurst.
Wie das? Wieder wieder Objekt Key, der
davor war, hieß versucht, hat alles raus was er findet, was
dann irgendwie miteinander endet und krasser Weise kannst du auch
Eltern nehmen, dann ist die Hierarchie auch noch Wurst.
Also dann egal auf welcher Tiefe ja also aus dem ganzen Dokument,
das ist doch ein geiles Feature was du nicht so schnell mal eben
irgendwie so hin programmierst, ja.
Also weil in dem Fall. Alle.
Kies raus, die Nummer.
Halten und egal welches Level oben drüber so ne also in der
Software im Software Jargon nennt man sowas dann rekursive
abfragen, weil weil du weißt nicht dass muss immer
funktionieren, es muss halt mit. N Level funktionieren, wenn 2525
Fachgebieten Level ist, müssen diese Dinge funktionieren und
wenn du das selber programmierst, dann musst du ein
bisschen was rekursives schreiben, das wird schon wird
schon gleich mal schroller und heftern OK, also wenn unsere
jetzt denken boah was für ne Waffe für so n bisschen Jason
also ich hab gerade neulich Workshop gemacht, ich verrate
nicht mit wem, aber wir haben APIS abgefragt wo ich vorher
auch nicht was kommt auf mich zu, es war der Inhalt von
Workshop und da kam Jason zurück, da hab ich die Ohren
angelegt ja ich also krass also also zehnfach.
Schalte Dinger, da kriegst du erstmal die das Ding auf und
dann kommt nochmal auf der 10 ebene a um die Ohren gedonnert
mit 3000 einträgen wo sie denkst du Alter was ist hier los?
So ja wenn du da. Wenn du also das war das Ziel,
das war n bisschen aufzuräumen und bestimmte Daten
rauszusuchen. Ja, wenn du das jetzt per Hand
Expression schreibst, javascript kannst du machen.
Aber also das war mit Jonathan irgendwie ganz cool, da gibts da
schnell hin und fertig, ja. Ja, weiß nicht.
Willst du noch ein Wort dazu sagen, wie das wie das quasi wie
wir das Einsetzen, gesagt? Kann ich vielleicht, dass wir
benutzen? Also bei uns kann man quasi da
PS abfragen oder Daten grundsätzlich abfragen und bei
uns kommt immer alles als Jason an.
Das ist zwar unsere unsere hab ich schon Standard Datenstruktur
und dann kannst du immer an den an die an die Daten die da
ankommen wenn du möchtest und Jason Entschuldigung Y nata
expression dran kleben und dann würden quasi die Daten die da
gerade ankommen sofort Jason irgendwie berührt verarbeitet.
Geändert in the Flight und dann hast du deinen neuen Daten,
deine neue Daten Struktur und die kannst du weitergeben.
So das nutzen wir den ganzen Tag, das ist echt und das
brauchst du auch überall, weil das ist.
Das ist also die Salz in der Suppe.
Ja ist halt irgendwie Datenstrukturen passend zu
machen zu schon sehr viel Funktionalität es gibt es gibt
ganz viel Funktionalität in der Welt, aber die hat immer ihre
eigene Vorstellung von Datenstrukturen.
Also s Datenstrukturen Zusammenkneten, neu modellieren,
Filtern und so weiter ist ist das was du machen musst.
Den ganzen Tag ja und deswegen Janata, weil das kann man am
besten finde ich für Jason. Perfekt.
Kannst du noch ne Alternative zu J Senator ist das das Tool?
Ne, ich kann tatsächlich keine Alternative zu j.
Ich habe auch nicht gesucht. Also ich hab irgendwie hat mir
Jonathan ins Ohr geflüstert und dann hab ich mir angeguckt und
war sofort überzeugt und ich brauch keine Alternative.
Prima wird alles verlinkt. Nochmal ein Dank an die Schöpfer
Matt Bailey und Andrew Coleman glaube.
Ich. Genau.
Und danke für euer Cooles. Open Source Projekt?
Ja, genau. Folge Open Source haben wir auch
gemacht. Und das Beispiel.
Guten kann richtig geil, ja. Prima.
Dann auch Danke Burkhard Mal wieder.
Ja, was gelernt. Immer gerne.
Und Janata verwende ich tatsächlich sogar.
Auch als Low Coder. Ja genau, und ich hätte auch
wieder mehr. Also nachdem ich verstanden habe
wir irgendwie komplett neue Objekte aufbauen kann.
Dann euch danke fürs Zuhören und bis nächste Woche bei einfach
komplex. Sieht es aus bis dann 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 deinem
Netzwerk für Kritik zufolge Anregungen und Fragen für neue
Folgen freuen wir uns auf deine Email an podcast@hymer.com.
Abonniere jetzt unseren Podcast, um keine Folge zu verpassen, bis
zum nächsten Mal. Tschüss aus.
Hamburg. H.