OSI


home



Tribune Libre
Ténors de l'Informatique Libre

Copyright © 1999 par Éditions O'Reilly

< Chapitre 11 Sommaire Chapitre 13 >

Chapitre 12. Matériel, logiciel et infoware

Tim O'Reilly

Je discutais récemment avec quelques amis qui ne possèdent pas d'ordinateur. Ils pensaient qu'en avoir un leur ouvrirait les portes du site web Amazon.com où ils souhaitent acheter des livres et des CD. Non pas accéder à « l'Internet », ni même au « le Web ». Mais utiliser Amazon.com — tel était leur unique désir.

Une application de ce genre est dite « gagnante », car elle incite quelqu'un à acheter un ordinateur.

Ce qui est intéressant, c'est qu'une application gagnante n'est plus une application de bureautique, ou même un logiciel de back-office d'entreprise, mais un simple site web. Lorsque l'on commence à penser aux sites comme à des applications, on réalise bientôt qu'ils constituent une race entièrement nouvelle, que l'on pourrait appeler « applications de l'information » ou peut-être même infoware [1].

Les applications sont employées pour informatiser des tâches que l'ancien modèle informatique ne prenait pas en charge. Quelques années plus tôt, si vous aviez voulu effectuer une recherche dans une base de données d'un million d'ouvrages, vous auriez discuté avec un libraire connaissant les arcanes de la syntaxe des outils de recherche informatisée. Pour un livre, vous vous seriez rendu dans une librairie, vous auriez cherché dans une sélection relativement limitée. Aujourd'hui, des dizaines de milliers de personnes sans aucune formation particulière trouvent et achètent tous les jours des livres en ligne à partir de cette base de données contenant des millions d'enregistrements.

Le secret, c'est que les ordinateurs ont facilité le dialogue entre les gens. Les applications web utilisent des interfaces en langue courante et des images, et non de petits codes spécialisés qui n'ont de signification que pour ceux qui maîtrisent cette discipline.

Les logiciels traditionnels embarquent de petits morceaux d'information dans un tas de logiciels; les infowares posent quant à eux quelques logiciels sur de vastes gisements d'informations. Les « actions » dans un produit infoware sont généralement simples: faire un choix, acheter ou vendre, saisir quelques données et obtenir un résultat personnalisé.

Des scripts attachés à un lien hypertexte réalisent souvent ces actions en utilisant une interface spécifique appelée CGI (Common Gateway Interface). Un CGI défini un moyen pour un serveur web d'appeler un programme externe et de publier la sortie de ce programme sous la forme d'une page web. Les programmes CGI peuvent être simplement de petits scripts qui réalisent un calcul simple, ou qui exploitent un serveur de données. Mais même lorsqu'un moteur logiciel lourd se trouve derrière un site, l'interface utilisateur n'est pas composé de logiciels traditionnels. Elle consiste en un ensemble de pages web (qui ont été créées par un auteur, un éditeur ou un concepteur graphique plutôt que par un programmeur).

Les interfaces informatives sont typiquement dynamiques. La présentation des livres d'Amazon, par exemple, est pilotée par les résultats des ventes mis à jour toutes les heures. Les clients peuvent ajouter des commentaires et des estimations en ligne qui deviennent un élément clé dans le processus de décision des acheteurs. Un site conçu pour aider quelqu'un à acheter ou vendre des produits en ligne doit non seulement de présenter ses prix à jour mais aussi fournir des nouvelles pertinentes, des informations commerciales internes, des recommandations d'analystes et peut-être même un forum de discussion pour les utilisateurs. Cette interface d'information consiste en un riche mélange de documents réalisés de façon artisanale, de données générées par des programmes, et de liens vers des serveurs d'applications spécialisées (comme le courrier électronique, la discussion informelle en ligne ou bien la téléconférence).

Lorsqu'il s'agit d'assurer des taches répétitives, les interfaces d'informations ne sont pas aussi efficaces que celles des logiciels, mais elles sont bien meilleures que celles des outils que vous employez rarement ou différemment à chaque fois. Elles sont en particulier adéquates lorsqu'il faut choisir parmi les éléments d'information présentés. Pendant que vous achetez un livre ou un CD chez Amazon, ou un produit chez E*Trade, l'achat réel est une partie assez triviale de l'interaction. C'est la qualité de l'information procurée qui vous aide à prendre la décision, elle est le cœur de l'application avec laquelle vous interagissez.

