Moin zu folge 69 von iphone komplex.
Hier sind wieder eure Hosts der Gerrit und Burkhard.
Moin aus Hamburg. Moin Gerrit.
Ja Moin Burkhard und erstmal bevor wir loslegen, Fettes
Dankeschön an alle Hörerinnen und Hörer.
Wir haben es jetzt uns geschafft in den Spotify Technology
Podcast Charts zu verankern, bis auf Platz 6 sind wir schon mal
vorgekommen, vorgerückt, das ist natürlich ziemlich cool für
unseren kleinen Low buddle Podcast.
Wir machen das ja immer noch sehr hemdsärmelig, aber geben
uns mit dem Inhalt natürlich immer größte Mühe.
Also danke dafür. Danke für Eure Bewertungen,
danke fürs Hören und weiter so. Ja, auf die nächsten 69 folgen
würde ich jetzt mal sagen. Warum 69?
Dann sind wir bei Oh, jetzt muss ich 10 138 da ist eine ganze
Menge, gucken wir mal. Hast du aufgepasst in Mitte?
Naja, ein bisschen. Naja, weil wir jetzt halt nur 69
sind, sag ich es jetzt einfach mal.
Ach so okay, alles klar. Also.
Das Thema für heute ist jetzt muss ich gucken, was ich richtig
ausspreche. Python war wahrscheinlich schon
falsch. Nein, alles gut.
Okay Python vs. Java Script, das heißt, Wir
wollen wirklich mal 2 Programmiersprachen vergleichen.
Keine Angst, ihr müsst nicht programmieren können, es ist
glaube ich trotzdem ganz spannend, mal so verschiedene
Konzepte, so auch zu verstehen und und und.
Ideen die so dahinter stecken, also das ist ja auch
sinnbildlich für. Das Programmieren an sich, weil
ansonsten bräuchte man ja eigentlich nur eine
Programmiersprache, wenn man mit einer Sprache alles erledigen
könnte, oder warum hat man eigentlich mehrere und
verschiedene Möglichkeiten? Das ist ja eine philosophische
Frage am Anfang, aber cool. Ja, ja, ich habe mich das schon
oft gefragt, ja, warum gibt es nicht nur eine coole
Programmiersprache und eigentlich spricht ja nichts
dagegen und beide, Python und Java Script, sind schon so reif,
dass man sie für sehr, sehr, sehr vieles einsetzen kann.
Also man ist schon. Also es ist nicht so, dass du
ständig eine neue Programmiersprache brauchst für
das nächste Problem, also diese beiden zum Beispiel, die wir
heute besprechen, sind ziemlich mächtig und kriegen dir
eigentlich jedes Problem erledigt.
Also, und ansonsten ist es ziemlich viel Geschmackssache
und natürlich ganz viel Entwicklung.
Es gibt natürlich immer wieder clevere Leute, die sich eine
neue, clevere Sprache ausdenken, es gibt ja auch ganz viele
natürliche Sprachen, das glaube ich, das ist auch so ein
Menschen drin, dass man verschiedene Sprachen spricht.
Schöner Vergleich, okay also das würde mich tatsächlich so
interessieren, noch mal mehr rauszukriegen in der Folge, was
sind so die Gründe dafür, dass es jetzt wieder eine neue
Sprache gibt oder für den einen Anwendungsfall sich die eine
vielleicht besser eignet und für den anderen die andere, weil
dessen sind wir uns oder bin ich mir zumindest schon mal bewusst?
Was hast du denn geplant, pokert, was soll heute alles
Thema sein? Ja, ist natürlich total krass,
so einen Titel zu machen. Python vs.
Java Script ja, also kurz hat jetzt gleich mal am Anfang, ich
versuche mal die Schweiz zu spielen und.
Weil das Internet ist ja voll mit die Programmiersprache.
Was ist die andere Programmiersprache und was ist
besser und so weiter und alles ist darauf angelegt zu sagen
Okay am Ende musst du das nehmen.
Ja, das soll jetzt nicht so das Ziel sein, sondern ich würde
echt versuchen, so ein bisschen wie die Schweizer ganz neutral
alles, alle beide Sprachen anzuleuchten und dann vielleicht
zu gucken, auch für welche Use Cases, das hast du jetzt gerade
am Anfang schon gesagt, ja, für welche Anwendungsfälle ist
vielleicht die eine oder die andere relevanter oder besser
geeignet? Gar nicht so einfach, so 2 dicke
Klöpse wie eine Programmiersprache zu
vergleichen. Im kurzen Podcast Wir werden es
mal versuchen und ich ich möchte ganz gerne erstmal so eine ganz
grobe Einordnung machen. Was ist Python und was ist Java
Script ganz High Level ganz kurz und dann würde ich versuchen mal
ein bisschen auf die Entstehungsgeschichte zu gucken
ab wann gibt es denn welche Sprache und wie ist das
verwaltet und wer macht eigentlich sowas wie eine
Programmiersprache, wie entsteht sowas, hat vielleicht auch noch
der eine oder andere Zuhörer gar nicht gehört.
Und dann würde ich einfach tatsächlich so ein bisschen die
technischen Unterschiede von grobem Detail bis in ein
kleineres Detail mal angucken. Es gibt auch so ein paar nette
Querks, da kann man einfach mal ein paar Anekdoten erzählen und
dann schauen wir mal, dass wir ein gutes Verständnis kriegen,
was Python und was Java Script so ist.
Okay. Also ich muss voraussagen, dass
ich im Java Script sehr, sehr solide unterwegs bin.
Das ist also meine Brot und Buttersprache und.
Python habe ich auch sehr viel programmiert drin, aber es ist
schon ein bisschen länger her, also ein bisschen eingerostet.
So also für alle, die heute zuhören und die absoluten Python
Cracks oder Post sind mal wieder ein kleines Entschuldigung
voraus, falls ich sachen bisschen ungenau erzählt habe
oder nicht mehr ganz zeitgemäß bin, damit in Informationen
verteilt es mir dann. Das werden Sie bestimmt.
Ich habe noch eine Frage vorweg, die kam mir gerade, warum
vergleichen wir eigentlich genau diese 2 Sprachen miteinander,
also. Ja, haben Sie Gemeinsamkeiten,
kann man sie austauschen, quasi in Projekten.
Ja, Sie sind. Sie sind insofern gemeinsam,
weil es beides interpretierte Sprachen sind, wie man so schön
sagt. Das würde mich auch jetzt schon
zu den groben, zu den groben Einschätzungen mal am Anfang
führen. Es ist wichtig, dass man das
einmal versteht, also wenn man Python, hinschreibt oder Java
Script, das ist ja quasi so eine Art Englisch mit Mathematik dran
oder irgendwas mit vielen Klammern und Krams und Python
weniger Klammern, komme ich auch noch gleich zu.
Aber dann wird quasi, wenn die Sprache ausgeführt wird, läuft
dann sogenannter Interpreter über diesen Sprachentext, über
den Quelltext und interpretiert Zeile für Zeile, was da steht.
Quasi live wird das Programm umgesetzt, das ist bei Python so
und bei Java Script auch und das ist aber bei anderen
Programmiersprachen wie zum Beispiel bei Java, Achtung Java
Script, es hat nichts, aber auch gar nichts mit Java zu tun, das
ist eine andere Programmiersprache, auch wenn
sie der erste Teil des Wortes identisch ist.
Also in Java zum Beispiel oder auch in C oder C plus Plus ist
es kein Interpreter, der die Sprache ausführt, sondern es
gibt einen sogenannten Compiler, der erst läuft, und der setzt
quasi die geschriebenen, den geschriebenen Quelltext in
Maschinencode um, sodass ich so ne Art executable hab.
Das kennt ihr ja ne Punkt exe oder irgendsowas, das wird dann
ausgeführt, ja. Also da gibt es quasi noch einen
gesamten anderen vorgeschalteten Prozess, bevor es überhaupt
losgehen kann mit der Programmausführung, den gibt es
verpython Java Script nicht, insofern sind die da auf dem
gleichen Abstraktionslevel. Deswegen würde ich jetzt auch
nicht Java Script mit C plus Plus vergleichen wollen, ein
kleiner Sidekick Java Script ist in C plus plus geschrieben, da
kann ich auch noch ein bisschen was erzählen, also das sind
schon, und das sagt auch was aus, gerade die sind beide auf
dem Abstraktionslevel sehr hoch, also wir haben ja bei den
Programmiersprachen. Auch verschiedene.
Wie soll ich sagen Abstraktionslevels, in denen man
Sachen beschreiben kann. So ein bisschen wie eine wie
eine Low Code Plattform ein höheres Abstraktionslevel
annimmt als einen als direkten Code, das wäre dann quasi noch
die Steigerung. Ich würde sagen halt von einer
Low coden Plattform kommt sowas wie Java Script oder Python, das
sind so die Hochsprachigsten sprachen die es so gibt wenn ich
mir c angucke Boah da muss ich schon noch mal eine ganze Menge
mehr Text formulieren um das auszudrücken was ich tun will,
wenn ich dann ein Pfeil lesen will oder irgendsowas.
Da schreibe ich halt noch mal. Ich weiß nicht, fünfmal mehr
Wörter hin als jetzt in Python oder Davascript.
OK, also ähnliches abstraktionslevel beides
interpretierte Programmiersprachen und ich
würde sagen, Sie haben auch beide in der heutigen Zeit und
auch schon länger relevant relevant, genau das ist.
Der dritte Punkt. Genau, danke Grit.
Dann würde ich sagen, Startern wir oder du hast gesagt, erst
mal high Level. Ja, high Level.
Genau. Also ich hab ja gerade schon n
bisschen was high Leveliges gesagt, mal grobe Einsortierung
wo wo ist Python im Einsatz, da darf ich vielleicht schon mal
ganz ganz grob sagen und was ist das so von der Community?
Ja also Python kommt, kommt so aus der akademischen Welt, ja
ist ne sehr durchdachte Sprache, ist sehr angelegt auf
akkuratheit und auf auf eigentlich ne langsamere
Entwicklung, man versucht elegante und gute Konzepte zu
haben, man hat sehr viel Open Source.
Und der Fokus ist ganz krass auf, ich sag immer number
crunching, aber auf alle solche Anwendungsbereiche wie Data
Science, Machine Learning, Scientific Computing und halt
heute auch KI. Also ich würd sagen, ja, ich bin
mich schon wieder aus dem Fenster, ich hab keine Evidenz
für die Zahl, aber gefühlt ist Python die Sprache für KI, für
das Modell trainieren und so weiter da gibt es auch große
Bibliotheken die von großen Firmen wie Google zum Beispiel
unterstützt werden, da ist Python ganz stark.
Und NO JS und Java Script. Jetzt habe ich no js in den Mund
genommen, wenn man über Java Script spricht oder wenn ich
über Java Script spreche, spreche ich auch über No js.
Du hast noch mal ganz kurz gesagt, haben wir ein paar
Folgen gesagt, aber was was ist NO JS und Java Script, wo ist da
der Unterschied? No js ist im Prinzip auch Java
Script die gleiche Programmiersprache, aber fertig
gemacht fürs Backend. Javascript kommt eigentlich die
Idee von javascript ist, dass es im Browser, also im Frontend
läuft und ausgeführt wird und der riesige Unterschied ist, das
nehme ich gleich mal vorweg, ist, dass im Browser habe ich
quasi den Browser als eine sogenannte Engine, also die
Ausführungsmaschinerie für diese Sprache ist halt der Browser,
der ist ja selber wieder eine Anwendung.
Ja und ich habe halt keinen Browser, wenn ich im Backend
bin, ja wenn ich also eine Backend Logik mache, ja.
Und da gibt es bei Note JS nen nen Tool, der das quasi so ne
Art virtuellen Browser mimt. Man nennt das die.
Im Moment ist das die V 8 Engine, das ist einfach so, das
ist der Standard. Der Klassiker ist von Google
auch das ist so ne Art virtueller Browser der quasi
Note JS im Backend betreibt, aber also javascript im Backend
betreibt und das nenn ich dann Note JS so mal ja genau auf den
Punkt gebracht, aber die die Sprache und die Syntax und so
weiter sind identisch ja. Und das sind die gerade.
Hast du schon n bisschen die Anwendungsfälle für Python
genannt, wie sieht es da bei javascript aus und nutze es?
Genau, ich hab mich hab mit Browser gerade und Frontend und
Backend quasi schon die schon das abgesteckt.
Also javascript ist einfach die Sprache des modernen Maps.
Ja da da ist sie halt extrem stark, starker als Python würde
ich sagen Moment und ich hab da ne ganz andere ne ganz andere
Use case während ich während ich quasi beim Scientific Computing
und Machine Learning. Drauf auf.
Bin irgendwie sehr wie soll ich sagen sehr reliable zu Computern
und und und Bibliotheken zu schaffen die die sehr lange
Lebenszeit haben hab ich im Web genau das Gegenteil ich
unglaublich schnelle Geschwindigkeit ich hab
Innovationen die ganze Zeit ich krieg erneut neue Libraries
rein, ich hab neue flirrige Infekte, CSS wandelt sich also
die ganze Webwelt ist ja in einem konstanten Gas geben ja
von neuen Features und so weiter und dafür ist diese Sprache
gemacht und die die ist halt auch viel schneller, dass sie
sich in den Versionen weiter, also die Version der
Programmiersprache, die gibt es auch, ja, die entwickeln sich
halt viel rasanter als die zum Beispiel Python, aber Python
haben wir Major Version 3 gerade, es gab Python 123, das
sieht man schon und Python hat viel früher angefangen als No JS
und bei no JS ich weiß gar nicht was gerade die aktuellste ist,
aber es ist wahrscheinlich Version 20 schon oder irgend so
was in der mache, ja. Also eine Sprachversion.
Da sieht man schon was das für ein Speed ist oder?
Das ist immer so eine ganz grobe erste Eigenkategorisierung, also
Web versus Number crunching würde ich mal so sagen, ja und
schnell und und volatil versus langsameres und Bedächtigeres
entwickeln mit Konzepten, die getragen werden müssen mit
Python ne. So cool.
Gute Anordnung. So, und wenn wir da
weitermachen, dann, ja, dann können wir uns n bisschen tiefer
mal angucken. Wäre jetzt mein Vorschlag gerät,
dass wir mal n bisschen in die Historie reingucken, ja welches?
Denn ja gerne, du hast ja gerade schon gesagt, dass Python eher
aus so einer Wissens aus dem wissenschaftlichen Umfeld kommt.
Passt ja auch zu dem Number Crunching wie du das genannt
hast. Ja, ganz genau, ganz genau, also
erschaffer. Und das haben wir, glaube ich
auch schon paar Mal gesagt, ist Guido von Rossum von von Python,
das ist dann einfach die eine Person, die.
Tatsächlich diese Programmiersprache sich erdacht
und geschaffen hat, muss ein unglaublich, ich habe ihn nie
persönlich kennengelernt, leider ein unglaublich genialer Mensch
sein und das musst du erstmal machen, eine Programmiersprache,
die ja ausdenken und ins Leben bringen und programmieren und
ich glaube er hat in den späten 80er Jahren angefangen und das
jetzt Informationen die ich natürlich könnt ihr natürlich
auch wieder nachlesen bei Wikipedia und so weiter und das
erste Release war wohl 91 von Python, so lange ist es schon
zurück und die Grundidee war. Einen eine neue
Programmiersprache zu schaffen, die viel, viel einfacher zu
lesen ist und zu verstehen ist und trotzdem ziemlich powerful,
also eigentlich im Prinzip alles leistet, was halt auch die
vorigen Sprachen, die es schon gab, leisten.
Aber so simpel Runtergedampft wird das fast für also, dass man
das Ziel für Non programers reachible ist ja ja, weiß ich
nicht non pro, das ist vielleicht ein bisschen krass
so, aber. Ich werde immer oft gefragt, so
mit was fange ich denn an, wenn ich programmieren lernen will,
fange ich zum Beispiel mit Java Script oder mit mit Python, es
ist halt eine ganz klassische Anfänger Programmiersprache,
weil sie sehr reduzierte Syntax hat und sehr klar ist.
Und damit kann man schon gut anfangen, um die Konzepte auch
zu verstehen, eines Programms, ja, und das hat er gut
geschafft, der Guido und es ist halt wirklich so einfach
geworden, dass dadurch eine riesen Community entstanden ist.
Gab es da ordentlich Traction drauf und?
Und dann entstand um 2000 rum entstand das Python 2 und Python
2 war wirklich. Ja, das war irgendwie dominant,
ja, das war überall, das war stabil, und es hatte hatte ne
starke Bibliothek und Guido von Rossom war quasi immer immer
hinterher und hat die Sprache gelenkt und die ganze Community
geleitet, so n bisschen wie Linus Torvalds, den kennt man
ne, der hat ja, der ist ja quasi der Herr über den Linux Kernel,
so ist Guido von Rossom Herr über die Python
Programmiersprache und hat eigentlich ähnliches Starkes
geleistet, ja. Da gab es diese Peps, das sind
die sogenannten Python Enhancement proposes.
Das sind so so ne Art Feature Requests, aber die haben die
Peps getauft, die sind durchnummeriert und die würden
dann quasi alle reviewed und und und diskutiert und so weiter mit
mit großem Einsatz von Guido von Rosso immer ziemlich krass, ja.
Und aber Guido von Rossmann wurde auch, wurde netterweise
Höflicherweise als als der nette Diktator quasi der Sprache
genannt. The Benellawin Dictator for Life
also haben sie ihn betitelt, er hat aber abgedankt, mittlerweile
war so ein bisschen unschön bei dem Abdanken, er hat sich,
glaube ich, ein bisschen aufgeregt über die Communities,
gab es, gab gewisse Strömungen nach rechts und nach links und
so weiter wie das Halt so ist. Ich, ich vergleiche das immer
schon fast wie mit Parteien und so weiter und es ist eine
riesige Community und es gibt natürlich viele Meinungen und so
und. Naja, jedenfalls hat er
abgedankt. Er hat auch starkes geleistet
und jetzt hat die Python Software Foundation übernommen
und leitet die Sprache weiter, mittlerweile in Version 3.
Ich weiß noch, das war ein großer Pain von 2 nach 3 und 3
war auch nicht mehr rückwärtskompatibel, jedenfalls
nicht in allen Aspekten, das war ein großer Schmerz damals, das
ist noch gar nicht so lange her in meinem Gedächtnis.
Krass, aber doch auch schon wieder.
Ja quasi 16 Jahre am Start. Ja, genau, ja.
Ich bin leider auch immer schon, bin schon wieder alt.
Ich finde es immer sehr spannend, wie alt diese
Programmiersprachen doch eigentlich sind.
Ja, es wirkt dann doch so modern, aber es ist schon länger
alles da. Ja, genau so und noch was ganz
Wichtiges, was ich immer finde, muss man mal sagen, also ich
habe es auch Python und Javas gibt sind halt hochsprachen und
und die wichtigste Sprache und die werden wir auch noch mal
vielleicht ein bisschen auseinander nehmen.
In der Folge ist halt C die C Programmiersprache und C plus
plus Ich glaube dafür haben wir auch schon mal geredet, das hat
vielleicht auch schon mal jemand jeder gehört an sie C und so
weiter es ist im Prinzip eine der.
Grundlagigsten Grundsprachen, die die Menschheit so geschaffen
hat, und Python ist halt in ganz, ganz großen Teilen in C
geschrieben. Also wenn man es jetzt ein
bisschen krass formuliert, ist es fast so eine Art Framework,
ein gigantisch feines Framework, dass der quasi das so fein ist,
dass wieder Programmiersprache zu deuten ist, über C
geschrieben, und das nenne ich jetzt gleich mal raus und bei
Java Script ist es auch C. Bisschen mehr C plus plus lass
dich noch. Ja, es sind also zum Beispiel
die diese V 8 Engine, die die das No JS befeuert, das
komplettes C plus plus, ja. Diese Religion, wo auch alles
auf einen zurückführt. Ja, ja, genau, ja, das ist ja,
aber du musst ja das Problem ist, du musst ja ne
Programmiersprache auch programmieren, also musst sagen
was da hernehmen was schon gibt ja oder du fängst halt wieder
beim Maschinencode an, aber das ist ja blöd, ja.
So funktioniert die Evolution auch das ist immer ganz
spannend. Ja, also wer n bisschen
Philosophie hören will, ne Evolution haben wir auch ne
coole Folge hab ich immer vertieft ja, aber das wollen wir
nicht vertiefen. Lass mal zur Geschichte, dann
von von Java Script kommen, genau zu lange darüber.
Richtig, ich sag nur noch 1. Google ist so n großer Partner
von Python und heute heute mehr denn je, weil AI quasi von
Google relativ hart angekickt wird und Python ist halt das
Frontend dafür, nicht das Frontend, aber die
Umsetzungssprache OK Java Script.
Da ist Brandon Ike. Die Person ist viel später
entstanden, 95 und und wie gesagt, auch ganz anders
entstanden. Also das anfängliche Java
Script, würde ich sagen, hat mit dem heutigen Java Script was man
machen kann, fast nichts mehr zu tun, da erkennst du was nichts
wieder die haben die Sprache relativ hart umgekrempelt, über
deren Lebenszeit, das kann man einfach mal so sagen, das Ziel
war ein ganz anderes, das Ziel war quasi mit dem ganzen Web,
mit der ganzen Web Entwicklung die aufkam mitzuhalten.
Und und in den Browsern eine eine Engine zu geben, die Halt
stark war. Ja genau, und da kommt es halt
auch her, das ist Netscape gewesen, der also der Brandon
Ike, der war Netscape CEO und später ist er bei Mozilla
gewesen als Chief Architekt und so weiter da sieht man gleich wo
das herkommt. Ja das ist so ein ganz anderes
Setting und das passt halt auch noch heute zu der Sprache.
Genau. Und was, das hatte ich schon
gesagt, No JS lebt quasi oder Java Script lebt quasi von der
von dem Browser und da ist ganz wichtig die V 8 Java Script
Engine. Ja das ist die wichtigste Engine
die die halt quasi auch den Chrome Browser befeuert, die
führt quasi dann Java Script auf ja und und Java Script ist
gemacht für dieses Nonblocking, da sage ich auch gleich noch mal
was asynchrones eventgetriebenes IO das sind alles die Dinger die
ich brauche um im Echtzeit Anwendung im Browser gut zu
machen, ja. Genau das ist glaube ich, was
man so ein bisschen zu der Historie sagen kann.
Klar sind da auch dicke Firmen hinter Google, Google hat weil
weil auch Browser und v 8 Engines oder von Google kommen,
auch sind die genauso bei javascript involviert, das Type
Script zum Beispiel was eine Typisierung wird von von
javascript wird ganz stark durch Microsoft getrieben, also da
sind auch die großen Firmen sind hinterher.
Die Community sind natürlich auch unterschiedlicher, das
kannst du dir ja vorstellen, das ist die eine Community über
Python, da sind halt viele, viele Leute die halt in Beta
Science unterwegs sind, während die anderen ja versuchen
irgendwelche Webprobleme und Anwendungen zu lösen.
Ne weißt. Du, ob es da irgendwelche
Standard Websites oder Foren gibt wo man wo man sich
austauscht oder passiert das dann einfach auf den auf Reddit
oder oder überall. Es gibt natürlich zum Austausch
gibt es natürlich. Klar gibt es die die Online
Plattformen, die sind aber glaube ich nicht gar nicht so
Sprachenspezifisch also zum Beispiel Stack Overflows ist
eine große Austauschplattform, die nimmt aber alle Sprachen
ein, man kann doch mal sagen es gibt die Community trifft sich
auf großen Events, es gibt eine große Konferenz weltweit wichtig
die Pycon wo sich alle Python alle die was zu sagen haben
Python da treffen alles was Rang und Namen hat und auch jeder der
was lernen will. Und in Java Script gibt es halt
auch die eigenen DJS, Conf zum Beispiel oder den Note Conf
Direct. Conf sind große Community
Konferenzen, wo dann entsprechend Leute
zusammenkommen. Perfekt.
Dann 20 Minuten haben wir lass uns doch in die ja genau gucken.
Es wird spannend. Also wenn wir in die Technik
gucken, dann ich bleib noch so n bisschen was heißt Technik, ne,
also es ist ja schwer in einem Podcast jetzt irgendwie was über
1 und 0 zu sagen, aber wir gucken mal ich bleib noch mal so
n bisschen auf der Philosophiekante Python hat sich
ja selber so ne Art Philosophie gegeben, das hat javascript gar
nicht und diese Philosophie haben wir Gerrit wenn du dich
erinnerst, ich weiß gar nicht so lange ja, aber die Zen of Python
ne die haben wir schon mal auseinandergenommen in der Folge
auf einer ganz anderen, die haben wir ganz anders hops
genommen, weil wir gesagt haben die Zen of Python sind so gut.
Also es ist quasi die die Zen ist ja quasi so die ich glaube
es kommt aus der aus der buddhistischen Lehre, ist quasi
so die eigenauferlegtes Regelwerk, die Moral der
Geschichte sage ich mal oder sowas, die langfristige Absicht,
so könnte man vielleicht sagen, The Zen of Python, dieser
Sprache, die existierten, die ist aufgeschrieben, und das ist
auch ein Osterei, man kann, ich weiß nicht mehr ganz genau, man
sagt irgendwie glaube ich das Python, self das oder
Irgendsowas jedenfalls kann man die Zen of Python direkt in
einem Python interpreter sich anzeigen lassen, ne?
Und da steht quasi drin, was die Sprache ausmacht.
Und die Regeln sind so gut, dass man die quasi auch in ne
Businesswelt übertragen könnte. Ja haben.
Wir schon mal so gemacht. Genau.
Ansonsten hat die also hab ich schon gesagt, die die
Philosophie dieser Sprache ist, Klarheit, Simpelheit des
Ausdrucks, explizites Lesen und Realability.
Und das erste, was auffällt bei Python ist es ist fast die
einzige Sprache. Jetzt muss ich kurz überlegen,
ja eigentlich die einzig relevante Sprache, die ich je
programmiert habe, die keine Klammern benutzt, also das das
muss man sich auf der Zunge zergehen lassen, also man
braucht in der Programmiersprache oft viele
Klammern weil man weil man quasi logische Blöcke zusammenfassen
will, in denen zum Beispiel variablen Gültigkeit haben.
Ja, ich definiere zum Beispiel irgendwas hin, ich sage jetzt
mal einfach nur war A variable, A ist gleich.
Irgendwas 5 oder sowas. Ja und und diese Gültigkeit
dieser Variablen und und allem was ich zuweise, das wird, das
ist n sogenannter Scope einer Programmiersprache ist
Programmiersprachen unabhängig. Ja es gibt n Gültigkeitsraum.
Aber in Java Script ist es zum Beispiel auch so.
Ja, ja, es ist in jeder Programmiersprache so.
Ja sonst wär das krass, sonst wär ja jede Variable die ich
anlege global zur Verfügung. Ja genau.
So, und jetzt ist es bei den meisten Programmiersprachen wird
so ein Scope durch Klammern ausgedrückt.
Wie auch immer, runde, Geschweifte oder was, das ist
halt wieder so und bei Java Script sind es halt geschweifte
Klammern, geschweifte nicht geschweifte Klammern und bei
Python hat man gesagt, Ah diese ganze klammer gedöns Zeugs nur
um den Scope anzuzeigen in dem jetzt hier was gültig ist, das
stört halt die Readability. Ja ich will jetzt mehr lesen wie
ein englisches Buch ja also hat sich der Liebe von Rosso
überlegt, die schmeiße ich weg. Jetzt muss ich aber trotzdem
irgendwie anzeigen, also mache ich das in Dentation.
Ich muss halt den Code, also es gehört zum Source Code dazu und
es ist nicht Spaß, dass ich richtig in Dentiere, also der
Einschub quasi schiebe ich Zeilen weiter ein, entsteht ein
neuer Scope und entsteht ein neuer Gültigkeitsraum und wenn
ich nicht aufpasse mit meinen Einschiebungen, dann kriege ich
den Kontakt, muss raus, da muss ich echt aufpassen, das ist Teil
des der Sprache. Ist einer der größten, sehr
schnell sichtbaren Unterschiede zu anderen Programmiersprachen.
Ist ja spannend, scoping by Identation.
Ja, das find ich schon mal cool, wenn ich irgendwo sowas sehe.
Eingerückt, aber ohne Klammern kann ich schon mal sagen, Leute,
das ist doch wohl Python Code. Ja, genau das kannst du dann
schon mal sagen. Ja, und es führt halt dazu, dass
so Python Programme sehr die sind so Visual Pleasing würde
ich sagen ja, also das kann man schon gut lesen.
Ja während du halt im Java Script bist.
Du bist du beim Klammern ne das also ich mein Gehirn faltet die
schon irgendwie weg. Aber du hast extrem viele Runde
und geschweifte Klammern, um diese Sachen auszudrücken.
Ja, genau das ist das ist so die die die die Main Philosophy und
bei Java Script ist es halt eine andere, da ist es halt ich
brauche halt irgendwie ganz viel Funktionen, ich brauche
irgendwie modulares modularen Aufbau der sich schnell ändern
kann und jetzt komme ich auch gleich schon zum zweiten Thema
und das ist 1 der wichtigsten finde ich also wenn man
überhaupt einen Unterschied sehen oder greifen möchte
zwischen diesen Sprachen. Ist es concurrency und Ush and
Cronis Programming, wie der Engländer sagt, also das
Abhandeln von Parallelitäten, von Parallelen?
Und das brauchen wir heute immer andauernd, ja, weil wir nicht
mehr, wir haben ja, unsere Hardware hat ja nicht nur einen
Kern, auf den wir gleichzeitig rechnen können, sondern also
physikalisch sogar sehr viel mehr Kerne und Virtualisierung
gibt es da oben drauf auch noch, das heißt, eigentlich kann
unsere Software davon nutzen schlagen.
Dass quasi mehrere Sachen gleichzeitig abgehandelt werden
können, ja, und das abhandeln der Gleichzeitigkeiten ist in
Python und No Chairs oder Davascript sehr sehr
unterschiedlich geregelt. Ja, und da da mache ich jetzt
mal kurz was technisches Python war halt noch war in meinem für
meinen Geschmack noch nie so richtig gut im asynchronen und
im gleichzeitigen Behandeln von von von von Dingen, ja von
Abläufen ja. Weil du es auch beim Number
Crunching und so weiter da da ist es auch erstmal jetzt nicht
das das kritischste sag ich mal. Ja du rechnest ja bei einer
Mathe Aufgabe sag ich mal oder wenn du mal was durchrechnest
dann willst du das auch schon der Reihe nach machen, sonst
kommt sowieso nur n Mist bei rum.
Ja also während jetzt sag ich mal was beim Web ja wenn du ganz
viele Clients hast ist quasi das das erste was passiert ist, dass
alle Sachen gleichzeitig vorkommen ja und du willst ja
alle möglichst gleichzeitig abfrühstücken damit keiner auf
den nächsten warten muss oder? Also es gibt quasi auch der, der
der Use Case gibt schon so ein bisschen vor, ob das jetzt krass
gebraucht wird oder nicht. Python war schon immer eher
Multi Threadded und Multi Process, jetzt muss ich kurz
sagen was heißt Multi threading, das heißt ich habe richtig ich
habe richtig echt parallele Abläufe im Programm wo ich dann
auch gucken muss wir hatten schon mal eine Folge alle die
jetzt nicht wissen was ich sage nochmal Multi threading und
parallelismus. Aber ich muss aufpassen als
Programmierer, dass mir nicht 2 Züge, die auf 2 Gleisen fahren,
das ist nämlich mal die Thread, ja, die ich dann irgendwann
wieder auf ein Gleis holen muss, weil das ist das Gleis des
Hauptprogramms, dass die nicht aneinander stoßen, ja, und die
können schnell aneinander stoßen, wenn Sachen gleichzeitig
passieren und vor allen Dingen, wenn ich gleichzeitig was
schreibe und ich aus Versehen an die gleiche Stelle im Programm
schreibe, und das kann schnell passieren, kriege ich ganz
bittere Probleme und Abstürze. Die ich ganz schwer debuggen
kann, weil die immer zu unterschiedlichen Zeiten
passieren. Ja, das ist dann halt nicht mehr
definitiv, ja, das passiert halt irgendwann, ja, und daher kommt
aus dieser Richtung kommt Python und um das Problem gleich mal
Wegzuschalten haben Sie den hatten sie früher diesen global
interpreter log ich glaub den gibt es immer noch Gill ja ich
glaub jeder der Mal mit Python gemacht hat und irgendwie
versucht hat, dass das zu Paralysieren, der hat irgendwann
an diesem Gill vorbeigekommen, hat graue Haare gekriegt, so wie
ich ja. Weil das Vieh hat halt quasi
immer. Das ist immer wie eine krasse
Weiche, da bleibt alles stehen und dann darf der eine Zug
fahren, während alles steht. Das ist so ein globaler Lock,
Global Interpreter Lock, so heißt er auch Gill, das heißt,
alles alles wird global angehalten, dann wird der eine
Zug eingeweicht, dann dürfen die anderen wieder fahren, das führt
dazu, dass alles, wenn Du das richtig krass schnell machen
willst, ist grauselig, weil immer alles warten muss auf
einen und so weiter das kann man eigentlich viel besser regeln,
hatte Python aber nie so cool geregelt.
Und wie man sowas eigentlich regelt, das hat No JSN Java
Script ja zur Spitze getrieben und halt der Browser auch
heutzutage. Das ist halt und die machen halt
asynchrone Sachen, also gleichzeitige Sachen ohne
Threads, das geht jetzt technisch ja und das Stichwort
was man dazu verstehen muss ist ein sogenannter Event loop.
Ja ich will das nicht in dieser Folge auseinanderleben, aber der
Browser. Ist im Prinzip ein großer fetter
Event Loop und Java Script als Programmiersprache hängt ihre
hängt die ganzen parallelen Prozesse, die sind in echt nicht
wirklich alle ganz parallel, die sind manchmal einfach nur quasi
ineinander ganz ganz schick ineinander geschaltet, ne,
sodass wenn ich wenn ich auf was warten muss, dann machen dann
dann dann fahren schnell andere Züge also genau das Gegenteil
von global interpreter log wo ich sage OK Schranke für alle
einer fährt ja ist no JS genau das andere der sagt so.
Ja du, du hältst kurz an und dann reihen sich 34 jetzt hier
noch mal ein, dann darfst du weiterfahren und so weiter ja,
also ganz, ganz feinteilig wird es auf einmal ganz schnell
gemacht. Ja, das war das Ansinnen von
Java Script von Anfang an ja und von No js im Backend auch weil
da dieses hatte ich schon jetzt gesagt, jetzt sage ich es noch
mal ganz deutlich, da ist quasi diese Browser Engine mit
reingegangen, also wenn no js ausführt, dann habe ich die v 8
Engine unterm Hintern, die quasi der fette Event Loop von von von
Google Chrome ist. Ja und?
Und der führt mir auf einmal mein Java Script total asynchron
aus. Ja und non blocking ja, also da
wartet nichts aufeinander, alles geht gleichzeitig, ohne dass ich
dieses Problem hab, dass Züge ineinander donnern, ja, das
regelt die Sprache für mich ja. Das heißt, du als als
Programmierer oder als Entwickler musst du dich da auch
nicht mehr so viel klein und so viele Gedanken machen.
Das ist. Überhaupt nicht mehr.
Genau, du musst dir noch, du musst dir noch um ne groß, also
manchmal muss man sich noch über ne Reihenfolge Gedanken machen.
Ne weil weil weil wenn du gleichzeitigkeiten hast.
Dann verlierst du manchmal ne Reihenfolge oder Irgendsowas, da
musst du schon mal drüber nachdenken, aber technisch
entgleisen die die Züge nicht mehr, ja weil der Kram technisch
abgeriegelt ist und du kannst dir nicht vorstellen Gerrit was
das wie wichtig das ist und wie krass das ist.
Also als ich angefangen hab, da gab es noch kein Java Script,
hab ich das mit C plus Plus machen müssen und da kannst du
gar nicht anders damals als mit zuletzt arbeiten und diesen
ganzen Logs und so weiter. Das ist furchtbar kompliziert.
Ja, und wenn du da nur einen kleinen Fehler hast, der
furchtbar schwer zu sehen ist, dann hast du und ne große
Anwendung hast, dann stürzt die dir irgendwann ab.
Du weißt nicht warum, ist ganz ganz fies.
Ja und No JS hat das einfach total elegant gelöst.
Ja bis heute eines der elegantesten Sprachen await.
Async ist das Stichwort, so wird es gemacht in der
Programmiersprache, man sagt einfach Await vorne vor von
einer Funktion zum Beispiel, dass ich await, das heißt.
Mach irgendwann, gib mir und was zurück ist sogenanntes
Versprechen in the Promis. Ja, irgendwann hast du das schon
ausgeführt, ja, und ich kann das untereinander hinschreiben, es
sieht aus als würde der Code quasi sequentiell abarbeiten,
innen drin tut das aber gar nicht, innen drin wird das
Hochoptimiert in Runtime und ich muss nicht drüber nachdenken,
das gibt es mittlerweile bei Python auch, nennt sich IO das
gleiche Konzept ist quasi eine extra Library die ran gedockt
wird an Python. Also Python und ich.
Wenn es ausführt führt prozedural aus und macht du
musst eigentlich mit Sweats arbeiten, während Noj s sofort
den Event Loop im Hintern hat. Ja, das ist ein riesiger
Unterschied zwischen den beiden Sprachen und zeigt sofort auch,
dass die zeigt sofort halt diese Anwendungsfälle, ja und die denn
noj s das muss man mal sagen, wird oft als Backend für
Webanwendung eingesetzt, da ist es ja und.
Und da brauche ich halt dieses krasse Non blocking io, das ist
alles io lastig. Ja io heißt input Output, also
da kommen halt Daten rein vom User abfragen rein, requests
rein und die Responses sollen raus, so schnell wie möglich.
Ja damit du einen Liquid Experience hast, der Reactive
Frontends und so weiter da müssen halt die die Backends
halt auch mit performen, sonst kann dein Frontend auch nicht
schneller. In deinen ganzen Ausführungen
wird es immer klarer, warum jetzt auch welche.
Sprache für welche Anwendungsfälle besser geeignet
ist so. Ja genau.
Also wenn du eine realtime, eine Realtime moderne Webapplikation
nimmst, dann greifst du halt in die no chs Schublade.
Wenn du wenn du ein Datenmodell trainieren willst eine KI, dann
nimmst du erstmal Python. Gott sei Dank kann man
Microservices und können alles gleichzeitig benutzen, sag ich
jetzt auch schon mal. Man muss sich gar nicht so viel
entscheiden, man kann auch einfach beides nehmen, normalen
Seitenhieb dann. Soweit erstmal klar.
Ja, mach mal gern weiter ich.
Ich geb mal n bisschen Gas und geh weiter.
Also wenn man sich Programmiersprachen anguckt,
dann haben wir das ganz am Anfang schon abgehandelt, dann
dann spreche ich ob sind die mal interpretiert oder kompiliert,
das hatte ich schon gesagt, also beide sind interpretiert, wenn
man interpretiert dann mal hat, dann spricht man gerne über
Typing. Ja hat mir auch schon mal ne
Folge. Was ist ein Typing?
Also du musst beim Programmieren musst du schon ausdrücken, mit
welchen Datentypen du gerade rumhantierst.
Ja, da gibt es sowas wie Boulience, also true und false
werte ne wahrheitswerte, da gibt es Nummern, es gibt Strings,
also textuelle Inhalte und dann gibt es diese komplexeren
Viecher, die also Arrays, das sind dann quasi Abfolgen von
Objekten oder von von Entitäten sag ich erstmal ganz ganz grob
formuliert und dann haben wir noch die Objekte, das sind quasi
Key Value mappings. Ja, als Datenstrukturen.
Und man kann fast sagen, also also Java, Script und Python,
die haben halt diese Datenstrukturen alle.
Die Frage ist nur, musst du beim Programmieren daran schreiben,
was du gerade für einen Typen hast oder nicht?
Ja wenn du es dran schreiben musst, dann nennt man es
Strictly type, wenn du es nicht dran schreiben musst, dann ist
es dynamicly type, weil wird das irgendwie gemacht ja so.
Also es ist Fluch und Segen. Ja, ich, ich, ich liebe ja
dynamicle type sprachen jetzt sehr was Persönliches, weil ich
hab mein Leben lang C plus plus gemacht.
C plus Plus ist compiled und Strictle type the most strictle
type as you can imagine ja das heißt der Compiler macht ihn
noch nicht mehr dein Programm fertig wenn du irgendwo nen Typ
nen Typ Fehler hast. Ja wenn du irgendwie versuchst
nen nen float auf den integer zu ziehen oder irgendsowas ja das
geht dann schon nicht also der kann ich nicht, ja.
Und das kann schon pain sein, weil weil du hast halt ganz
viele Typen. Ja und manchmal hast du aber ne
Funktion, die kann halt auch ganz mit ganz vielen Typen
umgehen, ne und dann willst du das nicht alles explizit noch
mal hinschreiben und so. Ja, das nennt sich dann
dynamiclitat du lässt es einfach weg und es passiert mehr Magic
sag ich mal in der Programmiersprache, es kann aber
auch richtig viel badmagic passieren, weil weil du
irgendwie komische Vergleiche hast.
Ja und das war am Anfang Problem mit Java Script, weil da gab es
dann so Vergleiche mit 1, da konntest du sagen 1 als Zahl ist
gleich gleich. Und dann in Anführungszeichen 1.
Also jetzt vergleichst du quasi eine echte Nummer mit einem
String und dann kommt da irgendwas raus, aber da kommt
irgendwie nie was richtig gutes raus und diese Regeln was dann
da rauskommt sind schmerzhaft und deswegen Gerrit, ich glaube
du hast schon mal gesehen heute in Java Script schreibt man
immer noch ein gleich mehr, das sieht ein bisschen irre aus,
aber wenn du irgendwas vergleichst, dann machst du zum
Beispiel gleich gleich gleich. Ist glaube ich auch nur in Java
Script so. Das habe ich auch noch irgendwo
anders gesehen, das habe ich am Anfang mal gesagt, sind die
jetzt komplett bescheuert und warum?
Wir malen gleich mal 7 gleich sind am besten so ja warum?
Weil das erste gleich gleich sagt Halt erlaubt dir quasi eine
1 als Nummer mit einer 1 als trink zu vergleichen wenn du das
Dritte gleich hinschreibst, dann sagst du der Sprache du
vergleichst aber bitte nicht Äpfel mit Bier sondern nur Äpfel
mit Äpfel, ja dann kriegst du so eine Type Safety rein, ja.
Also jeder, jeder Typ Unterschied gibt dir auf jeden
Fall false zurück. Was heißt das also wenn du 1.
Wenn du früher 1 gleich gleich String 1 verglichen hast, dann
kam da wa raus, wenn du 1 gleich gleich gleich 1 schreibst und
die eine 1 ist eine Nummer und der andere ist ein String, dann
kommt er falsch raus und das willst du eigentlich bei der
Sprache, sonst kommst du in Teufelskirche also das ist jetzt
typing sowohl Python als auch Java Script sind Dynamic Type,
das heißt du musst die Typen nicht hinschreiben und.
Und jetzt ist die Frage, kannst du es oder willst du es?
Das muss ich jetzt mal sagen, es gibt so eine Bewegung
grundsätzlich hin wieder zu mehr Typisierung in der
Programmiersprache warum wenn du jetzt eine größere Software
schreibst, dann kannst du, dann kann das ganz schön
unübersichtlich werden, wenn du keine Typen vorgibst und auch
gerne wenn wir über API sprechen, dann musst du anderen
auch ziemlich genau mitteilen was du erwartest zu bekommen und
da sind Datentypen schon ein essentieller Teil von.
Nicht ohne Grund kann man sagen, es größere Software ist stabiler
und du kannst quasi auch statisch schon bevor das
überhaupt läuft viel mehr Fehler finden.
Wenn du die Typen mit Hinzubringst so und Java Script
mit Typen ist halt type Script, das haben wir auch schon mal
gehört, es ist quasi ein Layer wo du die Typen mit oben drüber
bringen kannst. Oder du nimmst Deno.
Das ist ganz neu, das ist der javascript Erfinder, der hat
jetzt quasi, nee Entschuldigung der Note JS Erfinder hat jetzt
noch mal Note JS entwickelt mit Typen gleich mit drin, das nennt
sich dann deno kann man kann man ja mal gucken wenn man Bock hat
und bei Python das gab es am Anfang nicht seit 3.5 glaube ich
gibt es die sogenannten Type hints ja.
Das heißt, ich kann dann Python hinschreiben und die Typen mit
dazu. Das heißt noch nicht, dass dass
das Python nicht ausführt, wenn da irgendwas falsch ist.
Aber du kannst natürlich ganz viele Toolings haben, die dir
schon ganz schön viel verraten. Ja, was wollte ich noch mal zum
Typing sagen? Jetzt muss man mal ganz kurz
sagen, was dann jetzt der Vorteil ist.
Am Ende, wenn man also n Gerät mit.
Angibt, immer, na ja, der Vorteil ist quasi, dass du.
Dass du, wenn du auch fremde Entwickler reinbringst und so
weiter, dass du quasi deine Interfaces, deine Funktion noch
sauberer beschreiben kannst. Du sagst dann zum Beispiel bei
einer Funktion als Argument erwarte ich halt ein integer A
und ein integer B. Die Sam Funktion ne.
Du hast zum Beispiel eine Zoom Funktion genommen und du hast
die funktioniert halt nur für Integers.
Ja, da kannst du halt sagen, dass nicht nur A und b, du
kannst irgendwas reinklatschen, sondern du sagst halt integer a
und integer b. Ja und dann weiß derjenige okay
ich muss da wohl, ich muss da wohl irgendwie ein integer
reinbasteln und die Sprache weiß es halt auch, ja.
Und wenn du dann halt in A quasi einen tatsächlichen integer
Reinschmeißt, in B aber irgendwas anderes ja dann in
String zum Beispiel, dann kann dir quasi so ein externes Tool
schon sagen, nee, du bedienst diese Funktion falsch, die
erwartet halt als erstes Argument ein Integen, als
zweites auch und dein zweites Argument, was du reingegeben
hast ist aber ein String, mein Freund, ja hier hast du was
falsch programmiert. Also machst du es primär erstmal
für für andere Entwickler. Einfacher oder?
Die Zusammenarbeit, sagen wir es mal so im Entwicklungsthemen.
Ja, aber auch deine eigene Zusammenarbeit.
Du schreibst ja irgendwann eine Funktion ein halbes Jahr später
willst du die benutzen, hast wieder völlig vergessen, was du
da getan hast und hast es falsch benutzt.
Also es ist einfach, du dokumentierst innerlich in der
Sprache sauberer, wenn du das tust.
Da fällt mir was ein, das will ich auch gerade an dieser Stelle
schnell mal sagen, dokumentieren von Code, dokumentieren von
Funktionen, das ist auch was unglaublich krasses und
Einzigartiges. Ein Python sag ich jetzt mal
gerade. Finde ich total cool und ich
weiß nicht, warum die anderen Sprachen das nicht machen.
Du kannst in Python die Funktionsdokumentation auch den
freien Text und so weiter als Teil der Funktion aufschreiben,
das heißt du schreibst oben erstmal Funktion XY und so
weiter also in Python heißt das def blablabla und dann gibt es
eine Syntax mit so 3 schreibst du so 3.
Wie heißt denn das Hochkommata 3 einzelne Anführungszeichen und.
Und dann kannst du eine Dokumentation hinschreiben nach
Regeln von Python, und die wird quasi in der Programmiersprache
aufgenommen und quasi deiner Funktion zugeordnet.
Das ist mega Mega krass. Also das sage ich nicht nur so
daher, das heißt nämlich aber auch, dass wenn du zum Beispiel
Python in so einem Backend Kernel hast und du dokumentierst
deine Funktionen super cool, dann kannst du quasi den Kram
auch mal portieren und rausschmeißen übers Netz und
dann in irgendeiner UI anschauen lassen.
Und dann kann die UI quasi dir die Dokumentation von den
Funktionen einblenden, ohne dass du irgendwas extra finden musst.
Das ist Teil der Sprache, wird auch gemacht in den Jupiter
Notebooks. Das ist genau das.
Ein Jupiter Notebook ist quasi eine ein Web Frontend zum
Programmieren von Python total relevant heutzutage, weil du
dann einfach Schritt für Schritt immer kleine Python Funktionen
aufrufen kannst. Ist ja interpretiert und.
Und du hast diese ganze Dokumentation mit drin und so
weiter hat No js zum Beispiel nicht.
Hat Java Script nicht. Schade du musst du dann halt
irgendwie Java Dog von außen dran schreiben, ist aber nicht
Teil der Programmiersprache, ist quasi Teil der Kommentare, die
Programmiersprachen sind, aber ist halt irgendwie extern, also
richtig cooler Vorteil von Python an der Stelle und macht
Sinn vor dem Hintergrund, dass ich zum Beispiel meine Funktion
sehr gut erklären will, weil die irgendwie eine Matrix drehen
oder Irgendsowas vor dem Hintergrund ist Number
hunchings. Jetzt haben wir relativ viel
Technik gesprochen, jetzt will ich noch mal schnell.
Wir sind eigentlich auch schon in der Zeit weiter, als ich
eigentlich sein wollte, aber ich will noch mal schnell auf die
auf die Außenwelt sprechen zu sprechen kommen, denn eine
Programmiersprache ist gar nicht so wichtig, sag ich mal.
Also wie die Syntax jetzt ist, da kann man sich schnell
gewöhnen, das eine oder andere, ja ob ich jetzt Deutsch oder
Englisch spreche oder Französisch, ja wenn ich gut bin
drücke ich damit alles aus. Ja ich kann ein schönes Gedicht
in Deutsch vorlesen oder auch in Französisch, ja.
Das ist bei den Programmiersprachen irgendwie
auch so, aber was wichtig ist, ist, was ist um die
Programmiersprache rum, was sind meine Tools, denn ich muss ja
die Programmiersprache, also ich will ja andere Open Source Tools
benutzen, welche gibt es denn da überhaupt für diese
Programmiersprache? Ich will irgendwie, ich will
selber vielleicht ein Open Source Tool veröffentlichen, wie
kann ich denn das machen? Ich will irgendwie die
Programmiersprache Production ready machen und so weiter was
gibt es da alles so. Also das Tooling rundherum genau
und ganz genau. Und da gucken wir auch noch
einmal kurz drauf bei Python und bei und bei Java Script oder no
to est. Bei Python ist es so, dass die
Python Programmiersprache, die also alle Programmiersprachen
kommen, mit so einer Art Standard Library, so nennt sich
das fast immer C Plus plus auch Standard Library, das sind quasi
die Module, die du schon mal reinladen kannst, die einfach
nur, dass du die Sprache installiert hast.
Da sind ja, und da ist Python extrem krass, man sagt auch
Batteries and cluded, ja. Batterien mit drin.
Ja, du kannst genau, du kannst also regular expressions machen,
du kannst Ganze http sachen machen, ganz viel Kryptographie,
Data Science Module für Scientific Computing und I OS
alles schon mit drin in der Standardbibliothek, da musst du
dir jetzt keine Gedanken machen wo ich irgendwie mit dem Open
Source Paket von irgendwem das irgendwie mir ran hole ganz
krasses Gegenbeispiel ist. T plus Plus am Anfang gewesen,
da gab es nichts in der Standard Library weil die Halt Angst
hatten irgendwas falsch zu machen, mehr oder weniger.
Du musst es ja das alles dann gut zusammen glauben.
Oh gruselig ja so. Und während Java Script auch
eine ganz gute Standardbibliothek hat, ich
finde ich also ich habe gelesen, das heißt immer so Java Script
hat das nicht so stark, das würde ich eigentlich nicht
sagen, also kryptomodule und so weiter gibt es auch, aber es ist
schon ein bisschen so, dass Java Script und No GS mehr darauf
angewiesen sind, auf dieses Ökosystem, auf die Zulieferung
von außen und. Und da pointed, also Java
Script, ganz krass, da gibt es das npm, das muss man mal gehört
haben, das wenn ich, wenn ich sage Sprache und Tooling, wenn
du wenn du sagst Java Script, dann sagst du im nächsten
nächsten Atemzug npm, das ist der Note Package Manager, das
ist die weltweit größte Bibliothek an Open Source
Modulen für eine Sprache, da kommt Python auch nicht
hinterher. Der Note Package Manager hat
einfach die meisten Module, weil im Web auch so unglaublich viel
gebraucht wird, brauchst du alles und jeden.
Weil die Brauser ja auch heute alles machen.
Ja, ist ja auch für alles und jeden, den Service, ja und
irgendwer muss das ja ausführen, ne?
Ja, ich seh das ja. Also mal, dass man sich mal was
vorstellen kann, wenn man überlegt was was wir bei uns im
Tool so drin haben, dass man mit Drag and Drop irgendwas
verbinden kann, ist ne Bibliothek, die holst du dir
über NPM vermutlich mal dazu. Ja, plötzlich kannst du das oder
beziehungsweise kannst du es zumindest verwenden und einbauen
bei uns oder du willst irgendwas aufflickern flackern lassen,
wenn du irgendwo drüber haberst, ja dann brauchst du wieder ne
Bibliothek die das ermöglicht. Also du könntest natürlich auch
den ganzen Kram selber erfinden und neu schreiben, aber.
Na mach ganz Sinn, genau. Und natürlich musst du n
bisschen aufpassen. Bei NPM Paketen gibt es halt
also das das ist halt einfach die Community die das liefert in
in Form von Open Source, da gibt es halt auch sehr
hochqualifizierungskrams manchmal sind irgendwelche
Projekte, ich sag es mal vorsichtig n bisschen gestorben
und werden nicht mehr gepflegt, das sieht man aber.
Und hinter npm stehen halt auch große Firmen.
Microsoft hat hat da eingekauft und es wird gepflegt und so, das
ist richtig, richtig cool. Also da gibt es so viel Tooling
auch und auch diese ganzen Dependencies die du hast, die
werden gut gemanagt, es gibt Auditing für Securities, wenn du
installierst bei in Java Script sagt er dir sofort, hier gibt es
Unsicherheiten, also richtig Safety Issues und so weiter die
kannst du bewegen und so das analoge, denn Python ist das
PIP. Das PIP, das ist quasi das
Modul, um da Pakete hin und her zu machen.
Ich habe beide benutzt in beide Richtungen, sowohl also zum
Konsumieren, zum Reinladen von Dependencies in dyne Code als
auch ich habe sowohl in Python als auch in Java Script quasi
Pakete selber geschnürt, um es als Open Source anderen zur
Verfügung zu stellen. Da muss ich sagen das Java
Script also tatsächlich um Faktoren einfacher, also das mit
NPM quasi ein Paket hinzustellen.
Als es irgendwie zu raffen, wie ich das jetzt mache und in
Python in der Python Welt irgendwie ein Open Source Paket
zusammenschnüre. Okay spannend also.
Dass der da punktet, also jetzt so ne kleine Ranking
Goldmedaillen und Silbermedaillen vergibt hat ja
was Gegold in meiner meiner da. Sprichst du jetzt mal über die
Seite, dass du was veröffentlichst?
Selber? Genau, ganz genau.
Das ist ja auch nicht ganz unwichtig.
Ja, dafür brauchst du auch Tooling.
Ja, und das müsste jemand für dich hochladen und so weiter und
sofort und dann muss das Accessable sein und weiß ich was
weiß ich ja. Jetzt bin ich eigentlich mit den
wichtigsten Sachen durch. Ich, ich hab jetzt noch so n
paar ja so n paar Glamour Dinger wo wer wo ich einfach so n paar
Unterschiede so in so n paar Querks in der Sprache sagen will
die noch wichtig sind. Es ist so dass Python total
stark ist bei bei so einem kleinen Detail aber ist
unglaublich wichtig und das nennt man Sequences oder Index
Operations. So ganz oft haben wir ja eine
Karte, in der Mathematik haben wir es ja mit Rays zu tun oder
Matrizen oder sogar tensoren. Ja, Tensor Flow ist bei AI
relevant, was sind tensoren, sind dreidimensionale Matrizen,
so wird halt gebraucht. Ja und und die ganze Mathematik
darauf, die kann man wenn man die Mathe hinschreibt schreibt
man immer gerne hin, irgendwas mit Klammer J Doppelpunkt I und
so weiter und sofort ja wenn ich zum Beispiel einen Slice
rausziehen will, wenn ich zum Beispiel einen 3 D Cube stell
dir vor du hast eine dreidimensionale Matrix und
ziehst aus der Mitte irgendwie so ein Cube raus an Zahlen.
Das wird in Java Script ganz schön hakelig und in Python
kannst du einfach in der eckigen Klammer die Indizes angeben und
damit rumslicen und so weiter das ist unglaublich mächtig.
Das ist nur einmal nur verstanden haben.
Du kannst beim Array sagen -2 einfach in eckigen Klammern und
hol dir das zweitletzte Element raus oder du sagst sowas beim
Array geschweifte Klammer auf jetzt eindimensional.
I doppelpunkt J und I ist irgendwie 0 oder sagen wir mal i
ist 2 und j ist 4, dann holt ihr dir quasi den Slice von 2 bis 4
raus, sofort. Und, und und.
Und das ist also das ist nur das geht Eisberg spitze, ja genau,
ja das geht dann eben in mehrdimensionalen, geht in allen
Dimensionen quasi. Ja das ist n Dimensional
aufgelöst. So das ist richtig, richtig
mächtig und es ist so n kleines Feature, was aber quasi auch
dazu führt, das muss man, das sind halt so die Dinger, ne die
führt dazu, dass das Halt super geil ist in in dieser
mathematischen Welt des Data Science.
Ja das ist halt, das ist halt matrixgedöns und so weiter ja.
Beide Sprachen sind fähig, Objektorientiert zu arbeiten,
also mit Klassen und Objekten. Das habe ich noch gar nicht
gesagt, das können beide. Ich finde auch beide gleich gut
mittlerweile, beide können aber auch funktional agieren, hier
ist glaube ich Java Script ein bisschen stärker, funktionales
Programming heißt quasi so Sachen wo ich wo ich ein Array
mit einer Funktion in ein anderes Ummappe und dann
gleichzeitig noch Filter und so weiter ich schreibe gar nicht so
viel Funktion, ich schreibe quasi so, ja ich schreibe quasi
Funktionen aneinander, ohne dass ich was zwischenspeichere.
Ganz grob gesprochen, oder? Ich habe schnell eine anonyme
Funktion, die ich mir da reinziehe und so weiter Gerrit,
Du kennst das von so einem Modifier, das ist so ein
bisschen der Kram. Da ist javascript extrem stark,
das kannst du mit Python auch machen.
Ich finde es dann nicht so schön gelöst, weil das immer von außen
quasi die Funktionen sind, die dran gedockt werden, das kannst
du nicht mehr an den Objekten selber dran kleben können, aber
auch beide, ja dann gibt es noch so, dann gibt es noch so ein
paar Feinheiten, das finde ich zum Beispiel, also was Python
zum Beispiel hat, die haben so einen genannten Decorators kann
man noch mal sagen, du kannst also.
Existierende Funktion dekorieren mit quasi so einer Art Rapper
Funktion und dann kannst du dir noch mal neue Eigenschaften
verpassen. Das ist auch so ein Python
Special sage ich mal. Ich weiß nicht wie viele Leute
das einsetzen, das gibt es gar nicht in Java Script.
Die Idee also ich kenne auch nicht so viele Sprachen, die
Dekorators können, ich glaube das ist ziemlich Python speziell
und ja genau Dokumentation hatte ich schon gesagt, das wollte ich
nur mal sagen und zum Datenmodell, da muss man auch
einmal kurz nachdenken wenn man wenn man jetzt zwischen Java
Script und Python hinterherspringt.
Bei Python gibt es so ein starkes also, das muss man genau
wissen und verstanden haben. Es gibt da sogenannte Immutable
und immutable Objekte, es hat da was damit zu tun, wenn ich wenn
ich Sachen Weiterreiche im Programmcode, wenn ich zum
Beispiel zum Beispiel eine Kolonne von Zahlen habe und die
Weiterreiche, wenn und wenn ich auf das weitergereichte Objekt
quasi wenn ich das Modifiziere, modifiziert das das Original
oder nicht, und es hat damit zu tun, wenn ich weiterreiche,
mache ich eigentlich im Prinzip eine Kopie.
Von dem, was ich weiterreiche oder gebe ich nur die Referenz
weiter? Von dem gebe ich nur die
Referenz weiter und arbeite auf der Referenz, dann ändert sich
quasi alles, kann man sich ja vorstellen und wenn ich eine
Kopie mache, dann dann ist wurscht, wenn ich sie verändere,
eine Kopie machen heißt ich habe ein immutable Objekt, weil ich
kann das Original nicht verändern und eine Referenz
weiterzureichen, dann habe ich ein immutable Objekt, da sind
sie, da sind sie im Detail ein bisschen unterschiedlich, muss
man aufpassen. Ja, so, und jetzt habe ich
irgendwie mal was über Python und Javascript gesagt.
Wahrscheinlich habe ich ganz viel vergessen, vielleicht habt
ihr aber auch so ein bisschen einen Überblick gekriegt, oder?
Für so einen ersten Eindruck oder sogar mehr als einen ersten
Eindruck ist das doch perfekt. Also ich fand es, ich fand es
ziemlich cool. Jetzt frage ich mich noch
pokert, wenn du jetzt beide sprachen noch nicht beherrschen
würdest, meinetwegen. Bisher kannst du nur C oder C
plus plus mit dem Wissen was du hast.
Ja, nehm ich mal an. Also du, du hast jetzt mal ne
Frage, was soll ich als erstes lernen?
Könnte man natürlich sagen klar wenn ich ne Webanwendung bauen
möchte gut dann geh ich halt auf auf auf javascript wenn ich halt
mit Zahlen arbeiten möchte, mathematische Themen tun dann
geh ich halt auf Python aber wenn ich aber einfach nur mal
aus Spaß an der Freude irgendwo weitermachen möchte was was wäre
denn dann da da dein Favorit? Also es ist auch wie du weißt,
noch nicht, was du machen willst damit oder so.
Also ich würde immer no js nehmen.
Ja ich bin ich bin natürlich vorgeprägt ja also ich habe
beide sprachen gesehen und ich ich, ich ich sehe auch ein, dass
Python irgendwie eine klare und gut durchdachte Sprache ist.
Ich finde aber, dass die letzten Versionen von No js mindestens
genauso gut durchdacht sind und der Mehrwert, wenn du das
verstanden hast und ist auch nicht so kompliziert.
Ja gut, wir müssen ein paar Klammern mehr lesen ja so what,
da gehst du auch nicht dran sterben, aber der Mehrwert wenn
du no js oder Java Script kannst.
Was du damit anfangen kannst in der heutigen Welt zu gigantisch,
mehr finde ich noch und. Also wenn du nicht gerade jetzt
Ai ein neues Modell trainieren willst.
Du kannst nämlich mit Java Scripts auch nochmal dazu diese
modernen Bibliotheken, mit denen du Ai nutzen kannst.
Ja, die sind alle für Java Script auch da.
Es gibt immer sofort einen, der irgendwie die krasseste Library
irgendwie, die es irgendwo aufpoppt, die es eigentlich nur
für Python gab, sofort in Java Script umgesetzt hat.
Diese Webwelt ist eigentlich so gigantisch, ja und du kannst ja
nicht alles machen damit. Also ich würde also meiner
Tochter, der würde ich glaube ich erstmal no chs beibringen.
OK, aber das ist natürlich total subjektiv.
Ja ja genau OK und wenn man jetzt das eine kann, wie steil
oder weniger steil ist die Lernkurve, glaubst du wenn man
jetzt auf das andere noch noch rüber geht?
Och, das glaube ich nicht mehr. Das steil dann also je mehr
programmiert man also die Konzepte dieser Programmei sind
unglaublich ähnlich, ja, also das denkt man gar nicht, ja, es
ist nämlich, es gibt gar nicht so viele, also man denkt immer
so, Boah, das ist alles so viel, eigentlich ist es gar nicht so
viel, ja, man muss. Einmal so ein bisschen
grundsätzlich eine Programm, also eine Software studieren,
wie das funktioniert, ob das jetzt no, js oder Python ist.
Man kann es an Python auch lernen, das ist das wichtige und
man muss mal versuchen, sich ein bisschen zu lösen von dem von
dem textuellen Inhalt dieser Sprache, sondern so ein
bisschen, ich sag mal, was jetzt zu unserer normalen Welt ein
bisschen Satzbau und Grammatik verstehen, was brauche ich
überhaupt, wenn ich also, wie schreibe ich quasi ein Essay
oder sowas, wenn ich das verstanden habe, dann ist die
Sprache nachher relativ irrelevant, du bist sehr schnell
von A nach B gesprungen. Also je mehr man das macht,
desto schneller kommst du hin. Ne, es gibt manche ganz ganz
komische Sprachen, ne sowas wie schem oder r oder irgendsowas da
brauchst du Schluck länger, aber so sowas wie Python oder Java
Script oder Ruby oder sowas hat man dann schnell verstanden.
Perfekt, dann lass uns die Folge an der Stelle beenden,
vielleicht auch gleich. Erster Überblick, vielen Dank
dafür. Gerne.
Ich hab es nicht ganz in der Kürze geschafft, wie ich es
haben wollte, aber ich glaube es hat trotzdem Spaß gemacht.
N bisschen bisschen was hab ich erzählt.
Mir auf jeden. Fall alles klar, Gerrit, dann
mach mal Sack zu, das habe ich schon lange nicht mehr gesagt.
Habe ich früher mal gesagt, ist eigentlich schön, mach mal.
Einen Sack zu Wokert vielen dank dir und danke euch fürs Zuhören.
Wir hören uns in 2 Wochen wieder, bis dahin haltet über
uns steif tschau. Tschüss aus Hamburg.
Einfach komplex wird produziert und präsentiert von Heisenware.
Weitere Informationen findest du unterheisenware.com.
Vielen Dank fürs Hören dieser Folge und bis nächste Woche
Tschüss aus Hamburg.