Cette page est une copie pour archive de http://www.ofset.org/information/papers/free-software-and-education-fr.html
(effectuée le 30 août 2001)


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 logiciel1

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.


Table des matières

   
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.

La scission

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

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.

CVS

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.

Collaboration ou coopération ?

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.

Développement 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 :

  1. 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.
  2. 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 :

  1. 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.
  2. 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 :

  1. la gratification de contribuer à une oeuvre commune ;
  2. 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.

Les documents

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.

L'aide en ligne

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é.

Le e-learning

À 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 :

  1. Annonce pendant une quinzaine de jours sur l'ouverture du projet. Suite à cette période, 98 volontaires se sont inscrits pour suivre le cours.
  2. 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.
  3. 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.
  4. Participer - pour les sélectionnés - aux 5 ateliers de 2 heures chacun.
  5. É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.

Conclusion

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] ?

Bibliographie

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.

À propos de ce document...

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

 

Updated on 2001/08/19 at 22:15:32 - UTC

Copyright 2000,2001 OFSET
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.