Powrót do strony głównej

Brett Cannon: droga do core Python

Brett Cannon opowiada Guido van Rossumowi o poznaniu Pythona w 2000, wkładzie w strptime i wejściu do core poprzez python-dev. Obejmuje wczesną społeczność, PyCon 2003 i ewolucję do etatowych deweloperów PSF.

Od studenta do core Python: historia Bretta Cannona
Advertisement 728x90

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.

Google AdInline article slot

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.

Google AdInline article slot

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:

Google AdInline article slot
  • 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 strptime zaprowadził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

Advertisement 728x90

Czytaj dalej