Tribune Libre
Ténors de l'Informatique Libre
Copyright © 1999 par Éditions O'Reilly
Chapitre 9. Diligence, Patience et Humilité
Larry Wall
La communauté Perl a une prédilection pour les dictons. L'un
d'entre eux est « Il y a plus d'une façon de faire ».
C'est le cas en Perl. C'est le cas pour Perl lui-même. C'est aussi le
cas pour la communauté du logiciel libre, comme vous pouvez le voir
dans les textes qui composent ce volume. Je ne vais pas tout vous expliquer
sur le logiciel libre et son fonctionnement. Mais je vais dire quelques mots
sur Perl, où il en est, et vers où il se dirige.
Voici un autre dicton : Les trois grandes vertus de la programmation sont la
paresse, l'impatience, et l'orgueil. Les grands programmeurs Perl
chérissent ces vertus, et les développeurs de logiciel libre en
font autant. Mais c'est d'autres vertus que je vais parler ici : la
diligence, la patience, et l'humilité. Vous trouvez peut-être
qu'elles semblent opposées aux précédentes, et vous avez
bien raison. Et si vous ne croyez pas qu'une seule et même
communauté puisse pratiquer des vertus opposées, c'est que vous
n'avez pas passé assez de temps avec Perl. Après tout, il y a
plus d'une façon de faire.
Les langues écrites sont probablement issues de l'impatience, ou de la
paresse. Sans l'écriture, pour communiquer avec quelqu'un, il fallait
l'avoir en face de soi, ou alors persuader quelqu'un d'autre de porter le
message à votre place. Et le seul moyen de savoir ce qui avait
été dit, était… d'en garder le souvenir.
L'écriture nous a donné des symboles, qui peuvent
représenter des choses à condition que la communauté se
mette d'accord sur les correspondances. Le langage nécessite donc un
consensus. Il s'agit donc d'un ensemble de symboles qui unit une
communauté. C'est en fait le cas pour la plupart des symboles.
Examinons à présent quelques symboles :
Observez-le de près. C'est un cercle. Un beau cercle, très
joli. Très symétrique. Très simple.
Si vous êtes un réductionniste, vous trouverez que c'est n'est
qu'un cercle, et rien d'autre. Les ultra-réductionnistes, quant
à eux, n'y verront qu'un amas de photons. Suis-je clair ?
Si vous n'êtes pas un réductionniste, le cercle que vous voyez
ici n'est pas une entité isolée. Il n'existe que par rapport
à de nombreuses autres choses, et reçoit son sens d'elles. Pour
comprendre ce simple cercle, il faut d'abord comprendre son contexte,
c'est-à-dire comprendre un peu la réalité qui l'entoure.
Voici donc une représentation de la réalité :
Comme tout le monde le sait, la réalité est
désordonnée.
Cette image représente beaucoup de choses. C'est une image de
molécules d'air qui se baladent, une image de l'économie, une
image des relations humaines dans une salle, une image de ce à quoi
ressemble une langue humaine typique, une image du système
informatique de votre entreprise, une image du World Wide Web. C'est une
image du chaos et de la complexité.
C'est aussi une image de l'organisation de Perl, puisque Perl prend pour
modèle les langues humaines, et que les langues humaines sont
complexes, justement parce qu'elles doivent faire face à la
réalité.
Nous avons tous besoin de faire face à la réalité, d'une
façon ou d'une autre. Pour cela, nous simplifions… souvent
trop !
Les anciens simplifièrent trop. Convaincus que Dieu n'avait
créé que des cercles et des sphères, ils croyaient qu'il
préférerait toujours la simplicité à la
complexité. Quand ils ont découvert que la
réalité était plus complexe qu'ils ne l'avaient cru, ils
ont caché la complexité derrière un rideau
d'épicycles. Et ce faisant, ils ont créé de la
complexité superflue. Là est la distinction importante :
l'univers est complexe, mais pas inutilement.
Tout semble suggérer qu'aujourd'hui encore on simplifie trop. Certains
choisissent de trop simplifier leur cosmologie. D'autres leur
théologie. Et nombre d'informaticiens simplifient trop les langages
qu'ils créent, et cachent la complexité de l'univers
derrière le rideau du programmeur.
Chercher des motifs dans le bruit est une tendance humaine naturelle, mais en
cherchant ces motifs, nous en voyons parfois qui ne sont pas vraiment
là. Ceci ne signifie pas qu'il n'y ait pas de motifs. Si on nous donne
une baguette magique pour supprimer le bruit, la régularité
apparaît à l'œil nu. Avec un coup de baguette magique pour
supprimer le bruit, Abracadabra… voici la forme du big bang, et des
étoiles, et des bulles de savon.
Voici la forme de la dimensionalité, des cristaux de sel, et des vides
entre les troncs d'arbre.
Voici la forme d'un nid de fourmis, ou d'un arbre de Noël, ou la forme
d'une trinité :
Et, bien sûr, une fois que vous avez vu que les motifs sont là,
vous arriverez à les distinguer sans l'aide des couleurs (ou du
contraste) :
Nos cerveaux sont doués pour ça.
À ce point-là, vous vous demandez peut-être quel est le
rapport entre tout ceci et Perl. Le fait est que vos cerveaux sont faits pour
programmer en Perl. Vous avez un désir profond de rendre simple ce qui
est complexe, et Perl n'est rien d'autre qu'un outil servant à cela.
Tout comme j'utilise en ce moment même le français pour tenter
de simplifier la réalité. Le français est utile pour
cela, parce qu'il est désordonné aussi.
C'est important, et aussi un peu difficile à comprendre. Le
français est utile parce qu'il est désordonné. Comme il
est désordonné, il s'applique bien à l'espace des
problèmes, lui aussi désordonné, que l'on appelle
réalité. De façon similaire, Perl a été
construit pour être désordonné (mais de la façon
la plus agréable possible).
Permettez-moi d'insister sur ce point contraire à l'intuition. Si vous
avez une formation d'ingénieur, on vous a rabâché que la
première qualité d'un travail est sa simplicité. On nous
apprend à admirer un pont suspendu plus qu'un tréteau de voie
ferrée. On nous apprend à admirer la simplicité et la
beauté. Ce n'est pas mauvais en soi ; moi aussi j'aime bien les
cercles.
La complexité n'est pourtant pas toujours l'ennemi. Le plus important
n'est pas la simplicité ni la complexité, mais comment on relie
les deux.
Toute construction nécessite une certaine mesure de complexité.
On dit que la fusée Saturn V comptait sept millions de pièces,
qui devaient toutes fonctionner. Mais ce n'est pas tout-à-fait vrai.
Un grand nombre de ces pièces étaient redondantes. Et cette
redondance était absolument nécessaire pour qu'il soit possible
d'expédier quelqu'un sur la Lune en 1969. Si certaines de ces
pièces avaient pour fonction d'être redondantes, il fallait
quand même qu'elles fassent leur boulot, pour ainsi dire.
Nous nous trompons quand nous disons « C'est redondant » en
voulant dire « C'est inutile ». La redondance n'est pas toujours
« redondante », que l'on parle de fusées ou de langues
humaines ou de langages de programmation. En fait, la simplicité est
bien souvent un obstacle à la réussite.
Supposons que je veuille conquérir le monde. La simplicité dit
que je devrais le faire tout seul. Mais la réalité impose que
j'ai absolument besoin de votre aide pour cela, et que vous êtes tous
très complexes. Et je trouve que c'est une bonne chose. Vos
inter-relations sont encore plus complexes, et je trouve aussi que c'est une
bonne chose. Parfois il y a des bogues, mais il est possible de
déboguer des relations.
J'ai argumenté que la complexité peut tout aussi bien
être inutile qu'utile. Voyons encore un exemple de complexité
utile :
Vous avez probablement des préjugés en faveur des
systèmes d'écriture occidentaux, et à l'encontre des
systèmes idéographiques, inutilement complexes. Vous trouvez
peut-être que cette image est tout aussi compliquée que la
précédente. Mais, encore une fois, il s'agit d'un compromis
d'ordre technique. Dans ce cas, le chinois a sacrifié la
facilité d'apprentissage en faveur de la portabilité. Cela ne
vous rappelle rien ?
En fait, le chinois n'est pas une langue unique. Il est constitué de
quelque cinq langues principales [1], dont les formes parlées sont si
différentes que leurs locuteurs ne se comprennent pas. On peut
cependant écrire le chinois dans une langue et le lire dans une autre.
Ça, c'est une langue vraiment portable. En choisissant un niveau plus
élevé d'abstraction, le système d'écriture
chinois optimise la communication plus que la simplicité. Un milliard
de chinois ne peuvent pas tous se parler, mais au moins ils peuvent se passer
des notes écrites.
Les ordinateurs aiment bien se passer des notes, eux aussi, grâce aux
réseaux.
Une bonne partie de mes réflexions de cette année a
été influencée par mon travail avec Unicode et XML. Il y
a dix ans, Perl était très efficace pour traiter du texte. Il
est encore meilleur maintenant, si l'on considère l'ancienne
définition de « texte ». Mais cette dernière a
changé sous ses pieds, pendant cette période.
La faute en revient à l'Internet.
Il semble que, lorsque vous cliquez sur les boutons de votre navigateur, cela
encourage des ordinateurs à échanger des notes. Et ceci,
à travers toutes sortes de frontières culturelles. Tout comme
vous voulez comprendre ce qui apparaît sur votre écran, votre
ordinateur veut aussi comprendre ce qu'il va afficher à
l'écran, parce que, que vous le croyiez ou non, l'ordinateur
préférerait l'afficher correctement. Les ordinateurs sont
peut-être stupides, mais ils sont toujours obéissants.
Enfin… presque toujours.
Et c'est là qu'Unicode et XML viennent s'insérer. Unicode n'est
rien d'autre qu'un ensemble d'idéogrammes pour que tous les
ordinateurs du monde puissent se passer des notes les uns aux autres, et
aient une chance de faire ce qu'il faut avec. Il se trouve que certains des
idéogrammes d'Unicode viennent coïncider avec des jeux de
caractères nationaux comme l'ASCII, mais personne ne va apprendre
toutes ces langues. Non seulement personne ne va apprendre toutes ces
langues, mais nul ne l'attend de vous. Ce n'est pas le but.
Voici le but. Le mois dernier j'étais en train de m'occuper de la page
web de mon église qui vient juste de créer une
congrégation chinoise. Elle a donc maintenant deux noms, dont l'un
peut se représenter en ASCII, et l'autre non. Voici ce à quoi
ressemble la page :
Si votre navigateur est assez récent, et si vous avez une fonte
Unicode chargée, c'est ce que vous allez voir. Quelque chose
d'important réside là.
Si j'avais réalisé ce document il y a un an, ce bloc de
caractères chinois aurait probablement été une image au
format GIF. Mais les images posent problème. On ne peut pas couper et
coller des caractères à partir d'une image GIF. J'ai
essayé assez souvent, et je suis certain que vous l'avez fait aussi.
Et si j'avais voulu faire comme cela voici un an, j'aurais dû encore
ajouter un niveau de complexité. J'aurais eu besoin de quelque chose
comme un script CGI pour détecter si le navigateur comprend Unicode,
faute de quoi ces caractères seraient apparus comme du bruit sur la
page. Et on voit le plus souvent le bruit comme de la complexité
inutile.
Revenons-en donc à la simplicité :
Nous utilisons les cercles pour représenter beaucoup de choses. Notre
cercle d'amis. Une accolade, quand on le dessine sur le dos d'une enveloppe.
Le cercle d'un anneau de mariage, qui représente l'amour
éternel.
Pour passer du sublime au ridicule, nous avons aussi le classeur à
anneaux, une sorte d'enfer pour de la paperasse inutile.
Des sphères lumineuses. Des trous noirs. Ou, au moins, leur horizon
d'événements.
Un anneau pour tous les gouverner, et dans les ténèbres les
lier.
Des boules de cristal. Des perles.
Des oignons. Des oignons-perles.
Les cercles figurent abondamment dans notre symbolisme. En particulier, en
ajoutant diverses excroissances à des cercles, nous arrivons à
représenter des notions assez compliquées avec des symboles
simples. Ces symboles sont les ponts entre la simplicité et la
complexité.
Voici un véritable diagramme Zen :
En fait, ce n'en est pas un ; le yinyang vient du Tao (ou Dao si vous ne
pouvez pas prononcer un t non aspiré) qui est une très ancienne
philosophie, plus vieille que le Zen d'au moins mille ans.
Revenons-en donc aux yins et yangs :
Le yinyang représente une philosophie dualiste, un peu comme La Force
dans la guerre des étoiles. Vous savez en quoi La Force ressemble
à un ruban adhésif ? La réponse est : parce que les deux
ont un côté clair, un côté foncé, et ils
unissent les différentes parties de l'univers. Personnellement, je ne
suis pas dualiste, parce que je crois que la lumière est plus forte
que l'obscurité. Cependant, l'idée de forces qui
s'équilibrent est souvent utile, surtout aux ingénieurs. Quand
l'un d'eux veut équilibrer de façon durable des forces, il va
chercher son ruban adhésif.
Quand j'ai dessiné ce yinyang, je me suis demandé si je le
faisais comme il faut. Ce serait dommage de le faire à l'envers, ou de
travers, ou quelque chose comme ça.
Vous savez, l'orientation est plus importante qu'on imagine, les
spécialistes de chimie organique l'appellent
« chiralité ». Si vous prenez une molécule
d'essence de menthe et que vous la retournez, le résultat est une
molécule d'essence de cumin. Beurk. J'étais convaincu que je
détestais le pain de seigle, jusqu'au moment où je me suis
rendu compte que c'étaient les graines de cumin que je n'aimais pas.
Préférer une de ces saveurs ou l'autre, ce n'est qu'une
question de goût, mais les médecins et les spécialistes
en chimie organique vous diront que la chiralité peut parfois
être une question de vie ou de mort. Ou de membres
déformés, dans le cas de la Thalidomide. Les dyslexiques vous
diront que la chiralité est très importante dans le cas des
symboles visuels. Ce texte contient les lettres b et d, et p et q, et le
nombre 6, et aussi le nombre 9. Vous pouvez voir un 6 et un 9 dans le
yinyang, dans cette orientation.
Je me demande en fait si le yinyang n'est pas un peu comme la swastika : le
sens dans lequel vous les dessinez détermine qui va se fâcher
avec vous.
J'ai donc un peu cherché, sur le web bien sûr. En fait, le web
est un exemple parfait d'environnement où « il y a plus d'une
façon de faire ». Dans ce cas, toutes les façons sont
possibles. On peut trouver le yinyang dans toutes les orientations. Je ne
sais toujours pas si l'une d'entre elles est plus correcte que les autres.
Les gens d'A TYEDYE WORLD vendent des t-shirts teints [2]. Pour eux le yinyang a cet aspect :
Je suppose que si vous le voulez dans l'autre sens, il suffit de retourner le
t-shirt de façon à ce qu'on en voie l'intérieur. Vous
pourriez aussi le mettre à l'envers, mais vous vous feriez un peu
remarquer.
Les gens du consortium Unicode sont convaincus qu'il a cette forme. Je ne
sais pas s'ils ont raison, mais si ce n'est pas le cas, ce n'est pas
très important. Ils l'ont publié de cette façon, et
maintenant c'est comme ça, par définition.
Bien sûr, mon dictionnaire le montre à l'envers :
Revenons-en à Unicode. Unicode est plein de cercles. Beaucoup de jeux
de caractères nationaux contenus dans Unicode utilisent le cercle, et
pour nombre d'entre eux, il représente le chiffre 0. Voici le
caractère Unicode numéro 3007 (hexadécimal). C'est le
symbole idéographique de 0 :
Surprise, il ressemble à notre 0. Un point pour l'impérialisme
culturel. En anglais, bien sûr, nous avons tendance à
rétrécir notre 0 sur les côtés, pour le distinguer
de la lettre O.
En bengali, ils le rétrécissent dans l'autre sens, pour des
raisons similaires :
Je trouve intéressant que le monde contienne autant de
représentations différentes pour rien. On pourrait en tirer bon
nombre de blagues : « Beaucoup de bruit pour rien », ou
« Rien ne peut arrêter une idée dont le moment est
venu ». Voici quelque chose en rapport avec rien :
C'est le caractère universel pour « interdit ». En
Unicode, il est classé comme un caractère composé.
Bien entendu, dans la culture Perl, presque rien n'est interdit. Je pense que
le reste du monde contient déjà plein de bonnes interdictions,
alors pourquoi en inventer de nouvelles ? Ceci s'applique à la
programmation, mais aussi aux relations entre personnes. On m'a
demandé plus d'une fois de bannir quelqu'un de la communauté
Perl, parce qu'il avait été déplaisant d'une
façon ou d'une autre. Jusqu'ici, j'ai toujours refusé, et je
crois que j'ai eu raison. Du moins, au niveau pratique, cette façon de
faire a fonctionné jusqu'ici. À chaque fois, soit l'individu en
question a décidé de partir, soit il s'est calmé et a
appris à s'arranger avec les autres de façon plus constructive.
C'est étrange. Les gens comprennent instinctivement que la meilleure
façon de faire des programmes qui communiquent entre eux est de les
rendre stricts en ce qu'ils vont transmettre, et larges en ce qu'ils vont
accepter. Ce qui est étrange, c'est que ces gens eux-mêmes ne
sont pas prêts à être stricts en ce qu'ils disent et
tolérants lorsqu'ils écoutent les autres. Cela semble pourtant
évident, mais, à la place, on nous apprend à nous
exprimer librement.
D'un autre côté, nous essayons d'encourager certaines vertus
dans la communauté Perl. Comme l'apôtre Paul l'indique, personne
ne fait de lois contre l'amour, la joie, la paix, la patience, la
gentillesse, la bonté, la douceur, le contrôle de soi. Donc,
plutôt que de nous efforcer à interdire les mauvaises choses,
efforçons-nous de promouvoir les bonnes. Voici un caractère
Unicode pour cela :
Bien sûr, si vous êtes un hippie, vous préférerez
celui-ci :
Certains caractères Unicode à connotation positive sont moins
évidents :
Voici le symbole pour le clic bilabial, un des symboles de l'Alphabet
Phonétique International. Vous ne le connaissez peut-être pas,
mais nombre d'entre vous font ce bruit régulièrement. Si vous
voulez essayer, voici comment faire : vous joignez vos lèvres, et
faites, avec la bouche, une espèce de son affriqué ingressif .
En anglais, nous notons ceci avec des X et des O au dos des enveloppes. Mais
nous sommes témoins de la fin d'une époque. Avec
l'arrivée en force du courrier électronique, l'habitude se perd
d'envoyer des bisous et des accolades sur le dos des enveloppes. Et ça
n'a pas vraiment le même effet dans une ligne d'en-tête de
message électronique. Content-type: text/accolade&bisous.
Vous voyez, c'est tout aussi difficile de parfumer un message
électronique. Content-type: text/parfumé. De quoi exciter
l'imagination.
Voici encore des cercles qui représentent des choses
compliquées. Celui-ci représente la Terre :
Et celui-là. Mars :
Et voici le symbole de Vénus :
À un certain moment j'ai travaillé pour le Jet Propulsion
Laboratory, et j'ai un peu aidé à découvrir que Mars et
Vénus sont très compliquées. Et, comme si les choses
n'étaient pas assez compliquées comme ça, les anciens
les compliquaient encore plus en réutilisant ces symboles pour
représenter le mâle et la femelle. Pour eux les hommes venaient
de Mars, et les femmes de Vénus. L'idée n'est pas nouvelle.
Voici encore un peu d'Histoire :
Si vous coupez un oignon, il ressemble à ça. Et si on le prend
pour une métaphore du monde Perl, alors je dois être ce petit
morceau d'oignon au milieu.
Autour de moi se trouvent certains des premiers adeptes de Perl, qui sont
maintenant vénérés comme des héros de la
révolution. Au fur et à mesure que le mouvement s'est
élargi, de nouvelles couches ont été ajoutées.
Vous pouvez aussi voir cela comme un atome, avec des couches
d'électrons. Comme aucun atome connu ne contient autant de couches
d'électrons, nous en resterons aux oignons.
Ce qu'il se passe avec l'oignon, c'est qu'il m'indique quelque chose sur ma
propre importance, ou plutôt sur mon peu d'importance.
C'est-à-dire que même si j'ai lancé tout ce mouvement, je
ne suis qu'un petit morceau de l'oignon. Presque toute la masse se trouve sur
les couches extérieures (c'est pourquoi j'aime voir apparaître
des mouvements populaires, comme les Perl Mongers). Et je suis là, au
milieu. On me reconnaît une importance historique, mais en fait les
gens voient l'extérieur de l'oignon, pas l'intérieur. À
moins qu'ils ne passent leur temps à découper des oignons en
rondelles. Et même si c'est le cas, il y a plus d'oignon dans les
grandes rondelles que dans les petites. Que ceux qui veulent être au
centre en tirent une leçon. Ce n'est pas là que se trouve le
véritable pouvoir. Pas dans ce mouvement, en tout cas. J'ai
essayé de façonner ce mouvement selon un autre mouvement auquel
j'appartiens, et le fondateur de ce mouvement disait : « Celui qui veut
être le meilleur d'entre vous doit devenir le serviteur de
tous ». De ceux qui étaient au centre avec lui, un l'a trahi, et
les onze autres sont morts en martyrs. Mais je ne demande pas à mes
amis de se donner en pâture aux lions, du moins pour l'instant.
Revenons-en aux motifs de croissance. Les perles naturelles croissent aussi
par couches, autour d'un grain de sable qui irrite l'huître en
question, qui forme de jolies couches autour. Ceci pourrait être une
section d'une perle. C'est donc encore plus vrai avec les perles qu'avec les
oignons : la couche externe est la plus importante. C'est la seule qui est
visible. Ou, si la perle est en pleine croissance, c'est sur elle que va
s'appuyer la couche suivante. Je vois bien que ceci me classe comme un simple
irritant. Cette classification me va.
D'autres choses croissent avec le temps aussi. Ce sera peut-être plus
clair si nous regardons les anneaux de croissance d'un arbre :
Si vous avez quelques notions de physique, vous saurez qu'un tube est presque
aussi résistant qu'une barre solide du même diamètre,
parce que la plus grande partie de la force se transmet par les couches
externes. En fait, le centre d'un arbre peut être pourri, alors que
l'arbre lui-même reste en bonne santé. Tous les ans, des gens
économisent des milliards de dollars en programmant en Perl, mais
presque toutes ces économies se réalisent dans les
tranchées les plus extérieures. Même plus près du
centre, plus d'efforts visent à connecter Perl avec d'autres choses,
qu'à modifier Perl lui-même. Et je suis d'accord avec cette
façon de faire. Le centre de Perl est en train de se stabiliser.
Même avec des changements centraux comme le support de multiples fils
d'exécution (threads en anglais) ou d'Unicode,
nous faisons comme si nous ajoutions des modules d'extension, parce que c'est
plus propre, et que personne ne se trouve forcé à utiliser les
nouvelles fonctions s'il ne le souhaite pas.
Toute cette histoire d'anneaux de croissance est très bien pour parler
du passé, mais qu'en est-il du futur ? Je n'ai pas de boule de
cristal, mais j'ai une paire de jumelles. En voici le symbole habituel :
Ceci est, bien sûr, le méthode habituelle pour indiquer, au
cinéma, que quelqu'un est en train de regarder à l'aide de
jumelles. Je ne sais pas trop quoi mettre dans le champ de vision ; voyons
donc ce qui se trouve de l'autre côté des jumelles :
Ceci pourrait aussi être un dessin de deux corps célestes en
rotation l'un autour de l'autre :
Chacune de ces planètes provoque des marées sur l'autre. Les
gens comprennent en général pourquoi il y a un renflement sur
le côté qui fait face à l'autre planète, mais plus
difficilement pourquoi il y en a un également sur le côté
opposé. Cela se comprend mieux si l'on considère que la
deuxième planète, en plus de tirer sur le renflement le plus
proche de la première, est aussi en train de tirer sur le centre de la
première, l'éloignant du renflement opposé.
Voici une bonne image de la relation entre la communauté du logiciel
libre, et celle du logiciel commercial. Nous pourrions même donner des
noms aux extrémités. Inventons donc quelques noms. On pourrait
appeler le bout à gauche, euh, Richard. Et on pourrait appeler le bout
à droite, euh, Bill.
Les renflements au milieu sont plus difficiles à nommer mais, pour une
fois, on pourrait appeler Larry celui du milieu à gauche, et Tim celui
du milieu à droite.
Ceci constitue encore, bien entendu, un cas de simplification excessive,
parce que les gens et les organisations ne se trouvent pas à un seul
point donné, mais ont tendance à bouger un peu. Quelques-uns
réussissent à osciller entre un renflement et l'autre. À
un moment ils sont pour une plus grande coopération entre les
communautés du libre et du commercial, et juste après ils
s'occupent à attaquer tout ce qui est commercial. Au moins nos
hypothétiques Richard et Bill restent-ils cohérents.
Mais l'action se déroule au milieu.
C'est le milieu que de plus en plus de personnes observent, pour voir ce qui
va se passer. En fait, cette image correspond plutôt à
l'année dernière. Cette année elle ressemble plus
à ceci :
Robert L. Forward a écrit un roman, en fait une série de
romans, sur un endroit nommé Rocheworld. Comme on pourrait s'y
attendre, il tire son nom d'un individu nommé Roche. C'est lui qui a
défini la limite de Roche, qui prévoit que des planètes
se désagrégeraient si elles se rapprochaient en
deçà de cette limite. Il s'est avéré qu'il avait
trop simplifié, et que si vous laissez vos planètes prendre des
formes comme celle-ci, vous pouvez les rapprocher beaucoup plus, sans
compromettre leur stabilité. Bien sûr, la force gravitationnelle
totale qui s'applique sur ces points est très faible, mais elle est
suffisante pour assurer la cohésion des planètes.
De façon similaire, les communautés des logiciels libres et
commerciaux sont beaucoup plus proches maintenant que beaucoup de gens ne
l'avaient cru possible, avec leurs calculs. Dans le monde de Roche, les
planètes ne se touchaient pas, mais elles avaient l'atmosphère
en commun. Si nous rendons l'image un peu plus floue par la magie de xpaint,
nous obtenons ce genre de résultat :
On voit ici comment on peut prendre l'avion d'une planète à
l'autre, mais pas y aller à pied. Cela rappelle les tunnels
quantiques, où il est impossible d'aller d'un endroit à un
autre, sauf par un saut qui ne parcourt pas les points intermédiaires.
Un énorme flux d'idées circule entre les communautés du
logiciel libre et commercial. Ensemble, ces deux lobes internes constituent
ce que l'on appelle maintenant le mouvement Open Source. Et quelque chose de
tout nouveau : des ennemis d'antan qui se mettent d'accord sur un bien commun
au-delà de tout modèle commercial. Et ce bien commun, c'est
plus de logiciel de qualité, et plus vite. Et cela a été
possible, parce que les gens se sont rendus compte de la puissance d'une
idée simple : on n'a pas besoin de brevets sur le logiciel, ni de
secrets commerciaux. Il nous faut juste encore un cercle :
Un cercle avec un « c » à l'intérieur. L'Open
Source devra sa survie ou sa mort aux lois sur le copyright. Nous
espérons qu'il survivra. Faisons donc tous ce que nous pouvons, pour
que ce soit possible. Si vous avez l'occasion d'argumenter pour le copyright
plutôt que les brevets, faites-le. Respectons aussi la loi du
copyright, et les souhaits des auteurs, qu'ils aient ou non été
exprimés à la satisfaction des avocats de l'un ou l'autre. Le
« c » dans le cercle devrait aussi représenter le civisme.
Et quand nous pensons au civisme, nous pensons aussi aux villes, et aux
choses claires et carrées. Voici donc un carré :
Et, en effet, les villes sont faites de carrés, et de rectangles. Nous
les appelons des blocs, ou des pâtés de maisons, ou des places
quand les architectes urbains laissent un bloc sans bâtiments.
Parfois, les bâtiments eux-mêmes sont carrés :
Mais, le plus souvent, ils ne le sont pas. De même, si vous regardez
dans le livre d'Unicode, il y a nettement moins de carrés que de
cercles. Je crois qu'il existe une raison fondamentale derrière cela.
Quand nous construisons des bâtiments, et quand nous écrivons
des caractères, nous les mettons dans une structure faite de lignes
droites. En termes d'écriture, nous écrivons de gauche à
droite, ou de droite à gauche, ou d'en haut en bas. Les cases
abstraites, dans lesquelles nous mettons les caractères ou les
bâtiments, sont plus ou moins carrées. Et les caractères,
comme les bâtiments, ont tendance à disparaître
visuellement, s'ils suivent les mêmes lignes que le texte
lui-même. De nombreux caractères contiennent donc des lignes
inclinées, tout comme l'on tente d'éviter que les gratte-ciels
modernes ressemblent à des boîtes. Personne n'aime les
gratte-ciels des années 60, parce qu'ils ressemblent trop à des
boîtes. Les gens aiment que les choses se distinguent de leurs
environnements.
C'est aussi pour cela que les différentes classes d'opérateurs
et de variables en Perl se distinguent visuellement entre elles. Ce n'est que
de la bonne ingénierie humaine, en ce qui me concerne. Je n'aime pas
le fait que tous les opérateurs se ressemblent en Lisp. Je n'aime pas
le fait que la plupart des plaques de rue se ressemblent en Europe. Et
j'applaudis la décision de l'Allemagne, de faire des signes de stop
différents de tous les autres. Bien sûr, c'est aussi une bonne
chose pour nous américains ignorants qu'ils les ont fait comme des
signes de stop américains. Un point de plus pour l'impérialisme
culturel.
En repentance de l'impérialisme culturel américain, je vais
indiquer encore un avantage des systèmes d'écriture
idéographiques. Comme les idéogrammes s'écrivent dans
des cases carrées, on peut tout aussi bien les écrire
horizontalement que verticalement. Et vice-versa. Nos caractères
à taille variable n'ont pas cette propriété. Surtout pas
avec une police comme Helvetica, où l'on a du mal a distinguer les l
des i même lorsqu'ils sont les uns à côté des
autres. Si vous les alignez verticalement, le résultat sera juste une
ligne cassée. Les chinois, les japonais et les coréens
reviennent au score !
Pour conclure, je voudrais parler de triangles. En voici un :
Les triangles sont aux cercles ce que les pointes de flèches sont aux
cibles. Voici une cible :
Je suis sûr de ne pas m'être trompé cette fois-ci. J'ai
regardé sur le web. Et surtout, je me suis arrêté
dès que j'en ai trouvé une.
En fait, ceci est le caractère Unicode nommé « œil
de bœuf ».
Je ne suis pas tout-à-fait sûr de ce qu'il est censé
signifier, mais ce n'est pas un problème. Il suffit de lui inventer
une signification.
J'ai tiré un bon nombre de flèches dans cet essai, et je ne
sais pas si j'ai atteint des cibles ou pas. Nous mettons des triangles
à la pointe des flèches parce qu'ils sont pointus. Nous
associons les triangles à la douleur, surtout si nous leur marchons
dessus. Les angles du triangle suggèrent la difficulté
d'escalader une montagne :
En même temps, les impressions peuvent être trompeuses. Un
triangle représente aussi une route plate qui s'éloigne vers
l'horizon :
Ce n'est qu'une question de perspective. Vous pouvez choisir votre champ de
vision en choisissant où vous placer. Je ne peux pas prédire si
le chemin que prendra Perl sera plein de bosses ou pas, mais je peux
prédire que, plus nous arrivons à voir de perspectives, mieux
nous arriverons à choisir les perspectives que nous
préférons. Et c'est, après tout, le travail du
créateur d'un langage : étudier le problème depuis de
multiples perspectives, être juste un peu omniscient, pour que le plus
de monde possible en tire profit. Je fais un peu de triangulation, et
j'organise le territoire. C'est mon travail. Si ma carte vous mène
là où vous souhaitez vous rendre j'en serai heureux.
Si vous prenez une section de l'oignon qu'est Perl, il ressemble un peu
à un triangle. Mettez-le sur le côté, et vous avez un
graphique de la croissance de Perl pendant les dix dernières
années.
Et c'est très bien comme ça. Ce graphique n'est que virtuel,
bien sûr. Je n'ai aucune façon de mesurer la véritable
croissance de Perl. Mais il est évidemment encore en train de
croître. Nous faisons beaucoup de choses comme il faut, et en grande
partie, il faut juste que nous continuions à faire ce que nous
faisons.
Supposons maintenant que l'on rétrécisse ce triangle, et qu'on
étende le graphique pour montrer toute la durée de vie de Perl.
Nous n'avons vraiment aucune idée de ce que peut être cette
durée.
Il est difficile de prévoir quels vont être les facteurs
décisifs pour cela. Mais je dois vous dire que je n'évalue pas
le succès de Perl en en fonction du nombre de personnes qui
m'apprécient. Quand je trace ces courbes, je compte les personnes
ainsi aidées.
Je peux vous dire que je crois que la différence entre les courbes 1
et 2 peut dépendre de l'addition de tous les utilisateurs potentiels
de MS-Windows, et tous les problèmes qu'ils doivent résoudre,
qui sont nombreux. Ce n'est pas par hasard que nous venons de publier une
boîte à outils Perl pour Win32.
Et je peux aussi vous dire que la différence entre les courbes 1 et 3
peut dépendre de l'addition de tous les utilisateurs internationaux
qui pourraient bénéficier de Perl. Ce n'est pas par hasard que
la dernière version en développement de Perl vous permet de
nommer vos variables en utilisant n'importe quels caractères
alphanumériques en Unicode, dont les idéogrammes. Il y a un
milliard de gens en Chine. Et je veux qu'ils puissent se passer des notes
écrites en Perl, et aussi écrire des poèmes en Perl.
Telle est ma vision du futur, la perspective que je choisis.
J'ai commencé en parlant des vertus du programmeur : la paresse,
l'impatience, et l'orgueil.
Ce sont des vertus de passion, et aussi des vertus individuelles. Ce ne sont
pas, en revanche, des vertus pour une communauté. Les vertus d'une
communauté sont opposées : la diligence, la patience, et
l'humilité.
Elles ne sont pas vraiment opposées, parce vous pouvez toutes les
pratiquer en même temps. C'est une question de perspective. Ce sont ces
vertus qui nous menèrent jusqu'ici. Et ce sont ces vertus qui vont
amener notre communauté vers le futur, si nous ne les abandonnons pas.
Avant tout, il faut que nous restions sur notre chemin. C'est ce que
Friedrich Nietzsche appelait une « longue obéissance dans une
même direction », ce qui constitue un bon slogan. Mais j'aime la
citation complète aussi :
« Le plus essentiel « sur terre comme aux
cieux » est… d'avoir une longue obéissance dans une
même direction ; de là en sort, et en est toujours sorti,
à long terme, quelque chose qui rend la vie bonne à
vivre. »
Et là nous avons bouclé la boucle, pour en revenir au cercle.
Voici la porte d'entrée de la maison de Bilbo Baggins (Bilbon
Sacquet). Un chemin naît devant cette porte, et Bilbo a écrit un
poème :
|
Le chemin continue et s'éloigne
de la porte d'où il est parti.
Bien loin d'ici il arrive à présent,
et je dois le suivre, si je le peux,
de mes pieds impatients,
jusqu'à rejoindre une voie plus large,
où confluent des routes et des courses.
Pour aller où ? Je ne saurais le dire.
|
|
–J.R.R. Tolkien, The Hobbit |
|
Notes
|