Vous êtes sur la page 1sur 24

Minist`re de lEducation Nationale, de la Recherche et de la Technologie e

CONSERVATOIRE NATIONAL DES ARTS ET METIERS INSTITUT dINFORMATIQUE dENTREPRISE

RAPPORT DE STAGE

Migration de lenvironnement de dveloppement denseignants produisant e des logiciels pdagogiques libres e

Florian BOUCAULT e stage de 2`me anne e

` Ma tre de stage : M. Olivier CORTES

Stage eectu ` RyXo SARL ea e Immeuble Topaze, Entre C, 2 rue Jean Bonardel, e 33140 Villenave dOrnon du 30/05/05 au 12/08/05

Remerciements
Je tiens ` remercier mes ma a tres de stage Eric Seigne et Olivier Cort`s pour e laccueil chaleureux quils mont rserv. Leur gnrosit et leur gentillesse ont e e e e e rendu ces trois mois inoubliables tant humainement que techniquement. Je remercie galement ladministration de lIIE ainsi que ses professeurs, e pour me permettre chaque anne de poursuivre mes tudes dingnieur, et ce e e e dans une entente agrable. e ` Je flicite de tout coeur lquipe du terrier dAbulEdu qui jour apr`s jour e e e contribue ` lintroduction de linformatique libre dans lducation. a e Enn, merci inniment ` Clia pour son soutien inconditionnel, qui, je a e lesp`re, durera toute notre vie. e

Table des mati`res e


1 Contexte du stage 1.1 Les logiciels libres . . . . . . . . . . . . . . . . . . . . . 1.1.1 Origine . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Dnitions . . . . . . . . . . . . . . . . . . . . . e 1.1.3 Les enjeux . . . . . . . . . . . . . . . . . . . . . . 1.1.4 Etat actuel . . . . . . . . . . . . . . . . . . . . . 1.2 RyXo : une fentre ouverte sur linformatique libre e e 1.2.1 Histoire et philosophie . . . . . . . . . . . . . . . 1.2.2 Activits de lentreprise . . . . . . . . . . . . . . e 1.3 Objectif du stage . . . . . . . . . . . . . . . . . . . . . . 1.3.1 But pdagogique . . . . . . . . . . . . . . . . . . e 1.3.2 Point de dpart . . . . . . . . . . . . . . . . . . . e 1.3.3 Problmatique aborde . . . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 4 5 7 8 8 8 10 10 10 10 12 13 13 13 14 15 16 16 17 17 17 18

2 Un nouvel environnement de dveloppement pour le terrier e dAbulEdu 2.1 Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Etat de lart et slection . . . . . . . . . . . . . . . . . . . . . . . e 2.2.1 Langage de programmation . . . . . . . . . . . . . . . . . 2.2.2 Biblioth`que graphique . . . . . . . . . . . . . . . . . . . e 2.2.3 Interface de dveloppement . . . . . . . . . . . . . . . . . e 2.2.4 Outil daide au dessin dinterfaces graphiques . . . . . . . 2.3 Transmission des connaissances . . . . . . . . . . . . . . . . . . . 2.3.1 Ralisation dun exemple et dun dbut de biblioth`que . e e e 2.3.2 Ecriture de documentation . . . . . . . . . . . . . . . . . 2.3.3 Sances dinitiation . . . . . . . . . . . . . . . . . . . . . . e 2.3.4 Accompagnement technique . . . . . . . . . . . . . . . . .

3 Bilan du travail eectu e 19 3.1 Amliorations possibles . . . . . . . . . . . . . . . . . . . . . . . 20 e 3.2 Importance du travail danalyse . . . . . . . . . . . . . . . . . . . 20 3.3 Apport du stage . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Rfrences ee Annexes 21 23

Chapitre 1

Contexte du stage

1.1
1.1.1

Les logiciels libres


Origine

Durant les annes 1960 et 1970, le logiciel tait frquemment partag lie e e e brement entre les encore peu nombreux utilisateurs dordinateurs, lesquels, ` a ` lpoque, taient principalement de grands serveurs centraux. A la n des annes e e e 1970, les entreprises impliques commenc`rent ` imposer rguli`rement des rese e a e e trictions dutilisation de leurs logiciels au travers des premi`res licences logie cielles. En rponse ` cette fermeture de ces libres changes qui avaient lieu aue a e paravant entre dveloppeurs, Richard Stallman, alors chercheur au laboratoire e dintelligence articielle du MIT (Massachusetts Institute of Technology), remit en cause cette volution quil jugeait contraire aux principes de collaboration e communment admis dans la recherche scientique. Il posa alors la dnition e e originale des logiciels libres, informellement dabord (1985), puis plus tard juridiquement (1989) au travers de la licence publique gnrale (GPL) [8]. Il mis en e e route le projet GNU [14] n 1983, destin ` fournir un syst`me dexploitation ea e compatible UNIX (respectant les standards POSIX [11]) enti`rement libre pour e tous. En 1985, il fondit la Free Software Foundation (FSF) [7], une organisation a ` but non lucratif destine ` appuyer le mouvement du logiciel libre et plus e a particuli`rement le projet GNU. e Cette fondation aide aujourdhui juridiquement de nombreuses entreprises et dveloppeurs de logiciels libres. En eet, une tr`s large communaut, compose e e e e non seulement dinformaticiens mais aussi de particuliers de tous horizons ainsi que de socits de tailles diverses, a fait le choix de suivre cette philosophie de ee partage et dentraide.

1.1.2

Dnitions e

