Transcript: Python 3.8

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo und herzlich willkommen zur 14. Folge vom Python-Podcast heute.

Dominik

Ja, wir haben euch uns länger nicht mehr blicken lassen.

Dominik

Das tut uns natürlich sehr leid. Wir waren ein bisschen hektisch, haben hintereinander beide Urlaub gemacht.

Dominik

Und dann ist natürlich vorher und nachher immer sehr viel zu tun.

Dominik

Und wir hatten ein paar Abstimmungsprobleme. Wir wollten nämlich eigentlich eine Projektmanagement-Folge machen.

Jochen

Das ist dann an schlechten Projektmanagement-Folgen gescheitert.

Dominik

Ja, ich habe sieben verschiedene Termine gehabt und dann immer wieder verschoben.

Dominik

Aber heute machen wir deswegen eine Laber-Folge, damit wir euch nicht ganz enttäuschen.

Dominik

Aber wer ist wieder dabei? Das ist der Tony wieder bei der Christian.

Dominik

Alles gut. Oh, moin.

Dominik

Nächstes Mal vielleicht ohne Knacksen.

Dominik

Mal gucken, wer es denn bekommt.

Dominik

Das werden wir hinterher rausfinden.

Jochen

Ja, ansonsten wieder hier aus dem Wintergarten.

Jochen

Bin auch dabei.

Jochen

Ja, das ist der Jochen, ich bin der Dominik.

Jochen

Ja, genau.

Jochen

Und ja, ich weiß nicht, womit fangen wir an?

Jochen

Irgendwelche Neuigkeiten?

Dominik

Ja, genau, wir wollten wieder ein bisschen News aus der Szene erzählen.

Dominik

Und ihr beiden weiter auf der Pike-Kurve.

Dominik

Das habe ich leider nicht geschafft wegen meinem Urlaub.

Dominik

Aber ja, das ist bestimmt sehr spannend gewesen.

Dominik

Erzähl doch mal, was war da alles los?

Dominik

Ja.

Dominik

Also ich

Jochen

habe dummerweise auch nebenher noch so ein bisschen

Jochen

arbeiten müssen.

Jochen

Es war alles so,

Jochen

man muss halt so

Jochen

eigentlich so ein bisschen Zeit dafür nehmen.

Jochen

Genau.

Jochen

Es tut jetzt noch weh.

Jochen

Ja.

Jochen

Aber es war schon interessant.

Jochen

Ich habe mir einige Dinge da angeguckt.

Jochen

Super fand ich zum Beispiel

Jochen

den Vortrag, jetzt habe ich

Jochen

den Namen vergessen,

Jochen

Luciano Ramaglio

Jochen

oder Ramalo,

Jochen

der das Buch Fluent Python

Jochen

geschrieben hat, das kann ich auch nur empfehlen,

Jochen

sehr gutes Buch,

Jochen

hat einen Vortrag darüber gehalten,

Jochen

dass vielleicht

Jochen

diese Unterteilung, die man klassischerweise jetzt

Jochen

aus der Informatik

Jochen

kennt, irgendwie

Jochen

in funktionale, objektorientierte,

Jochen

strukturierte

Jochen

Programmiersprachen nicht so

Jochen

komplett trifft auf das, was man heute so

Jochen

vorfindet und man sich vielleicht

Jochen

doch eher an den Features der Sprachen orientieren sollte

Jochen

oder so und das

Jochen

hat da schon einen relativ starken Punkt.

Jochen

Also man

Dominik

sollte sich mehr daran orientieren, wie die Syntax,

Dominik

wie die Features, was die Sprache so kann. Ja, was man mit der Sprache

Jochen

so machen kann, genau und das jetzt nicht, weil

Jochen

zum Beispiel Python wird halt immer in diese

Jochen

Skriptsprachenecke gesteckt und

Jochen

warum, ja, es gibt eigentlich

Jochen

keinen besonderen Grund dafür, man könnte

Jochen

es auch in die objektorientierte

Jochen

Programmiersprachen-Ecke

Jochen

stellen. Also warum

Jochen

ist das jetzt keine, aber C-Sharp schon

Jochen

eine oder so, das ist halt nicht so richtig klar.

Jochen

Und ja,

Jochen

so ein bisschen schwingt damit

Jochen

ja auch dann sozusagen immer das Vorurteil

Jochen

mit, dass das jetzt gar keine richtige

Jochen

Programmiersprache ist oder so.

Jochen

Dann gibt es halt die Gruppe der

Jochen

richtigen Programmiersprachen, Java, C-Sharp

Jochen

und so. Und

Jochen

Python ist halt irgendwie so eine komische Skriptsprache.

Dominik

Von richtigen Programmieren wird man als Python-Programmier

Dominik

auch immer ein bisschen schräg angeguckt.

Christian

Also 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.

Christian

Und ich glaube, dieses Jahr hatte ich so...

Christian

Ich habe gehört, dass wir das in Indien gelehrt.

Christian

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.

Christian

Und jetzt dieses Jahr hat es ein paar Mal wirklich geknackt, dass wir, ich glaube, bei drei von vieren und ich weiß nicht mehr, welche es 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.

Christian

Wo das ja jetzt plötzlich herkäme.

Christian

Wie kommt denn das?

Christian

Ja, genau.

Christian

Aber ich glaube tatsächlich, also inzwischen,

Christian

ich höre das auch manchmal nochmal,

Christian

auch wenn man jetzt, ich hatte heute

Christian

auch ein Thema, was wir später

Christian

noch aufgreifen werden, auf dem Ticker

Christian

und wenn man dann wieder die

Christian

Kommentare

Christian

dazu durchliest, dann

Christian

ist es ganz spannend, weil halt so

Christian

breit gestreute Vorurteile gegenüber Python

Christian

die letzten, die das immer noch

Christian

rausholen von wegen, ja, Indentation ist

Christian

ja eklig.

Christian

Ja, ich glaube,

Christian

das wird nie weggehen, dass da irgendwer

Christian

nochmal mit den Augen rollt, aber

Christian

ich finde es eigentlich ganz angenehm, heutzutage nicht mehr irgendwie

Christian

argumentieren zu müssen einem Kunden gegenüber

Christian

oder einem Projekt, ob ich jetzt Python einsetze oder nicht,

Christian

das ist jetzt endlich gegessen, nach 20 Jahren

Christian

auch mal Zeit. Ja, die letzten gehen schon

Dominik

in Rente, haben wir gehört, in der letzten Woche, Halloween,

Dominik

als nämlich der Guido hat

Dominik

getwittert, dass er Dropbox verlassen

Dominik

wird und in Rente geht, also endgültig,

Dominik

nachdem er ja letztes Jahr schon seinen teilweise Rückzug

Dominik

als benevolent Dictator for Life angegeben hat.

Dominik

Ja, wobei das sind ja zwei verschiedene Dinge.

Christian

Also sozusagen das Thema Erwerbstätigkeit zum Lebensunterhalt,

Christian

das hängt da an den Nagel.

Christian

Aber den benevolent Dictator.

Dominik

Wer weiß, ob das nicht insgesamt so ein bisschen mit der Karriere zu tun hat,

Dominik

dass man sich dann so insgesamt zurückzieht

Dominik

und dann auch im Berufsleben rausgeht.

Dominik

Was er als Letzteres gemacht hat,

Dominik

hat er, glaube ich, Typisierung gemacht in Python, oder?

Dominik

Irgendwie mit MyPy viel.

Dominik

MyPy, genau.

Christian

Das war sein großes Thema bei Dropbox gewesen.

Christian

Da kommt die MyPi-Idee her.

Christian

Den Namen von dem Verursacher habe ich gerade nicht im Kopf.

Christian

Aber persönlich, Gido hat letztes Jahr beim BDFL,

Christian

es war ja kein BDFL an den Nagel hängen,

Christian

sondern nur einen nicht definierten langen Urlaub nehmen.

Christian

Und der Prozess, der angetreten wurde zum Thema Core-Team

Christian

und wie werden Entscheidungen ohne ihn getroffen,

Christian

welches Gremium kommt da zustande,

Christian

Auch da ist er in dem Gremium ja wieder drin und er ist aktiv dabei.

Christian

Ich glaube, natürlich hat er signalisiert, dass er jetzt dann langsam auch irgendwann mal auf seine Gesundheit auffassen muss

Christian

und mit seiner Energie haushalten.

Christian

Aber ich habe den Eindruck nicht gewonnen, dass er jetzt schon jetzt einen Plan hat zu sagen,

Christian

bis dann und dann will er irgendwie komplett sich rausgezogen haben.

Christian

Ich habe eher das Gefühl, er will es halt mit seiner Energie eben haushalten, um das noch eine Weile durchzuhalten.

Christian

Ja, durchaus vernünftig, ja.

Christian

Das ist ja aber dann der richtige Schritt,

Dominik

wenn er bei Dropbox jetzt nicht mehr gebraucht wird,

Dominik

oder vielleicht gebraucht wird er schon, aber irgendwie.

Jochen

Ja, aber das ist jetzt nicht mehr unbedingt machen.

Jochen

Ja, irgendwann werden wir ja auch ein bisschen mehr Ruhe haben.

Jochen

Ich meine, Python gibt es ja schon lange, also fast so.

Jochen

Wir feiern den nicht 30-Jähriges.

Christian

Das müssen wir mal rausfinden, wann 30-Jähriges.

Christian

Ja, stimmt, das sollten wir nicht verfehlen.

Christian

Zünden wir eine Kerze an.

Jochen

Und ja, ich habe dann noch mal, als ich das gelesen habe,

Jochen

auch auf Wikipedia geguckt, dachte mir so,

Jochen

so früh in Rente, aber das stimmt

Jochen

gar nicht. Das ist ja auch schon tatsächlich

Jochen

echt lange dabei.

Christian

Ja, Guido macht das schon eine Weile und

Christian

ich habe ihn aber tatsächlich,

Christian

mein Eindruck, wie ich ihn so die letzten

Christian

Jahre wahrgenommen habe,

Christian

ich habe ihn, glaube ich,

Christian

ich weiß nicht, wann ich ihn das letzte Mal gesehen habe,

Christian

aber der hat Spaß

Christian

an Python. Der hat halt den BDFL unter anderem

Christian

deswegen weggelegt, weil natürlich

Christian

diese Verantwortung für diese Größe

Christian

der Community und mit allem, was halt

Christian

dann immer mal in so dynamischen Community-Prozessen

Christian

passiert, was halt auch unschön ist,

Christian

war für ihn, das ist ja im Prinzip der Move,

Christian

zu sagen, ich will nicht, dass das dann

Christian

alles, weil ich derjenige bin, der die letzte

Christian

Entscheidung trifft, dann zum Schluss

Christian

bei mir landet und ich den ganzen Mist an der Backe

Christian

habe, sondern dass wir

Christian

das halt dann auf mehr Schultern verteilen,

Christian

was natürlich dann auch schön ist, vorausdenkend

Christian

von natürlich Busfaktor.

Christian

Da ist es gut, wenn die Community sich

Christian

sortiert hat,

Christian

für den Fall, dass es irgendwann Magidoma

Christian

nicht mehr geben sollte. Ja, das fand ich auch schön,

Jochen

also den Busfaktor, das ist ja auch mal

Jochen

so ein, vielleicht, ich weiß nicht, ob das

Jochen

jeder versteht, aber das... Was ist ein Busfaktor?

Jochen

Ich habe gerade nur gesagt, BDFL, BMF...

Jochen

Das ist halt sozusagen die...

Jochen

Bad Mr. Frosty. Die Frage,

Jochen

wie viele Busse unterwegs sein müssen, um eventuell

Jochen

ein Projekt irgendwie kritisch zu beeinflussen

Jochen

im Fortgang und...

Christian

Wie viele Leute dürfen vom Bus überfahren werden,

Christian

bevor das

Christian

Projekt dann vorbei ist.

Jochen

Ja, und das ist meistens eins, irgendwie

Jochen

so für die allermeisten Projekte.

Jochen

Und manchmal will man vielleicht mehr haben als

Jochen

eins, weil es nicht gut wäre, wenn

Jochen

wenn das so einfach zu beenden wäre

Jochen

und ich habe aber jetzt

Jochen

letztens, deswegen habe ich da kurz noch eingehakt

Jochen

gehört, dass jemand das anders genannt hat

Jochen

weil er meinte, das klingt immer irgendwie so negativ

Jochen

wenn Leute vom Bus überfahren werden

Jochen

und er spricht jetzt

Jochen

immer vom Lotto-Faktor

Jochen

Leute im Lotto gewinnen und dann halt

Jochen

irgendwie was anderes machen vielleicht

Christian

Ich meine, der Faktor

Christian

war bei Python zu dem Zeitpunkt

Christian

eh schon nicht mehr so stark ausgeprägt, weil ich meine

Christian

die PSF ist breit aufgestellt, das Code-Team ist breit

Christian

aufgestellt. Und es ist natürlich

Christian

schöner, wenn man das halt dann nicht in einer

Christian

Notsituation machen muss, sondern wenn es halt

Christian

vorab geklärt ist.

Christian

Das ist halt so ein bisschen wie mit

Christian

seinem Partner dann

Christian

schon vorher zu klären, wer

Christian

Patientenverfügung hat und so.

Christian

Ja, so ein Notfallkoffer,

Christian

wenn du wirklich so eine Firma hast und dann

Dominik

darauf angewiesen bist, dann brauchst du einen Notfallkoffer, wo drinsteht,

Dominik

was du machen musst, wenn der Chef tatsächlich

Dominik

irgendwo ist, rennen.

Christian

Ja, wobei, jetzt haben wir natürlich den schönen Fall, dass wir halt

Christian

keinen Notfallkoffer brauchen, sondern dass wir jetzt einen neuen Standard

Christian

etabliert haben, wie das Tagesgeschäft

Christian

jetzt in der Kernentwicklung funktioniert

Christian

und dass Guido halt trotzdem dabei ist, ist halt

Christian

schön. Also mir ist es

Christian

lieber, wenn Guido sich das jetzt so zurechtgelegt hat,

Christian

dass er wirklich Spaß dran hat, als

Christian

wenn er irgendwie nach hinten raus dann irgendwann

