Jak Brett Cannon stał się core-developerem Pythona: od studenta do kluczowego contributora
Brett Cannon, jeden z czołowych core-developerów Pythona, opowiedział w wywiadzie z Guido van Rossumem o swoim pierwszym spotkaniu z językiem i wkładzie w jego rozwój. Jesienią 2000 roku szukał narzędzia do nauki programowania obiektowego przed egzaminem wstępny na studia informatyczne. Python od razu przypadł mu do gustu dzięki prostocie i interaktywnej powłoce REPL — w przeciwieństwie do C, z którym wcześniej pracował.
Pierwsze kroki z Pythonem
Cannon studiował filozofię na licencjacie, ale równolegle interesował się informatyką. Znał język C oraz nieco Pascal — jednak kompilator Pascal często zawodził. Do przygotowania się do egzaminu CS 61A wymagano opanowania programowania obiektowego. Wczesne wyszukiwarki, takie jak AltaVista, zalecały: „Python to świetny język początkujący”.
Przeczytał dokumentację i książkę Marka Lutza „Learning Python”. Choć temat programowania obiektowego nie pojawił się na egzaminie, Python pozostał przy nim na stałe: Cannon używał go do pisania skryptów i rozwiązywania zadań uczelnianych. Przejście z C na Python otworzyło mu dostęp do REPL — interaktywnej powłoki umożliwiającej natychmiastowe testowanie kodu.
Języki programowania przed Pythonem:
- C (główny)
- Pascal (podstawowy poziom)
Wejście do społeczności przez przepisy („recipes”)
W 2001 roku ActiveState uruchomiła serwis Python Cookbook — platformę do wymiany gotowych fragmentów kodu. Cannon opublikował czystą implementację strptime dla systemu Windows, gdzie funkcja ta brakowała w standardowej bibliotece. Jego przepis trafił do pierwszego wydania książki „Python Cookbook” wydanej przez O’Reilly — dzięki Alexowi Martelliemu.
Przepis ewoluował: początkowo wymagał ustawień lokalizacyjnych, ale Cannon uprościł go. W maju 2002 roku, tuż po wydaniu Pythona 2.3, zapytał Martelliego, czy można dodać tę funkcję do biblioteki standardowej. Ten skierował go na listę dyskusyjną python-dev — główną platformę komunikacji core-developerów.
François Pinard pomógł przygotować poprawkę. W czerwcu przysłano wiadomość, a w lipcu funkcja time.strptime została włączona do repozytorium. Cannon pozostał subskrybentem listy.
Przeglądy python-dev i pierwsze commity
Sierpień 2002: Cannon rozpoczął publikowanie przeglądów aktywności na liście python-dev, przejmując tę rolę od Andrew Kuchlinga. To pozwalało mu zadawać pytania i uczyć się w praktyce. Przeglądy prowadził przez 2–3 lata — aż do rozpoczęcia studiów doktoranckich.
Na liście python-dev omawiano:
- Nowe funkcje
- Błędy i poprawki
- Propozycje PEP
- Kompatybilność między wersjami
Rok przerwy po ukończeniu licencjatu Cannon poświęcił na budowanie CV i aktywny wkład w projekt Python. Pierwszy commit (strptime) stał się motywacją do dalszej pracy.
Wczesne społeczności core-developerów
W latach 2002–2003 zespół był niewielki — około 20–50 osób, z czego aktywnych było ok. połowa. Kluczowe postacie:
- Martin von Löwis
- Neal Norwitz
- Marc-André Lemburg
- Andrew Kuchling
- Alex Martelli
- Tim Peters
- Raymond Hettinger
- Greg Stein
- Jack Jansen
- Barry Warsaw
Cannon dołączył do zespołu tuż przed PyCon US 2003 w Waszyngtonie. Python wtedy był niszowym językiem — „językiem z wcięciami”. Zmiany wprowadzano bezpośrednio, a wszystkie dyskusje toczyły się na liście mailingowej. PyCon gromadził entuzjastów; większość uczestników działała jako wolontariusze.
Vaults of Parnassus — archiwalna baza skryptów, poprzedniczka PyPI.
Przejście na Pythona 3 i kluczowe wkłady
Cannon zaangażował się w rozwój importlib, migrację z wersji 2 do 3, dokumentację i tworzenie PEP-ów. Usunął destrukturyzację krotek w parametrach funkcji (wprowadzoną w Pythonie 3). Dyskusja podczas PyCon 2007: Ka-Ping Yee sprzeciwiał się zmianie, ale ostatecznie została ona zaakceptowana.
Ka-Ping Yee pracował m.in. nad pydoc, cgitb, inspect oraz łańcuchami wyjątków.
Wczesne wyzwania: brak czasu, praca w trybie wolontariatu. Cannon aktywnie namawiał firmy do sponsorowania projektu. Dziś PSF zatrudnia profesjonalistów: Łukasza, Piotra, Siergieja i Setha (bezpieczeństwo, inicjatywa Alpha-Omega).
Co było kluczowe
- Start od przepisu: Implementacja
strptimezaprowadziła Cannona do grona core-developerów już po kilku miesiącach. - Przeglądy jako wejście: Dobrowolne przygotowywanie przeglądów na python-dev uczyniło go widocznym i zaufanym członkiem społeczności.
- Mała społeczność: Zaledwie ok. 20 aktywnych contributorów w 2002 r. znacznie ułatwiło wejście i wpływ na rozwój języka.
- Wolontariat: Główny napęd rozwoju projektu aż do momentu zatrudnienia pierwszych pracowników PSF.
- Ewolucja: Od niszowego projektu do profesjonalnego zespołu developerskiego.
Historia Cannona pokazuje: dla programistów średnio- i starszego szczebla droga do grona core-developerów prowadzi przez wartościowe poprawki, aktywność na listach dyskusyjnych i przygotowywanie przeglądów. Aktywność w latach 2000. ukształtowała współczesnego Pythona.
— Editorial Team
Brak komentarzy.