Ciekawostki

Python nie będzie już pełzać. Będzie pędzić

Nie jest tajemnicą, że Python musi przyspieszyć, jeśli ma odgrywać jeszcze większą rolę. Okazuje się, że faktycznie jest taki plan.

Python to język o wielu atutach, ale szybkość nie jest jednym z nich. W przyszłości ma się to zmienić, a nad wszystkim czuwa sam Guido van Rossum, a więc człowiek, który 30 lat temu stworzył Pythona. Aktualnie pracuje jako inżynier w szeregach Microsoftu, gdzie ma do pomocy wielu innych weteranów – są nimi między innymi Brett Cannon, Steve Dower, Eric Snow i Barry Warsaw. 

Python będzie dwa razy szybszy

Wykorzystując do tego GitHuba, van Rossum zapowiedział, że cel jest następujący: Python 3.11 będzie dwa razy szybszy niż ma to miejsce obecnie. Przyznaje wprawdzie, że nie jest pewny, czy uda się to osiągnąć, ale nastawienie ma jak najbardziej optymistyczne. 

Na opracowanie i wdrożenie zmian ekipa van Rossuma ma trochę czasu. Wydanie Pythona 3.11 planowane jest wszak dopiero na przyszły rok. Równocześnie zadanie jest bardzo ambitne, ponieważ wszelkie rozwiązania mają być stworzone w taki sposób, by nie zakłócać ABI środowiska wykonawczego, dzięki czemu rozszerzenia napisane w języku C nadal będą kompatybilne. Zmiany muszą również mieć otwarty kod i zachować prostotę, z jakiej słynie Python.

Co więc może się zmienić? 

Modyfikacji najpewniej doczekają się: system kodu bajtowego, kompilator i interpreter. Wśród sugestii dotyczących poprawy wydajności wymienia się między innymi optymalizację stosu ramek, zmianę sposobu wywoływania funkcji czy szybszą obsługę wyjątków. 

Źródło: InfoWorld, The Register, ZDNet

Komentarze

6
Zaloguj się, aby skomentować
avatar
Komentowanie dostępne jest tylko dla zarejestrowanych użytkowników serwisu.
  • avatar
    Abgan
    4
    Narzut na wywołanie funkcji i na sięganie do nielokalnego scope mogliby poprawić, bo to czasem smutne, jak ludzie przypisują globalne zmienne do lokalnych, żeby przyspieszyć jakąś pętlę korzystającą z globali, która kręci pół miliona iteracji albo i więcej.

    Ogólnie dobrze, że koncentrują się na wydajności, ale... kto potrzebuje wydajności - ten nie używa Pythona :-) Albo używa go tylko do sklejenia ze sobą różnych innych kawałków oprogramowania. Używam zawodowo Pythona od wersji 2.4, albo inaczej - od ok. 15 lat i już od dawna nie miałem problemu z wydajnością samego interpetera. Jak coś jest CPU-bound, to napisz w C, dodaj wrapper Cython i wywołaj z Pythona :-) I już nie masz problemu z wydajnością CPython. Do AI/ML i ogólnej numeryki są genialne biblioteki z rozszerzeniami w C++, które w trywialny sposób pozwalają Ci obrabiać wielkie macierze, czy nawet trenować modele na GPU, o wszystkich wątkach CPU nie wspominając.

    Z drugiej strony są jakieś silniki do tworzenia gier w Pythonie - ich użytkownicy na pewno się ucieszą, że dostaną taki bonus wydajności od BDFL i innych weteranów.
    • avatar
      gromzjasnegonieba
      2
      Mojego pythona nie trzeba przyspieszac, a jak wykonuje petle to niewiasty sa w niebo wziete. Interpretera tez nie potrzebuje, kazda go rozumie.
      • avatar
        hegazi
        -5
        Python to chłam.
        • avatar
          xmexme
          0
          Microsoft i szybkość? nie liczył bym na to.