Python, dynamiczny język programowania, zawsze stawiał czoła wyzwaniom związanym ze zwiększeniem szybkości i wydajności. Jednak ostatnie osiągnięcia zaprezentowane na PyCon 2023 w Salt Lake City w stanie Utah pokazują ewoluującą przyszłość Pythona, obiecując szybsze i bardziej wydajne wdrożenia. Nadchodząca wersja Pythona 3.12 wprowadzi szereg ulepszeń, wykazując rewolucyjną zmianę w optymalizacji języka.
Mark Shannon, główny współpracownik Pythona w firmie Microsoft, oraz inni prelegenci na PyCon 2023 rzucili światło na liczne inicjatywy mające na celu zmniejszenie zużycia pamięci przez Pythona, przyspieszenie interpretera i optymalizację kompilatora. Na przykład, nagłówek obiektu w Pythonie został zredukowany z 208 bajtów do 96 bajtów, co oznacza, że więcej obiektów może być przechowywanych w pamięci, poprawiając jednocześnie lokalizację w pamięci podręcznej.
Adaptacyjna specjalizacja jest kolejną kluczową zmianą wprowadzoną w Pythonie 3.12. Według Brandta Buchera, głównego programisty Pythona, nowe instrukcje adaptacji kodu bajtowego w Pythonie 3.11 zostaną jeszcze bardziej ulepszone w najnowszej wersji. Instrukcje te mogą zastąpić wersje specyficzne dla typów Pythona podczas runtime, co usprawnia interpreter i przyspiesza cały proces. Ulepszenia w Pythonie 3.12 obejmują dodatkowe opcody specjalizacji adaptacyjnej oraz uproszczoną specjalizację opcodów.
Współbieżność jest od dawna problemem w Pythonie, a Python 3.12 ma na celu rozwiązanie tego wyzwania poprzez wprowadzenie podinterpreterów i globalnej blokady interpretera (GIL) dla każdego interpretera. Główny programista Pythona, Eric Snow, przedstawił to rozwiązanie, które promuje lepsze wykorzystanie wielu rdzeni przy mniejszej ilości kompromisów narzuconych przez wątki, asynchronizację lub wieloprocesorowość. Zamiast usuwać GIL, mechanizm podinterpretera pozwala wielu interpreterom działać razem wewnątrz pojedynczego procesu, przy czym każdy interpreter ma swój własny GIL. Co więcej, Python 3.12 wprowadzi do swojej biblioteki standardowej minimalny moduł o nazwie interpretery, umożliwiający programistom efektywne wykorzystanie podinterpreterów.
Takie postępy nie tylko przyspieszają działanie Pythona, ale także pomagają w przyszłości zabezpieczyć wnętrze języka na najbliższe lata. Jedną z kwestii poruszonych w tym temacie jest oczyszczenie i abstrakcja licznych C API CPythona, ujawnionych przez głównego twórcę Pythona, Victora Stinnera. Utrzymanie publicznych interfejsów API jako prywatnych zapewnia mniej bezpośrednich interakcji z wewnętrznymi elementami CPythona i zmniejsza zależność od potencjalnych zmian wersji. Powstał również projekt HPy, oferujący bardziej stabilne, wydajne i abstrakcyjne C API dla Pythona we wszystkich wersjach i korzystający z projektów takich jak NumPy i ultrajson.
Te przełomowe ulepszenia w Pythonie 3.12 nie tylko obiecują szybsze, wydajne pamięciowo i adaptowalne wdrożenia, ale także otwierają drzwi dla wcześniej niemożliwych ulepszeń. Wydanie to może znacząco wpłynąć na zróżnicowany krajobraz platform programistycznych i języków programowania, w tym na platformę AppMaster, która umożliwia łatwe tworzenie aplikacji internetowych, mobilnych i backendowych za pośrednictwem rozwiązań no-code. Podążając za ewoluującą przyszłością, Python ma zrewolucjonizować swoją wydajność i efektywność, zapewniając znaczne korzyści programistom na całym świecie.