Hugues Tavernier

Concepteur de sites internet et d’applications Web.
Hugues Tavernier

Apache et NGINX

Ces serveurs web libres répondent à eux deux aux requêtes de 70% des sites internet du monde entier.

Microsoft a annoncé la fin de son support de Windows 7. Le code source de son système d'exploitation n'étant pas ouvert, aucun développeur ne pourra maintenir au minimum les mises à jour de celui-ci. Les utilisateurs n'ont donc pas d'autre choix que de migrer vers une solution alternative. On parle d'obsolescence logicielle.

Framasoft

L'un des principaux projets de cette association est de promouvoir les logiciels libres dans notre quotidien.

En guise de présentation, je vais tâcher de traiter un sujet qui me tient à cœur et qui oriente ma pratique et mes choix dans l'informatique en général. Cela vous épargnera la description précise de mes compétences qui aurait pu constituer une page d’accueil à part entière mais qui me semblait trop abrupte pour démarrer – je ne manquerai toutefois pas de répondre à vos interrogations à ce sujet, le cas échéant.

Je vous parlerai donc des notions de « liberté », de « code source ouvert » et de « gratuité », puis terminerai par quelques éléments de déontologie que je m'efforce de respecter afin de garantir une cohérence avec mes aspirations.

Pourquoi utiliser des technologies libres ?

Définissons d'abord la notion de « code source ouvert » qui est une liberté dont bénéficie le logiciel libre.

Qu'est-ce qu'un logiciel Open Source ?

Si l'on se limite à sa traduction littérale, un logiciel Open Source autorise les utilisateurs finaux à disposer de son code source.

Le code est donc transparent, n'importe qui peut l'auditer pour vérifier ce qu'il fait. D'un point de vue éthique cela favorise le partage de connaissances.

Qu'est-ce qu'un logiciel libre ?

Un logiciel libre est tout d'abord un logiciel Open Source. C'est une condition nécessaire mais pas suffisante. Trois autres principes viennent s'ajouter afin de décrire pleinement la philosophie de ce terme.

  • la liberté de faire fonctionner le programme comme vous le voulez, pour n'importe quel usage.
  • la liberté de redistribuer des copies, donc d'aider les autres.
  • la liberté de distribuer aux autres des copies de vos versions modifiées ; en faisant cela, vous donnez à toute la communauté une possibilité de profiter de vos changements.

On porte une attention plus importante au code que l'on écrit, que tout le monde pourra consulter ensuite. Il est susceptible d'être relu et corrigé par d'autres développeurs. Les problèmes de sécurité ont donc plus de chance d'être résolus. Enfin, un projet libre a plus de chances de survivre dans le temps. Il peut facilement être repris par d'autres, le développement de fonctionnalités tierces est facilité.

Les fichiers sont enregistrés dans un format ouvert, garantissant une grande inter-opérabilité entre les logiciels. Nous sommes indépendants face à un logiciel donné et pouvons facilement faire migrer nos données vers un autre logiciel.

Et la gratuité ?

La gratuité est une troisième notion qui vient tout perturber. Gratuit n'est pas synonyme de libre et ces quelques exemples vont vous le prouver.

  • Adobe Photoshop : ce logiciel de retouche d'image n'est pas gratuit, on ne peut pas disposer de son code source et il est encore moins libre.
  • Google Chrome : nous n'avons pas accès à son code source et le navigateur n'est pas libre mais par contre il est gratuit.
  • De nombreuses extensions pour WordPress (pour n'en citer qu'un) proposent une version allégée de leurs fonctionnalités ou bien avec des publicités. On retrouve ici un modèle gratuit avec un code source accessible mais qui ne partage pas les valeurs du logiciel libre.
  • Dans la même lignée, ces extensions peuvent nous amener à payer pour obtenir la version complète.
  • Vlc : ce lecteur audio/vidéo est gratuit, open source et libre. Il a presque 3 milliards de téléchargements à son actif en 2020.

J'utilise donc essentiellement des technologies libres. Lorsque cela est impossible, je me tourne vers des solutions au moins Open Source. Ceci est valable aussi bien dans les outils de développement qu'au niveau des modules et bibliothèques qui intégreront votre application.

Un autre avantage est que les sites que je conçois peuvent être repris plus tard sans contrainte logicielle, ce qui vous laisse libre de continuer à travailler avec moi ou avec un autre prestataire sans repartir de zéro.

OpenStreetMap

C'est un projet communautaire qui vise à cartographier le monde. L'ensemble des données est librement utilisable.

Des sites accessibles et durables

Du contenu stable

Avez-vous déjà consulté le site Wayback Machine ? Il vous permet de naviguer sur le web tel qui était il y a 5, 10, 15 ans. Le monde de l'internet évolue tellement rapidement que les sites internet ont constamment besoin d'être mis à jour. Certains sites vieux de plus d'une dizaine d'années continuent d'être fonctionnels avec un look intemporel alors que d'autres ont manifestement changé d'apparence beaucoup de fois. En faute, l'utilisation d'une technologie qui a disparu (Flash par exemple), un environnement de programmation qui n'est plus maintenu ou simplement un design qui a fait son temps. Aussi certains choix faits par le développeur au moment de la conception permettent d'accélérer ou de ralentir ce processus. L'utilisation de nouvelles technologies qui n'ont pas encore fait leurs preuves est attrayante mais peut être risquée.
L'objectif est de concilier l'utilisation de technologies audacieuses et le choix de solutions robustes qui ont déjà fait leurs preuves.

Du contenu accessible

Afin de n'oublier personne, tout projet développé nécessitant une configuration récente s'accompagne de la mise en place d'une solution alternative. Prenons l'exemple de ce site et de quelques unes de ses fonctionnalités :

  • Utilisation massive de javascript, rendu des pages côté navigateur et préchargement du contenu pour diminuer la latence entre 2 pages.
    Tentez l'expérience de désactiver javascript : le rendu est relayé côté serveur et la navigation n'est pas perturbée.
  • Utilisation de librairies lourdes comme threejs qui emploie l'accélération de la carte graphique pour afficher des animations.
    non seulement ces librairies ne sont pas téléchargées lorsque le site est consulté avec un mobile mais des images de remplacement sont employées.