Christian

entnervt aufgibt. Ja, sehr schön.

Dominik

Für alle, die es noch nicht wussten, also

Dominik

Python kann tatsächlich auch feste Typisierung, also

Dominik

wenn ihr MyPy benutzt, dann könnt ihr auch die Typen

Dominik

festnageln, wenn ihr möchtet.

Dominik

Also mehr oder weniger könnt ihr immer noch, müsst ihr nicht, aber

Dominik

es wird euch wenigstens gesagt.

Christian

Es gibt eine statische Analyse dazu.

Christian

Genau. Ja, aber ihr wart noch bei der

Dominik

PyCon. PyCon.de, dachte ich auch gerade.

Dominik

Ja, da waren wir gerade.

Dominik

Genau, ja, ansonsten,

Jochen

ich muss jetzt nochmal so gerade überlegen, was hatte ich denn noch

Jochen

an mir angeguckt, was mir gut gefallen hat?

Jochen

Oh, das muss ich jetzt, das habe ich mir

Jochen

dann vorgenommen, mir nochmal näher

Jochen

anzuschauen.

Jochen

Nicht nur Alphabet-Notebooks,

Jochen

das verwende ich schon ganz lange, oder

Jochen

Jupyter-Notebooks.

Dominik

Du hattest einen bösen Bug in Python 3.8 übrigens.

Dominik

Oh, okay. Auf Windows aber nur.

Jochen

Und da gibt es jetzt so eine komplette Entwicklungsumgebung eigentlich, JupyterLab, die hat auch da irgendwie diverse Fortschritte. Ich habe sie mir schon mal vor einiger Zeit angeguckt, bin dann aber bei den Notebooks geblieben, aber da hat jemand darüber gehalten, was man damit alles so machen kann und das sah schon sehr, sehr gut aus.

Jochen

Also so ein Problem

Jochen

zum Beispiel, was man, vor allen Dingen

Jochen

gibt es ja jede Menge Plugins, die man für tolle Sachen

Jochen

benutzen kann. Also etwas, was ich

Jochen

irgendwie immer nervig finde, ist,

Jochen

wenn man zum Beispiel nicht so richtig DIVs sehen kann,

Jochen

wenn man irgendwie Sachen eincheckt oder Sachen verändert.

Dominik

Du kannst ja zu Tupi dann auch einen VS-Code öffnen,

Dominik

übrigens live.

Jochen

Oh, okay, das muss ich mir auch mal angucken.

Dominik

Ja, das funktioniert leider noch nicht richtig gut mit der Dango-Schale.

Dominik

Zumindest habe ich das nicht vernünftig hinbekommen, aber

Dominik

ja, doch, sonst.

Jochen

Ja, aber da waren echt

Jochen

tolle Sachen dabei. Da waren auch so viele interaktive

Jochen

Geschichte, man kann da komplette UI-Geschichten

Jochen

irgendwie mitbauen und

Jochen

Sachen drin, also ein Plugin

Jochen

ist, man kann da irgendwie Diagramme

Jochen

drin malen, so, weil man sich immer

Jochen

fragt, so, okay, wenn ich jetzt nochmal so

Jochen

ein Architektur-Diagramm aufmalen möchte oder so,

Jochen

was nehme ich denn jetzt dafür?

Jochen

Inzwischen, oft nehme ich dann irgendwie ein Online-

Jochen

Tool dafür oder so, aber das geht auch alles

Jochen

in JupyterLab

Jochen

und ja, also

Jochen

das war beeindruckend, was da für Fortschritte

Jochen

inzwischen erzielt worden sind und ich muss

Jochen

mir das unbedingt wieder angucken, habe es aber noch nicht gemacht, weil

Jochen

Urlaub, aber also das fand ich

Jochen

noch ziemlich gut und

Jochen

was hab ich noch?

Jochen

Oh, ich hab mir noch einen

Jochen

Vortrag angeguckt

Jochen

über

Jochen

ein System, das ich mal

Jochen

irgendwann gebaut hab,

Jochen

wo jemand, da stand schon

Jochen

im Abstract drin, irgendwie so, ja, wir treiben hier

Jochen

so ein Machine Learning System seit 10 Jahren produktiv

Jochen

und hier mal so, was wir alles gelernt

Jochen

haben und was alles irgendwie schiefgelaufen

Jochen

ist und was wir dann ändern mussten und so.

Jochen

und ja, das war tatsächlich etwas,

Jochen

was ich mal irgendwann mitgebaut hatte.

Jochen

Damals dachte ich so, oh je, ein Vortrag

Jochen

darüber, was ich alles falsch gemacht habe vor zehn Jahren.

Jochen

Aber nee, war sehr gut.

Jochen

Und was hast du alles falsch gemacht?

Dominik

Ist das eine Kurzversion von, also auch alles?

Dominik

Ja, also

Jochen

was sich die Leute dann nicht mehr erklären konnten,

Jochen

also das war auch interessant, also viele

Jochen

Dinge haben dann so hinterher

Jochen

eine andere Erklärung bekommen, weshalb das denn passiert

Jochen

sei, aber es gab da

Jochen

oft irgendwie, die tatsächliche Erklärung war

Jochen

auf eine andere. Sowas wie zum Beispiel,

Jochen

warum wurde eigentlich

Jochen

Disco genommen als

Jochen

MapReduce-Implementation?

Jochen

Was auch immer Disco ist.

Jochen

Das war auch

Jochen

damals schon nicht so super populär. Das ist

Jochen

irgendwie so ein Projekt gewesen

Jochen

von Nokia Research, wo die

Jochen

halt dieses MapReduce

Jochen

Paradigma implementiert

Jochen

haben. Und ich meine, wir haben

Jochen

damals eine Menge Sachen ausprobiert. Wir haben Hadoop

Jochen

ausprobiert.

Jochen

Und der Grund, warum wir dann Disco genommen haben,

Jochen

war, weil es das einzige Python-Map-Reduce-Framework war

Jochen

und Hadoop war wirklich, also hätte man nehmen können,

Jochen

aber das war so, das hat keinen Spaß gemacht.

Jochen

Und eigentlich, was wir vorher hatten,

Jochen

war eine selbstentwickelte Geschichte,

Jochen

aber es hieß halt, nee, das bitte nicht,

Jochen

sondern irgendwas Externes nehmen an der Stelle,

Jochen

weil wir nicht da nochmal Infrastruktur selber bauen wollen.

Jochen

Das war der eigentliche Grund.

Jochen

Oder dann auch solche Sachen wie,

Jochen

warum wurde das eigentlich so aufgeteilt?

Jochen

Diese Probleme kennt man heute gar nicht mehr so.

Jochen

Das lag, also

Jochen

warum macht man das überhaupt so parallel, warum macht man das nicht auf einer

Jochen

großen Maschine? Und der Grund damals war,

Jochen

dass wir da noch ganz viele 32-Bit-Rechner

Jochen

hatten. Und da gibt's halt dann bloß

Jochen

so 3-Gigabit-Hauptspeicher und dann ist

Jochen

halt irgendwie Schluss. Und dann muss man das Problem

Jochen

halt in kleinere Dinge aufteilen, wenn man zum Beispiel

Jochen

Sachen tokenisieren will und die Liste der

Jochen

Tokens einfach nicht mehr in den Hauptspeicher fasst oder so.

Jochen

Erstmal so als Beispiel.

Jochen

Und dann muss man das halt plötzlich dann auf mehrere Rechner verteilen

Jochen

und dann halt sowas MapReduce-artiges verwenden.

Jochen

Ja.

Jochen

Also, ja, das ist alles

Jochen

und heute würde man das alles gar nicht mehr so machen.

Jochen

Und noch ein paar RAM-Riegel reinschieben.

Jochen

Vor allem mehr RAM.

Jochen

Ja, aber es war auf jeden Fall

Jochen

eine tolle Geschichte, war so ein bisschen

Jochen

Nostalgie.

Jochen

Hat Spaß gemacht, ja.

Dominik

Das ist cool. So weit möchte ich auch mal kommen, dass ich auf eine Veranstaltung

Dominik

gehe und irgendjemand einen Vortrag darüber hält, was ich vor 10 Jahren

Dominik

falsch gemacht habe.

Dominik

Ja.

Dominik

Es ist

Jochen

ja, sie bauen das System,

Jochen

es ist jetzt auch weg, es gibt jetzt ein neues.

Jochen

Also es hat jetzt dann wohl ausgedient.

Jochen

Ja, was

Jochen

war noch so? Genau.

Jochen

Dann

Jochen

war noch so ein Freelancer-Panel.

Jochen

Das war irgendwie

Jochen

ganz, ganz

Jochen

interessant mal da. Da habe ich mich auch

Jochen

irgendwie viel zu selten beschäftigt

Jochen

mit dem...

Dominik

Ja, also das Freelancer-Panel

Dominik

wolltest du kurz erzählen.

Dominik

Was eigentlich so die Rahmenbedingungen

Jochen

von dem, was ich so normalerweise

Jochen

halt beruflich mache, angeht

Jochen

und da waren einige sehr interessante

Jochen

Informationen dabei. Ich weiß aber nicht, ob das

Dominik

die Leute interessiert haben.

Dominik

Ja,

Jochen

das ist schon nett und so.

Jochen

Ja, ich habe auch nie so,

Jochen

ich habe dann auch mal einen Begriff dafür gelernt,

Jochen

wie das heißt, was ich mache. Das heißt irgendwie

Jochen

Team Augmentation.

Jochen

Team Augmentation?

Dominik

Wann ist das Augment für ein Team?

Jochen

Genau, man arbeitet eigentlich ganz normal

Jochen

in so einem Team mit und

Jochen

das war mir alles gar nicht so richtig klar.

Jochen

Und dann gibt es halt andere Dinge, die man auch machen kann

Jochen

und das hat andere Probleme.

Jochen

Aber es war nicht, war nicht.

Jochen

Und es gab auch tatsächlich inzwischen so,

Jochen

das habe ich dann aber woanders gehört,

Jochen

ich glaube in einem Podcast,

Jochen

es gibt Leute, die dann komplette Teams auch ausleihen

Jochen

und nicht nur, weil das ist ja auch so ein Problem,

Jochen

ich meine, wenn du so einen Entwicklungsprozess ...

Jochen

Du willst aber mal skalieren,

Dominik

hast auf einmal ein neues Projekt, so ein Side-Projekt,

Dominik

hast aber gar keine Abteilung, die das irgendwie machen kann

Dominik

und merkst, hey, du hättest irgendwie noch ein neues Projekt dabei.

Dominik

Genau, wie macht man das eigentlich?

Dominik

Das ist schon wieder richtig ein Projektmanagement.

Jochen

Ja, ja, ja. Und dann gibt es halt eventuell die

Jochen

Möglichkeit, oder das machen halt momentan

Jochen

manche Leute wohl, dass sie dann komplette

Jochen

Sprints irgendwie verkaufen und dann

Jochen

Teams, die schon gut zusammenarbeiten, irgendwie dann

Jochen

vermieten. Das ist ja gar nicht so blöd. Und das ist auch

Jochen

eigentlich nicht so blöd. Das ist schon richtig, ja.

Dominik

Vor allem, wenn die so guten Code schreiben, dass den niemand anderes

Dominik

danach auch noch lesen kann und benutzen kann, dann...

Jochen

Ja, ja, das sollte schon dann alles so best practice-mäßig

Dominik

im Netz setzen und sagen, hey, cool, damit machen wir jetzt

Dominik

weiter.

Christian

Ich glaube, wenn du das ganz

Christian

teamweise machst und

Christian

sprintweise brauchst du eine gewisse Mindestgröße,

Christian

weil du bei dir ja dann trotzdem wieder

Christian

das Zeug zusammenführen musst.

Christian

Also es gibt

Christian

diesen alten Spruch, ein Freund von mir,

Christian

der ist nach dem Abi irgendwann zur IBM,

Christian

dass die IBMer, als sie dann

Christian

in den 90ern die Informatiker

Christian

nach Indien ausgelagert haben,

Christian

festgestellt haben, dass sie für zwei preiswerte

Christian

Inder einen teuren Deutschen brauchen, der das alles

Christian

wieder zusammenzieht.

Christian

Da war die

Christian

Einsparung nicht so riesengroß.

Christian

Da muss man sich wirklich Gedanken

Christian

machen, wie das funktioniert.

Jochen

Ja, aber was, welche, welche, hast du dir eigentlich irgendwelche Vorträge angeguckt oder?

Christian

Nee, ich stand, nee, ich stand auf dem Stand. Ich habe, was hatte der Tweet hergegeben? André hat gesagt, wir haben.

Dominik

Vielleicht hat ja einer unserer Hörer verpasst, was du überhaupt machst, deswegen musst du mal erzählen, was für ein Stand das denn überhaupt war.

Christian

Ja genau, also vom Flying Circus, im Prinzip so wie Team-Augmentation, was der Jochen gerade gemeint hat, so ein bisschen Team-Augmentation, so was in der Art machen wir für DevOps-Szenarien, dass du also als Team sagst, der ganze Ops-Kram, ich will das zwar unter Kontrolle haben und wissen,

Christian

Aber im Prinzip kannst du das komplette

Christian

Management, den ganzen Betrieb der Anwendung zu uns

Christian

rüberkippen und dann hast du

Christian

bei uns da so ein DevOps-Team,

Christian

was man nicht sagen sollte,

Christian

aber am Ende sagt man ja wieder, doch nur ein Silo.

Christian

Ja, neues Silo.

Christian

Ist ein schöneres Silo als vorher.

Christian

Also tatsächlich, wir sagen jetzt auch manchmal, dass man

Christian

uns die Software wieder

Christian

über den Zaun werfen kann, aber

Christian

wir klettern dann wieder über den Zaun zurück.

Christian

Ah.

Christian

Genau. Ja, da haben wir einen Stand

Christian

gehabt, um uns ein bisschen zu zeigen.

Christian

Und ich stand im Prinzip die ganze Zeit nur auf dem Stand rum.

Dominik

Du warst nicht in der Nähe von irgendeinem Hörsaal oder sowas, wo man so um die Ecke hören oder so?

Christian

Naja, man könnte, ne, die waren halt immer schön zu, damit man da auch die Ruhe hat.

