bas de page
 

Des routes et des ponts (5, 6 et 7)

Nadia Eghbal
 

Voici un nouveau chapitre de l'ouvrage de Nadia Eghbal Des routes et des ponts que le groupe Framalang vous traduit semaine après semaine (si vous avez raté les épisodes précédents). Elle brosse un rapide historique qui permet de distinguer Libre et open source puis établit une liste d'avantages du code dont les sources sont ouvertes et librement modifiables.

Une rapide histoire des logiciels publiquement disponibles et de leurs créateurs.

Vers l'open source

   Bien que nous ayons utilisé l'expression « free software » pour désigner des logiciels qui ne coûtaient rien à leurs utilisateurs, il faudrait plutôt employer l'expression « logiciel libre ». Cette expression aux riches connotations fait référence en particulier aux propriétés des licences avec lesquelles les logiciels sont publiés. Les partisans du logiciel libre soulignent le fait que « free » doit être compris sous l'angle de la liberté politique et non sous celui de la gratuité. Parfois, c'est le terme espagnol « libre » qui est utilisé pour marquer cette distinction (à la différence de « gratis » qui signifie gratuit).

   Pendant les années 1970, lorsque les ordinateurs n'en étaient qu'à leurs balbutiements, les développeurs devaient construire leurs propres ordinateurs et écrire eux-mêmes des logiciels adaptés. Les logiciels n'étaient pas encore standardisés et n'étaient pas considérés comme des produits rentables.

   En 1981, IBM a présenté le « IBM PC » pour « Personal Computer » (N.D.T. « ordinateur personnel »), qui a permis au grand public d'accéder au matériel informatique. En quelques années, les ordinateurs construits sur mesure tombèrent en déclin au fur et à mesure que tout le monde adoptait le standard IBM. IBM est ainsi devenu l'ordinateur le plus présent au sein d'un marché fortement fracturé : en 1986, IBM avait conquis plus de la moitié du marché des ordinateurs personnels.

   Avec la venue de matériel standardisé est apparue la possibilité de créer des logiciels standardisés. Soudain, tout le monde avait pour objectif de créer un business autour des logiciels. IBM a engagé une société inconnue à l'époque sous le nom de Microsoft pour écrire le système d'exploitation de son nouveau PC. Ce système d'exploitation, MS-DOS, fut publié en 1981. D'autres sociétés lui emboîtèrent le pas, proposant des logiciels sous licences commerciales. Ces licences empêchaient l'utilisateur de copier, modifier ou redistribuer les logiciels.

   Il existe encore aujourd'hui de nombreux logiciels propriétaires comme Adobe Photoshop, Microsoft Windows, ou GoToMeeting par exemple. Alors que ces programmes propriétaires peuvent générer du profit pour les entreprises qui créent et distribuent ces produits, leurs restrictions limitent leur portée et leur diffusion. Toute modification apportée au design ou à la conception du programme doit provenir de l'entreprise elle-même. De plus, les logiciels propriétaires sont chers, ils coûtent souvent plusieurs centaines de dollars et n'autorisent l'acheteur dûment identifié à utiliser qu'une seule et unique copie.

   Naturellement, certains informaticiens se sont sentis préoccupés par la direction fermée et propriétaire que prenaient les logiciels, estimant que cela nuisait au véritable potentiel du logiciel. Richard Stallman, un programmeur au laboratoire d'intelligence artificielle du MIT, a particulièrement ressenti la nécessité pour le logiciel d'être libre et modifiable.

   ;Au cours des années qui suivirent, comme plusieurs de ses collègues se mettaient à travailler sur des projets de logiciels propriétaires, Stallman a estimé qu'il ne pouvait ignorer la situation plus longtemps. En 1983, il a lancé GNU, un système d'exploitation libre [1], et ce faisant, a déclenché ce qui est devenu le « mouvement du logiciel libre », qui a galvanisé un groupe de personnes qui croyaient que les logiciels pourraient avoir une plus grande portée et bénéficier à la société si ceux-ci étaient mis à disposition librement. Stallman a fondé plus tard la Free Software Foundation [2] en 1985, afin de soutenir GNU ainsi que d'autres projets de logiciels libres.


Gnou par Benjamin Hollis (CC BY 2.0).

   La Free Software Foundation définit le logiciel libre comme « un logiciel qui donne à l'utilisateur la liberté de le partager, l'étudier et le modifier ». GNU définit quatre libertés [3] associées à de tels logiciels :

