• # L'hirondelle est morte...

    Posté par (site web personnel) . En réponse à la dépêche Entretien avec les développeurs Python francophones. Évalué à 10.

    Unladen Swallow est officiellement mort maintenant. Reid Kleickner, un développeur stagiaire chez Google qui travaillait sur le projet explique dans une entrée de blog les raisons de l'abandon du projet: http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html .

    En gros:

    • LLVM s'est avéré décevant pour l'optimisation de langages dynamiques. Les développeurs ont rencontré beaucoup de bugs qu'ils ont du corriger eux-même, d'où une perte de temps considérable sur le coeur du projet.

    • les projets qui sont sensibles à la performance chez Google sont finalement peu développés en Python. En dehors du module Pickle, les développeurs Google s'en sortent très bien avec le Python officiel.

    • Google est encore en Python 2.5 alors que Unladen Swallow est parti sur Python 2.6 . Du coup les projets Google ne peuvent pas bénéficier du JIT sans un effort de portage.

    • Au début de Unladen Swallow, PyPy était encore moyen en performance et ne gérait pas du tout les extensions en C ou la génération de code 64 bits, d'où un intérêt certain pour Uladen Swallow. Ce n'est plus le cas aujourd'hui.

    • Reid Kleickner a essayé de travailler sur Unladen Swallow dans le cadre de sa thèse mais on lui a dit poliment qu'il n'y avait là aucun sujet de recherche : les techniques de JIT font partie de l'état de l'art.

    Au final, ce qui reste de Unladen Swallow: - pas mal d'optimisations sur le module Pickle - quelques optimisations de ci de là dans Python - une super suite de benchmark contenant les projets majeurs en Python (twisted, django, ...) permettant d'évaluer les performance de Python sur des projets réels - une interface de débuggage pour gdb permettant de suivre le code JIT de LLVM

    La suite de benchmark de Unladen Swallow a été reprise par PyPy et sert de référence pour http://speed.pypy.org . Elle sera aussi bientôt reprise officiellement par CPython pour comparer toutes les version de Python (CPython, PyPy, Jython, IronPython, WPython, ...). Son seul inconvénient est qu'elle ne supporte que Python 2 pour l'instant (parce que les projets utilisés pour les benchmarks sont encore en Python 2).