Accueil / Blog / Métier / 2013 / Retour sur PyconFR 2013

Retour sur PyconFR 2013

Par Alex Marandon publié 05/11/2013, édité le 20/10/2016
L'édition 2013 de la conférence Python française se tenait à Strasbourg du 26 au 29 Octobre. Je reviens ici sur les thèmes abordés dans les conférences auxquelles j'ai pu assister.

Déploiement

Les problématiques liées au déploiement de nos applications Python ont été abordées sous plusieurs angles.

Le packaging d'abord, à travers un conférence très claire présentant l'histoire parfois houleuse des outils de déploiement Python, en insistant sur le problème délicat de la distribution de paquets contenant du code C compilé. La situation est en voie de stabilisation avec la fusion des projets setuptools et distribute donnant naissance à setuptools 1.0 et l'adoption officielle de pip à travers la PEP 453 et son inclusion dans Python 3.4. Le nouveau format de paquet wheel nous promet des progrès dans la distribution de paquets binaires, notamment grâce à la prise en compte des diverses implémentations de Python.

Le déploiement proprement dit a été évoqué à travers deux outils : Ansible et SaltStack.

Ansible est un outil à la portée modeste, se voulant simple à utiliser par des administrateurs systèmes. Il offre un module dédié à l'administration de conteneurs lxc.

SaltStack a été à l'honneur à travers une première conférence pleine d'humour de Sébastien Douche et une conférence courte le dimanche après-midi. Ces présentations ont mis l'accent sur la facilité de prise en main de SaltStack, en particulier en comparaison avec les solutions concurrentes issues du monde Ruby. Les discussions de couloir faisaient également état d'expérience positives avec SaltStack.

Enfin le thème de la gestion de machines virtuelles a été traité par une conférence sur Vagrant et Packer. Vagrant est un outil de gestion de machines virtuelles écrit en Ruby qui utilise des baseboxes, images systèmes prêtes à l'emploi. Packer est un outil écrit en Go qui permet des créer de telles baseboxes.

Implémentations

Il y a eu deux conférences sur le fonctionnement interne de CPython, l'implémentation de Python la plus populaire.

L'une a décrit certaines optimisations à l'oeuvre dans CPython, notamment pour réduire le nombre d'allocations mémoire. Le conférencier a également décrit la sophistication de l'algorithme de tri timsort.

Adrien Guillo a mis en lumière les conséquences du GIL en se basant sur les travaux de David Beazley. Non seulement le GIL empêche l'exécution de threads simultanément sur plusieurs coeurs, mais sa présence entraîne même une perte de performance par rapport à l'exécution sur une machine avec un seul coeur. Cette perte de performance serait résolue à partir de la version 3.3.2 de CPython, ce qui ne résoudrait toutefois pas les autres problèmes inhérents au GIL.

Enfin nous avons pu assister à une conférence sur PyPy et des optimisations JIT qui compilent en code natif les boucles les plus utilisées. PyPy s'attaque également de front au problème du GIL en le remplaçant par de la mémoire logicielle transactionnelle qui permettra à terme l'exécution simultanée de threads sur plusieurs coeurs. Le principal frein à l'adoption de PyPy reste la compatibilité avec les extensions C qui sont trop dépendantes de CPython, en particulier Numpy dont une équipe s'occupe de réécrire le code C en RPython, le sous-ensemble restreint de Python dans lequel est écrit PyPy.

Intégration continue

Le domaine de l'intégration continue a été abordé à travers une présentation de Evy, projet en gestation né des besoins des développeurs d'OpenERP, qui vise à développer un système distribué autour de files d'attente Redis.

Buildbot a également été abordé au cours d'une conférence courte indiquant qu'il nécessite encore du travail pour devenir un concurrent valable à Jenkins.

Web Services

Le domaine des web services dans le monde Django été abordé à travers une présentation de django-rest-framework, outil très complet permettant de proposer une API REST, et django-roa qui facilite la consommation d'API, notamment en l'intégrant à l'interface d'administration de Django. L'intervenant a également insisté sur la nécessité de versionner ses API, de manière à permettre des transitions en douceur.

Alexis Métaireau nous a présenté Daybed, service de création et de validation de formulaires, a entre autre montré son nouveau système d'ACL, astucieusement inspiré du système de permissions Unix.

Autres langages

D'autres langages de programmation étaient également représentés à cette Pycon.

Hy est une implémentation de LISP s'intégrant avec Python. Julien Danjou a clairement expliqué les différentes étapes d'exécution d'un programme Python: le parsing du code qui produit un AST, la compilation de l'AST qui produit du bytecode et l'exécution du bytecode par la machine virtuelle Python. Hy remplace la première étape, le parsing, en produisant un AST Python à partir de code LISP. Ainsi on a accès aux bibliothèques Python depuis le code Hy.

Marc Chantreux a présenté du beau code Perl auprès des développeurs Python en présentant côte à côte des exemples en Python et leur équivalent Perl basé sur Moose.

Enfin il y a eu une présentation courte ainsi qu'un poster dans le hall sur les possibilités du langage Haskell en matière de calculs parallélisés, mettant en avant la puissance et la simplicité de Haskell dans ce domaine.

Divers

Le développement d'interfaces graphiques, notamment sur plates-formes mobiles, a été abordé au travers de Kivy. Kivy fournit un DSL de description d'interface assez concis et un environnement de développement permettant de visualiser en temps réel le résultat de son travail.

Le projet OpenStack, plate-forme cloud écrite en Python, était très présent dans les discussions informelles et il y a eu une présentation sur la façon dont est géré le développement de ce projet qui compte de très nombreux contributeurs. L'intervenant a notamment présenté Gerrit et git review, deux outils travaillant de concert pour faciliter la revue de code.

ABONNEZ-VOUS À LA NEWSLETTER !
Voir aussi
Localisation d'un objet par classification de superpixels Localisation d'un objet par classification de superpixels 31/10/2017

Dans ce tutoriel, vous apprendrez comment réaliser un programme Python capable d'apprendre à ...

Retour sur le PHP Tour 2017 Retour sur le PHP Tour 2017 17/07/2017

Le PHP Tour se déroulait à Nantes cette année, à deux pas de nos locaux, c'était l'occasion ...

Formation Python initiation à Toulouse du 18 au 20 septembre Formation Python initiation à Toulouse du 18 au 20 septembre 06/07/2017

Vous êtes développeur et maîtrisez déjà un langage de programmation ? Python vous tente et ...

Initiation au Machine Learning avec Python - La théorie Initiation au Machine Learning avec Python - La théorie 07/06/2017

Dans ce tutoriel en 2 parties nous vous proposons de découvrir les bases de l'apprentissage ...

Initiation au Machine Learning avec Python - La pratique Initiation au Machine Learning avec Python - La pratique 07/06/2017

Dans ce tutoriel en 2 parties nous vous proposons de découvrir les bases de l'apprentissage ...