Aujourd'hui l'actualité m'encourage à prendre du temps pour partager quelques reflexions à propos du logiciel libre. L'article de Richard Stallman (RMS)[1] sur gnu.org, The Javascript Trap, fait du bruit. Il me semble mal compris. Deux autres nouvelles intéressantes : une opinion que Eric S. Raymond (ESR)[2] qualifie lui-même d'hérésie, reprise dans Eric S. Raymond speaks heresy; et l'abonnement obligatoire à last.fm Radio[3] pour les utilisateurs hors US, UK et Allemagne. Note : cet article est en cours de rédaction, mais j'ai decidé de le publier pour pouvoir bénéficier de retours si quelques lecteurs s'égarent sur ce blog. N'hésitez donc pas a ajouter vos commentaires. J'en prendrai compte pour faire évoluer ce post. Voir l'avis de Marc dans Le piège du JavaScript.
L'essai de RMS décrit l'exception qui existe actuellement sur la partie cliente des applications web. Il se concentre sur le langage Javascript mais n'exclut pas d'autres environnement tout aussi problématique - voire davantage - comme Flash, Silverlight ou les applet Java. Le Javascript est utilisé actuellement pour créer de vraies applications[4]. Dans ce cas, si l'on adhère aux principes du logiciel libre, il semble évident que ces applications Javascript non triviales doivent également être libres. Si c'est le cas, l'utilisateur devrait pouvoir exécuter une version modifiée à la place du code original. Certaines réactions ont dénoncé une position quelque peu extremiste de RMS. Cependant, son exposé est clair et je partage son point de vue : à partir du moment où l'on utilise une application, on peut exiger qu'elle soit libre. Le langage dans lequel l'application est écrite n'y change rien.
Cet essai a l'intéret de soulever le problème plus général du manque d'applications web libres. Il y fait allusion brièvement, en indiquant qu'un texte complémentaire lui serait dédié. Si je prend mon exemple personnel, j'essaie autant que possible d'utiliser des logiciels libres. J'installe des Debian GNU/Linux sur toutes mes machines (mes serveurs Gandi ou mes machines personnelles), et n'installe presque exclusivement des applications libres. Je dis bien "presque" car malheuresement dans certains cas, je ne peux m'en passer. Un exemple simple est flashplayer qui même s'il peut être en partie remplaceé par Gnash[5], reste parfois indispensable... je le regrette. Cependant j'utilise des services web. Et c'est là que s'illustre l'autre face du problème. J'utilise twitter qui n'a rien de libre, juste une API documentée. Paradoxalement j'utilise twidge comme client, qui lui est libre mais cela ne résout rien. Alors bien sûr, vous me direz, "utilise identi.ca qui a ouvert son code !"; ce n'est pas faux, mais je me heurte alors à un autre problème : la base utilisateur. Ce problème je l'ai déja rencontré avec la messagerie instantanée. Fervent promoteur de Jabber, jusqu'à installer un serveur[6] et commencer à designer un client[7], j'ai du me résoudre à me créer un compte MSN que j'utilise chaque jour pour discuter avec des amis. Dans le cas de MSN, si je décompose la pile logiciel, nous trouvons le serveur - et probablement les proxy -, le protocole, et enfin le client. De nombreux clients libres existent[8]. Pour les serveurs c'est autre chose puisqu'ils sont propriétaires et maintenus par Microsoft MSN. Et enfin du côté du protocole ce n'est pas mieux. Tout ceci est bien déprimant ! Mais finalement pour les applications est-ce vraiment mieux ? gmail, twitter, last.fm... que d'applications propriétaires ! On y gagne tout de même un protocole souvent standard (HTTP Rest ou autre) et une API documentée, mais pas libre. Cela a permis d'écrire des clients libres, et d'avoir le plaisir d'en trouver en Haskell (twidge).
Pourquoi vouloir une application web libre ? Et bien, ce sont les mêmes raisons que pour les autres logiciels. Je veux pouvoir le comprendre, l'adapter à mes besoins, le ré-utiliser pour d'autres projets. Le code, au même titre que des livres, représente du savoir. Du savoir appliqué certes, mais du savoir quand même. Les fondateurs des figures de proue du web2.0 rétorqueraient probablement qu'ils doivent garder leur avantage concurrentiel, leurs petits secrets et ne pas faciliter la l'apparition d'offres similaire qui utiliseraient la même base logicielle. Cet argument n'a rien de nouveau. Dans certains domaines, il est plausible. Elaborer un modèle économique viable, voire - osons-le - efficace, demande de la créativité. Il n'en demeure pas moins désuet à une époque où nombre de grands éditeurs[9] expriment leur attrait pour le logiciel libre. Ce serait naïf de les croire philanthropes, Ils voient dans le logiciel libre un modèle efficace qui répond à leurs besoins sur certains segments de marché. Dans son essai Open Source and the Commodization of Software[10], Ian Murdock[11] expose comment le logiciel libre s'est imposé de facto dans certains domaines. Cela s'est fait en partie en rendant le code source accessible facilement. Ensuite pour générer des revenus, des offres à valeur ajoutée sont construites au-delà du code source. Ses offres vont du conseil, à l'adaption du logiciel en passant par l'externalisation de l'exploitation du logiciel.
Ces voies me paraissent envisageables pour des applications web. Certaines entreprises ont décidé de les suivre. identi.ca propose un service hébergé. L'utilisateur n'a pas à se soucier de l'exploitation du logiciel - ici Laconica -. Un autre modèle consiste à implémenter en priorité les fonctionnalités demandées par les utilisateurs qui paient. La démarche repose alors sur l'adaption du logiciel aux besoins de l'utilisateur. Si certains voient dans le mouvement du logiciel libre un idéalisme forcené, il serait temps d'équilibrer cette vision et de comprendre les avantages économiques qu'il apporte. A suivre...
Notes
[1] fondateur du projet GNU et de la FSF, a initié les projets Emacs, GCC et GDB
[2] auteur entre autres de l'essai The Cathedral and the Bazaar, du livre The Art of Unix Programming (TAOUP) et des logiciels libres fetchmail, bogofilter et gpds
[3] 3 dollars ou 2.50 euros par mois
[4] il prend l'exemple de Google Docs dont le code Javascript obfusqué représente environ 500k
[5] par ailleurs classé dans les projets prioritaires de GNU
[6] malheuresement jabberd à l'époque
[7] repris par de très bonnes mains, ma contributions fût vraiment mineure
[8] j'utilise bitlbee et kopete
[9] Sun avec la libération de Java et de Solaris, ainsi que le rachat de MySQL, IBM par ses multiples contributions à des projets libres dont Linux et malgré quelques brevêts mal venus, et Apple
[10] Open Sources 2.0, O'Reilly, 2005
[11] Le ian de Debian, aujourd'hui chez Sun
Do you know 