L'ère du Web est en train de transformer tout le paradigme informatique qui n'a jamais été aussi clair pour moi que depuis 1994, lorsque Microsoft se convertit au Web, et que j'ai partagé la scène (via satellite) avec le vice-président de cette société, Craig Mundie, lors d'un événement au Japon organisé par NTT. Mundie montrait l'interface prévue pour le serveur Microsoft « Tiger », qui était supposé diffuser de la vidéo à la demande. L'interface émulait MS-Windows, avec des menus déroulants qui répondaient à une télécommande virtuelle.

Il était assez évident pour ceux qui sont impliqués dans le Web, que l' interface adéquate pour la vidéo à la demande, lorsqu'elle viendra et si elle vient, sera une interface de type Web. Ironie du sort, Microsoft possédait l'interface parfaite pour la vidéo à la demande : sa propre encyclopédie du cinéma sur CD-ROM, intitulée Cinemania. Quoi de mieux que de choisir le film souhaité en cherchant sa catégorie, lisant quelques critiques et visionnant quelques passages, puis de cliquer sur un lien hypertexte afin de lancer la projection ? Cinemania dispose de tout cela sauf de la dernière étape. Les capacités réelles des produits d'information hypertextuels ne deviennent patentes qu'après leur connexion à des réseaux. L'information n'est pas une fin en soi, mais une interface grâce à laquelle l'utilisateur de contrôler l'espace d'une application beaucoup trop complexe d'un logiciel traditionnel. (Amazon le sait bien : leur achat d'une base de données de films sur l'Internet, une collection de critiques de spectateurs et d'autres informations sur les films, les placera en première position non seulement pour vendre de cassettes vidéo en ligne mais comme un futur point de passage obligé pour les futurs services de vidéo à la demande).

Les interfaces d'informations sont particulièrement appropriées pour des applications d'aide à la décision, mais elles sont également utiles pour des tâches que l'on ne réalise qu'une seule fois. Dans un sens, l'utilisation « d'automates-magiciens » pour une installation de logiciels est un exemple de cette tendance.

Certaines applications d'informations utilisent une interface plus simple, dont le mode d'interaction avec l'utilisateur est plus proche des programmes informatiques classiques. Mon exemple favori est une application qui était virtuellement impensable il a seulement quelques années : obtenir des cartes et des consignes de route. Un site de cartographie comme maps.yahoo.com vous permet de saisir deux adresses et vous renvoie une carte et un ensemble de consignes à suivre pour aller de l'une à l'autre.

Quel rapport avec les logiciels libres ?

Il existe une réponse évidente : la plupart des techniques qui permettent au Web de fonctionner sont libres.

Les caractéristiques de l'Internet, les protocoles réseau TCP/IP, et tous les éléments clés de l'infrastructure, comme le système de résolution de noms (DNS (Domain Name System)) ont été développés selon le modèle Open Source. Il est facile de démontrer que le programme libre BIND (Berkeley Internet Name Daemon), qui assure ce service est l'application chargée d'un rôle critique la plus répandue. Même si la plupart des navigations web sont réalisées avec des produits propriétaires (Navigator de Netscape ou Internet Explorer de Microsoft), ils sont tous deux des bâtis autour du Web, donc de spécifications ouvertes édictées par Tim Berners-Lee. Selon les données du serveur web Netcraft, qui réalise un comptage automatique, plus de 50 % des serveurs web visibles seraient réalisés avec le serveur web libre Apache. La majorité des contenus dynamiques est engendrée par des langages de scripts libres comme Perl, Python, et Tcl.

Mais cette réponse, si elle évidente, n'est que partielle. Après tout, c'est le Web qui est à la base des applications d'informations réseau du futur et non pas les techniques propriétaires.

À l'heure actuelle, Microsoft négocie le virage en prenant conscience de la puissance du multimédia en ligne. En 1994, lorsque le Web démarra, Microsoft, avec ses produits sur CD-ROM comme Encarta, son encyclopédie en ligne, et Cinemania, sa référence de films, s'y dirigea en mettant en ligne des documents avec des liens hypertexte forts de riches capacités multimédia. Microsoft réalisa même qu'il était important de fournir des sources d'information sur les réseaux.

Cette vision du réseau selon Microsoft (Microsoft Network) ne souffrait que d'un seul problème : la barre d'admission était haut placée. Les éditeurs devaient utiliser des outils propriétaires Microsoft, être approuvés par Microsoft, et payer pour avoir le droit de « jouer ». Au contraire, n'importe qui pouvait créer un site web. Les logiciels dont il avait besoin étaient gratuits. Les spécifications pour créer des documents et du contenu dynamique étaient simples, ouvertes et clairement documentées.

