LES LANGAGES ORIENTES OBJET

@TITRE:C++ en route vers le monopole

@CHAPO:Pour des raisons … la fois techniques, psychologiques et commerciales, C++ s'est, en quelques ann‚es, impos‚ comme LE langage de programmation orient‚e objet. Smalltalk et Ada conservent des niches comme le prototypage rapide ou le temps r‚el.

@TEXTE:Au train o- vont les choses, C++ aura bient“t occup‚ tout le terrain de la programmation orient‚e objet, … quelques niches prŠs. Cet enfant d'AT&T ne faisait pourtant pas sp‚cialement bonne figure … l'origine, face … des concurrents solides comme Smalltalk, Ada ou mˆme Lisp, ou … des compilateurs brillamment con‡us comme Eiffel.

En 1989 encore, les concurrents se comptaient par dizaines: dans leur ouvrage "Les langages … objets" (Inter‚ditions), G‚rald Masini et Amedeo Napoli relevaient plus de trente noms de langages. Certes, une partie d'entre eux ne d‚signait que des prototypes ou des cr‚ations de laboratoires. Mais beaucoup d'entre eux pouvaient pr‚tendre … un bel avenir, notamment les hybrides Lisp-Objets.

Or, en quelques ann‚es, C++ s'est acquis une position dominante qui se confirme de multiples maniŠres.

@INTER:Un must pour les candidats … l'embauche

@TEXTE:Il suffit par exemple de parcourir les offres d'emploi du Monde Informatique pour sentir cette pr‚sence pratiquement exclusive, dŠs que l'on entre dans le monde des grandes firmes techniques: A‚ronautique, T‚l‚communications, Energie, Ing‚nierie technique, voire mˆme D‚fense (o- pourtant Ada devrait r‚gner sans conteste).

Notre r‚cente enquˆte (LMI du 4 mai) a montr‚ que 5% des entreprises utilisaient C++, et souvent comme un de leurs langages principaux. Tous les autres langages orient‚s objets se situaient en dessous des 1%.

Un ‚tudiant en fin d'‚tudes informatique (DEA) nous confirmait: "Il faut que je m'initie … C++ car cela devient un must pour les postes qui m'int‚ressent". Et G‚rald Masini, avec une pointe de regret dans la voix, nous a confirm‚ la puissance de cette domination. Pourquoi un tel succŠs?

@INTER:Les charmes du moindre effort

@TEXTE:Techniquement, C++ se pr‚sente comme un simple prolongement de C. Ses d‚tracteurs signalent les limites de cette approche: la structure de classes ajout‚e … C peut ˆtre consid‚r‚e comme un rajout, voire une verrue, sur un langage de type classique, qui d‚j… ne passait pas pour un modŠle de construction rationnelle.

Mais cette faiblesse formelle devient un atout maŒtre dans l'univers actuel de la programmation et de sa pratique dans les entreprises. La grande affaire, n'est-ce pas de passer aux systŠmes ouverts, au client serveur, au downsizing? C'est … dire … Unix dŠs que la puissance des PC se fait insuffisante. Engag‚s dans cette mutation d'architecture et de systŠme d'exploitation, les services ‚tudes se voient contraints de passer au langage C, ou d'abandonner d‚finitivement tout d‚veloppement interne.

Le d‚ferlement de l'orientation objets les prend ainsi au milieu du gu‚: encore baign‚s dans le Cobol et les systŠmes propri‚taires, mais le regard fix‚ sur les promesses de l'ouverture. C++ leur permet d'absorber les objets sans trop d'effort suppl‚mentaires. Et, … la limite, de revendiquer le label "objets" sans s'y mettre vraiment, puisque rien n'oblige le programmeur … se servir des classes.

La formation et la mise … niveau des ‚quipes de programmation peut donc jouer de C comme d'une base pivot. D'une part on y conduit les ‚quipes classiques, par des enseignements maintenant bien rod‚s.

La transition n'est pas aussi difficile qu'on le pr‚tend, quitte … ne pas s'apesantir sur les structures les plus complexes de C (par exemple les tableaux de pointeurs). Une prudence d'ailleurs recommand‚e par certains pour conserver au rogramme une simplicit‚ et une visibilit‚ plus importantes en g‚n‚ral que la performance technique.

D'autre part, les meilleurs programmeurs et surtout les concepteurs vont pouvoir se lancer dans la conception objets tout en restant s-rs de leurs arriŠres, puisque la continuit‚ est garantie depuis les concepts avanc‚s de classe, d'h‚ritage, etc. jusqu'… la programmation de plus bas niveau.

@INTER:De l'assembleur aux objets, un v‚ritable continuum

