Python vs. JavaScript / Node.js #69 - podcast episode cover

Python vs. JavaScript / Node.js #69

Oct 22, 202452 minEp. 69
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

In dieser Folge vergleichen wir Python und JavaScript, speziell mit Node.js im Backend. Beide Sprachen sind interpretiert und bieten ein hohes Abstraktionslevel, eignen sich aber für unterschiedliche Anwendungsfälle. Wir besprechen die Historie, Unterschiede in Syntax und Struktur sowie Herausforderungen bei Concurrency und Parallelisierung. Während Node.js mit der v8 Engine und Non-blocking Event Loops arbeitet, setzt Python auf Multi-Threading. Weitere Themen sind npm vs. pip, Typisierung, Standardbibliotheken, OOP vs. funktionale Programmierung, Datenmodelle, und das umfassende Ökosystem beider Sprachen.

---

Einfach Komplex ist ein Podcast von Heisenware. Alle Infos und Kontakte findest du im Linktree:

⁠⁠⁠https://linktr.ee/heisenware

---

⁠Dr. Burkhard Heisen⁠⁠ und ⁠⁠Gerrit Meyer⁠⁠ sprechen heute über:

(00:00) Intro in das Thema

(07:00) Anwendungsfälle

(11:00) Historie Python

(16:30) Historie JavaScript

(19:30) Syntax und Struktur

(23:30) Concurrency und Parallelisierung

(31:00) Typisierung

(37:30) Dokumentation

(39:00) Standardbibliothek, Tooling und Ökosystem

(44:00) Index Operations, OOP, Functional Programing, Decorators, Datenmodell

(48:00) Burkhards Favorit

Transcript

Intro in das Thema

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

Anwendungsfälle

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

Historie Python

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

Historie JavaScript

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.

Syntax und Struktur

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

Concurrency und Parallelisierung

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.

Typisierung

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

Dokumentation

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

Standardbibliothek, Tooling und Ökosystem

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

Index Operations, OOP, Functional Programing, Decorators, Datenmodell

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

Burkhards Favorit

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.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android
Open in Metacast