La propriété logicielle: le problème pratique
Pour comprendre pourquoi la transformation des logiciels en propriétés produit de mauvais logiciels, nous avons besoin d'une introduction à l'histoire de l'art. En fait, nous ferions mieux de commencer par le mot « art » lui-même. En effet, la programmation des ordinateurs combine le raisonnement déterministe et l'invention littéraire.
Au premier coup d'oeil, bien sûr, le code source apparaît comment une forme non littéraire de composition[14] . Le principal but d'un programme d'ordinateur est qu'il fonctionne, c'est-à-dire qu'il s'accomplisse en suivant des spécifications décrivant formellement ses résultats, en fonction de ses entrées. À ce niveau de généralité, le contenu fonctionnel du programme est tout ce qu'il y a d'apparent.
Mais les programmes d'ordinateurs existent en tant que parties de systèmes informatiques, qui sont des ensembles intéragissants de matériels, de logiciels et d'êtres humains. Les composants humains d'un système informatique incluent non seulement les utilisateurs, mais aussi (ce qui est potentiellement différent) les personnes qui maintiennent et améliorent le système. Le code source communique non seulement avec l'ordinateur qui exécute le programme, à travers l'intermédiaire du compilateur qui produit le code objet (en langage machine), mais aussi avec les autres programmeurs.
La fonction du code source, lorsqu'on le met en relation avec d'autres êtres humains, n'est pas largement comprise par les non-programmeurs, qui ont tendance à penser que les programmes informatiques sont incompréhensibles. Ils seraient surpris d'apprendre que la majorité de l'information contenue dans la plupart des programmes est, du point de vue du compilateur ou des autres processeurs de langage, du « commentaire », une substance non fonctionnelle. Les commentaires, bien sûr, sont adressés à ceux qui peuvent avoir besoin de résoudre un problème, de modifier ou d'améliorer les fonctions du programme. Dans la plupart des langages informatiques, bien plus d'espace est consacré à expliquer aux autres ce que le programme fait, que de dire à l'ordinateur comment l'exécuter.
La conception des langages informatiques a toujours été effectuée selon le double besoin d'une spécification complète de l'exécution par la machine et d'une description informative pour les lecteurs humains. On pourrait identifier trois stratégies basiques dans la conception de langages informatiques pour atteindre ce double but. La première, suivie initialement pour la conception des langages spécifiques à des produits matériels et collectivement connus sous le nom d'« assembleurs », distinguait essentiellement les portions du programme communicant avec la machine ou avec l'humain. Les instructions de l'assembleur sont très proches des instructions en langage machine: en général, une ligne d'un programme en assembleur correspond à une instruction dans le langage natif de la machine. Le programmeur contrôle l'opération de la machine au niveau le plus spécifique et (s'il est bien discipliné) s'engage à disposer des commentaires tout au long des instructions en langage machine, créant toutes les quelques centaines d'instructions des « blocs de commentaires », qui fournissent un résumé de la stratégie du programme ou qui documentent les structures de données majeures que le programme manipule.
Une seconde approche, illustrée de manière caractéristique par le langage COBOL (qui signifie « COmmon Business-Oriented Language » ou « Langage Commun Orienté Industrie »), était de faire ressembler le programme lui-même à un ensemble de directives en langage naturel, d'un style déplorable mais théoriquement lisible par un humain. Une ligne de code COBOL pourrait dire, par exemple, « MULTIPLY PRICE TIMES QUANTITY GIVING EXPANSION[15] . A l'origine, quand le Pentagone et les experts de l'industrie ont commencé à concevoir COBOL en commun, au début des années 60, cela semblait une approche prometteuse. Les programmes COBOL apparaissaient largement auto-documentés, autorisant à la fois le développement d'équipes de travail capables de collaborer à la création de gros programmes et la formation de programmeurs qui, bien qu'étant des travailleurs spécialisés, n'avaient pas besoin de connaître la machine aussi intimement qu'ils en auraient eu besoin pour des programmes en assembleur. Mais le niveau de généralité auquel de tels programmes s'auto-documentaient était mal choisi. Une expression plus formelle et compressée des détails opérationnels « expansion = prix quantité », par exemple, était mieux appropriée, même pour les applications industrielles ou financières où les lecteurs et concepteurs de programmes sont habitués aux expressions mathématiques. Et, cependant, la procédure de description des structures de données, tout comme du contexte opérationnel plus large du programme, n'étaient pas rendues obsolètes par la verbosité du langage dans lequel les détails de l'exécution était spécifiés.
En conséquence, les concepteurs de langages de la fin des années 60 ont commencé à expérimenter des formes d'expression dans lesquelles le mélange de détails opérationnels et d'informations non fonctionnelles nécessaires à la modification ou à la correction était plus subtil. Quelques concepteurs choisirent la voie de langages hautement symboliques et compressés, dans lesquels le programmeur manipulait des données abstraites, afin que « A B » puisse signifier la multiplication de deux entiers, deux nombres complexes, deux gros tableaux ou d'un tout autre type de données capable d'une opération appelée « multiplication », et que cela soit géré par l'ordinateur sur les bases du contexte des variables « A » et « B » au moment de l'exécution[16] . Comme on pensait que cette approche résultait en des programmes extrêmement concis, le problème de rendre le code compréhensible par ceux qui chercheraient plus tard à le modifier ou le corriger était simplifié. En cachant les détails techniques des opérations informatiques, et en mettant l'accent sur l'algorithme, les langages pouvaient être conçus pour être meilleurs que le français ou tout autre langage naturel pour l'expression des procédés séquentiels. Les commentaires ne seraient plus non seulement inutiles mais gênants, tout comme les métaphores utilisées pour faire comprendre les concepts mathématiques en français embrouillent plus qu'elles n'éclaircissent.
Comment nous avons créé la pagaille Microbrain
Ainsi, l'histoire des langages de programmation reflète directement le besoin de trouver des formes de communication de l'humain à la machine aussi efficaces dans la transmission d'idées complexes aux lecteurs humains. « L'expressivité » est devenue une propriété des langages de programmation, non pas parce qu'elle facilite l'intégration, mais parce qu'elle facilite la création collaborative et la maintenance de systèmes logiciels de complexité croissante.
À première vue, cela semble justifier l'application de la pensée traditionnelle du copyright aux travaux résultant. Bien que faisant entrer en jeu des éléments « fonctionnels », les programmes d'ordinateur contenaient des fonctions « expressives » d'une suprême importance. La doctrine du copyright reconnaît la fusion de la fonction et de l'expression comme une caractéristique de bien des formes de travaux copyrightés. Le « code source » contient à la fois les instructions machine nécessaires à l'opération fonctionnelle et les « commentaires » expressifs à l'attention des lecteurs humains. En tant que tel, il était un bon candidat, pour être traité par le copyright.
C'est vrai, à partir du moment où l'on comprend que la composante expressive du logiciel est présente seulement dans le but de faciliter la création de « travaux dérivés ». Si elle n'était pas là dans le but de faciliter la modification, les éléments expressifs des programmes seraient entièrement surérogatifs et le code source ne pourrait pas plus être copyrighté que le code objet (la sortie du processeur du langage), épuré de tout sauf les caractéristiques fonctionnelles du programme.
L'état de l'industrie de l'informatique à travers les années 1960 et 1970, quand les lois implicites de la programmation informatique sophistiquée ont été établies, dissimulait la tension implicite à la situation. Lors de cette période, le matériel coûtait cher. Les ordinateurs étaient des ensembles de plus en plus grands et complexes de machines, et l'industrie de la conception et de la construction d'un tel étalage de machines pour un usage général était dominé (pour ne pas dire monopolisé) par une seule entreprise. Or IBM donnait ses logiciels. Pour sûr, cette entreprise possédait les programmes que ses employés écrivaient et elle plaçait sous copyright ses codes sources. Mais elle distribuait aussi les programmes (ce qui inclut le code source) à ses clients sans coût supplémentaire, et les encourageait à écrire et à partager des améliorations et des adaptations aux programmes ainsi distribués. Pour un constructeur de matériel dominant, cette stratégie était sensée: de meilleurs programmes faisaient vendre plus de matériel et c'était là que la rentabilité du marché demeurait.
Les ordinateurs, à cette période, ont eu tendance à s'agglomérer à l'intérieur d'organisations particulières, mais pas à communiquer largement avec d'autres. Les logiciels dont on avait besoin pour fonctionner n'étaient pas distribués à travers un réseau, mais sur des bobines de bande magnétique. Le système de distribution avait tendance à centraliser le développement de logiciels, afin que les clients d'IBM soient libres d'apporter des modifications et des améliorations aux programmes. Ces modifications étant partagées tout d'abord avec IBM, qui décidait alors d'incorporer ces modifications dans les versions distribuées du logiciel sur un modèle de développement centralisé. Ainsi, pour deux raisons importantes, les meilleurs logiciels du monde étaient libres: ils ne coûtaient rien à acquérir et les termes dans lesquels ils étaient fournis autorisaient et encourageaient tout à la fois l'expérimentation, la modification et l'amélioration[17] . Que le logiciel en question soit la propriété d'IBM sous la loi actuelle du copyright a certainement établi quelques limites théoriques sur la possibilité des utilisateurs à distribuer leurs modifications ou adaptations aux autres, mais dans la pratique, les logiciels pour supercalculateurs étaient développés de manière coopérative par le constructeur de matériel dominant et par ses utilisateurs techniquement compétents, employant les ressources de distribution vers la communauté des utilisateurs. Le droit d'exclure les autres, un des plus importants « bâtons dans le paquet » des droits de la propriété (pour reprendre une image que la Cour Suprême des États-Unis affectionne), était pratiquement négligeable ou même indésirable, au cœur de l'industrie du logiciel[18] .
Après 1980, tout était différent. Le monde des supercalculateurs a laissé la place, en dix ans, au monde de l'ordinateur personnel. Et, en parallèle au développement de l'industrie, l'élément unique le plus important des logiciels fonctionnant sur cet ordinateur personnel de base, le système d'exploitation, est devenu le seul produit significatif d'une entreprise qui ne faisait pas de matériel. Des logiciels de grande qualité ont cessé de faire partie de la stratégie de différenciation des produits des producteurs de matériel. À la place, une entreprise avec une part prédominante du marché, et avec l'absence d'intérêt ordinaire pour l'adoption de la diversité des quasi-monopolistes, dictait les pratiques de l'industrie du logiciel. Dans un tel contexte, le droit d'exclure les autres de la participation à la formation du produit est devenu d'une importance capitale. La puissance de Microsoft dans le marché est constituée entièrement par la propriété du code source de Windows.
Pour Microsoft, la création par d'autres de « travaux dérivés », qu'on connaît ailleurs sous le nom de corrections et d'améliorations, a menacé le capital central de leurs affaires. En effet, comme des procédures judiciaires ultérieures ont eu tendance à s'établir, la chestratégie commerciale de Microsoft a été de trouver des idées innovantes ailleurs dans le marché du logiciel, de les acheter, et soit de les supprimer, soit de les incorporer dans leur propre produit propriétaire. Le maintien du contrôle sur la manipulation basique des ordinateurs construits, vendus, possédés et utilisés par d'autres représentait un levier essentiel et profitable sur le développement de la culture[19] ; le droit d'exclure est revenu au centre du concept de la propriété logicielle.
Le résultat, d'aussi loin que la qualité du logiciel soit concernée, était désastreux. Le monopole était détenu par une entreprise riche et puissante qui employait un grand nombre de programmeurs, mais qui ne pouvait effectivement pas se permettre le nombre de testeurs, de concepteurs et de développeurs requis pour produire des logiciels flexibles, robustes et techniquement innovants, appropriés au vaste ensemble des conditions sous lesquelles les ordinateurs personnels, de plus en plus omniprésents, fonctionnaient. Sa stratégie marketing fondamentale impliquait la conception de son produit pour les utilisateurs les moins avancés techniquement et l'utilisation de la « peur, de l'incertitude et du doute » (connu au sein de Microsoft comme le « FUD ») pour tenir les utilisateurs compétents à l'écart des concurrents potentiels, dont la survie à long terme en face de la puissance de marché de Microsoft a toujours été en question.
Sans la constante interaction entre les utilisateurs capables de corriger des problèmes et d'améliorer des fonctionnalités et le constructeur de système d'exploitation, l'inévitable détérioration de la qualité est inéluctable. Mais comme la révolution de l'ordinateur personnel a étendu le nombre d'utilisateurs de manière exponentielle, pratiquement tous ceux qui sont entrés en contact avec le système résultant n'ont pu poser d'élément de comparaison face au système qu'ils avaient l'habitude d'utiliser. Ignorants des standards de stabilité, de robustesse, de maintenance et d'efficacité précédemment établis dans le monde des supercalculateurs, on pouvait difficilement attendre de la part des utilisateurs d'ordinateurs personnels qu'ils comprennent à quel point, en termes relatifs, les logiciels du monopole fonctionnaient mal. Comme la puissance et la capacité des ordinateurs personnels se sont étendues rapidement, les défauts des logiciels étaient moins évidents, au sein de l'augmentation générale de la productivité. Les utilisateurs ordinaires, pour plus de la moitié effrayés par une technologie qu'ils ne comprenaient pratiquement pas, ont réellement fait bon accueil à la défectuosité des logiciels. Dans une économie subissant des transformations mystérieuses, avec la déstabilisation concomitante de millions de carrières, il était tranquillisant, d'une manière perverse, qu'aucun ordinateur personnel ne semble capable de fonctionner plus de quelques heures consécutives sans se planter. Bien qu'il soit frustrant de perdre du travail en cours chaque fois qu'une erreur imprévue arrive, l'évidente faillibilité des ordinateurs était intrinsèquement rassurante[20] .
Rien de tout cela n'était nécessaire. La faible qualité des logiciels pour ordinateurs personnels aurait pu être évitée en faisant intervenir les utilisateurs dans le processus fondamentalement évolutionnaire de la conception et de l'implémentation de logiciels. Un mode Lamarckien, dans lequel les améliorations peuvent être effectuées partout, par tout le monde et héritées par tous les autres, aurait effacé le déficit, restaurant dans le monde de l'ordinateur personnel la stabilité et la robustesse des logiciels écrits dans un environnement quasi-propriétaire de l'ère des supercalculateurs. Mais le business model de Microsoft écartait l'héritage Lamarckien des améliorations de logiciels. La doctrine du copyright, en général, et comme elle s'applique au logiciel en particulier, dénature le monde vers le créationisme ; dans ce cas, le problème était que BillG le Créateur était loin d'être infaillible et, en fait, il n'avait même pas essayé.
Comble d'ironie, la croissance du réseau a rendu l'alternative non-propriétarienne encore plus censée. Ce que les écrits scolaires et populaires dénomment comme une chose (« l'Internet ») est en fait le nom d'une condition sociale: le fait que tout le monde dans la société du réseau soit connecté directement, sans intermédiaire, à tous les autres[21] . L'interconnexion globale des réseaux a éliminé le goulet d'étranglement qui a requis un éditeur centralisé de logiciels pour rationaliser et distribuer les résultats de l'innovation individuelle dans l'ère des supercalculateurs.
Et ainsi, par une des petites ironies de l'histoire, le triomphe global des mauvais logiciels à l'âge de l'ordinateur personnel a été renversé par une combinaison surprenante de forces: la transformation sociale initiée par le réseau, une théorie européenne de l'économie politique longtemps mise de côté, et une petite bande de programmeurs à travers le monde mobilisés par une simple idée.
Les logiciels veulent être libres, ou comment nous avons appris à ne plus nous stresser et à aimer la bombe
Bien avant que le réseau des réseaux ne soit une réalité pratique, même avant qu'il ne soit une idée, il y avait un certain désir de faire fonctionner les ordinateurs sur la base de logiciels librement disponibles pour tout le monde. Ce désir avait emergé en tant que réaction contre les logiciels propriétariens de l'ère du supercalculateur, et demande une autre brève digression historique.
Bien qu'IBM soit le plus grand vendeur d'ordinateurs généralistes de l'ère du supercalculateur, il n'était pas le plus grand concepteur et constructeur d'un type de matériel donné. Le monopole du téléphone, détenu par l'American Telephone & Telegraph (AT&T), était en fait plus important que celui d'IBM, mais il utilisait ses produits en interne. Et c'est aux célèbres Bell Labs, départements de la recherche de la compagnie détenant le monopole du téléphone, à la fin des années 60, que les développements de langages décrits précédemment ont donné naissance à un système d'exploitation appelé Unix.
L'idée d'Unix était de créer un système d'exploitation simple, s'adaptant à toutes les échelles, pour tous les ordinateurs, des petits aux grands, que la compagnie du téléphone construisait pour elle-même. Atteindre ce but impliquait d'écrire un système d'exploitation, ni dans un langage machine ni dans un assembleur dont la forme linguistique était intégrante à une conception particulière du matériel, mais dans un langage plus expressif et généraliste. Celui choisi était aussi une invention des Bell Labs, appelé « C »[22] . Le langage C est devenu commun et même dominant, pour de nombreuses tâches de programmation, et à la fin des années 1970, le système d'exploitation Unix écrit dans ce langage a été transféré (ou « porté », dans le jargon professionnel) sur des ordinateurs de nombreux constructeurs et de nombreuses conceptions différentes.
AT&T a largement distribué Unix, et en raison de la conception même du système d'exploitation, la compagnie devait effectuer cette distribution sous forme de code source C. Mais AT&T a conservé la propriété du code source et a contraint les utilisateurs à acheter des licences qui ont interdit la redistribution et la création de travaux dérivés. Les gros centres informatiques, industriels ou académiques, pouvaient se permettre d'acheter de telles licences, mais pas les individus. En même temps, les restrictions des licences interdisaient à la communauté des utilisateurs qui utilisaient Unix de l'améliorer d'une manière évolutionnaire plutôt qu'épisodique. Et comme les programmeurs à travers le monde commençaient à aspirer à une révolution de l'ordinateur personnel (et même à l'attendre), le statut « non libre » d'Unix a commencé à devenir une source de problèmes.
Entre 1981 et 1984, un homme a imaginé une croisade pour changer la situation. Richard M. Stallman, alors employé au laboratoire d'intelligence du MIT, a conçu le projet d'une reconception et d'une implémentation indépendantes et coopératives d'un système d'exploitation qui serait constitué de vrais logiciels libres. De la bouche de Stallman, le logiciel libre serait une question de liberté, pas de prix. Tout le monde pourrait librement modifier et redistribuer de tels logiciels ou même les vendre, avec juste la restriction de ne pas essayer de réduire les droits de ceux à qui ils sont redistribués. De cette manière, le logiciel libre pourrait devenir un projet auto-organisé, dans lequel aucune innovation ne serait perdue à travers l'exercice des droits de la propriété. Le système, tel que Stallman l'a décidé, serait appelé GNU, qui signifie (c'est un des exemples initiaux des acronymes récursifs qui ont caractérisé le logiciel libre depuis) « GNU N'est pas Unix ». Malgré des doutes sur la conception fondamentale d'Unix aussi bien que sur ses termes de distribution, GNU était conçu pour bénéficier de la large (bien que non libre) distribution de sources d'Unix. Stallman a commencé le projet GNU en écrivant des composants du système final qui étaient aussi conçus pour fonctionner sans modification sur les systèmes Unix existants. Le développement des outils GNU pouvait ainsi se faire directement dans l'environnement des universités et des autres centres de calcul avancé à travers le monde.
L'échelle d'un tel projet était immense. D'une manière ou d'une autre, des programmeurs volontaires devaient être recrutés, organisés et incités à construire tous les outils nécessaires à la construction ultime. Stallman lui-même était l'auteur initial de plusieurs outils fondamentaux. De petites ou grandes équipes de programmeurs contribuaient ailleurs aux autres outils et les attribuaient au projet de Stallman ou les distribuaient directement. Quelques endroits à travers le réseau du développement sont devenus des archives pour le code source de ces composants de GNU, et au long des années 80, les outils GNU ont gagné la reconnaissance et l'acceptation par les utilisateurs d'Unix à travers le monde. Les outils GNU sont devenus synonymes de stabilité, de fiabilité et de bonne maintenance, tandis que les capacités profondes de Stallman à concevoir ont continué à devancer et à fournir des buts au processus. La récompense d'un prix de la fondation MacArthur, accordée en 1990 à Stallman, était une reconnaissance appropriée pour ses innovations conceptuelles et techniques et leurs conséquences sociales.
Le projet GNU et la Free Software Foundation, à qui il a donné vie en 1985, n'étaient pas les seules sources d'idées sur le logiciel libre. Plusieurs formes de copyright ont commencé à se développer dans la communauté universitaire, pour la plupart autour de l'environnement Unix. L'université Berkeley de Californie a entamé la conception et l'implémentation d'une autre version d'Unix pour une libre distribution dans la communauté universitaire. L'Unix BSD, tel que nous le connaissons maintenant, a aussi considéré l'Unix d'AT&T comme un standard conceptuel. Le code était largement distribué et constituait un réservoir d'outils et de techniques, mais les termes de sa licence limitaient la portée de son utilisation, alors que l'élimination de code propriétaire spécifique au matériel de la distribution signifiait que personne ne pouvait vraiment construire un système d'exploitation fonctionnel pour un ordinateur particulier à partir de BSD. D'autres travaux universitaires se sont aussi terminés par des logiciels presque libres ; par exemple, l'interface graphique (ou GUI, pour Graphical User Interface) des systèmes Unix, appelée X Window System, a été créée au MIT et distribuée avec le code source sur des termes permettant la libre modification. Et en 1989-1990, un étudiant en informatique de l'université d'Helsinki, Linus Torvalds, a commencé le projet qui a complété le circuit et a vraiment impulsé de l'énergie à la vision du logiciel libre.
Ce que Torvalds a fait était de commencer à adapter un outil informatique pédagogique pour un usage réel. Le noyau MINIX d'Andrew Tannenbaum[23] était une base des cours de systèmes d'exploitation, fournissant un exemple de solutions de base à des problèmes de base. Lentement, et d'abord sans en reconnaître l'intention, Linus a commencé à transformer le noyau MINIX en un vrai noyau Unix pour les processeurs Intel x86, qui fonctionnaient sur les ordinateurs personnels de base du monde entier. Au fur et à mesure que Linus commençait à développer son noyau, qu'il appela Linux, il réalisa que la meilleure manière de faire fonctionner le projet était d'ajuster ses décisions conceptuelles, afin que les composants GNU soient compatibles avec son noyau.
Le résultat du travail de Torvalds aboutit, en 1991, à la distribution sur le réseau d'une esquisse de modèle fonctionnel d'un noyau libre pour un système d'exploitation sur PC semblable à Unix, entièrement compatible, et même conçu de manière convergente pour l'énorme ensemble de composants systèmes de haute qualité créés par le projet GNU de Stallman et distribués par la Free Software Foundation. Puisque Torvalds a décidé de distribuer le noyau Linux sous la Licence Générale Publique de la Free Software Foundation (sur laquelle je m'étendrai plus bas), les centaines et finalement milliers de programmeurs à travers le monde qui ont décidé de contribuer par leurs efforts au développement futur du noyau pouvaient être sûrs que leurs efforts auraient pour résultat un logiciel perpétuellement libre, que personne ne pourrait transformer en produit propriétaire. Tout le monde savait que d'autres personnes seraient capables de tester, d'améliorer et de redistribuer leurs modifications. Torvalds acceptait les contributions volontiers, et avec un style génialement efficace a maintenu la direction globale sans refroidir l'enthousiasme. Le développement du noyau Linux a prouvé que l'Internet a rendu possible l'agrégation d'ensembles de programmeurs bien plus grands que n'importe quel éditeur commercial ne pourrait se le permettre, rassemblés de manière pratiquement non hiérarchique dans un projet de développement faisant finalement intervenir plus d'un million de lignes de code source (une échelle de collaboration entre des volontaires non payés et dispersés géographiquement, auparavant inimaginable dans l'histoire humaine[24] ).
En 1994, Linux a atteint la version 1.0, représentant un noyau utilisable en production. Le niveau 2.0 a été atteint en 1996. En 1998, avec le noyau à la version 2.2.0 et disponible non seulement pour les machines à base de x86 mais pour toute une variété d'autres architectures de machines, GNU/Linux (la combinaison du noyau Linux et le bien plus grand corps des composants du projet GNU) et Windows NT étaient les deux seuls systèmes d'exploitation du monde à gagner des parts de marché. Une évaluation interne à Microsoft de la situation a filtré en octobre 1998 (et ultérieurement reconnue comme authentique par la compagnie) concluait que « Linux représente un UNIX qui sort du rang, en qui on fait confiance pour des missions d'applications critiques (ce qui est en partie dû au code source [sic] ouvert) et qui a une crédibilité sur le long terme qui excède celle de nombreux systèmes d'exploitation compétitifs. »[25] Les systèmes GNU/Linux sont maintenant utilisés à travers le monde, fonctionnant partout, faisant office de serveurs web dans des sites de commerce électronique majeurs ou en tant que clusters dédiés à l'infrastructure réseau de centres de paiement de banques. On trouve GNU/Linux dans la navette de l'espace ou même fonctionnant côté jardin chez (eh oui) Microsoft. Les évaluations de l'industrie sur la fiabilité des systèmes Unix ont montré de manière répétée que Linux est de loin le noyau Unix le plus stable et le plus fiable, dont la fiabilité est seulement dépassée par les outils GNU eux-mêmes. GNU/Linux ne dépasse pas seulement les versions propriétaires d'Unix pour les PC dans les tests de performances, mais est renommé pour sa capacité à fonctionner, sans perturbation et sans plainte, pendant des mois sur des environnements de haut volume et de haute sollicitation sans se planter.
D'autres composants du mouvement du logiciel libre ont également été couronnés de succès. Apache, de loin le serveur web dominant, est un logiciel libre, de même que Perl, le langage de programmation qui est la langue véhiculaire des programmeurs qui construisent des sites web sophistiqués. Netscape Communications distribue désormais son navigateur Netscape Communicator 5.0 en tant que logiciel libre, sous une licence proche de la Licence Générale Publique de la Free Software Foundation. Des constructeurs de PC majeurs, ce qui inclut IBM, ont annoncé des projets de distribution de GNU/Linux ou sont déjà en train en train de le distribuer en tant qu'option pour le client sur leurs PC de haut de gamme destinés à une utilisation en tant que serveurs web ou de partage de fichiers. Samba, un programme qui permet aux ordinateurs GNU/Linux de se comporter en tant que serveurs de fichiers Windows NT, est mondialement utilisé comme une alternative à Windows NT Server, et lui assène une compétition efficace à court terme dans son propre marché réservé. Grâce aux standards de la qualité des logiciels qui ont été reconnus par l'industrie depuis des décennies (et dont la pertinence ininterrompue sera claire pour vous la prochaine fois que votre PC sous Windows se plantera), les nouvelles à la fin de ce siècle ne sont pas ambiguës. La corporation accumulant le plus de profits et la plus puissante au monde arrive de loin seconde, ayant tout exclut sauf le vrai vainqueur de la course. Le propriétarianisme joint à la vigueur du capitalisme a détruit toute compétition commerciale digne de ce nom, mais lorsqu'il est question de faire de bons logiciels, l'anarchisme gagne.