Christian

Ich habe aber dafür irgendwie, glaube ich, zwölf Kilo Schokolade verteilt oder so.

Christian

Ich habe das halt gegessen.

Christian

Das war seiner Karte.

Christian

Ja, also ich war dann halt in Summe auch mehr beschäftigt mit so ein paar Metathemen,

Christian

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, da hatten wir Jahresversammlung, die war ganz gut besucht eigentlich und konnten auch neue Mitglieder gewinnen.

Christian

Das war eigentlich ganz spannend, weil die PyCon.de ist ja sozusagen unter der Flagge des Python Software Verbands veranstaltet und zum einen haben wir jetzt mal nach relativ vielen Jahren sehr kontinuierlicher Arbeit im Vorstand nochmal ein bisschen neue Gesichter gesehen, zum einen das erste Mal eine Frau im Vorstand.

Dominik

Wir haben immer noch keine Folge mit einem weiblichen Hörer oder einer weiblichen Hörerin, also falls ihr Lust habt, kommt vorbei und sagt Bescheid.

Christian

Genau, also die Theresa Yufchiu, ich weiß immer nicht ganz genau, ob ich ihren Namen richtig ausspreche, sie ist selber sehr schnell dabei, ihn auszusprechen, das ist ganz schwierig.

Christian

Also die Theresa ist jetzt mit dabei, die ist glaube ich in Hamburg und die hat auch im Rahmen von dem Förderprogramm von PSV schon mehrfach mit Schülern und mit anderen Gruppen, ich glaube Raspberries oder MicroPythons verbaut.

Christian

Genau, und der Alex Hennendorf, der Hauptorgar von der PyCon.de,

Christian

der hat sich jetzt auch noch bereit erklärt, mir zu helfen.

Christian

Wir mussten nämlich tatsächlich feststellen, dass...

Christian

Der Python-Verband in Summe mit der PyCon.de, das ist einfach inzwischen ein Riesenschlachtschiff.

Christian

Wir haben die letzten Jahre ein bisschen gedacht mit, das kochen wir alles mal wieder ein bisschen klein,

Christian

dann läuft das alles von alleine und in Wirklichkeit, da gibt es nichts klein zu kochen.

Christian

Wir haben irgendwann mal vor drei, vier Jahren da gestanden und gemeint,

Christian

die Verwaltungskosten sind sehr hoch und tatsächlich hatten wir gedacht,

Christian

der PySV ist so ein Verein mit 10.000, 20.000 Euro Umsatz pro Jahr.

Christian

Das machst du irgendwie nebenbei und wenn man aber die PyCon.de und noch zwei, drei andere Veranstaltungen, die wir drin haben, reinziehst, dann siehst du, dass der Python-Verband jetzt in Deutschland kontinuierlich über eine halbe Million mehr Umsatz macht pro Jahr.

Christian

Ja, genau. Und dann standen wir da und dachten so, okay, da ist normalerweise eine Vollzeitstelle für die Verwaltung fällig. Und deswegen der Alex Hendorf, der hat sehr viel Zeit in die PyCon.de steckt, der hat auch bei sich aus dem Team jetzt jemanden, den wir vom Python-Verband bezahlen, der das dann fast in Vollzeit tatsächlich machen wird, die Verwaltung vom Verband aufzuziehen.

Christian

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, dass Volunteer-Burnout irgendwann mal kommt, wenn du die Leute vor allem mit irgendwelchem Kram überlastest.

Christian

Wir haben so ein paar Sachen mit Sponsoren. Wenn du mit den ganz Großen jetzt halt immer im Bett bist, da hast du ja wirklich von Microsoft und Google und Ebay und sind halt irgendwie alle dabei, weil alle mit Python arbeiten und alle wollen das sponsern und wollen Mitarbeiter werben und dann hast du aber plötzlich so ein Glück, dass es heißt, ja, bei uns im Beschaffungsprozess, finden 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 darüber und dann müssen Sie innerhalb von sieben Tagen auf den Button drücken, sonst geht das Spiel wieder von vorne los.

Christian

Was machst du abends, wenn die Kinder im Bett sind?

Christian

Ja, genau, mit

Christian

sowas

Christian

unterhalten die einen, das ist halt was,

Christian

das willst du eigentlich nicht auf freiwillige,

Christian

das willst du auf niemanden abgießen, aber erst recht nicht auf freiwillige.

Christian

Genau.

Christian

Nee, insofern, der

Christian

Verband, der steht gerade echt gut da, wir sind es auch

Christian

nochmal dabei, dann zu gucken, die Aufgaben zu verteilen,

Christian

was die Öffentlichkeitsarbeit angeht und diese

Christian

Bewerbung von dem Förderprogramm,

Christian

dass es da nochmal ein bisschen vorangeht.

Christian

Genau, insofern, da war die

Christian

parkrun.de für mich alles mehr so aus dieser

Christian

eher so Verwaltungs-Vereinsmeierei-Perspektive.

Christian

Aber immerhin, ich meine, es waren

Christian

1200 Besucher.

Jochen

Genau, das hatte ich auch.

Jochen

Ich habe die genaue Zahl nicht gehört,

Jochen

aber das waren auf jeden Fall mehr als

Jochen

1000 Leute und

Jochen

wenn ich mich so an vergangene Veranstaltungen

Jochen

erinnere, das ist diesmal

Jochen

mit den meisten

Jochen

Publikum da und

Jochen

es ist kontinuierlich immer mehr geworden und jetzt ist es halt

Jochen

eine richtig, richtig große Veranstaltung.

Jochen

Früher war das alles irgendwie überschaubar

Jochen

und jetzt ist das echt Wahnsinn.

Christian

Also ich erinnere mich, die erste Runde, die wir hatten,

Christian

die erste in Anführungszeichen Konferenz,

Christian

die im Python-Umfeld, die war halt damals von den SOAP-Leuten,

Christian

die war 2001 in Bielefeld, da waren wir 24 Leute.

Christian

Da haben wir uns an der Uni mit dem Grill getroffen

Christian

und mal irgendwie zwei Tage lang uns Dinge gezeigt.

Christian

Das war eigentlich sehr cool.

Christian

Und damals gab es dann auch schon dieses Thema von,

Christian

das zog dann auch ein und dann waren es statt 25 irgendwie 50,

Christian

dann hast du irgendwie 100, dann hast du irgendwie 150

Christian

und dann war es eine Zeit lang so immer so

Christian

in der Größenordnung und ich erinnere

Christian

mich, dass ich auf der ersten

Christian

Python-Konferenz in den USA

Christian

so 2004 glaube ich

Christian

war, das waren dann damals

Christian

400 Leute

Christian

oder so in der Größenordnung

Christian

und die wuchsen auch immer weiter und dann

Christian

waren es glaube ich in Texas unten in

Christian

Dallas waren es plötzlich 2000

Christian

und

Christian

wir haben uns immer angeguckt, weil

Christian

du hast halt auch alles, was die

Christian

Konferenzen an der Räumlichkeiten konnten,

Christian

gerade was das Internet angeht, du hast immer

Christian

alles gesprengt, weil

Christian

die dann immer dachten, naja, von 2000 Leuten

Christian

sind mal irgendwie 10% irgendwie mit ihrem

Christian

Notebook unterwegs oder brauchen

Christian

WLAN und du musstest

Christian

denen damals mal schon klar machen, nee, hier kommen jetzt

Christian

2000 Leute, die haben jeder zwei Geräte.

Christian

Genau, und da sind wir jetzt im Prinzip halt auch

Christian

angekommen. Ich meine, mit 1200 Leuten sind wir so

Christian

groß wie die Europython. Die hatten

Christian

glaube ich auch 1200, wobei da gibt's

Christian

ein paar Unstimmigkeiten wohl, angeblich

Christian

was die Rechnung von Köpfen und

Christian

Tickets angeht. Und wir hatten

Christian

vor allem 800 Leute auf der Warteliste.

Christian

Ja, Wahnsinn.

Christian

Also wir werden nächstes Jahr

Christian

nochmal die Location wechseln. Ich meine, die

Christian

neuen Termine sind schon draußen, also für alle,

Christian

die nochmal hinkommen wollen,

Christian

es wird nächstes Jahr wieder in

Christian

Berlin sein

Christian

und tatsächlich die

Christian

die habe ich noch, die habe ich jetzt nicht griffbereit,

Christian

aber es wird wieder im Oktober sein.

Christian

Und es gibt schon offizielle Daten im Oktober.

Christian

Die Webseite gibt es gerade nicht her, aber leider nicht mehr im Kosmos.

Christian

Das Kosmos fand ich eigentlich sehr schön, das Personal da war auch echt angenehm.

Christian

Ich fand es einen guten Move, dass nur vegetarisches Essen angeboten wurde.

Christian

Ich finde, das braucht es auf der Konferenz nicht,

Christian

dass man sich da mit billigem Fleisch irgendwie versorgt.

Christian

Das hat mich überrascht, weil ich zwei Wochen vorher

Christian

hatte ich selber darüber nachgedacht, es wäre eigentlich mal cool, wenn das jemand

Christian

mal machen würde und war dann ganz positiv

Christian

angetan.

Christian

Kam nicht bei jedem gut an, ich muss auch sagen,

Christian

die haben auch handwerklich leider ein paar

Christian

Stellen dann daneben gegriffen, weil es einfach

Christian

nicht gut gemacht gewesen war.

Christian

Aber die Idee

Christian

fand ich auf jeden Fall gut.

Christian

Nächstes Jahr wird es dann wohl

Christian

noch eine etwas größere Location werden, ich glaube,

Christian

da werden wir anderthalb oder tausendsechhundert

Christian

Leute reinlassen, aber das ist

Christian

im Prinzip schon mit Ansage, dass es wieder eine Wasserliste

Christian

geben wird.

Christian

Nur wir kommen halt nicht,

Christian

es gibt irgendwann keine größeren Locations

Christian

mehr.

Jochen

Irgendwann ist halt Schluss. Es gibt noch

Jochen

irgendwie am Alexanderplatz

Jochen

irgendwie da, wo auch der CCC-Kongress

Jochen

häufiger war.

Jochen

Ja, warm, warm, warm.

Jochen

Wir waren noch

Christian

bei der Perkin.de, wir hatten ein bisschen geguckt, wie groß es

Christian

wird, wo es nächstes Jahr hingeht. Also es wird auf jeden Fall

Christian

wieder Berlin sein. Wir werden

Christian

zusehen, dass wir irgendwie mehr Leute reinlassen, weil es natürlich

Christian

blöd ist, wenn wir

Christian

zu viele Leute auf die Warteliste setzen müssen.

Christian

Und du hast es gerade erzählt, dass das Essen

Dominik

trotzdem sehr leckeres, vegetarisches geben

Dominik

sein soll, irgendwie ab und zu mal komisch geschmeckt haben soll.

Dominik

Ja gut, ich meine...

Christian

Es gab halt vom... Der Anbieter

Christian

hat es halt an ein paar Stellen nicht gut umgesetzt.

Christian

Ich glaube, am ersten Tag war das Kartoffelkarton halt

Christian

nicht durch. Aber das wäre

Christian

bei einem Stück Fleisch genauso blöd.

Christian

Ja, und das ist natürlich auch schwierig, was

Jochen

solche Mengen irgendwie alle gleichzeitig...

Jochen

Ja, da kann man immer mal was schicken.

Jochen

Da kann man wenigstens ein Challenge.

Christian

Ja, aber sie versauen

Christian

es auch immer wieder auf die gleiche Art und Weise.

Christian

Ja.

Christian

Ne, genau, also ansonsten

Christian

das war, ich fand es in Berlin eigentlich sehr angenehm.

Christian

War vom Umfang her

Christian

fand ich gut. Ich habe

Christian

halt auch bei mir so viele interessante Gespräche

Christian

gehabt. Es war jetzt ja diesmal überlagert

Christian

mit der PyData.

Christian

Wird es wahrscheinlich nächstes Jahr auch wieder

Christian

sein. Man merkt so ein bisschen, dass

Christian

es halt, Python hat

Christian

je nach Generation schon fast

Christian

so ein bisschen unterschiedliche Schwerpunktthemen.

Christian

Vor zehn Jahren war Web halt immer so

Christian

das treibende Thema im

Christian

Programm. Jetzt ist es

Christian

alles, was rund um Machine Learning, Data

Christian

Science und so geht.

Christian

Und das sind eigentlich zwei

Christian

Konferenzen, die laufen jetzt aber zusammengefaltet

Christian

in einer im Prinzip.

Christian

Aber

Christian

in Summe ist es einfach so ein extrem diverses

Christian

Profil. Es ist halt nicht so, dass

Christian

alle jetzt irgendwie erst A und jetzt B

Christian

gemacht haben, sondern es wird halt immer mehr.

Christian

Das wird halt, man hat halt irgendwie

Christian

dieses eine Hauptthema, was vielleicht so 60%

Christian

der Themen bestimmt

Christian

und aber die anderen 40% sind immer noch

Christian

doppelt so groß wie das, was wir

Christian

vor fünf Jahren hatten.

Christian

Also da ist einfach die Diversität

Christian

und worüber man mit Leuten reden kann schon,

Christian

das ist fantastisch.

Christian

Ja, fand ich auch.

Christian

Sehr schöne Veranstaltung.

Dominik

Ja, sehr spannend. Also dieses Jahr versuche ich mir auch tatsächlich

Dominik

wieder tiefer in den Kalender reinzustreichen.

Dominik

Aber dieses Jahr,

Dominik

da kam leider nichts mehr da rein.

Christian

Ich meine spannend ist ja, dass es eine rein englischsprachige Konferenz ist im deutschen Raum und wir so ein bisschen der Europython den Rang ablaufen an ein paar Stellen. Deutschland liegt einfach, das haben wir in Karlsruhe gemerkt und jetzt in Berlin auch wieder, Deutschland liegt halt schön zentral und das heißt, da ist für viele der Anfahrtsweg gut kalkulierbar, als wenn es dann irgendwie mal in Spanien, zu Schweden, zu Edinburgh war es glaube ich auch mal.

Christian

Schweiz war jetzt dieses Jahr, glaube ich,