Les logiciels libres garantissent quatre liberts fondamentales ` lutilisateur : e a La libert dexcuter le programme quel quen soit lusage, e e La libert dtudier le programme, e e La libert de copier et redistribuer le programme, e La libert dapporter des modications au programme et de les rendre e publiques. Deux de ces liberts ncessitent lacc`s au code source tant donn que e e e e e ltude dune version binaire dun logiciel est tr`s dicile et assez inecace e e compare ` la lecture dun code source document. En aucun cas les logiciels e a e libres ne sont comparables aux gratuiciels (prix nul), aux partagiciels (fonctionnalits compl`tes contre un prix) ou aux logiciels du domaine public. Un logiciel e e libre peut tre vendu et il nest pas forcment le fruit dun bricolage damateurs. e e De plus, la volont de prserver libres lesdits logiciels a amen au concept e e e du copyleft o` toutes les modications apportes doivent elles aussi tre libres. u e e Dapr`s le Livret du Libre [18] : Le copyleft est une utilisation particuli`re e e du droit dauteur partant du principe que le partage doit fonctionner dans les deux sens. Il autorise la copie, la modication et la diusion dune oeuvre, en imposant que les versions modies faisant lobjet dune diusion soient galement e e disponibles sous une licence copyleft. Ainsi, avec le copyleft, ce qui est libre reste libre pour toujours.

Et dapr`s la dnition originale du projet GNU [13] : Copyleft is a general e e method for making a program or other work free, and requiring all modied and extended versions of the program to be free as well. La possibilit donne par un auteur aux utilisateurs de copier, utiliser, tudier, e e e modier et distribuer son oeuvre a t tendue ` de nombreux types de media, eee a comme la musique [16], les documents crits [10][15] ou encore toute oeuvre e artistique [3] au travers de licences adaptes [1]. e

1.1.3
Sociaux

Les enjeux

Le libre tente denrayer la spirale descendante du verrouillage de linnovation, des ides, de la connaissance et des moyens de communication. e Faire le choix de placer un logiciel sous une licence libre nest pas une rvocation du droit de proprit intellectuelle puisquau contraire il prend ses rae ee cines dans la reconnaissance des auteurs et dans lincitation ` la cration, sources a e du droit de la proprit intellectuelle. Selon Jean-Beno Zimmermann [12], ee t la question fondamentale de la proprit intellectuelle [est] de concilier inee citation ` linnovation et diusion technologique, [celle-ci] dbouche sur un a e paradoxe, parfois dnomm dilemme shumpeterien, entre performance indivie e duelle et ecience collective.Ce dilemme na pu tre satisfait par le dialogue e a ` sens unique instaur par les logiciels propritaires o` nest pris en compte e e u quun seul objectif : la protection des intrts de lauteur. Ceci est ` lopee a pos des logiciels libres comme le souligne Etienne Lavanant dans son essai sur e Pourquoi le libre ne concerne pas que les informaticiens [5] : Le mouvement du libre tente aujourdhui de faire en sorte que la proprit intellectuelle continue ee de servir lintrt de la communaut plutt que les intrts de quelques groupes ee e o ee dindividus. Par ailleurs, ce partage rejoint celui de la connaissance. Celle-ci sest vue de plus en plus librement change avec la gnralisation dInternet et notamment e e e e de lutilisation des weblogs (journaux lectroniques), et du principe du Wiki (o` e u chacun peut prendre part ` lcriture du contenu). Lexemple le plus agrant a e de cette volution induite par le libre est sans doute lencyclopdie lectronique e e e collaborative Wikipdia [2] o` en seulement 4 ans le nombre darticles a atteint e u 200 000, sans pour autant sacrier ` la qualit. a e Enn, la prennit des communications ` travers loutil informatique ape e a para clairement tributaire non seulement de logiciels libres mais aussi de fort mats et de langages libres. De nombreux gouvernements lont dores-et-dj` ea compris et recommandent ou imposent leur utilisation. Dans les faits, le rseau e Internet dans son ensemble repose en majorit sur des ordinateurs fonctionnant e sous des syst`mes dexploitations libres ou tout du moins sur des composants e libres comme les services de pages hypertextes (Apache, 70% des serveurs en Octobre 2005 dapr`s Netcraft [17]), de courrier lectronique (Sendmail, Exim e e et Postx, 41% des serveurs en Avril 2004 dapr`s Falko Timme [6]) ou ene core de noms (Bind). De mani`re vidente, le rseau ncessite aussi des stane e e e dards de communications ouverts. Concernant plus particuli`rement le stockage e des informations, seule ladoption de formats ouverts [9] et normaliss garantit e lindpendance des utilisateurs (particuliers ou non) vis-`-vis de leurs outils [4]. e a En informatique, les langages de programmation populaires sont souvent libres

(ex. : C, Python, Perl, PHP), cest-`-dire des langages o` chacun peut avoir acc`s a u e a ` ses spcications et ` des compilateurs ou interprteurs. Ceux-ci dverouillent e a e e lacc`s ` linteroprabilit en introduisant des outils communs. e a e e Economiques Les consquences conomiques qui viennent les premi`res ` lesprit sont soue e e a vent celles impactant les socits dveloppeuses de logiciels qui se retrouveraient ee e sans revenus du fait de lapparente gratuit des solutions libres. Cependant, e il faut dabord noter que frquemment, des logiciels libres sont eectivement e vendus tel que recommand par la Free Software Foundation. Dautre part, e comme remarqu dans le Livret du Libre [18] : Contrairement ` une croyance e a rpandue, une majorit dinformaticiens travaille sur des logiciels qui ne sont pas e e vendus. Ils peuvent tre destins ` un usage interne ou bien ils nexistent que e e a pour permettre dutiliser un autre produit : un service en ligne, un priphrique e e matriel...Lemploi dans lindustrie informatique nest par consquent pas en e e mis en pril par le libre, mais en partie remani puisque le temps pass ` e e e a redvelopper lexistant na plus lieu dtre. Celui-ci se voit remplac par un trae e e vail plus important de rutilisation et dintgration de composants dj` conus e e ea c rendant possible une meilleure adaptation aux besoins rels des utilisateurs. e Cette mutualisation des dveloppements entra par l` mme une diminue ne a e tion des cots associs et permet de rduire les risques de monopolisation dun u e e march par une socit unique. e ee Les cots dacquisition des licences des outils mmes de dveloppement et u e e de gestion sont eux aussi drastiquement rabaisss. e Enn, un dveloppement libre diminue les risques pour lentreprise ditrice e e puisque la connaissance peut tre partage par dautres personnes ; lentreprise e e peut faire appel ` des dveloppeurs extrieurs potentiellement plus qualis et a e e e gagne ainsi en exibilit. e En termes dingnierie e Cest un nouveau mod`le de dveloppement qui est apparu avec lav`nement e e e simultan du rseau Internet et des logiciels libres. Lexemple le plus marquant e e tant celui de la ralisation collaborative du noyau Linux initie en 1991 par e e e Linus Torvalds. Celui-ci est souvent quali de bazar puisquen apparence il e ny a pas de hirarchie pyramidale classique. Chacun est ` mme de participer e a e et lapprobation des contributions se base uniquement sur des crit`res teche niques. Ce changement radical dans la faon de mener un projet est dcrit, c e analys et expriment de mani`re ne dans louvrage dEric S. Raymond, e e e e La cathdrale et le bazar [19]. En consquence de la mise ` contribution de tous, e e a la force de travail sen voit potentiellement accrue. On constate dailleurs que la ractivit face ` des erreurs de programmation ou de simples questions dutilie e a sation est souvent meilleure pour des produits libres que pour leurs quivalents e propritaires. De fait, la scurit en est amliore ; de surcro la dcouverte de e e e e e t, e failles est dnitivement plus ecace avec un code ouvert largement consult. Le e e rapprochement de lutilisateur et du dveloppeur ram`ne le travail dingnierie e e e a ` ses fondements en rpondant de mani`re plus adquate encore ` la demande. e e e a Par lutilisation de technologies libres, les liens imposs entre le fournisseur e et lusager disparaissent. Le fournisseur est donc forc dinstaurer des relations e

saines sil souhaite conserver sa crdibilit. Cette indpendance est dailleurs e e e requise par les gouvernements.

1.1.4

Etat actuel

Les concepts vhiculs par le mouvement du libre ont eu et ont encore bien e e du mal ` percer, que ce soit en entreprise, chez les particuliers ou dans les a administrations. On assiste tout de mme ` de nombreux passages au libre bien e a souvent pour des raisons conomiques mais aussi pour garantir lindpendance e e technologique et la prennit des informations. e e Des rassemblements de tailles variables sont rguli`rement organiss ` travers e e e a le monde et de tr`s riches ressources libres sont maintenues par une grande e quantit de sites Internet tant professionels que personnels. e Les licences libres quant ` elles sont de mieux en mieux reconnues par les a diverses entits juridiques et la jurisprudence sapplique chaque jour un peu plus e que ce soit pour dfendre les dveloppeurs ou les utilisateurs. e e Des preuves de la viabilit du mod`le conomique du libre ont t apports e e e ee e par de multiples entreprises, petites ou plus importantes. Cependant, de fortes menaces p`sent constamment sur lavenir du libre. Des e mesures telles que le projet de loi DADVSI visant ` contrler le syst`me de a o e lutilisateur imposent le secret ` loppos de louverture et de la transparence a e caractrisant les logiciels libres. Lacceptation potentielle des brevets logiciels en e Europe rendrait illgaux de tr`s nombreux logiciels libres dj` existants et mare e ea ginaliserait les petites structures au prot des gants, seuls ` mme deectuer e a e les complexes recherches dantriorit et de payer le prix des brevets. e e

1.2
1.2.1

RyXo : une fentre ouverte sur linfore e matique libre


Histoire et philosophie

RyXo est une Socit de Services en Logiciels Libres (SSLL) ne ` lautomne e ee e a 2003 lorsque M. Olivier Cort`s rejoignit la socit individuelle Rycks fonde e ee e par Eric Seigne trois annes plus tt. Le coeur de mtier de lentreprise est la e o e recherche et le dveloppement. Elle produit plus particuli`rement la solution e e logicielle libre AbulEdu Professionnel, destine ` faciliter la cration et lusage e a e dun rseau informatique dans un tablissement scolaire. e e La socit contribue au tissu conomique et social tant dans la rgion que ee e e dans le pays et dans le monde entier : Localement, de par son appartenance au rseau ProLibre, une section e de lABUL rassemblant les entreprises dAquitaine qui travaillent dans le libre. Dun point de vue national : ` travers les dployeurs, les distributeurs a e et les partenaires AbulEdu Professionnel qui se rpartissent dans plus de e vingt dpartements en France. e Au niveau international, RyXo intervient en Afrique dans le cadre de fore mations ou de confrences pour le dveloppement durable et lindpendance e e e technologique de lAfrique. Le libre est la principale procupation de lentreprise : il intervient dans les e dveloppements durables, une des cls de lavenir de nos nations. RyXo ne peut e e e tre dnie comme une SSII qui fait du libre, mais plutt comme une entreprise e e o qui adopte la philosophie du libre comme une faon dexister. Et ceci, en plus c des dveloppements logiciels, rend la gestion dentreprise et des ressources plus e passionnantes. Voici comment RyXo qualie le libre : e Le libre est une faon plus quitable de voir linformatique. Les c e fournisseurs dun logiciel ne peuvent plus encha ner leurs clients en ne leur donnant pas les sources de leurs programmes, ou en restreignant le logiciel ` telle ou telle utilisation. Ils leur permettent dtre a e libre de choisir leur prestataire. Ceci est apprciable en cas de coup e dur (cession dactivit du prestataire), et permet de construire entre e le prestataire et son client une relation de conance plutt quune o relation dominant/domin. [20] e

1.2.2

Activits de lentreprise e

Le dveloppement et le conseil e Jour apr`s jour, RyXo conoit, programme et adapte des logiciels libres e e c pour quils rpondent au mieux aux besoins de ses clients ainsi quaux siens. e RyXo est ` la pointe des technologies libres et OpenSource, est partie prenante e a de nombreux projets, et avance avec les logiciels libres. Fort de son panel de comptences vaste et solide, RyXo est ` mme de conseiller et dassister ses e e a e clients au fur et ` mesure de leur volution technologique. a e

La conception, linstallation et la maintenance de rseaux e La mise en place dinfrastructures rseaux scurises de qualit pour les e e e e PME/PMI et pour les tablissements scolaires ` base de logiciels libres est la e a tche principale de lentreprise. Pare-feux, serveurs mandataires, serveurs de a messagerie, dapplications, de partage de ressources sont autant de composants que lquipe ma e trise tr`s nement. La prestation peut aller de la simple assise tance ` la grance externalise selon les dsirs et les besoins de chaque structure. a e e e La technologie ma tresse de RyXo est la solution libre AbulEdu Professioe nel. Elle permet la mise en place dun rseau pdagogique performant, able et e e modulaire. Particuli`rement adapt pour lenseignement, cette solution convient e e galement aux PME souhaitant squiper dun rseau de bureautique simple et e e e ecace. Laccent est mis sur la facilit dadministration sans pour autant sacrie er ` la scurit. La composante logicielle peut-tre accompagne de tout type a e e e e de matriel que RyXo certie puis dploie. Actuellement, plus de 250 serveurs e e e AbulEdu sont en activit et surveills en permanence par lquipe. e e e La formation RyXo intervient pour des organismes de formations agrs sur les logiciels e ee libres ou des sujets connexes. Les formations sont sur mesure : les supports et le contenu sont adapts aux besoins ; ltude de cas concret et les exercices en e e situation sont les principes directeurs de ces cours. Dans la dmarche de qualit AbulEdu Professionel, sont organises des fore e e mations de dirents niveaux pour ses revendeurs prcdant leur certication. e e e RyXo participe galement ` de nombreux colloques nationaux et internae e a tionaux comme les Linux Expo, les Rencontres Mondiales du Logiciel Libre, ou les Rencontres Africaines du Logiciel Libre, dans le cadre de dveloppements e durables et pour participer ` lmancipation technologique des pays dAfrique a e Francophone. La vente de matriel e De mani`re plus anecdotique, RyXo est revendeur de matriel informatique e e e pour les particuliers au travers de sa boutique en ligne (boutique.ryxeo.com). Bien entendu, un point dhonneur est mis sur la mise ` disponibilit de matriel a e e pour lesquels des pilotes libres existent.

1.3
1.3.1

Objectif du stage
But pdagogique e

En tant que stage de seconde anne de lInstitut dInformatique dEntreprise, e les objectifs sont multiples : mettre en application les techniques informatiques enseignes ` lcole, e a e dvelopper et dmontrer des comptences danalyse et de conception, e e e faire preuve dune bonne capacit dintgration ` lenvironnement de trae e a vail et notamment ` lquipe daccueil, a e et rpondre ecacement aux attentes de lentreprise. e Dans le contexte dune SSLL telle que RyXo o` tous les moyens ncessaires e u e a ` laccomplissement de mon travail ont t mis ` ma disposition, la satisfaction ee a de ces objectifs mtait grandement facilite. e e

1.3.2

Point de dpart e

Le terrier dAbulEdu est une suite dapplications libres dveloppe par des e e enseignants. Avec laide technique dEric Seigne, ils se sont mis ` dvelopper des a e outils adapts ` leurs besoins pdagogiques spciques. Ceux-ci sont inclus dans e a e e AbulEdu mais sont bien souvent dvelopps de mani`re ` en tre indpendants, e e e a e e cest ` dire quils sont pour la plupart utilisables sur nimporte quel syst`me a e GNU/Linux, MacOS ou Windows. Ce sont ` prsent pr`s dune quinzaine de a e e logiciels ludiques, ludo-ducatifs et pdagogiques dvelopps par des non infore e e e maticiens qui sont utiliss quotidiennement par de nombreuses coles et parents e e dl`ves. ee Depuis le commencement du terrier en 2002, le langage Tcl, associ ` sa e a bo ` outils graphiques naturelle Tk, a t employ pour la ralisation de te a ee e e celui-ci. Sans phase de compilation et bnciant dune large communaut et e e e dune importante stabilit, ctait un choix judicieux doutil de travail pour des e e enseignants botiens en mati`re de programmation informatique. e e Cependant, lexprience faisant, quelques dicults virent le jour. Du ct e e oe graphique, une mauvaise intgration ` lenvironnement de bureau et une appae a rence un peu dsu`te du Tk semblaient de plus en plus rdhibitoires. De plus, e e e linternationalisation des textes dpendants du syst`me dexploitation ntait e e e pas totalement satisfaisante et de nouveaux langages plus simples en termes de syntaxe et de maintenance taient apparus. e

1.3.3

Problmatique aborde e e

Les dveloppeurs des logiciels du terrier sont majoritairement des profese seurs qui nont a priori aucune formation en informatique. Ils ont dvelopp ces e e outils pdagogiques ` laide de Tcl/Tk mais la ncessit dune autre voie de e a e e programmation sest faite ressentir avec des attentes assez prcises de la part e des enseignants. Il ma donc fallu commencer par mimprgner simultanment e e des environnements de lducation et du libre an dpouser au mieux la dee e mande. Ce fut un travail continu, qui apr`s de nombreuses discussions, lectures, e rencontres, visites et tests sest rvl extrmement gratiant et rvlateur. De e ee e e e plus, le temps, la patience et les ressources des personnes impliques ntant pas e e

10

illimits, le choix de ces outils se devait dtre, dune part, au mieux de mes pose e sibilits danalyse, et dautre part, correctement introduit et justi. Sensuivit e e donc une priode de recherche aussi exhaustive que possible dans la mesure du e relativement court temps imparti. Une fois les dcisions prises en accord avec e les dialogues permanents, il sagissait de transmettre la nouvelle ainsi que les connaissances requises pour commencer ` se mettre ` louvrage dans ce nouvel a a environnement de dveloppement. Enn, une priode de support utilisateur et e e daccompagnement technique sencha naturellement. na

11

Chapitre 2

Un nouvel environnement de dveloppement pour le e terrier dAbulEdu

12

2.1

Cahier des charges

Il sagissait de trouver une nouvelle plateforme de dveloppement de logiciels e graphiques rpondant aux exigences principales suivantes : e Destine aux enseignants donc simple ` apprendre et ` utiliser e a a Portable sur GNU/Linux, Windows et MacOS/X avec un minimum deffort Ayant un rendu natif ` linterface graphique du syst`me dexploitation a e Tout en restant assez lger pour lordinateur e Libre et reposant sur des outils libres Capable de grer des entres et des sorties audio e e Facilitant linternationalisation des logiciels dvelopps e e Dautre part, la version associative dAbulEdu initialement cre par Eric Seigne ee repose sur la distribution GNU/Linux Mandrake 7.2 depuis lors et reste encore utilise par de nombreuses coles non dsireuses de passer ` la version profese e e a sionnelle base sur la Debian Woody, version stable de cette distribution jusqu` e a rcemment. Idalement, le langage et la biblioth`que graphique choisis doivent e e e donc fonctionner sour Mandrake 7.2. Dautres demandes anecdotiques telles que la possibilit de redimensionner rae pidement des images et gnrer des chiers au format SVG simplement sont e e apparues au fur et ` mesure de mes recherches. a

2.2

Etat de lart et slection e

Une plateforme telle que celle requise est compose de trois volets : le langage e de programmation, la biblioth`que graphique et linterface de dveloppement. e e Il sest rapidement avr que de nombreuses solutions libres existaient pour ee chacune des trois composantes. Lenqute a t essentiellement base sur les e ee e rsultats de moteurs de recherche Internet en partant des exigences ainsi que e de mes propres connaissances et expriences passes. Des crit`res comme la e e e popularit, synonyme de communaut active, lanciennet, ou encore le nombre e e e de structures prives soutenant le projet ont aussi t pris en compte an de e ee garantir la prennit des choix. e e Dans un souci de rigueur, il tait ncessaire daller au del` des ides come e a e munment admises et de se plonger soi-mme un minimum dans lutilisation de e e chacune des possibilits. Ainsi, de br`ves mais frquentes exprimentations ont e e e e t tentes tout au long des recherches. ee e

2.2.1

Langage de programmation

Tout dabord, il ma fallu rfrencer lensemble des langages susament ee abordables pour dpasser le stade du rejet que lon peut ressentir au dbut e e de lapprentissage. La famille des langages disposant dinterprteurs sest vite e impose puisquelle retire des lments parasites (compilation) et rduit la phase e ee e de dveloppement ` sa plus simple expression : lcriture du code source. Cepene a e dant, les logiciels du terrier tant destins ` tre tendus, maintenus et amliors e e ae e e e sans limite de temps et par de nombreux contributeurs, un langage disposant

13

dune syntaxe forant la lisibilit et dune bonne robustesse sest avr indispenc e ee sable. Voici les langages parmi lesquels le choix a t fait : ee Caml Sa principale implmentation, lObjective Caml, est libre, dispose dune e extension oriente objet, de compilateurs et dinterprteurs sous une kye e rielle de syst`mes dexploitations et darchitectures ; dvelopp par lINe e e RIA depuis 1985, il est frquemment utilis en France dans lapprentissage e e de la programmation et a vu son utilisation largement diversie. e Python Langage interprt ` syntaxe positionnelle dont le dveloppement par eea e son auteur, Guido van Rossum, a debut en 1990 ; une tr`s large come e munaut, de tr`s nombreuses biblioth`ques et une facilit dcriture et de e e e e e lecture le caractrisent. e Perl Depuis 1987, Perl fournit ` de tr`s nombreux dveloppeurs un langage a e e proche en fonctionnalits au C et ` des langages de scripts tels que sed, e a awk et shell ; cependant, une certaine rputation dobscurit entoure les e e codes sources des programmes crits en Perl. e Common Lisp Dot dune longue histoire (hritier direct des dialectes Lisp e e des annes 1950), son paradigme reste fondamentalement fonctionnel bien e quil accepte des techniques impratives et orientes objets ; il est aujoure e dhui bien moins rpandu quauparavant. e Scheme Driv du Lisp dans le but de lpurer et le simplier sans pour autant e e e sacrier ` sa puissance expressive. a LOGO Langage de programmation adapt du Lisp dans les annes 1960 au e e MIT qui sert essentiellement ` lintroduction ` la programmation. a a Basic et drivs Langage invent en 1964 par John George Kemeny et Thoe e e mas Eugene Kurtz qui fut conu de faon ` permettre aux tudiants des c c a e li`res non scientiques dutiliser les ordinateurs. e Il est vite apparu que le Basic et le LOGO taient trop simplistes et pas assez e structurant pour le besoin bien que des interfaces de dveloppements totalement e intgres telles que Gambas ou HBasic existaient. Lapproche fonctionnelle du e e Common Lisp, du Scheme aurait sans doute drout les enseignants habitus e e e au Tcl. Le Caml, tr`s expressif et performant, semblait ne pas compter assez de e ressources, notamment concernant les biblioth`ques disponibles et la taille de e sa communaut. e Il restait donc le Python et le Perl, deux langages extrmement rpandus e e et populaires. Ce sont ici les impratifs en termes de clart de code qui ont e e prdomins en faveur du Python. e e

2.2.2

Biblioth`que graphique e

Une biblioth`que graphique fournit un ensemble de fonctionnalits permete e tant la conception dinterfaces graphiques. Les biblioth`ques graphiques servent e dinterface entre lachage (pilote vido) et les entres (clavier, souris...). e e Les biblioth`ques bas niveau (Xlib pour les serveurs X) sont assez pnibles e e a ` utiliser pour crer une application compl`te. Cest pour cela quont t crs e e e e ee des biblioth`ques de plus haut niveau contenant des fonctions pour crer des e e fentres, des boutons, des menus plus simplement. e 14

Souvent, ces biblioth`ques graphiques int`grent aussi toute une panoplie de e e fonctions pour traiter le rseau, le multimdia, le multithreading, etc... Voici les e e majeures du monde des logiciels libres qui soient multiplateformes et utilisables en Python : Qt Son dveloppement a dbut en 1991. Au dpart propritaire, elle est passe e e e e e e sous une double licence non libre pour le syt`me Microsoft Windows. Fie nalement, en juillet 2005, ` la sortie de sa version 4, la biblioth`que Qt a e a t rendue sous licence GPL pour tout projet libre. Elle est plbiscite ee e e par plusieurs milliers dentreprises. GTK (Gimp ToolKit) Originellement cre pour les besoins du logiciel de ee traitement dimages The GIMP, elle est ` prsent utilise pour le dveloppement a e e e denvironnements de bureau (GNOME, Xfce, ROX...) et de nombreuses autres applications. Tk Introduite au dpart comme une extension du langage de script Tcl, il est e a e ` prsent possible daccder ` cette biblioth`que au travers de nombreux e a e langages tels que Perl, Python ou encore Ruby. Il lui manque malheureusement de nombreux composants modernes. FLTK Destine ` tre avant tout tr`s lg`re dun point de vue mmoire et e a e e e e e temps de calcul, sa communaut dutilisateurs est ` limage du nombre de e a composants disponibles : restreinte. FOX Biblioth`que assez rcente (1997) qui a le dfaut majeur de ne pas fonce e e tionner sous MacOS/X. wxWidgets Mise en production en 1992, elle se direncie par lusage des e biblioth`ques natives aux plateformes ce qui lui conc`de une apparence e e bien intgre et une bonne rapidit dexcution. e e e e La biblioth`que FOX, ne fonctionnant pas sous MacOS/X et prsentant une e e apparence constante quel que soit lenvironnement, sest rapidement vue carte. e e Les biblioth`ques FLTK et Tk se sont avres tre trop limites pour les e ee e e besoins des logiciels du terrier. Restaient donc GTK, Qt et wxWidgets, tous trois respectant avec plus ou moins deorts le cahier des charges tabli auparavant. e GTK, tr`s populaire restait cependant assez peu concluant du point de vue e de son adaptation visuelle ` lenvironnement. a Au moment de ces recherches, la biblioth`que Qt, bien que permettant e une intgration visuelle naturelle (fonctionnalit dailleurs assez rcente), poe e e sait probl`me concernant sa double licence dutilisation. e wxWidgets prsentait comme avantage majeur dtre une mta-biblioth`que e e e e lui permettant de prendre systmatiquement lapparence de son environnement. e De plus, elle int`gre la gestion du son, de linternationalisation et poss`de si bee e soin est des imlmentations en de tr`s nombreux langages (Python, Perl, BASIC, e e Lua, Eiel, JavaScript, Java, Ruby, Haskell, .Net...).

2.2.3

Interface de dveloppement e

Deux types doutils peuvent tre utiles ` lutilisation du Python : un diteur e a e de texte avanc reconnaissant la syntaxe de Python ou une interface de dveloppement e e 15

plus ou moins ddie au Python. Bien que ce choix soit avant tout une aaire e e de got, je me suis eorc de le faciliter aux enseignants en les conseillant et en u e tablissant une slection. Les crit`res principaux taient l` encore la libert des e e e e a e logiciels et leur portabilit. e eric3 Environnement ddi au Python incluant de nombreuses fonctionnalits e e e utiles : dbogueur, diagrammes de classes, interface avec serveur de sources... e Il semble tr`s bien suivi par lquipe de dveloppement et plusieurs socits e e e ee lutilisent comme outil principal de programmation Python. SPE (Stanis Python Editor) Tout ` fait comparable ` eric3, il en reprend a a une bonne partie des possibilits et prsente des facilits dintgration avec e e e e wx. Boa Constructor Bien que disposant de capacits intressantes, son interface e e utilisateur sest rvle tr`s droutante et dicile ` prendre en main. e ee e e a DrPython Simple et ecace, son syst`me de plugins ouvre une voie facile ` e a lajout de nouvelles fonctions. Eclipse avec le module pydev Une approche tr`s dirente ` laquelle on e e a peut reprocher sa lourdeur tant visuelle quen termes de ressources. La sduisante simplicit de DrPython en a fait le choix prfr des enseie e eee gnants.

2.2.4

Outil daide au dessin dinterfaces graphiques

Lcriture du code correspondant aux composants graphiques des programmes e du terrier est parfois rbarbative et trop technique. Il est souvent pratique de e dlguer cette rdaction ` des logiciels spcialiss qui, ` partir dune descripee e a e e a tion visuelle de linterface voulue, soccupent de produire le code source. Cette approche est souvent utilis pour de petits projets o` le temps disponible est e u court. Techniquement, ce nest pas tr`s pratique car le code rsultant, bien que e e pouvant tre retouch, ne peut tre rgnr apr`s modication sous peine de e e e e e ee e perdre toutes les corrections manuelles. Ces outils de dessin dinterfaces graphiques privilgient maintenant la transformation vers un format de description e dinterface. Le chier rsultant peut ensuite tre charg par un programme Pye e e thon qui soccupe dassocier les vnements des composants ` des actions. e e a Pour la biblioth`que wxWidgets, trois outils libres existent : wxGlade, wxe Hatch, XRCed. Les divers essais dutilisation nont malheureusement pas t ee convainquants. Lemploi dun outil de design dinterface graphique pour le terrier reprsentait en fait plus une perte dnergie quun gain de temps. e e

2.3

Transmission des connaissances

Une fois ltude des direntes technologies possibles termine et le choix fait, e e e il sagissait alors dapprendre ` les utiliser puis de transmettre ces connaissances a aux enseignants. Ce passage de savoir sest fait au travers de documentations, dexemples mais aussi de sances de cours et dexercices informels notamment e durant les Rencontres Mondiales du Logiciel Libre qui se sont tenues ` Dijon. a

16

2.3.1

Ralisation dun exemple et dun dbut de biblioth`que e e e

Le terrier dAbulEdu comptait parmi ses logiciels celui fort utile pour lapprentissage du maniement de la souris : le Mulot. Ecrit comme ses comparses en Tcl/Tk, une rcriture en Python/wxWidgets, au moins partielle, simposait ee an de donner un exemple concret directement li au terrier. e Cette preuve de concept servit non seulement de base pdagogique mais e permit aussi de dbuter lcriture dun ensemble de modules rutilisables pour e e e lcriture dautres logiciels du terrier. e

Fig. Captures dcran du Mulot en wxPython e Le code source correspondant est disponible en annexe.

2.3.2

Ecriture de documentation

An dintroduire le Python/wxWidgets aux nophytes, jai pu rdiger des doe e cuments (attachs en annexe) de dcouverte et dinitiation. Etant donn quune e e e abondante littrature de qualit, et tant en anglais quen franais, tait dj` ` e e c e eaa disposition de tout un chacun, ces documents sont brefs et font principalement rfrence ` des morceaux choisis dautres cours. Ils dcrivent aussi la mise en ee a e place susament dtaille dun environnement de travail fonctionnel. e e

2.3.3

Sances dinitiation e

A plusieurs reprises, jai eu loccasion de rencontrer en personne les gens impliqus dans le dveloppement des logiciels du terrier. Ceci ne fut pas vident e e e puisquil ne faut pas perdre de vue que ces personnes ont cr ces programmes ee sur leur temps libre. Un des rendez-vous majeurs fut les Rencontres Mondiales du Logiciel Libre 2005 qui ont eu lieu ` Dijon. Ces quelques jours permettent aux a acteurs des logiciels libres de se rencontrer, et aussi de prsenter tant au grand e

17

public quaux professionnels intresss ce quest le monde du libre. AbulEdu y e e avait ` sa disposition un stand pour faire des dmonstrations, notamment des a e logiciels du terrier. Des cours informels sur le Python et la biblioth`que wxWidgets ont donc e pu y avoir lieu. Ceci a ncessit une certaine prparation avec entre autres la e e e rdaction dexercices pdagogiques (attachs en annexe). e e e

2.3.4

Accompagnement technique

Au jour le jour, de nombreuses requtes merg`rent : des retours sur les docue e e ments, exercices, prototypes mais aussi de nouvelles ides de logiciels pdagogiques. e e Une bonne disponibilit tait donc imprative pour des attentes quil ntait pas ee e e toujours vident de satisfaire. e

18

Chapitre 3

Bilan du travail eectu e

19

3.1

Amliorations possibles e

Bien quau nal la transition du Tcl/Tk vers Python/wxWidgets fut correctement initie etcommunment accepte, des eorts de dveloppement additioe e e e nels auraient pu ventuellement dboucher sur un logiciel du terrier enti`rement e e e nouveau. Un dbut danalyse du projet a vu le jour en n de stage mais le e manque de temps na pas permis daboutir. Il aurait t utile de donner des prsentations du projet ` des dveloppeurs ee e a e intresss et disponibles an de potentiellement recruter, et ainsi ne pas laisser e e lquipe du terrier sans expertise technique. e La pdagogie tant un domaine relativement nouveau me concernant, jai eu e e quelques saines dicults ` faire passer mes connaissances informatiques ` un e a a public fort heureusement courageux. Le prototype du Mulot en wxPython tait un succ`s qui a conrm la quae e e lit de lanalyse pralable. La phase de conception du logiciel a port ses fruits ; e e e les tests multi-plateformes ont rpondu aux attentes du cahier des charges. Cee pendant, on peut regretter quil ne soit pas tout ` fait utilisable dans les coles a e puisque quelques fonctionnalits du Mulot Tcl/Tk nont pas t implmentes. e ee e e

3.2

Importance du travail danalyse

Lanalyse ici ne concernait pas seulement laspect logiciel. En eet, il tait e crucial de correctement comprendre la philosophie de lentreprise et de lquipe e du terrier pour bien cerner ce quils attendaient de mon travail. Par exemple, de frquents questionnements sur le pourquoi des logiciels libres ont model ma e e rexion de mani`re ` madapter ` lenvironnement de travail. Cest pour cette e e a a raison quune partie du prsent rapport dpeint ce milieu avec une certaine e e prcision. e

3.3

Apport du stage

Durant ces douze semaines dans la socit, jai eu la chance daborder le sujet ee tr`s intressant des logiciels libres, en particulier dans le milieu de lducation, e e e et lopportunit de tenter de transmettre du savoir informatique. e RyXo ma permis daccro mes connaissances informatiques dans divers e tre domaines. Jai pu les approfondir dans des langages tels que le Python, le script shell ou encore le XML ainsi que perfectionner mes comptences en modlisation e e objet. Jai galement pu travailler mes capacits pdagogiques ce qui aura sans e e e doute t la partie la plus enrichissante de ces trois mois. Jesp`re avoir apee e port une petite pierre ` ldice de la communaut du libre, dice qui dpend e a e e e e enti`rement de la volont de chacun. e e Enn, jai pu apprhender ` nouveau limportance capitale de la communie a cation et des relations humaines en entreprise.

20

Bibliographie
[1] [2] [3] [4] [5] Les licences Creative Commons. http ://creativecommons.org/. Wikipdia, lencyclopdie gratuite et libre. Internet. http ://wikipedia.org/. e e La licence Art Libre. http ://artlibre.org/. Bastien Guerry et Dario Taraborelli : Pourquoi utiliser des formats ouverts ? Internet, 2004. http ://www.openformats.org/fr. Etienne Lavanant : Pourquoi le libre ne concerne pas que les informaticiens. Internet, 14 janvier 2004. http ://www.minet.net/spip/article.php3 ?id article=110. Falko Timme : Les statistiques de serveurs mails de Falko Timme. Internet. http ://www.falkotimme.com/projects/survey smtp.php ?id=170. Free Software Foundation : Le site Internet ociel de la FSF. http ://www.fsf.org. Free Software Foundation : Le texte de la licence GNU General Public License (GPL). Le texte ociel nest disponible quen anglais, pour des raisons lgales. Des traductions ocielles sont en cours dtudes par des e e juristes. On trouvera une version traduite, non ocielle sur le site Internet de la FSF France. http ://www.fsf.org/licenses/gpl.html. Gouvernement Francais : LOI n 2004-575 du 21 juin 2004 pour la conance dans lconomie numrique. Journal Ociel n 143, 22 juin 2004. e e http ://www.legifrance.gouv.fr/WAspad/UnTexteDeJorf ?numjo=ECOX0200175L. Le projet Gutenberg. http ://www.gutenberg.org/. IEEE Standards Association : Page de rfrence de la norme POSIX. ee http ://standards.ieee.org/regauth/posix/. J.-B. Zimmermann : Logiciel et proprit intellectuelle : du Copyright ee au Copyleft. Groupement de Recherche en Economie Quantitative dAixMarseille, 1999. Le projet GNU : La dnition du copyleft par le projet GNU. e http ://www.gnu.org/copyleft/copyleft.html. Le projet GNU : La page de rfrence du projet GNU. ee http ://www.gnu.org. Le projet GNU : Le texte de la GNU Free Documentation License. http ://www.gnu.org/copyleft/fdl.html. Le site Internet Musique Libre. http ://www.musique-libre.com/. Netcraft : Les statistiques de serveurs webs Netcraft. Internet. http ://news.netcraft.com/archives/web server survey.html. 21

[6] [7] [8]

[9]

[10] [11] [12]

[13] [14] [15] [16] [17]

[18] Nicolas Bouillon, Lucas Nussbaum et Thomas Petazzoni : Le livret du Libre. Internet, http ://www.livretdulibre.org/, mai 2005. [19] Eric S. Raymond : The cathedral and the bazaar : musings on Linux and open source by an accidental revolutionary. OReilly & Associates, Inc., Sebastopol, CA, USA, 2001. [20] RyXeo : RyXo : lentreprise, les personnes. e Internet. http ://ryxeo.com/entreprise.php.

22

Annexes
Code source du Mulot en wxPython Documents dintroduction ` Python et wxWidgets a Exercices de wxPython

23