@TITRE:C++ en route vers le monopole
@CHAPO:Pour des raisons la fois techniques, psychologiques et commerciales, C++ s'est, en quelques annes, impos comme LE langage de programmation oriente objet. Smalltalk et Ada conservent des niches comme le prototypage rapide ou le temps rel.
@TEXTE:Au train o- vont les choses, C++ aura bientt occup tout le terrain de la programmation oriente objet, quelques niches prs. Cet enfant d'AT&T ne faisait pourtant pas spcialement bonne figure l'origine, face des concurrents solides comme Smalltalk, Ada ou mme Lisp, ou des compilateurs brillamment conus comme Eiffel.
En 1989 encore, les concurrents se comptaient par dizaines: dans leur ouvrage "Les langages objets" (Interditions), Grald Masini et Amedeo Napoli relevaient plus de trente noms de langages. Certes, une partie d'entre eux ne dsignait que des prototypes ou des crations de laboratoires. Mais beaucoup d'entre eux pouvaient prtendre un bel avenir, notamment les hybrides Lisp-Objets.
Or, en quelques annes, C++ s'est acquis une position dominante qui se confirme de multiples manires.
@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 prsence pratiquement exclusive, ds que l'on entre dans le monde des grandes firmes techniques: Aronautique, Tlcommunications, Energie, Ingnierie technique, voire mme Dfense (o- pourtant Ada devrait rgner sans conteste).
Notre rcente enqute (LMI du 4 mai) a montr que 5% des entreprises utilisaient C++, et souvent comme un de leurs langages principaux. Tous les autres langages orients 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'intressent". Et Grald Masini, avec une pointe de regret dans la voix, nous a confirm la puissance de cette domination. Pourquoi un tel succs?
@INTER:Les charmes du moindre effort
@TEXTE:Techniquement, C++ se prsente comme un simple prolongement de C. Ses dtracteurs signalent les limites de cette approche: la structure de classes ajoute C peut tre considre comme un rajout, voire une verrue, sur un langage de type classique, qui dj ne passait pas pour un modle de construction rationnelle.
Mais cette faiblesse formelle devient un atout matre dans l'univers actuel de la programmation et de sa pratique dans les entreprises. La grande affaire, n'est-ce pas de passer aux systmes ouverts, au client serveur, au downsizing? C'est dire Unix ds que la puissance des PC se fait insuffisante. Engags dans cette mutation d'architecture et de systme d'exploitation, les services tudes se voient contraints de passer au langage C, ou d'abandonner dfinitivement tout dveloppement interne.
Le dferlement de l'orientation objets les prend ainsi au milieu du gu: encore baigns dans le Cobol et les systmes propritaires, mais le regard fix sur les promesses de l'ouverture. C++ leur permet d'absorber les objets sans trop d'effort supplmentaires. 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 rods.
La transition n'est pas aussi difficile qu'on le prtend, quitte ne pas s'apesantir sur les structures les plus complexes de C (par exemple les tableaux de pointeurs). Une prudence d'ailleurs recommande par certains pour conserver au rogramme une simplicit et une visibilit plus importantes en gnral 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 arrires, puisque la continuit est garantie depuis les concepts avancs de classe, d'hritage, etc. jusqu' la programmation de plus bas niveau.
@INTER:De l'assembleur aux objets, un vritable continuum
@TEXTE:De fait, C++ permet de descendre aussi bas qu'on veut, puisqu'il dispose de toutes les possibilits de C, y compris si ncessaire le Peek et le Poke chers aux bricoleurs d'hier pour accder la mmoire en adresse absolue. L'accs aux interruptions et la "surcharge" en assembleur reste porte immdiate du programmeur, pour peu qu'il connaisse suffisamment le systme, et qu'il sacrifie la portabilit au besoin de performances. Avec Unix, la communication va aussi de soi puisque que ce systme d'exploitation et le langage C sortent du mme creuset.
@INTER:La dynamique commerciale d'AT&T
@TEXTE:Outre ses avantages techniques, C++ bnficie de la puissance commerciale de son crateur AT&T. Le gant amricain, indique Grald Masini, a les moyens de soutenir des quipes de maintenance puissantes, et donc d'offrir des produits bien dbogus (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 tte du march des compilateurs pour micro-ordinateurs. Pour le plus grand profit des utilisateurs: ils peuvent maintenant accder la programmation objet par des produits de grande diffusion. C'est dire pour quelques milliers de F, avec une documentation soigne et des interfaces graphiques.
@INTER:Des niches pour les concurrents
@TEXTE:Les concurrents ne baissent pas les bras pour autant. Pour Eiffel, Franois Dupont (directeur commercial de la Socit des Outils du Logiciel), revendique 400 sites en France, dont 200 dans les universits. Il pense que C++ profitera long terme Eiffel:"L o- il y a avait du C, les dveloppeurs passent l'objet avec un certain bonheur. Aprs, 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 Grald Masini, n'a pas d'avenir. Ni chair ni poisson, il ne satisfait compltement personne, et on lui prfre Smalltalk ou C++. Ada voit son avenir se rtrcir, mais reste l'abri de C++ sur un domaine au moins: le temps rel.
Quant aux autres langages, ils relvent dfinitivement de la recherche. Simula, l'anctre, "commenait revenir, mais C++ absorbe tout, mme 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 bndiction 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 dveloppement et ateliers logiciels sur grand systme.
@SIGNATURE:PIERRE BERGER
@LEGENDE:Pour passer de C C++, il suffit (presque) d'apprendre la signification de ces quelques lignes (d'aprs "Borland C++", de Weiskamp et al.)
Liste de langages objets d'aprs 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. conu pour la synthse 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. succdan de Lisp pour les enfants
Loops. Hybride, trs puissant
Lore. Hybride franais
LRO2 Hybride franais
Mering. hybride, franais
NETL. rseaux smantiques
Objective C. Extension de C copis sur Smalltalk.
Object Pascal
Objlog. Mazrseille
ObjVlisp. Plutt un modle 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 exprimentale qui a prcd80), 80)
X.Lisp. domaine public. interprte
Yafool. Hybride franais
Langage/conception
Langage/environnement
Langage/SGBDO
Compatibilit avec prcdents, reprise (C C++ videmment)
Langage objet: il y en a dans le domaine public: Substel (serait un Lisp)