Christian

ganz gut.

Dominik

Und das ist Dublin angenagt, oder?

Dominik

Das ist nächstes Jahr.

Jochen

Ja, kann sein, weiß ich nicht. Aber diesmal war es, glaube ich, Basel.

Jochen

Genau, diesmal war es Basel.

Jochen

Ich meine, Schweiz ist halt auch ein tolles Pflaster.

Christian

Das schreckt auch immer so den einen oder anderen ab.

Christian

Was war denn in Stockholm?

Christian

Keine Ahnung.

Christian

Wann war das denn?

Jochen

Es gab irgendwie eine Django-Con mal irgendwo da.

Jochen

Aber ich weiß nicht genau, wann das war.

Jochen

Naja.

Jochen

Wie auch immer.

Jochen

Ja.

Jochen

Tja, was haben wir denn sonst noch an Neuigkeiten?

Jochen

Python 3.8.

Jochen

Ja, ist draußen.

Jochen

Es gibt ein paar ganz interessante

Jochen

Geschichten, die dabei sind.

Jochen

Ja, ist jetzt auch nicht so wahnsinnig umwerfende

Jochen

neue Geschichte. Es gibt ein bisschen neue Syntax.

Jochen

Ich weiß nicht, vielleicht fangen wir damit am besten

Jochen

mal an. Es gibt den

Jochen

Walrus Operator.

Jochen

Eine Assignment Expression.

Jochen

Ja. Was ist das?

Jochen

Das ist eine Expression,

Christian

die vorher nur ein Statement war.

Christian

Ja, das verstehe ich. Kein Anfänger.

Christian

Ja.

Dominik

Also on the fly wird etwas zugewiesen.

Dominik

Ja, man kann damit

Dominik

Zeilen sparen. Voll gut.

Dominik

Also man muss nicht erst was definieren,

Dominik

sondern man kann quasi in der Frage was definieren.

Jochen

Ja, also ein Fall, den man ganz

Jochen

oft hat, vielleicht ist es am einfachsten,

Jochen

das an dem Beispiel zu erklären, ist, dass man

Jochen

irgendwie sich zum Beispiel

Jochen

irgendeinen Wert aus einem Dict oder so

Jochen

holt und dann damit irgendwas macht,

Jochen

aber das eigentlich auch nur dann machen

Jochen

möchte, wenn es tatsächlich

Jochen

da drin ist. Also was man dann üblicherweise

Jochen

macht, ist, man macht Sache Dict.get

Jochen

und dann überprüft man halt,

Jochen

ob das, was zurückgekommen ist, ein None war oder

Jochen

nicht. Und das kann man sich jetzt

Jochen

quasi sparen und das halt in einer Zeile

Jochen

hinschreiben. Und da das relativ oft auftritt,

Jochen

spart es halt schon ganz ordentlich Zeilen.

Jochen

Man kann halt, ja, eben

Jochen

sozusagen if und dann halt

Jochen

die Variable, die man zuweisen möchte, Doppelpunkt gleich

Jochen

und dann könnte man sowas

Dominik

Also if, keine Ahnung, key, Doppelpunkt

Dominik

gleich, dick, get, bla,

Dominik

dann

Jochen

Value eher, nicht key, aber genau, dann

Jochen

macht man irgendwas

Jochen

und in dem Fall, wenn es halt nicht drin ist, dann

Jochen

würde man

Jochen

da gar nicht reinspringen in den Block.

Jochen

Ein anderer Fall, wo man

Christian

es gut anwenden kann, sind halt

Christian

Wildschleifen, wo du irgendeine

Christian

Arbeitsvariable belegst und

Christian

du

Christian

das einmal am Anfang halt gleich

Christian

zusammenfassen kannst. Dann kannst du sagen,

Christian

hier geht die nächste Runde von der While-Schleife

Christian

los. Dann sagst du while

Christian

x-Doppelpunkt gleich

Christian

deine Expression und

Christian

das

Dominik

Das ist ja fast wie ein Repeat-Until.

Dominik

Ja,

Dominik

nein.

Dominik

Warum nicht?

Christian

Weil es ja immer noch im Kopf ausgeführt wird. Das wurde ja mal

Christian

am Anfang gemacht. Ja, okay, also tatsächlich.

Christian

Du hast halt für den Einstieg in die Schleife

Christian

hast du es dann immer noch trotzdem

Christian

muss es homogen sein.

Christian

Ja.

Jochen

Und ansonsten, was wir auch mal bei regulären Ausdrücken

Jochen

ist auch oft so, dass man dann halt ein Match-Objekt

Jochen

zurückbekommt, wenn es halt irgendwie gematcht hat oder ansonsten

Jochen

halt none und das geht halt dann auch so, dass man

Jochen

das halt deutlich

Jochen

ein bisschen einfacher hinschreiben kann.

Jochen

Also ist für manche Fälle ganz praktisch.

Christian

Es ist halt nicht nur zum Zeilensparen, sondern

Christian

die Lesbarkeit ist manchmal halt einfach angenehmer, wenn

Christian

du momentan

Christian

Dinge erst an eine Variable

Christian

binden musst, um sie dann

Christian

auszuwerten. Und aber

Christian

eigentlich würdest du es vom

Christian

Lesefluss her gerne

Christian

zusammengeschrieben haben. In den Fällen

Christian

wäre das halt was, was du gut reinlegen kannst.

Christian

Also alle sind begeistert

Dominik

vom neuen Assignment-Operator?

Dominik

Nee, das kann man nicht sagen.

Dominik

Nein, überhaupt nicht.

Dominik

Hört es sich gerade bei euch an?

Christian

Es gibt halt so drei, vier

Christian

Fälle und ich glaube, das ist ein

Christian

Ausdruck von

Christian

dem

Christian

deutschen Begriff für Maturity,

Christian

von der Ausgereiftheit von Python.

Christian

Python ist ja

Christian

in Summe vollständig. Es gibt ja wenig

Christian

Dinge, die einem so die ganze Zeit irgendwie

Christian

im Weg rumstehen, dass man sagt, oh, bevor das

Christian

nicht geht, kann ich Python nicht benutzen.

Christian

Das muss man ja nicht hier stehen.

Christian

Aber es gibt immer mal den einen oder anderen

Christian

Fall, der dann doch auch in der Diskussion,

Christian

in der Wars Operator war, lange

Christian

diskutiert worden, glaube ich.

Christian

Ich weiß gerade nicht.

Dominik

wie du dann sagst, so nö, ich mach das mal ohne mich.

Dominik

Ja, möglich, ja.

Christian

Und es ist halt immer, wenn man sagt,

Christian

Python soll halt nachher auch gut zu lesen sein,

Christian

dann ist es natürlich schön, sich über die Zeit halt auch Gedanken zu machen,

Christian

ob bestimmte syntaktische Ergänzungen Sinn machen,

Christian

auch wenn man sie nicht ständig braucht.

Christian

Das ist immer ein bisschen blöd, weil ein größerer Sprachumfang heißt,

Christian

komplexere Interpreter, also mehr Möglichkeiten,

Christian

dass irgendwas kaputt geht, gerade jetzt in dem Fall.

Christian

das ist jetzt ein Feature,

Christian

wo etwas, das vorher nur in Statements

Christian

ging, jetzt auch in Expressions ging. Das heißt,

Christian

da müssen in Zukunft im Sprachdesign auch drauf aufgepasst

Christian

werden, wenn am Scoping

Christian

oder an ähnlichen Dingen was geändert

Christian

wird, dass das dann halt auch in einem

Christian

in der Expression halt auseinander

Christian

fliegen kann. Das muss man

Christian

gut abwägen. Aber in Summe

Christian

offensichtlich hat man sich ja geeinigt und gesagt,

Christian

das ist es uns wert.

Dominik

Also ich finde es aber doof, wenn ich das jetzt richtig verstanden habe.

Jochen

Nö, also ich finde es tatsächlich

Jochen

ganz nett, aber ich weiß auch, dass es

Jochen

irgendwie sehr kontrovers diskutiert wurde

Jochen

und dass es halt Leute gibt, die das hassen.

Jochen

Und

Jochen

was auch irgendwie in gewisser Weise nachvollziehbar

Jochen

ist, also, aber, ja,

Jochen

hm,

Jochen

wir werden wahrscheinlich irgendwann in ein paar Jahren

Jochen

wissen, ob das eine super Idee war oder total doof,

Jochen

keine Ahnung.

Dominik

Vielleicht schenken sich jetzt wieder ganz viele Anfänger ab und so.

Christian

Ich meine, die Gefahr ist tatsächlich immer,

Christian

dass wenn, aber Python hat

Christian

eigentlich, was die Lernkurve angeht, einen ganz angenehmen

Christian

Vektor, dass

Christian

Leute sozusagen zu früh auf

Christian

zu spezielle Fälle sich einschießen

Christian

und dann meinen, sie müssen den

Christian

Voice Operator rechts und links an allen Ecken und Enden

Christian

einsetzen. Es ist aber mehr

Christian

dieses Thema, dass man halt, Python ist halt

Christian

nun mal eine idiomatische Sprache, das heißt,

Christian

es ist eine Sprache, die es daraufhin designt, dass man

Christian

sich ähnlich wie eine natürliche Sprache auch

Christian

so mit ihr auseinandersetzt und

Christian

bestimmte Wendungen in bestimmten Situationen

Christian

halt einsetzt und in bestimmten Situationen halt

Christian

nicht. Deswegen gibt es halt,

Christian

wenn man im Fernsehen ein Wort mit F sagt,

Christian

dann irgendwann ein Piepsen.

Christian

Und in einem anderen Kontext kann man das halt einsetzen und das ist halt, da ist Python, Raymond Hettinger sagt an der Stelle immer gerne, Python ist halt eine Sprache für Erwachsene, du musst halt wissen, was du tust und so ist es auch mit allen professionellen Werkzeugen oder auch mit Power Tools, klar kannst du dir halt den Finger bohren, deswegen solltest du halt wissen, was du tust.

Dominik

Eine Bohrmaschine bitte nicht anfassen.

Dominik

Ja, genau.

Dominik

Nicht direkt auf die Hand zielen.

Dominik

Vielleicht auch bei anderen liebenswichtigen Organen auslassen.

Dominik

Ja, ja, genau.

Dominik

Aber also der

Christian

Bohrmaschine ist ein Punkt, da kommen wir

Christian

nachher vielleicht ganz zum Schluss, wenn wir unser

Christian

Rattenloch-Thema finden.

Christian

Ist tatsächlich ein Aspekt, mit

Christian

dem ich halt in letzter Zeit öfter

Christian

mal gehadert hatte, weil ich habe

Christian

einen Anwendungsfall, wo ich ständig

Christian

etwas

Christian

sowohl

Christian

verwenden, als auch zuweisen

Christian

möchte. Und das ist halt

Christian

schwierig.

Christian

Ja, jetzt geht's.

Christian

Und

Christian

insofern, ich habe ganz persönlich eben

Christian

den Anmerkungswunsch gesagt, da wird es dann interessant

Christian

werden. Ich habe ja das

Christian

Thema, dass, bevor ich halt sagen kann,

Christian

in meiner Library unterstütze ich halt

Christian

alles nur noch ab Python 3 aufwärts.

Christian

Das wird halt noch eine Weile

Christian

sein. Ich bin halt mehr in der Spanne

Christian

3.5 bis 3.8 halt momentan.

Christian

aber das ist zumindest halt am Horizont erkennbar, ja.

Christian

Ja, also

Dominik

mit 3.8 werden wir das mal weitermachen wollen.

Dominik

Ja, genau.

Dominik

Also was ich, wo ich doof gestolpert bin, es gibt einen blöden

Dominik

Bug jetzt mit Jupiter und zwar

Dominik

fliegt das unter Windows einem um die Ohren,

Dominik

wenn man versucht so einen Notebook aufzumachen.

Dominik

Geht einfach aus bei 3.8.0,

Dominik

das ist natürlich wahnsinnig so toll.

Dominik

Aber es gibt einen Fix, man kann nämlich einfach

Dominik

in Tornado, was da

Dominik

wie quer schießt, Asung.io

Dominik

anpassen, also unter Tornado-Plattform Asung.io

Dominik

irgendwie in deren Zeit-Packages

Dominik

drin und kann da einen kleinen

Dominik

Codeschimpfsel eintragen, Import Assoc.io und dann

Dominik

den Event-Loop-Policy ansetzen

Dominik

auf, ja, den

Dominik

Windows-Selector-Event-Loop

Dominik

und dann geht's wieder. Das ist ein bisschen hakelig,

Dominik

aber ich hab gehört, das soll irgendwann gefixt werden

Dominik

in 3.8.1 oder so.

Dominik

Ja, nur für alle, die vielleicht drüber gestorben sind

Dominik

und sich gewundert haben, warum das nicht geht.

Dominik

Ja, das ist natürlich schon so ein bisschen bitter,

Dominik

wenn das dann wieder alle Notebooks auf,

Jochen

na gut, wer benutzt denn Twitter-Notebooks auf Windows?

Jochen

Das ist,

Jochen

Ja, ich glaube, das ist tatsächlich

Jochen

bei einigen Menschen.

Christian

Ist der Trigger gewesen, weil die Default-Policy

Christian

geändert wurde für das Async-Io in Windows?

Christian

Möglicherweise. Ich habe keine Ahnung

Dominik

über den Grund, muss ich ehrlich gestehen. Ich habe einfach nur diesen Fix

Dominik

gefunden und gedacht, okay, ich probiere es mal aus.

Dominik

Und dann ging es tatsächlich wieder.

Dominik

Also irgendwas war da mit Async-Io kaputt.

Dominik

Ich weiß nicht, die haben, glaube ich, bei 3.8 auch was mit Async-Io verändert

Dominik

bei dem Verhalten.

Dominik

Und da kann es gut sein, dass da irgendwas geändert worden ist.

Dominik

Also ich meine auch im Kopf zu haben,

Dominik

dass über dieses Thema,

Dominik

welche Loops, wo Default

Christian

sind, dass da

Christian

was passiert ist, kann halt sein,

Christian

dass da jetzt irgendeine, ja.

Dominik

Ja, es ist was kaputt gegangen und das ging dann nicht mehr

