Préface
Ce livre n’est pas un ouvrage O’Reilly habituel, écrit d’une seule pièce par un ou deux
auteurs. Il s’agit d’une tentative hardie d’appliquer certains principes du développe-
ment « open source » à l’écriture d’un ouvrage. C’est ainsi que plus de 300 membres
de la communauté Python ont contribué à élaborer son contenu. Dans cette préface,
nous, les éditeurs, souhaitons vous expliquer la genèse de ce livre, ses différents
acteurs et vous présenter quelques réflexions sur les implications de cette nouvelle
approche.
Histoire de l’édition américaine
Au début de l’année 2000, Frank Willison, alors directeur éditorial de O’Reilly &
Associates, me contacta (David Ascher) pour savoir si je voulais écrire un livre. Frank
Willison avait été l’éditeur de Learning Python (traduit en français sous le titre Intro-
duction à Python), que j’avais écrit en collaboration avec Mark Lutz. Comme je venais
d’être embauché par une société alors considérée comme dévouée à Perl
(ActiveState), je n’avais pas le temps nécessaire pour écrire un autre livre et les plans
de ce projet furent gentiment mis de côté. De temps à autre, Frank m’envoyait un
courrier électronique ou profitait des conférences pour discuter avec moi des sujets du
livre. Il voulait produire un Python Cookbook en utilisant le concept employé pour la
première fois par Tom Christiansen et Nathan Torkington pour leur Perl Cookbook.
Frank souhaitait réitérer le succès de cet ouvrage, mais avec un plus grand nombre
d’auteurs. Il pensait que, comme dans une vraie cuisine, la variété des saveurs serait
proportionnelle au nombre de participants. Dans son optique, la qualité serait garan-
tie par la supervision d’un éditeur technique, combinée au processus éditorial de
O’Reilly.
Frank et Dick Hardt, les directeurs d’ActiveState, réalisèrent que l’idée de Frank
Willison pouvait entrer dans le cadre du projet de leur société de créer un site
communautaire pour les développeurs open source, l’ActiveState Programmer’s Network
(ASPN). ActiveState avait déjà un site web bien connu, avec l’infrastructure nécessaire
pour héberger une grande variété de projets, mais il n’avait pas encore pour but de
créer un contenu inédit. ActiveState a toujours pensé que les communautés open
source étaient les meilleures sources de contenus soigneux et à jour, même si, parfois,
ces contenus sont difficiles à trouver.
Les équipes de O’Reilly et d’ActiveState réalisèrent donc rapidement que les deux buts
coïncidaient et qu’une association serait le meilleur moyen d’atteindre les objectifs
essentiels suivants :
Créer un dépôt de recettes Python en ligne, écrites par et pour les program-
meurs Python.
Publier un livre contenant les meilleures de ces recettes, accompagnées de
remarques et d’explications écrites par des personnalités reconnues dans la
communauté Python.
Tirer les leçons de la création d’un livre utilisant un modèle de rédaction dif-
férent.
Au même moment, deux autres événements eurent lieu. D’une part, ActiveState,
notamment Paul Prescod, recherchait activement des « stars » pour étoffer son équipe
de développeurs. L’un des candidats sélectionné fut Alex Martelli. La renommée
d’Alex Martelli provenait de ses nombreux articles de qualité, postés dans la liste de
diffusion consacrée à Python où il faisait preuve d’une patience sans fin pour expli-
quer les subtilités et les joies de Python à une audience toujours croissante de pro-
grammeurs intéressés par le langage. Il habitait en Italie et les « anciens » ne l’avaient
jamais rencontré, car il était relativement nouveau dans la communauté Python
leurs chemins ne s’étaient pas croisés lorsque Alex vivait aux États-Unis dans les
années 1980 et travaillait pour IBM Research où il utilisait avec bonheur d’autres lan-
gages de haut niveau (surtout Rexx, à cette époque).
ActiveState courtisa Alex en essayant de le convaincre de venir vivre à Vancouver.
Nous étions près d’aboutir mais son employeur lui fit un pont d’or et le climat de
Vancouver ne pouvait pas rivaliser avec le climat italien. Il resta donc dans son pays,
à mon grand regret. Il se trouve qu’à cette époque, Alex était également en pour-
parlers avec O’Reilly pour l’écriture d’un livre. Il voulait écrire un livre de recettes de
programmation, mais ce projet avait déjà été négocié avec d’autres auteurs. Plus tard,
Alex et O’Reilly signèrent un contrat pour Python in a Nutshell (traduit en français
sous le titre de Python en concentré).
L’autre événement fut la création de la « Python Software Foundation ». Pour diver-
ses raisons, qui seraient mieux relatées autour d’une bière, tous les membres de la
communauté Python souhaitaient créer une organisation à but non lucratif qui
détiendrait la propriété intellectuelle de Python, afin de protéger le langage. Cepen-
dant, pour réussir, une telle organisation avait besoin d’un support financier et de
l’investissement de la communauté Python.
Étant donnés tous ces paramètres, les différentes parties se mirent d’accord sur la
démarche suivante :
ActiveState mettrait en place un ensemble de recettes en ligne, un mécanisme
permettant à quiconque de proposer une recette, c’est-à-dire un fragment de
code résolvant un problème particulier, accompagné de commentaires. Pour
encourager les auteurs à poster de nouvelles recettes et à relire les recettes
existantes, le site web permettrait également aux lecteurs de suggérer des modi-
fications, de poser des questions, etc.
Une partie de mon travail pour ActiveState consisterait à éditer les recettes et
à vérifier leur qualité. Lorsque tout fut prêt pour la publication, Alex Martelli
xiv Préface
rejoignit le projet comme co-éditeur et, avec Anna Martelli Ravenscroft, devint
l’éditeur principal de la seconde édition.
O’Reilly publierait les meilleurs recettes dans un ouvrage intitulé Python
Cookbook.
Une partie des recettes de la vente de ce livre serait reversée à la Python
Software Foundation.
Le livre en ligne (disponible à partir de http://aspn.activestate.com/ASPN/Cookbook/
Python/) était le point d’entrée de toutes les recettes. Les utilisateurs pouvaient obtenir
des comptes gratuits, remplissaient un formulaire et, très rapidement, leurs recettes
entraient dans la composition du livre. Des milliers de personnes lurent ces recettes,
certains ajoutèrent des commentaires et, comme dans la relecture d’un code, ces
recettes mûrirent et évoluèrent. Il était prévisible que la perspective de voir leur nom
publié attirerait les contributeurs, et c’est le nombre des contributions qui a fait le
succès du livre en ligne, avec des dizaines de recettes ajoutées tous les mois et de plus
en plus de références dans les forums de discussion.
En partant du contenu du site, la construction de ce livre fut essentiellement une
question de choix, de regroupement, de tri et d’édition.
Édition française
Afin de conserver un prix de vente raisonnable, nous nous sommes vus contraints de
traduire une partie seulement de l’édition américaine. Nous avons demandé à Alex
Martelli et David Ascher de nous conseiller dans notre sélection et, sur les vingt cha-
pitres de l’édition originale, douze ont été retenus.
Public visé
Nous partons du principe que vous connaissez au moins un peu Python. Ce livre n’est
pas destiné à vous apprendre le langage, mais certaines techniques et concepts (parfois
même des astuces) spécifiques pour gérer certaines tâches particulières. Si vous
recherchez un ouvrage d’introduction à Python, consultez la liste des livres présentée
dans la section Lectures supplémentaires de cette préface. Il n’est pas pour autant néces-
saire d’être un expert en Python pour profiter de ce livre. Les différents chapitres
contiennent des recettes qui présentent les meilleures techniques pour accomplir cer-
taines tâches élémentaires et générales, ainsi que d’autres, plus complexes et spécia-
lisées. Par endroits, nous avons également ajouté des encadrés pour clarifier certains
concepts dont vous avez peut-être entendu parler mais qui peuvent rester obscurs. Si
vous êtes déjà un expert en Python, vous aurez une bonne surprise ! Nous avons
ajouté les recettes qui explorent certains aspects très récents et moins connus de
Python ; elles vous apprendront sûrement quelque chose — cela a été notre cas ! Quel
que soit le stade de votre connaissance de Python et, plus généralement, quel que soit
votre niveau en programmation, nous pensons que vous tirerez bénéfice de ce livre.
Organisation
Ce livre est découpé en douze chapitres consacrés, chacun, à un type particulier de
recettes, comme par exemple le traitement du texte, les bases de données, etc. Chaque
Organisation xv
chapitre commence par une introduction écrite par un expert en la matière, suivie de
recettes sélectionnées sur le site des recettes en ligne et, pour certaines, écrites spé-
cialement pour cet ouvrage. Alex Martelli (avec l’aide d’Anna Martelli Ravencroft) a
effectué la majeure partie de cette sélection, il a choisi les recettes parmi le millier de
recettes disponibles en ligne ; si vous avez posté une recette sur le site et qu’elle
n’apparaît pas dans ce livre, c’est de sa faute ! C’est également lui qui a décidé des
sujets qui devaient être traités et qui pourraient donc nécessiter des recettes écrites
spécialement pour le livre, bien qu’il n’ait pas pu obtenir toutes les recettes spéciales
qu’il souhaitait ; s’il manque des recettes, ce n’est donc pas entièrement de sa faute.
Ce choix effectué, le travail a consisté à éditer les recettes et à les regrouper. Il a éga-
lement fallu incorporer les informations importantes contenues dans les nombreux
commentaires postés sur le site. Cela n’a pas été une opération facile. L’organisation
et le degré de sophistication des recettes varient beaucoup. Étant donné le nombre
d’auteurs, le style varie également beaucoup et nous nous sommes efforcés de main-
tenir la diversité des styles pour conserver la véritable nature de ce livre, un livre écrit
par la communauté Python tout entière. Cependant, nous avons modifié les recettes,
parfois de façon conséquente, afin de vous offrir un ouvrage utile et cohérent.
Bien que ce livre puisse donc être consulté au « cas par cas », nous pensons qu’un
premier survol séquentiel vous remboursera largement du temps que vous y aurez
consacré. Lors de ce survol, sautez les recettes que vous ne comprenez pas ou qui ne
vous intéressent pas. Vous aurez ainsi une idée de la façon dont est organisé l’ouvrage
et dont sont traités certains sujets, ce qui vous mettra le pied à l’étrier pour une lec-
ture séquentielle approfondie, si c’est ce que vous souhaitez, ou pour une lecture à
« accès direct ». Pour mieux vous aider à appréhender le contenu de cet ouvrage,
voici un résumé succinct de chaque chapitre, ainsi que de courtes biographies des
experts Python qui ont bien voulu écrire leurs introductions.
Chapitre 1, Texte, introduction de Fred L. Drake, Jr.
Ce chapitre contient des recettes permettant de manipuler le texte de différentes
façons : vous trouverez notamment des recettes pour combiner, filtrer et formater
les chaînes, ainsi que pour substituer des variables dans un texte et pour gérer
Unicode.
Fred Drake est un membre du groupe PythonLabs, qui travaille sur le dévelop-
pement de Python. Père de trois enfants, Fred L. Drake est surtout connu de la
communauté Python pour gérer seul la documentation officielle. Il est le
co-auteur de Python & XML (O’Reilly).
Chapitre 2, Fichiers, introduction de Mark Lutz
Ce chapitre présente les techniques de stockage des données dans les fichiers et de
manipulation des fichiers et des répertoires du système de fichiers. Il explique éga-
lement comment gérer les formats spécifiques tels que tar et zip.
Mark Lutz est connu de la plupart des utilisateurs de Python comme étant
l’auteur de livres sur Python le plus prolifique. Il a notamment écrit Programming
Python,Python Pocket Reference et Learning Python (tous publiés par O’Reilly), pour
lequel il a collaboré avec David Ascher. Mark Lutz est également un enseignant
charismatique du langage, répandant la bonne parole de Python de par le monde.
xvi Préface
Chapitre 3, Temps et argent, introduction de Gustavo Niemeyer et Facundo Batista
Ce chapitre présente les outils et les techniques de manipulation des dates, des
heures et des nombres décimaux, ainsi que les questions liés aux données moné-
taires.
Gustavo Niemeyer, qui vit au Brésil, est l’auteur du module tiers dateutil, ainsi
que d’un grand nombre d’autres extensions et projets Python. Facundo Batista,
qui vit en Argentine, est l’auteur du Decimal PEP 327 et du module decimal de
la bibliothèque standard, qui permet à Python 2.4 de gérer les nombres décimaux
à virgule flottante. Les éditeurs ont pris beaucoup de plaisir à les faire travailler
ensemble sur cette introduction.
Chapitre 4, Raccourcis Python, introduction de David Ascher
Ce chapitre contient des recettes pour de nombreuses techniques classiques pou-
vant être utilisées partout, ou qui ne rentrent dans aucune des autres catégories
plus spécifiques.
David Ascher est le co-éditeur de ce livre. Sa formation couvre la physique, la
recherche sur la vision, la visualisation scientifique, l’infographie, ainsi qu’un
grand nombre de langages de programmation. Il est le co-auteur de Learning
Python (O’Reilly) et enseigne Python. Actuellement, il s’occupe de tâches techni-
ques et administratives comme la direction de l’équipe d’ActiveState et il est éga-
lement souvent enrôlé dans l’organisation des conférences Python.
Chapitre 5, Programmation orientée objet, introduction d’Alex Martelli
Ce chapitre contient un grand nombre de recettes montrant la puissance de la
programmation orientée objet en Python. Il présente notamment les techniques
fondamentales que sont la délégation et le contrôle de l’accès aux attributs via les
méthodes spéciales, des techniques intermédiaires comme l’implémentation des
différents motifs de conception, ainsi que certaines applications simples mais utiles
de concepts avancés, comme les métaclasses personnalisées, qui sont traitées plus
en détail dans le chapitre 20.
Alex Martelli, également connu comme le martelli-bot, est le co-éditeur de cet
ouvrage. Après presque une décennie passée chez IBM Research, puis un peu plus
chez Think3, inc., Alex Martelli a travaillé comme consultant indépendant, avant
de rejoindre Google. En outre, il édite et écrit des articles et des livres sur Python,
notamment Python en concentré (O’Reilly - Digit Books), et s’intéresse au bridge.
Chapitre 6, Persistance et bases de données, introduction de Aaron Watters
Ce chapitre présente les techniques de Python pour la persistance des données,
notamment la sérialisation et l’interaction avec les bases de données.
Aaron Watters a été l’un des premiers avocats de Python et c’est un expert en
bases de données. Il est connu pour avoir été l’auteur principal du premier livre
consacré à ce langage (Internet Programming with Python, M&T Books, désormais
épuisé) et il a écrit de nombreuses extensions couramment utilisées, comme
kjBuckets et kwParsing. Aaron Watters travaille actuellement comme consultant
indépendant.
Organisation xvii
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !