Ja, hallo und herzlich willkommen zur 14. Folge vom Python-Podcast heute.
Ja, wir haben euch uns länger nicht mehr blicken lassen.
Das tut uns natürlich sehr leid, wir waren ein bisschen hektisch, haben hintereinander beide Urlaub gemacht
und dann ist natürlich vorher und nachher immer sehr viel zu tun.
Und wir hatten ein paar Abstimmungsprobleme, wir wollten nämlich eigentlich eine Projektmanagement-Folge machen.
Das ist dann an schlechte Projektmanagement-Folge gescheitert.
Ja, ich habe sieben verschiedene Termine gehabt und dann immer wieder verschoben.
Aber heute machen wir deswegen eine Laber-Folge, damit wir euch nicht ganz enttäuschen.
Aber wer ist wieder dabei? Das ist der Teuner bei der Christian.
Hallo.
Na gut, moin.
Nächstes Mal vielleicht ohne Knacksen.
Mal gucken, wer es denn bekommt, das werden wir hinterher rausfinden.
Ja, ansonsten wieder hier aus dem Wintergarten, wird auch dabei.
Ja, das ist der Jochen, ich bin der Dominik.
Ja, genau.
Und ja, ich weiß nicht, womit fangen wir an? Irgendwelche Neuigkeiten?
Ja, genau, wir wollten wieder ein bisschen News aus der Szene erzählen.
Und ihr beiden wart auf der Pycon, das habe ich ja leider nicht geschafft wegen meinem Urlaub.
Aber ja, das ist bestimmt sehr spannend gewesen.
Erzähl doch mal, was war da alles?
Was ging jetzt los?
Ja, also ich habe dummerweise auch nebenher noch so ein bisschen arbeiten müssen.
Es war alles so, man muss halt eigentlich so ein bisschen Zeit dafür nehmen.
Genau, es tut jetzt noch weh.
Ja, aber es war schon interessant.
Ich habe mir einige Dinge da angeguckt.
Super fand ich zum Beispiel den Vortrag.
Jetzt habe ich den Namen vergessen.
Luciano Ramallo, der das Buch Fluent Python geschrieben hat.
Das kann ich auch nur empfehlen.
Sehr, sehr gutes Buch.
Hat einen Vortrag darüber gehalten, dass vielleicht diese Unterteilung,
die man klassischerweise jetzt aus der Informatik kennt,
irgendwie in funktionale, objektorientierte, strukturierte Programmiersprachen
nicht so komplett trifft auf das, was man heute so vorfindet.
Und man sich vielleicht auch eher an den Features der Sprachen orientieren sollte oder so.
Und das hat da schon einen relativ starken Punkt.
Also man sollte sich mehr daran orientieren, wie die Syntax, wie die Features, was die Sprache so kann.
Ja, was man mit der Sprache so machen kann, genau.
Und das jetzt nicht, weil zum Beispiel Python wird halt immer in diese Skriptsprachenecke gesteckt.
Und warum?
Ja, es gibt eigentlich keinen besonderen Grund dafür.
Man könnte es auch in die objektorientierte Programmiersprachenecke stellen.
Also warum ist das jetzt so?
Es gibt keine, aber C-Sharp schon eine oder so.
Das ist halt nicht so richtig klar.
Und ja, so ein bisschen schwingt damit ja auch dann sozusagen immer das Vorurteil mit,
dass das jetzt gar keine richtige Programmiersprache ist oder so.
Dann gibt es ja die Gruppe der richtigen Programmiersprachen, Java, C-Sharp und so.
Und Python ist halt irgendwie so eine komische Skriptsprache.
Ja, von richtigen Programmieren wird man als Python-Programmier auch immer ein bisschen schräg angeguckt.
Das ist das Interessante.
Das Interessante ist, dass ja jetzt aber alle,
die letzten Jahre war es schon so, dass wir uns auf den Wir, also die Python-Community,
und Python als Sprache sich ja über die ganzen Indizes und diese Bewertungen,
von welchen Sprachen beliebter sind, immer weiter nach vorne geschoben hat.
Und ich glaube, dieses Jahr hatte ich so...
Ich habe gut das Verständnis daran gelehrt.
Ja, also ich meine, ich habe es die letzten drei, vier Jahre beobachtet,
dass Python immer bei allen Bewertungen im Prinzip unter den Top 5 ist.
Und jetzt dieses Jahr hat es ein paar Mal wirklich geknackt,
dass wir, ich glaube, bei drei von vieren, ich weiß nicht mehr welche, das waren auf Platz,
eins sind.
Das sorgte auch dafür, dass unser Branchendienst Heise nach der PyCon
und nachdem sie irgendwie ihre eigene Machine Learning Konferenz hatten,
sich beim Verband bei uns gemeldet hatten und meinten,
sie hätten das gar nicht so richtig gemerkt, aber Python scheint ja irgendwie benutzt zu werden.
Ja, das sind sehr große Leute.
Wo das ja jetzt plötzlich herkäme.
Auf wie kommt denn das?
Ja, genau.
Aber ich glaube tatsächlich, also inzwischen,
ich höre das auch manchmal nochmal,
auch wenn man jetzt, ich hatte heute auch ein Thema,
was wir später noch aufgreifen werden,
auf dem Ticker und wenn man dann wieder die Kommentare dazu durchliest,
dann ist es ganz spannend, weil halt so breit gestreute Vorurteile gegenüber Python,
die letzten, die das immer noch rausholen von wegen,
ja, Indentation ist ja eklig.
Ja, ich glaube, das wird nie weggehen,
dass da irgendwer nochmal mit den Augen rollt,
aber ich finde es eigentlich ganz angenehm heutzutage nicht mehr irgendwie argumentieren zu müssen
einem Kunden gegenüber oder einem Projekt,
ob ich jetzt Python einsetze oder nicht, das ist jetzt endlich gegessen.
Ja.
Nach 20 Jahren auch mal Zeit.
Ja, die letzten gehen schon in Rente, haben wir gehört.
Eine letzte Woche, Halloween,
Ja.
als nämlich der Guido hat getwittert,
dass er Dropbox verlassen wird und in Rente geht, also endgültig,
nachdem er ja letztes Jahr schon seinen teilweise Rückzug als benevolent dictator for life haben er gegeben.
Ja, wobei das ja zwei verschiedene Dinge, also sozusagen das Thema Erwerbstätigkeit zum Lebensunterhalt,
äh, ja, wobei das ja zwei verschiedene Dinge, also sozusagen das Thema Erwerbstätigkeit zum Lebensunterhalt,
äh, das hängt da an den Nagel, ähm, aber den benevolent dictator... Ja, wer weiß...
ähm, aber den benevolent dictator... Ja, wer weiß...
Wer weiß, ob das nicht insgesamt so ein bisschen mit der Karriere zu tun hat, dass man sich dann so insgesamt zurückzieht und dann auch im Berufsleben rausgeht.
Also, woher denn?
Was er als letztes gemacht hat, hat er glaube ich Typisierung gemacht in Python, oder? Irgendwie mit MyPy viel.
MyPy, genau, das war sein großes Thema bei, äh, bei Dropbox gewesen.
Äh, da ist der, da kommt die MyPy-Idee her, den Namen habe ich, von dem Fose habe ich gerade nicht im Kopf, ähm, aber...
Ja, persönlich, ähm, Guido hat letztes Jahr beim BDFL, ähm, es war ja kein BDFL an den Nagel hängen, sondern nur einen, äh, nicht definierten, äh, langen Urlaub nehmen,
und der Prozess, der ja angetreten wurde, ähm, zum Thema Core-Team und wie, äh, werden Entscheidungen ohne ihn getroffen, äh, welches Gremium kommt da zustande,
auch da ist er in dem Gremium ja wieder drinne, ähm, und er ist aktiv dabei, ähm, ich glaube, natürlich hat er signalisiert, dass er jetzt dann langsam auch irgendwann mal auf seine Gesundheit auffällt,
und, ähm, äh, mit seiner Energie haushalten, und, äh, aber ich habe den Eindruck nicht gewonnen, dass er jetzt, äh, schon jetzt einen Plan hat zu sagen, bis dann, und dann will er irgendwie komplett sich rausgezogen haben.
Ich habe eher das Gefühl, er will es halt mit seiner Energie eben haushalten, um das noch eine Weile durchzuhalten.
Ja, durchaus vernünftig, ja. Das ist ja aber dann der richtige Schritt, ne, weil dann bei Dropbox jetzt nicht mehr gebraucht wird, oder vielleicht gebraucht wird er schon, aber irgendwie...
Ja, aber, also, das ist jetzt nicht mehr unbedingt machen.
Ja, irgendwann wird er auch ein bisschen mehr Ruhe haben.
Das wird ja schon lange jetzt, also, fast, äh, so, äh, nicht ganz 30 Jahre.
Das war ja nicht 30-Jähriges.
Ja, 30 Jahre.
Das müssen wir mal rausfinden, wann 30-Jähriges...
Ja, stimmt, das sollten wir nicht verfolgen.
Jetzt finden wir eine Kerze an.
Und, ähm, ja, ich habe dann nochmal auf, als ich das gelesen habe, auch auf Wikipedia geguckt, dachte mir so, so früh in Rente, das ist ja aber, das stimmt gar nicht, das ist ja auch schon tatsächlich irgendwie echt, echt lange dabei, ja.
Ja, Guido macht das schon eine Weile, und, ähm, ich habe mir aber tatsächlich meinen Eindruck, wie ich in so den letzten Jahren...
Ähm, ähm, wahrgenommen habe, ich habe ihn, glaube ich, äh, ich weiß nicht, wann ich ihn das letzte Mal gesehen habe, aber, ähm, der hat Spaß an Python.
Der hat halt den BDFL unter anderem deswegen weggelegt, weil natürlich trotzdem diese Verantwortung für diese Größe der Community und mit allem, was halt dann immer mal in so dynamischen Community-Prozessen passiert, was halt auch unschön ist, äh, war für ihn, das ist ja im Prinzip der Move zu sagen, äh, ich will nicht, dass das dann alles, weil ich derjenige bin, der die letzte Entscheidung trifft, äh, trifft, dann zum Schluss bei mir landet und ich den ganzen Mist an der Backe habe.
Mhm.
Ähm, sondern, dass wir das halt dann auf mehr Schultern verteilen, was natürlich dann auch schön ist, äh, vorausdenken von natürlich Busfaktor, ähm, da ist es gut, wenn die Community sich sortiert hat, ähm, oder...
Für den Teil, dass es irgendwann Magie, du meinst, mehr geben sollte.
Ja, ja, das fand ich auch schön, also das mit dem Busfaktor, das, äh, ist ja auch mal so ein, vielleicht, ich weiß nicht, ob das, äh, jeder versteht, aber das...
Was ist ein Busfaktor? Ich habe gerade nur gesagt BDFL, BMF, äh...
Kritisch, äh, zu beeinflussen im Fortgang und...
Ja, wie, wie, wie viele Leute dürfen vom Bus überfahren werden, äh, äh, bevor das Projekt dann, äh, vorbei ist.
Ja, und das ist meistens eins, äh, irgendwie so für die allermeisten Projekte und, äh, manchmal will man vielleicht mehr haben als eins, weil es, äh, nicht gut wäre, wenn, wenn das, äh, so einfach zu beenden wäre und, ähm, äh, ich habe aber jetzt letztens, deswegen habe ich da kurz noch eingehakt, äh, gehört, dass jemand das anders genannt hat, weil er meinte, das klingt immer irgendwie so negativ, wenn Leute vom Bus überfahren werden und er dann...
Er spricht jetzt immer vom, vom Lotto-Faktor, Leute, Leute im Lotto gewonnen, äh, gewinnen und dann halt irgendwie was anderes machen vielleicht, ja.
Ich meine, das war, das war, der Faktor war bei Python, äh, zu dem Zeitpunkt eh schon nicht mehr so stark ausgeprägt, weil, ich meine, die PSF ist breit aufgestellt, das Code-Team ist breit aufgestellt, ähm, und es ist natürlich schöner, wenn man das halt dann nicht in einer Notsituation machen muss, sondern wenn es halt vorab geklärt ist, ist halt so ein bisschen wie, äh, mit seinem, ähm, Partner dann, äh, schon vorher zu klären, wer Patientenverfügung hat.
Ja, so ein Notfallkoffer, ne, wenn du wirklich so eine Firma hast und dann darauf angewiesen bist, dann brauchst du einen Notfallkoffer, weil du nicht weißt, was du machen musst, wenn der Chef tatsächlich irgendwo ist, rennen, das ist natürlich so ein...
Ja, sehr schön. Also, ja, also, für alle, die es noch nicht wussten, also, Python kann tatsächlich auch feste Typisierung, also, ne, wenn ihr MyPy benutzt, dann könnt ihr auch die Typen festnageln, wenn ihr möchtet. Also, mehr oder weniger könnt ihr immer noch, müsst ihr nicht, aber, äh, es wird euch wenigstens gesagt.
Es gibt eine Statische Analyse dazu.
Genau.
Ja, aber ihr wart noch bei der PyCon, also ihr habt jetzt...
PyCon.de, ja, auch gerade, ja, da waren wir gerade.
Äh, genau, ja, ansonsten, ich muss jetzt nochmal so gerade überlegen, was hatte ich denn noch angeguckt, was mir gut gefallen hat, ähm, äh, oh, das muss ich jetzt, das habe ich mir dann vorgenommen, mir...
...nochmal näher anzuschauen, äh, ähm, nicht, nicht nur Alphabet-Notebooks verwende ich schon ganz, äh, ganz lange, oder, äh, Jupyter-Notebooks, ähm...
Du hattest einen bösen Bug in Python 3.8 übrigens.
Oh, okay, ja, klar.
Auf Windows aber nur, ja.
Ähm, und, äh, da gibt es jetzt so eine, äh, komplette, äh, Entwicklungsumgebung eigentlich, äh, JupyterLab, die, äh, die halt auch da irgendwie diverse Fortschritte, ich habe sie mir schon mal vor irgendwie einiger Zeit angeguckt, bin dann aber bei den, äh, bei den Notebooks geliehen, aber da hat jemand...
...gehalten, das war gehalten, was man damit alles so machen kann, und das sah schon sehr, sehr gut aus, also so, äh, ein Problem, zum Beispiel, was dann, vor allen Dingen gibt es da jede Menge Plugins, die man für tolle Sachen benutzen kann, halt so etwas, was ich, was ich, äh, irgendwie immer nervig finde, ist, wenn man zum Beispiel nicht so richtig Diffs sehen kann, wenn man irgendwie Sachen eincheckt, oder halt Sachen verändert an den...
Du kannst ja jetzt Jupyter-Notebooks auch in VS Code öffnen, übrigens, live.
Ja.
In Sites, in die...
Oh, okay, das, äh, muss ich mir auch mal angucken.
Ja, das funktioniert leider noch nicht richtig gut mit der Dango-Stelle, zumindest habe ich das nicht, äh, vernünftig hinbekommen, aber, ja, doch, sonst.
Ja, und...
Aber da, da waren echt tolle Sachen dabei, da waren auch so viele interaktive Geschichten, man kann ja komplette UI-Geschichten irgendwie mitbauen, und, äh, Sachen drin, also ein Plugin ist, man kann da irgendwie Diagramme drin malen, so, weil man sich immer fragt, so, okay, wenn ich jetzt nochmal so ein Architektur-Diagramm aufmalen möchte, oder so, boah, was nehme ich denn jetzt dafür, äh, inzwischen, oft nehme ich dann irgendwie ein Online-Tool dafür, oder so, aber das geht auch alles in JupyterLab, und, ähm, ja, also das war, äh, beeindruckend, was da für Fortschritte inzwischen, äh, erzielt werden.
Und ich muss mir das unbedingt wieder angucken, habe es aber noch nicht gemacht, weil Urlaub war, äh, also das fand ich, fand ich noch ziemlich gut, und, ähm, äh, was habe ich denn noch? Oh, ich habe mir noch einen, äh, Vortrag angeguckt über, äh, äh, ein, äh, ein System, das ich mal irgendwann gebaut habe, äh, irgendwie, wo jemand, äh, da stand schon im Abstract drin, irgendwie so, ja, wir treiben hier so ein Maschinen-Learning-System seit zehn Jahren produktiv, und, äh, hier mal so, was wir alles gelernt haben, und was, äh, was alles, äh, was wir alles gelernt haben.
Und, äh, ja, das war tatsächlich etwas, was ich mal irgendwann mitgebaut hatte. Damals dachte ich so, oh je, ein Vortrag darüber, was ich alles falsch gemacht habe vor zehn Jahren. Aber war, war, nee, war sehr gut, äh, Spaß gemacht.
Und was hast du alles falsch gemacht? Siehst du da eine Kurzversion von? Also auch alles gemacht?
Ja, also was sich die Leute dann nicht mehr erklären konnten, also das war, das war auch interessant, also viele Dinge haben dann so hinterher eine andere Erklärung bekommen, weshalb das denn passiert sei, äh, aber es gab da oft irgendwie, äh,
die tatsächliche Erklärung war oft eine andere, sowas wie zum Beispiel, äh, ja, warum wurde eigentlich, äh, Disco genommen als MapReduce, äh, Implementation, ja, und, äh.
Was auch immer Disco ist.
Das war, ja, das war auch damals schon nicht so super populär, das war so irgendwie so ein, äh, äh, Projekt gewesen von Nokia Research, äh, wo die halt, äh, ja, also dieses MapReduce-Paradigma implementiert haben, und, ich meine, wir haben, wir haben damals eine Menge Sachen ausprobiert, haben dann Hadoop ausprobiert.
Ähm, und, ähm, der, äh, der Grund, warum wir dann Disco genommen haben, war, weil es das einzige Python-MapReduce-Framework war, und Hadoop war wirklich, also, äh, hätte man nehmen können, aber das war so, äh, das hat keinen Spaß gemacht.
Und eigentlich, was wir vorher hatten, äh, waren selbstentwickelte Geschichte, aber es hieß halt, nee, das bitte nicht, sondern irgendwas Externes nehmen an der Stelle, weil wir nicht, äh, nochmal Infrastruktur selber bauen wollen.
Das war der eigentliche Grund. Oder dann auch solche Sachen wie, warum wurde das eigentlich so aufgeteilt, oder, und, das, das ist, das, diese Probleme kennt man heute gar nicht mehr.
Also, das lag, ähm, also, warum macht man das überhaupt so parallel, warum macht man das nicht auf einer großen Maschine, und der Grund damals war, dass wir da noch ganz viele 32-Bit-Rechner hatten.
Und da gibt's halt dann bloß so 3-Gigabit-Hauptspeicher, und dann ist halt irgendwie Schluss.
Und dann muss man das Problem halt in kleinere Dinge aufteilen, wenn man zum Beispiel Sachen tokenisieren will, und die Liste der Tokens einfach nicht mehr in den Hauptspeicher fasst, oder so.
Erstmal so als Beispiel.
Ähm, und dann muss man das halt plötzlich dann auf mehrere Rechner verteilen, und dann halt sowas MapReduce-artiges verwenden, äh, ja, so, ja, das ist alles.
Und heute würde man das alles gar nicht mehr so machen.
Und noch ein paar RAM-Riegel reinschieben.
Einfach mal mehr RAM, ja.
Ja, aber es war auf jeden Fall tolle, tolle Geschichte, war so ein bisschen Nostalgie, hat Spaß gemacht, ja.
Das ist cool, ja, so weit würde ich auch mal kommen, dass ich auf eine Veranstaltung gehe, und irgendjemand einen Vortrag darüber hält, was ich vor 10 Jahren falsch gemacht habe.
Ja, ich, ich, das ist, äh, ja, ja, also sie bauen das System, es ist jetzt auch weg, es gibt jetzt ein neues.
Ausgenient.
Äh, ja, was, was war noch so, äh, genau, ähm, äh, dann war noch so ein Freelancer-Panel, äh, das war irgendwie, äh, ganz, ganz interessant mal da, so, da habe ich mich auch irgendwie viel zu selten mit beschäftigt, mit dem, äh, ähm, hm?
Ja, also das Freelancer-Panel wolltest du kurz erzählen.
Ja, äh, was, was eigentlich so die Rahmenbedingungen von dem, von dem, was, was ich so normalerweise halt, äh, beruflich mache, angeht, und, ähm, da.
Da waren einige sehr interessante Informationen dabei, ich weiß aber nicht, ob das...
Die haben alle gesagt, lach das ein, die haben alle gesagt, puh, mach das alle.
Ja, äh, nö, ist schon, schon nett und so, ähm, ja, ich habe auch, äh, nie so, ich habe dann auch mal einen Begriff dafür gelernt, wie das heißt, was ich mache, das heißt irgendwie Team-Augmentation.
Team-Augmentation.
Ja.
Irgendwann ist das Augment für ein Team.
Genau, man, äh, arbeitet eigentlich ganz normal in so einem Team mit, und, ähm, ja, das war mir alles gar nicht so richtig klar, und dann gibt es halt andere Dinge, die man auch machen kann, und das hat andere Probleme.
Und, äh, es war nicht, war nicht, und es gibt auch tatsächlich inzwischen so, das habe ich dann aber woanders gehört, äh, ich glaube, in einem Podcast, äh, es gibt Leute, die dann komplette Teams auch ausleihen, und nicht nur, weil das ist ja auch so ein Problem, nicht?
Ich meine, wenn du so, äh, einen Entwicklungsprozess, ähm...
Du willst aber mal verlieren, hast auf einmal ein neues Projekt, so ein Side-Projekt, hast aber gar keine Abteilung, die das irgendwie machen kann, und merkt man, hey, du hättest irgendwie noch ein neues Projekt dabei.
Genau, wie macht man das eigentlich?
Das ist schon wieder richtig ein Projektmanagement.
Ja, ja, ja, und dann gibt es halt eventuell die Möglichkeit, äh, oder das machen halt momentan...
Äh, manche Leute wohl, dass sie dann komplette Sprints, äh, irgendwie verkaufen, und dann Teams, die schon gut zusammenarbeiten, irgendwie dann vermieten.
Ja, ist ja gar nicht so blöd.
Und das ist auch eigentlich nicht so blöd, das ist schon richtig, ja.
Also vor allem, wenn die so gut einen Code schreiben, dass ja niemand anderes danach auch noch lesen kann und benutzen kann, dann...
Ja, ja, das sollte schon dann alles so best-practice-mäßig, ähm...
...ein ganz gemachtes Netz setzen und sagen, hey, cool, damit machen wir jetzt weiter.
Ja.
Ich glaube, du brauchst halt, äh, wenn du das ganz teamweise machst und, äh, sprintweise, brauchst du eine gewisse Mindestgröße, weil du bei dir ja dann trotzdem wieder die, das Trick zusammenführen musst, ja.
Ja, ja.
Also, äh, es gibt diesen alten Spruch, äh, ein Freund von mir, der ist, äh, nach dem Abi irgendwann zur IBM, äh, dass die IBMer, als sie dann in den 90ern, äh, die Informatiker nach Indien ausgelagert haben,
festgestellt haben, dass sie für zwei preiswerte Inder einen teuren Deutschen brauchen, der das alles wieder zusammenzieht.
Ja.
Ähm, da war die Einsparung nicht so riesengroß, ähm, da muss man sich wirklich Gedanken drum machen, wie das funktioniert, ja.
Ja.
Ja, aber was, welche, welche, hast du dir eigentlich irgendwelche Vorträge...
Hast du die angeguckt, oder, äh, nee, ich stand, nee, ich, ich stand auf dem Stand.
Ich hab, äh, was hatte der Speed hergegeben? André hat gesagt, wir haben, äh...
Vielleicht hat ja einer unserer Hörer verpasst, was du überhaupt machst, deswegen musst du mal erzählen, was für ein Stand das dann überhaupt war.
Ja, genau, also vom Flying Circus, ähm, und auch sagt...
Das ist ja auch irgendwas hier mit, äh...
DevOps, DevOps as a Service sozusagen.
Ja.
Ähm, im Prinzip so wie, so wie, äh, Team Augmentation, was da, ähm, äh, äh, es ist zu spät, meine Kinder haben mich tot gemacht.
Jochen.
Was da, Jochen, äh, gerade gemeint hatte, so ein bisschen Team Augmentation, sowas in der Art machen wir, äh, für DevOps-Szenarien, dass du also als Team sagst, der ganze Ops-Kram, ich will das zwar unter Kontrolle haben und wissen, ähm, aber im Prinzip kannst du das komplette Management, äh, den ganzen Betrieb der Anwendung zu uns rüberkippen, ähm, und dann hast du bei uns da so ein DevOps-Team, was man nicht sagen sollte, ähm, aber am Ende sagt man ja wieder, doch, nur ein Silo, hm.
Ja, neues Silo.
Ist ein schöneres Silo als vorher.
Also tatsächlich, wir sagen jetzt auch manchmal, dass man, äh, uns den...
äh, die Software wieder über den Zaun werfen kann, aber, ähm, wir, wir, wir klettern dann wieder über den Zaun zurück.
Ah.
Ähm, genau.
Ja, da haben wir einen Stand gehabt, ähm, um uns ein bisschen zu zeigen.
Und, äh, ich stand im Prinzip die ganze Zeit nur auf dem Stand rum und, ähm...
Warst du nicht in der Nähe von irgendeinem Hörsaal oder sowas, wo man so um die Ecke hören oder so?
Naja, man könnte, ne, die waren halt immer schön zu, damit man da, äh, auch die Ruhe hat, ähm, ich hab, ähm, aber dafür irgendwie, glaube ich, zwölf Kilo Schokolade verteilt oder so.
Ich muss ja gegettet werden.
Schokolade, ja.
Ähm, ja, die, ähm, ne, also ich war dann halt in Summe auch mehr beschäftigt mit so ein paar Metathemen, ähm, weil ich dann ja doch eher auch von der organisatorischen Seite eingebunden bin, jetzt nicht so direkt bei der PyCon.de, da werde ich dann nur manchmal gefragt, aber gerade über den Python Software Verband, ähm, da hatten wir Jahresversammlung, äh, die war ganz gut besucht eigentlich und, ähm, konnten auch neue Mitglieder gewinnen, ähm, das war eigentlich ganz spannend, weil die PyCon.de ist ja sozusagen unter der Flagge des...
äh, Python Software Verbands veranstaltet, ähm, und zum einen haben wir jetzt mal nach relativ vielen Jahren sehr kontinuierlicher Arbeit, ähm, im Vorstand nochmal ein bisschen neue Gesichter gesehen, zum einen das erste Mal, ähm, eine Frau im Vorstand, ähm, das finde ich super.
Wir haben immer noch keine Folge mit einem weiblichen Hörer oder einer weiblichen Hörerin, also falls ihr Lust habt, ähm, kommt vorbei und sagt Bescheid.
Genau, also die Theresa, äh, Yufchiu, ähm, ich weiß immer nicht ganz genau, ob ich ihren Namen richtig ausspreche, sie ist selber sehr schnell dabei, ihn auszusprechen.
Das ist ganz schwierig, ähm, also die Theresa ist jetzt mit dabei, die ist, glaube ich, in Hamburg und, ähm, die hat auch, äh, im Rahmen von dem Förderprogramm von PySV schon mehrfach, äh, mit Schülern und mit, äh, anderen Gruppen, äh, ich glaube Raspberries oder MicroPythons, äh, ähm, verbaut, genau, und der Alexander auf der Hauptorga von der PyCon.de, der hat sich jetzt auch noch, äh, bereit erklärt mitzuhelfen, ähm, wir mussten nämlich tatsächlich feststellen, dass, äh, der Python Verband in Summe mit der PyCon.de, äh,
ähm, das ist einfach inzwischen ein Riesenschlachtschiff, ähm, wir haben die letzten Jahre so ein bisschen gedacht mit, äh, das kochen wir alles mal wieder ein bisschen klein, dann läuft das alles von alleine und in Wirklichkeit, da, da gibt's nichts klein zu kochen, ähm, wir haben, wir haben irgendwann mal vor drei, vier Jahren, äh, da gestanden und gemeint, äh, die Verwaltungskosten sind sehr hoch, ähm, und, ähm, tatsächlich, äh, hatten wir gedacht, der PySV ist so ein Verband, Verein mit 10.000, 20.000 Euro Umsatz pro Jahr, äh, da, das machst du irgendwie nebenbei und wenn man aber die PyCon.de und noch zwei, drei andere Veranstaltungen, die wir drin haben, äh,
ähm, reinziehst, dann siehst du, dass, äh, die, der Python Verband jetzt in Deutschland kontinuierlich über eine halbe Million mehr Umsatz macht pro Jahr, ähm, ja, genau, und dann standen wir da und dachten so, oh, okay, da ist normalerweise eine Vollzeitstelle für die Verwaltung fällig, ähm, und, ähm, deswegen, äh, der Alex Händorf, der hat, der das eh, sehr viel Zeit in die PyCon.de steckt, der hat auch bei sich aus dem Team jetzt jemanden, dem wir vom Python Verband bezahlen, der das dann fast in Vollzeit tatsächlich machen wird, ähm, die Verwaltung vom Verband aufzuziehen.
Ähm, das wird, glaube ich, ganz gut, weil da haben wir jetzt auch gemerkt, das ist ein Thema aus der Open Source Community an sich ja, ähm, dass, ähm, ähm, Volunteer Burnout, ähm, irgendwann mal kommt, wenn du die Leute vor allem mit irgendwelchen Kram überlastest, wir haben so ein paar Sachen mit Sponsoren, wenn du bei, mit den ganz Großen jetzt halt immer im Bett bist, ähm, da hast du ja wirklich von Microsoft und Google und Ebay und sind halt irgendwie alle dabei, weil alle mit Python arbeiten, äh, und alle wollen das sponsoren und wollen Mitarbeiter werben, äh, und dann hast du aber plötzlich so ein Glück, dass es halt, äh,
das heißt, ja, bei uns im Beschaffungsprozess, ähm, folgen, füllen Sie bitte folgende 20 A4-Seiten aus, gehen Sie damit zu Ihrer Bank, lassen Sie von der bitte einen englischen Brief ausfüllen, schicken Sie es da rüber und dann müssen Sie innerhalb von sieben Tagen auf den Button drücken, sonst geht das Spiel wieder von vorne los.
Das machst du abends, wenn die Kinder im Bett sind und bevor die Frau noch was braucht.
Ja, genau, ja, ja, mit, mit so, mit sowas, ähm, ähm, unterhalten die einen, das ist halt was, das willst du eigentlich nicht auf Freiwillige abgießen, das willst du auf niemanden abgießen, aber erst recht nicht auf Freiwillige, genau, ähm, nee, insofern da, äh, der Verband, der
steht gerade echt gut da, wir sind es auch nochmal dabei, dann zu gucken, die Aufgaben zu verteilen, das war, was die Öffentlichkeitsarbeit angeht und diese Bewerbung von dem Förderprogramm, äh, dass da nochmal ein bisschen vorangeht, ja, genau, insofern da war die parkrun.de für mich alles mehr so aus dieser, äh, eher so Verwaltungsvereinsmeierei-Perspektive, aber immerhin, ich meine, es waren 1200 Besucher, äh, das ist echt gut.
Ähm, äh, erinnere, das ist diesmal deutlich, also es war halt die, äh, mit den meisten, äh, äh, ähm, meisten Publikum da und es ist kontinuierlich immer mehr geworden und jetzt ist es halt eine richtig, richtig große Veranstaltung, ne, was früher war, das alles irgendwie überschaubar und jetzt ist das echt Wahnsinn, also, ja.
Ja, also ich erinnere mich, die erste Runde, die wir hatten, die erste, in Anführungszeichen, Konferenz, die, äh, die im Palten umfällt, die war halt damals von den Soap-Leuten, ähm, die war 2001 in Bielefeld, da waren wir 24 Leute, da haben wir uns an der Uni mit dem Grill getroffen.
Und mal irgendwie zwei Tage lang uns Dinge gezeigt, das war eigentlich sehr cool, ähm, und damals gab es dann auch schon dieses Thema von, das zog dann auch ein und dann waren es statt 25 irgendwie 50, dann hast du irgendwie 100 und dann hast du irgendwie 150 und dann war es eine Zeit lang so immer so in der Größenordnung und ich erinnere mich, dass ich auf der ersten Python-Konferenz in den USA, so 2004, glaube ich, war, das waren dann damals 400 Leute oder so in der Größenordnung und die wuchsen auch immer weiter und dann waren es, glaube ich,
in Texas unten, in Dallas, waren es plötzlich 2000 und wir haben uns immer angeguckt, weil du hast halt auch alles, was die Konferenzen an Räumlichkeiten konnten, gerade was das Internet angeht, du hast immer alles gesprengt, ähm, weil die dann immer dachten, naja, von 2000 Leuten sind mal irgendwie 10% irgendwie mit ihrem, äh, Notebook unterwegs oder brauchen WLAN und du musstest denen damals mal schon klar machen mit, nee, hier kommen jetzt 2000 Leute, die haben jeder zwei Geräte.
Ja.
Genau, und da sind wir jetzt im Prinzip halt auch angekommen, ich meine, mit 1200 Leuten sind wir so groß wie die Europython, ähm, die hatten, glaube ich, auch 1200, wobei da gibt es ein paar Unstimmigkeiten wohl angeblich, was die, äh, Rechnung von Köpfen und Tickets angeht, ähm, und wir hatten vor allem 800 Leute auf der Warteliste.
Ja, Wahnsinn.
Ähm, also das, wir werden nächstes Jahr nochmal die Location wechseln, ich meine, die neuen Termine sind schon draußen, also für alle, die, äh, nochmal hinkommen wollen, es wird nächstes Jahr wieder in, ähm, Berlin sein, ähm.
Und tatsächlich die, ähm, ha, die habe ich noch, die habe ich jetzt nicht griffbereit, aber es wird wieder im Oktober sein, ähm, und es gibt schon, äh, offizielle, äh, offizielle Daten im Oktober, die Webseite gibt es gerade nicht her, aber leider nicht mehr im Kosmos, das Kosmos fand ich eigentlich sehr schön, das Personal da war auch echt angenehm, ähm, ich fand es einen guten Move, ähm, dass, äh, nur vegetarisches Essen angeboten wurde, ähm, ich finde das war auch auf der Konferenz nicht, dass man sich damit irgendwie, äh,
äh, billigen Fleisch irgendwie versorgt, und, ähm, äh, das war, also das hat mich überrascht, weil ich, zwei Wochen vorher hatte ich selber darüber nachgedacht, es wäre eigentlich mal cool, wenn das jemand mal machen würde und war dann, äh, ganz positiv ange, angetan, ähm, kam nicht bei jedem gut an, ich muss auch sagen, die haben auch handwerklich leider ein paar, äh, Stellen dann daneben gegriffen, weil es einfach nicht gut gemacht gewesen war, ähm, aber die Idee fand ich auf jeden Fall gut.
Ja, und nächstes Jahr wird es dann wohl, äh, noch eine etwas größere Location werden, ich glaube, da werden wir anderthalb.
Oder 1.600 Leute reinlassen, ähm, aber das ist im Prinzip schon mit Ansage, dass es wieder eine Wasserliste geben wird.
Mhm.
Ähm, nur wir, wir kommen halt nicht, es gibt irgendwann keine, keine größeren Locations mehr.
Ja, irgendwann ist halt Schluss, ne, es gibt noch, äh, ja, irgendwie am Alexanderplatz irgendwie, da wo auch der, der CCC-Kongress, äh, häufiger war, ne, aber das ist...
Ja, ja, warm, warm, warm.
Ähm, wir waren noch bei der Perkin.de, wir hatten ein bisschen geguckt, wie groß es wird, wo es nächstes Jahr hingeht, also es wird auf jeden Fall wieder Berlin sein.
Äh, wir werden zusehen, dass wir irgendwie mehr Leute reinlassen, weil es natürlich blöd ist, wenn wir, ähm, äh, wenn wir zu viele Leute auf die Warteliste setzen müssen.
Und du hast es gerade erzählt, dass das Essen, äh, trotzdem ist es sehr leckeres, wie es Teilhaftes geben sein soll, irgendwie ab und zu mal, äh, komisch geschmeckt haben soll.
Ja, gut, ich meine...
Ja, es, es, es gab halt vom, äh, der Anbieter hat es halt an ein paar Stellen nicht gut umgesetzt, das ist, ich glaube, am ersten Tag war das Kartoffelkarton halt nicht durch, ähm, aber das wäre bei einem, äh, Stück Fleisch genauso blöd.
Ja, und das ist natürlich auch schwierig, was so, so solche Mengen irgendwie alle gleichzeitig, äh, naja, da kann man immer mal schicken.
Ja, Catering ist ein Challenger.
Ja.
Ja, aber sie, sie versauen es auch immer wieder auf die gleiche Art und Weise.
Ja.
Ähm, nee, genau, also ansonsten, das war, ich fand es in Berlin eigentlich sehr angenehm, ähm, war, war vom Umfang her fand ich gut, ähm, ich habe halt auch bei mir so viele, viele interessante Gespräche gehabt.
Es war jetzt ja diesmal überlagert mit der Pi Data, wird es wahrscheinlich nächstes Jahr auch wieder sein.
Ähm, man merkt so ein bisschen, dass es halt, Python hat, je nach...
... Generation schon fast so ein bisschen unterschiedliche Schwerpunktthemen vor, vor zehn Jahren war Web halt immer so das treibende Thema im, ähm, im Programm.
Jetzt ist es, äh, alles was rund um Machine Learning, Data Science und so geht, ähm, und das ist so, es sind eigentlich jetzt zwei Konferenzen, die laufen jetzt aber zusammengefaltet, äh, in einer im Prinzip.
Und, ähm, aber in Summe ist es einfach so ein extrem diverses Profil.
Es ist halt nicht so, dass alle jetzt irgendwie erst A und jetzt B gemacht haben, sondern es wird halt immer mehr.
Es wird halt...
Man hat...
Es wird halt irgendwie das eine Hauptthema, was vielleicht so 60 Prozent, äh, der Themen bestimmt.
Und, aber die anderen 40 Prozent sind immer noch doppelt so groß wie das, was wir vor fünf Jahren hatten.
Ja.
Ähm, also da ist einfach die Diversität und worüber man mit Leuten reden kann schon, es ist fantastisch.
Ja.
Nee, fand ich auch.
Sehr schöne Veranstaltung.
Ja, sehr spannend.
Ja.
Also dieses Jahr versuche ich mir auch tatsächlich wieder tiefer in den Kalender reinzustreichen.
Ja.
Aber dieses Jahr, äh, da kam leider nichts mehr da rein.
Ja.
Ich meine, spannend ist ja, das ist eine...
...rein englischsprachige Konferenz ist, ähm, im deutschen Raum.
Und wir so ein bisschen der Europython den, äh, den Rang ablaufen an ein paar Stellen.
Ähm, Deutschland liegt einfach, das haben wir in Karlsruhe gemerkt und jetzt in Berlin auch wieder,
Deutschland liegt halt schön zentral.
Ähm, und, ähm, das heißt, da gibt's, ist für viele der Anfahrtsweg gut kalkulierbar,
als wenn's dann irgendwie mal in Spanien zu Schweden zu Edinburgh war's, glaub ich, auch mal.
Schweiz war jetzt dieses Jahr, glaub ich, äh, ja ganz gut.
War, und das ist Dublin angenagt, oder?
Das ist nächstes Jahr.
Nächstes Jahr?
Ja, kann sein, weiß ich nicht.
Aber diesmal, diesmal war's, glaub ich, Basel, ja.
Ja, und diesmal war's Basel.
Ich meine, Schweiz ist halt auch torres Pflaster.
Äh, das schreckt auch immer so den einen oder anderen ab.
Was war denn in Stockholm?
Keine Ahnung.
Wann war das denn?
Es gab irgendwie eine Django-Con mal irgendwo da in der...
Aber ich weiß nicht genau, wann das war.
Naja.
Äh, wie auch immer.
Ja, ähm...
Tja, was haben wir denn sonst noch an Neuigkeiten?
Ähm, ähm...
Ja, ist draußen, äh, genau.
Es gibt ein paar ganz interessante, äh, Geschichten, die dabei sind.
Ähm, ja, ist jetzt auch nicht so wahnsinnig umwerfende neue Geschichte.
Es gibt ein bisschen neue Syntaxe.
Ich weiß nicht, vielleicht fangen wir, äh, damit am besten mal an.
Es gibt den, den, den...
Walrus Operator.
Eine Assignment Expression.
Ja.
Was ist das?
Ähm, es ist eine Expression, die vorher nur ein Statement war.
Hätte sein...
Kein Anfänger.
Ja, ähm...
Also, on the fly wird etwas zugewiesen.
Ja, man kann damit Zeilen sparen.
Voll gut.
Also, man muss nicht erst was definieren, sondern man kann quasi in der Frage was definieren.
Ja, also, ein Fall, den man ganz oft hat, vielleicht ist es am einfachsten, das an dem Beispiel zu erklären, ist, dass man irgendwie sich zum Beispiel, äh, irgendein Wert auf die Frage stellt.
Ein Wert aus einem Dikt oder so holt und dann damit irgendwas macht.
Aber das eigentlich auch nur dann machen möchte, wenn es den, wenn das tatsächlich da drin ist.
Also, was man dann üblicherweise macht, ist, man macht Sache Dikt.get, äh, und dann überprüft man halt, ob das was zurückgekommen ist, ein None war oder nicht.
Und das kann man sich jetzt quasi sparen und das halt in einer Zeile hinschreiben.
Und da das relativ oft auftritt, ist das, spart es halt schon ganz ordentlich Zeilen.
Man kann halt, ja, eben, äh, sozusagen if und dann halt die Variable, die man zuweisen möchte.
Doppelpunkt gleich und dann, äh, könnte man sowas, äh.
Also, äh, keine Ahnung, Key, Doppelpunkt gleich, Dikt, Get, bla.
Ja, genau.
Dann.
Nee, Value eher nicht Key, aber, äh, genau.
Dann, äh, macht man irgendwas und in dem Fall, wenn es halt nicht drin ist, dann, äh, würde man da gar nicht reinspringen in den Block.
Ja.
Ein anderer Fall, wo man, äh, wo man es gut anwenden kann, sind halt Wildschleifen, wo du, ähm, irgendeine Arbeitsvariable belegst und du, ähm, äh, das einmal am Anfang halt, äh,
gleich zusammenfassen kannst.
Dann kannst du dann sagen, hier geht's, hier geht die nächste Runde von der Wildschleife los.
Ja.
Dann sagst du, Wild, X-Doppelpunkt gleich, äh, deine Expression und, ähm, das, äh.
Das ist ja fast wie ein Repeat-Anteil.
Ja, äh, nein.
Warum nicht?
Äh, weil es ja immer noch im Koffer ausgeführt wird.
Das wird ja immer am Anfang gemacht.
Ja, okay, also das ist tatsächlich okay.
Du hast halt für den Einstieg in die, in die Schleife hast du es dann immer noch trotzdem, ähm, äh,
äh, äh, muss es homogen sein.
Ja.
Und ansonsten, was wir auch mal bei, bei regulären Ausdrücken, ist auch oft so, dass man dann halt ein Match-Objekt zurückbekommt,
wenn es halt irgendwie gematcht hat oder ansonsten halt none.
Und das geht halt dann auch so, dass man das halt deutlich, äh, also ein bisschen einfacher entscheiden kann.
Ja.
Also, das ist für manche Fälle ganz praktisch.
Es ist halt nicht so zum Teilensparen, sondern die Lesbarkeit ist manchmal halt einfach angenehmer,
wenn du, ähm, momentan Dinge erst, erst an eine Variable binden, äh, musst, um sie dann auszuwerten.
Ähm, und aber eigentlich würdest du es vom, vom Lesefluss her gerne zusammengeschrieben haben.
In den Fällen wäre das halt was, was du gut reinlegen kannst.
Ja.
Also, alle sind begeistert vom neuen Assignment-Operator?
Nee, das kann man nicht sagen.
Nein, überhaupt nicht.
Also, hört sich das gerade bei euch an?
Ja, nee, es gibt, es gibt halt so drei, vier Fälle und ich glaube, das ist ein, das ist ein Ausdruck von, von dem deutschen Begriff für Maturity,
Live-Type von Python, ähm, es gibt so, Python ist ja in Summe vollständig.
Es gibt ja wenig Dinge, die einem so die ganze Zeit irgendwie im Weg rumstehen, dass man sagt, oh, bevor das nicht geht, kann ich Python nicht benutzen.
Das würde man ja nicht hier stehen.
Ähm, aber es gibt immer mal, beziehungsweise in dem einen oder anderen Fall, der dann doch auch in der Diskussion, in der Wars Operator war, lange diskutiert worden, glaube ich.
Hm.
Ich habe das, ich habe gerade nicht, ich weiß gerade nicht.
Die dann sagte so, nö, ich mache das mal ohne mich.
Ja.
Ähm, möglich, ja.
Ähm, und, ähm, es ist halt immer, wenn man sagt, naja, Python soll halt nachher auch gut zu lesen sein, dann ist es natürlich schön, sich über die Zeit halt auch Gedanken zu machen, ob bestimmte syntaktische Ergänzungen, äh, Sinn machen, auch wenn man sie nicht ständig braucht.
Das ist ein bisschen blöd, weil ein größerer Sprachumfang heißt komplexere Interpreter, also mehr Möglichkeiten, dass irgendwas kaputt geht, gerade jetzt in dem Fall, ähm, wird, das ist jetzt ein Feature.
Ähm, wo etwas, das vorher nur in Statements ging, jetzt auch in Expressions ging, das heißt, da müssen in Zukunft im Sprachdesign auch drauf aufgepasst werden, wenn am Scoping oder an ähnlichen Dingen was geändert wird, dass das dann halt auch in einem, äh, in einer Expression halt, äh, auseinanderfliegen kann, das muss man gut abwägen und, aber in Summe, offensichtlich hat man sich ja geeinigt und gesagt, das ist es uns wert.
Also ich finde es aber doof, wenn ich das jetzt richtig verstanden habe.
Nö, das, also ich finde es tatsächlich ganz, ganz nett, aber ich weiß auch, dass es irgendwie sehr kontrovers diskutiert wurde.
Und dass es halt Leute gibt, die das hassen.
Und, ähm, was auch irgendwie in gewisser Weise nachvollziehbar ist, also, äh, aber, ja, hm.
Wir werden wahrscheinlich irgendwann in ein paar Jahren wissen, ob das eine super Idee war oder total doof, keine Ahnung.
Ja, vielleicht schenken es jetzt wieder ganz viele Anfänger ab und so.
Nö, auch nicht.
Ich meine, die Gefahr ist tatsächlich immer, dass wenn, aber Python hat eigentlich, was die Lernkurve angeht, einen ganz angenehmen, äh, Vektor, dass Leute sozusagen zu früh auf zu spezielle Fälle sich einstellen.
Und dann meinen, sie müssen den World Operator rechts und links an allen Ecken und Enden einsetzen.
Es ist aber mehr, äh, dieses Thema, dass man halt, Python ist halt nun mal eine idiomatische Sprache.
Das heißt, es ist eine Sprache, die ist daraufhin designt, dass man sich ähnlich wie eine natürliche Sprache auch so mit ihr auseinandersetzt und bestimmte Wendungen in bestimmten Situationen halt einsetzt und in bestimmten Situationen halt nicht.
Ähm, deswegen gibt es halt, wenn man im Fernsehen ein Wort mit F sagt, dann irgendwann ein Piepsen.
Ein Piepsen.
Und in einem anderen, in einem anderen Kontext, äh, kann man das halt einsetzen.
Und das ist halt, da ist Python, äh, Raymond Hettinger sagt an der Stelle immer gerne, Python ist halt eine Sprache für Erwachsene.
Ähm, du musst halt wissen, was du tust.
Und, ähm, so ist es auch mit allen professionellen Werkzeugen oder auch mit Power Tools.
Klar kannst du dir halt in den Finger bohren.
Deswegen solltest du halt wissen, was du tust.
Die Bohrmaschine bitte nicht anfassen.
Ja, genau.
Nicht direkt auf die Hand zählen.
Vielleicht auch bei anderen, die sich die Organe auslösen.
Ja, ja, genau.
Selber versuchen auf der Maschine.
Das ist ein, ein Punkt, da, da kommen wir nachher vielleicht ganz zum Schluss, wenn wir unser Rattenloch-Thema, äh, finden.
Ähm, ist tatsächlich ein Aspekt, mit dem ich halt in letzter Zeit öfter mal gehadert hatte, weil ich hab ne, äh, nen Anwendungsfall, wo ich ständig, ähm, etwas, ähm, sowohl verwenden, als auch zuweisen möchte.
Und, äh, das ist halt, das ist halt schwierig.
Ja, jetzt geht's.
Ähm, und, äh, insofern.
Ich hab nen, ganz persönlich eben nen Anwendungsfall, wo ich sag, da, da wird's dann interessant werden.
Ähm, ich hab eher das Thema, dass, bevor ich halt sagen kann, in meiner Library unterstütze ich halt alles nur noch abhaltend 3-8-Aufwärts.
Ähm, das wird halt noch ne Weile sein.
Ich bin halt mehr in der Spanne 3-5 bis 3-8 halt momentan.
Aber das ist zumindest halt am Horizont erkennbar, ja.
Ja, okay.
Ja, also, mit 3-8-Werden wir das mal weitermachen wollen?
Ja, genau.
Ähm, also, was ich, äh, wo ich doof gestolpert bin, es gibt nen blöden Bug jetzt mit Jupiter, und zwar, ähm,
fliegt das unter Windows einem um die Ohren, wenn man, ähm, versucht so einen Notebook aufzumachen.
Oh.
Geht einfach aus bei 3-8-0.
Das ist natürlich, ähm, war nicht so toll.
Aber es gibt nen Fix.
Äh, man kann nämlich einfach, äh, in Tornado, äh, was da, äh, wie, quer schießt,
Asung.io anpassen.
Also, das ist unter Tornado-Platform Asung.io, irgendwie in deren Zeit-Packages drin.
Und kann da einen kleinen Codeschimpel eintragen, Import Asung.io, und dann den Event-Loop-Policy ansetzen auf, ja, den Windows-Sektor-Event-Loop.
Mhm.
Und dann geht's wieder.
Das ist ein bisschen hakelig, aber...
Ja, ich hab gehört, das soll irgendwann gefixt werden in 3-8-1 oder so.
Mhm.
Ähm, ja, nur für alle, die vielleicht drüber gestolpert sind und sich gewundert haben, was, äh, warum das nicht geht.
Ja, das ist natürlich schon so ein bisschen bitter, wenn das dann nicht alle Notebooks auf...
Oh ja, na gut, wer benutzt denn Jupyter-Notebooks auf Windows, das ist...
Ja, vielleicht...
Ja, nein, ich glaube, das ist tatsächlich bei einigen Menschen, um die Ahnung zu bringen, ja.
Ist der Trigger gewesen, weil die Default-Policy geändert wurde fürs Asung.io und Windows, oder...
Möglicherweise.
Ich hab keine Ahnung über den Grund, muss ich ehrlich gestehen.
Ich hab einfach nur diesen Fix gefunden und gedacht, okay, ich probier's mal aus und dann, äh...
...ging's tatsächlich wieder.
Also irgendwas war da mit Asung.io kaputt.
Ich weiß nicht, die haben, glaube ich, bei 3.8 auch was mit Asung.io verändert bei dem Verhalten.
Und da kann es gut sein, dass da irgendwas geändert worden ist.
Also ich meine auch im Kopf zu haben, dass über dieses Thema, äh, welche Loops, äh, wo Default sind, dass da was passiert ist, kann halt sein.
Dass da jetzt irgendwie, ja, mhm.
Ja, ist was kaputt gegangen und das ging dann nicht mehr und dann, ja.
Ja.
Bin gespannt.
Das hat ein bisschen Gehäude, äh, verursacht irgendwie online und...
...ist auch noch nicht wirklich umgestiegen, weil halt viele der Data-Science-Geschichten, äh, noch nicht, äh, also ich, äh, ja, könnte gar nicht wirklich umsteigen, weil eben, wenn so lange sowas wie OpenCV und, und, und solche Sachen noch nicht wirklich...
...also ich glaube, heute ist, äh, Pandas in Conda, äh, Conda Forge, äh, äh, oder auch schon in der offiziellen Conda, äh, an der Conda-Distribution mit drin, äh, irgendwie für Python 3.8, aber es gibt halt noch jede Menge Pakete, die noch nicht gebaut...
...aber, äh, manche Sachen brauchen halt auch so ein bisschen mehr Aufwand und, ähm, ja, daher hänge ich da immer so ein bisschen hinterher hinter den aktuellsten, äh, Python-Versionen.
Das fand ich auch spannend, da hattest du dem Thema nämlich auch hinweg, äh, nen 1-2-3-Tweets losgelassen, ähm, zum Thema Wheelbuilding, ähm, auf, äh, 3.8, dass er halt jetzt so lange die ganzen, ähm, also hinweg, äh, ist ja in der Community auch relativ gut bekannt, so um das ganze Security...
...packaging, da ist er relativ aktiv und schreibt Blogposts und macht immer gute Vorträge und, ähm, ihm ist halt auch aufgefallen, dass jetzt halt wieder so eine Phase einsetzt von die ganzen Wheels sind alle noch nicht gebaut und er hat sich in seinen Deployments stark darauf verlassen, dass seine, äh, Build-Times im Prinzip relativ schlank sind, weil er halt überall Wheels einsammeln kann und jetzt geht's halt, geht halt überall die Compiler-Orgien los und du hast irgendwie eine Verzehn-, Zwanzigfachung, äh, deiner Compile-Time, ähm, da war er dann auch nicht so happy in der Kombination mit, dass die...
...Release-Kadenz ja dann noch angepasst wird, wurde, ist...
...es sind noch...
...31 plus 30 plus 26 sind noch 57 Tage.
...und dann ist es rum aus vorbei mit Preis von 2,7.
Tja, eigentlich wäre es jetzt allmählich mal so an der Zeit, die Landing-Pages hochzufahren und AdWords zu buchen auf der...
...Konsulting für, äh, äh, Y2K, nee, warte, ähm, Python2K...
...der Streitumstellung, ja.
Ja, die haben sehr viel...
...Schum, ähm, die, ähm, da kannst du in zwei Jahren separate Consulting-Aufträge draus machen.
Na gut.
Ich meine, was tatsächlich interessant ist, aber die Aussage von Python, von der Python Software Foundation ist ja auch, ähm, wenn du von deinem Vendor im Stich gelassen bist, dann such dir halt Consultants, hier gibt's Leute, die, äh, offerieren dir auch danach noch Support für Python 2.
Ja.
Ähm, es ist halt nur die ganz, die, eben die Aussage mit, also kostenlosen Support von den Kernentwicklern, da ist jetzt mal endlich der Zoff abgestimmt.
Die, die kümmern sich um ausreichend Dinge, die müssen sich nicht auch noch umveraltet spalten.
Legacy Stuff.
Ja, ja, ja, also die haben sich wirklich lange, die haben jetzt wirklich zehn Jahre, noch länger, ähm, ich, ich weiß es grad nicht.
Und, also, da gibt's Consultants, die da auch beworben werden, tatsächlich, von der PSF, ähm, ja, und die pflegen immer eine Liste.
Also, Jochen, wenn du da noch...
Ja, ich weiß...
Noch Kapazitäten frei?
Kannst du dich jetzt fragen.
Ja.
Ähm, ich meine, ich hab selber, ich hab selber grad mein, äh, mein eines großes Projekt, ähm, mal noch schnell...
...just in time auf, äh, Python 3 umgestellt, ähm, war wirklich auch erstaunt, ob der, ähm, in Summe Geschmeidigkeit, also ich meine, die, die, seit zehn Jahren die Aussage ist, schreib halt Tests für deine Sachen, äh, dann kannst du halt nämlich danach gucken, ob die Tests wieder gehen, und, ähm, also ich bin, glaube ich, jetzt bei einem Projekt, was relativ komplex ist, und, ich weiß nicht, waren es 6.000 Zeilen, 6.000 Zeilen, war ich in der Umsetzung mit, glaube ich, zehn Stunden Arbeit in Summe dabei, und dann, dann waren die Tests alle fertig.
...und das tat erstmal sinnvolle Dinge, ähm, und tatsächlich, das, äh, 2-to-3-Tool hatten wir extrem viel weggefuttert, das hat gut funktioniert, und, ähm, wenn man viel I.O. macht, muss man halt eine Weile lang am Unicode rumschrauben, und dann, dann geht's halt, ja.
Nee, war ich jetzt über, war, war eigentlich überrascht, äh, dass das doch ziemlich geschmeidig ging, hatte ich irgendwie mit mehr Knöchel gerechnet.
Ich hab letztens, äh, hatten wir eine schöne Diskussion dafür im Channel, äh, was der Weihnachtsschnitt gegangen ist, und zwar haben sie das Rundungsverfahren geändert, und dann...
...den kaufmännischen Runden irgendwie auf einmal anders, und da war auch die Frage, was dann Pi-2-3-2-2-3 macht, an der Stelle, das wusste ich auch nicht.
Ja, wenn das wichtig für dich ist, dann kannst du dir das zum Glück anpassen.
Ja, aber das war tatsächlich spannend.
Ja, ja.
Ja, 2-to-3 ist ja pluggable mit den Fixern, die da drinnen sind, ähm, also wenn man, wenn man selber wirklich eine große Code-Basis noch haben sollte, die man noch nicht mal angefasst hat, ähm, aber dann ist man, glaube ich, auch nicht derjenige, der das macht.
Der, äh, Custom-Fixer schreibt.
Ja.
Ja, da, ähm...
Ja, da hat man sich wahrscheinlich dann schon länger nicht mehr so wirklich dafür interessiert, wie das da weitergeht, irgendwie alles.
Ja, ja, ja.
Ja.
Ja, aber es ist jetzt auch mal, ich bin mal gespannt, wie viel, äh, Schmerzen das verursachen wird. Ich meine, es gibt ja auch dann größere Institutionen, die dann noch, äh, Support anbieten.
Ich glaube, äh, Red Hat hat auch irgendwie gesagt, dass sie das, dass sie, äh, einen Python-2-Fork, äh, weiter maintainen wollen, oder so.
Oh, sehr gut.
Ich bin umgeforgt, dann haben wir doch alle die neuen Forks, oder?
Ja.
Dann kann ich, dann kann ich auch in fünf Jahren nach einem Python-2-7 auf einen 3-6er-Körnel fahren.
Ja.
Software-Archäologie.
Ja, genau.
Lebende Archäologie.
Ja.
Sehr schön.
Ähm, genau, ja, das war...
Was kommt eigentlich nach Python-3-8 und 3-9? Kommt dann 3-10 oder kommt dann 4?
3-10.
Oh.
Ich glaube, dass...
Also, außer sie, außer sie ziehen das Argument.
Wie, wie Linus, der sagt, ähm, Versionsnummern haben in dieser Hinsicht für mich keine Bedeutung und, äh, ich mache ab irgendeinem Cut, äh, einfach.
Aber, also, die, die zweite Stelle kann ja auch zweistellig werden, das ist ja nicht das Thema.
Ja.
Und jetzt, wo man die Leute schon mit, ähm, von 2 zu 3 so erschreckt hat, äh, vielleicht wartet man da jetzt noch ein bisschen.
Ja, ich glaube, das wäre, mag ich ja, frag ich mich nicht, wäre das ein Selbstmord.
Äh.
Ich meine, was bei 3-8 noch dazu kam, das ist noch ganz interessant, aber auch wieder so eine Kleinigkeit ähnlich wie beim...
...Boris Operator sind die, äh, Positional Only Arguments.
Oh ja, genau, ja.
Ähm, bisher kann ich ja, ähm, in dieser Kombination aus Argumenten, die ich, äh, in einer bestimmten Reihenfolge ohne Namen oder mit Namen in einer beliebigen Reihenfolge und unbenahmt nach Reihenfolge und benahmt ohne Vorankündigung in diesen ganzen dynamischen Varianten, äh, zu wissen kann, kann ich momentan nicht verhindern, ähm,
ähm, dass jemand mir ein Positionsargument halt auch mit Namen angibt und das gibt es jetzt tatsächlich als neues Ding, ähm, dass man, ähm, markieren kann, dass Argumente wirklich nur positional übergeben werden dürfen, ähm, wobei ich tatsächlich auch zugeben muss, zum einen, da ist mir tatsächlich der, der Syntaxanteil eher zum Abgewöhnen.
Ja, also warum macht man das? Also was gibt es da für einen Grund für?
Den habe ich tatsächlich gerade auch nicht begreifbar.
Ich weiß es nicht so genau. Ich habe mal, äh, das war, ich habe, ähm, eben auf der, auf der PyCon war halt auch ein...
Äh, äh, Talk, äh, über diese Änderungen und da hat jemand ein Beispiel gebracht irgendwie mit Potenzieren, dass das da irgendwie einen Böse beißen kann oder ich kriege es jetzt, glaube ich, auch nicht so wirklich auf die Reihe, was da das Problem war, aber im Grunde ist halt das, äh, das Blöde, dass, ähm, äh, ja, wenn du halt nicht so richtig erwartest, dass wenn du, äh, irgendwie ein Keyword-Argument, äh, halt übergibst, dass das dann halt als Positionsargument, äh, auch reinkommen kann und dann sozusagen vielleicht einfach, äh, äh,
äh, Dinge in der falschen, im falschen Hals irgendwie in der Position landen, ne?
Ähm, ja, was, was passiert, was passieren kann, ist, wenn du ein, äh, ich, da weiß ich aber auch nicht, was momentan der Effekt wäre, aber du kannst solche Sachen bauen, wenn du zum Beispiel halt durch, ähm, äh, Sternstern, durch Stern und Sternstern Dicts übergibst und in dem Dict ist etwas drin, was eigentlich ein Positionsargument wäre, dann könntest du das damit ersetzen.
Das heißt, wenn es, äh, zwei, ja, aber, ja, aber da, da würde sich eigentlich peinlich...
...gegen wehren, wenn du ein Positionsargument namens A per Position übergibst und dann im Dict nochmal ein A mit drin stehen hast als Sternstern-Keyword-Argument, ähm, das, das, da würde sich eigentlich schon gegen wehren und sagen, das geht so nicht, ähm, aber für mich ist es ein bisschen so ein Ding ähnlich wie du bei Command-Line-Tools, äh, häufig, wenn du hintergelagerte Prozesse starten möchtest, so Start-Stop-Dämmen-mäßig, und du willst an den auch noch Argumente übergeben,
dann hast du mal...
...einmal auf der Command-Line so ein Doppel-Minus, äh, um zu sagen, so hier ist jetzt mal das, hier ist das Ende von, von den Argumenten, die ich kriege und hier gehen die Argumente los, die in der nächsten, äh, äh, an den nächsten weitergegeben werden, äh, damit die Parse auch nicht durcheinander kommen und so in dieser Kategorie ist das für mich halt auch angesiedelt, nur diese syntaktische Auswahl, dass du dann halt neben den bisher schon Sternchen, äh, in Funktion, in der Funktionsdegradation jetzt noch einen Slash als bedeutungstragendes Element hast, ich weiß gar nicht, ob der Dopp, ist der Doppelslash auch belegt für...
...für die Keyword-Arguments oder sowas, ne, ne?
Ne, ich war nicht nur der Slash, ja.
Aber, aber, das sieht ex... also, das, das, meine Ästhetik ist, äh, arg verletzt, ja.
Ja, und wenn man, wenn man halt nicht weiß, dass das nicht spielt, ich meine, es ist sowieso, denke ich, für, für Leute, die damit anfangen, also die Stern- und Doppelstern-Geschichten sind schon so, hui, was passiert hier für magische Sachen, und jetzt aber der Slash ist auch nochmal, da kann ich, kann ich auch mir gut vorstellen, dass da Leute ein bisschen verwirrt werden, aber, naja, ich meine, die meisten Leute werden das ja auch nie zu sehen,
kriegen, also das ist halt etwas, was man halt dann macht, wenn, äh, wenn man muss, aber ansonsten, ähm, ja.
Ja, das ist, äh, das ist auf jeden Fall auch eine interessante Geschichte, äh, genau, dann, äh...
Das nächste Ding für Python 3.8.
Bitte?
Das nächste Ding für Python 3.8.
Ja, Python 3.8.
Wir brauchen eine Chapter-Mark.
Ja, äh, ich, äh, das muss ich mir so mal, ich glaube, ich habe es sowieso verpeilt, ich weiß nicht, Reaper, äh, äh, macht die Chapter-Marks manchmal an den Anfang, wenn man das irgendwie falsch einspricht.
Warum haben wir eigentlich noch keinen Button, den wir irgendwie mit dem Raspberry-Store...
Genau, ja, ja, ja, ich habe das auch mal vor.
Äh, genau, muss ich mal irgendwie, äh, äh, muss ich mich bestätigen, vielleicht ist ja jetzt irgendwie im Jahreswechsel...
Vielleicht müssen wir einen Buzzer kaufen und dann gucken wir mal so ein Interface oder...
Ja.
Gibt es eigentlich eine API für Reaper? Entschuldigung, knallt es auf.
Ja, ja, ja, man kann da solche Dinge reinhängen, das ist, äh, das ist tatsächlich alles möglich.
Ja.
Ja, ähm, äh, genau, nee, äh, schöne, schöne Geschichte, also ich finde das total toll, ich weiß nicht, ob andere Leute das auch, äh, auch gut finden, äh, aber für Multiprozessing gibt es jetzt so Shared-Memory-Geschichten automatisch.
Also, ähm, wenn man...
Ähm, ähm, so Arbeit verteilen möchte auf mehrere, äh, äh, Prozesse, was man manchmal muss, wenn man zum Beispiel, äh, äh, ja, auch, äh, irgendwie CPU-Power haben möchte, dann geht das ja wegen GIL im Global Interpreter-Log nicht so wirklich mit Threads und, ähm, dann startet man halt mehrere Prozesse, das ist halt die Lösung dafür, dann hat man aber das Problem, dass man, wenn man jetzt, äh, eine Funktion sozusagen, also eine Funktion mit unterschiedlichen Parametern in fünf unterschiedlichen Prozessen ausgeführt haben möchte, dass man irgendwie diese Parameter, die man der Funktion übergeben kann,
irgendwie in diese Prozesse reinbekommen, äh, äh, muss und da kann man natürlich, äh, einfach irgendwie die Sachen pickeln oder das funktioniert auch, äh, ich glaube, sie werden auch per Default gepickelt, ähm, aber wenn man jetzt, äh, irgendwie was übergibt, zum Beispiel halt auch gerade bei so Data Science-Geschichten, irgendwie große NumPy-Arrays oder so, die halt so groß sind, dass ich die nicht fünfmal in den Hauptspeicher packen kann, dann habe ich halt ein Problem, weil, äh, geht halt einfach nicht mehr.
Und, ähm, das, äh, äh, was man dann machen konnte, ist aber eine ganz schöne Fummelei, äh, ist, man macht halt einfach, äh, ein Shared-Memory-Segment, was halt alle irgendwie auf das halt alle Prozesse zugreifen und, ähm, also man kann dann so Dinge machen, wenn man nimmt halt, äh, äh, irgendwie Struct, äh, das in der Standardbibliothek, das Modul und baut sich dann halt so eine binäre Datenstruktur zusammen in ein Shared-Memory-Segment und dann lädt man das in den Prozessen halt irgendwie, äh, greift man darauf zu und dann hat man halt
auch sozusagen die Daten übergeben, ohne dass man da, äh, irgendwie, ähm, das kippeln muss.
Du musst halt quasi selber klären, dann musst du wieder so...
Aber das ist halt schon, äh, ja, ich würde mal sagen, dass die meisten Leute, äh, das ist schon auch ganz schön wild und würden das nicht so machen wollen und jetzt gibt's halt eine Geschichte, die halt automatisch drin ist und man muss sich selber nicht drum kümmern und, äh, wenn man die Daten, wenn man alle Prozesse, die man aufruft, die gleichen Daten verwenden sollen, dann kann man sagen, so, hier in diesem Shared-Memory-Segment ist das drin und dann kriegen die das und das ist natürlich schon ziemlich cool.
Ja.
Ähm, hm.
Einen hab ich noch, ähm, es gibt noch ein kleines Ding, das, äh, war vielleicht der, der meisten nicht aufgefallen, es gab noch, ähm, einen, eigentlich war's ein Bug, aber, ähm, hat jetzt eine Weile gedauert und zwar Unpacking, also wenn ich, äh, Listen-Elemente, ähm, an einen, ähm, an einen Wert, äh, an, antackern möchte,
also ich hab hier, äh,
ich kann zum Beispiel ein Tupel haben, da sind irgendwie die Zahlen 4, 5, 6 drin und wenn ich das jetzt einem, ähm, neues Tupel zuweisen möchte, kann ich dann wieder sagen, T ist gleich 1, 2, 3 Sternen, mein bestehendes Tupel, um die dann halt schön zu vermischen, das konnte man bisher, ähm, machen, aber das konnte man nicht benutzen, wenn man eine Expression hatte, die an einen Return oder an einen Yield ging.
So, äh, sehr seltenes Ding, aber das ist gerade, wenn man so, ähm, funktionale Sachen hat, Generatoren und so'n Zeug, ähm, wo man irgendwas dynamisch ausgerechnet ist, mit was Statischem verknüpfen möchte, ähm, dann sind diese Unpackings manchmal sehr, sehr angenehm und die musste man momentan immer über mehrere Zahlen verteilen jetzt.
So ein bisschen, das wird auch dargestellt als, eigentlich war's irgendwie ein unintentional Behavior seit Patent 3.2 und, ähm, jetzt ist es nicht mehr, also noch eine Packung zu geben, äh, genau.
Ja, äh, oh, ähm, ja, ich weiß nicht, aber ansonsten...
Habt ihr noch was vergessen, Python 3.8?
Ich, äh, es gibt noch die Audithooks, äh, irgendwie...
Ja, was ist das denn?
Ja, du kann, ähm...
Was ist ein Audit? Fangen wir doch erstmal so an. Also von Python jetzt.
Mhm. Du kannst halt dich irgendwo reinklingen und dann Notifizierungen kriegen, wenn so bestimmte Sachen passieren. Aber, äh, das ist jetzt natürlich so ein bisschen zu allgemein, ich weiß nicht genau, äh...
Ein Giebergeist.
Ja, über die Python-Runtime bauen, ne? Hört sich komisch an.
Ja, ähm...
Ich hab's ja tatsächlich auch noch nicht angeguckt, ähm, aber, ähm, es kann sein, dass etwas, was ich schon eine Weile haben wollte, ähm, das Spannende ist, die Hooks können nämlich zum einen halt von außen reingegeben werden, dass ich die, ähm, wenn ich jemandem eine Python-Runtime zur Verfügung stelle, so als Hosting-Provider, ähm, oder als Plattform-Provider, kann es interessant sein, dass ich die forcieren kann.
Und, also ein Thema, und da ist nämlich letztens der Bug, den ich vor 14 Jahren eingesteuert hab, mir zugemacht worden mit, das geht jetzt irgendwie anders, und da muss ich mal reinschauen, war, ähm, dass Python zum Beispiel, wenn ihm der Speicher ausgeht, kriegst du, kriegt dein Python-Programm halt einen, äh, Memory-Error, ähm, dass er keinen Speicher mehr alle zitieren kann, und dann kannst du sozusagen nochmal versuchen, sinnvolle Dinge zu tun.
Und das Problem ist, ähm, es gibt einige Programme, gerade so Server.
Die laufen, ähm, und haben, und der Memory-Error ist halt keine System-Exception, sondern es ist halt eine Exception, das heißt, die wird von einem normalen Try-Accept, äh, auf Exception auch abgefangen, ähm, und wenn du halt einen Server hast und deine Anwendung, äh, läuft in Speicher-Probleme, äh, das klingt lustig, ja, dann kriegt der Main-Loop halt für den, keine Ahnung, für die HTTP-Anfrage, was auch immer, kriegt der Main-Loop halt dann einmal einen Memory-Error, äh,
äh,
und wirft einen 500er-Fehler dem Client gegenüber und nimmt die nächste Anfrage entgegen, und, ähm, wenn sich aber ein Programm halt dermaßen in die Ecke manövriert hat, die räumen ja normalerweise nicht ordentlich in sich auf, und da wäre es mir lieber, wenn ich halt von außen eben, äh, so, sowas beobachten könnte und sagen kann, hey, in dem Fall mach bitte, mach den Python einfach, äh, den Prozess einfach aus, lass ihn neu starten von Supervisor, System D oder wem auch immer, ähm, weil besser wird's nicht mehr, ähm, also da haben wir halt...
Nee, einfach nur, wenn der Sprecher halt voll ist, ähm, das, das kommt halt auch bei den, auch bei größeren Kisten halt mal vor, bei Java ist das immer noch ein bisschen härter, da gibt's ein ähnliches Problem mit diesen, äh, wie, wie der Heap alloziiert wird, und, ähm, die, äh, bei Python ist es halt so, das brauchst du nicht konfigurieren, aber wenn er oben am Limit anschlägt, dann hast du so ein halbgares Programm, das reagiert meistens halt in irgendwelchen Health-Checks auch gerade noch so von, ich bin einsatzfähig, aber wenn's irgendwas Sinnvolles tun soll, fliegt's halt ständig auf die Nase, ähm,
ähm, da haben wir halt auch, ähm,
da haben wir uns lange mit rumgeschlagen, ähm,
und da kam jetzt irgendwie die Info mit,
hey, das könnt ihr jetzt irgendwie von außen steuern,
ähm, aber ich glaub, das sind nicht die Audit-Hooks,
das ist irgendwas in der Nähe noch, ja.
Ja, ich, ich weiß nicht,
also man kann hier, also ich hab
hier auch grad noch in den, äh,
Papp geguckt, was man da, also man kann
in sehr vielen Stellen sozusagen
sich, äh, so ein, so ein
Hook setzen, wo man dann sagt, okay, äh, wenn, wenn
das passiert, dann möchte ich benachrichtigt werden und dann irgendwie
drauf reagieren, und das,
ähm, ja, aber ich
hab's mir ehrlich gesagt auch noch nicht so genau gemacht.
Direkt E-Mail an den Admin.
Ja.
Tja, äh, genau, ansonsten, ich weiß nicht
so genau, haben wir noch irgendwas
in 3.8, was, äh,
irgendwie interessant wäre?
Na? I don't know.
Nö, ich glaub, also,
nee, beim drüberfliegen waren das jetzt so die Sachen, die ich mir
rausgesucht hatte, ja.
Ja gut, dann können wir die Liste auch wieder
abhaken. Genau, so, ja.
Python 3.8 irgendwie durch,
ähm, ja, ähm,
dann hat man noch
den Core Sprint.
Oh ja, du wolltest noch was erzählen von einem Core Sprint.
Erstmal vielleicht kurz, äh, was ist ein Core Sprint?
Also geht's um die, die Core-Developer sind das
eigentliche große, die Gurus,
ne, von Python, die Entwicklerteams, die am Kern
der Sprache arbeiten, ist das richtig?
Ja, genau, und, ähm,
also typischerweise, äh, die nutzen
halt schon auch die Gelegenheit, äh, wenn sie können,
dass sie sich mal treffen, und, ähm,
diesmal war's jetzt vom,
das ist jetzt vier Wochen her, 9. bis 13. September,
äh, schon auch relativ
lang, fünf Tage, vier Tage,
äh, haben sich 34 Leute getroffen,
große Gruppe, äh, viele Langzeit-Leute,
aber das Kernteam hat sich auch in den letzten
Jahren, äh, extrem gut diversifiziert,
ähm, also viele
Leute auch aus unterschiedlichen Ländern,
unterschiedlichen Hintergründen, das ist, ähm,
eigentlich gut gewesen, und, ähm, die haben einen Haufen
Pull-Requests verarbeitet, 120 Stück
haben sie, äh, gesagt,
und da wurde dann auch der
Python 3.9 Release Schedule und jetzt die
neue Zwölf-Monats-Kadenz, äh, beschlossen,
mhm, und, ähm,
da machen sie auch viele
mal eine Infrastruktur, also der Bug-Tracker
wird nochmal angeguckt und, ähm,
äh, solche Dinge, ähm,
und ein, zwei
Sachen, die sind mir aber dann konkret nochmal
genauer aufgefallen, das eine ist, äh,
es wird mal wieder am Grill rumgedoktert,
mhm, ähm,
das, ich weiß nicht, ob wir den im, im
Cast schon hatten,
so ein bisschen, ja, ja,
kurz anreichen für alle Menschen, die
das als erstes hören oder so,
äh, das ist der Global Interpreter Lock, äh,
und das ist halt, um, äh,
äh, zu verhindern, dass nicht-synchronisierte
Datenstrukturen auf C-Ebene, äh,
sich auf den Füßen rumdrehen, treten, und das ist
der Grund, warum halt der, äh,
immer nur ein Statement, äh,
äh, verarbeitet werden kann gleichzeitig,
ähm, und ich mit Multithreading
in Python halt auch immer nur eine
CPU auslasten kann.
Und, ähm, Jochen hatte jetzt
gerade schon gesagt, dass es ja jetzt, äh,
besseres Shared Memory Management auf der einen Seite
gibt, ähm, und das, äh,
äh, ist mir nämlich dann beim Durchgucken
von dem, äh, Sprint auch aufgefallen,
das scheint noch in, die Arbeit scheint
noch in eine andere Richtung zu gehen, äh,
nämlich, dass man, um, um den
Gildung rumzugehen, äh,
mehrere Python-Interpreter in
einer, äh, in einem C-Prozess
haben kann.
Und bisher, das ging bisher
auch schon, der Interpreter war, äh,
selber ein Objekt, was man, äh,
ich weiß gar nicht, ob man es, ob man tatsächlich
mehrere Interpreter starten konnte,
äh, die Ecke fasse ich einfach zu selten
an, ähm, aber
auf jeden Fall arbeiten sie jetzt dran, dass
es so umgearbeitet wird,
dass mehrere Interpreter im Prozess
jeder seinen eigenen Global Interpreter
lockt kriegt. Und ich meine, das ist
von der Arbeit her
relativ logisch, was da zu tun
ist. Es ist ein C-Programm, da gibt's
halt, wenn man nicht aufpasst, globalen Scope,
äh, globale Variablen,
und die müssen sie jetzt im Prinzip einmal komplett
alle wegputzen, dass alle Daten, die irgendwas
mit dem Interpreter zu tun haben, ähm,
nicht im, äh, nicht
globale Variablen sind, sondern dass die alle an
eine, äh, Interpreterinstanz dran getackert
werden. Äh, und dann haben wir
nämlich tatsächlich die Chance, äh,
Python-Code in einem Prozess
über mehrere Threads
parallel auszuführen. Und wenn man dann nämlich wieder
das, die Techniken ins Spiel bringt,
zum Thema, äh, äh, Shared Memory,
dann geht das
vielleicht sogar tatsächlich auch ganz gut leichtgewichtig.
Und das klingt
jetzt nach so einem ganz interessanten
Kunstgriff, anstatt den Inter-,
den Gil loszuwerden oder
den Interpreter an der Stelle da weiter aufzubohren,
einfach zu sagen, komm, dann, äh,
mehrere Interpreter parallel, äh,
wir dröseln die Datenstrukturen so auf,
und dann kann halt, äh, jeder Interpreter
in unterschiedlichen Prozessen, äh, Threads
laufen, und siehe da, wir sind
in der Lage, mit einem Prozess mehr CPUs
auszulasten. Also das wär, das wär tatsächlich
nochmal, find ich, ein interessanter Ansatz.
Ja, ne, das klingt, äh,
klingt tatsächlich sehr interessant. Ja, gerade wo jetzt
die Kerne so mehr zunehmen, ne, irgendwie in der Zukunft.
Jaja, das ist natürlich auch so ein, äh, ja,
so ein Dauerthema,
wobei, ich meine, die, die, die Fälle, wo man
das wirklich, wirklich braucht, sind auch eher
so, äh, äh, beschränkt,
äh, würd ich mal sagen, weil die meisten Leute ja nicht,
äh, also, ich mein, dass man CPU
und, also, dass man I.O. multiplexen
will, äh, irgendwie, das kommt schon
häufig vor, aber dass man das gleichzeitig
mit viel CPU-Verbrauch macht, ist, äh,
also wenn ich grad einen Datenbank-Server schreibt
oder so, ähm, würd ich jetzt
sagen, gar nicht so super häufig.
Ähm. Ne, du willst ja immer eigentlich auch
über mehr Prozesse skalieren können.
Ja, klar, natürlich, ähm, ja,
ähm, äh, genau, ich glaub, der, der
Grund, warum das mit dem, mit dem GIL halt so
ein Problem ist, auch da irgendwie das, wie, wie
Python den Hauptspeicher, äh,
verwaltet, äh, ist da, ist da so ein riesen
Problem, weil das Reference-Counting,
man müsste das alles irgendwie locken
eigentlich, also, ich hab, das ist jetzt auch so,
was ich mal darüber gehört hab,
aber, äh, schon wieder ein bisschen her,
ähm, äh, und das kann man
natürlich machen, man kann irgendwie
vor jeder Operation, die man irgendwie beim
Reference-Counting macht, äh, sagen, okay,
äh, wir locken das jetzt hier,
oder da halt irgendwie, ähm,
äh, ähm,
äh, äh, ja,
sozusagen den, den, den Zugriff dann exklusiv
machen, damit sich da irgendwie nichts, äh,
äh, überschreibt, aber
dann wird halt, äh, wenn man das
einfach so macht, glaub ich, wird das, wird Python
40 Mal so langsam.
Und dann haben irgendwelche Leute sehr unheilige Dinge
getan und rumgetrickst und haben es auf Faktor
20 irgendwie runtergekriegt oder so,
wovon schon niemand geglaubt hat, dass das möglich wäre.
Und, äh,
äh, aber das ist halt so das Problem,
man kann es halt nicht, äh,
also, mit der Art, wie das
Haupt-, wie das Speichermanagement, also mit
Reference-Counting funktioniert, ähm,
geht das halt wohl nicht gut und, äh,
ja, die einzige gute Möglichkeit, also
wie es halt weiterhin schnell bleiben kann, ist,
dass man sagt, nee, es gibt nur einen,
äh, einen Thread, der halt
irgendwie daran Dinge am Reference-Counting
ändern kann. Ja, und dafür braucht man halt
den Gil irgendwie, aber ja,
also das mit den mehreren Interpretern, das klingt auch sehr
interessant, also da bin ich mal, äh, bin ich mal gespannt,
weil, äh, das ist ja auch mal so ein
Standard-Argument, äh, was an Python halt
nicht so, nicht so toll ist gegenüber anderen
und, ähm, ja.
Was aber auch für den, für den Alltag
real kein Problem ist.
Nicht wirklich, nein.
Also, ja. Und das ist ja auch das,
gerade das Tooling über Multiprocessing ist
halt inzwischen extrem geschmeidig geworden,
sowohl, also auf der einen Seite halt für I.O.,
Multiplexing ist Async I.O.
extrem angenehm geworden und, ähm,
mit Multiprocessing und so
Prozesse stoppen, ähm, dass das
tut meistens, äh,
der, äh, tut
vor allem auf eine Art und Weise, wo man weniger
scharf
nachdenken muss. Threats haben halt das Problem,
das wissen wir seit 20 Jahren, ähm,
dass du dir ganz schnell halt in den Fuß schießt
und, äh, Dinge passieren,
die du nicht willst und wenn du es halt über Subprozesse
äh, auftrennst, hast du eine klare
I.O.-Grenze und wenn du Async I.O. machst,
dann hast du halt, äh, eben das Thema,
dass du selber bestimmst, wann du, äh,
die Kontrolle über deinen, ähm, deinen
Korruptfahrt abgibst und wann nicht, ja.
Ja.
Ja, also. Ich glaube, das ist nochmal so eine eigene
Folge irgendwie, Async und Shedding in Python,
da haben wir auch gar nicht genug für gemacht.
Das ist auch jedes Mal, glaube ich, mindestens eine
Folge wahrscheinlich komplett. Das ist
ein alles ziemlich fetter, äh, Brocken.
Ja, was mir auffällt, ist, dass man
bei Async wahrscheinlich, ähm,
tatsächlich dann, wenn man das in der, äh,
hier nochmal rausholen, äh,
möchte, was, glaube ich, wirklich eine gute Idee ist,
dann müssten wir uns wahrscheinlich was einfallen lassen, um
Code-By-Spiele während in den
Stream irgendwie einzubetten.
Ja, da, genau, das ist natürlich auch so eine,
so eine Sache, wie man, wie, wie kriegt man das eigentlich
gut hin? Da habe ich auch schon mal drüber nachgedacht, aber
auch noch keine Lösung gefunden. Ich meine,
ja, man könnte natürlich auch irgendwie eine Videogeschichte
dazu machen, aber das ist halt auch irgendwie
alles. Ja, ich höre meinen Meinungs-
Ja, genau.
Ich hätte noch Video-Einbänden irgendwo auf der, äh,
Frontscheibe von meinem Wagen. Ja.
Ja, genau. Nee, das, das widerspricht
irgendwie so dem, wie es benutzt wird, ja.
Ich weiß es, ich weiß es auch nicht.
Ja. Muss man mal überlegen. Aber
prinzipiell wäre das natürlich schon eine interessante
Geschichte, dass man das halt, äh,
irgendwie dabei hätte, also zumindest
irgendwie in den Shownotes auf der Webseite oder so.
So augmentiert. Ja, ich glaube, das Bonus ist, glaube ich,
vielleicht ausreichend, ne? Wenn jemand nachschauen will, wie das denn geht,
dann haben wir dann so ein als Mini-Tutorial
drin. Wenn sich jemand dann die Mühe macht, mich das
mitzudokumentieren von uns, dann,
ja, reicht ja.
Also, Dings sind ja dabei. Also, ich würde sagen, das
passt. Ich weiß, jeder andere an meiner Seite schreibt uns gerne.
Also, wir sind immer auf euer Feedback. Ja. Oder vielleicht
hat jemand schon mal was gesehen, wo man das, äh,
wo das gut gemacht wurde, dann
Also, ich habe tatsächlich, also, das ist so irgendwie so das Level,
wo, auf dem ich jetzt noch nicht so ganz angekommen bin, dass ich
halt große Probleme habe, immer noch so zu verstehen,
wann benutze ich denn jetzt was und was ist denn jetzt überhaupt
ein Sweat und wann nehme ich den, wann nehme ich jetzt irgendwie
Async und vielleicht doch
irgendwie anderer Taskmanager oder sowas dazwischen.
Das ist noch nicht so ganz angekommen.
Und ich glaube, das wäre auf jeden Fall nochmal spannend zu verstehen,
warum, wieso, weshalb ich denn jetzt welche Technik anlesse
und wann das so Best Practice ist für
was überhaupt.
Ja, auf jeden Fall. Ja.
Eigene Folge. Ja.
Ja.
Ja, der letzte, der letzte Punkt, der mir beim
Sprint aufgefallen war, war, dass
Guido, jetzt schließt sich so für heute
wahrscheinlich so der Themenkreis ein bisschen,
dass Guido nämlich angefangen hat,
eins der eben kernbefindlichsten
Bauteile von Python, nämlich
der Parser-Generator für Python selber,
äh, wo er tatsächlich
sich damals, ähm,
89, 90 und dann
über die 90ern weg, ähm,
das Herzstück der Sprache,
der Programmierung einer Sprache,
nämlich Parser, Compiler
Interpreter, ähm,
dass, äh, er damals halt selbst
eingebaut hatte und, ähm,
er wohl die letzten Jahre immer mal angesprochen
wurde auf, äh, einen ganz spezifischen
Typ von Parser,
nämlich Generator, nämlich den sogenannten Pack-Parser,
ähm, da hat er sich
dran gemacht, tatsächlich dieses Stück komplett nochmal
auseinanderzunehmen, neu, äh,
äh, neu aufzubauen,
ähm, weil das wohl tatsächlich dann
Einfluss hat auf die später mal, äh,
Parsing-Performance auf der einen Seite,
aber auch welche Sprachkonstrukte sich
eigentlich wie elegant, äh, definieren
lassen, mit wie viel, äh,
Hacks man eigentlich die Sprache definieren
muss, um, äh, dem Parser
dazu zu zwingen, äh, dass er
tut, was man will, ähm,
und da hat er eine ganze Reihe von Blogposts,
äh, schon zugeschrieben, die entstehen gerade
noch, aber er hat immerhin beim, äh,
schon mal eine Gesamt, äh,
Übersicht aller, ich glaub, acht oder zehn
vorhandenen und geht immer, geht er recht
detailliert in der Anwendung durch,
in der Motivation und auch wie das ganz konkret für Python
aussieht, was er da wie zusammensetzt,
das ist ein sehr spannend zu lesendes Thema
und, äh, das hat mich halt
vor allem deshalb beschäftigt, weil ich die letzten Wochen
immer so ein bisschen wieder mit dem Thema zu tun
hatte, ähm, für einen bestimmten
Anwendungsfall
Python nativ zu benutzen mit, äh,
oder mit einer DSL
und, äh, wenn man DSLs macht, äh,
eine externe oder eine eingebettete,
eine Domain-Specific Language,
ähm, also es gibt ein Projekt,
ähm, von mir, das ist das
Bateau, das ist so ein Deployment-Werkzeug,
ähm, und da hat, da gibt es,
da gibt es sowohl einen deklarativen
Anteil von wie definiere ich,
wie mein, meine Anwendung
deployed werden soll im Allgemeinen,
äh, und dann auch so einen imperativen von,
ja, wie kommt denn jetzt die Datei auf die Platte und so
und, ähm, da habe ich mich
damals dafür entschieden, dass ich das innerhalb
von Python mache mit einer reinen API
und, äh, Python ist ja
keine Sprache, in der Domain-Specific
Languages so eine große Rolle
spielen, also in, in Ruby ist
das ganz typisch, da ist die Syntax, äh,
dafür geeignet, dass du das so,
äh, dir zurechtlegst, dass du im Prinzip
etwas hast, das sieht dir kaum noch nach Ruby aus
und du musst aber keinen eigenen Parser
schreiben, weil du das Ruby so, äh,
sozusagen gezüchtet hast,
äh, dass es dann wie was anderes aussieht
und es kommt auch aus den funktionalen
Sprachen, aus, ähm,
Lisp und Scheme, die haben alle ja so Makros,
äh, wie auch C, wo du dir dann so
komplexe Makros definieren kannst, dass du
im Prinzip die drunterliegende
Sprache nicht mehr wiedererkennst und das ist
in Python aber gar nicht so üblich, ähm,
in Python gibt es eher solche,
so, da nennt man die dann Domain-Specific Libraries,
ähm, SQL Alchemy ist so ein Beispiel,
ähm, die dir dann einfach
eine sehr fluffige API
liefern, die man, äh, benutzen kann
und du nicht das Gefühl hast,
Brüche zu haben zwischen dem, was du gerade
trinkst. Also den Anspruch, irgendwie so eine,
weiß nicht, Grammatik zu entwickeln, um die Probleme,
die ein bisschen komplexer sind, in einfacherer
Logik zu beschreiben.
Ja, und dass du halt auch wenig Brüche hast,
äh, äh, man nennt das halt,
ähm, ähm, in der Informatik
ein Impedance Mismatch, wenn du halt
bei SQL Alchemy, wenn du SQL
hast, äh, dann ist das halt so
eine, ja, deklarative
Sprache, äh, und wenn du
dann aber mit
dir diese Statements dynamisch
zusammenbauen möchtest, dann hast du halt
irgendwann nur noch, ja, ich kann irgendwelche Strings
generieren, aber dann hast du keine Ahnung mehr,
ob die jetzt syntaktisch korrekt sind, ob sie beim Quoting
was kaputt geht und das nennt man halt
einen, einen Impedance Mismatch,
also ein,
die Audio-Techniker können das bestimmt auf Deutsch übersetzen,
ähm, äh, wenn du halt nicht, nicht passend
eine Widerstände anschließt, das
hat keinen guten Sound, ähm,
und, ähm,
dafür sind, äh, dafür nehmen viele
Umgebungen Domain-Specific,
Embedded Domain-Specific Languages, also
die du in die eigentliche Programmiersprache
halt einbetten kannst und in Python sind
die Libraries eher so das Thema, wie SQL Alchemy,
oder auch Requests, äh, bei denen
einfach die API so geschmeidig gemacht ist,
äh, dass du das Gefühl hast, äh,
äh, du kannst konzeptionell und
syntaktisch, äh, so wie du es runtertippst,
auf einer Ebene arbeiten und hast dann nicht ständig,
äh, Übersetzungsverluste dazwischen.
Und, ähm, da gibt es
tatsächlich inzwischen eine Reihe von, ähm,
die Pack-Parser kommen halt genau aus diesem,
äh, aus dem Umfeld von,
ähm, du kannst eine
Sprache, eine Meta-Sprache modellieren,
äh, die dann wiederum sich
in, äh, Python
zum Beispiel schnell
selber parsen lässt und ich hatte auch gesehen,
es gibt Pack-Libraries
für Python, die
dann wiederum mit dem Python, was du
halt hast,
interagieren können.
Ähm, das ist ja erstmal so ein bisschen
Brain-Fuck-Niveau und, äh,
da bin ich aber dann tatsächlich, ähm,
weil ich mich gerade mit diesem BSL-Thema jetzt beschäftigt hatte,
darauf angesprungen, ähm, dass die Pack-Parser
und das, wie du das gerade anfasst, wohl doch
irgendwie interessant sein müssen. Ähm,
da gibt es auch ein paar Doktorarbeiten zum Thema, wie kann ich
eigentlich schnell
Sprachfeatures mal entwickeln
und testen und experimentieren und, äh,
genau das ist was, wo ich gerade davor stehe,
will ich eine, eine verballhornte
Form von Python haben, die irgendwie so ein bisschen
Python ist, aber nicht, oder will ich's, äh,
irgendwie eine ganz neue Sprache mal
ausprobieren? Ähm,
genau. Das, das war eine schöne Anregung,
die ich mir aus dem Core-Sprint mitgenommen habe.
Ja. Ja, warum denn, aber warum
muss das eigentlich, ich meine, ähm,
wenn ich da so ein anderes, ähm,
populäres, äh,
DevOps-Tool
betrachte, so Ansible,
da wird ja YAML verwendet.
Äh, warum reicht, reicht
das nicht aus, oder ist das, äh,
ich meine, deklarativ ist das, äh,
klar, man kann natürlich nicht so viel damit machen, das ist
natürlich, äh. Genau, also, ähm,
wir, wir machen das jetzt, also, Bateau ist
interessanterweise ziemlich
glatt genauso alt wie Ansible. Ich glaube,
die Repos sind beide, äh, irgendwie
mit zwei Wochen Versatz angefangen
worden, ähm, also irgendwann
2011, 2012, und, äh,
wir kamen damals von schon einem
deklarativen Format, wo wir ständig das Problem
hatten, ähm, dass wir
die deklarativen
Formate, also, YAML ist ja
jetzt erstmal noch kein, ist ja ein Datenformat,
und noch kein Format, äh, also, insofern
ist es natürlich deklarativ, weil Daten
sozusagen in sich deklarativ sind, ähm,
aber, ähm,
da wird dann teilweise halt
eine Finite State Machine
mit beschrieben, also
tu das, tu das, tu das,
ähm, hat teilweise auch selber wieder
Eigenschaften von der Programmiersprache,
ähm, mit
Schleifenbildung und solchen Dingen, und was,
was, wo mir so ein bisschen
immer wieder die Fingernägel hochrollen,
ist halt, dass da drin
dann auch noch Ginger-Templates abgesenkt
werden.
Und das, das haut mir so ein bisschen
dem
Pferd die Krone aus dem Fass, also,
das ist einfach,
da hat man dann so viel
aneinander gestrickt, und, ähm,
wenn man so in der DevOps-Community rumhört, ist halt
auch so ein bisschen eigentlich die Aussage mit YAML
ist so das unvermeidbare Übel,
ähm, aber so richtig cool finden kann es eigentlich keiner,
ähm, und, ähm, deswegen
hatte ich mich damals entschieden zu sagen, nee, mach ich nicht,
ich mach etwas, wo ich in Palten,
deklarativ arbeiten kann, und aber immer, wenn es
sein muss, kann ich die volle
Sprachpower von Palten halt wieder rausholen, und
dem Ding meinen Willen aufzwingen,
ja.
Naja, das ist halt, äh,
ja, ja,
ist natürlich dann schwieriger, irgendwelche
Voraussagen darüber zu machen, was das denn dann
tut, weil, äh, bei YAML kann ich
das vielleicht dann noch so halbwegs, oder so, aber wenn ich
jetzt...
Das ist in die Tasche gelogen, weil
YAML ist halt eben nur eine Oberflächenstruktur,
und die tiefe Struktur drinnen,
wenn das YAML selber wieder die Komplexität hat
von Schleifen und solchen Dingen,
und sich dann noch kombiniert mit Jinja,
ähm, wo dann manchmal,
je nach Werkzeug, nicht klar ist, ob das Jinja
als, aus dem Jinja
fällt dann das YAML raus, oder
äh, das, was da dann auf der
jeweiligen Zeile steht, kommt erst dann später zur Laufzeit
ins Jinja rein, und dann, da können
sich auch ganz fiese, äh, Kombinationen
draus ergeben, und, ähm,
nee, also für uns war da die,
die Frage eher, das ein bisschen leichtgewichtiger
zu halten, aber, weil
auch das ist wieder sozusagen ein Rückgriff
jetzt auf den Walrus Operator,
weil Python inzwischen ja syntaktisch relativ
vielfältig ist, ähm,
ist da die Lesbarkeit irgendwann schon
auch das Problem, wenn es zu komplex
wird, und, ähm, wir haben
so an der einen Stelle eben das Thema, dass wir eine Syntax
brauchen, ähm, bräuchten,
3.8 könnte es jetzt,
wo ich gleichzeitig etwas, äh,
mit einer Expression, äh, mir ranziehe
und zuweise,
und dann weiterverarbeite, das wäre
ganz nett, aber, ähm, da überlege ich
tatsächlich gerade auch eben, ob sowas wie ein
Pack, äh, der sich gut integriert
in die Laufzeit, äh, von dem,
äh, von dem Python, was da ist,
nicht die Gelegenheit gibt, da nochmal auch, äh,
über eine Sprache nachzudenken, die das eigentlich
besser kann. Hm.
Interessant. Ja, auf jeden Fall interessant.
Also auf jeden Fall sehr komplex, das war jetzt ja kein
ganz Anfänger-Thema, wenn ich das so sagen darf.
Viele wasseranfallen, die man ganz gut versteht.
War das die, war das die, äh, das war keine
Einstellungsvoraussetzung, ja, oder?
Nein, das war, das war so,
dass wir nur Anfänger, Anfänger,
die das genau besonders besser interessiert
und mehr interessiert, das, was du gerade erzählt hast.
Ach, die Mischung macht's doch offensichtlich.
Ja, ja, ja, absolut.
Falls ihr nicht wisst, was Jinzer ist, müsst ihr das einfach mal googeln,
das ist eine kleine Template-Sprache.
Ja, ja, das ist, äh,
ja, das ist halt auch wieder so ein ganz
eigenes Feld, ich glaube, also ich meine, ich würde
sogar fast sagen, das ist, äh,
auch eines der, der Dinge, für die Python viel
benutzt wird, halt so Infrastrukturen hochziehen,
ich glaube, äh, bei, bei
Facebook ist, äh, ist Python,
halt sozusagen die
Sprache für alle Services, die irgendwelche, äh,
operativen Geschichten, äh,
machen hintendran und so,
und, äh, es gibt ja noch diverse, es gibt
Ansible, wird ja auch viel benutzt, oder halt,
äh, OpenStack und, ach, weiß der Teufel,
ganz viele Sachen, ähm,
ja,
aber es ist nicht so ein richtig einfaches Problem,
irgendwie.
Ja.
Ja, was haben wir denn
Ja, habt ihr noch was auf der Liste, haben wir heute noch was auf der Liste?
Ja, meine Liste ist gerade unten angeschlagen.
Ja, gut. Äh,
hatten wir noch, wir könnten noch irgendwelche Dinge picken,
zum Beispiel, könnten wir noch machen. Ja, der Fick der Woche
sind natürlich dran, oder, äh, der Monat muss ja fast
im Quartal lagen, solange wir
den Teufel gebraucht haben.
Wir versprochen wieder ein bisschen
äh, äh, ja.
Ja, ähm,
ich hab eine ganz nette Geschichte gesehen,
ich, ähm, normalerweise, also, wäre es ja Software,
aber das, äh, äh, da hab ich
jetzt grad nix, ähm, aber,
äh, eine andere, eine andere Geschichte,
die auch ganz, äh, äh,
äh, nett ist, finde ich, ist, es gibt
jetzt ein Django-Forum.
Äh,
ja, überhaupt, Django ist auch ganz, ganz
interessant, gibt's jetzt, äh, bald wahrscheinlich
irgendwie, äh, eine neue
Version, und da gibt's auch so Async,
genau, ja, ja. Async Django 3.
Äh, Async, äh, erste Schritte dahin,
ähm, und das, das
wird auch alles, äh, das wird auch alles
noch sehr spannend, und, äh, es gibt jetzt
halt auch ein, äh, ein, ein,
ein Forum, wo man sich austauschen
kann, und das tatsächlich ziemlich,
äh, nett aussieht, muss ich sagen.
Also, das, äh, äh, da
sind, ähm, ja, ja,
ja, viele der, der, äh,
ja, Leute, die da viel
machen im Projekt, äh, unterwegs,
und, äh, es gibt viele interessante Diskussionen, ich war
sehr überrascht, äh, was da alles so geht,
weil normalerweise ist ja immer Forum
vielleicht irgendwie nicht etwas, wo
man jetzt unbedingt, äh, hin will, aber da,
das ist, war, war echt toll, und, äh, also,
wenn man sich mit Django beschäftigt, und da,
Spaß dran hat, dann kann man sich das mal angucken, das ist, äh,
wirklich nett, ja.
Okay. Äh, ich hatte, äh,
gehört an einen, tatsächlich an einem der Django Cars,
hat irgendjemand, äh, Text-Blob erwähnt, das fand ich irgendwie
ganz interessant, äh, das ist irgendwie für, äh,
ähm, ja, Sprachanalyse sehr,
sehr wichtig, irgendwie auf NRTK aufgesetzt,
und macht dann irgendwie so Tags
an, äh, ja, setzt Satzteile
dran, und Sentimentanalyse, und
Tokenisierung nett, und sowas.
Da wollte ich nochmal ein bisschen tiefer
reingucken, das sah sehr, sehr spannend aus, und, äh,
das soll wohl ganz cool
auch funktionieren für, ja, größere
Text-Operationen, wahrscheinlich
eher mit Englisch, aber, ja.
Das ist mein Pick der Woche.
Text-Blob, okay.
Christian? Hast du auch
einen? Die Woche ist zu neu, ich
hab noch keinen Pick.
Ah, nee, ähm, ich glaub,
die Packs letzte Woche waren mein Pick.
Ja, äh, ja, das liegt auch mal
angucken, ja. Ein ganzes Pack, statt
einen Packs aufpassen. Ja, äh, genau.
Ja, ähm,
dann sind wir tatsächlich wieder am Ende dieser Folge
angelangt, dieser wunderschönen, ähm, wo auch
immer ihr gerade seid, wo auch immer ihr uns gehört habt,
oder, ne, schönen Tag, schönen Abend, schöne Nacht,
und, äh, so weiter.
Bleibt uns gewogen, habt viel
Spaß, kommt gut rein, wir hören uns.
Ach so, bevor ich das vergesse, ich wollte noch fragen,
wenn ihr Fragen habt, oder sowas, ne, wir wollten
ja nächstes Mal eine große Frage-Folge machen, wo wir
den Jochen löchern, und, ähm, ganz
einfach eine Frage stellen, die in einer Minute alle
antworten, falls ihr da irgendwelche habt, dann, äh,
schickt die bitte. Ich kann
dann immer noch hinterhertreten.
Mich löchern, ja, das ist eine gute Idee.
Ja, genau, ja, das machen wir.
Und, ähm, deswegen, wenn ihr Fragen habt, einfach raus damit.
Ach so, und falls ihr, ähm, noch eine andere
Geschichte, ähm, wir wollten nämlich auch mal was über
die Standard-Library machen, also so ein bisschen erzählen,
was es so gibt. Ja, das war auch eine Anregung,
die wir per Mail bekommen haben, und das war eigentlich,
fanden wir ganz gut, äh, die Idee, und da
vielleicht können wir da einfach mal so durchgehen, weil
da sind ja viele verborgene Schätze eigentlich drin,
äh, die man mal irgendwie näher betrachten könnte.
Und falls ihr auch da irgendwie einen Wunsch habt, was wir denn
besonders mal benutzen sollen, also auch raus damit.
Das, äh, ja.
Ja, vielen Dank, Tony,
dass du da warst, vielen Dank, Christian.
Sehr gerne, jederzeit wieder.
Wieder sehr schön, ich hab wieder viel gelernt heute.
Ja, bleibt uns gewogen.
Dann hoffen wir einfach mal, dass wir es ein bisschen schneller
demnächst wieder hinkriegen.
Ja, wir werden uns diesmal nicht wieder zweieinhalb Monate
Zeit lassen.
Alles klar, gut.
Ja, bis dann. Tschüss.