Dominik

und dann, ja, bin gespannt.

Dominik

Das hat ein bisschen Gehäude

Dominik

verursacht, irgendwie online.

Dominik

Ja, ich bin auch noch nicht wirklich umgestiegen,

Jochen

weil halt viele der Data Science-Geschichten

Jochen

noch nicht, also ich

Jochen

könnte gar nicht wirklich umsteigen,

Jochen

weil eben so lange sowas wie OpenCV

Jochen

und solche Sachen noch nicht

Jochen

wirklich, also ich glaube, heute ist Pandas

Jochen

in Conda

Jochen

Conda Forge

Jochen

oder auch schon in der offiziellen

Jochen

Conda Distribution mit drin

Jochen

irgendwie für Python 3.8,

Jochen

aber es gibt halt noch jede Menge

Jochen

Pakete, die noch nicht gebaut, also

Jochen

oft ist es, es muss einfach nur nochmal neu

Jochen

gebaut werden und dann geht's, aber

Jochen

manche Sachen brauchen halt auch so ein bisschen mehr

Jochen

Aufwand und

Jochen

ja, daher hänge ich da immer so ein bisschen

Jochen

hinterher hinter den aktuellsten

Jochen

Python-Versionen.

Christian

Das fand ich auch spannend, da hattest du zu dem Thema nämlich auch Hinec einen 1-2-3-Tweets losgelassen zum Thema Wheelbuilding auf 3.8, dass er halt jetzt so lange die ganzen, also Hinec ist ja in der Community auch relativ gut bekannt um das ganze Security, Packaging, da ist er relativ aktiv und schreibt Blogposts und macht immer gute Vorträge und ihm ist halt auch aufgefallen, dass jetzt halt wieder so eine Phase einsetzt von die ganzen Wheels,

Christian

sind alle noch nicht gebaut und er hat sich in seinen

Christian

Deployments stark darauf verlassen, dass seine

Christian

Buildtimes im Prinzip relativ

Christian

schlank sind, weil er halt überall Reels einsammeln kann

Christian

und jetzt geht es halt, gehen halt überall die

Christian

Compiler-Orgien los und du hast irgendwie

Christian

eine Verzehn-, Zwanzigfachung

Christian

deiner Compile-Time.

Christian

Da war er dann auch nicht so happy

Christian

in der Kombination mit, dass die

Christian

Release-Kadenz ja dann noch angepasst

Christian

wurde.

Jochen

Ja, das stimmt, das ist jetzt schneller.

Jochen

Ja, jetzt haben sie es von

Jochen

18 auf 12 Monate runtergesetzt,

Jochen

wobei die Support-Zeiten die gleichen

Christian

sind. Also jetzt müssen sie mehr Branches

Christian

noch supporten.

Christian

Aber

Christian

das ist halt auch eine oder sowas, die dann,

Christian

wenn man die Einkürzung von 18 auf 12

Christian

mal hochrechnet, glaube ich, mehr wird's

Christian

nicht.

Christian

Was sagt eigentlich

Christian

die Uhr für Python 2.7.

Christian

Es sind noch

Christian

31 plus 30

Christian

plus 26 sind

Christian

noch 57

Christian

Tage.

Dominik

Dann ist rum aus vorbei mit Python

Dominik

2.7.

Jochen

Eigentlich wäre es jetzt allmählich mal so

Jochen

an der Zeit, die Landingpages hochzufahren

Jochen

und AdWords zu buchen auf

Jochen

Consulting für

Jochen

Python 2.

Dominik

Gleichzeitig mit der Abstellung der Streitumstellung.

Dominik

Ja, die haben sie ja verschoben.

Christian

Da kannst du in zwei Jahren

Christian

separate Consulting-Aufträge draus machen.

Christian

Na gut.

Christian

Ich meine, was tatsächlich interessant ist,

Christian

die Aussage von der Python Software Foundation

Christian

ist ja auch,

Christian

wenn du von deinem Vendor im Stich gelassen bist,

Christian

dann such dir halt Consultants.

Christian

Hier gibt es Leute,

Christian

die offerieren dir auch danach noch Support für Python 2.

Christian

Es ist halt nur die Aussage mit

Christian

also kostenlosen Support von den

Christian

Kernentwicklern, da ist jetzt mal endlich

Christian

der Zopf abgeschnitten. Die kümmern sich um

Christian

ausreichend Dinge, die müssen sich nicht auch

Christian

noch umveraltet beiseiten.

Christian

Legacy-Stuff. Ja, also die haben sich

Christian

wirklich lange, die haben jetzt wirklich 10 Jahre

Christian

noch länger, ich weiß es

Christian

gerade nicht. Und also, da gibt es

Christian

Consultants, die da auch beworben werden, tatsächlich von

Christian

der PSF, die pflegen Immunliste.

Christian

Also Jochen, wenn du da noch

Christian

noch Kapazitäten frei

Christian

kannst, die eintragen.

Christian

Ich habe selber

Christian

ich habe selber gerade mein

Christian

eines großes Projekt

Christian

mal noch schnell just in time

Christian

auf Python 3 umgestellt

Christian

war wirklich auch erstaunt

Christian

ob der

Christian

in Summe Geschmeidigkeit, also ich meine

Christian

seit 10 Jahren die Aussage ist

Christian

schreib halt Tests für deine Sachen

Christian

dann kannst du halt nämlich danach gucken, ob die

Christian

Tests wieder gehen und

Christian

also ich bin glaube ich jetzt bei einem

Christian

Projekt, was relativ komplex ist

Christian

und ich glaube es waren 6.000 Zeilen

Christian

6.000 Zeilen war ich

Christian

in der Umsetzung mit, glaube ich,

Christian

zehn Stunden Arbeit in Summe dabei.

Christian

Und dann waren die Tests alle wieder okay.

Christian

Und es tat erstmal sinnvolle Dinge.

Christian

Und tatsächlich, das

Christian

Pipe-2-to-3-Tool hat mir extrem viel

Christian

weggefuttert. Das hat gut funktioniert.

Christian

Und wenn man viel I.O. macht,

Christian

muss man halt eine Weile lang am Unicode rumschrauben

Christian

und dann geht's halt.

Christian

Nee, war ich jetzt

Christian

eigentlich überrascht, dass das

Christian

doch ziemlich geschmeidig ging. Hatte ich

Christian

irgendwie mit mehr Knöchel gerechnet.

Dominik

Ich hab letztens, hatten wir eine schöne Diskussion

Dominik

dafür im Channel, was dabei noch

Dominik

schiefgegangen ist. Und zwar haben sie das Rundungsverfahren

Dominik

geändert und dann ging

Dominik

kaufmännisches Runden irgendwie auf einmal anders.

Dominik

Und da war auch die Frage, was dann

Dominik

Pi 2, 3, 2, 2, 3

Dominik

macht.

Dominik

An der Stelle, das wusste ich auch nicht.

Christian

Ja, wenn das wichtig für dich ist, dann kannst du dir das

Christian

zum Glück anpassen.

Christian

Ja, aber das war tatsächlich spannend.

Christian

Ja.

Christian

2, 2, 3 ist ja pluggable mit den Fixern,

Christian

die da drin sind.

Christian

Also wenn man selber wirklich

Christian

eine große Code-Basis noch haben sollte,

Christian

die man noch nicht mal angefasst hat.

Christian

Aber dann ist man, glaube ich, auch nicht derjenige,

Christian

der Custom-Fixer schreibt.

Christian

Ja.

Jochen

Ja, da hat man sich wahrscheinlich dann schon länger nicht mehr so wirklich

Jochen

dafür interessiert, wie das da weitergeht.

Jochen

Ja.

Jochen

Ja, aber es ist jetzt auch mal,

Jochen

ich bin mal gespannt, wie viel Schmerzen das

Jochen

verursachen wird. Ich meine, es gibt ja auch dann größere Institutionen,

Jochen

die dann noch Support anbieten.

Jochen

Ich glaube, Red Hat hat auch irgendwie gesagt,

Jochen

dass sie einen Python 2 Fork weiter maintainen wollen oder so.

Jochen

Oh, sehr gut.

Jochen

Wenn die umgeforgt sind, haben wir auch alle den neuen Fork von Red Hat.

Christian

Dann kann ich auch in fünf Jahren nach einem Python 2.7

Christian

auf einen 3.6er Kernel fahren.

Jochen

Ja, Softwarearchäologie.

Christian

Ja, genau, lebende Archäologie.

Christian

Ja.

Christian

Sehr schön.

Jochen

Genau, ja, das war...

Dominik

Was kommt eigentlich nach Python 3.8 und 3.9?

Dominik

Kommt dann 3.10 oder kommt dann 4?

Dominik

3.10.

Christian

Außer sie ziehen das Argument wie Linus, der sagt,

Christian

Versionsnummern haben in dieser Hinsicht für mich keine Bedeutung

Christian

und ich mache ab irgendeinem Cut einfach.

Christian

Aber die zweite Stelle kann ja auch zweistellig werden.

Christian

Das ist ja nicht das Thema.

Jochen

Und jetzt, wo man die Leute schon von 2 zu 3 so erschreckt hat,

Jochen

wartet man da jetzt noch ein bisschen.

Christian

Ich mag die, ich wäre das ein Selbstmord.

Christian

Ich meine, was bei 3.8 noch dazukam,

Christian

das ist noch ganz interessant, aber auch wieder so eine

Christian

Kleinigkeit ähnlich wie beim Boris Operator

Christian

sind die Positional Only

Christian

Arguments. Oh ja, genau.

Christian

Bisher kann ich ja

Christian

in dieser Kombination

Christian

aus

Christian

Argumenten, die ich in einer bestimmten

Christian

Reihenfolge ohne Namen oder

Christian

mit Namen in einer beliebigen Reihenfolge

Christian

und unbenahmt

Christian

nach Reihenfolge und

Christian

benahmt ohne Vorankündigung

Christian

in diesen ganzen dynamischen

Christian

Varianten zu wissen kann,

Christian

kann ich momentan nicht verhindern,

Christian

dass jemand mir

Christian

ein Positionsargument halt auch

Christian

mit Namen angibt und das

Christian

gibt es jetzt tatsächlich als neues Ding,

Christian

dass man

Christian

markieren kann, dass Argumente wirklich nur

Christian

positional übergeben werden dürfen.

Christian

Wobei ich tatsächlich auch

Christian

zugeben muss, zum einen da ist mir tatsächlich

Christian

der Syntaxanteil eher zum Abgewöhnen.

Christian

Warum macht man das?

Christian

Was gibt es da für einen Grund für?

Christian

Den habe ich tatsächlich gerade auch nicht greifbar.

Christian

Ich weiß es nicht so genau.

Christian

Eben auf der

Christian

PyCon war halt auch ein

Jochen

Talk über diese Änderungen und da hat

Jochen

jemand ein Beispiel gebracht irgendwie mit Potenzieren,

Jochen

dass das da irgendwie

Jochen

ein Böse beißen kann. Ich kriege es

Jochen

jetzt glaube ich auch nicht so wirklich auf die Reihe,

Jochen

was da das Problem war. Aber im Grunde ist

Jochen

halt das

Jochen

Blöde, dass

Jochen

ja, wenn

Jochen

du halt nicht so richtig erwartest, dass wenn du

Jochen

irgendwie ein Keyword-Argument

Jochen

halt übergibst, dass das dann halt als

Jochen

Positionsargument auch reinkommen

Jochen

kann und dann sozusagen

Jochen

vielleicht einfach Dinge

Jochen

in der falschen, im falschen

Jochen

Hals irgendwie dazu landen.

Christian

Ja, was passieren kann, ist

Christian

wenn du ein,

Christian

da weiß ich aber auch nicht, was momentan der Effekt wäre,

Christian

aber du kannst solche Sachen bauen, wenn du

Christian

zum Beispiel halt durch

Christian

Stern und Sternstern

Christian

Dicts übergibst und in dem Dict ist

Christian

etwas drin, was eigentlich ein Positionsargument

Christian

wäre, dann könntest du das damit ersetzen.

Christian

Das heißt, wenn es

Christian

zwei

Christian

ja, aber

Christian

da würde sich eigentlich Python jetzt schon

Christian

gegen wehren, wenn du

Christian

ein Positionsargument namens

Christian

a per Position übergibst

Christian

und dann im Dict nochmal ein a mit drinstehen

Christian

hast als Sternstern-Keyword-Argument,

Christian

da würde

Christian

sich eigentlich schon gegen wehren und sagen, das geht so

Christian

nicht.

Christian

Aber für mich ist es ein bisschen so ein Ding ähnlich wie du bei Command-Line-Tools häufig, wenn du hintergelagerte Prozesse stoppen möchtest, so Stop-Dämmen-mäßig, und du willst an denen auch noch Argumente übergeben, dann hast du manchmal auf der Command-Line so ein Doppel-Minus, um zu sagen, hier ist das Ende von den Argumenten, die ich kriege, und hier gehen die Argumente los, die an den nächsten weitergegeben werden, damit die Parser nicht durcheinander kommen.

Christian

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 in der Funktionsdeklaration jetzt noch einen Slash als bedeutungstragendes Element hast. Ich weiß gar nicht, ist der Doppelslash auch belegt für die Keyword-Arguments oder sowas?

Christian

Nee, ich war nicht nur der Slash.

Christian

Aber das sieht...

Christian

Meine Ästhetik ist

Christian

arg verletzt, ja.

Christian

Ja, und wenn man

Jochen

halt nicht weiß, dass das... Ich meine, es ist sowieso,

Jochen

denke ich, für Leute, die damit

Jochen

anfangen... Also die Stern- und Doppelstern-

Jochen

Geschichten sind schon so...

Jochen

Was passieren hier für magische Sachen?

Jochen

Aber der Slash ist auch nochmal...

Jochen

Da kann ich mir auch gut vorstellen, dass da Leute

Jochen

ein bisschen verwirrt werden.

Jochen

Aber naja, ich meine, die meisten Leute

Jochen

werden das ja auch nie zu sehen kriegen. Also das ist halt

Jochen

etwas, was man halt dann macht, wenn

Jochen

man muss, aber ansonsten

Jochen

ja.

Jochen

