Communauté d'utilisateurs du logiciel libre
By Hilaire Fernandes on Thursday, August 9 2007, 19:27 - Permalink
Au cours de mon intervention "Logiciels libres et éducation" de la journée Aquitaine Libre 2006, j'ai présenté quelques aspects sociaux de la communauté du logiciel libre. En particulier j'ai souligné la différence qu'il existe entre une communauté bâtie autour d'un logiciel libre et une autre autour d'un logiciel propriétaire (non libre).
Communauté autour d'un logiciel propriétaire
Une communauté d'utilisateurs autour d'un logiciel fermé est contrainte par :
- des échanges inter-utilisateurs ;
- des échanges inter-développeurs ;
- une connaissance de surface du logiciel. C'est à dire limité à une connaissance fonctionnelle du logiciel.
Il est en résulte un modèle de boîte noire et de consommateur passif.

Communauté autour d'un logiciel libre
L'accès aux codes sources des logiciels libres permet des échanges sociaux décloisonnés.
Première différence
C'est bien sûr au minimum des échanges sociaux du même niveau que dans une communauté d'un logiciel propriétaire :
- des échanges inter-utilisateurs ;
- des échanges inter-dé́veloppeurs ;
- des échanges utilisateurs-dé́veloppeurs.
Le décloisonnement vient avec l'échange utilisateurs-dé́veloppeurs. Il en résulte un modèle de boîte ouverte et de consommateur actif/participant.

Deuxième différence
La nature des membres de la communauté est ainsi moins clairement définie.On a donc :
- des utilisateurs qui sont des développeurs
- des développeurs qui sont aussi utilisateurs

Une loi pour la communauté du libre
Il en découle une communauté de personnes morales (sociétés et autres organisations) ou physiques (individus) dont le code de loi commun est la licence du logiciel libre, elle est garante de la cohésion de la communauté. Enfin la frontière artificielle qu'il existe entre utilisateurs et développeurs du logiciel propriétaire n'existe pas dans le logiciel libre.

Conclusion
En théorie dans le monde du logiciel libre, tout utilisateur peut être un développeur. C'est toutefois à moduler très fortement car c'est contraint par deux aspect importants :
- la qualité du code source du logiciel libre en question
- la capacité du dit utilisateur à comprendre le code source et ensuite y apporter des contributions.
La qualité du code source est à approcher des Design Pattern. Pour les professionnels de la programmation il s'agit d'un ensemble de problèmes qui sont résolus selon des techniques clairement établies, connues et publiées. Ainsi un code source s'appuyant sur des Design Pattern sera d'autant plus facile à comprendre et à modifier/améliorer par un professionnel.
Par exemple sur la fonction d'exportation de Dr. Geo, j'ai pu recevoir une contribution pour un filtre d'exportation en PostScript car le moteur interne de rendu graphique de Dr. Geo s'appuie sur le pattern Strategy qui est prévu pour ce type d'extension.
Écrire du code de qualité n'est pas aisé du premier coup, cela nous amène donc à la notion importante de refactorisation (refactoring) du code source, pour arriver à un code de qualité. Le code de la version Gnome/GTK+ de Dr. Geo fût souvent refactorisé.
Tout cela nous éloigne du sujet premier de l'article, mais nous montre toutefois que le code source occupe une place très importante dans le logiciel libre, et c'est là toute sa force.




Comments
Les contributions actives des utilisateurs ne portent pas que sur le code source programmatif des applications mais aussi sur les contenus, leurs structurations et leurs traductions dans toutes les langues connues.
Les utilisateurs, contributeurs et développeurs se retrouvent alors virtuellement sur des forges structurées en listes de diffusions, forums et wikis ou aussi assez souvent autour de yahoogroupes qui peuvent avantageusement être abandonnés au profit d'ENT (Espaces Numériques de Travail) libres comme Prométhée ( http://promethee.eu.org/ ) qui sont alors utilisés en ENT d'ENT.