utvikling
Ledende Python-kjerneutvikler: Eksplosjon i popularitet har økt presset
Pythons eksplosive vekst legger press på de allerede pressede kjerneutviklerne, forteller medlem av Pythons Steering Council. Han etterlyser mer høflighet fra åpen kildekode-brukere.
Ved slutten av fjoråret kunne Github melde at Python for første gang overgikk Java som det foretrukne språket på plattformen. Dermed rykket Python opp på en andreplass, kun overgått av Javascript.
Den eksplosive veksten henger tett sammen med et raskt voksende data science-miljø. Og i en undersøkelse fra Jetbrains fremgår det at data science nå er den mest utbredte grunnen til å bruke Python.
Det er en vekst man kan merke i maskinrommet, men ikke helt på den måten man kunne ønske seg, forteller Victor Stinner. Han er en av fem personer i Pythons Steering Council. Og formodentlig den eneste personen som jobber fulltid med å vedlikeholde språket som forskere, såvel som virksomheter, bruker til å bygge sine kritiske dataprosjekter.
– Dessverre tror jeg ikke at den stigende populariteten betyr at flere folk bidrar til Python, forteller han.
Striden om PEP 572
Til gjengjeld har presset på de som tar beslutninger om språkets utvikling økt merkbart. Et press som i 2018 fikk Python-skaperen Guido van Rossum til å trekke seg som sjef for prosjektet, etter nesten 30 år som «Benevolent Dictator for Life».
– Vi hadde en lang diskusjon med omkring 500 meldinger om en spesifikk operator. Guido tok en beslutning, som fikk en masse kritikk overalt på internett. Det var veldig voldsomt, forklarer Victor Stinner over en videochat fra Frankrike.
Operatoren som skapte furore er den såkalte assignment-expression (:=) som med PEP 575 (Python Enhancement Proposal) ble en del av Python. En beslutning som falt mange utviklere for brystet.
Guido van Rossum ønsket fortsatt å jobbe med Python, men han ville ikke utsettes for dette presset igjen, forklarer Victor Stinner. Løsningen ble Pythons nye styrende råd, det såkalte Steering Council.
– På denne måten er ansvaret delt. Vi kan bedre håndtere når vi gjør noe feil. Det er en del av løsningen på å gjøre Python mer populært.
Færre folk, mer kompleksitet
Med 30 år i bagasjen er det lett å tro at Python er så godt som ferdigutviklet. Men det er langt i fra tilfellet, forteller Stinner.
– I Python er det ingen grenser for det arbeidet som kan legges inn. Hvis du vil bruke hele uken på å arbeide med Python, er det rikelig med ting å gjøre. Selv hvis Python er stabil, skal det vedlikeholdes, og vi skal sørge for at den fungerer på de forskjellige plattformene.
Samtidig er det vanskelig å få kvalifiserte krefter inn i folden, som i følge Github-statistikk telte omkring 34 aktive kjerneutviklere ved slutten av 2017.
I 2017 regnet Victor Stinner ut at ni nye kjerneutviklere var kommet til mellom 2015 og 2017. I samme periode vokste kodebasen med nesten 100.000 linjer, og listen over åpne «issues» gikk fra 5000 til 6200.
– Det er veldig vanskelig å begynne å bidra til Python. Python er et veldig gammelt prosjekt, og vi fokuserer mye på stabiliteten og avviser mange endringer som ikke er gode nok til vår kvalitetsstandard. Det betyr også at antall personer som er i stand til å bidra er lavt, sier Stinner, som blant annet mener at rekrutteringen av nye kjerneutviklere har avtatt.
– Vi er ikke alltid gode til å løfte frem de som kan noe. Hvis noen lager noe som er av god kvalitet, er vi ikke raske nok med å gi dem tilbakemeldinger. Hvis det tar seks måneder å få tilbakemelding, er det veldig sannsynlig at personen har gått videre til et annet prosjekt, sier han og fortsetter:
– Det vanskelige med Python er at det er et kjempeprosjekt. Og hvis du ikke hjelper folk, blir de lett demotivert – og så går de videre.
Hvis man gjerne vil bidra til Python, kan man med fordel begynne med å bidra til mindre prosjekter og bygge opp rutinene på den måten, anbefaler Stinner.
Guido van Rossum ga nylig ut denne guiden til utviklere som vil bidra til Python.
Kan ikke sove mindre
I februar 2018 måtte Victor Stinner selv innse at han trengte hjelp. Ved siden av utviklerjobben sin hos Red Hat brukte han kvelder, helger og netter på å vedlikeholde Python. Det skapte konflikter med familien, og Victor endte med å bli utbrent.
– Jeg tok ett skritt tilbake for å forstå hvordan jeg kunne bidra til Python. Jeg elsker Python-prosjektet. Og jeg elsker å bidra. Men jeg kan ikke fikse alle problemer selv, og jeg kan ikke sove mindre, forklarer han.
– Jeg var nødt til å trekke meg fra tekniske diskusjoner, for de tapper meg for all energi. Det kan være vanskelig å forstå for folk som ikke er involvert i prosjektet. Noen ganger får jeg vite at jeg overreagerer, men Python er en stor del av livet mitt, og det er mange følelser forbundet med det også.
Etter en tenkepause fikk Stinner, som har vært med på å vedlikeholde Python i 10 år, endret sin Red Hat-stilling til utelukkende å vedlikeholde Python. Samtidig begynte han å fokusere mindre på teknikk og mer på å fungere som mentor for nye utviklere for å løfte dem opp på et nivå der de kan inngå i kjerneutvikler-teamet. Med den strategien har han nå fått forfremmet seks personer til kjerneutviklere – med alle de rettigheter og plikter som følger med.
Ubrukelig støy
Bedre rådgivning til aspirerende kjerneutviklere skal være en del av fremtiden for Python, vurderer Stinner. Men like kritisk blir det å få fordelt den stigende arbeidsmengden ut til personer som ikke er kjerneutviklere.
– Mitt hovedformål med Python er å involvere flere mennesker i prosessen og gjøre færre oppgaver begrenset til kjerneutviklere. Det er mange oppgaver som kan distribueres, sier Stinner, og fortsetter:
– Ofte er det slik at folk merker at deres review ikke vil bli tatt seriøst, fordi de ikke er kjerneutvikler. Og noen kjerneutviklere har stadig den oppfattelsen at reviews fra «fremmede» er ubrukelige og bare støy. Det er en tankegang, som jeg gjerne vil endre.
– Noen ganger spør folk om de har lov til å foreslå en idé til Python. Reelt skal de bare skrive seg på en mailing-liste, foreslå idéen, og hvis noen liker den kan den bli implementert på noen måneder. Du behøver ikke bevise at du er en god programmerer. Du behøver ikke bevise dine evner. Hvis idéen er god, tar vi den.
Problemløsende roboter
På samme måte som kjerneutvikler-teamet trenger å være mer inkluderende, har mange brukere av åpen kildekode også bruk for et skifte i «mindset», mener Victor Stinner.
– Vi ser et større press mellom brukere og maintainere. For ti år siden var Linux fortsatt nytt, og folk var ikke vant til det. I dag er det de facto-standard for containere og servere. Å bruke åpen kildekode er blitt normalt. Folk tenker på det som en gratis tjeneste, og de tenker ofte ikke over hvorfor de er i stand til å få så mye kode gratis, sier han og fortsetter:
– Når noe går i stykker, forsøker de ikke å være høflige eller be en maintainer pent om å se på problemet. De sier: «Du skal fikse det nå». Folk er ikke klar over at det sitter én enkelt maintainer som jobber kvelder og helger og gjør alt selv. Det er ikke så ille for Python akkurat nå. Men jeg ser oftere og oftere at folk som vedlikeholder mindre prosjekter, ender med å gi opp og legge ned et prosjekt.
Oppfordringen fra Stinner er enkel: Prøv å være mer respektfull overfor personer som vedlikeholder åpen kildekode-prosjekter.
– Forstå at folk er mennesker, og ikke problemløsende roboter.
Saken ble først publisert på danske Version2/Ingeniøren, og gjøres tilgjengelig på norsk gjennom vår samarbeidsavtale med Teknologiens mediehus/Ingeniøren.