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
6Ogó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.