[R&D] Démarrage du projet Cython+
Le projet Cython+ a démarré il y a maintenant 6 mois. Il est prévu pour se terminer fin 2022.
L'objectif ultime du projet est de "transférer le modèle extrêmement performant de programmation concurrente multi-coeur du langage Go vers le langage Python en s'appuyant sur des approches scientifiques et technologiques issues de trois décennies de savoir-faire français dans le domaine de la programmation par acteurs autour d'Actalk."
Abilian travaille sur le projet depuis 6 mois, et a commencé à travailer sur les tâches et livrables suivants (attention, rien n'est encore abouti à ce stade):
- Benchmarks de Cython vs. Python et autres langages comparables.
- Analyse de codes Cython existants (cf. Awesome Cython)
- Etude du compilateur Cython
- Début de l'implémentation d'un serveur Web en Cython
Saluons au passage les premiers résultats obtenus par les autres membres du consortium, résumés dans les 4 posts suivants:
Resources du projet
- Site du projet
- Code source de Cython+ (fork de Cython)
- Awesome Cython - A curated list of awesome Cython resources
- Python / Cython benchmarks (WIP)
- Navigating the Cython Compiler Source Code: short guide & Cython Hacker Guide - How to work on the Cython compiler
Resources préparatoires au projet
Les travaux suivants avaient été réalisés en amont du projet:
- Multi-threaded coroutines with work stealing in Cython (2019)
- Cython nogil extension on multi core introduction (2019)
- Automatic multithreaded-safe memory managed classes in Cython (2019)
- A multi-core Python HTTP server (much) faster than Go (spoiler: Cython) (2018)
Resources additionnelles
Cython tutorials & best practices
- Cython notes and tips, par Nicolas Hug (2019)
- Cython and Numba tutorial (2016)
- How Numba and Cython speed up Python code (2018)
- How Cython is used by SpaCy: Cython Architecture & Writing C in Cython
Actalk
- Actalk: A Framework for Object-Oriented Concurrent Programming - Design and Experience (2000)
- Modeling and Classifying OOCP Languages and Constructs (slides, 1994)