Ce qui était peut-être plus important encore, c'est que les techniques et l'éthique de l'Internet légitimaient la copie d'éléments entre les sites web. Les pages HTML (HyperText Markup Language), qui étaient utilisées pour implanter diverses caractéristiques d'un site web, pouvaient facilement être sauvegardées et imitées. Les scripts CGI eux-mêmes, utilisés pour créer un contenu dynamique étaient disponibles, et on pouvait s'en inspirer. Même si les langages de programmation comme C sont plus rapides, Perl est devenu le langage dominant pour les CGI car il est plus facilement accessible. Perl est suffisamment puissant pour écrire de grosses applications, tout en permettant à des amateurs d'écrire de petits scripts pour effectuer des tâches spécialisées. Encore plus important, Perl n'étant pas un langage compilé, les scripts qui sont utilisés dans des pages web peuvent être examinés, copiés et modifiés par des utilisateurs. De plus, des archives de scripts utiles en Perl sont réalisées et échangées librement entre les développeurs de sites web. La facilité du clonage de sites web construits avec la combinaison HTML+CGI+Perl rend pour la première fois possible la création d'applications réseau puissantes par des non-informaticiens.

À cet égard, il est intéressant de faire remarquer que les principaux efforts de l'industrie du logiciel pour améliorer l'interface web des techniques à contenu actif, comme les applets Java et les ActiveX de Microsoft, ont échoué car ils visaient les programmeurs professionnels et ne pouvaient pas être facilement copiés par les amateurs qui construisaient le Web. Les vendeurs voient le Web en termes de logiciels, ils ne comprennent pas que ce dernier est en train de changer, non seulement les applications qui sont en cours d'élaboration, mais également les outils dont les créateurs ont besoin.

Les analystes de l'industrie ont prédit depuis plusieurs années que Perl et les CGI seraient éclipsés par de nouvelles techniques. Mais même à l'heure actuelle, alors que les plus grands sites web emploient des équipes importantes de programmeurs professionnels, et que de nouvelles techniques comme les ASP (Active Server Pages) de Microsoft et les servlets Java de Sun supplantent les CGI pour des raisons de performances, Perl continue d'accroître sa popularité. Avec les autres langages de scripts libres comme Python et Tcl, il reste au cœur des sites web, petits et grands, car les applications infowares sont fondamentalement différentes des applications logicielles, qui nécessitent d'autres outils.

Si vous étudiez un gros site comme Yahoo!, vous verrez dans les coulisses une armée d'administrateurs et de programmeurs qui reconstruisent continuellement le produit. Le contenu dynamique n'est pas engendré automatiquement, il est souvent façonné à la main, typiquement en utilisant une batterie de scripts écrits rapidement et salement.

« Chez Yahoo, nous ne créons pas de contenu. Nous le regroupons et le mettons en forme. » explique Jeffrey Friedl, auteur du livre Mastering Regular Expressions et programmeur à temps complet chez Yahoo!. « Nous nous nourrissons de milliers de sources, chacune à son propre format. Nous faisons des quantités de traitements pour purifier et trouver ce qu'il faut mettre sur Yahoo! ». Par exemple, pour lier les nouvelles au bandeau déroulant de quotes.yahoo.com, M. Friedl a eu besoin d'écrire un programme de « reconnaissance de noms » qui soit capable de chercher plus de 15000 noms de sociétés. La capacité d'analyse de texte de Perl et la puissance des expressions rationnelles ont rendu cela possible.

Perl est également un composant central dans l'administration système des infrastructures utilisées pour conserver à un site son caractère vivant et actualisé. Un grand nombre de scripts Perl arpentent continuellement les serveurs Yahoo et leurs liens sur les sites externes et alertent le personnel lorsqu'une URL ne renvoie pas le résultat escompté. Le plus connu de ces « arpenteurs » est référencé comme la « faucheuse macabre (Grim Reaper) ». Si une connexion automatisée à une URL échoue plus d'un certain nombre de fois, le document en question est enlevé du répertoire de Yahoo.

