LA CLASSE, LE GNOU ET LE PINGOUIN
Hilaire FERNANDES
hilaire@ofset.org
17 mai 2001
Revision le 19 août 2001
Résumé:
Les Logiciels Libres et leurs modes de développement nous offrent
de nouvelles méthodes de travail collaboratif. La communauté des Logiciels
Libres met en avant une solidarité sociale nouvelle dans les modes de
développement. Cette solidarité dans la communauté optimise les coûts
de développement des logiciels et elle constitue en même temps un bénéfice
social important comme nous le montrerons. De même, cette communauté
désoriente et inquiète certaines entreprises du logiciel 1
Dans cet exposé nous présenterons quelques aspects du phénomène
des Logiciels Libres. Dans une première partie nous relaterons les
différents moments forts de l'histoire des Logiciels Libres, à partir
de la création du projet GNU jusqu'à la création de
la dénomination Open Source. Dans la deuxième partie nous analyserons
quelques outils clés qui ont permis l'essor des Logiciels Libres.
Dans la troisième partie nous examinerons leurs modes sociaux de développement.
L'exposé des trois points précédents nous a paru indispensable pour
mieux discerner les spécificités des Logiciels Libres par rapport
aux logiciels éducatifs et l'enseignement.
Nous poursuivrons donc ensuite sur l'impact quant aux développements
d'interfaces utilisateurs par les modes de développement des Logiciels
Libres. Enfin l'intérêt des Logiciels Libres pour l'éducation et l'enseignement
sera développé. Pour finir nous présenterons quelques projets qui
nous semblent être caractéristiques.
Remerciements à Nicole Ciry, Frédéric Couchet, Bruno Coudoin, Pierre
Jarillon, Francis Galiegue et Richard Stallman pour leurs relectures,
corrections et explications.
Le gnou
Il était une fois...
La communauté des Logiciels Libres a commencé à s'organiser autour du
système d'exploitation GNU à partir de 1984 sous l'impulsion
de Richard Stallman.
Avant cette date là, les Logiciels Libres existaient déjà depuis longtemps,
au MIT AI Lab par exemple où était employé Richard Stallman. Les programmeurs
du MIT AI Lab avaient développé avec d'autres un système d'exploitation
- the Incompatible Timesharing System - qu'ils partageaient volontiers.
Implicitement, ces logiciels étaient des Logiciels Libres. N'importe
qui passant par là avait la possibilité de copier entièrement ou en
partie ces logiciels pour les réutiliser là où cela lui semblait utile,
il pouvait aussi par simple curiosité intellectuelle scruter librement
le code source[11]. Stallman
appelle souvent cela aider son voisin.
Cependant à partir des années 80 cette communauté s'est disloquée
peu à peu. Les raisons principales de cette dislocation furent l'abandon
du PDP-10 - système sur lequel the Incompatible Timesharing System
fut développé, mais aussi la commercialisation des logiciels qui attira
un nombre important des programmeurs talentueux de la communauté de
Stallman[10]. Dans ce
contexte, ces programmeurs n'écrivirent plus de Logiciels Libres mais
uniquement des logiciels propriétaires.
Selon Stallman les logiciels non libres suppriment un certain nombre
de libertés fondamentales comme :
- La liberté d'utiliser un logiciel.
- La liberté d'aider son voisin - c'est à dire de redistribuer.
En supprimant cette liberté il en résulte un dommage social. En effet
l'acquisition et l'utilisation d'un logiciel non libre implique l'acceptation
de ne pas aider son voisin, c'est à dire de refuser de lui donner
une copie même s'il en a besoin. Bien sûr, dans les faits les choses
ne se passent pas de la sorte et un utilisateur décidera d'enfreindre
la loi car ne pas aider son voisin est immoral.
- La liberté d'adapter un logiciel à des besoins spécifiques. Pourtant
cette liberté fondamentale garantit de pouvoir réparer un logiciel
lorsque celui-ci a un problème et que les auteurs du logiciel ne souhaitent
pas le corriger.
Stallman évoque souvent l'anecdote de la première imprimante laser
Xerox donnée au MIT AI Lab. Elle était livrée avec un logiciel propriétaire
que les programmeurs du Lab ne pouvaient pas étendre pour circonvenir
à certains problèmes liés à l'utilisation de cette imprimante.
À ce niveau, nous pouvons faire le parallèle avec le paradigme
d'adaptabilité évoqué en IHM. Ici le concept d'adaptation
d'un logiciel à des besoins spécifiques se situe au niveau du code
source. C'est un concept qui va beaucoup plus loin que celui d'adaptabilité
des IHM et qui finalement l'englobe. Les logiciels
ont poussé ce concept d'adaptabilité extrêmement loin, nous étudierons
certains de ces aspects dans une section suivante.
- Liberté de faire évoluer un logiciel. Le développement des logiciels
est incrémental. À l'image de la recherche scientifique, un programmeur
peut s'appuyer sur un programme existant pour l'étendre ou le cannibaliser1.1 afin de commencer un nouveau projet.
Cependant ce fonctionnement n'est plus possible lorsque cette
liberté est supprimée. Cela revient donc à bloquer la collaboration
scientifique dans le domaine des logiciels. Nous savons pourtant
que cette collaboration scientifique est à la base des importantes
découvertes et avancées scientifiques dans les sociétés occidentales.
- Liberté d'étudier les logiciels. L'étude des codes sources de projets
importants permet à des étudiants en informatique d'apprendre comment
des programmeurs expérimentés résolvent des problèmes. C'est malheureusement
impossible avec des logiciels non libres.
Ainsi pour Stallman, l'importance des Logiciels Libres doit être comprise
par rapport aux bénéfices qu'ils apportent globalement à la société
et non à un groupe privilégié. À partir de là il stipule que les logiciels
ne doivent pas avoir de propriétaires, du moins au sens coercitif tel
qu'il est souvent explicité dans les licences de logiciels propriétaires1.2.
Donc dans le début des années 80, Stallman s'est trouvé face à un
dilemme :
- Faire comme ses collègues et rejoindre l'industrie des logiciels
propriétaires, mais ne plus utiliser de systèmes d'exploitation libres
;
- Ne pas utiliser de systèmes d'exploitation propriétaires mais sans
possibilités d'utiliser de système d'exploitation.
Il avait sans doute d'autres possibilités, mais elles n'étaient pas
acceptables pour un programmeur talentueux. Ainsi il a décidé de démarrer
le développement d'un système d'exploitation libre de type UNIX. Le
nom de ce système d'exploitation est GNU "GNU's Not Unix''.
Outre le démarrage du développement du système d'exploitation GNU,
une de ses plus importantes réalisations fut la licence GNU GPL
(GNU General Public license). L'objectif de cette licence est d'assurer
la liberté d'un logiciel distribué sous ses termes. La méthode utilisée
dans cette licence est appelé Copyleft (gauche d'auteur) à l'opposé
de Copyright (droit d'auteur).
L'idée du Copyleft est de donner à tous la permission d'utiliser
le logiciel, de le copier, de le modifier et de distribuer des versions
modifiées du programme. Ces droits sont garantis à toute personne possédant
une copie du logiciel.
En revanche cette licence interdit d'ajouter des restrictions. Par
exemple la licence ne permet pas d'ajouter des modifications et de les
redistribuer sans offrir les mêmes droits.
Une implication directe de cette licence est que toute distribution
de modifications faites à un logiciel sous licence GNU GPL
doit l'être sous cette même licence.1.3
Les termes de cette licence sont accordés avec les objectifs fixés
par le projet. De plus cette licence garantit quelque chose de très
important : la collaboration dans une communauté scientifique et
l'assurance de la pérennité des avancées faites tout en assurant le
libre accès aux progrès réalisés.
Si cette licence est attaquée par certaines personnes cela démontre
en fait le succès du développement des Logiciels Libres sous cette licence.
Cela montre aussi le grand intérêt porté sur la qualité de ces logiciels
par des groupes étrangers à cette communauté. Groupes qui souhaiteraient
éventuellement bénéficier de ces avantages sans redistribuer à cette
communauté scientifique.
Dans les années 80, Stallman écrivit GNU Emacs, GCC un compilateur
C multi-architecture[9], GDB un débogueur
symbolique.
Lorsque c'était possible des composants existants libres étaient utilisés.
C'est par exemple le cas pour l'environnement graphique qui repose sur
le système X Window. Ou encore TEX , le système
de formatage de texte.
La FSF (Free Software Foundation) fut créée en 1985
et elle commença le financement du développement d'autres composants
nécessaires pour compléter le système GNU.
Pourquoi choisir de cloner un système de type UNIX plutôt qu'un autre ?
Outre le fait qu'UNIX est un système puissant, c'est aussi lié au contexte
des années 80. UNIX avait - et a toujours - la faveur des hackeurs1.4 dont Stallman pouvait espérer la contribution
- l'histoire prouvera qu'il a eu raison. De plus l'aspect extrêmement
modulaire d'UNIX permit de remplacer une par une ses différentes parties1.5.
La méthode utilisée pour parvenir à la réalisation complète d'un système
libre fut donc de remplacer un par un les différents composants d'un
système UNIX propriétaire pour arriver à la réalisation complète du
système GNU.
Parmi les composants dont le développement fut financé par la FSF
à l'époque, nous pouvons compter la bibliothèque C et le shell BASH.
Ainsi un à un les différents composants propriétaires furent remplacés
par des équivalents libres. Cela permit au système GNU
de devenir très populaire car chacun de ses composants pouvaient être
utilisés dans les UNIX propriétaires. Ce qui par conséquent attira encore
davantage de volontaires au projet.
Au début des années 90 les composants les plus importants étaient
développés sauf le noyau. La FSF décida d'utiliser pour
son noyau GNU HURD l'architecture modulaire du micro-noyau Mach. Elle
pensait que cela faciliterait la mise au point des différents micro-serveurs
du noyau. En fait c'est plutôt le contraire qui s'est passé au point
qu'en 1991, un jeune finlandais, Linus Torvalds, commença le développement
d'un noyau compatible UNIX appelé Linux. Linux fut placé très rapidement
sous licence GNU GPL. Les motivations de Torvalds n'étaient
d'ailleurs pas de compléter le système GNU. Cependant les composants
du système GNU plus le noyau Linux permirent de compléter GNU
dès 92.
Pour cette raison, nous appelons le système GNU/Linux ; Linux
est en fait le nom du noyau.
À partir du moment où les bases du système libre GNU furent établies,
d'autres types de développement commencèrent, essentiellement au niveau
des interfaces utilisateurs. Cependant plusieurs des bibliothèques graphiques
utilisées étaient non libres. Les deux problèmes les plus célèbres sont
autour des bibliothèques Motif et Qt, toutes deux non libres. Utiliser
une bibliothèque non libre dans un programme libre a pour effet de rendre
ce dernier non libre. Certes cela peut rendre le programme plus convivial
mais au détriment de la liberté.
La communauté a ainsi développé LessTif un clone de Motif qui devint
suffisamment compatible vers les années 97.
Le problème posé par Qt, bibliothèque développée par TrollTech, était
plus important car elle sert de bibliothèque de base pour l'environnement
graphique KDE - projet démarré en 1996 qui connu un succès assez important,
grâce notamment à certaines distributions du système GNU peu soucieuses
des enjeux de libertés.
Ici à nouveau la réponse de la communauté fut le développement d'alternatives
libres. Dans ce cas, un système environnement utilisateur libre reposant
uniquement sur des composants libres - la bibliothèque GUI libre GTK+
- fut démarré : le projet Gnome initié par Miguel de Icaza. Gnome
est en fait le système de bureau de GNU.
La bibliothèque Qt fut finalement placée sous licence GNU GPL
en 2000, ce qui résolu le problème de liberté lié à KDE. Mais c'est
sans compter l'effort gigantesque de la communauté pour démarrer le
projet parallèle Gnome. Il est aussi à peu près sûr que sans cet effort,
Qt n'aurait pas été finalement placé sous licence GNU GPL.
Une des constantes dans les problèmes exposés ci-dessus est l'échange
de commodité utilisateur contre une perte de liberté. Si la finalité
est d'avoir un système libre, ce procédé est inacceptable par la FSF.
Cela explique son intransigeante position sur ce point et nous rappelle
sa philosophie qui est basée sur l'éthique, la morale et la liberté
et non la commodité1.6.
En 1998 la FSF allait connaître un nouveau challenge
de la part de sa communauté même cette fois-ci.
En 1998 une partie de la communauté décida de ne plus utiliser la
dénomination Logiciels Libres - free software - mais plutôt logiciels
aux codes sources ouvert - open source.
Le principal argument avancé était qu'en anglais free peu signifier
à la fois gratuit et libre. Dans notre cas c'est au deuxième sens qu'il
est fait référence. Selon eux le terme open source permet de
lever cette ambiguïté - cette expression précise bien que le code source
est disponible - tout en préservant l'esprit des Logiciels Libres.
Malheureusement cette expression souffre d'un défaut puisqu'elle ne
rend pas compte de la liberté associée au logiciel. Par exemple pour
beaucoup de personnes, open source veut simplement dire logiciel
dont le code source est lisible mais sans les libertés associées aux
Logiciels Libres[12].
Un autre objectif de ce mouvement était aussi de nier la philosophie
sous-jacente du projet GNU - la liberté - au détriment
d'arguments de commodités comme les avantages techniques des modes de
développement des Logiciels Libres. Cela se retrouvera notamment dans
les écrits d'Eric Raymond qui passe systématiquement sous silence les
motivations philosophiques du projet GNU au détriment
d'une catégorisation en des termes de fanatisme et anti-commercial[8].
En fait la FSF - fondation créée pour soutenir le développement
du système GNU - a été une des premières organisations
à faire du business avec les logiciels libres en vendant différents
produits et services à base de Logiciels Libres[5].
Pour Raymond[8] la motivation
des programmeurs de Logiciels Libres est à rechercher du côté de l'ego
et de la quête de reconnaissance auprès de ses pairs.
Cela peut être vrai dans certains cas, mais pouvons nous dire que
la motivation de Stallman était l'inflation de son ego ? N'aurait-il
pas été plus simple pour lui de rejoindre une société de logiciels propriétaires
et de gravir les échelons de sa hiérarchie ?
Certes l'inflation de son ego apporte des satisfactions mais nous
devons admettre que c'est une raison parmi d'autres. En ce qui concerne
le projet GNU la principale raison était de l'ordre de
l'idéalisme politique.
Une autre source de motivation est selon l'auteur l'excitation intellectuelle
liée à la réalisation ou participation à des projets libres. Cette excitation
est souvent associée à un désir de perfection proche de celles des artisans.
L'humilité présente chez les hackeurs est selon Raymond une conséquence
du refus de reconnaissance consciente de l'ego comme source de motivation.
Une autre explication sans doute plus cohérente est d'attribuer celle-ci
au ``doute scientifique''. Toute résolution d'un problème doit être
accompagnée d'une certaine dose de modestie au risque d'être ridiculisé
si la solution proposée s'avère niaise, fausse ou incomplète. De plus
le doute scientifique permet également de prendre du recul sur son travail.
Des études faites auprès d'un public d'étudiants en économie - public
éduqué à une théorie où la recherche du gain personnel est la principale
motivation - nous ont montré que ceux-ci étaient moins enclins à la
coopération[4].
Nous pouvons donc légitimement douter de l'explication de l'ego comme
seule motivation dans le développement volontaire coopératif.
Un parallèle intéressant peut être fait entre les communautés où la
solidarité est justement utilisée comme levier dans la réalisation de
grandes tâches hors de portée de l'individu. Nous pouvons par exemple
citer, les communautés d'immigrés ou les communautés Mormon.
Finalement ce qui est fort gênant dans les écrits de Raymond, c'est
la négation de la solidarité dans la communauté des Logiciels Libres.
Cette négation l'amène à faire des montages conceptuels par métaphores
douteuses.
Par exemple, son explication du don dans la communauté relève du pur
cynisme. Le don de logiciels dans la communauté serait pratiqué, selon
lui, uniquement pour flatter l'ego et son statut social.
Ailleurs dans ses textes, l'utilisation de la propriété foncière comme
métaphore pour définir un concept de ``propriété de la Noosphère'' est
en contradiction avec l'esprit de la communauté du libre. Stallman stipule
que les logiciels dans sa communauté n'ont pas de propriétaires. Dans
ce cas le propriétaire des logiciels est la communauté, légalement -
et éventuellement - incarnée par la FSF. Cela explique
pourquoi la FSF recommande de lui transférer les Copyright
des logiciels GNU, ce qui n'empêche pas leurs exploitation
commerciales mais assure la continuité de la licence dans les versions
ultérieures du logiciel1.7.
Au passage l'idéologie défendue par Raymond a pour continuité logique
le dépôt systématique de brevets pour défendre ``les propriétés de la
Noosphère''.
Cependant ses analyses sur les modes de gestions de projets libres
sont tout à fait judicieuses. Elles apportent un éclairage intéressant
pour qui veut gérer un tel projet et sa composante psychologique.
Il est intéressant de remarquer que deux modèles de sociétés s'opposent
entre ces deux personnalités :
- Le premier, historique, propose un modèle basé sur les communautés
de solidarité. Ses fondements sont la solidarité envers son voisin
et la liberté (d'utiliser, distribuer, modifier, étudier). Ses inspirations
remontent aux pères fondateurs des États-Unis.
- Le deuxième tente d'appliquer le modèle économique actuel pour expliciter
le fonctionnement de la communauté. C'est à dire que la motivation
première des membres de la communauté est plutôt à rechercher du côte
de ``l'enrichissement'' personnel.
Le gnou, le pingouin et la savane ou comment le mouvement s'emballe
grâce à l'Internet
Dans cette section nous analyserons quelques outils importants qui
permirent l'essor inespéré des Logiciels Libres.
L'Internet est bien sûr un de ces outils, son histoire se confond
d'ailleurs avec celles des Logiciels Libres. Il est en fait souvent
difficile de savoir qui est le catalyseur de l'autre.
Si les Logiciels Libres et leurs modes de développement asynchrone
distribué doivent beaucoup à l'Internet nous pouvons en dire autant
pour l'Internet. Ce dernier a pu être globalement accepté grâce à des
standards et leurs implémentations logicielles libres. Nous pouvons
par exemple citer le système de résolution de nom de domaine DNS
qui a permis de gérer l'explosion exponentielle de l'Internet.
À partir de 1991 - date d'entrée en scène de Linus Torvalds et de
son noyau Linux - la communauté des Logiciels Libres a eu un regain
d'importance autour de Linux. Ce phénomène est principalement dû au
style de collaboration de Torvalds.
Raymond a qualifié à juste titre son style de développement de type
bazar[7]. Son
style consiste à en faire le moins possible et à déléguer le plus de
travail possible tout en faisant défiler à un rythme effréné les versions
successives de Linux. En fait son objectif était d'augmenter coûte que
coûte le nombre d'utilisateurs - autant de bêta-testeurs - et de programmeurs
de Linux en les attirant par la promesse de nouvelles fonctionnalités
ainsi que par la possibilité de contribuer au projet.
Torvalds recevait par mél les contributions sous forme de patch2.1 qu'il acceptait ou non d'incorporer dans la
version en développement de Linux.
Cette méthode fonctionna à un tel point qu'en 1998 Torvalds était
dans l'incapacité de traiter les patches qu'il recevait[14].
Dans le cas de Linux, les principaux outils utilisés, sont ceux de
courrier électronique, les serveurs FTP - centre de dépôt
des différentes versions du noyau - les dispositifs de miroirs du centre
de dépôt pour faciliter l'accès.
D'autres projets utilisent également l'IRC - Internet
Relay Chat. Il permet un échange temps réel entre les programmeurs
d'un même projet. Le projet Gnome utilise par exemple le canal #gnome
sur le serveur irc.gnome.org.
Un autre outil très important basé sur Internet - dans sa forme la
plus intéressante pour la communauté, mais il peut ne pas utiliser l'Internet
- est CVS. CVS est l'outil qui a littéralement
fait exploser la taille de la communauté en permettant un réel travail
collaboratif distribué sur l'Internet.
Cependant son importance n'est pas toujours perçue comme telle. Nous
le présentons dans la section suivante.
Les systèmes UNIX possèdent le programme diff. Le programme
diff permet de déterminer la différence entre deux fichiers
textes. Ces fichiers textes peuvent être une partie d'un code source
d'un large programme, une documentation au format texte, ou au format
SGML, HTML, TEX/LATEX.
En revanche cela ne peut pas être un fichier binaire - images graphiques2.2, sons, musiques, etc.
Concrètement, en appliquant diff sur un fichier modifié et
son original nous obtenons la modification faite sur le fichier original.
C'est par exemple utilisé par l'auteur pour déterminer les corrections
de relecteurs sur le fichier source de ce document.
La version GNU de ce logiciel existe. Plus intéressant
elle a été augmentée de son contraire, patch. Le programme
patch peut regénérer le fichier modifié à partir du fichier
original et du fichier dont le contenu est généré par diff
appliqué au fichier original et au fichier modifié.
L'intérêt de diff et patch est en fait très important
pour les programmeurs. Cela leur permet d'échanger des modifications
sur le code source d'un programme sans avoir à échanger les fichiers
sources entiers. Le fichier échangé s'appelle une Rustine2.3. Un patch peut s'appliquer à plusieurs
fichiers sources. Ainsi un patch peut contenir des modifications
distribuées sur un nombre plus ou moins important de fichiers sources.
Ces deux logiciels sont donc devenus très rapidement des standards
pour soumettre des contributions à des projets. Cependant lorsque les
patch sont très nombreux, cela devient un véritable casse tête
de gérer leurs intégrations. Imaginez par exemple un patch qui
a besoin d'un autre patch pour être appliqué. Ou encore la situation
où un programmeur souhaite enlever un patch appliqué précédemment
car il contient des bogues.
À partir de ce moment là il est devenu clair qu'un système plus évolué
capable de conserver un historique de toutes les modifications faites
à l'arbre du code source était nécessaire.
Comme c'est le cas pour beaucoup de Logiciels Libres, ceux-ci sont
créés pour remplir des besoins réels éprouvés par la communauté. Ensuite,
tant que possible, ces projets ne partent pas de zéro mais s'appuient
sur d'autres Logiciels Libres aux objectifs proches.
Ce fut le cas pour CVS qui s'appuya, a son début, sur
diff, patch et RCS entre autres. Il
fut mis au point par Dick Grune en 1986, puis récrit en C par Brian
Berliner en 1989. En 1990, Jim Kingdon et d'autres chez Cygnus Support,
étendirent CVS afin qu'il fonctionne sur le réseau[3].
CVS signifie Concurrent Versions System ou système
de versions concurrentes. Le système CVS se compose d'une
partie serveur et d'une partie cliente.
La partie serveur est composés de modules. Chaque module est en fait
le centre de dépôt des sources d'un projet logiciel spécifique. Un module
est en fait une hiérarchie de dossiers qui composent le code source
du projet. Chaque fichier dans le module se voit attribuer un numéro
de version.
La partie cliente est le logiciel utilisé sur la station de travail
du programmeur - ou utilisateur. Elle lui permet de communiquer avec
le serveur CVS pour essentiellement :
- Récupérer les fichiers d'un module. Dans ce cas une copie de travail
des codes sources est installée sur la station de travail de l'utilisateur.
- Mettre à jour sa copie de travail par rapport aux derniers changements
dans le centre de dépôt sur le serveur CVS. C'est très
souvent le cas lorsque plusieurs programmeurs travaillent sur un même
module.
- Soumettre au centre de dépôt des modifications faites sur sa copie
de travail. Si le développement se fait avec des tiers, il peut arriver
dans ce cas qu'il soit nécessaire de gérer un conflit si entre temps
un autre programmeur a soumis des changements.
Un autre aspect puissant de CVS est la possibilité
de revenir sur des versions antérieures grâce notamment aux numéros
de versions des fichiers dans un module. En fait d'une version n
à n+1 d'un fichier, la différence est encodée sous la forme d'un
patch dans le centre de dépôt. En réalité un fichier peut posséder
plusieurs numéros de versions parallèles pour travailler sur plusieurs
déclinaisons d'un même logiciel par exemple.
Actuellement d'importants projets comme les projets de bureau Gnome
et KDE utilisent CVS. Dans ce cas CVS
a aussi une fonction de sauvegarde sécurisée des sources.
En fait CVS et sa composante réseau joue un rôle de
ciment et de cohésion dans la communauté. CVS est un
moyen d'expression de la philosophie de partage du code source. Bien
sûr la licence GNU GPL attachée aux logiciels est un
autre élément important de la cohésion et sauvegarde de la communauté.
Cependant certains projets importants n'utilisent pas CVS.
C'est le cas par exemple de GNU Emacs et de Linux. Ces projets ont développés
d'autres méthodes de collaboration que nous ne développerons pas ici.
L'écosystème du gnou
Les termes collaboration et coopération sont souvent utilisés de façon
plus ou moins interchangeable pour expliquer le mode de développement
des Logiciels Libres. Il nous a paru important d'apporter un éclairage
sur les véritables natures des développements des Logiciels Libres.
Selon Dillenbourg et al.[2] le travail
coopératif se distingue du travail collaboratif dans le fait que le
premier est précédé d'une phase de division du travail qui est ensuite
distribué aux participants pour réalisation. Dans le deuxième, c'est
un engagement mutuel des participants dans un effort coordonné qui permet
d'accomplir la tâche.
Cependant il est important de noter qu'à un certain niveau de détail
de la tâche, le travail devient toujours coopératif dans le sens qu'une
seule personne peut la réaliser.
Il existe dans la plupart des projets un document de ligne directrice
- roadmap en anglais. Ce document trace les grandes orientations
du projet mais ne fournit pas le détail du développement avec une division
des tâches ou si c'est le cas d'importantes possibilités d'adaptations
sont prévues.
Chaque participant est libre de contribuer à l'évolution de la ligne
directrice, le processus se fait en négociation par liste de diffusion
ou IRC. L'avantage du premier est de laisser une trace,
dans les archives, du processus de décision.
Parfois il arrive qu'une modification de la ligne directrice par un
participant soit directement accompagnée de la réalisation logicielle,
soit sous la forme d'un patch ou dans le CVS si
le participant a un accès en écriture dans le centre de dépôt. Cependant
dans ce dernier cas, la réalisation est généralement précédée d'une
négociation avec les autres participants et le leader du projet.
Ce qui est important de remarquer ici est que le détail de la réalisation
n'est le fruit d'aucune instance formelle. Dans un projet actif avec
un nombre suffisant de participants, le détail de la réalisation leur
appartient. Par exemple dans le cas du noyau Linux, beaucoup de contribution
sont le fruit de programmeurs souhaitant voir une fonctionnalité précise
présente dans le noyau. Nous pouvons citer ReiserFS, un système de fichier
journalisé développé par Hans Reiser. Après une longue attente - pour
Torvalds il s'agissait sans doute d'attendre que le code mûrisse et
soit suffisamment testé - il sera incorporé dans Linux.
À la lumière de ces définitions et explications du mode de contributions
dans le développement des Logiciels Libres, il nous semble que la communauté
organise le développement des logiciels libres selon un mode collaboratif
et non coopératif. Cependant à un niveau fin du développement, l'organisation
est du type coopératif.
Par exemple Alan Cox et Linus Torvalds travaillent de façon coopérative
dans le noyau. Cox travaille sur la branche stable et Linus sur la branche
instable, celle qui est activement développée. Pour eux le travail est
bien délimité et relativement bien planifié entre eux. Cependant, lorsque
Linus reçoit des patch, par mél, qui ajoute de nouvelles fonctionnalités,
ce n'est pas par le fruit d'un travail coopératif planifié mais plutôt
le résultat d'une collaboration à un niveau supérieur, à un niveau répondant
à une collaboration d'ordre social.
Lorsque nous considérons d'une part la nature de la communauté comme
souhaitée par Stallman, à savoir une communauté de solidarité et de
liberté et, d'autre part, le mode de développement collaboratif des
Logiciels Libres selon les besoins des participants, nous pouvons stipuler
que les Logiciels Libres sont développés selon un modèle social pour
répondre à des besoins réels et spécifiques à un ensemble de sous communautés.
Le résultat d'un tel développement est en théorie un développement
suivant le chemin le plus proche des différents centres de gravité des
pôles de ces sous communautés.
Il est difficile de prévoir la finalité ou les embranchements que
pourra prendre tel ou tel projet développé selon le modèle libre. Ce
qui est en revanche certain, c'est que ces logiciels sont toujours disponibles,
cannibalisables pour répondre à des besoins spécifiques de notre
société. Besoins qui très souvent ne peuvent pas être satisfaits selon
d'autres alternatives qui ont pour premier critère une rentabilité immédiate.
D'un autre côté le développement selon le modèle libre est celui qui
assure la meilleur rentabilité du code source. Il est souvent inutile
de réécrire ce qui l'est déjà sous forme libre, il suffit de l'adapter
au nouveau besoin ou de prendre les morceaux intéressants.
Par exemple dans le domaine des logiciels de géométrie interactive,
les seuls logiciels disponibles en galicien sont issus de la communauté
des Logiciels Libres, et c'est la sous communauté ``galicienne'' qui
a pris en charge cette réalisation.
Un autre exemple, l'auteur a été plusieurs fois contacté par des organismes
ou enseignants spécialisés pour la formation ou l'enseignement auprès
d'enfants handicapés. Les aspects liberté, adaptabilité et solidarité
associés à Dr. Geo et Dr. Genius en sont la raison.
Encore une fois, ceci est possible à partir du moment où nous prenons
conscience des dimensions communautaires et libertés associées aux logiciels
libres. À la lumière de ces développements nous voyons combien Raymond
a manqué l'essentiel dans ses considérations purement économiques des
Logiciels Libres.
Le gnou et les migrations
Dans ce chapitre nous analyserons les possibilités des développements
centrés utilisateurs dans la perspective de Logiciels Libres.
Les développements des Logiciels Libres ont pour paradigme ``mettre
à jour et distribuer souvent''.
Quel est l'intérêt de procéder de la sorte ? Nous pouvons distinguer
plusieurs raisons :
- Rendre disponible aux utilisateurs les nouvelles fonctionnalités
le plus tôt possible. Ces derniers peuvent informer le plus tôt possible
les programmeurs des problèmes rencontrés. Dans notre cas des problèmes
d'utilisabilité peuvent être rapidement identifiés et reportés.
- Maintenir la curiosité et l'intérêt des utilisateurs. C'est s'assurer
d'un nombre suffisant de testeurs et d'autant d'évaluations des paradigmes
développés dans l'interface utilisateur.
Pour que ces considérations soient pleinement réalisables, il existe
un certain nombre de conditions que le projet doit réunir :
- Les différentes versions du logiciel qui défilent sous les yeux
des utilisateurs doivent être faciles à installer. De préférence il
est bienvenu de fournir à chaque nouvelle sortie des versions binaires
du logiciel.
- Assurer une très bonne infrastructure de communication. Le minimum
vital est une liste de diffusion dédiée au projet. Souvent il existe
plusieurs listes selon qu'elles concernent l'utilisation ou le développement
du logiciel. Les projets disposent également, selon leur importance,
d'un système de traque de bogues. Dans ces systèmes, un utilisateur
reporte un bogue qui est ensuite associé à un ticket bug ticket
spécifiant l'auteur du report et des informations sur le bogue et
son contexte de réalisation. Ensuite les programmeurs peuvent puiser
dans cette base de tickets pour fixer les éventuels problèmes. Un
autre système, informel celui-ci, est l'utilisation de l'IRC
pour des échanges entre programmeurs et utilisateurs.
Ces considérations nous amènent à penser que les Logiciels Libres
ont développé leurs propres paradigmes de développements centrés utilisateurs.
Ils s'appuient fortement sur les fondements philosophiques des Logiciels
Libres :
- La solidarité : ``je veux aider à traquer les bogues, de la
sorte nous bénéficierons plus rapidement d'un système stable''.
- La liberté : ``je reporte un bogue, je peux fixer ce bogue,
je vais même le fixer !''.
Cependant ces schémas ne rentrent dans aucune expérience connue de
l'auteur dans le domaine des développements centrés utilisateurs.
À la différence des méthodes traditionnelles de développement centré
utilisateurs, il existe dans le cas des Logiciels Libres une très grande
promiscuité entre les utilisateurs et les programmeurs. À un tel point
que la frontière entre les deux est très floue. Un utilisateur peut
décider de développer un patch pour fixer un bogue ou ajouter
une fonctionnalité manquante à son goût.
Cependant nous pouvons globalement remarquer un manque de moyens pour
conduire des enquêtes sur le comportement d'un utilisateur face à un
logiciel donné et plus particulièrement sur les dispositifs GUI. Il
est néanmoins tout à fait concevable d'écrire des outils permettant
de tracer le comportement des utilisateurs. De façon analogue aux systèmes
de traques de bogues, un utilisateur peut être volontaire pour laisser
une trace de son utilisation d'un logiciel. Ses traces seraient alors
disponibles pour évaluation par les artisans du logiciel.
En ce qui concerne le design des interfaces, il est actuellement difficile
de réaliser certaines étapes des modèles de développement. Il n'existe
pas à la connaissance de l'auteur de procédures scientifiques dans l'évaluation
des prototypes créés par les designers d'interfaces. Il est cependant
tout à fait raisonnable d'envisager la réalisation de tels outils capables
de gérer des groupes virtuels d'utilisateurs pour leur permettre d'évaluer
les artefacts. Des réponses et indices sont sans doute à rechercher
du côté des systèmes de collaboration, d'organisation de mémoire, de
design coopératif.
Le design coopératif a pour objet d'impliquer les utilisateurs lors
des phases de conception des interfaces. L'approche Scandinave - design
participatif - est sans doute celle la plus proche des modes de conceptions
des Logiciels Libres. Elle accepte et encourage l'implication des utilisateurs
dans les phases de design. L'argument fort de cette approche est que
les utilisateurs ont le droit de prendre part à la réalisation de ce
qu'ils seront amenés à utiliser[6].
Une utilisation couplée entre un constructeur d'interface et le système
CVS utilisé pour enregistrer les différentes contributions
des utilisateurs et des designers sur l'interface est souvent utilisée
lors du développement de l'interface. Le système de version de CVS
permet de revenir à toute version précédente du design de l'interface.
Chaque contribution dans CVS est accompagnée d'une annotation
- log message - sur la version.
Le gnou en classe
Tout ceci est bien beau me diriez-vous, mais quel est le rapport avec
l'éducation ?
La nature ouverte des Logiciels Libres donne accès aux codes sources.
Pour des étudiants en informatique cela constitue un réservoir de connaissances
dans lequel ils peuvent puiser pour apprendre comment leurs aînés ont
résolu des problèmes semblables. Nous pouvons considérer cet aspect
comme une extension du concept des références bibliographiques. Les
codes sources sont l'expression d'une preuve mathématique transcrite
sous forme d'un langage informatique donné. Cela explique donc l'intérêt
de leur libre disponibilité pour une communauté scientifique.
Comme pour des preuves mathématiques, il est possible de trouver des
erreurs, de suggérer des améliorations. Et toujours dans l'idée de la
collaboration scientifique, la disponibilité des codes sources est une
source d'inspiration pour la résolution de problèmes plus ou moins connexes.
Encore une fois cela nous montre que la nature du développement des
Logiciels Libres est très proche de celle des communautés scientifiques.
Dans une institution scolaire, de type secondaire par exemple, quels
avantages - autres que les arguments de gratuité - pouvons nous distinguer ?
Nous allons tenter d'y répondre dans les sections suivantes.
Le pouvoir et le savoir
Dans l'histoire de l'Humanité, le savoir a souvent été source de pouvoir.
Le savoir en lui même n'a que très peu d'intérêt s'il n'est pas accompagné
de moyens de communication appropriés comme l'écriture ou les discours
argumentés par exemple. Cependant les deux doivent être équitablement
distribués dans la population au risque de tomber dans les pièges des
sophistes. Plus proche de nous, alors que nous sommes à l'aube d'une
ère de complète numérisation de la connaissance et des moyens
de communication, ces sophismes nous sont présentés sous la forme de
logiciels fermés souvent entachés de backdoors5.1 ou de fonctions cachées de l'utilisateur
qui effectuent un traitement à son insu.
Dans ce contexte, ces logiciels fermés constituent une menace pour
la liberté individuelle et la République. Ils trouvent leur extension
dans les formats d'encodage propriétaires de fichiers de données dont
le but est de capter des utilisateurs et les savoirs qu'ils ont patiemment
transcrits sous forme numérique.
De même que l'école laïque a été mise en place par Jules Ferry pour
préserver la République, l'usage des Logiciels Libres dès l'école peut
être conçu comme l'outil permettant d'entrer dans l'ère de la numérisation
des savoirs tout en garantissant la neutralité, la clarté et la transparence
du médium de communication et de transcription.
Le but est d'éviter qu'un pouvoir excessif et nuisible sur le savoir
- moyens de communication et de transcription - ne soit détenu par un
petit groupe mais qu'au contraire ce pouvoir soit le plus équitablement
réparti dans la population.
Cela nous semble être ici le premier enjeu de l'usage des Logiciels
Libres dans les institutions scolaires. Il est clair qu'un tel usage
est sensé, uniquement s'il est systématique et exclusif de toutes autres
formes.
Il est intéressant de remarquer que plusieurs groupes politiques et
associations - toutes couleurs politiques confondues - ont signé des
accords cadres, établi des rapports ou fait des propositions de lois
dans ce sens5.2.
Plus haut nous avons établi un parallèle entre les communautés scientifiques
et la communauté des Logiciels Libres. Celle-ci partage bon nombre de
ces caractéristiques - en fait il nous semble que la communauté du libre
va beaucoup loin plus puisque les licences libres comme la GPL
fournissent un cadre clair et strict. Ainsi utiliser des Logiciels Libres
dans l'enseignement c'est offrir une fenêtre sur le concept de collaboration,
concept ô combien important pour la solidarité humaine. Imaginez, un
professeur de mathématiques qui demande à ses élèves de travailler sur
la localisation d'un logiciel de mathématiques dans leur langue native.
Un concept tout à fait inimaginable en dehors des Logiciels Libres.
D'autres, élèves ou professeurs, iront éventuellement plus loin, jusqu'à
collaborer avec les programmeurs du logiciel. C'est l'objet de la section
suivante.
Adaptabilité
Les Logiciels Libres peuvent donc nous enseigner le concept de collaboration.
Ils peuvent même inviter les utilisateurs à devenir des contributeurs.
Dans le cadre de logiciels pédagogiques cela signifie pouvoir adapter
le logiciel à des besoins spécifiques. Le besoin le plus évident est
celui de la localisation. D'autres possibilités sont l'adaptation de
l'interface graphique des logiciels à un public particulier : une
interface graphique spécialisée pour les enfants souffrant de troubles
de la vision, reconception du système de pointage pour ceux souffrant
de problèmes moteurs, etc. L'idée est de permettre, sans avoir à recommencer
de zéro, l'adaptation des logiciels à des besoins particuliers.
Parfois il arrive qu'un professeur souhaite tout simplement ajouter
une fonctionnalité à un logiciel qu'il utilise. S'il a les compétences
nécessaires il pourra le faire lui même, sinon il demandera à son voisin
ou directement à l'auteur du logiciel. Dans tout les cas, la modification
effectuée sera reportée à l'auteur, dans l'espoir de la voir intégrée
dans le tronc principal du code source du logiciel. Ceci essentiellement
pour deux raisons :
- la gratification de contribuer à une oeuvre commune ;
- se simplifier la vie. Si la modification n'était pas incluse dans
le logiciel, le contributeur serait obligé d'appliquer le patch
aux versions suivantes du logiciel, sans garantie de fonctionnement.
Bien sûr l'auteur du logiciel connaît ce problème, aussi il refusera
le patch uniquement si celui-ci est de trop mauvaise qualité
et qu'il pose des problèmes de fonctionnement au logiciel.
En fait ceci est déjà arrivé à l'auteur avec le projet Dr. Genius.
Une première fois il a reçu des contributions substantielles d'un jeune
lycéen pour fixer des bogues et ajouter des fonctionnalités. Un autre
fois, c'était un professeur de mathématiques qui a soumis un patch
pour permettre l'exportation de figures au format PostScript. Le professeur
en question souhaitent bénéficier du format PostScript pour inclure
les figures dans son traitement de texte préféré.
Les énergies
Développer des logiciels représente une somme de travail non négligeable.
Il peut être intéressant de distinguer les différentes sources d'énergies
utilisées pour les développer.
Les parents. Nous avons remarqué qu'un nombre important de personnes
impliquées dans les Logiciels Libres et leur utilisation dans l'éducation
sont des parents. Parmi ceux ci nous distinguons de jeunes programmeurs
comme Bruno Coudoin et Laurent Gauthier qui travaillent sur des projets
comme Gcompris et Dr. Genius en plus de leur emploi.
Les enseignants sont eux même enclins à un travail collaboratif de
développement. C'est sans doute lié à la nature du métier d'enseignant
qui partage quotidiennement son savoir avec ses élèves. Les enseignants
ont une tendance à travailler en équipes disciplinaires ou pluridisciplinaires
pour mettre en commun des pratiques pédagogiques ou pour explorer de
nouvelles pratiques de l'enseignement. Nous reconnaissons là un travail
collaboratif ou coopératif qui n'est pas sans rappeler celui des Logiciels
Libres. Il semble donc naturel pour l'enseignant d'étendre ce concept
aux logiciels, logiciels qui par leurs usages sont également porteurs
de savoirs. Pour certains enseignants l'utilisation des Logiciels Libres
est à rapprocher de l'éducation civique. Dans [13], Vinchon
nous rappelle que l'éducation civique, dont le rôle est de promouvoir
les valeurs de la République, s'attache également à promouvoir les idées
de partage et de coopération, valeurs à la base des Logiciels Libres.
Les universités sont potentiellement une source d'énergie importante
dans la création de Logiciels Libres. Cette dimension prend son sens
lorsque nous la rapprochons de la notion de collaboration scientifique.
Un certain nombre de logiciels scientifiques libres sont développés
par des universités. Même s'ils ne sont pas d'un caractère purement
éducatif, ils sont potentiellement utilisables dans l'enseignement.
Les universités peuvent décider de placer sous licence libre leurs logiciels
pour plusieurs raisons. Nous pouvons distinguer :
- Créer une communauté d'utilisateurs importante, c'est autant de
bêta testeurs.
- Inciter le développement collaboratif autour de leurs logiciels.
- Créer un standard autour d'une méthodologie. En étant libre, il
s'assure la plus grande acceptation possible.
- Amplifier la renommée de l'institution.
Malheureusement beaucoup d'universités développent selon un modèle
au code source fermé. Sans doute ne comprennent-elles pas l'intérêt
du développement en Logiciels Libres. En effet, il est regrettable que
des développements universitaires tombent dans l'oubli sans la possibilité
d'exploiter les codes sources de ces projets pour d'autres.
Pour les centres de recherches en ingénierie éducative, le mode de
développement libre offre en fait une dimension supplémentaire de collaboration
entre les équipes de recherche et les personnes sur le terrain - en
général des enseignants. Ces derniers ont une meilleure perception des
problèmes qui peuvent survenir sur le terrain. Utiliser le modèle de
développement du libre permettrait à ces derniers une participation
plus active selon le modèle de développement participatif scandinave.
Les terminaux X
Les terminaux X s'appuient sur une technologie vieille de plus de
10 ans. Dans son principe, elle permet à des écoles de recycler du vieux
matériel - à partir de i386 8 Mo Ram.
Il est intéressant de remarquer que le principe de base des terminaux
X est le partage. Partage de la puissance de traitement d'un ordinateur
par plusieurs postes de travail - les terminaux X - dans un réseau local.
Beaucoup d'écoles primaires semblent adopter cette solution. Cela
leur permet de mettre en place, à moindre coût, un réseau local à base
de terminaux et serveur d'application - le serveur des terminaux X,
ou client X dans la terminologie X Window. Un autre avantage pour les
écoles à utiliser des terminaux X est le coût de maintenance - centralisée
donc uniforme et consistante - très faible et la robustesse de ces dispositifs.
Par leur extrême fiabilité, ces systèmes offrent des perspectives
de déploiement d'une base matérielle saine sur laquelle les enseignants
peuvent s'appuyer dans leur pratique pédagogique. Rien de plus misérable
qu'une séquence pédagogique ruinée à cause d'un matériel non fiable.
Les enseignants sont libérés de la névrose ou phobie associée au manque
de fiabilité du dispositif de base. Bien sûr ces considérations ne concernent
que le niveau matériel et le système d'exploitation.
Et l'enseignement à distance
La communauté des logiciels libres n'est pas spécifiquement une communauté
d'apprenants à distance mais plutôt une communauté de pratique et de
développement. Cependant les membres de cette communauté bénéficient
d'une certaine formation informatique sur les thèmes de l'utilisation
de système Unix, des réseaux et de la programmation. Il nous semble
intéressant - étant donné le succès de cette communauté - de relever
les types d'organisation utilisés dans sa composante formation.
La communauté a rédigé une documentation très importante. Nous pouvons
distinguer différents type de documentation, en particulier des livres,
des How To, des FAQ, des pages de manuel pour
le système GNU5.3 et des magazines en ligne.
Ces documentations adressent des besoins différents. En revanche nous
distinguons plusieurs constantes dans ces documentations :
- Les documents sont placés sous une licence qui permet la reproduction,
diffusion et modification selon certaines conditions. Attention ces
documents ne sont pas placés dans le domaine public.
- Le format d'encodage originel des documents est transparent. Il
est de type TEX/LATEX ,
HTML, XML ou SGML.
Le terme transparent signifie ici que les spécifications du format
sont entièrement disponibles et qu'un simple éditeur de texte permet
d'éditer les documents originels. Bien sûr l'utilisateur final consulte
les documents dans une forme transformée - éventuellement non transparente
- de type PostScript, HTML, texte ou PDF.
Ces deux points permettent une large diffusion de la documentation,
le peer review et la localisation. Pour parfaire la disponibilité
de cette documentation un portail spécifique - avec des centaines de
miroirs - Linux Documentation Project5.4 est en place.
Une forme informelle de tutorat se pratique dans cette communauté.
Elle s'appuie sur une infrastructure de type listes de diffusion - communication
asynchrone - ou canaux IRC - communication synchrone.
À chaque fois les dispositifs s'appuient sur des systèmes ouverts
de communication ou d'encodage des données. C'est une constante dans
les dispositifs de formation de la communauté.
À la lumière de ces considérations, les acteurs du e-learning
peuvent retirer des modes de développement des Logiciels Libres certains
bénéfices pour la mise au point de leurs formations.
L'infrastructure. Une plate-forme développée selon le modèle libre
à plus de chance de devenir un standard. Bien sûr nous pouvons objecter
que c'est aussi aider la concurrence puisque cette dernière n'aura qu'à
réutiliser la plate-forme pour mettre en place sa formation. Mais dans
ce cas l'initiateur du projet possède une expertise sans commune mesure
sur la plate-forme utilisée et il se construit en même temps une réputation
qui peut en faire un leader du domaine. Il bénéficie aussi des
améliorations faites sur la plate-forme par les concurrents. Cela présuppose,
comme nous l'avons explicité dans la section 1.1,
l'utilisation d'une licence de type copyleft telle la GPL.
C'est la politique choisie par la société Anéma Formation (http://www.anemalab.org/).
Pour l'apprenant c'est un gain extraordinaire en terme de prise en
main de la plate-forme puisqu'il a besoin de se familiariser qu'avec
un nombre réduit de paradigmes nouveaux lorsqu'il passe d'une FAD
à une autre utilisant la même plate-forme sous-jacente.
Les ressources. Il faut être inconscient pour placer son trésor dans
un coffre fort dont le code est inconnu. C'est pourtant ce que font
beaucoup d'acteurs du e-learning en utilisant comme format d'encodage
originel de leurs ressources des formats non transparents. Ils sont
garantis de rencontrer - dans l'évolution future de leurs ressources
- des problèmes coûteux de compatibilité. D'un point de vue pratique,
des ressources encodées dans un format transparent peuvent subir beaucoup
plus facilement des traitements automatiques. Cela permet de réduire
au minimum l'intervention humaine dans certains cas et de réduire les
coûts ou au moins d'assigner les formateurs à des tâches nobles et non
répétitives. Cette expérience a été vécue au cours de l'activité pratique
du module O3 où le format originel d'encodage des ressources était non
transparent. Cela a nécessité des dizaines de traitements manuels -
avec toutes les maladresses (elles même coûteuses) que nous pouvons
imaginer dans ce type d'opérations répétitives - des ressources pour
simplement les mettre à jour dans différents formats exploitables par
l'apprenant.
Photographies de famille
Dans ce chapitre nous présenterons quelques initiatives ou projets
qui puisent leurs forces dans les aspirations de la communauté des Logiciels
Libres.
La solidarité
Plusieurs organisations colombiennes6.1 ont mis sur pied un projet de cours gratuits
sur l'administration de réseaux scolaires basés sur le système d'exploitation
libre GNU.
Selon Vladimir Tamara, coordonnateur du projet, ce cours était essentiellement
un prétexte pour promouvoir les valeurs de la collaboration et la paix
en Colombie.
Pour les organisateurs, c'est une tentative - à un niveau qu'ils maîtrisent
parfaitement - pour sortir de l'engrenage de la violence et de la criminalité
en Colombie ainsi que du découragement qui en résulte au sein de cette
société. Au delà des solutions miracles, il s'agit surtout de redonner
confiance et espoir par la solidarité.
Le cours a été organisé en un dispositif d'apprentissage à distance
puis en des sessions avec une même unité de temps et de lieu. L'organisation
s'est articulée selon les points suivants :
- Annonce pendant une quinzaine de jours sur l'ouverture du projet.
Suite à cette période, 98 volontaires se sont inscrits pour suivre
le cours.
- Participation à l'atelier virtuel pendant 24 jours. L'objectif de
cet atelier était entre autres de :
- Travailler individuellement et collectivement pour comprendre
les méthodes de travail de ce cours.
- Étudier le système GNU, sa philosophie sous-jacente
de collaboration et les éventuels usages, avantages pour les écoles.
- Installer GNU sur son système personnel.
- Promouvoir les principes constructivistes et de collaboration.
Cet atelier virtuel était coordonné à l'aide de différents outils :
la messagerie électronique, 3 meetings IRC, 3 tests
courts et un exercice pratique.
- Suite à l'atelier virtuel, les 25 candidats avec les meilleurs scores
ont été présélectionnés pour les élections des 9 candidats aux sessions
en présentiel. Les électeurs étaient à la fois les participants et
les entraîneurs.
- Participer - pour les sélectionnés - aux 5 ateliers de 2 heures
chacun.
- Évaluer les apports de la formation et comment l'améliorer.
Cet exemple nous montre comment les Logiciels Libres sont utilisés
pour promouvoir, dans un pays socialement instable, les valeurs de la
solidarité et de la collaboration. Ici les auteurs du projets mettent
en valeur la relation très forte existant entre la cohésion sociale
et la philosophie sous-jacente des Logiciels Libres.
L'exemple suivant, à une envergure bien plus importante, repose sur
le même point de rencontre entre cohésion sociale et Logiciels Libres.
Debian
Debian est un système d'exploitation libre basé sur le projet GNU
qui utilise soit le noyau Linux soit le noyau Hurd du système GNU.
Le projet Debian a été mis en place en 1993 par Ian Murdock dans l'objectif
de réaliser une distribution suivant au plus près la philosophie originelle
qui a amenée à la création du système d'exploitation GNU.
Le système Debian se compose de trois couches logicielles. La couche
basse, le noyau - Linux ou Hurd. Les outils de base, dont une grande
partie vient du projet GNU. Et enfin les applications.
Dans l'ensemble la distribution de base6.2 comporte plusieurs milliers de paquets représentant
des programmes ou des documentations.
Ce projet est animé par des développeurs Debian qui ont volontairement
pris en charge la maintenance d'un ou plusieurs paquets. Ces développeurs
constituent une communauté de plus de 800 personnes réparties sur le
globe6.3.
Afin de maintenir la ligne directrice du projet et par là même sa
cohésion sociale, les créateurs du projet Debian ont créé ``Le contrat
social Debian''6.4 que les développeurs Debian s'engagent
à respecter. Ce contrat social est un ensemble de principes afin de
garantir la pérennité de Debian en tant que distribution de logiciels
totalement libres.
Le travail collaboratif des développeurs Debian s'appuie sur
l'Internet et en particulier des listes de diffusions thématiques -
environ une centaine - un site web polyglotte avec une documentation
très importante, des canaux IRC, un système de traque
de bogues, un ensemble de miroirs distribués sur la planète. Enfin de
par sa nature, très liée à l'Internet et aux réseaux, Debian a développé
un ensemble d'outils de gestion de paquets extrêmement puissant et convivial.
Cela permet à Debian de proposer un système d'installation et de mise
à jour de la distribution par le réseau. Avec en plus, une gestion des
dépendances des logiciels totalement automatisée, ce qui permet d'installer
en quelques minutes un logiciel de Debian.
La communauté des développeurs Debian s'autoalimente par la
rédaction d'une importante littérature comme des guides de style, des
documents de références techniques mais aussi des documents sur l'organisation
sociale de Debian. Cet ensemble assure également la cohésion de Debian
sur le long terme par un passage explicite des consignes aux nouveaux
développeurs.
Cela nous montre le très fort esprit de conservation des valeurs morales
qui existe dans la communauté des Logiciels Libres. Dans la section
suivante nous développons un exemple de cet esprit de conservation et
de la capacité de réaction lorsque ces valeurs sont menacées.
Gnome/KDE
En 1996, le projet KDE - K Desktop Environment - est démarré. Son
objectif est de créer un système de bureau, puissant et conviviale pour
le système Unix - ce qui a toujours fait défaut à Unix et ne lui a pas
permis de se développer en tant que système pour utilisateur. Le projet
KDE s'inscrivit d'emblée comme projet libre. Cependant les initiateurs
prirent une décision plutôt surprenante pour un projet libre. Ils décidèrent
d'utiliser un ensemble de widgets non libre, la bibliothèque Qt, développée
par une société norvégienne, Troll Tech. L'argumentation de ce choix
était que Qt était très puissant et qu'il fallait à tout prix
une bibliothèque de widgets puissante. De plus elle était gratuite et
disponible sous forme de code source. Cependant ce n'était pas un Logiciel
Libre, puisque les modifications ne pouvaient pas être redistribuées
par exemple.
L'équipe initiale décida donc de troquer leurs libertés par rapport
aux fondations du projet en échange d'une certaine commodité, à savoir,
ni développer, ni maintenir l'ensemble des widgets de base utilisés
par KDE.
Le projet KDE fut distribué par un certain nombre de distributions
peu soucieuses des valeurs du libre. Le projet KDE attira, par la commodité
qu'il apportait, de plus en plus d'utilisateurs et surtout des programmeurs
qui pour beaucoup étaient nouveaux dans la communauté et ne pouvaient
pas mesurer les aboutissants en jeu. Cela posait un réel problème à
la communauté qui risquait de se disloquer en perdant son identité.
Heureusement la FSF et la communauté ne furent pas
longues à réagir. Dès 1997, le projet Gnome - GNU Network Objet Model
Environment - fût démarré. Ce projet avait pour objectif de n'utiliser
que des bibliothèques libres et en particulier la bibliothèque de widget
GTK+ et si nécessaire de contribuer au développement de ce qui était
incomplet. Le projet Gnome trouva très rapidement le soutient de la
communauté et de sociétés comme Red Hat.
En automne 2000, Troll Tech décida de placer Qt 2.0 sous la licence
GPL, ce qui résolut le problème entaché à KDE. Il est clair que cette
décision est liée à la réaction de la communauté de créer un projet
alternatif reposant uniquement sur des composants libres.
Si l'objectif des initiateurs de KDE était de défragmenter l'environnement
graphique des UNIX, en créant un environnement graphique puissant pour
une acceptation générale des systèmes UNIX en tant que station de travail
pour monsieur tout le monde, alors ce but a échoué, puisqu'il existe
maintenant deux environnements attractifs et puissants mais incompatibles,
Gnome et KDE.
Certains personnages connus de la communauté ont proposé que les programmeurs
du projet Gnome rejoignent ceux du projet KDE lorsque Qt est devenue
suffisamment libre. Malheureusement, à la connaissance de l'auteur,
le projet KDE ne possède pas ``un contrat social'' comme celui de Debian
par exemple ou le manifeste de GNU pour Gnome. Il n'est
donc pas impossible qu'un autre troc liberté-commodité prenne place
dans le projet KDE à l'avenir.
Toujours est-il que ces deux environnements ont permis le développement
d'applications utilisateurs conviviales. Parmi celles-ci citons Dr. Genius
un logiciel de géométrie interactive.
Dans la section suivante nous présenterons ce projet et comment les
sirènes de la commodité sont tentantes pour les nouveaux venus dans
la communauté du libre.
Dr. Genius
Au printemps 1996, alors que l'auteur de ce document était encore
enseignant stagiaire, le projet Dr. Geo fut démarré. Il s'agissait
de créer un logiciel de géométrie interactive gratuit que les enseignants
du monde pourraient librement partager entre eux et avec leurs
élèves.
Au départ il ne s'agissait pas de créer un Logiciel Libre. Cette notion
n'était pas encore très familière à l'auteur. Pour ce faire des outils
uniquement gratuits ou libres devaient être utilisés. Très rapidement
les outils réunis se sont avérés être pour la plupart des outils du
projet GNU adaptés à l'environnement MSDOS
comme GCC, GDB, la bibliothèque C et d'autres utilitaires de base. Les
autres outils libres étaient Rhide - un environnement de développement
- et Allegro la bibliothèque graphique. Un autre point sur lequel Dr. Geo
s'orienta fut la possibilité de localiser le logiciel dans un maximum
de langues. Pour ce faire une fonte Unicode libre a été utilisée et
un système de gestion des caractères en double octet a été écrit pour
cela. À ce jour, Dr.Geo est le seul logiciel de géométrie interactive
disponible en Chinois classique par exemple.
À mesure que l'auteur s'est familiarisé avec l'esprit du projet GNU,
notamment en essayant de comprendre la licence GPL et
la philosophie sous-jacente, il est apparu à l'auteur que Dr. Geo
devrait être porté sur le système GNU.
Un premier portage pour le système GNU - toujours non
libre - fut réalisé, il s'agissait en fait d'une simple recompilation
à l'aide des bibliothèques équivalentes sous GNU. Cette
version n'était cependant pas du tout satisfaisante, en particulier
à cause de la bibliothèque Allegro et des modes de développement sous
les systèmes MSDOS et GNU qui sont totalement
différents, surtout en ce qui concerne la gestion des interactions utilisateurs.
Il est apparut qu'une réécriture de Dr. Geo - en utilisant une
bibliothèque de widgets pour X - était nécessaire. Cette fois-ci la
version résultante serait libre.
À partir de ce moment là, l'auteur devait faire un choix quant au
toolkit à utiliser. À l'auteur se présentait principalement deux choix,
Qt et GTK+, c'était du moins les choix finals de l'auteur. L'auteur
avait connaissance du problème de licence de Qt mais il se sentait très
vaguement concerné par cette question, après tout Qt était gratuit,
et il était possible de le distribuer librement, enfin l'auteur n'avait
pas l'intention de modifier Qt. Quoique pour la version chinoise de
Dr. Geo cela pourrait être nécessaire... Mais bon... L'auteur était
très excité à l'idée de développer la version dédiée de Dr. Geo
pour le système GNU. En plus de cela, l'environnement
KDE déjà bien avancé à l'époque, était promis à un bon avenir.
D'un autre côté se présentait GTK+, c'était le toolkit choisit par
Gnome, il avait été développé pour Gimp - célèbre logiciel de retouche
photo libre - un gage de qualité. Cependant, Gnome avait l'air bien
austère, sauf que la société Red Hat était en train de développer un
système de thèmes graphiques pour GTK+ qui permettait de changer radicalement
l'aspect des widgets. Les photos écrans étaient très alléchantes, il
était clair que Dr. Geo aurait bel allure.
Et oui, les sirènes de la commodité sont très attrayantes pour ceux
qui sont très peu familiers avec la philosophie du projet GNU.
Dans le cas de Dr. Geo c'est une considération d'ordre pratique
- plutôt esthétique en fait - et non un problème de liberté qui a dicté
le choix du toolkit GTK+. Par la suite l'auteur a bien sûr compris la
nature des enjeux.
Cette anecdote nous montre combien il est difficile pour de nouveaux
volontaires de distinguer les pièges qui peuvent par la suite enfermer
leurs projets. D'un autre côté il est intéressant de remarquer que les
thèmes sont la première chose que Red Hat a développé pour GTK+ et le
projet Gnome. Est-ce un hasard ? C'était sans doute dans le but
d'attirer l'attention au plus vite sur le projet Gnome.
Fin de l'anecdote, somme toute, assez inquiétante.
Après ce premier portage, l'auteur chercha a étendre les possibilités
de Dr. Geo, en particulier avec un langage de programmation interprété
embarqué. Le but était d'offrir la scriptabilité sur les figures géométriques.
Pour ce faire un langage à la syntaxe facile pour les élèves a été recherché.
Finalement Dr. Geo a fusionné avec le projet Genius, un environnement
calculateur avec un langage interprété à la syntaxe agréable. Le projet
résultant a été baptisé Dr. Genius, une contraction des deux noms
de départ. À l'occasion de cette fusion, l'équipe a été rejointe par
Laurent Gauthier, ingénieur informatique. Le code du moteur de géométrie
a été entièrement réécrit selon un modèle de type MVC, séparation du
moteur fonctionnel, de l'affichage et de l'interface utilisateur. L'interface
globale de Dr. Genius fut écrite de zéro également pour permettre
la gestion d'instances différentes de figures géométriques ou de tout
autre type de visuel à venir. Enfin un système de sauvegarde au format
XML fut mis au point. Le format permet de gérer le système de multi-instances
de visuels de l'interface et il est assez souple pour permettre l'intégration
de nouveaux types de visuels. Pour l'anecdote, XML est également utilisé
dans le système de multi undo/redo du moteur géométrique.
Finalement la fusion s'est avérée être un échec cuisant puisque l'intérêt
de l'auteur de Genius est assez vite tombé et cela n'a pas permis une
véritable intégration entre le moteur géométrique et le langage de Genius.
À l'avenir Genius sera remplacé par l'interpréteur Guile6.5 - une variante de scheme.
Le corollaire à retirer de cette expérience est qu'il est important
pour un projet libre de ne dépendre que d'outils qui sont parfaitement
maintenus, ici ce n'était pas le cas pour Genius, ce qui a ralenti le
projet.
En ce qui concerne la localisation - c'était une préoccupation importante
de l'auteur de Dr. Geo - Dr. Genius est localisé dans plus
de 10 langues. En fait l'auteur ne se soucie plus de cet aspect, puisqu'il
est entièrement pris en charge par les sous-communautés linguistiques.
En effet, le système GNU utilise le système de catalogues
de traductions GNU/Gettext qui permet à tout application internationalisée
- c'est à dire qui est programmé avec le système GNU/Gettext - d'être
localisable sans avoir à toucher le code source du projet. C'est en
fait un système sensiblement équivalent qui avait été développé pour
le projet Dr. Geo.
Le code source de Dr. Genius est dans le serveur CVS
du projet Gnome d'où les traducteurs peuvent récupérer le projet, le
localiser et enfin soumettre les traductions au serveur CVS.
Le processus se fait indépendamment du développement.
Que retenir de cette expérience ? Nous pouvons nous amuser à
rêver qu'un petit nombre d'enseignants de chaque pays contribuent à
la réalisation de projets libres à caractères éducatifs. Un plus grand
rêve encore, serait de voir plus d'universités contribuer au développement
de Logiciels Libres à caractères éducatifs.
Nous pouvons rêver ! C'est l'espoir qui fait avancer les choses
et c'est lui qui permet le développement de Dr. Genius.
Certains comparent l'Internet à une révolution équivalente à celle
de l'apparition de l'imprimerie - en Europe, ou en Chine plusieurs siècles
avant ? - Peut-être que la comparaison est intéressante. En effet
l'Internet permet à des individus de posséder, à peu de frais, une imprimerie
personnelle : leurs ordinateurs personnels et une page web. Sans
doute. Mais un individu n'est qu'une individualité et tout ceci n'aurait
que peu d'intérêt sans l'effet levier de l'Internet avec notamment les
communautés virtuelles de l'Internet. Une de ces communautés, la communauté
qui a contribué à bâtir une infrastructure libre de l'Internet est celle
des Logiciels Libres. Cette communauté a par exemple réussi là où les
sociétés de logiciels propriétaires ont échoué : créer un point
de ralliement autour d'un clone d'UNIX - le système GNU7.1 - domination du marché des serveurs de l'Internet.
Plus important encore, cette communauté est une preuve vivante de ``la
révolution Gutenberg''. Elle a créé un ensemble assez impressionnant
de logiciels selon un mode de développement qui peut sembler chaotique
mais néanmoins efficace. En même temps cette communauté a un esprit
très fort de conservation de ses valeurs, comme nous l'avons évoqué
avec les projets Gnome/KDE.
Ainsi si l'Internet n'est pas freiné à l'avenir, nous pouvons nous
attendre à des développements collaboratifs dans d'autres types de communautés.
La communauté des Logiciels Libres a su dès le début exploiter au mieux
les outils de l'Internet - normal pour une communauté qui a vu naître
et fait naître l'Internet. Elle a mis au point ou a étendu ses outils
pour s'adapter à l'Internet et donc décupler très rapidement - dès 1992
- ses capacités de développement.
Cependant si nous regardons la répartition géographique de la communauté
Debian, nous constatons une concentration des développeurs Debian
dans les continents nord américain et européen. Il nous semble important
que les pays en développement puissent également - selon leurs moyens
- participer à la communauté des Logiciels Libres. Les Logiciels Libres
permettent un déploiement de technologies nouvelles fiables, puissantes
et extrêmement économiques, grâce notamment aux technologies des terminaux
X et à l'absence de redevances sur les licences d'exploitation des logiciels.
Les Logiciels Libres offrent également la capacité d'adaptation la
plus importante qu'il soit donné. Pour les pays africains ils constituent
une occasion unique de gagner une indépendance technologique toute en
adaptant et en développant ces logiciels. En retour la communauté des
Logiciels Libres se verrait renforcée et augmentée.
Finalement, et c'est sans doute un des apports les plus important,
les Logiciels Libres constituent une source scientifique importante
- grâce en particulier à la disponibilité des codes sources mais aussi
à l'esprit de solidarité et de partage de cette communauté - sur laquelle
les pays en voie de développement peuvent s'appuyer pour développer
leurs propres expertises et recherches scientifiques et technologiques.
Les Logiciels Libres sont pour beaucoup issus de la culture informatique
UNIX. Cette dernière a pour réputation d'exposer très largement le côté
technique des logiciels au détriment de dispositifs utilisateurs conviviaux7.2. Cela pose donc la question du type de formation
des enseignants. Une formation qui permet de développer uniquement des
usages préétablis ou une formation technique plus approfondis qui peut
permettre aux enseignants de réinventer une didactique à l'aide d'instruments
informatiques[1] ?
-
- 1
- Eric BRUILLARD.
Informatique et éducation : quels liens entre connaissances et
technologie ?
In Comment penser la communication des connaissances ?,
Communication et Civilisation, pages 195-207. L'Harmattan, 1999.
- 2
- P. DILLENBOURG, M. BAKER,
A. BLAYE, and C. O'MAYLLEY.
Learning in Humans and Machine: Towards an interdisciplinary learning
science, chapter The evolution of research on collaborative learning,
pages 189-211.
1996.
- 3
- Karl FOGEL.
Open Source Development with CVS.
Coriolis, 1999.
- 4
- Robert H. FRANK, Thomas GILOVICH,
and Dennis T. REGAN.
Does studying economics inhibit cooperation.
www.gnu.org/philosophy/economics_frank/frank.html.
- 5
- B. KUHN.
Selling free software.
www.gnu.org/philosophy/selling.html,
1996.
- 6
- Jenny PREECE, Yvonne ROGERS, Helen
SHARP, David BENYON, Simon HOLLAND,
and Tom CAREY.
Human-Computer Interaction.
Addison-Wesley, 1994.
- 7
- Eric S. RAYMOND.
The cathedral and the bazaar.
www.tuxedo.org/ esr/writings,
1997.
- 8
- Eric S. RAYMOND.
Homesteading the noosphere.
www.tuxedo.org/ esr/writings,
1998.
- 9
- Richard M. STALLMAN.
The gnu manifesto.
www.gnu.org/gnu/manifesto.html, 1985.
- 10
- Richard M. STALLMAN.
Speech at the royal institute of technology in sweden.
www.gnu.org/philosophy/stallman-kth.html,
1986.
- 11
- Richard M. STALLMAN.
The gnu project.
www.gnu.org/gnu/thegnuproject.html,
1998.
- 12
- Richard M. STALLMAN.
Linux journal interview.
www.linux-mag.com/1999-07/stallman_01.html,
July 1999.
- 13
- Christophe VINCHON.
Linux et les logiciels libres - propositions pour l'équipement des
écoles.
christophe.vinchon.free.fr/linux_a_lecole,
Août 2000.
- 14
- Robert YOUNG and Wendy G. ROHM.
Under the radar.
Coriolis, 1999.
LA CLASSE, LE GNOU ET LE PINGOUIN
This document was generated using the LaTeX2HTML
translator Version 2K.1beta (1.48)
Copyright © 1993, 1994, 1995, 1996, Nikos
Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross
Moore, Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -ascii_mode -no_navigation -split 0
dossier-logiciels-libres-et-education.tex
The translation was initiated by Hilaire Fernandes on 2001-08-19
Notes
- ... logiciel1
- À la date de la rédaction de cet exposé, Microsoft a lancé une campagne
de desinformation sans précédent contre les Logiciels Libres: ``Linux
is a cancer''!
- ...cannibaliser1.1
- L'expression - qui est une farce - est empruntée, à l'origine il
s'agit de prendre des pièces d'une machine pour les placer dans une
autre. La machine ainsi cannibalisée ne fonctionne plus. Bien
sûr ce problème n'existe pas avec les logiciels.
- ... propriétaires1.2
- Nous verrons en fait que les Logiciels Libres ont aussi des licences
et des propriétaires afin d'assurer qu'ils soient toujours libres
- ... licence.1.3
- D'autres licences comme la BSD (Berkely Software
Distribution) sont plus souples à ce niveau. Mais la licence BSD a
par exemple permis des redistributions sous des termes non libres
de versions modifiées de Logiciels Libres qui cassaient délibérément
un standard établi.
- ... hackeurs1.4
- Terme à ne pas confondre avec crackeur. Les hackeurs sont des programmeurs
hors pair dans le sens des artisans bâtisseurs du Moyen-Age.
- ... parties1.5
- noyau, assembleur, compilateur, debogueur, interpréteur, shell,
etc.
- ... commodité1.6
- La commodité existe déjà, elle s'appelle Microsoft, Apple et il
n'est pas besoin de démarrer un projet pour l'obtenir.
- ... logiciel1.7
- Il arrive que des Logiciels Libres cessent de l'être dans des versions
ultérieures si le détenteur du logiciel en décide ainsi.
- ...patch2.1
- Un patch est une/des modification(s) du code source d'un logiciel
donné. C'est une des briques fondamentales du développement collaboratif
des Logiciels Libres.
- ... graphiques2.2
- Le format xpm des icônes de X window est un exception.
- ... Rustine2.3
- Nous utiliserons par la suite le terme anglais patch, Rustine
est un nom déposé.
- ...backdoors5.1
- Voir le programme d'espionnage Echelon
http://www.iptvreports.mcmail.com/ic2kreport.htm pour des
exemples de backdoors dans des logiciels de messagerie.
- ... sens5.2
- Accord cadre MENRT - AFUL :
http://www.educnet.education.fr/plan/indust.htm#aful
Rapport Carcenac au premier ministre :
http://www.premier-ministre.gouv.fr/fr/p.cfm?ref=22508
Proposition de loi Le Déaut - Paul - Cohen :
http://www.osslaw.org
Proposition de loi Laffitte - Trégouët - Cabanel :
http://www.senat.fr/leg/ppl99-117.html
- ...gnu5.3
- À la fois pour le système originel man d'UNIX mais aussi
le format hypertexte info développé pour le système GNU
- ... Project5.4
- http://wwww.linuxdoc.org
- ... colombiennes6.1
- SLEC : http://groups.yahoo.com/group/slec
Structio : http://structio.sourceforge.net
- ... base6.2
- C'est à dire celle constituée uniquement de Logiciels Libres.
- ... globe6.3
- Pour une représentation graphique de leur répartition : http://www.debian.org/devel/developers.loc
- ... Debian''6.4
- http://www.debian.org/social_contract
- ... Guile6.5
- Le développement de Guile est sponsorisé par la FSF.
- ...gnu7.1
- Avant cela les Unix propriétaires se sont entre-déchirés
- ... conviviaux7.2
- Il s'opère cependant un remarquable changement dans ce domaine depuis
quelques années.
Hilaire Fernandes 2001-08-19
|