@TEXTE:De fait, C++ permet de descendre aussi bas qu'on veut, puisqu'il dispose de toutes les possibilit‚s de C, y compris si n‚cessaire le Peek et le Poke chers aux bricoleurs d'hier pour acc‚der … la m‚moire en adresse absolue. L'accŠs aux interruptions et la "surcharge" en assembleur reste … port‚e imm‚diate du programmeur, pour peu qu'il connaisse suffisamment le systŠme, et qu'il sacrifie la portabilit‚ au besoin de performances. Avec Unix, la communication va aussi de soi puisque que ce systŠme d'exploitation et le langage C sortent du mˆme creuset.

@INTER:La dynamique commerciale d'AT&T

@TEXTE:Outre ses avantages techniques, C++ b‚n‚ficie de la puissance commerciale de son cr‚ateur AT&T. Le g‚ant am‚ricain, indique G‚rald Masini, a les moyens de soutenir des ‚quipes de maintenance puissantes, et donc d'offrir des produits bien d‚bogu‚s (ce qui ne serait pas le cas de tous ses concurrents).

Peu … peu, les outils de programmation C++ s'‚toffent. Borland, suivi de Microsoft, rivalisent en tˆte du march‚ des compilateurs pour micro-ordinateurs. Pour le plus grand profit des utilisateurs: ils peuvent maintenant acc‚der … la programmation objet par des produits de grande diffusion. C'est … dire pour quelques milliers de F, avec une documentation soign‚e et des interfaces graphiques.

@INTER:Des niches pour les concurrents

@TEXTE:Les concurrents ne baissent pas les bras pour autant. Pour Eiffel, Fran‡ois Dupont (directeur commercial de la Soci‚t‚ des Outils du Logiciel), revendique 400 sites en France, dont 200 dans les universit‚s. Il pense que C++ profitera … long terme … Eiffel:"L… o- il y a avait du C, les d‚veloppeurs passent … l'objet avec un certain bonheur. AprŠs, ils se rendent compte qu'ils continuent … manipuler des pointeurs et des effets de bord, et qu'ils n'ont pas les composants propres qu'on leur avait promis".

Smalltalk garde ses amateurs, pour d'autres usages: intelligence artificielle, traitement symbolique, ou pour le prototypage rapide.

Objective C, pense G‚rald Masini, n'a pas d'avenir. Ni chair ni poisson, il ne satisfait complŠtement personne, et on lui pr‚fŠre Smalltalk ou C++. Ada voit son avenir se r‚tr‚cir, mais reste … l'abri de C++ sur un domaine au moins: le temps r‚el.

Quant aux autres langages, ils relŠvent d‚finitivement de la recherche. Simula, l'ancˆtre, "commen‡ait … revenir, mais C++ absorbe tout, mˆme des applications ‚crits d'abord en Lisp ou en Smalltalk.

Car leurs auteurs entrent dans une optique de vente de leurs applicatifs". La panoplie des produits s'‚toffe, leurs fournisseurs unissent leurs efforts pour promouvoir le langage. En France, par exemple, un "Club communication C++" est n‚ en avril de la volont‚ commune de CenterLine, CR2A, Graphael, O2 Technology, Rational et Sun Microsystems, avec la b‚n‚diction de Borland.

L'effet de standard joue … plein en faveur du leader. La menace ne viendra plus de ses concurrents directs, mais peut-tre des outils de d‚veloppement et ateliers logiciels sur grand systŠme.

@SIGNATURE:PIERRE BERGER

@LEGENDE:Pour passer de C … C++, il suffit (presque) d'apprendre la signification de ces quelques lignes (d'aprŠs "Borland C++", de Weiskamp et al.)

Liste de langages objets d'aprŠs Masini

ABCL/1

Act 1

Art. Hybride

C++/Turbo C++/Borland ++

Ceyx. Sur-ensemble de Le-Lisp

Clos: composante objet de Common Lisp

3D Construction Kit

Eiffel

Formes. con‡u pour la synthŠse musicale

Flavors: des machines Symbolics, mariage Lisp/objects

Kee. Hybride

KL-One/KRL/KRS/FRL/Shirka

Kool. Hybride

Lisp/Lecool

Lap. Marseille;

Little Smalltalk. en universit‚.

Logo. succ‚dan‚ de Lisp pour les enfants

Loops. Hybride, trŠs puissant

Lore. Hybride fran‡ais

LRO2 Hybride fran‡ais

Mering. hybride, fran‡ais

NETL. r‚seaux s‚mantiques

Objective C. Extension de C copi‚s sur Smalltalk.

Object Pascal

Objlog. Mazrseille

ObjVlisp. Plut“t un modŠle qui uniformise la notion d'objet …

partir du noyau de Smalltalk-76. Dans l'enseignement

Turbo Pascal 6.

Plasma. Langage d'acteurs

Simula

Smalltalk (72, 76(version exp‚rimentale qui a pr‚c‚d‚80), 80)

X.Lisp. domaine public. interprŠte

Yafool. Hybride fran‡ais

Langage/conception

Langage/environnement

Langage/SGBDO

Compatibilit‚ avec pr‚c‚dents, reprise (C C++ ‚videmment)

Langage objet: il y en a dans le domaine public: Substel (serait un Lisp)