Amazon est également un grand utilisateur de Perl. L'environnement d'édition démontre le puissance de Perl à rassembler des outils informatiques disparates ; c'est un « langage d'assemblage » par excellence. Un utilisateur crée un nouveau document avec un formulaire qui appelle un programme Perl, ce dernier engendre un document partiellement au format SGML, puis lance soit Microsoft Word soit GNU Emacs (au choix de l'utilisateur), mais intègre aussi CVS (Concurrent Versioning System) et les outils maison d'Amazon.com. Les classes SGML d'Amazon sont utilisées pour présenter différentes sections sur le Web à titre d'exemple (en HTML, avec ou sans graphiques, à partir de la même base). Un analyseur syntaxique transforme le SGML en HTML pour approbation, avant que les auteurs ne valident leurs modifications.

Perl est qualifié de « chatterton de l'Internet », et, tel le « chatterton », il est utilisé dans les cas les plus inattendus. Comme un ensemble de films mis bout à bout avec du ruban adhésif, un site web est souvent ouvert et fermé en un jour, et nécessite des outils légers et rapides, mais une solution efficace.

Les vains efforts de Microsoft pour retourner de l'infoware au logiciel avec les ActiveX sont empêtrés sur le plan conceptuel, en constante évolution dans l'industrie informatique. Lorsqu'un segment particulier de marché est mature, les acteurs existants ont tout intérêt à ce que les choses restent en place. Adopter ce qui est réellement nouveau ne leur facilite pas la tâche et permet presque de réclamer que de nouveaux acteurs (« les barbares », pour citer Philippe Kahn [2]) créent de nouveaux marchés.

La suprématie acquise par Microsoft sur IBM grâce à la position dominante qu'il détient sur l'industrie informatique est un bon exemple des plus récents développements de la situation. IBM a laissé le marché à Microsoft car il n'avait pas perçu que le changement de pouvoir n'était pas limité au passage de « l'ordinateur format armoire à glace » au modèle de bureau, mais également du matériel propriétaire au produit de consommation, et du matériel au logiciel.

De la même manière, en dépit de ses tentatives pour entrer dans les affaires liées à l'information, Microsoft ne réalise pas, et, si cela se trouve, ne peut réaliser, que le logiciel tel qu'il le conçoit ne sera plus la principale source de création de valeur du secteur.

Du temps de la suprématie d'IBM, le matériel était roi, et la barre pour entrer dans les affaires informatiques était haut placée. La plupart des logiciels étaient créés par des constructeurs de matériels ou par leurs éditeurs satellites.

La disponibilité du PC comme plate-forme de consommation courante (ainsi que le développement des systèmes ouverts tels qu'Unix) a radicalement changé les règles. Soudainement, la barre d'entrée s'est retrouvée à un niveau bas et les entrepreneurs tels que Mitch Kapor, de Lotus, et Bill Gates, de Microsoft, décollèrent.

Si vous explorez l'histoire récente du Web, vous verrez un modèle semblable. Le monopole de Microsoft sur la bureautique a monté la barre extrêmement haut pour quiconque voudrait le concurrencer. Qui plus est, les applications informatiques sont devenues de plus en plus complexes avec Microsoft qui dresse délibérément des barrières pour entraver la concurrence. Ce n'est plus guère possible pour un simple programmeur dans un garage (ou dans une mansarde) d'avoir un quelconque impact.

C'est peut-être la caractéristique la plus importante du logiciel libre : il abaisse les barrières d'entrée sur le marché du logiciel. Vous pouvez librement essayer un nouveau produit et mieux encore, vous pouvez librement créer votre propre version. Le code source est à la disposition d'une quantité importante de vos pairs à des fins de révision. Si l'un d'eux n'en aime pas un détail, il peut le retirer, le corriger ou le ré-implanter. Les corrections étant souvent proposées à la communauté, les erreurs peuvent être rapidement corrigées.

Les développeurs (au moins au début) n'essaient pas de faire concurrence au monde des affaires, mais s'astreignent néanmoins à résoudre des problèmes réels, et de ce fait il y a une place pour l'expérimentation dans un environnement moins exacerbé. Comme je l'ai souvent entendu dire, les logiciels Open Source « vous laissent vous gratter là où ça vous démange ». Grâce au paradigme du développement distribué, et avec les nouvelles fonctionnalités ajoutées par d'autres utilisateurs, les programmes libres évoluent au fur et à mesure de leur conception.

En effet, l'évolution du marché opère mieux à l'instar de la nature en ne s'encombrant pas de barrières marketing, sortes de prothèses qui facilitent la survie des inadaptés. L'évolution engendre non pas un seul vainqueur, mais toute une gamme de gagnants.

C'est précisément l'idiosyncrasie de nombreux programmes libres qui fait leur force. Cela renforce encore les raisons du succès de Perl.

Au départ, Larry Wall a conçu Perl afin d'automatiser des tâches d'administration système auxquelles il était confronté. Après avoir mis son logiciel à disposition du réseau, il lui trouva de plus en plus d'applications, et le langage s'étoffa souvent dans des directions inattendues.

Perl a été décrit comme un langage « jetable » à cause de ses caractéristiques, qui semblent chaotiques aux concepteurs de langages plus « carrés ». Mais le chaos révèle souvent une structure riche. Il semble nécessaire pour modéliser ce qui est par essence complexe. Les langages humains sont complexes car ils modélisent la réalité. Comme l'écrit M. Wall dans l'essai qu'il a rédigé pour le présent livre :

L'anglais est utile parce qu'il est désordonné. Comme il est désordonné, il s'applique bien à l'espace des problèmes, lui aussi désordonné, que l'on appelle réalité. De façon similaire, Perl a été construit pour être désordonné (mais de la façon la plus agréable possible).

Le développement libre est une approche incroyablement efficace lorsqu'il s'agit de faire travailler les développeurs sur les fonctionnalités importantes. Un nouveau logiciel est développé en restant au plus près des demande des utilisateurs, sans distorsion causée par le marketing, sans être issu de décisions d'achat formulées par de hauts responsables. La méthode de développement ascendante est idéale pour résoudre les problèmes issus de la base.

Des entrepreneurs comme Jerry Yang et David Filo ont réussi grâce aux logiciels libres, au cœur du Web, et au paradigme de développement libre, plus simple. Ce n'est pas par accident que Yahoo, le site web le plus important et le plus couronné de succès, soit construit autour de logiciels libres, librement disponibles : le système d'exploitation FreeBSD, Apache, et Perl.

Comme il y a quelques temps, le passage à une grande échelle sera l'étape suivante. Bob Young, de Red Hat, le leader des distributions Linux, l'a noté : il ne se propose pas de détrôner Microsoft sur le marché des systèmes d'exploitation mais plutôt de réduire la valeur globale (montants dépensés cumulés) de ce secteur.

Le fait est que le logiciel libre n'a pas besoin de battre Microsoft à son propre jeu. Cependant, il change la nature du jeu.

Malgré toute la capitalisation boursière du marché, les prestataires d'applications informatives comme Amazon et Yahoo demeurent petits devant Microsoft. Ce qui se dessine est clair. C'est dans les infowares, et non dans le logiciel, qu'on trouvera des pistes pour les interactions homme-machine, et des occasions d'informatiser des tâches qui ne l'avaient pas été jusqu'alors.

Alors qu'émergent les « applications tueuses », le rôle du logiciel consistera de plus en plus à rendre les infowares accessibles. Fournir des serveur web, l'accès aux bases de données, des serveurs d'applications et des langages de programmation comme Java restera profitable tant que ces nouveaux produits entreront eux-mêmes dans le nouveau modèle plutôt que d'essayer de le supplanter. Notons que lors du passage de l'industrie informatique centrée sur le matériel à l'industrie centrée sur le logiciel, le matériel n'a pas disparu. IBM continue d'être une entreprise florissante (cependant, la plupart de ses pairs ont régressé voire échoué). Mais d'autres acteurs ont émergé, adaptés aux nouvelles règles : Dell, Compaq, et surtout Intel.

Intel a bien compris que cela ne leur offrait pas une occasion de gagner la guerre des systèmes informatiques mais plutôt d'être une arme au service des combattants.

Le véritable défi pour le logiciel libre n'est pas de savoir s'il remplacera Microsoft dans la domination de l'ordinateur de bureau, mais plutôt d'engendrer un modèle métier qui l'aidera à devenir le « Intel Inside » de la nouvelle génération d'applications informatiques.

Sinon, les pionniers du logiciel libre seront mis à l'écart comme Digital Research le fut de la course aux systèmes d'exploitation des PC, par quelqu'un qui avait bien compris où se trouvaient les occasions de profit.

Quelle que soit l'évolution de tout cela les logiciels libres ont déjà ouvert une nouvelle voie. Comme les pionniers des premiers micro-ordinateurs (en logiciel et matériel) ont créé la première étape de l'industrie d'aujourd'hui, les logiciels libres ont créé une étape dans un drame qui ne fait que commencer, et qui va conduire à une re-définition du paysage de l'industrie informatique pour les cinq ou dix ans à venir.

Notes
[1] N.d.T. : ce qui correspondrait en français à un néologisme comme « informiciel ».
[2] N.d.T. : le fondateur de Borland.


< Chapitre 11 Sommaire Chapitre 13 >