L'industrie du logiciel : Ebauche d'une approche prospective Jean Benoit Zimmermann
La prospective en général est un exercice délicat d'exploration des "futuribles". Dans le domaine de l'informatique, plus encore qu'ailleurs, le rôle de phénomènes émergents et inattendus, risque de rendre l'exercice caduque, dans la mesure où en devenant dominants, ils peuvent orienter l'avenir dans une direction qui n'avait en aucun cas été anticipée.
Il est donc clair qu'il ne s'agit pas ici de prétendre dresser un tableau futuriste de l'industrie informatique et de sa composante logicielle, ne fût-ce qu'à un horizon de 5, 10 ou 15 ans. Amorcer l'ébauche d'une approche prospective, c'est avant tout faire le point sur les enjeux fondamentaux les plus critiques et concevoir comment ils constituent à la fois un défi pour l'informatique de demain et un axe d'orientation des efforts des acteurs concernés.
Dans une première partie, nous verrons comment l'explosion du champ des applications constitue sans-doute l'une des premières manifestations d'une "société de l'information", qui n'avait pas eu jusque là de fondements effectifs. Dans une deuxième partie, nous examinerons l'évolution des modes d'organisation de la production de logiciels et nous discuterons de la question de son industrialisation. La troisième partie enfin traitera du rôle des infrastructures de réseaux et de l'adaptation des logiciels à ces nouveaux modes de communication et d'accès aux sources de l'information.
L'élargissement du champ des applications ; à propos de l'émergence d'une "société de l'information"
Les coûts des équipements de traitement et de stockage de l'information, ainsi que ceux des télécommunications qui sont à la base des réseaux, n'ont cessé de chuter tandis que les performances, tant des composants que des divers équipements en cause (il n'est qu'à penser à la capacité des disques durs), ont connu une progression de nature exponentielle. Tout autorise à penser que cette évolution vertigineuse n'est pas prête de s'épuiser, au moins peut-on raisonnablement le prédire pour la décennie à venir.
Les capacités de traitement de l'information ainsi disponibles, en propre ou intégrées dans d'autres produits, vont ouvrir plus encore le chemin à de nouvelles applications et de nouveaux utilisateurs. De nombreux champs technologiques qui tendront à rapprocher l'ordinateur de l'homme, comme la visualisation, la réalité virtuelle, etc., vont connaître d'importants développements, alors qu'ils n'en sont aujourd'hui qu'à leurs premiers balbutiements. De nombreuses compétences seront ainsi mobilisées dans les activités logicielles, bien plus largement que celles traditionnellement recensées dans ce champ technologique.
Les années 90 ont sans doute, plus que jamais, vu le passage d'une informatique spécifiée et délimitée, enfermée dans ses frontières, à une informatique diffusée, à une irruption des technologies de l'information dans toutes les composantes, économiques, sociales et culturelles, de la société de cette fin de siècle.
C'est là sans doute la vraie naissance d'une "société de l'information" qui ne signifierait plus l'asservissement des organisations économiques et sociales aux impératifs et aux contraintes des systèmes informatiques, mais supposerait plutôt que ces technologies se coulent peu à peu dans les spécifications des autres domaines d'activités, pour contribuer à la manière de satisfaire leurs besoins.
Et ceci semble aussi vrai des organisations (productives ou non) que des objets et des fonctions de la vie quotidienne.
Si l'on prend l'exemple des systèmes d'information dans les grandes entreprises et grandes organisations, les architectures centralisées autour des grands ordinateurs mainframes, se traduisaient par le pouvoir et une forme de préséance hiérarchique de la Direction Informatique au sein de l'organisation. Le succès des architectures client-serveur, mais plus encore des concepts de type Intranet, témoignent d'une tendance à la restauration du pouvoir de l'organisation et des utilisateurs sur les technologies de l'information.
Plus encore, la montée en puissance d'une intelligence distribuée et d'une informatique en réseau témoignent de la progressive intégration des technologies de l'information au coeur des activités économiques et sociales. Et cela prend une importance particulière au moment même où s'affirme l'émergence d'une économie fondée sur la connaissance (knowledge based economy), au coeur de laquelle les fonctions de recueil, de mémorisation et de stockage de l'information prennent une place tout à fait essentielle.
Ainsi les années 90 resteront celles du "downsizing", c'est-à-dire
du transfert progressif des applications sur des machines plus petites (notamment micro-ordinateurs en réseaux). La réécriture ou la conversion des programmes est une opération complexe et délicate et, par conséquent, lente à réaliser. Face à ce délai, la stratégie des grands constructeurs a d'abord consisté à "habiller" les applications mainframes d'interfaces graphiques (c'est ce qu'on appelé le "revamping"). De nombreux outils ont été introduits en vue de substituer les anciens terminaux des applications mainframes. En réalité, même si l'on a remplacé, en local, le terminal par un micro-ordinateur qui traduit et présente, l'illusion pour l'utilisateur est de courte durée car la logique est restée fondamentalement la même (1).
Malgré l'importance des coûts de conversion et de réécriture, la vraie tendance est donc celle d'une évolution qui suppose la rupture avec les conceptions passées. Architectures client-serveur et Intranet en sont des manifestations significatives ; elles ne sont peut-être que des étapes d'une mutation des systèmes d'information qui n'a pas encore révélé toute sa portée.
A l'opposé, ce sont les biens de consommation qui intègrent de plus en plus une logique de traitement de l'information. La tendance est au doublement, tous les deux ans, du volume de code intégré dans ces produits. D'ores et déjà un téléviseur intègre 500 kilo-octets de logiciel, un rasoir 2 kilo-octets. Les systèmes de propulsion des nouvelles voitures de General Motors intègrent plus de 30.000 lignes de programme (2).
Plus que jamais auparavant, la production de circuits intégrés va devoir incorporer une variété de fonctions logicielles susceptible de les adapter aux spécifications d'un champ et d'un nombre toujours croissant de spécifications d'application. La multiplication de ces niches apparaîtra très rapidement contradictoire avec la rentabilité de l'organisation de lignes de production spécifiques à chacune d'entre elles. L'orientation technologique en direction des circuits pré-diffusés (semi-customed ICs) a représenté une forme de réponse à cette situation, mais selon une dimension purement matérielle qui est celle de la logique câblée. De même que l'a connu en son temps l'informatique, c'est une logique programmée qui affirmera de plus en plus sa place dans les produits de la micro-électronique et demandera la disponibilité d'une compétence adaptée.
En poussant le raisonnement un peu plus loin encore, le composant devenant ordinateur, intègre en son sein l'intégralité de l'architecture d'un système de traitement de l'information. Pour fonctionner, il n'a plus besoin que d'interface avec son milieu de commande et de communication avec son environnement : périphériques d'entrée-sortie, capteurs, accès à des réseaux de communication ... Dès à présent, les besoins de commande et de mesure ont conduit à recourir de manière croissantes à des micro-technologies d'interface, essentiellement aujourd'hui micro-capteurs, mais déjà progressivement: micro-vannes, micro-moteurs... Dans un avenir raisonnable, les fonctions de traitement de l'information pourraient s'intégrer encore davantage dans les autres fonctions. Le traitement de données s'intégrerait directement à l'objet qu'il est sensé guider et contrôler, la puissance de calcul se répartirait au plus près de l'utilisation, dans le foret d'une machine-outil, dans l'injecteur ou les plaquettes de frein d'une automobile (3). L'intégration micro-électronique se combine ainsi avec d'autres technologies pour former des objets hybrides nouveaux; l'ensemble des technologies microscopiques, et notamment la micro-mécanique (micro-moteurs, micro-machines, micro-capteurs,...), est amené à jouer conjointement un rôle particulier.
Enfin, un maître mot de l'informatique de demain est celui de
l'interface homme-machine. Les Japonais qui parlent d'une informatique humaine ne s'y sont pas trompés. L'ordinateur est certes intégré au composant, mais ce qui demeure la clef de sa diffusion, est bien l'ensemble des technologies d'utilisation. Celles qui vont permettre à l'utilisateur d'accéder à toute la puissance de traitement disponible, sans recours à un spécialiste ou sans devoir devenir spécialiste lui-même. Celles qui vont permettre à l'utilisateur de disposer d'outils aptes à satisfaire au mieux ses besoins. Mais celles aussi qui vont lui permettre de dialoguer le plus simplement avec la machine, avec son langage propre, son écriture, sa voix, son langage naturel. Pour le Japon, c'est une impérieuse nécessité, bien plus qu'une volonté de devancer le monde. Le Japon, en raison de son système d'écriture propre, a toujours été limité dans les possibilités de grande diffusion des outils informatiques. Témoin en est le faible niveau actuel de pénétration de la micro-informatique. Dépasser cette barrière relève ici du bon sens, mais elle ouvre aussi un marché considérable.
Pour devenir cet objet convivial, l'ordinateur devra intégrer un certain nombre de technologies logicielles : reconnaissance et synthèse de
la parole, reconnaissance de l'écriture, traitement du langage naturel. Il offrira à l'utilisateur des interfaces graphiques de plus en plus évoluées et adaptées (on a même parlé de "terminaux caméléons"). Il est déjà
-et il sera indubitablement- multimédia, capable de traiter simultanément et tout aussi bien des données, du son ou des images. En outre il offrira des technologies matérielles d'entrée-sortie de qualité sans-cesse améliorée : affichage, clavier, écran tactile,... Ici les technologies actuellement cantonnées dans le domaine des périphériques, auront un rôle tout à fait central à jouer. Dans le même temps, elles renforceront le caractère de "boîte noire" et de transparence du matériel qui devra accepter des interfaces homme-machine standardisées, maintenant ainsi les conditions d'une forte concurrence par les prix et d'une érosion continue des marges dans ce domaine du hardware.
Vers une industrialisation du logiciel ?
L'activité de développement du logiciel s'organise encore aujourd'hui selon un mode de production étonnamment artisanal. Et ceci aussi bien
en ce qui concerne les méthodes de construction et de développement
lui-même qu'en ce qui concerne les divers aspects de sa fiabilité.
Organisation de la production
La montée en puissance des supports matériels des technologies de l'information et le développement des réseaux ouvrent la voie à des logiciels intégrant un nombre croissant de fonctions et de spécifications. Cette évolution vers des systèmes complexes suppose la mise en oeuvre de plus en plus systématique de principes de spécialisation et de coopération. Elle met par conséquent en avant le rôle des intégrateurs qui détiennent les compétences de maîtrise, tant sur le plan matériel que sur le plan logiciel, des nouvelles architectures des systèmes d'information.
Là est sans doute l'une des voies essentielles de l'industrialisation du logiciel. L'une de ses premières conséquences est, aux Etats-Unis, une plus grande dispersion entre des pôles spécialisés (graphique, réseaux, bases de données,...) qui s'autonomisent les uns vis-à-vis des autres pour rentrer ensuite dans des logiques combinatoires.
Le génie logiciel joue, dans ce processus, un rôle central, dans la mesure où c'est sur lui que repose la possibilité de traduire des problèmes d'organisation complexes en morceaux simples, réutilisables et gérables. Il fournit un outillage de base pour les intégrateurs, voire même pour les utilisateurs.
Ainsi l'innovation dans la production logicielle repose sur deux grands types de compétences qui relèvent respectivement de la créativité (prémisse indispensable à la spécialisation) et de l'organisation. Même s'il est possible d'imaginer que la spécialisation permette l'utilisation d'une main d'oeuvre peu qualifiée (donc délocalisable), elle devrait avant tout rester fondée sur une main d'oeuvre de haut niveau, proche des sources scientifiques (algorithmes mathématiques, simulation,...) et travaillant par conséquent selon un mode de production toujours artisanal.
Mais dans ce contexte, le changement le plus fondamental sera sans doute celui de la systématisation du recours à des "composants logiciels" portables et réutilisables. Jusqu'à présent, dans leur grande majorité, les programmes d'ordinateurs sont produits de manière tout à fait artisanale et "manuelle", à partir de langages de programmation bruts et par l'utilisation de techniques implicites qui ne sont ni répertoriées ni duplicables.
La tendance actuelle va dans le sens d'une double évolution : un recours accru aux fondements mathématiques de la programmation (d'où l'importance des liens avec les structures académiques et universitaires) et, d'une façon plus fondamentale encore, l'émergence de méthodes et d'organisations commerciales favorable à la réutilisation de composants logiciels interchangeables.
Traditionnellement, depuis des décennies, les programmeurs conçoivent leurs programmes en utilisant les ressources de bibliothèques de sous-programmes et de routines. Mais cette pratique était limitée, dès lors qu'il se serait agi de changer de langage de programmation, de plate-forme de mise en oeuvre ou d'environnement système. Plus encore l'évolution du hardware entraînait l'obsolescence du software. L'enjeu essentiel aujourd'hui est de trouver les moyens de défaire les liens qui figent la mise en oeuvre des programmes à un environnement spécifique d'ordinateur et à d'autres programmes.
Au Japon la réutilisation de composants logiciels standards est largement répandue depuis de nombreuses années, ce qui constitue indéniablement une forme d'industrialisation de la production (4). Cependant cette pratique s'inscrit quasi-exclusivement dans un contexte "propriétaire". Tous les grands intégrateurs construisent leurs logiciels à façon en s'appuyant sur de grandes bibliothèques de "packages" (routines et programmes faits maison). Alors qu'aux USA, ces composants logiciels pourraient être commercialisés séparément, ils sont, au Japon, vendus intégrés dans des logiciels sur-mesure.
Nous sommes entrés désormais dans l'ère de la réutilisation des pièces de programmes, ce qui suppose une évolution vers une configuration où la programmation sera avant tout le ré-assemblage de composants préexistants en des architectures logiques complexes. Ces objets auront été créés par des professionnels, l'assemblage du programme pourra dans certains cas être le fait de non spécialistes de l'informatique, mais utilisateurs ou spécialistes d'un domaine d'application concerné. Cette évolution fondamentale dans l'environnement de programmation devrait contribuer à corriger l'asymétrie des progrès entre hardware et software depuis les origine de l'informatique (5). Elle implique aussi une certaine forme de concentration.
Les économies d'échelle vont rapidement prendre le pas, dans un marché nouvellement gagné aux guerres de prix. Dans la mesure où les ventes de logiciels vont croître très fortement en volume, elles vont permettre à un petit nombre de producteurs de réaliser des profits considérables, avec des marges unitaires décroissantes. À terme on peut s'attendre à ce que ne subsistent que deux ou trois producteurs d'un composant donné (6). La plupart des producteurs de logiciels ne feront
alors qu'intégrer des composants produits par d'autres (en écrivant les
composants spécifiques non disponibles).
Bien souvent ce seront les utilisateurs eux-mêmes qui intégreront les composants nécessaires à la réalisation de leurs applications. Sans sortir de leur champ de compétences propres, ils pourront développer des utilisations de l'informatique spécifiques à leurs besoins, en toute transparence, ignorant la plupart du temps qu'il font de la programmation.
Fiabilité, tests et certification
La fiabilité des grands systèmes logiciels complexes est loin d'être acquise. Des études concernant les projets logiciels de grande échelle, ont montré que pour six nouveaux systèmes effectivement mis en oeuvre, deux ont échoué. En outre, les délais effectifs de réalisation dépassent en moyenne de moitié les prévisions, et de manière croissante avec la taille des projets. Pour les trois-quarts d'entre eux, les défaillances opératoires, qui systématiquement subsistent, entraînent un mode de fonctionnement différent de celui prévu, voire pas de fonctionnement du tout...(7)
Mais ces problèmes de fiabilité ne concernent pas seulement les très grands systèmes. D'un point de vue plus général, les fondements traditionnels de la programmation sont en train d'évoluer à mesure que les équipements progressent en puissance et en rapidité. Dans ce même temps, les fonctions les plus simples se voient dotées d'une sophistication nouvelle et par conséquent d'une complexification des logiciels d'application correspondants. Si l'on prend l'exemple des logiciels de traitement de texte ou de présentation
graphique, les nouveaux produits offerts ont intégré des progrès considérables au plan des fonctionnalités, de la qualité de présentation, des interfaces
graphiques, qui sont désormais considérées comme des acquis.
L'idée qu'un logiciel comporte nécessairement des défauts, qui se révéleront à l'usage et se corrigeront au fil du temps et des versions, paraît de moins en moins acceptable. Elle doit progressivement faire place à celle d'une programmation sans défauts, argument fort de marketing, mais aussi nécessité incontournable pour un nombre croissant d'applications. Et les applications dites "sensibles" (sécurité, risque élevé,...) ne sont pas les seules concernées. Dans le cas d'applications incorporées dans des objets quotidiens (appareils domestiques, de l'interrupteur au lave-vaisselle par exemple), il n'est pas envisageable économiquement d'effectuer des opérations de rapatriement ou de mise à jour, en cas de détection d'un problème. Quant aux applications intégrées dans des systèmes complexes d'un autre domaine (exemple de l'automobile) il n'est pas acceptable qu'un défaut de programmation puisse mettre en péril le bon
fonctionnement (arguments de sécurité -exemple de l'ABS- ou de coût -exemple du contrôle d'injection dans une voiture de haut de gamme-).
La fiabilité des programmes est aujourd'hui principalement fondée sur des méthodes de type "beta-testing", qui consistent à faire tester le produit par une grand nombre de "pré-utilisateurs" cobayes. Ainsi le système Chicago de Microsoft a été testé par 10 000 utilisateurs. Le programme de traitement de texte Word 6 (qui occupe un volume de 48 Mo (8) en version complète) a été développé sans aucune sorte de méthode formelle, mais sur la base de "tolérance de faute" et de tests extensifs (9).
Cependant, réussir à produire un code immédiatement sans failles est une tâche difficile. Aux Etats-Unis, le Département de la Défense applique des méthodes et standards de test très rigoureux pour assurer la fiabilité des programmes utilisés au coeur de missions sensibles. Ces standards ont été récemment utilisés pour la certification d'un satellite du DoD et de la NASA, à destination d'une orbite lunaire.
Mais les erreurs en conditions réelles d'utilisation sont très difficile à anticiper, car elles apparaissent seulement sous certaines conditions parmi un très grand nombre de situations possibles, difficilement envisageables de manière exhaustive. Et il n'est pas clair que les méthodes actuellement utilisées pour produire des logiciels critiques sûrs, puissent évoluer et s'étendre en conformité avec les besoins futurs. Il est même probable au contraire que, pour les systèmes en temps réel au moins, on en soit aujourd'hui à un point de rupture (10).
La demande d'une informatique de plus en plus distribuée complexifie encore le problème. Très souvent les défaillances d'un système résultent d'une situation qui n'avait pas su être envisagée. Et ici l'effet des réseaux joue un rôle d'amplification de par la croissance combinatoire de l'ensemble des états possibles. Dès lors qu'un système croît en complexité, il finit par atteindre un niveau tel que plus personne n'est en position de maîtriser à soi seul la compréhension de l'ensemble et les méthodes traditionnelles de développement s'avèrent inefficace et obsolètes.
Vers la constitution d'infrastructures de l'information : Internet et les autoroutes de l'information
Aujourd'hui, la possibilité d'accéder à une infrastructure comme Internet est en train de faire tomber les obstacles à la circulation de l'information, par delà la distance géographique, par delà les standards d'ordinateurs et de logiciels. D'abord, les standards de communication TCP/IP en oeuvre sur Internet, ouvrent la possibilité pour des dizaines, voire des centaines de millions d'ordinateurs de communiquer, quelque soit leur marque, leur système d'exploitation et leurs logiciels d'application. Ensuite le langage html (hypertext markup language), espéranto de l'Internet, offre à tous les systèmes connectés la possibilité de présenter leur propre information sous la forme de pages graphiques.
L'étape suivante est sans doute plus critique encore : elle consiste à offrir non seulement le partage des ressources informationnelles, mais aussi le partage des outils, des programmes ; et ceci risque de profondément bouleverser le paysage informatique.
Dès aujourd'hui, nombre de programmes sont disponibles en "freeware" et en "shareware" (11) sur l'Internet. Et les barrières à l'entrée pour une telle offre sont absolument minimes. Les grands éditeurs des logiciels de navigation, tout comme les dizaines d'entreprises "startups" éditrices de logiciels pour "le Net" utilisent ce support comme une base de leur stratégie marketing. Ils y cherchent parfois à provoquer des formes de lock-in technologiques (12) pour fidéliser une clientèle.
Très vite apparaîtra sur le réseau une offre de logiciels spécifiques que l'on pourra acquérir pour un usage unique ou limité, et donc rémunérer en fonction de l'usage effectif que l'on en fera. Cela constituerait évidemment une innovation commerciale radicale vis-à-vis de la situation actuelle, où un logiciel est acheté une fois pour toutes et payé selon un tarif de licence, forfaitaire et global, incluant le plus souvent une pléthore de fonctionnalités dont la plupart des usagers n'utiliseront qu'une petite partie.
Plus encore, la frontière entre contenu et applications va tendre à s'estomper, permettant de proposer une large gamme de "services-réseau" sur un mode interactif, à l'exemple d'un catalogue électronique qui comportera son propre programme pour effectuer une commande. C'est la notion de "logiciel jetable" (disposable software) ou d'"applets", petits logiciels qui nichés dans les pages d'un serveur Web créent, pour l'utilisateur, une machine virtuelle afin de tirer partir des informations et données obtenues (aussi bien pour réserver un ticket d'avion que pour consulter la Bourse ou pour visionner une animation ou un clip).
Les conséquences possibles d'une telle évolution sont difficiles à anticiper, tant elles peuvent bouleverser le fonctionnement de l'industrie informatique, par la remise en cause de la logique jusque là prévalente de course à la puissance :
Une hypothèse, sur laquelle misent beaucoup d'acteurs de l'industrie, est le concept de "PC-Net", ordinateur personnel, fondé sur une capacité limitée de stockage et de traitement et qui tirerait sa puissance effective des ressources du réseau. Les informations basiques sont celles disponibles sur le réseau ; les programmes sont obtenus à partir du réseau quand ils sont nécessaires, pour le temps nécessaire et selon le profil nécessaire. Une sorte de "just-in-time software", qui permet de réduire au minimum les coûts fixes et de les reporter sur la forme de vrais coûts marginaux d'utilisation. Et l'on peut facilement imaginer que le concept s'étende au système d'exploitation lui-même, permettant de transformer l'architecture du système selon les spécifications de l'utilisateur (par exemple les différents membres d'une famille) ou du besoin d'utilisation précis. La mise en oeuvre effective de tels concepts ne serait évidemment pas sans conséquence sur la manière de concevoir les équipements eux-mêmes. On perçoit les enjeux d'une telle hypothèse pour l'industrie informatique toute entière.
Internet est en croissance ultra-rapide : de l'ordre de 10 à 15 % par mois. Le marché des logiciels pour l'Internet représente aujourd'hui à peine 0,6% des 100 milliards de dollars du marché mondial du logiciel. Mais c'est un marché qui croît à un rythme annuel de 100% et devrait atteindre les 4 milliards de dollars avant l'an 2000, alors que le marché de 19,3 milliards des logiciels pour mainframes devrait à peine croître de 2% en 4 ans pour atteindre 19,6 milliards de dollars en 1999...(13)
De Sun à Microsoft en passant évidemment par Netscape et Oracle, tous les grands éditeurs de logiciel préssentent qu'Internet peut être à la source d'un nouveau modèle économique de l'industrie du logiciel et intègrent cette hypothèse parmi leurs toutes premières priorités stratégiques. Microsoft a établi des passerelles Internet avec la plupart de ses logiciels et ses propres outils de navigation. Oracle offre des outils de navigation et une version Web de son logiciel de bases de données. Sun a créé Java,
un langage de programmation orienté objet (14), basé sur C++ et conçu spécialement pour le Net. Il a concédé des licences à un grand nombre de développeurs et le distribue gratuitement pour l'enseignement et la recherche. Les applications commencent à proliférer. IBM a créé une "Internet Software Unit", et tandis qu'il explore le développement de son propre "Web executable language", il s'interroge sur l'opportunité de prendre une licence Java. Netscape a également créé son propre langage LiveScript et Microsoft son VisualBasic. (15)
Dans ce nouvel environnement, de nouvelles catégories d'applications vont émerger. L'une d'entre elles, qui est apparue récemment et qui tend à jouer un rôle important dans le futur, est celle des agents intelligents (16). Ces "agents" sont capables de se déplacer dans les réseaux pour interagir avec certains programmes, en vue par exemple d'une recherche particulière (une information, la recherche d'un billet d'avion, un achat,...). La rupture fondamentale est ici dans le fait d'utiliser "l'intelligence" pour effectuer une recherche au sein d'une information non-structurée, plutôt que de pré-structurer cette information elle même (ce qui n'exclut pas qu'il y ait encore beaucoup de progrès à attendre dans la conception des bases de données).
Cette évolution peut être interprétée comme significative du passage d'une ingénierie logicielle à une ingénierie informationnelle (17). L'approche traditionnelle de structuration de l'information a montré ses limites. La principale difficulté d'une exploitation de ressources en réseau tient avant tout au caractère pléthorique des données disponibles. L'information résulte de la mise en connexion des données et du propos, ce qui implique que la recherche d'information, pour un
utilisateur donné, soit portée par une forme "d'intelligence sémantique". C'est là un aspect fondamental d'une optique de représentation des connaissances.
Un tel contexte crée des opportunités d'entrée assorties de faibles
barrières, sur des niches de marché susceptibles d'être occupées par de petites entreprises, pour un marché par définition mondial.
Ainsi, s'il paraît illusoire de vouloir dresser un tableau futuriste précis de l'industrie du logiciel, il reste néanmoins possible de dégager certaines tendances fortes. Celles-ci résultent de la place majeure occupée désormais par le logiciel au sein des systèmes d'information.
D'abord, la multiplicité des problèmes à résoudre et la nécessité (compétitive) de répondre de manière fine aux nouveaux "besoins" d'utilisation supposent d'évoluer vers des systèmes de plus en plus universels, dans lesquels les logiciels s'imposent progressivement comme substituts des architectures câblées.
Le deuxième point est relatif à la complexification croissante des produits logiciels eux-mêmes et tout particulièrement des logiciels d'application. Cette complexité croissante ne correspond pas uniquement à l'objectif de résoudre des tâches complexes ; elle résulte également des stratégies concurrentielles des grandes firmes du logiciel, qui ont imposé un rythme d'innovation accéléré, comme arme stratégique en vue de la recherche de positions dominantes (18). Cette complexification impose de nouveaux modes de production et d'organisation industrielle qui conduisent nécessairement à des ruptures fortes.
La troisième dimension, ensuite, est celle de la diffusion, diffusion dans les structures économiques et sociales renforcée par le développement des réseaux, mais aussi diffusion dans les objets quotidiens qui, en intégrant des fonctions électroniques et un code "embarqué", deviennent eux-mêmes systèmes d'information. Cette diffusion, en même temps qu'elle est source de progrès pour l'utilisateur, est également génératrice d'une dépendance nouvelle à l'égard de technologies sophistiquées, qui occultent pour l'individu le mode de mise en oeuvre des techniques. Réparer une voiture ou un rasoir électrique, n'est plus seulement affaire de mécanique ou d'électricité, mais nécessite de recourir à des compétences informatiques pointues et de décrypter des fonctions de traitement de l'information dont l'expression n'est en général pas explicite (absence du code source).
Ainsi la généralisation des technologies de l'information dans le mode de vie et de travail quotidien contribuera de plus en plus, en retour, à éloigner l'utilisateur standard de techniques qui lui étaient précédemment relativement proches. Ce phénomène révèle un aspect souvent peu discuté de la "société de l'information", où la technologie, en même temps qu'elle se rapproche du citoyen, tend à lui échapper de manière radicale et à lui confisquer sa part d'autonomie en matière de technique.

Bibliographie
Business Week, "The software Revolution", December 4, 1995.
Business Wekk, "The Web keeps spreading", January 8, 1996.
Cusumano (M.A.), The software Factory, Oxford University Press, 1991.
Conklin (P.F.) and Newcomer (E.), "The Keys to the Highway", in Lebaert (Ed.) 1995.
EITC , Software Technology. The Key Enabler for the Information Society, EITC Conference Proceedings, June 6, European Commission, DG III, 1994.
Gazis (D.G.), "The Evolving Ressource", in Lebaert (Ed.) (1995).
Gibbs (W.W.), "Software Chronic Crisis", Scientific American, September, 1994.
Lebaert (Ed.), The Future of Software, The MIT Press, 1995.
Vaskevitch (D.), "Is any of this relevant", in Lebaert (Ed.) 1995.
Zimmermann (J.B.), "L'industrie du logiciel, de la protection à la normalisation", in Baslé M., Heraud J.A. et Perrin J. (Eds.) "Changement institutionnel et changement technologique", CNRS Editions, 1995.

Notes
  1. Vaskevitch (1995)
  2. Gibbs (1994)
  3. Laquelle se serait elle-même transformée peu à peu en un système complexe de traitement de l'information.
  4. Cusumano (1991)
  5. Gazis (1995)
  6. Conklin & Newcomer (1995)
  7. Gibbs (1994).
  8. Il n'est pas inintéressant de rappeler à ce propos que les premiers micro-ordinateurs, il y a à peine plus d'une quinzaine d'années, ne comprenaient que des lecteurs de disquettes de capacité de 360 kilo-octets, ce qui limitait à ce volume (et souvent beaucoup moins) les premiers traitements de textes commercialisés. Les premiers disques durs introduits dans la première moitié des années 80 avaient une capacité de 10 mega-octets, ce qui représentait une augmentation considérable de la capacité de stockage, mais sans commune mesure avec les capacités actuelles qui sont couramment de un ou plusieurs giga-octets.
  9. EITC (1994)
  10. Ibidem
  11. Le freeware est une diffusion gratuite ; le shareware propose à l'utilisateur de payer une contribution volontaire si le programme le satisfait et s'il compte l'utiliser.
  12. Ainsi Netscape a vendu des millions d'exemplaires de son Browser "Navigator" à un prix très peu élevé. Récemment, il est passé à l'étape suivante en vendant son logiciel de création de serveur aux entreprises qui veulent créer et exploiter un site Web. En ajoutant ses propres extensions au standard html, les pages Web créées avec le logiciel de Netscape ne seront pleinement lisibles que lues avec un browser Netscape (selon BW 04.12.95). Cette stratégie vise clairement à accéder progressivement à une position dominante en établissant des formes d'incompatibilité dans un espace précisément construit sur des concepts d'hétérogénéité et d'ouverture...
  13. Business Week (1996)
  14. Donc susceptible de s'intégrer dans un contexte multimédia.
  15. Business Week (1995)
  16. Dont la conception est en bonne partie héritée des principes de "virus"...
  17. EITC (1994)
  18. Ces aspects stratégiques ne sont pas sans rapport avec le problème de la propriété intellectuelle du logiciel