Czas pożegnać Pythona 2. Na szali kompatybilność i bezpieczeństwo

Maciej Olanicki , 27.08.2019 r.
python Python 2.x przejdzie na zasłużoną emeryturę 1 stycznia 2020 roku.

Coraz częściej mniej lub bardziej nachlanie przypomina się nam, że czas pożegnać się z Pythonem 2. „Dwójka” wyzionie ducha wraz z początkiem roku, zostało zatem nieco ponad 100 dni, aby przenieść swój kod na Pythona 3, zadbać o zgodność oraz zastępstwo dla porzuconych komponentów. Na szali jest bowiem nie tylko kompatybilność, ale też bezpieczeństwo.

Python 2 znika z systemów operacyjnych...

Systemy operacyjne popularne na programistycznych stacjach roboczych w ciągu ostatnich miesięcy stopniowo pozbywały się Pythona 2.7. Na przykład Debian miał się go pozbyć całkowicie już w wersji Buster, ale na finalny rezultat będziemy musieli zaczekać do kolejnego wydania, Debiana 11 „Bullseye”.

W zeszłym tygodniu ogłoszono, że także Ubuntu będzie się stopniowo pozbywać w domyślnych paczkach zależności od Pythona 2. W praktyce najpewniej skończy się to po prostu ich usunięciem z listy domyślnie dostępnych, jeśli nikt nie będzie zainteresowany przeniesieniem kodu na Pythona 3. Niewykluczone, że Ubuntu będzie wolne od Pythona 2.x już w kwietniu, w wydaniu LTS.

Jako ciekawostkę (ale przecież wśród deweloperów diablo popularną) wymienić można macOS-a. Tam bowiem wycięcie Pythona w ogóle było częścią większej kampanii. Jeśli ktoś będzie chciał pisać na Makach kod w Pythonie, Perlu czy Ruby, to od wersji 10.15 Catalina, która ujrzy światło dzienne jesienią, będzie musiał sam je doinstalować, a także zawrzeć środowiska uruchomieniowe w aplikacji.

...ale pozostaje popularny wśród programistów

Ale problemy z kompatybilnością to jedna strona medalu. Na drugą zwraca uwagę brytyjskie National Cyber Security Centre. Brytyjska agencja opublikowała na swoim blogu wpis pod wymownym tytułem „Czas rzucić Pythona 2”, w którym zachęca do portowania kodu do Pythona 3. Przy tej okazji przytoczono interesujące dane, które jednak nie napawają optymizmem.

W czerwcu 2019 roku wciąż większość paczek pobieranych jest w wersji kompatybilnej z Pythonem 2.x. W przypadku komponentu Colorama mowa o stosunku 82% do 18%. Niewiele lepiej jest z botocorem (73% i 27%) czy urllib3 (64% i 36%). Zdarzają się wyjątki: np. TensorFlow czy Flask częściej pobierane są w wersji na Pythona 3. Osobną kwestię stanowią ponadto zależności.

Migracja z Pythona 2 na 3 nie zawsze będzie łatwa i przyjemna, a dla niektórych będzie niemożliwa. Dostępne są jednak narzędzia pomocne w procesie. NCSC wymienia program sprawdzający zależności Can I Use Python 3 czy oprogramowanie automatyzujące konwersję kodu 2to3. Jednym tchem wymieniana jest z nimi także bilbioteka Six.

Zdążyć przed styczniem

W rysowaniu groźnych konsekwencji obstawania przy Pythonie 2.x brytyjska agencja ds. cyberbezpieczeństwa nie przebiera w środkach i straszy powtórką WannaCry czy ryzykiem wycieku danych na miarę tego z Equifax. Czy to wystarczy, by tendencje ze statystyk pobrań się odwróciły? O tym przekonamy się w styczniu, kiedy Python 2 przejdzie na zasłużoną emeryturę.

Zobacz też: Dlaczego Python jest obecnie popularniejszy niż kiedykolwiek?

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: