Le WEB est un milieu où le logiciel libre est très présent. C'est assez logique puisque le WEB est né d'un ensemble de protocoles et de logiciels libres.

Sans le libre, le WEB n'existerait pas ou ne ressemblerait pas à "notre" WEB ;)

Lorsque l'on décide de monter un blog, un site vitrine, un site e-commerce, de nombreux outils librement téléchargeables sont à notre disposition.

Pourtant certains décident de développer (ou de faire développer) des solutions propriétaires sur mesure. Sont-elles plus complètes ? plus fiables ?

Je pense que c'est encore une histoire de philosophie et certains clichés sont malheureusement encore très présents. Si on analyse la plupart des problématiques, il est possible dans la majorité des cas de trouver un produit libre bien réalisé auquel il suffirait d'ajouter quelques modules disponibles (ou de les développer) pour arriver au résultat escompté. Je dis bien "dans la plupart des cas". Ce n'est pas la solution universelle à tous les besoins non plus.

Cependant pourquoi lorsqu'une solution libre existe, certains préfèrent le développement "from scratch" au risque de créer des bugs, d'avoir un outil moins performant etc ...

J'ai souvent entendu les mêmes discours à ce sujet.

1) La sécurité
Le libre est parfois perçu comme moins sécurisé. Le code est disponible, il serait donc plus simple pour un pirate de trouver une faille et de l'exploiter.
Ce n'est pas totalement faux. Lorsqu'on dispose du code, il est plus facile de trouver une faille. Mais lorsqu'une faille est découverte elle est corrigée extrêmement rapidement. Si l'équipe d'origine n'est pas assez réactive alors la communauté prend le relai et un patch est disponible en général quelques heures après la publication d'une faille. Dans le monde propriétaire, tant que l'éditeur ne se décide pas à publier une mise à jour, la faille est exploitable et en général plutôt bien exploitée :) Quelle solution préférez-vous ?

2) La qualité
Un logiciel libre est en général développé par plusieurs équipes différentes, avec une façon de programmer différente. Le code serait-il moins bon ? moins efficace ?
Je ne suis une fois de plus pas d'accord avec ce raisonnement là. Lorsqu'un projet libre est géré correctement (ce n'est pas le cas de tous les projets), une hiérarchie permet de suivre l'évolution du code et d'assurer unité globale. Le cas de Linux est un très bon exemple. On parle quand même d'un système d'exploitation est pas d'une petite application. C'est pourtant un des OS les plus fiables du marché ...
De plus lorsqu'on décide de mettre à disposition son code source, on s'applique :) Des milliers de développeurs vont pouvoir fouiner dans votre code et s'il est mal écrit le projet ne fera pas forcément long feu. Rien ne garantie qu'un code propriétaire est bien écrit puisqu'il est caché. Impossible de choisir un projet propriétaire pour la qualité de son code. Avec du libre on peut faire ce choix. Cela ne veut pas dire que tous les logiciels libres sont bien écrits mais en tout cas il est facile de le savoir.
De plus, d'autres développeurs vont pouvoir intervenir, améliorer le code, et en général ça va très très vite.

3) La pérennité
Ah ! le cliché n°1 ! Ce cliché a même deux niveaux. En effet certains logiciels libres sont développés à l'origine par une société (THELIA par exemple), d'autres n'ont aucun lien avec une société.
On peut donc entendre parfois "vous êtes une petite société, récente, si vous coulez on fait comment ?" ou aucune société ne gère le projet, qui me garantie que dans 2 ans, 3 ans il existera encore ?
Dans le premier cas, il est en effet difficile de savoir si une société sera toujours là dans 1 an, 2 ans, 3 ans ... Dans le second effectivement l'équipe de développeurs peut décider d'abandonner le projet.
Prenons le cas d'une société qui édite un logiciel propriétaire. Il n'y a pas plus de garantie qu'elle existera dans 1 an, 2 ans ou 3 ans. De plus si elle disparait, le produit disparaitra avec elle ou tout du moins restera à son stade d'évolution. Si personne ne rachète le produit avec son code source on se retrouve donc avec un outil figé sans aucune modification possible.
Dans le cas d'un projet libre c'est totalement différent. Une autre équipe pourra reprendre le projet, vous pourrez décider de payer un développeur pour faire évoluer votre produit. Le logiciel ne disparaitra pas avec la société ou l'équipe qui disparait. Je pense que c'est un sacré gage de pérennité personnellement.

4) Le support technique
Là aussi on retrouve les deux cas de figure. Société derrière le logiciel ou non. Dans le premier cas, pas de soucis puisque la société pourra assurer le support technique de son produit soit gratuitement (forum, wiki ...), soit en vendant tout simplement un service de support.
Dans le deuxième cas, on retrouve le forum, le wiki est les SSLL. Des sociétés de services en logiciel libres, compétentes qui seront capables d'assurer le support d'un logiciel libre.
Dans le premier cas de figure d'ailleurs, si vous ne souhaitez pas travailler avec la société à l'origine du projet (pour une raison quelconque), vous serez aussi en mesure de travailler avec une SSLL qui connait le produit. En plus vous n'êtes pas lié à la société de services avec laquelle vous travaillez, il est donc possible de faire jouer la concurrence.

Le but de cet article était tout simplement de montrer que tous les aprioris qui existent encore sur le libre (même s'ils tendent à disparaître progressivement) sont finalement très peu fondés. Je ne cherche en aucun à imposer le logiciel libre comme "solution universelle". Je n'utilise d'ailleurs pas que du logiciel libre. Chaque projet a ses propres problématiques et différentes solutions s'offrent en général pour y répondre. Le tout est de ne pas avoir de préjugé et d'analyser toutes les solutions qui vont sont proposées. Lorsque je vois certains budgets gaspillés par des organismes pour développer des solutions qui existent déjà et bien plus performantes, je trouve ça plutôt déplorable.

Et vous qu'en pensez-vous ?