Questions & Réponses au sujet de Python extraites de Langages & Systèmes n°3

Ce document reprend le texte de mes réponses à une interview pour Langage et Systèmes n°3 de Janvier Février 2000. La version publiée est susceptible de différer quelque peu de ce document de travail envoyé au journaliste.

1. Questions & Réponses au sujet de Python

1.1. Tout d'abord quel est votre fonction dans le monde Python et ailleurs egalement ?
1.2. Qu'est ce que Python pour vous ?
1.3. Comment êtes vous tombé dedans ?
1.4. Quel est votre parcours informatique, venez vous du monde PHP par exemple?
1.5. Que permet Python par rapport aux autres langages comme le C++, ou Java ?
1.6. Quel est l'avenir de Python ?
1.7. Comment est géré le développement de Python? Est-ce comme pour Linux où Linus Torvalds et Alan Cox décident de ce qui est bon ou pas pour le noyau, ou est-ce plus libre?
1.8. A combien de développeurs estimez vous la communauté ?
1.9. Comment travail cette communauté, par projet, par fusion...?
1.1.

Tout d'abord quel est votre fonction dans le monde Python et ailleurs egalement ?

Je suis un passioné d'informatique depuis une bonne dizaine d'années, et Ingénieur dans une SSII leader en Europe dans la journée. Pendant mon temps libre, je m'intéresse particulièrement aux Logiciels Libres et à la programation. Dans ce cadre, j'ai participé à la traduction en français du Tutoriel du langage Python écrit par l'auteur du langage, Guido van Rossum. Depuis, j'essaye de regrouper toutes les sources d'information que je peux trouver en français sur Python, afin de les mettre à disposition sur ma page personnelle. J'ai aussi insuflé la création d'une liste de diffusion francophone sur le langage suite à la première Journée Python France (JPF01) organisée par Marc Poinot à l'Onéra. Actuellement, je travaille sur la traduction, en collaboration avec deux autres fans de Python, de "Introduction à Python" ("Learning Python" écrit par Mark Lutz et David Ascher), qui devrait sortir chez O'Reilly en février 2000. Bref, beaucoup de choses à mener de front avec mon travail.

1.2.

Qu'est ce que Python pour vous ?

C'est tout d'abord un superbe langage de programmation généraliste, dont on tombe "amoureux" facilement. La plupart des développeurs qui y goutent en deviennent en effet très vite fans. En effet, Python conjugue à la fois puissance d'abstraction et simplicité, ce qui facilite l'écriture de programmes et leur maintenance. Python est, entre autres, portable, orienté-objet, fourni avec une immense bibliothèque facilitant le développement, et surtout, facile à apprendre. De plus, c'est un Logiciel Libre et il dispose d'une communauté chaque jour grandissante et très enthousiaste.

1.3.

Comment êtes vous tombé dedans ?

