Je pense que Pythran est surtout utile pour Python => C++.
Pour le C, tu as Cython. Tu peux compiler ton code python tel quel, ou l'optimiser en utilisant la syntaxe de Cython (qui reste très proche de Python, et donc rapide à écrire), c'est vraiment pas mal pour les perfs, surtout quand tu ne connais pas vraiment le C.
J'en avais eu besoin il n'y a pas si longtemps, où j'avais une fonction qui travaillait sur une palette de couleurs d'une image (y avait plusieurs opérations consécutives). En python, à cause de la boucle et surtout, à cause des appels de fonctions à l'intérieur de celle-ci (même en optimisant un max, en plaçant les fonction dans des variables locale avant les appels, en utilisant les générateurs et en utilisant les structures comme array ou numpy), il continuait à y avoir un temps de latence ~ une seconde dans l'interface utilisateur, ce que je considère comme chiant pour du rendu en temps réel.
Après optimisation dans Cython, ça allait bien mieux, l'opération était imperceptible à l’œil nu.
En utilisant une bibliothèque Python d'image, je n'aurais certainement pas eu besoin de cette opération, mais c'était un choix de ma part, ne voulant pas ajouter une dépendance supplémentaire pour une opération facultative et mineure dans le logiciel. Et puis, je voulais faire mumuse avec Cython au moins une fois.
[^] # Re: Ça m'intéresse
Posté par Sekigo . En réponse au journal Pythran 0.2 : Python peut-il être aussi rapide que du C ?. Évalué à 3.
Je pense que Pythran est surtout utile pour Python => C++.
Pour le C, tu as Cython. Tu peux compiler ton code python tel quel, ou l'optimiser en utilisant la syntaxe de Cython (qui reste très proche de Python, et donc rapide à écrire), c'est vraiment pas mal pour les perfs, surtout quand tu ne connais pas vraiment le C.
J'en avais eu besoin il n'y a pas si longtemps, où j'avais une fonction qui travaillait sur une palette de couleurs d'une image (y avait plusieurs opérations consécutives). En python, à cause de la boucle et surtout, à cause des appels de fonctions à l'intérieur de celle-ci (même en optimisant un max, en plaçant les fonction dans des variables locale avant les appels, en utilisant les générateurs et en utilisant les structures comme array ou numpy), il continuait à y avoir un temps de latence ~ une seconde dans l'interface utilisateur, ce que je considère comme chiant pour du rendu en temps réel.
Après optimisation dans Cython, ça allait bien mieux, l'opération était imperceptible à l’œil nu.
En utilisant une bibliothèque Python d'image, je n'aurais certainement pas eu besoin de cette opération, mais c'était un choix de ma part, ne voulant pas ajouter une dépendance supplémentaire pour une opération facultative et mineure dans le logiciel. Et puis, je voulais faire mumuse avec Cython au moins une fois.