Ja, das ist

Jochen

auf jeden Fall auch eine interessante Geschichte.

Jochen

Genau, dann... Das nächste Ding für Python 3.8.

Jochen

Bitte? Das nächste Ding für Python 3.8.

Jochen

Wir brauchen eine Chapter Mark.

Jochen

Ja, das muss ich mir

Jochen

sagen, ich glaube, ich habe es sowieso verpeilt.

Jochen

Ich weiß nicht, Reaper macht

Jochen

die Chapter Marks manchmal an den Anfang, wenn man das irgendwie

Jochen

falsch einschaltet. Warum haben wir eigentlich noch keinen Button, den wir irgendwie

Jochen

mit dem Respy-Store haben? Genau, ja, ja.

Jochen

Das haben wir auch mal vor.

Jochen

Genau, muss ich mal irgendwie

Jochen

mich mit bestätigen.

Jochen

Vielleicht ist er jetzt irgendwie im Jahreswechsel.

Jochen

Ich muss mal einen Buzzer kaufen und dann gucken wir mal

Jochen

so ein Interface.

Jochen

Gibt es eigentlich eine API für Reaper?

Jochen

Ja, man kann da solche Dinge reinhängen.

Jochen

Das ist tatsächlich alles möglich.

Jochen

Ja, genau.

Jochen

Schöne Geschichte. Also ich finde das

Jochen

total toll. Ich weiß nicht, ob andere Leute das

Jochen

auch gut finden.

Jochen

Aber für Multiprozessing gibt es jetzt so

Jochen

Shared-Memory-Geschichten automatisch.

Jochen

wenn man

Jochen

so Arbeit verteilen möchte auf mehrere

Jochen

Prozesse, was man manchmal muss, wenn man zum Beispiel

Jochen

ja auch irgendwie CPU-Power

Jochen

haben möchte, dann geht das ja wegen

Jochen

Global Interpreter Log nicht so

Jochen

wirklich mit Threads und

Jochen

dann startet man halt mehrere Prozesse, das ist halt die Lösung dafür,

Jochen

dann hat man aber das Problem, dass man, wenn man

Jochen

jetzt eine Funktion sozusagen,

Jochen

also eine Funktion mit unterschiedlichen Parametern

Jochen

in fünf unterschiedlichen Prozessen ausgeführt

Jochen

haben möchte, dass man irgendwie diese

Jochen

Parameter, die man der Funktion übergibt, halt irgendwie

Jochen

in diese Prozesse reinbekommen

Jochen

muss. Und da kann man

Jochen

natürlich

Jochen

einfach irgendwie die Sachen picklen,

Jochen

oder das funktioniert auch, ich glaube, sie werden auch

Jochen

per Default gepickelt.

Jochen

Aber

Jochen

wenn man jetzt irgendwie was

Jochen

übergibt, zum Beispiel halt auch gerade bei so

Jochen

Data Science-Geschichten, irgendwie

Jochen

große NumPy-Arrays oder so, die halt

Jochen

so groß sind, dass ich die nicht fünfmal

Jochen

in den Hauptspeicher packen kann,

Jochen

dann habe ich halt ein Problem, weil

Jochen

geht halt einfach nicht mehr.

Jochen

Und das,

Jochen

was man dann machen konnte,

Jochen

ist aber eine ganz schöne Fummelei,

Jochen

ist, man macht halt einfach ein Shared Memory

Jochen

Segment, was halt alle

Jochen

irgendwie, auf das halt alle Prozesse zugreifen

Jochen

und, also man

Jochen

kann dann so Dinge machen, man nimmt halt

Jochen

irgendwie Struct, das in der

Jochen

Standardbibliothek, das Modul und baut

Jochen

sich dann halt so eine binäre Datenstruktur zusammen

Jochen

in ein Shared Memory Segment und dann

Jochen

lädt man das in den Prozessen halt irgendwie,

Jochen

greift man darauf zu und dann hat man halt auch sozusagen

Jochen

die Daten übergeben, ohne dass man da

Jochen

irgendwie

Jochen

das picken muss.

Jochen

Aber das ist halt schon,

Jochen

ich würde mal sagen, dass die meisten Leute

Jochen

das ist schon auch ganz schön wild

Jochen

und würden das nicht so machen

Jochen

wollen und jetzt gibt es halt eine Geschichte, die halt

Jochen

automatisch drin ist und man muss sich selber nicht drum kümmern und

Jochen

wenn man die Daten,

Jochen

alle Prozesse, die man aufruft, die gleichen

Jochen

Daten verwenden sollen, dann kann man sagen, so

Jochen

hier in diesem Schatten der Musik, wenn das ist drin und dann

Jochen

kriegen die das und das ist

Jochen

natürlich schon ziemlich cool.

Christian

Einen habe ich noch, es gibt

Christian

noch ein kleines Ding, das war vielleicht sogar

Christian

den meisten nicht aufgefallen, es gab noch

Christian

einen, eigentlich

Christian

war es ein Bug, aber

Christian

hat jetzt eine Weile gedauert und zwar

Christian

Unpacking, also wenn ich

Christian

Listen-Elemente

Christian

an einen

Christian

an einen Wert

Christian

antackern möchte.

Christian

Also ich kann zum Beispiel einen Tupel

Christian

haben, da sind irgendwie die Zahlen 4, 5, 6

Christian

drin und wenn ich das jetzt einem

Christian

neues Tupel zuweisen möchte, kann ich

Christian

dann wieder sagen, T ist gleich

Christian

1, 2, 3

Christian

Sternen, mein bestehendes Tupel, um

Christian

die dann halt schön zu vermischen.

Christian

Das konnte man bisher

Christian

machen, aber das konnte man

Christian

nicht benutzen, wenn man eine Expression hatte,

Christian

die an einen Return oder an einen Yield ging.

Christian

Ein sehr seltenes Ding, aber das ist gerade, wenn man so funktionale Sachen hat, Generatoren und so ein Zeug, wo man irgendwas dynamisch ausgerechnet ist, mit was Statischem verknüpfen möchte, dann sind diese Unpackings manchmal sehr angenehm und die musste man momentan immer über mehrere Zeilen verteilen.

Christian

Es wird auch dargestellt, als eigentlich war es ein unintentional behavior seit Python 3.2 und jetzt ist es nicht mehr.

Jochen

Oh, ja, ich weiß nicht,

Jochen

hab ich noch was vergessen, Python 3.8?

Jochen

Es gibt noch die Audithooks

Jochen

irgendwie. Ja, was ist das denn?

Jochen

Was ist ein Audit?

Jochen

Fangen wir doch erstmal so an.

Jochen

Also von Python jetzt.

Jochen

Du kannst halt dich irgendwo reinklingen

Jochen

und dann Notifizierung liegen,

Jochen

wenn so bestimmte Sachen passieren.

Jochen

Aber ehrlich gesagt, das ist jetzt natürlich so ein bisschen zu allgemein.

Jochen

Ich weiß nicht genau...

Dominik

Ein Debugger über die Python-Runtime bauen, das hört sich komisch an.

Dominik

Ja.

Christian

Ich habe es mir tatsächlich auch noch nicht angeguckt,

Christian

aber es kann sein, dass etwas, was ich schon eine Weile haben wollte,

Christian

das Spannende ist, die Hooks können nämlich zum einen halt von außen reingegeben werden,

Christian

dass ich die, wenn ich jemandem eine Python-Runtime zur Verfügung stelle,

Christian

also als Hosting-Provider

Christian

oder als Plattform-Provider

Christian

kann es interessant sein, dass ich die

Christian

forcieren kann. Und also

Christian

ein Thema, und da ist nämlich letztens der Bug, den ich

Christian

vor 14 Jahren eingesteuert

Christian

habe,

Christian

zugemacht worden mit

Christian

das geht jetzt irgendwie anders, und da muss ich mal

Christian

reinschauen, war, dass Python

Christian

zum Beispiel, wenn ihm der Speicher

Christian

ausgeht, kriegst du, kriegt dein

Christian

Python-Programm halt einen

Christian

Memory-Error,

Christian

dass er keinen Speicher mehr alle

Christian

integrieren kann und dann kannst du

Christian

sozusagen nochmal versuchen, sinnvolle Dinge zu tun.

Christian

Das Problem ist, es gibt

Christian

einige Programme, gerade so Server, die

Christian

laufen und haben

Christian

und der Memory Error ist halt keine

Christian

System Exception, sondern es ist halt eine

Christian

Exception, das heißt, die wird

Christian

von einem normalen

Christian

Try Accept

Christian

auf Exception auch abgefangen

Christian

und wenn du halt einen Server hast und

Christian

deine Anwendung läuft in Speicherprobleme,

Christian

Das klingt lustig.

Christian

Ja, dann kriegt der Mainloop halt für den, keine Ahnung, für die HTTP-Anfrage, was auch immer, kriegt der Mainloop halt dann einmal einen Memory-Error, wirft einen 500er-Fehler dem Client gegenüber und nimmt die nächste Anfrage entgegen.

Christian

Und 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 sowas beobachten könnte und sagen kann, hey, in dem Fall mach bitte, mach den Python-Prozess einfach aus, lass ihn neu starten von Supervisor, SystemD oder wem auch immer, weil besser wird es nicht mehr.

Christian

Also da haben wir relativ lange Probleme.

Dominik

Kann man durch eine Speicherecke, in die niemand hin will oder sowas oder in der du irgendwas machen kannst, wo du nicht hin sollst?

Christian

Nee, einfach nur, wenn der Sprecher halt voll ist. Das kommt halt auch bei größeren Kisten halt mal vor. Bei Java ist das immer noch ein bisschen härter, da gibt es ein ähnliches Problem mit diesem, wie der Heap alloziiert wird und 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 es irgendwas Sinnvolles tun soll, fliegt es halt ständig auf die Nase.

Christian

Da haben wir uns lange mit rumgeschlagen.

Christian

Und da kam jetzt irgendwie die Info mit,

Christian

hey, das könnt ihr jetzt irgendwie von außen steuern.

Christian

Aber ich glaube, das sind nicht die Audit-Hooks.

Christian

Das ist irgendwas in der Nähe noch.

Christian

Ja, ich weiß nicht.

Christian

Also man kann hier,

Jochen

also ich habe hier auch gerade noch in den Pepp geguckt,

Jochen

was man da, also man kann an sehr vielen Stellen

Jochen

sozusagen sich so einen Hook setzen,

Jochen

wo man dann sagt, okay, wenn das passiert,

Jochen

dann möchte ich benachrichtigt werden

Jochen

und dann irgendwie darauf reagieren.

Jochen

Und das, ja,

Jochen

aber ich habe es mir ehrlich gesagt auch noch nicht so genau.

Jochen

Direkt E-Mail an den Admin.

Jochen

Tja, genau.

Jochen

Ansonsten, ich weiß nicht so genau.

Jochen

Haben wir noch irgendwas in 3.8, was

Jochen

irgendwie interessant wäre?

Jochen

I don't know.

Jochen

Nee, ich glaube also.

Christian

Nee, beim drüberfliegen waren das jetzt so die Sachen,

Christian

die ich mir rausgesucht hatte.

Christian

Ja gut, dann können wir die Liste auch wieder

Christian

abhaken.

Jochen

Python 3.8 irgendwie durch.

Jochen

Ja.

Jochen

Dann hat man noch den

Jochen

Core-Sprint.

Dominik

Oh ja, du wolltest noch was erzählen von einem Core-Sprint.

Dominik

Erstmal vielleicht kurz, was ist ein Core-Sprint?

Dominik

Also geht es um die Core-Developer, sind das

Dominik

eigentliche große, die Gurus

Dominik

von Python, die Entwicklerteams, die am Kern der

Dominik

Sprache arbeiten, ist das richtig?

Dominik

Ja, genau. Und

Christian

also typischerweise, die nutzen

Christian

halt schon auch die Gelegenheit, wenn sie können,

Christian

dass sie sich mal treffen und

Christian

diesmal war es jetzt vom

Christian

das ist jetzt vier Wochen her, 9. bis 13. September,

Christian

schon auch relativ

Christian

lang, fünf Tage, vier Tage,

Christian

haben sich 34 Leute getroffen,

Christian

große Gruppe, viele Langzeitleute,

Christian

aber das Kernteam hat sich auch in den letzten

Christian

Jahren extrem gut diversifiziert.

Christian

Also viele

Christian

Leute auch aus unterschiedlichen Ländern,

Christian

unterschiedlichen Hintergründen, das ist

Christian

eigentlich gut gewesen und die haben einen Haufen

Christian

Pull-Requests verarbeitet, 120 Stück

Christian

haben sie gesagt

Christian

und da wurde dann auch der

Christian

Python 3 neuen Release Schedule und jetzt die neue

Christian

12-Monats-Kadenz beschlossen.

Christian

Und

Christian

da machen sie auch viele mal

Christian

eine Infrastruktur, also der Bug-Tracker wird noch mal

Christian

angeguckt und

Christian

solche Dinge.

Christian

Und ein, zwei Sachen,

Christian

die sind mir aber dann konkret noch mal genauer

Christian

aufgefallen. Das eine ist,

Christian

es wird mal wieder am Grill rumgedoktert.

Christian

Ich weiß nicht, ob wir den im

Christian

Cast schon hatten.

Dominik

Der Global Interpreter, das ist einer der ersten Folgen.

Dominik

Vielleicht nochmal kurz anreichen für alle Menschen,

Dominik

die das als erstes hören oder so.

Dominik

Ja, das ist der Global Interpreter Lock

Christian

und das ist halt, um

Christian

zu verhindern, dass nicht-synchronisierte

Christian

Datenstrukturen auf C-Ebene

Christian

sich auf den Füßen rumtreten

Christian

und das ist der Grund, warum halt der

Christian

immer nur ein Statement

Christian

verarbeitet werden kann gleichzeitig

Christian

und ich mit Multithreading

Christian

in Python halt auch immer nur

Christian

eine CPU auslasten kann.

Christian

Und Jochen hatte jetzt gerade schon gesagt, dass es ja jetzt besseres Shared Memory Management auf der einen Seite gibt und das ist mir nämlich dann beim Durchgucken von dem Sprint auch aufgefallen, die Arbeit scheint noch in eine andere Richtung zu gehen, nämlich dass man, um den Gildum rumzugehen, mehrere Python-Interpreter in einem C-Prozess haben kann.

