Cython
Maggiori info
- Tipo
- Compilatore / estensione del linguaggio
- Anno
- 2007
- Creato da
- Robert Bradshaw, Stefan Behnel e altri
- Licenza
- Apache 2.0
- Predecessore
- Pyrex
Si scrive Python quasi normale, si aggiungono dichiarazioni di tipo alle cinque righe che fanno da collo di bottiglia e si compila il tutto in C.
Nasce nel 2007 come fork di Pyrex di Greg Ewing, spinto dalle esigenze del sistema matematico Sage. Il sorgente viene tradotto in C e compilato come normale modulo di estensione di Python, quindi il resto del programma non se ne accorge. Un ciclo che dichiara cdef int i salta l'intero livello a oggetti e spesso gira cento volte più veloce.
Il secondo uso è altrettanto importante: Cython è un modo comodo per incapsulare librerie C e C++ esistenti senza scrivere a mano il codice di raccordo con l'API di CPython. NumPy, pandas, scikit-learn e spaCy usano tutti Cython nei percorsi più critici. Il blocco nogil rilascia inoltre il GIL, così i thread possono davvero girare in parallelo.