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.
Python 3.13 alpha 1 contains breaking changes, what's the plan?
Hi all, I haven’t followed CPython’s core discussions much since they (sadly) moved away from python-dev, so I ran into the C-API changes that were made for 3.13a1 with little prior warning. At least the shear amount of changes leaves me baffled. Hundreds of functions were removed, renamed, replaced with different functions. Header files were removed. Names were removed from header files. Macros were changed, even a few publicly documented ones. And the default answer to “how do I replace this...