Christian

Und das ging bisher auch schon, der Interpreter war selber ein Objekt, was man, ich weiß gar nicht, ob man tatsächlich mehrere Interpreter starten konnte, die Ecke fasse ich einfach zu selten an, aber auf jeden Fall arbeiten sie jetzt dran, dass es so umgearbeitet wird, dass mehrere Interpreter im Prozess jeder seinen eigenen Global Interpreter-Log kriegt.

Christian

Und ich meine, das ist von der Arbeit her relativ logisch, was da zu tun ist.

Christian

Es ist ein C-Programm, da gibt es halt, wenn man nicht aufpasst, globalen Scope, globale Variablen und die müssen Sie jetzt im Prinzip einmal komplett alle wegputzen,

Christian

dass alle Daten, die irgendwas mit dem Interpreter zu tun haben, nicht globale Variablen sind, sondern dass die alle an eine Interpreterinstanz dran getackert werden.

Christian

Und dann haben wir nämlich

Christian

tatsächlich die Chance, Python-Code

Christian

in einem Prozess über

Christian

mehrere Threads parallel

Christian

auszuführen. Und wenn man dann nämlich wieder

Christian

die Techniken ins Spiel bringt zum Thema

Christian

Shared Memory,

Christian

dann geht das vielleicht sogar

Christian

tatsächlich auch ganz gut leichtgewichtig.

Christian

Und das klingt jetzt nach so einem

Christian

ganz

Christian

Kunstgriff, anstatt

Christian

den GIL loszuwerden

Christian

oder den Interpreter an der Stelle da weiter

Christian

aufzubohren, einfach zu sagen, komm, dann

Christian

mehrere Interpreter parallel,

Christian

wir dröseln die Datenstrukturen so

Christian

auf und dann kann halt jeder Interpreter

Christian

in unterschiedlichen Prozessen

Christian

laufen und siehe da,

Christian

wir sind in der Lage, mit einem Prozess mehr CPUs

Christian

auszulasten. Also das wäre tatsächlich

Christian

nochmal, finde ich, ein interessanter Ansatz.

Christian

Ja,

Jochen

das klingt tatsächlich sehr interessant.

Dominik

Ja, gerade wo jetzt die Kerne so mehr zunehmen,

Jochen

Ja, das ist natürlich auch so ein Dauerthema, wobei ich meine, die Fälle, wo man das wirklich, wirklich braucht, sind auch eher so beschränkt, würde ich mal sagen, weil die meisten Leute ja nicht, also ich meine, dass man CPU und, also dass man IOMultiplexen will, das kommt schon häufig vor, aber dass man das gleichzeitig mit viel CPU-Verbrauch macht, also wenn man nicht gerade einen Datenbank-Server schreibt oder so, würde ich jetzt sagen, gar nicht so super häufig.

Jochen

Nee, du willst ja immer

Christian

eigentlich auch über mehr Prozesse skalieren können.

Christian

Ja, klar. Natürlich.

Christian

Ja.

Christian

Genau, ich glaube,

Christian

der Grund, warum das mit dem

Jochen

GIL halt so ein Problem ist, ist auch da irgendwie das,

Jochen

wie Python den Hauptspeicher

Jochen

verwaltet, ist da

Jochen

so ein Riesenproblem, weil

Jochen

das Reference-Counting, man müsste das alles

Jochen

irgendwie locken eigentlich. Also,

Jochen

es ist jetzt auch so, was ich mal

Jochen

darüber gehört habe, aber schon wieder

Jochen

ein bisschen her.

Jochen

Und das kann man natürlich machen, man kann irgendwie

Jochen

vorher jeder Operation, die man

Jochen

irgendwie beim Reference-Routing macht,

Jochen

sagen, okay, wir locken

Jochen

das jetzt hier oder halt irgendwie

Jochen

ja, sozusagen den Zugriff

Jochen

dann exklusiv machen, damit sich da irgendwie nichts

Jochen

überschreibt.

Jochen

Aber dann wird halt,

Jochen

wenn man das einfach so macht, glaube ich,

Jochen

das wird 40 Mal so langsam.

Jochen

Und dann haben irgendwelche Leute

Jochen

sehr unheilige Dinge getan und rumgetrickst

Jochen

und haben es auf Faktor 20 irgendwie runtergekriegt

Jochen

oder so, wovon schon niemand geglaubt hat, dass das

Jochen

möglich wäre.

Jochen

Aber das

Jochen

ist halt so das Problem. Man kann es halt nicht

Jochen

also

Jochen

mit der Art, wie das

Jochen

Speichermanagement, also mit Reference-Routing funktioniert,

Jochen

geht das halt wohl

Jochen

nicht gut. Und ja, die einzige

Jochen

gute Möglichkeit, also wie es halt weiterhin schnell

Jochen

bleiben kann, ist, dass man sagt,

Jochen

nee, es gibt nur einen

Jochen

Thread, der halt irgendwie daran Dinge

Jochen

am Reference-Routing ändern kann.

Jochen

Ja, dafür braucht man halt den GIL irgendwie.

Jochen

Aber ja, also das mit den mehreren Interpretern,

Jochen

das klingt auch sehr interessant. Also da bin ich mal

Jochen

gespannt.

Jochen

Weil das ist ja auch mal so ein Standard-Argument,

Jochen

was an Python halt nicht so toll ist

Jochen

gegenüber anderen.

Jochen

Was aber auch für den

Christian

Alltag gar kein

Christian

Problem ist.

Christian

Nicht wirklich, nein.

Christian

Und das ist ja auch gerade das Tooling über

Christian

Multiprocessing ist halt inzwischen extrem

Christian

geschmeidig geworden. Sowohl, also auf der einen

Christian

Seite halt für I.O., Multiplexing ist

Christian

Async I.O. extrem angenehm

Christian

geworden und mit

Christian

Multiprocessing und so Prozesse starten,

Christian

das tut

Christian

meistens,

Christian

tut vor allem auf eine Art und

Christian

Weise, wo man weniger

Christian

scharf nachdenken muss.

Christian

Threads haben halt das Problem, das wissen wir seit

Christian

20 Jahren, dass du dir ganz

Christian

schnell halt in den Fuß schießt und

Christian

Dinge passieren, die du nicht willst

Christian

und wenn du es halt über so Prozesse

Christian

auftrennst, hast du eine klare I.O.-Grenze

Christian

und wenn du async.io machst, dann hast du halt

Christian

eben das Thema, dass du selber bestimmst,

Christian

wann du die Kontrolle über

Christian

deinen Code-Pfad abgibst

Christian

und wann nicht.

Christian

Ich glaube, das ist nochmal so eine eigene Folge irgendwie.

Dominik

Async und Shedding in Python, da haben wir auch gar nicht

Dominik

genug für gemacht. Das ist auch jedes Mal, glaube ich,

Dominik

mindestens eine Folge, wahrscheinlich

Dominik

komplett. Das ist ein alles ziemlich

Dominik

fette Brocken.

Christian

Was mir auffällt, ist, dass man bei async

Christian

wahrscheinlich tatsächlich dann,

Christian

wenn man das in einer

Christian

hier nochmal rausholen möchte,

Christian

was, glaube ich, wirklich eine gute Idee ist, dann

Christian

müssten wir uns wahrscheinlich was einfallen lassen, um

Christian

Code-Beispiele während in den Stream

Christian

irgendwie einzubetten.

Jochen

Ja, genau, das ist natürlich auch so eine

Jochen

Sache, wie kriegt man das eigentlich gut

Jochen

hin? Da habe ich auch schon mal drüber nachgedacht, aber

Jochen

auch noch keine Lösung gefunden. Ich meine,

Jochen

man könnte natürlich auch irgendwie eine Videogeschichte

Jochen

dazu machen, aber das ist halt auch irgendwie alles.

Jochen

Ja, ich höre meinen Meinten.

Jochen

Ja, genau.

Jochen

Kann ich noch ein Video einblenden, irgendwo auf der

Jochen

Frontscheibe von meinem Wagen?

Jochen

Nee, das widerspricht

Jochen

irgendwie so dem, wie es benutzt wird.

Jochen

Ich weiß es auch nicht.

Jochen

Das muss man mal überlegen. Aber

Jochen

prinzipiell wäre das natürlich schon eine interessante

Jochen

Geschichte, dass man das halt

Jochen

irgendwie dabei hätte. Also

Jochen

zumindest irgendwie in den Shownotes auf der Website.

Dominik

So augmentiert. Ja, ich glaube, Bonus ist

Dominik

glaube ich gleich ausreichend. Wenn jemand nachschauen will, wie das

Dominik

dann geht, dann haben wir das so als Mini-Tutorial

Dominik

drin. Wenn sich jemand dann die Mühe machen möchte, das

Dominik

mitzudokumentieren von uns, dann

Dominik

ja, reicht ja.

Dominik

Also Links sind ja dabei, also ich würde sagen,

Dominik

das passt. Ich weiß, ihr der anderen Meinung seid,

Dominik

schreibt uns gerne. Also wir sind immer auf euer Feedback.

Dominik

Oder vielleicht hat jemand schon mal was gesehen,

Jochen

wo das gut gemacht wurde.

Dominik

Also ich habe tatsächlich, also das ist irgendwie

Dominik

so das Level, auf dem ich jetzt noch nicht so ganz angekommen bin,

Dominik

dass ich halt große Probleme habe, immer noch so

Dominik

zu verstehen, wann benutze ich denn jetzt was und was ist denn

Dominik

jetzt überhaupt ein Swett und wann nehme ich den, wann nehme ich jetzt

Dominik

irgendwie Async und vielleicht doch

Dominik

irgendwie anderer Taskmanager oder sowas

Dominik

dazwischen. Das ist noch nicht so ganz angekommen.

Dominik

Und ich glaube, das wäre auf jeden Fall nochmal spannend

Dominik

zu verstehen, warum, wieso, weshalb ich denn jetzt welche

Dominik

Technik an und wann das so best practice ist

Dominik

für was überhaupt.

Dominik

Ja, auf jeden Fall.

Dominik

Ja, eigene Folge.

Dominik

Ja, der

Christian

letzte Punkt, der mir beim

Christian

Sprint aufgefallen war, war, dass Guido

Christian

jetzt schließt sich so für heute wahrscheinlich

Christian

so der Themenkreis ein bisschen,

Christian

dass Guido nämlich angefangen hat,

Christian

eins der im Kern befindlichsten

Christian

Bauteile von Python, nämlich der

Christian

Puzzle-Generator für Python selber,

Christian

wo er tatsächlich sich

Christian

damals

Christian

89, 90 und dann

Christian

über die 90ern weg

Christian

das Herzstück

Christian

der Programmierung einer Sprache

Christian

nämlich Parser, Compiler

Christian

Interpreter

Christian

das er damals halt

Christian

selbst eingebaut hatte und

Christian

er wohl die letzten Jahre immer mal angesprochen

Christian

wurde auf einen ganz spezifischen

Christian

Typ von Parser

Christian

Generator, nämlich einen sogenannten Pack-Parser

Christian

da hat er

Christian

sich dran gemacht, tatsächlich dieses Stück komplett

Christian

noch mal auseinanderzunehmen, neu aufzubauen,

Christian

weil das wohl tatsächlich dann Einfluss hat

Christian

auf die später mal Parsing-Performance auf der einen Seite

Christian

und aber auch welche Sprachkonstrukte

Christian

sich eigentlich wie elegant definieren lassen,

Christian

mit wie viel Hex man eigentlich die Sprache definieren muss,

Christian

um den Parser dazu zu zwingen, dass er tut, was man will.

Christian

Und er hat eine ganze Reihe von Blogposts schon zugeschrieben,

Christian

die entstehen gerade noch,

Christian

aber er hat immerhin schon mal eine Gesamtübersicht aller, ich glaube, acht oder zehn vorhandenen

Christian

und geht immer recht detailliert in der Anwendung durch, in der Motivation

Christian

und auch wie das ganz konkret für Python aussieht, was er da wie zusammensetzt.

Christian

Das ist ein sehr spannend zu lesendes Thema.

Christian

Und das hat mich halt vor allem deshalb beschäftigt,

Christian

weil ich die letzten Wochen immer so ein bisschen wieder mit dem Thema zu tun hatte,

Christian

für einen bestimmten Anwendungsfall Python nativ zu benutzen oder mit einer DSL

Christian

und wenn man DSLs macht,

Christian

eine externe oder eine eingebettete.

Christian

Eine Domain-Specific-Language.

Christian

Also es gibt ein Projekt

Christian

von mir, das ist das

Christian

Bateau, das ist so ein Deployment-Werkzeug

Christian

und da gibt es

Christian

sowohl einen deklarativen

Christian

Anteil von wie definiere

Christian

ich, wie meine Anwendung

Christian

deployed werden soll im Allgemeinen

Christian

und dann auch so einen imperativen von

Christian

ja, wie kommt denn jetzt die Datei auf die Platte und so

Christian

und da habe ich

Christian

mich damals dafür entschieden, dass ich das innerhalb

Christian

von Python mache mit einer reinen

Christian

API und Python

Christian

ist ja keine Sprache, in der Domain-Specific

Christian

Languages so eine große

Christian

Rolle spielen. Also in Ruby

Christian

ist es ganz typisch, da ist die Syntax

Christian

für geeignet, dass du das so

Christian

dir zurechtlegst, dass du im Prinzip

Christian

etwas hast, das sieht kaum noch nach Ruby aus

Christian

und du musst aber keinen eigenen Parser

Christian

schreiben, weil du das Ruby so

Christian

sozusagen gezüchtet hast,

Christian

dass es dann wie was anderes aussieht

Christian

und es kommt auch aus den funktionalen

Christian

Sprachen aus

Christian

Lisp und Scheme, die haben alle ja so Makros

Christian

wie auch C, wo du dir dann so

Christian

komplexe Makros definieren kannst, dass du

Christian

im Prinzip die drunterliegende

Christian

Sprache nicht mehr wiedererkennst. Und das ist in Python

Christian

aber gar nicht so üblich.

