lundi 27 février 2017

Open source : la base

Depuis longtemps, je constate qu'il y a une assez large incompréhension de ce qu'est le logiciel libre. Du coup, j'ai rédigé un petit article sur le sujet, histoire de dégrossir un peu le sujet.

Free ne veut pas dire gratuit

Je rentre directement dans le lard d'une fausse idée largement répandue. Le mouvement du logiciel libre est à l'origine anglo-saxon et dans la langue de Shakespeare on parle donc de Free Software. Le terme "free" peut avoir différentes traductions dont "gratuit". Cependant, ce n'est pas ce sens qu'il faut retenir ici, mais celui de liberté. Pour ceux qui en douteraient, voici un pointeur sur une saine lecture sur le site de la Free Software Foundation, un organisme qui promeut la diffusion de code source ouvert : https://www.fsf.org/about/what-is-free-software

Un logiciel "free" n'est pas dans le domaine public : quelqu'un en détient la propriété intellectuelle et son usage est soumis à une licence : vous devez respecter les conditions d'utilisation dictées par la licence, vous ne pouvez pas faire ce que vous voulez. Mais la logique qui prévaut à la rédaction de la licence est bien différente que dans le cas d'un logiciel propriétaire, et elle vous accorde beaucoup plus de droits et de libertés.

Un logiciel "free" est donc un logiciel dont vous pouvez, selon certaines conditions qui dépendent de la licence associée, utiliser le code bien sur mais également l'étudier, le modifier pour l'adapter à vos besoins ou encore le copier et le diffuser. C'est là la principale différence avec un logiciel "propriétaire" dont la licence ne vous permet que d'utiliser le logiciel (le code source n'est pas fourni, et quand bien même vous pourriez vous le procurer par décompilation, ce serait illégal) ; si vous constatez un bug, vous ne pouvez pas le corriger, si vous voulez améliorer une fonctionnalité, vous n'en avez pas le droit.

Un logiciel "free" peut tout à fait être payant. C'est d'ailleurs le modèle économique retenu par de nombreux acteurs de l'open source. Quand un tel acteur souhaite, pour des raisons X ou Y, générer des revenus grâce au logiciel qu'il a développé, il le distribue souvent selon deux modèles : une version gratuite assortie d'une licence présentant certaines restrictions qui en rendent l'usage impossible dans un cadre commercial, et une version payante assortie d'une autre licence levant les dîtes restrictions.

Certains acteurs de l'open source ne cherchent pas à se rémunérer (ils ont d'autres motivations, diverses et variées). D'autres proposent des services de consulting ou de support qui seront retenus par ceux pour qui l'outil est un élément critique (qui connaît mieux un produit que son développeur ?). Certains développent des compléments payants autour d'une base gratuite. D'autres enfin détournent quelque peu l'idée généreuse originale et proposent des versions open source très limitées qui n'ont que pour objet de pousser à l'achat d'une version payante (pot de miel).

Pluralité/Complexité des licences

Il n'existe pas un modèle de licence open source. Il en existe des dizaines, réparties en deux grandes familles. Et avec des différences qu'il est essentiel de comprendre

Précision utile : si vous développez un logiciel non commercial et à code source ouvert, vous n'avez probablement pas à vous soucier outre mesure des licences. C'est dans le cadre d'un développement commercial appuyé sur du code logiciel ouvert qu'il convient de prendre quelques précautions sous peine de sérieuses déconvenues, voire de désastre.

Dans les premiers temps de l'open source, de nombreuses fausses idées ont été diffusées, en particulier par les grandes sociétés commercialisant des logiciels commerciaux, afin d'effrayer les entreprises. Il en résulte malheureusement encore souvent des craintes infondées. Il n'est pas exceptionnel que cela constitue un frein à l'utilisation de logiciel libre dans certaines grandes entreprises peu au fait des subtilités à maîtriser. Les choses ont cependant évoluées ces dernières années, même Microsoft s'est mis à l'open source, et de nombreuses entreprises ont adopté l'open source comme levier d'innovation et de performance.

Il nous faut préciser le sens de "commercial" : c'est une application qui est commercialisée, distribuée, dont on peut acquérir un exemplaire. Un développement interne réalisé par une entreprise n'entre pas dans ce cadre. Une application commercialisée en mode SAAS étant non distribuée n'est pas non plus une application commerciale. Toutefois, nous développerons ce dernier point un peu plus loin.

Viralité de la licence

La viralité d'une licence définit le fait que le logiciel développé à l'aide du logiciel soumis à cette licence virale soit lui même obligatoirement à code source ouvert (le terme exact est copyleft).

En gros, si vous utilisez pour votre projet commercial, une librairie ou un framework open source qui a une licence virale, vous avez l'obligation de fournir votre code source. Du coup, n'importe qui peut prendre le fruit de votre travail et l'utiliser à son tour. Ce qui pose bien évidemment plusieurs problèmes majeurs : n'importe qui peut monter un commerce concurrent au votre avec un avantage économique majeur lié au fait qu'il n'aura pas supporté le coût de l'investissement initial (le développement du logiciel). 

C'est à ce type de licence virale (licences GPL principalement) que recourent les acteurs open source qui veulent générer des revenus par de la vente de licence. Si vous ne voulez pas diffuser votre code source et que vous voulez utiliser leur code, vous devez passer par une distribution payante assortie d'une licence non virale (licences BSD, ASF, MIT, MPL ...).

Conclusion ; il est nécessaire en cas de projet commercial de bien examiner la licence de toutes les librairies, frameworks, et autres éléments logiciels open source que vous prévoyez d'utiliser afin de vérifier leur viralité. 

Précision importante : un développement spécifique interne ne sera pas distribué et ne constitue pas un logiciel commercial, même si il est commandé et acheté à un prestataire externe.

Mode SAAS

Si vous ne savez pas ce qu'est le SAAS, vous pouvez lire cet article : Formes et intérêts du Cloud computing. Sinon, en résumé lapidaire, c'est la commercialisation d'une application mise à disposition sur Internet sur un modèle de location (facturation à l'usage).

La commercialisation d'application en mode SAAS étant une tendance assez lourde, il y a une facilité à contourner les règles du copyleft (utilisation à des fins commerciales de produits open source sous copyleft sans partage du code produit, ce qui est contraire à l'idée de partage de la connaissance derrière le mouvement open-source).

En réaction est apparue la licence AGPL qui ajoute des clauses spécifiques pour prévoir ce cas.

Conclusion

Le recours aux logiciels open-source amène de nombreux avantages mais comporte également quelques risques. Toute médaille à son revers. Si l'éditeur décide de changer de stratégie et de changer son modèle de licence à partir d'une certaine version, que ferez vous ? Si vous découvrez en cours de route que les fonctions incluses dans la version gratuite sont trop limitées et qu'il vous faut la version payante, que se passera il ? Si le développement du produit est interrompu, quelles conséquences pour vous ?

La gratuité, fréquente, du logiciel ne doit pas faire négliger les autres aspects du choix.

Chaque situation est différente et une réflexion doit être menée au cas par cas. Par exemple, dans le cas d'un développement spécifique, un des rôles de l'architecte applicatif est de faire les bons choix au regard du contexte, dans le cas d'un projet SI, il ne faudra pas négliger les coûts de montée en compétence des personnels de l'IT. Toute brique technique open source occupant un rôle central dans une architecture SI ou simplement applicative doit être envisagée sous de nombreux angles.

Les compétences techniques ne sont pas suffisantes pour une prise de décision éclairée. Des aspects juridiques et stratégiques sont à considérer.