Tribune Libre
Ténors de l'Informatique Libre
Copyright © 1999 par Éditions O'Reilly
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
|