Język Cython jest nadzbiorem języka Python, który dodatkowo obsługuje wywoływanie funkcji C i deklarowanie typów C na zmiennych i atrybutach klas. Dzięki temu kompilator może wygenerować bardzo wydajny kod C z kodu Cythona. Wygenerowany kod C jest następnie kompilowany przy pomocy jednego z dostępnych kompilatorów C/C++ do zoptymalizowanego modułu, który może zostać zaimportowany i użyty przez program napisany w Pythonie.
W skrócie Cython to Python ale z typami danych C - co pozwala mu być jednym z najlepszych i najprostszych narzędzi do przyspieszania programów napisanych w Pythonie!
Przykładowo w Cythonie napisane są moduły Pythona znane ze swojej szybkości jak:
Oficjalny poradnik jak zacząć z Cythonem można zaleźć pod adresem: https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html
#technologia #programowanie #python #cython
CPython 3.13 rozpoczął refaktoryzację swojego ABI. Zmiany te początkowo były na tyle duże, że zrywały kompatybilność bibliotek korzystających z C-API, w tym właśnie Cythona. Ze zmian się na razie wycofano, ale nie wiemy ile w przyszłości będzie wymagać pracy by Cython działał z nowymi wersjami Pythona.
Źródło dyskusji na oficjalnej grupie: https://discuss.python.org/t/python-3-13-alpha-1-contains-breaking-changes-whats-the-plan/37490
Teraz sexy jest Rust + Python, czyli PyO3.
@rust-n-dust - dzięki za podzielenie się informacją!
Cython dostał w ostatnim roku dużo miłości i po latach pracy udało się wreszcie wydać wersję 3.0.0 (obecnie jest 3.0.6) - mam nadzieję, że to jest dobry znak i uda się zachować kompatybilność nawet po dużych zmianach w nowych wersjach Pythona.
Tak jako ciekawostkę polecam też sprawdzić mypyc , który jest częścią projektu mypy.
Ja po cichu liczę, że kiedyś dostaniemy w pełni typowanego, kompilowalnego Pythona
Teraz sexy jest Rust + Python, czyli PyO3.
Tak PyO3 jest sexy i zachęcam każdego do spróbowania...
...niemniej w korpo:
-
Wprowadzanie nowego języka by stał się zaakceptowaną technologią wymaga przekonania sporej ilości ludzi i przejścia procesów obarczonych papierkologią - co zabiera dużo czasu i mnóstwo energii. Wielu ludzi, którzy nie musieli pracować w takich warunkach nie rozumie, że nie można sobie ot tak ściągnąć z internetu i używać.
-
Cython jest częścią ekosystemu Pythona i można go ściągną jako moduł używając instalatora pakietów takiego jak pip - oznacza to, że można go pobrać z oficjalnego serwera PyPi (lub dodać paczkę do wewnętrznego) o wiele mniejszym nakładem pracy niż wprowadzenie nowego języka/technologi i związanych z tym procesów. Do tego kompilator jest zazwyczaj w repozytoriach gotowy do zainstalowania (takich jak Satelite dla RHEL) - jeśli go nie ma już zainstalowanego na maszynie developera. Powoduje to, że Cython może być ścieżką najmniejszego oporu, jeśli chcemy przyspieszyć działanie naszej Pythonowej aplikacji w korpo.
@koszotorobur @rust-n-dust dzięki! dobry kontent
Zaloguj się aby komentować