Un programme est un logiciel libre si vous, en tant qu'utilisateur de ce programme, avez les quatre libertés essentielles :

  • la liberté d'exécuter le programme comme vous voulez, pour n'importe quel usage (liberté 0) ;
  • la liberté d'étudier le fonctionnement du programme, et de le modifier pour qu'il effectue vos tâches informatiques comme vous le souhaitez (liberté 1) ; l'accès au code source est une condition nécessaire ;
  • la liberté de redistribuer des copies, donc d'aider votre voisin (liberté 2) ;
  • la liberté de distribuer aux autres des copies de vos versions modifiées (liberté 3) ; en faisant cela, vous donnez à toute la communauté une possibilité de profiter de vos changements ; l'accès au code source est une condition nécessaire.

   Le mouvement du logiciel libre a été et continue d'être profondément engagé dans la défense d'intérêts sociaux. En 1998, lorsque Netscape libéra le code source de son navigateur populaire, le débat commença à passer de la politique à la technologie.

   Certains technologues pensaient que se concentrer sur les bénéfices pratiques des logiciels libres permettrait de diffuser le message associé à un public plus large.

   Ils ont par exemple souligné que le logiciel libre était moins cher à créer et qu'il permettait d'obtenir une meilleure qualité car le public pouvait trouver des bogues et contribuer en proposant des correctifs. Ce type de pragmatisme se détachait de l'obligation morale exprimée par Stallman et ses partisans quant à l'obligation de promouvoir le logiciel libre. Ces technologues se sont réunis à Palo Alto pour une séance de discussion stratégique.

   Christine Peterson, une spécialiste des nanotechnologies [4] qui était présente suggéra l'expression « open source ».

   Peu de temps après, deux personnes qui assistaient aussi à cette rencontre, Bruce Perens et Éric Raymond, créèrent l'Open Source Initiative [5].

   Un logiciel dont le code source est disponible publiquement sera qualifié d'« open source ». C'est un peu comme avoir une voiture et être capable d'ouvrir le capot pour connaître comment elle fonctionne plutôt que d'avoir le moteur verrouillé et inaccessible. Les licences open source incluent toujours des clauses qui permettent au public d'utiliser, de modifier et de redistribuer le code. Sous cet angle, il n'y pas de différence juridique entre les licences libres et les licences open source. En fait, certains font référence à l'open source comme une campagne de publicité pour le logiciel libre.

   Cependant, la distinction la plus importante entre ces mouvements reste la culture qu'ils ont fait naître. Le mouvement du logiciel open source s'est écarté des aspects socio-politiques du mouvement du logiciel libre pour se concentrer sur les bénéfices pratiques du développement logiciel et encourager des applications créatives et commerciales plus larges. À ce propos, Stallman a écrit : « l'open source est une méthodologie de développement ; le logiciel libre est un mouvement de société. »

   Bien que « logiciel libre » et « logiciel open source » soient souvent discutés ensemble, ils sont politiquement distincts, le premier étant plus étroitement lié à l'éthique et le second au pragmatisme (dans la suite de cet ouvrage on utilisera le terme « open source » afin de souligner son rôle essentiel dans l'infrastructure logicielle.) L'open source a ouvert un espace permettant l'émergence de différents styles et façons de développer du logiciel, libérés des complexités éthiques. Une organisation peut rendre son code public, mais n'accepter des changements que de certains contributeurs. Une autre organisation peut exiger que le code soit développé en public et accepter des changements de n'importe qui, de manière à ce que davantage de personnes puissent prendre part au processus. En 1997, Raymond a écrit un essai influent intitulé La cathédrale et le bazar [6] (publié plus tard sous la forme d'un livre, en 1999) qui explore ces divers modes de développement.

   Aujourd'hui, l'open source s'est répandue dans le monde du logiciel pour un certain nombre de raisons, liées à la fois à l'efficacité et au coût. C'est aussi comme cela qu'est bâtie une bonne partie de notre infrastructure numérique. Nous avons discuté de la façon dont la disponibilité de ces logiciels a bénéficié à toute la société, mais l'open source a aussi beaucoup apporté à ses créateurs.

L'open source revient moins cher à créer

   Avant que les logiciels open source n'existent, les entreprises high-tech considéraient les programmes comme n'importe quel autre produit payant : une équipe d'employés développait le produit en interne puis on le vendait au grand public. Ce qui représentait un modèle économique très clair, mais impliquait aussi des coûts de développement accrus. Les logiciels propriétaires nécessitent une équipe payée à plein temps pour assurer le développement, ce qui inclut des développeurs, des designers, des commerciaux et des juristes. Il est bien moins coûteux de simplement confier le développement à une communauté de développeurs bénévoles qui conçoivent et assurent la maintenance du produit.

L'open source est plus facile à diffuser

   On a plus envie d'adopter un logiciel dont l'usage est gratuit et de le modifier, plutôt qu'un logiciel dont la licence coûte des centaines de dollars et qui a été développé dans une boîte noire. Non seulement les développeurs vont vouloir l'utiliser sans frais, mais ils pourraient même inciter leurs amis à l'utiliser eux aussi, ce qui va amplifier sa diffusion.

L'open source est plus ouvert à la personnalisation

   Les logiciels open source sont copiables et adaptables aux besoins de chacun, avec différents degrés de permission. Si un développeur veut améliorer un logiciel existant, il ou elle peut copier le projet et le modifier (une pratique appelée « forker » en franglais).

   Beaucoup de projets à succès ont commencé comme une modification de logiciels existants, par exemple WordPress (gestionnaire de contenu utilisé par 23 % des sites web dans le monde), PostgreSQL (l'une des bases de données parmi les plus populaires et dont l'adoption est croissante dans le monde entier), Ubuntu (un système d'exploitation) et Firefox (un des navigateurs web parmi les plus populaires). Dans le cas de WordPress, le logiciel a été forké depuis un projet existant appelé b2 (aussi connu sous le nom de cafelog). Deux développeurs, Matt Mullenweg et Mike Little, ont décidé qu'ils souhaitaient une meilleure version de b2 et ont donc forké le projet.

   Mullenberg a décidé de copier b2, plutôt qu'un autre projet appelé TextPattern, car les licences b2 étaient plus permissives. Son idée d'origine, de 2003, est décrite ci-dessous :

« Que faire ? Bon, TextPattern ressemble à tout ce que je rêve d'avoir, mais ça n'a pas l'air d'être sous une licence suffisamment en accord avec mes principes. Heureusement, b2/cafelog est sous GPL [GNU General Public Licence, une licence de logiciel libre], ce qui veut dire que je peux utiliser les lignes de code existantes pour créer un fork/une copie. [...]

Ce travail ne sera jamais perdu, car si je disparais de la surface de la Terre dans un an, tout le code que j'aurai écrit sera accessible par tout le monde ; et si quelqu'un d'autre veut continuer le travail, libre à lui. »

   Si le logiciel était développé dans un environnement fermé et propriétaire, les développeurs n'auraient aucune possibilité de le modifier, à moins de travailler dans l'entreprise propriétaire. S'ils essayaient de réaliser leur propre version qui imite l'original, ils s'exposeraient à des poursuites en lien avec la propriété intellectuelle. Avec les logiciels open source, le développeur peut simplement modifier le logiciel lui-même et le distribuer publiquement, comme l'a fait Mullenweg. Les logiciels open source permettent ainsi une prolifération rapide des idées.

L'open source facilite l'adaptation des employés

   Il faut du temps pour étudier une ressource logicielle, qu'il s'agisse d'un nouveau langage de programmation ou d'un nouveau framework. Si toutes les entreprises utilisaient leurs propres outils propriétaires, les développeurs auraient moins envie de changer d'entreprise, parce que leurs compétences techniques ne seraient applicables que sur leur lieu de travail actuel.

   Il leur faudrait de nouveau apprendre à utiliser les outils propres à leur nouveau lieu de travail.

   Quand les entreprises utilisent la technologie open source, un développeur a un ensemble de compétences réutilisables, ce qui lui donne plus de libertés pour travailler là où il préfère. Par exemple, de nombreuses entreprises utilisent le même langage de programmation Ruby pour leurs logiciels. De plus, si le produit des entreprises lui-même est open source, la production appartient autant au développeur qu'à l'entreprise. Le développeur peut emporter son travail avec lui s'il décide de quitter l'entreprise (alors qu'il pourrait par exemple être au contraire limité par une clause de confidentialité si le code était propriétaire). Tous ces bénéfices offrent plus de moyens d'actions aux employés par rapport à ce que ces derniers auraient eu avec un logiciel propriétaire. De nos jours, de nombreuses entreprises mettent en avant leur utilisation de logiciels open source comme tactique de recrutement, parce que cette utilisation favorise le développeur.

L'open source est potentiellement plus stable et plus sûre

   Théoriquement, quand un projet de logiciel a de nombreux contributeurs et une communauté florissante, le code devrait être moins vulnérable aux failles de sécurité et aux interruptions de service. En effet, dans ce cas, on devrait avoir plus de personnes révisant le code, cherchant des bugs et résolvant tous les problèmes repérés.

   Dans un environnement de logiciel propriétaire au contraire, seule l'équipe en charge du développement du code verra ce dernier. Par exemple, au lieu de 20 personnes pour examiner le code d'Oracle, un projet open source populaire pourrait avoir 2 000 volontaires qui recherchent les failles du code (remarquons que cette croyance n'est pas toujours en accord avec la réalité, et a parfois créé le problème inverse : on a pu surestimer le nombre de personnes vérifiant des logiciels open source, alors même qu'en réalité personne n'en prenait la responsabilité. Ceci sera discuté dans une prochaine section).

   Le logiciel open source a clairement certains avantages. Comment ces projets s'inscrivent-ils collectivement dans un écosystème plus large ?

 

Créer une infrastructure numérique

Dans ce nouveau chapitre de l'ouvrage de Nadia Eghbal Des routes et des ponts que le groupe Framalang vous traduit semaine après semaine (si vous avez raté les épisodes précédents), l'autrice [7] établit cette fois-ci une comparaison éclairante entre l'infrastructure physique dont nous dépendons sans toujours en avoir conscience et l'infrastructure numérique dont la conception et le processus sont bien différents.

Qu'est-ce qu'une infrastructure numérique et comment est-elle construite ?

   Dans un chapitre précédent de ce rapport, nous avons comparé la création d'un logiciel à la construction d'un bâtiment. Ces logiciels publiquement disponibles contribuent à former notre infrastructure numérique. Pour comprendre ce concept, regardons comment les infrastructures physiques fonctionnent.

   Tout le monde dépend d'un certain nombre d'infrastructures physiques qui facilitent notre vie quotidienne. Allumer les lumières, aller au travail, faire la vaisselle : nous ne pensons pas souvent à l'endroit d'où viennent notre eau ou notre électricité, mais heureusement que nous pouvons compter sur les infrastructures physiques. Les partenaires publics et privés travaillent de concert pour construire et maintenir nos infrastructures de transport, d'adduction des eaux propres et usées, nos réseaux d'électricité et de communication.

   De même, même si nous ne pensons pas souvent aux applications et aux logiciels que nous utilisons quotidiennement, tous utilisent du code libre et public pour fonctionner. Ensemble, dans une société où le numérique occupe une place croissante, ces projets open source forment notre infrastructure numérique. Toutefois, il existe plusieurs différences majeures entre les infrastructures physiques et numériques, qui affectent la manière dont ces dernières sont construites et maintenues. Il existe en particulier des différences de coût, de maintenance, et de gouvernance.

Les infrastructures numériques sont plus rapides et moins chères à construire

   C'est connu, construire des infrastructures matérielles coûte très cher. Les projets sont physiquement de grande envergure et peuvent prendre des mois ou des années à réaliser.

   Le gouvernement fédéral des États-Unis a dépensé 96 milliards de dollars en projets d'infrastructure en 2014 et les gouvernements des différents états ont dépensé au total 320 milliards de dollars cette même année. Un peu moins de la moitié de ces dépenses (43 pour cent) a été affectée à de nouvelles constructions ; le reste a été dépensé dans des opérations de maintenance de l'infrastructure existante [8].

   Proposer puis financer des projets de nouvelles infrastructures physiques peut être un processus politique très long. Le financement des infrastructures de transport a été un sujet délicat aux États-Unis d'Amérique au cours de la dernière décennie lorsque le gouvernement fédéral a été confronté à un manque de 16 milliards de dollars pour les financer.

   Le Congrès a récemment voté la première loi pluriannuelle de financement des transports depuis 10 ans, affectant 305 milliards de dollars aux autoroutes et autres voies rapides après des années d'oppositions politiques empêchant la budgétisation des infrastructures au-delà de deux années [9].

   Même après qu'un nouveau projet d'infrastructure a été validé et a reçu les fonds nécessaires, il faut souvent des années pour le terminer, à cause des incertitudes et des obstacles imprévus auxquels il faut faire face.

   Dans le cas du projet Artère Centrale-Tunnel à Boston, dans le Massachusetts, connu aussi sous le nom de Big Dig [10], neuf ans se sont écoulés entre la planification et le début des travaux. Son coût prévu était de 2,8 milliards de dollars, et il devait être achevé en 1998. Finalement, le projet a coûté 14,6 milliards de dollars et n'a pas été terminé avant 2007, ce qui en fait le projet d'autoroute le plus cher des États-Unis.

   En revanche, les infrastructures numériques ne souffrent pas des coûts associés à la construction des infrastructures physiques comme le zonage [11] ou l'achat de matériels. Il est donc plus facile pour tout le monde de proposer une nouvelle idée et de l'appliquer en un temps très court. MySQL, le second système [12] de gestion de base de données le plus utilisé dans le monde et partie intégrante d'une collection d'outils indispensables qui aidèrent à lancer le premier boum technologique, fut lancé par ses créateurs, Michael Widenius & David Axmark, en mai 1995. Ils mirent moins de deux années à le développer [13].

   Il a fallu à Ruby [14], un langage de programmation, moins de trois ans entre sa conception initiale en février 1993 et sa publication en décembre 1995. Son auteur, l'informaticien Yukihiro Matsumoto, a décidé de créer le langage après une discussion avec ses collègues.

Les infrastructures numériques se renouvellent fréquemment

   Comme l'infrastructure numérique est peu coûteuse à mettre en place, les barrières à l'entrée sont plus basses et les outils de développement changent plus fréquemment.

   L'infrastructure physique est construite pour durer, c'est pourquoi ces projets mettent si longtemps à être planifiés, financés et construits. Le métro de Londres [15], le système de transport en commun rapide de la ville, fut construit en 1863 ; les tunnels creusés à l'époque sont encore utilisés aujourd'hui.

   Le pont de Brooklyn, qui relie les arrondissements de Brooklyn et de Manhattan à New York City, fut achevé en 1883 et n'a pas subi de rénovations majeures avant 2010, plus de cent ans plus tard. L'infrastructure numérique nécessite non seulement une maintenance et un entretien fréquents pour être compatible avec d'autres logiciels, mais son utilisation et son adoption changent également fréquemment. Un pont construit au milieu de New York City aura un usage garanti et logique, en proportion de la hausse ou la diminution de la population. Mais un langage de programmation ou un framework peut être extrêmement populaire durant plusieurs années, puis tomber en désuétude lorsque apparaît quelque chose de plus rapide, plus efficace, ou simplement plus à la mode.

   Par exemple, le graphique ci-dessous montre l'activité des développeurs de code source selon plusieurs langages différents. Le langage C, l'un des langages les plus fondamentaux et les plus utilisés, a vu sa part de marché diminuer alors que de nouveaux langages apparaissaient. Python et JavaScript, deux langages très populaires en ce moment, ont vu leur utilisation augmenter régulièrement avec le temps. Go, développé en 2007, a connu plus d'activité dans les dernières années.


Copie d'écran du site https://www.openhub.net/languages/compare prise le 23/10/2016.

   Tim Hwang, dirigeant du Bay Area Infrastructure Observatory, qui organise des visites de groupe sur des sites d'infrastructures physiques, faisait remarquer la différence dans une interview de 2015 [16] donnée au California Sunday Magazine :

« Beaucoup de membres de notre groupe travaillent dans la technologie, que ce soit sur le web ou sur des logiciels. En conséquence, ils travaillent sur des choses qui ne durent pas longtemps. Leur approche c'est 'On a juste bidouillé ça, et on l'a mis en ligne' ou : 'On l'a simplement publié, on peut travailler sur les bogues plus tard'. Beaucoup d'infrastructures sont construites pour durer 100 ans. On ne peut pas se permettre d'avoir des bogues. Si on en a, le bâtiment s'écroule. On ne peut pas l'itérer. C'est une façon de concevoir qui échappe à l'expérience quotidienne de nos membres. »

   Cependant, comme l'infrastructure numérique change très fréquemment, les projets plus anciens ont plus de mal à trouver des contributeurs, parce que beaucoup de développeurs préfèrent travailler sur des projets plus récents et plus excitants. Ce phénomène est parfois référencé comme le « syndrome de la pie » [17] chez les développeurs, ces derniers étant attirés par les choses « nouvelles et brillantes », et non par les technologies qui fonctionnent le mieux pour eux et pour leurs utilisateurs.

Les infrastructures numériques n'ont pas besoin d'autorité organisatrice pour déterminer ce qui doit être construit ou utilisé

   En définitive, la différence la plus flagrante entre une infrastructure physique et une infrastructure numérique, et c'est aussi un des défis majeurs pour sa durabilité, c'est qu'il n'existe aucune instance décisionnelle pour déterminer ce qui doit être créé et utilisé dans l'infrastructure numérique. Les transports, les réseaux d'adduction des eaux propres et usées sont généralement gérés et possédés par des collectivités, qu'elles soient fédérales, régionales ou locales. Les réseaux électriques et de communication sont plutôt gérés par des entreprises privées. Dans les deux cas, les infrastructures sont créées avec une participation croisée des acteurs publics et privés, que ce soit par le budget fédéral, par les entreprises privées ou les contributions payées par les usagers.

   Dans un État stable et développé, nous nous demandons rarement comment une route est construite ou un bâtiment électrifié. Même pour des projets financés ou propriétés du privé, le gouvernement fédéral a un intérêt direct à ce que les infrastructures physiques soient construites et maintenues.

   De leur côté, les projets d'infrastructures numériques sont conçus et construits en partant du bas. Cela ressemble à un groupe de citoyens qui se rassemblent et décident de construire un pont ou de créer leur propre système de recyclage des eaux usées. Il n'y a pas d'organe officiel de contrôle auquel il faut demander l'autorisation pour créer une nouvelle infrastructure numérique.

   Internet lui-même possède deux organes de contrôle qui aident à définir des standards : l'IETF (Internet Engineering Task Force) et le W3C (World Wide Web Consortium). L'IETF aide à développer et définit des standards recommandés sur la façon dont les informations sont transmises sur Internet. Par exemple, ils sont la raison pour laquelle les URL commencent par « HTTP ». Ils sont aussi la raison pour laquelle nous avons des adresses IP – des identifiants uniques assignés à votre ordinateur lorsqu'il se connecte à un réseau. À l'origine, en 1986, il s'agissait d'un groupe de travail au sein du gouvernement des USA mais l'IETF est devenue une organisation internationale indépendante en 1993.

   L'IETF elle-même fonctionne grâce à des bénévoles et il n'y a pas d'exigences pour adhérer : n'importe qui peut joindre l'organisation en se désignant comme membre. Le W3C (World Wide Web Consortium) aide à créer des standards pour le World Wide Web. Ce consortium a été fondé en 1994 par Tim Berners-Lee. Le W3C a tendance à se concentrer exclusivement sur les pages web et les documents (il est, par exemple, à l'origine de l'utilisation du HTML pour le formatage basique des pages web). Il maintient les standards autour du langage de balisage HTML et du langage de formatage de feuilles de style CSS, deux des composants de base de n'importe quelle page web. L'adhésion au W3C, légèrement plus formalisée, nécessite une inscription payante. Ses membres vont des entreprises aux étudiants en passant par des particuliers.

   L'IETF et le W3C aident à gérer les standards utilisés par les pièces les plus fondamentales d'Internet, mais la couche du dessus – les choix concernant le langage utilisé pour créer le logiciel, quels frameworks utiliser pour les créer, ainsi que les bibliothèques à utiliser – sont entièrement autogérés dans le domaine public (bien entendu, de nombreux projets de logiciels propriétaires, particulièrement ceux qui sont régis par de très nombreuses normes, tels que l'aéronautique ou la santé peuvent avoir des exigences concernant les outils utilisés. Ils peuvent même développer des outils propriétaires pour leur propre utilisation).

   vec les infrastructures physiques, si le gouvernement construit un nouveau pont entre San Francisco et Oakland, ce pont sera certainement utilisé. De la même façon, lorsque le W3C décide d'un nouveau standard, tel qu'une nouvelle version de HTML, il est formellement publié et annoncé. Par exemple, en 2014, le W3C a annoncé HTML 5, la première révision majeure de HTML depuis 1997, qui a été développé pendant sept ans.

   En revanche, lorsqu'un informaticien souhaite créer un nouveau langage de programmation, il ou elle est libre de le publier et ce langage peut ou peut ne pas être adopté. La barre d'adoption est encore plus basse pour les frameworks et bibliothèques : parce qu'ils sont plus faciles à créer, et plus facile pour un utilisateur à apprendre et implémenter, ces outils sont itérés plus fréquemment.

   Mais le plus important c'est que personne ne force ni même n'encourage fortement quiconque à utiliser ces projets. Certains projets restent plus théoriques que pratiques, d'autres sont totalement ignorés. Il est difficile de prédire ce qui sera véritablement utilisé avant que les gens ne commencent à l'utiliser.

   Les développeurs aiment se servir de l'utilité comme indicateur de l'adoption ou non d'un projet. Les nouveaux projets doivent améliorer un projet existant, ou résoudre un problème chronique pour être considérés comme utiles et dignes d'être adoptés. Si vous demandez aux développeurs pourquoi leur projet est devenu si populaire, beaucoup hausseront les épaules et répondront : « C'était la meilleure chose disponible ». Contrairement aux startups technologiques, les nouveaux projets d'infrastructure numérique reposent sur les effets de réseau pour être adoptés par le plus grand nombre.

   L'existence d'un groupe noyau de développeurs motivés par le projet, ou d'une entreprise de logiciels qui l'utilise, contribue à la diffusion du projet. Un nom facilement mémorisable, une bonne promotion, ou un beau site Internet peuvent ajouter au facteur « nouveauté » du projet. La réputation d'un développeur dans sa communauté est aussi un facteur déterminant dans la diffusion d'un projet.

   Mais en fin de compte, une nouvelle infrastructure numérique peut venir d'à peu près n'importe où, ce qui veut dire que chaque projet est géré et maintenu d'une façon qui lui est propre.

 

Comment les projets d'infrastructure numérique
sont-ils gérés et maintenus ?

Une question épineuse pour les projets libres et open source est leur maintenance à long terme, et bien évidemment les ressources, tant financières qu'humaines, que l'on peut y consacrer. Tel est le sujet qu'aborde ce nouveau chapitre de l'ouvrage de Nadia Eghbal Des routes et des ponts que le groupe Framalang vous traduit semaine après semaine (si vous avez raté les épisodes précédents).

Elle examine ici une série de cas de figures en fonction de l'origine de l'origine projet.

   Nous avons établi que les infrastructures numériques sont aussi nécessaires à la société moderne que le sont les infrastructures physiques. Bien qu'elles ne soient pas sujettes aux coûts élevés et aux obstacles politiques auxquels sont confrontées ces dernières, leur nature décentralisée les rend cependant plus difficiles à cerner. Sans une autorité centrale, comment les projets open source trouvent-ils les ressources dont ils ont besoin ?

   En un mot, la réponse est différente pour chaque projet. Cependant, on peut identifier plusieurs lieux d'où ces projets peuvent émaner : au sein d'une entreprise, via une startup, de développeurs individuels ou collaborant en communauté.

Au sein d'une entreprise

   Parfois, le projet commence au sein d'une entreprise. Voici quelques exemples qui illustrent par quels moyens variés un projet open source peut être soutenu par les ressources d'une entreprise :

Go [18], le nouveau langage de programmation évoqué précédemment, a été développé au sein de Google en 2007 par les ingénieurs Robert Griesemer, Rob Pike et Ken Thompson, pour qui la création de Go était une expérimentation. Go est open source et accepte les contributions de la communauté dans son ensemble. Cependant, ses principaux mainteneurs sont employés à plein temps par Google pour travailler sur le langage.

React [19] est une nouvelle bibliothèque JavaScript dont la popularité grandit de jour en jour.

   React a été créée par Jordan Walke, ingénieur logiciel chez Facebook, pour un usage interne sur le fil d'actualités Facebook. Un employé d'Instagram (qui est une filiale de Facebook) a également souhaité utiliser React, et finalement, React a été placée en open source, deux ans après son développement initial [20].

   Facebook a dédié une équipe d'ingénieurs à la maintenance du projet, mais React accepte aussi les contributions de la communauté publique des développeurs.

Swift [21], le langage de programmation utilisé pour iOS, OS X et les autres projets d'Apple, est un exemple de projet qui n'a été placé en open source que récemment. Swift a été développé par Apple en interne pendant quatre ans et publié en tant que langage propriétaire en 2014. Les développeurs pouvaient utiliser Swift pour écrire des programmes pour les appareils d'Apple, mais ne pouvaient pas contribuer au développement du cœur du langage. En 2015, Swift a été rendu open source sous la licence Apache 2.0.

   Pour une entreprise, les incitations à maintenir un projet open source sont nombreuses. Ouvrir un projet au public peut signifier moins de travail pour l'entreprise, grâce essentiellement aux améliorations de la collaboration de masse.

   Cela stimule la bonne volonté et l'intérêt des développeurs, qui peuvent alors être incités à utiliser d'autres ressources de l'entreprise pour construire leurs projets.

   Disposer d'une communauté active de programmeurs crée un vivier de talents à recruter. Et parfois, l'ouverture du code d'un projet aide une entreprise à renforcer sa base d'utilisateurs et sa marque, ou même à l'emporter sur la concurrence. Plus une entreprise peut capter de parts de marché, même à travers des outils qu'elle distribue gratuitement, plus elle devient influente. Ce n'est pas très différent du concept commercial de « produit d'appel ».

   Même quand un projet est créé en interne, s'il est open source, alors il peut être librement utilisé ou modifié selon les termes d'une licence libre, et n'est pas considéré comme relevant de la propriété intellectuelle de l'entreprise au sens traditionnel du terme. De nombreux projets d'entreprise utilisent des licences libres standard qui sont considérées comme acceptables par la communauté des développeurs telles que les licences Apache 2.0 ou BSD. Cependant, dans certains cas, les entreprises ajoutent leurs propres clauses. La licence de React, par exemple, comporte une clause additionnelle qui pourrait potentiellement créer des conflits de revendications de brevet avec les utilisateurs de React.

   En conséquence, certaines entreprises et individus sont réticents à utiliser React, et cette décision est fréquemment décrite comme un exemple de conflit avec les principes de l'open source.

Via une startup

   Certains projets d'infrastructures empruntent la voie traditionnelle de la startup, ce qui inclut des financements en capital-risque. Voici quelques exemples :

Docker, qui est peut-être l'exemple contemporain le plus connu, aide les applications logicielles à fonctionner à l'intérieur d'un conteneur. (Les conteneurs procurent un environnement propre et ordonné pour les applications logicielles, ce qui permet de les faire fonctionner plus facilement partout). Docker est né en tant que projet interne chez dotCloud, une société de Plate-forme en tant que service (ou PaaS, pour platform as a service en anglais), mais le projet est devenu si populaire que ses fondateurs ont décidé d'en faire la principale activité de l'entreprise. Le projet Docker a été placé en open source en 2013. Docker a collecté 180 millions de dollars, avec une valeur estimée à plus d'un milliard de dollars [22].

   Leur modèle économique repose sur du support technique, des projets privés et des services. Les revenus de Docker pour l'année 2014 ne dépassaient pas 10 millions de dollars.

Npm est un gestionnaire de paquets sorti en 2010 pour aider les développeurs de Node.js à partager et à gérer leurs projets. Npm a collecté près de 11 millions de dollars de financements depuis 2014 de la part de True Ventures et de Bessemer Ventures, entre autres. Leur modèle économique se concentre sur des fonctionnalités payantes en faveur de la vie privée et de la sécurité.

Meteor est un framework JavaScript publié pour la première fois en 2012. Il a bénéficié d'un programme d'incubation au sein de Y Combinator, un prestigieux accélérateur de startups qui a également été l'incubateur d'entreprises comme AirBnB et Dropbox. À ce jour, Meteor a reçu plus de 30 millions de dollars de financements de la part de firmes comme Andreessen Horowitz ou Matrix Partners. Le modèle économique de Meteor se base sur une plateforme d'entreprise nommée Galaxy, sortie en Octobre 2015, qui permet de faire fonctionner et de gérer les applications Meteor.

   L'approche basée sur le capital-risque est relativement nouvelle, et se développe rapidement [23].

   Lightspeed Venture Partners a constaté qu'entre 2010 et 2015, les sociétés de capital-risque ont investi plus de 4 milliards de dollars dans des entreprises open source, soit dix fois plus que sur les cinq années précédentes.

   Le recours aux fonds de capital-risque pour soutenir les projets open source a été accueilli avec scepticisme par les développeurs (et même par certains acteurs du capital-risque eux-mêmes), du fait de l'absence de modèles économiques ou de revenus prévisibles pour justifier les estimations. Steve Klabnik, un mainteneur du langage Rust, explique [24] le soudain intérêt des capital-risqueurs pour le financement de l'open source :

« Je suis un investisseur en capital-risque. J'ai besoin qu'un grand nombre d'entreprises existent pour gagner de l'argent... J'ai besoin que les coûts soient bas et les profits élevés. Pour cela, il me faut un écosystème de logiciels open source en bonne santé. Donc je fais quoi ?... Les investisseurs en capital-risque sont en train de prendre conscience de tout ça, et ils commencent à investir dans les infrastructures. [...]

Par bien des aspects, le matériel open source est un produit d'appel, pour que tu deviennes accro...puis tu l'utilises pour tout, même pour ton code propriétaire. C'est une très bonne stratégie commerciale, mais cela place GitHub au centre de ce nouvel univers. Donc pour des raisons similaires, a16z a besoin que GitHub soit génial, pour servir de tremplin à chacun des écosystèmes open source qui existeront à l'avenir... Et a16z a suffisamment d'argent pour en « gaspiller » en finançant un projet sur lequel ils ne récupéreront pas de bénéfices directs, parce qu'ils sont suffisamment intelligents pour investir une partie de leurs fonds dans le développement de l'écosystème. »

GitHub, créé en 2008, est une plate-forme de partage/stockage de code, disponible en mode public ou privé, doté d'un environnement ergonomique. Il héberge de nombreux projets open source populaires et, surtout, il est devenu l'épicentre culturel de la croissance explosive de l'open source (dont nous parlerons plus loin dans ce rapport).

   GitHub [25] n'a reçu aucun capital-risque avant 2012, quatre ans après sa création. Avant cette date, GitHub était une entreprise rentable. Depuis 2012, GitHub a reçu au total 350 millions de dollars de financements en capital-risque.


Image par Nick Quaranto (CC BY-SA 2.0).

   Andreessen Horowitz (alias a16z), la firme d'investissement aux 4 milliards de dollars qui a fourni l'essentiel du capital de leur première levée de fonds de 100 millions de dollars, a déclaré qu'il s'agissait là de l'investissement le plus important qu'elle ait jamais fait jusqu'alors.

   En d'autres termes, la théorie de Steve Klabnik est que les sociétés de capital-risque qui investissent dans les infrastructures open source promeuvent ces plates-formes en tant que « produit d'appel », même quand il n'y a pas de modèle économique viable ou de rentabilité à en tirer, parce que cela permet de faire croître l'ensemble de l'écosystème. Plus GitHub a de ressources, plus l'open source est florissant. Plus l'open source est florissant, et mieux se portent les startups. À lui seul, l'intérêt que portent les sociétés d'investissement à l'open source, particulièrement quand on considère l'absence de véritable retour financier, est une preuve du rôle clé que joue l'open source dans l'écosystème plus large des startups.

   Par ailleurs, il est important de noter que la plate-forme GitHub en elle-même n'est pas un projet open source, et n'est donc pas un exemple de capital-risque finançant directement l'open source. GitHub est une plate-forme à code propriétaire qui héberge des projets open source. C'est un sujet controversé pour certains contributeurs open source.

Par des personnes ou un groupe de personnes

   Enfin, de nombreux projets d'infrastructures numériques sont intégralement développés et maintenus par des développeurs indépendants ou des communautés de développeurs. Voici quelques exemples :

Python, un langage de programmation, a été développé et publié par un informaticien, Guido van Rossum, en 1991.

   Van Rossum déclarait qu'il « était à la recherche d'un projet de programmation "passe-temps", qui [le] tiendrait occupé pendant la semaine de Noël » [26].

   Le projet a décollé, et Python est désormais considéré comme l'un des langages de programmation les plus populaires de nos jours [27].

   Van Rossum [28] reste le principal auteur de Python (aussi connu parmi les développeurs sous le nom de « dictateur bienveillant à vie » et il est actuellement employé par Dropbox, dont les logiciels reposent fortement sur Python.

   Python est en partie géré par la Python Software Foundation (NdT : Fondation du logiciel Python), créée en 2001, qui bénéficie de nombreux sponsors commerciaux, parmi lesquel Intel, HP et Google.

RubyGems est un gestionnaire de paquets qui facilite la distribution de programmes et de bibliothèques associés au langage de programmation Ruby.

   C'est une pièce essentielle de l'infrastructure pour tout développeur Ruby. Parmi les sites web utilisant Ruby, on peut citer par exemple Hulu, AirBnB et Bloomberg [29]. RubyGems a été créé en 2003 et est géré par une communauté de développeurs. Certains travaux de développement sont financés par Ruby Together, une fondation qui accepte les dons d'entreprises et de particuliers.

   Twisted, une bibliothèque Python, fut créée en 2002 par un programmeur nommé Glyph Lefkowitz. Depuis lors, son usage s'est largement répandu auprès d'individus et d'organisations, parmi lesquelles Lucasfilm et la NASA [30].

   Twisted continue d'être géré par un groupe de volontaires. Le projet est soutenu par des dons corporatifs/commerciaux et individuels ; Lefkowitz en reste l'architecte principal et gagne sa vie en proposant ses services de consultant [31].

   Comme le montrent tous ces exemples, les projets open source peuvent provenir de pratiquement n'importe où. Ce qui est en général considéré comme une bonne chose. Cela signifie que les projets utiles ont le plus de chances de réussir, car ils évitent d'une part les effets de mode futiles inhérents aux startups, et d'autre part la bureaucratie propre aux gouvernements. La nature décentralisée de l'infrastructure numérique renforce également les valeurs de démocratie et d'ouverture d'Internet, qui permet en principe à chacun de créer le prochain super projet, qu'il soit une entreprise ou un individu.

   D'un autre côté, un grand nombre de projets utiles proviendront de développeurs indépendants qui se trouveront tout à coup à la tête d'un projet à succès, et qui devront prendre des décisions cruciales pour son avenir. Une étude de 2015 menée par l'Université fédérale de Minas Gerai au Brésil a examiné 133 des projets les plus activement utilisés sur Github, parmi les langages de programmation, et a découvert que 64 % d'entre eux, presque les deux tiers, dépendaient pour leur survie d'un ou deux développeurs seulement [32].

   Bien qu'il puisse y avoir une longue traîne de contributeurs occasionnels ou ponctuels pour de nombreux projets, les responsabilités principales de la gestion du projet ne reposent que sur un très petit nombre d'individus.

   Coordonner des communautés internationales de contributeurs aux avis arrêtés, tout en gérant les attentes d'entreprises classées au Fortune 500 qui utilisent votre projet, voilà des tâches qui seraient des défis pour n'importe qui. Il est impressionnant de constater combien de projets ont déjà été accomplis de cette manière. Ces tâches sont particulièrement difficiles dans un contexte où les développeurs manquent de modèles clairement établis, mais aussi de soutien institutionnel pour mener ce travail à bien. Au cours d'interviews menées pour ce rapport, beaucoup de développeurs se sont plaints en privé qu'ils n'avaient aucune idée de qui ils pouvaient solliciter pour avoir de l'aide, et qu'ils préféreraient « juste coder ».

   Pourquoi continuent-ils à le faire ? La suite de ce rapport se concentrera sur pourquoi et comment les contributeurs de l'open source maintiennent des projets à grande échelle, et sur les raisons pour lesquelles c'est important pour nous tous.

(À suivre...)

Nadia Eghbal

Paru sur Framasoft les 17, 24 et octobre 2016 :
https://framablog.org/2016/10/17/des-routes-et-des-ponts-5-vers-l-open-source/
https://framablog.org/2016/10/24/des-routes-et-des-ponts-6-creer-une-infrastructure-numerique/
https://framablog.org/2016/10/31/des-routes-et-des-ponts-7-pour-une-infrastructure-durable/

Cet article est sous licence Creative Commons (selon la juridiction française = Paternité - Pas de Modification). http://creativecommons.org/licenses/by-nd/2.0/fr/

NOTES

[1] https://www.gnu.org/

[2] https://www.fsf.org/fr

[3] https://www.gnu.org/philosophy/free-sw.html

[4] https://fr.wikipedia.org/wiki/Nanotechnologie

[5] https://opensource.org/

[6] http://www.linux-france.org/article/these/cathedrale-bazar/cathedrale-bazar.html

[7] Pourquoi « autrice » ? Il semble que ce mot soit légitime au regard de l'histoire de la langue :
http://information.tv5monde.com/terriennes/auteure-ou-autrice-un-mot-qui-derange-23114
Voyez aussi une étude plus complète :
http://siefar.org/wp-content/uploads/2015/09/Histoire-dautrice-A_-Evain.pdf

[8] https://www.cbo.gov/publication/49910

[9] http://www.wsj.com/articles/house-passes-five-year-transportation-bill-1449167609

[10] https://fr.wikipedia.org/wiki/Big_Dig

[11] https://fr.wikipedia.org/wiki/Zonage_( urbanisme)

[12] http://www.zdnet.com/article/as-dbms-wars-continue-postgresql-shows-most-momentum/

[13] https://fr.wikipedia.org/wiki/MySQL

[14] https://fr.wikipedia.org/wiki/Ruby

[15] https://fr.wikipedia.org/wiki/M%C3%A9tro_de_Londres

[16] https://story.californiasunday.com/tim-hwang-infrastructure-tourist

[17] https://blog.codinghorror.com/the-magpie-developer/

[18] https://fr.wikipedia.org/wiki/Go!_(langage)

[19] https://fr.wikipedia.org/wiki/React_(JavaScript)

[20] https://www.quora.com/How-was-the-idea-to-develop-React-conceived-and-how-many-people-worked-on-developing-it-and-implementing-it-at-Facebook/answer/Bill-Fisher-17

[21] https://fr.wikipedia.org/wiki/Swift_(langage_d%27Apple)

[22] http://venturebeat.com/2015/06/13/docker-now-valued-at-1b-paid-someone-799-for-its-logo-on-99designs/

[23] http://venturebeat.com/2015/12/06/its-actually-open-source-software-thats-eating-the-world/

[24] http://words.steveklabnik.com/is-npm-worth-26mm

[25] https://www.crunchbase.com/organization/github

[26] https://www.python.org/doc/essays/foreword/

[27] http://blog.codeeval.com/codeevalblog/2015#.VjvKZhNViko=

[28] https://en.wikipedia.org/wiki/Guido_van_Rossum

[29] http://skillcrush.com/2015/02/02/37-railssites/

[30] https://twistedmatrix.com/trac/wiki/SuccessStories

[31] https://twistedmatrix.com/glyph/

[32] https://peerj.com/preprints/1233.pdf

haut de page
Association EPI
Février 2017

Accueil Linux et Logiciels libres Articles