Anaconda pracuje nad szybszym Pythonem.
Szybszy o 30%
Python jest dziś oczywistym wyborem wśród języków programowania dla projektów data science i uczenia maszynowego, zwłaszcza prowadzonych na sprzęcie o dużej mocy obliczeniowej. Ale jedną z jego słabości jest szybkość. Anaconda, firma dostarczająca dystrybucję Pythona przeznaczoną specjalne do zastosowań data science, chce to zmienić. Wspiera więc Pystona - nową implementację Pythona, która w myśl zasady „coś za coś” rezygnuje z funkcji debugowania na rzecz szybkości.
Pyston, stworzony przez Kevina Modzelewskiego, został udostępniony w maju z obietnicą przyspieszenia wykonywania kodu Pythona o 30%. Modzelewski był inżynierem w firmie Dropbox, która była głównym użytkownikiem Pythona. To Dropbox zatrudnił twórcę Pythona, Guido van Rossuma, na pięć lat od 2013 roku, aby ulepszyć kod swojej usługi.
Pochodzi od CPythona i ma już w zasadzie 5 lat
Anaconda zatrudniła Kevina Modzelewskiego i Mariusza Wachtlera aby ci budowali społeczność użytkowników, współpracowników i opiekunów projektu w celu zapewnienia jego długoterminowej stabilności. Anaconda twierdzi, że ma ponad 25 milionów użytkowników a – jak to ujął Modzelewski – wsparcie ze strony Anacondy pozwoli nam na oddanie Pystona w ręce większej liczby użytkowników szybciej niż kiedykolwiek wcześniej.
Według Anacondy Pyston wykonuje programy średnio o 20% do 50% szybciej niż standardowy Python. Ta implementacja Pythona została opracowana przez Dropbox w latach 2014-2017. Została uruchomiona jako nowy projekt w 2020 roku jako Pyston v2.
Pyston, który wywodzi się z oficjalnego CPythona od Python Software Foundation, pozostanie projektem open-source. Wskutek opieki ze strony Anacondy projekt ma się jednak skupić na poprawie kompatybilności z pakietami Pythona bo to przecież pakiety pomogły uczynić go dominującym w nauce o danych i uczeniu maszynowym. Pyston powinien także doprowadzić do wprowadzenia Pythona na nowe platformy sprzętowe. Anaconda w blogu opisującym jej plan stania się akceleratorem dla wszystkich aplikacji Pythona, oświadcza tak:
Nowa seria Pyston 2.x to kompletne przepisanie bazy kodowej od podstaw, zaczynając od sforkowania CPython 3.8.
GUI w Pythonie? Czyli o usuwaniu bolączek tego języka
Podczas gdy Python jest niekwestionowanym liderem w przypadku aplikacji uczenia maszynowego działających na „poważnym” sprzęcie, nie miał do tej pory zbyt wiele do zaoferowania w zdominowanych przez JavaScript aplikacjach webowych i mobilnych. Współzałożyciel Anacondy, Peter Wang, zauważył niedawno, że używanie Pythona do budowania i rozpowszechniania jakichkolwiek aplikacji, które mają graficzne interfejsy użytkownika, jest niewiarygodnie niewygodne.
Na desktopach Python nigdy nie błyszczał i musi uciekać się do frameworków firm trzecich, takich jak Qt czy wxPython.
Oprócz nauki o danych, mocną stroną Pythona jest łączenie systemów backendowych. A van Rossum, który jest obecnie zatrudniony w Microsofcie, stara się uczynić Pythona dwa razy szybszym w wersji 3.11 - jednej z trzech gałęzi Pythona planowanych na 2022 rok. Najnowszą stabilną wersją Pythona jest obecnie wersja 3.9.7.
Anaconda już wcześniej była zaangażowana w projekty związane z optymalizacją, skalowalnością i wydajnością Pythona. Jednym z najstarszych projektów Anacondy o otwartym kodzie źródłowym jest kompilator Numba, oparty na LLVM kompilator JIT dla numerycznych funkcji Pythona działających na CPU lub GPU. W związku z tym w Anacondzie myślą nad zintensyfikowaniem prac nad kompilatorami Pythona, dążąc do wprowadzenia takiego „szybszego Pythona” do stosowania przez szersze grono odbiorców. Według Anacondy:
Numba bardzo dobrze radzi sobie z wieloma zastosowaniami numerycznymi, ale nie jest w stanie zoptymalizować całych programów i nie odnosi się do szerszego świata zastosowań Pythona. Pyston podchodzi do problemu kompilacji Pythona z innej strony. Mimo to, wspólny rodowód z interpreterem CPython oznacza, że Numba „po prostu działa” z nim, a oba systemy mogą być używane w tandemie w tym samym programie. Numba może przyspieszyć działanie poszczególnych funkcji o 2-10 razy a Pyston może poprawić wydajność całej reszty.
Anaconda uważa również, że ulepszenia Pyston mogą być upstreamowane do CPython i współgrają z planami van Rossuma o generalnym przyśpieszeniu Pythona.