Par hasard, en discutant avec un collègue passionné comme moi par le développement orienté-objet et le Génie Logiciel. De toutes façons, le Python et moi, nous nous serions croisés tôt ou tard, puisque je suis aussi un utilisateur passioné de GNU/Linux, autre Logiciel Libre (les pingoins et les pythons semblent bien s'entendre). D'ailleurs de nombreux projets développés sur Linux utilisent Python (même si Python est disponible sur bien d'autres plate-formes, dont Windows, Mac, et plus généralement tout système ayant Java, avec JPython, mais j'y reviendrai). Ensuite, j'ai attrapé le virus même si je n'ai pas autant de temps pour programmer en Python que je le souhaiterais. Pour la petite histoire, Python a été nommé en hommage aux Monty Python's Flying Circus... ce qui me plaît bien : dans la programmation, je préfère le fun.

1.4.

Quel est votre parcours informatique, venez vous du monde PHP par exemple?

Non, pas vraiment un developpeur Internet. Je suis un concepteur et développeur objet dans mon travail, dans le monde du contrôle commande, en C++ / Unix / Oracle. Je suis diplômé du DESS de Génie Informatique de l'Université de Grenoble, ce qui m'a initié à la puissance de l'objet, que j'ai ensuite pratiqué depuis 5 ans, mais avec en plus la problématique de la maintenance d'un système, dans mon travail chez Cap Gemini. Par rapport à PHP, Python se distingue, car c'est un langage objet générique, c'est à dire qu'il n'est pas limité à, ou du moins originaire, comme PHP, du monde Internet, même si une grande partie des projets les plus célèbres en Python, comme Zope, touchent de près ou de loin à l'Internet. Ce que j'aime dans Python, c'est l'alliance d'un langage de script, de l'objet, et de la puissance d'abstraction, bref l'alliance des deux outils que j'utilise quotidiennement (à part Python) : ksh et C++. Avec la maintenabilité en plus...

1.5.

Que permet Python par rapport aux autres langages comme le C++, ou Java ?

La rapidité des développements, car c'est un langage interprété de très haut niveau, disposant d'une bibliothèque impressionnante. Il intègre également tous les concepts de l'objet de ces langages (héritage, exceptions, etc.), à tel point qu'il s'interface très bien avec ceux-ci. Tant et si bien qu'un portage de Python en Java (Jpython ) intègre un interpréteur Python avec toutes les bibliothèques de Java (swing, ...) en natif. Bref, le complément idéal de java. Ecrire un programme puissant et rapidement en produisant du code facile à comprendre, donc à maintenir... que rêver de plus ?

1.6.

Quel est l'avenir de Python ?

Radieux. Python progresse tous les jours, notamment avec JPython et Zope, et vient de voir la création d'un consortium destiné à soutenir les efforts de développement (HP est l'un des membres fondateurs). D'autre part, le DARPA finance actuellement un projet très ambitieux (CP4E) d'adoption de Python comme "langage d'aprentissage de la programmation pour tous" aux Etats-Unis. Le but est de donner à tous (les utilisateurs finaux) la capacité de programmer un ordinateur, puisque tout le monde aujourd'hui utilise les ordinateurs; le programme commence en 2000, et ça promet des outils intéressants à l'avenir. En France, Python est quelque peu confidentiel, et l'absence d'ouvrage en français a sûrement retardé le développement du langage, par rapport à Perl, par exemple, mais nous travaillons d'arrache-pied à la traduction d'un livre d'introduction. A titre d'exemple, Python me semble donc promis à un aussi bel avenir que Delphi auprès des développeurs Français, car il lui ressemble beaucoup... avec la Liberté et la portabilité en plus. Je suis assez serein sur son succès en France.

1.7.

Comment est géré le développement de Python? Est-ce comme pour Linux où Linus Torvalds et Alan Cox décident de ce qui est bon ou pas pour le noyau, ou est-ce plus libre?

C'est assez semblable, même si la communauté des développeurs est moins importante en ce qui concerne le coeur du langage (l'interpréteur), ce qui simplifie la gestion du projet pour Guido va Rossum. La contribution de la communauté est extrêmement forte, surtout pour les modules de la bibliothèque. D'autre part, à une question qui lui a été posée à JPF01, Guido nous a dit que l'avenir de Python serait assuré s'il lui arrivait malheur... il a donc pensé à cela, au cas où. De toutes façons les sources sont disponibles, c'est l'intérêt du Logiciel Libre.

1.8.

A combien de développeurs estimez vous la communauté ?

C'est très difficile à dire, et je ne suis pas sûr que Guido le sache lui-même.... sûrement moins que C++ ou Perl, mais quand même plusieurs dizaines de milliers. Cependant, de plus en plus de développeurs rejoignent la bannière de Guido, comme en témoigne l'activité du newsgroup US. Certains développeurs francophones sont actifs dans la communauté (11 membres payants enregistrés dans la Python Software Activity en France), et plusieurs sociétés ou organismes français ont basé des projets essentiels sur Python, comme la JPF a permis de le constater, à l'image des gros utilisateurs américains (Industrial Light & Magic, Infoseek, Lawrence Livermore National Laboratories, ...).

1.9.

Comment travail cette communauté, par projet, par fusion...?

En fait, comme pour les projets Libres en général, par mailing-lists, sites Webs et autres newsgroups (plus de 1500 posts par mois sur comp.lang.python)... actuellement, les développements sont très actifs sur XML, l'informatique scientifique, les outils pour Internet, dans les groupes d'intérêt spécifiques (SIGs), et grâce à l'infrastructure de la PSA (215 développeurs indépendants et une quinzaine d'organismes, dont l'Onéra, par exemple).