Christian

In Python gibt es eher solche,

Christian

da nennt man die dann Domain-Specific Libraries,

Christian

SQL Alchemy ist so ein Beispiel,

Christian

die dir dann einfach

Christian

eine sehr fluffige API

Christian

liefern, die man benutzen kann

Christian

und du nicht das Gefühl hast,

Christian

Brüche zu haben zwischen dem, was

Dominik

Den simplen Anspruch, irgendwie so eine Grammatik zu entwickeln, um die Probleme, die ein bisschen komplexer sind, in einfacherer Logik zu beschreiben.

Christian

Ja, und dass du halt auch wenig Brüche hast. Man nennt das halt in der Informatik ein Impedance-Mismatch, wenn du halt bei SQL Alchemy, wenn du SQL hast, dann ist das halt so eine deklarative Sprache und wenn du dann aber 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 dir beim Quoting was kaputt geht.

Christian

Das nennt man halt einen Impedance-Mismatch, also die Audio-Techniker können das bestimmt auf Deutsch übersetzen, wenn du halt nicht passende Widerstände anschließt. Das hat keinen guten Sound.

Christian

Und dafür nehmen viele Umgebungen 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, bei denen einfach die API so geschmeidig gemacht ist, dass du das Gefühl hast, du kannst konzeptionell und syntaktisch, so wie du es runtertippst, auf einer Ebene arbeiten und hast dann nicht ständig Übersetzungsverluste dazwischen.

Christian

Und da gibt es tatsächlich inzwischen eine Reihe von, die Pack-Parser kommen halt genau aus diesem Umfeld von, du kannst eine Sprache, eine Metasprache modellieren, die dann wiederum sich in Python zum Beispiel schnell selber parsen lässt.

Christian

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.

Christian

Das ist ja erstmal so ein bisschen Brainfuck-Niveau und da bin ich aber dann tatsächlich, weil ich mich gerade mit diesem DSL-Thema jetzt beschäftigt hatte,

Christian

darauf angesprungen, dass die Pack-Pause und das, wie du das gerade anfasst, wohl doch irgendwie interessant sein müssen.

Christian

Da gibt es auch ein paar Doktorarbeiten zum Thema, wie kann ich eigentlich schnell Sprachfeatures mal entwickeln und testen und experimentieren und genau das ist das, wo ich gerade davor stehe, will ich eine verballhornte Form von Python haben, die irgendwie so ein bisschen Python ist, aber nicht oder will ich es wie eine ganz neue Sprache mal ausprobieren. Genau, das war eine schöne Anregung, die ich mir aus dem Core Sprint mitgenommen habe.

Jochen

Ja, warum denn? Aber warum muss das eigentlich? Ich meine, wenn ich da so ein anderes populäres DevOps-Tool betrachte, so Ansible, da wird ja YAML verwendet. Warum reicht das nicht aus? Oder ist das, ich meine, deklarativ ist das. Man kann natürlich nicht so viel damit machen.

Christian

Genau, also Bateau ist interessanterweise ziemlich glatt genauso alt wie Ansible. Ich glaube, die Repos sind beide mit zwei Wochen Versatz angefangen worden, also 2011, 2012 und wir kamen damals von schon einem deklarativen Format, wo wir ständig das Problem hatten, dass wir die deklarativen Formate, also YAML ist ja jetzt erstmal noch kein Datenformat und noch kein Format,

Christian

Also insofern ist es natürlich deklarativ, weil Daten sozusagen in sich deklarativ sind, aber da wird dann teilweise halt eine Finite State Machine mit beschrieben, also tu das, tu das, tu das, hat teilweise auch selber wieder Eigenschaften von der Programmiersprache mit Schleifenbildung und solchen Dingen.

Christian

und was mir so ein bisschen

Christian

immer wieder die Fingernägel

Christian

hochrollen, ist halt, dass

Christian

da drinnen dann auch noch Ginger-Templates

Christian

abgesenkt werden.

Christian

Und das haut mir so

Christian

ein bisschen dem

Christian

Pferd die Krone aus dem Fass.

Christian

da hat man

Christian

dann so viel aneinander gestrickt und

Christian

wenn man so in der DevOps-Community rumhört,

Christian

ist halt auch so ein bisschen eigentlich die Aussage mit

Christian

Jamel ist so das unvermeidbare Übel,

Christian

Aber so richtig cool finden kann es eigentlich keiner.

Christian

Und deswegen hatte ich mich damals entschieden zu sagen,

Christian

nee, mache ich nicht.

Christian

Ich mache etwas, wo ich in Python deklarativ arbeiten kann.

Christian

Und aber immer, wenn es sein muss,

Christian

kann ich die volle Sprachpower von Python halt wieder rausholen

Christian

und dem Ding meinen Willen aufzwingen.

Jochen

Naja, das ist halt, ja, ist natürlich dann schwieriger,

Jochen

irgendwelche Voraussagen darüber zu machen,

Jochen

was das denn dann tut.

Jochen

Weil bei YAML kann ich das vielleicht dann noch so halbwegs oder so.

Christian

Aber das ist in die Tasche gelogen, weil Jamel ist halt eben nur eine Oberflächenstruktur und die tiefe Struktur drinnen, wenn das Jamel selber wieder die Komplexität hat von Schleifen und solchen Dingen und sich dann noch kombiniert mit Ginger, wo dann manchmal je nach Werkzeug nicht klar ist, ob das Ginger als aus dem Ginger fällt dann das Jamel raus oder das, was da dann auf der jeweiligen Zeile steht, kommt erst dann später zur Laufzeit ins Ginger rein.

Christian

Und da können sich auch ganz fiese Kombinationen draus ergeben.

Christian

Und für uns war da die Frage eher, das ein bisschen leichtgewichtiger zu halten.

Christian

Aber, auch das ist sozusagen ein Rückgriff jetzt auf den Walrus-Operator,

Christian

weil Python inzwischen ja syntaktisch relativ vielfältig ist,

Christian

ist da die Lesbarkeit irgendwann schon auch das Problem, wenn es zu komplex wird.

Christian

Und wir haben so an der einen Stelle eben das Thema, dass wir eine Syntax brauchen,

Christian

bräuchten,

Christian

3.8 könnte es jetzt, wo ich gleichzeitig

Christian

etwas mit einer Expression

Christian

mir ranziehe und zuweise

Christian

und dann weiterverarbeite.

Christian

Das wäre ganz nett, aber

Christian

da überlege ich tatsächlich gerade auch

Christian

eben, ob sowas wie ein Pack,

Christian

der sich gut integriert in die Laufzeit

Christian

von dem

Christian

Python, was da ist, nicht die Gelegenheit

Christian

gibt, da nochmal auch über eine Sprache

Christian

nachzudenken, die das eigentlich besser kann.

Christian

Interessant.

Dominik

Also auf jeden Fall sehr komplex, das war jetzt kein ganz

Dominik

Anfänger-Thema, wenn ich das so sagen darf.

Dominik

War das die,

Christian

das war keine Einstellungsvoraussetzung,

Christian

oder?

Christian

Nein, das war so.

Christian

Wahrscheinlich haben wir auch viele Leute,

Dominik

die das genau besonders besser interessiert

Dominik

und mehr interessiert, das, was du gerade erzählt hast.

Dominik

Ach, die Mischung macht es doch hoffentlich.

Dominik

Ja, ja, ja, absolut.

Dominik

Falls ihr nicht wisst, was Ginger ist, müsst ihr es einfach mal googeln,

Dominik

das ist eine kleine Template-Sprache.

Dominik

Ja, das ist

Jochen

ja, das ist halt auch wieder so ein ganz

Jochen

eigenes Feld. Ich glaube, also ich meine, ich würde

Jochen

sogar fast sagen, dass es auch

Jochen

eines der Dinge, für die Python viel benutzt

Jochen

wird, halt so Infrastrukturen hochziehen.

Jochen

Ich glaube, bei

Jochen

Facebook ist Python

Jochen

halt sozusagen die

Jochen

Sprache für alle Services, die irgendwelche

Jochen

operativen Geschichten

Jochen

machen hintendran und so.

Jochen

Und es gibt ja noch diverse,

Jochen

Ansible wird ja auch viel benutzt oder halt

Jochen

OpenStack und ach weiß der Teufel

Jochen

ganz viele Sachen.

Jochen

ja, aber

Jochen

es ist nicht so ein richtig einfaches Problem

Jochen

irgendwie.

Jochen

Ja.

Jochen

Ja.

Jochen

Ja, was haben wir denn?

Jochen

Ja, habt ihr noch was auf der Liste?

Christian

Ja, meine Liste ist gerade unten angeschlagen.

Christian

Ja, gut.

Jochen

Wir könnten noch irgendwelche Dinge picken zum Beispiel.

Jochen

Ja, der Pick der Woche

Jochen

ist natürlich dran.

Jochen

Der Monat muss ja fast fatal sagen, so lange wie wir

Jochen

die Folge gebraucht haben.

Dominik

Wir verbrochen wieder ein bisschen.

Dominik

Montagabend.

Jochen

Ich habe eine ganz nette Geschichte

Jochen

gesehen, nicht normalerweise, also

Jochen

wäre es ja Software, aber

Jochen

da habe ich jetzt gerade nichts.

Jochen

Aber eine andere

Jochen

Geschichte, die auch ganz

Jochen

nett ist, finde ich,

Jochen

es gibt jetzt ein Django-Forum.

Jochen

Ja, überhaupt, Django ist auch

Jochen

ganz interessant, gibt es jetzt bald

Jochen

wahrscheinlich irgendwie

Jochen

eine neue Version.

Jochen

3?

Jochen

Also erste Schritte

Jochen

dahin und

Jochen

das wird auch alles

Jochen

noch sehr spannend und

Jochen

es gibt jetzt halt auch

Jochen

ein Forum, wo man

Jochen

sich austauschen kann und das

Jochen

tatsächlich ziemlich nett aussieht,

Jochen

muss ich sagen.

Jochen

Also das

Jochen

sind

Jochen

Und ja, viele der Leute, die da viel machen im Projekt unterwegs und es gibt viele interessante Diskussionen.

Jochen

Ich war sehr überrascht, was da alles so geht, weil normalerweise ist ja mal Forum vielleicht irgendwie nicht etwas, wo man jetzt unbedingt hin will.

Jochen

Aber da, das war echt toll.

Jochen

Und wenn man sich mit Django beschäftigt und da Spaß dran hat, dann kann man sich das mal angucken.

Jochen

Das ist echt nett.

Dominik

Okay. Ich hatte gehört, tatsächlich in einem der Dango-Cars hatte irgendjemand Text-Blob erwähnt, das fand ich irgendwie ganz interessant. Das ist irgendwie für Sprachanalyse sehr wichtig, irgendwie auf NRTK aufgesetzt und macht dann irgendwie so Tags an, ja, setzt Satzteile dran und Sentimentanalyse und Tokenisierung und so was.

Dominik

Da wollte ich noch mal ein bisschen tiefer reingucken.

Dominik

Das sah sehr spannend aus und

Dominik

das soll wohl ganz cool auch funktionieren

Dominik

für größere

Dominik

Textoperationen. Wahrscheinlich eher mit

Dominik

Englisch, aber ja.

Dominik

Das ist mein Pick der Woche.

Dominik

Textblock, okay.

Dominik

Christian, hast du auch einen?

Christian

Die Woche ist zu neu. Ich habe noch

Christian

keinen Pick.

Christian

Ich glaube, die Packs

Christian

letzte Woche waren mein Pick.

Christian

Das liegt auch mal am Gucken.

Christian

Ein ganzes Peng, statt ein Peng zu auffassen.

Christian

Ja, genau.

Dominik

Ja, dann sind wir tatsächlich wieder am Ende

Dominik

dieser Folge angelangt, dieser wunderschönen.

Dominik

Wo auch immer ihr gerade seid,

Dominik

wo auch immer ihr uns gehört habt, oder

Dominik

schönen Tag, schönen Abend, schöne Nacht

Dominik

und so weiter.

Dominik

Bleibt uns gewogen, habt viel Spaß.

Dominik

Kommt gut rein, wir hören uns. Achso, bevor ich das

Dominik

vergesse, ich wollte noch fragen, wenn ihr Fragen habt

Dominik

oder sowas, wir wollten ja nächstes Mal eine große

Dominik

Frage-Folge machen, wo wir den Jochen Löchern

Dominik

und ganz einfach eine Frage stellen,

Dominik

die in einer Minute alle beantworten muss.

Dominik

Falls ihr da irgendwelche habt, dann schickt

Dominik

die bitte. Ich kann dann immer noch hinterhertreten.

Dominik

Mich löchern, ja.

Dominik

Ja, genau. Das machen wir.

Dominik

Deswegen, wenn ihr Fragen habt, einfach raus damit.

Dominik

Achso, und weißt ihr, noch eine

Dominik

andere Geschichte. Wir wollten demnächst auch mal was

Dominik

über die Standard-Library machen, also so ein bisschen

Jochen

erzählen, was das so gibt. Ja, das war auch eine Anregung,

Jochen

die wir per Mail bekommen haben und das war eigentlich,

Jochen

fanden wir ganz gut, die Idee und

Jochen

vielleicht können wir da einfach mal so durchgehen, weil

Jochen

da sind ja viele verborgene Schätze eigentlich drin,

Jochen

die man mal irgendwie näher betrachten könnte.

Dominik

Und falls ihr auch da irgendwie einen Wunsch habt, was wir denn besonders mal

Dominik

belohnen sollen, also auch raus damit.

Dominik

Ja, vielen Dank, Tony,

Dominik

dass du da warst. Vielen Dank, Christian.

Dominik

Sehr gerne, jederzeit wieder. Wieder sehr schön. Ich habe wieder viel gelernt heute.

Dominik

Ja.

Dominik

Bleibt uns gewogen und bis demnächst.

Jochen

Dann hoffen wir einfach mal, dass wir es ein bisschen schneller demnächst

Dominik

wieder hinkriegen. Ja, wir werden uns diesmal nicht

Dominik

wieder zweieinhalb Monate Zeit lassen.

Dominik

Alles klar. Gut.

Dominik

Ja, bis dann. Tschüss.