|

Écrivez
à AILES ! |

Retour
vers les blagues |
|
|
A l'origine du C++ :
augmenter le salaire des programmeurs (!?)
|
C'est un grand classique et pourtant
cela ne date que de janvier 1998 (donc 4 ans puisque ceci est
écrit en janvier 2002).
Le créateur du C++, le grand Bjarne
Stroustrup (prononcez By-ar-ne Strov-stroop, comme ça)
lui-même a donné une interviews
dans IEEE, mais il s'agissait aussi de contrer une autre "interview
imaginaire" qui faisait
rapidement fait le tour du net l'époque en 1998.
Pourtant, il le précise lui-même dans sa
page de FAQ,
ce qui suit est une blague, et même s'il a un certain sens de
l'humour, il n'a jamais dit ces atrocités sur son langage.
Rappelons que le C++ a été développé
chez AT&T, initialement appelé "C with Classes"
en 1979, puis C++ chez AT&T en 1983, introduit
commercialement en 1985.
Il s'inspire de Simula67 (comme son
"frère" Smalltalk"), et utilise des
fonctionnalités comme les templates, le polymorphisme
statique, et la "programmation,
multi-paradigmatique" (c.à.d. capable d'utiliser
différents styles de programmation, comme la programmation
objet d'un côté, avec le polymorphisme, et la programmation
générique de l'autre, avec les templates, les deux pouvant
être combinés!)
Ces caractéristiques lui permettent
d'affirmer que les langages récents (java, C#, ...) ne sont
pas nécessairement plus "avancés" que le C++, bien
au contraire!
Allez, pour finir sur une vrai
citation de Bjarne :
« C
makes it easy to shoot yourself in the foot;
C++
makes it harder, but when you do, it blows your whole leg off. »
(C permet facilement de se tirer une balle dans le pieds.
C++ rend cela plus difficile, mais quand cela arrive, vous
vous explosez toute la jambe !)
Ce qui suit est donc la traduction
d'une *fausse* interview qu'aurait donné en janvier 1998
à l'IEEE Bjarne Stroustrup, créateur du C++. Le texte
original se trouve par exemple là. |
Interviewer
: Cela fait quelques années maintenant que vous avez changé le
monde de la conception logicielle, qu'est-ce cela vous fait en
regardant en arrière ?
Stroustrup
: En fait, je repensais à cette époque juste avant que vous
n'arriviez. Vous vous souvenez ? Tout le monde écrivait en C et le
problème était qu'ils était vachement bons. Les universités
dispensaient également un bon enseignement du C. Elles produisaient
des diplômés compétents - et j'insiste sur le mot compétent.
Et c'est ce qui a posé problème.
Interviewer
: Problème ?
Stroustrup
: Oui, problème. Vous vous souvenez du temps où tout le monde
écrivait en COBOL
?
Interviewer
: Bien sûr, j'ai moi-même écrit en COBOL.
Stroustrup
: Et bien au début ces gars étaient des demi-dieu. Leurs
salaires étaient élevés et ils étaient traités comme des princes.
Interviewer
: C'était l'bon temps, hein ?
Stroustrup
: Hé oui. Et qu'est-ce qu'il s'est passé ? IBM en a eu marre,
et a investi des millions dans la formation de programmeurs COBOL,
jusqu'à ce qu'ils ne valent qu'une bouchée de pain pour une
douzaine.
Interviewer
: C'est là que j'ai quitté ce métier. Les salaires ont chuté
en moins d'un an, au point que cela payait plus d'être journaliste.
Stroustrup
: Exactement. Et la même chose est arrivé aux programmeurs en
'C'.
Interviewer
: Je vois, mais où voulez-vous en venir ?
Stroustrup
: Et bien, un jour j'étais à mon bureau et j'ai conçu un petit
stratagème qui pourrait retourner un peu la situation. Je pensais :
'je me demande ce qu'il se passerait s'il existait un langage si
compliqué, si difficile à apprendre que personne ne pourrait jamais inonder
la marché de programmeurs ?'
En fait, une partie de ces idées viennent de X10, vous savez,
XWindows. C'était un système graphique si compliqué que cela ne
tournait que sur ces choses Sun3/60. Tous les ingrédients que je
voulais étaient présents : une syntaxe ridiculement complexe, des
fonctions obscures, et une structure pseudo orientée-objet. Même
maintenant, personne n'écrit du code X-Windows. Motif est le seul
moyen de coder sans perdre sa raison.
Interviewer
: Vous n'êtes pas sérieux ?
Stroustrup
: Bien au contraire. En fait, il y avait un autre problème. Unix
était écrit en 'C', ce qui signifie que tout programmeur 'C' pouvait
facilement devenir programmeur système. Vous vous souvenez de ce
qu'un programmeur de mainframe avait pour habitude de gagner ?
Interviewer
: Bien sûr, c'était aussi mon type de salaire.
Stroustrup
: OK, donc ce nouveau langage devait se séparer d'Unix, en
masquant tous les appels qui liaient les deux si élégamment. Cela
permettrait aux gars qui ne connaissent que le DOS de gagner de
nouveau correctement leur vie.
Interviewer
: Je ne peux pas croire que vous ayez dit cela.
Stroustrup
: Bah, cela fait longtemps maintenant, et je suppose que la
plupart des gens se sont rendus compte par eux-même que le C++ est
une perte de temps, mais je dois dire que cela a pris plus de temps
que je ne l'aurais cru.
Interviewer
: Alors, comment exactement vous vous y-êtes pris ?
Stroustrup
: C'était supposé être une blague, jamais je n'aurais cru que
les gens prendrait le bouquin au sérieux. N'importe qui avec 2
grammes de bon sens peut voir que la programmation orientée-objet est
contre-intuitive, illogique et inefficace.
Interviewer
: Quoi ?!
Stroustrup
: Et concernant le 'code réutilisable'!... Vous avez déjà
entendu d'une compagnie qui a jamais réutilisé du code ???
Interviewer
: En fait,... jamais, mais...
Stroustrup
: Hé ben voilà. Je ne dis pas que quelques uns n'aient pas
essayé au début. Il y avait cette compagnie d'Oregon - je crois
qu'elle s'appelait Mentor Graphics - qui s'est vraiment fait une belle
frayeur en essayant de tout réécrire en C++ dans les années 1990 ou
1991. J'en suis désolé pour eux, vraiment, mais je pensais que les
gens en auraient tiré des leçons.
Interviewer
: Manifestement, ils ne l'ont pas fait ?
Stroustrup
: Pas le moins du monde. Le problème, c'est que la plupart des
compagnies ont du étouffer leurs échecs majeurs, et que expliquer
des pertes de 30millions de $ à leurs actionnaires aurait été
difficile. Cependant, rendons leur crédit, c'est eux qui ont permis
que cela marche en fin de compte.
Interviewer
: Ha oui ? Et bien vous voyez, l'orienté-objet, cela marche !
Stroustrup
: Moui presque. L'exécutable était si énorme qu'il mettait 5
minutes à se charger sur des HP avec 128Mo de RAM. Il tournait si
lentement. En fait, je pensais que cela serait un obstacle rédhibitoire,
et je me suis rendu compte en moins d'une semaine que tout le monde
s'en foutait. SUN et HP n'étaient que trop content de vendre des
ordinateurs d'une puissance énorme, dotées d'immense ressources
juste pour faire tourner des programmes triviaux. Vous savez, lorsque
l'on a eu notre premier compilateur C++ chez AT&T, j'ai compilé
le programme 'Hello World',
et je ne pouvais pas croire la taille de l'exécutable : 2.1 Mo.
Interviewer
: Quoi ? Les compilateurs ont fait du chemin depuis.
Stroustrup
: Vraiment ? Essayez donc avec la dernière version de g++. La
différence n'excédera pas 0.5Mo. De plus, j'ai plusieurs exemples
récents pour vous, et ce depuis tout pays. British Telecom s'est
retrouvé avec un désastre entre les mains, mais par chance, ils ont
pu tout effacer et repartir de zéro. Et ils ont eu plus de chance que
Australian Telecom. aujourd'hui, j'apprends que Siemens construit une
usine à gaz, et s'inquiète de la taille croissante du matériel afin
de pouvoir y faire tourner les exécutables. Est-ce que l'héritage multiple
n'est pas merveilleux ?
Interviewer
: Oui, mais C++ est à la base un langage solide.
Stroustrup
: Vous en êtes vraiment convaincu, n'est-ce pas ? Avez-vous
déjà participé à un projet C++ ? Voilà ce qui se passe : d'abord,
j'y ai introduit suffisamment de piège pour être sûr que seuls les
projets les plus simples fonctionneront la première fois. Considérez
la surcharge des opérateurs. A la fin du projet, tous les modules
l'ont utilisé, surtout parce que les gars ont pensé qu'ils devaient
le faire, comme pendant leur formation. Le même opérateur qui
signifie complètement autre chose d'un module à l'autre. Essayez de rassembler
tout cela lorsque vous avez une centaine de module environ. Quant à l'encapsulation
de données, mon Dieu, parfois je ne peux m'empêcher de rigoler
lorsque j'entends parler des problèmes qu'ont des compagnies pour
faire communiquer leurs modules. Je pense que le mot 'synergie' a
été inventé pour remuer le couteau dans la plaie des manager de
projet.
Interviewer
: Je dois avouez que tout cela commence à me troubler.
Vous dites que vous avez fait tout cela juste pour augmenter le
salaire des programmeurs ? C'est choquant !
Stroustrup
: Pas vraiment. Tout le monde a le choix. Je ne
m'attendais pas à ce que cela soit si incontrôlable. De toute
façons, j'ai en gros réussi. C++ est en train de passer de mode, et
les programmeurs ont toujours des salaires élevés, surtout ces
pauvres diables qui doivent maintenir toute cette merde. Vous
réalisez bien sûr qu'il est impossible de maintenir un gros
programme C++ si vous ne l'aviez pas vous-même écrit ?
Interviewer
: Et pourquoi donc ?
Stroustrup
: Vous êtes vraiment hors du coup, pas vrai ? Vous vous
souvenez du typedef
?
Interviewer
: Oui, bien sûr.
Stroustrup
: Vous souvenez-vous du temps qu'il vous fallait pour
explorer les fichiers de déclaration de fonction avant de vous rendre
compte que 'RoofRaised' était un double ? Alors, imaginez le temps
que cela prend pour traduire tous les typedef implicites de toutes les
classes d'un projet important en C++ !
Interviewer
: Alors, en quoi reconnaissez-vous avoir réussi ?
Stroustrup
: Rappelez-vous de la durée moyenne d'un projet en 'C' :
environs 6 mois. Pas assez longtemps pour gagner correctement sa vie
pour un gars marié avec enfants. Prenez le même projet, concevez-le
en C++ et qu'est-ce que vous obtenez ? Je vais vous le dire : un à
deux ans. C'est pas super, ça ? Toute cette sécurité de l'emploi à
cause d'une erreur de jugement. Et autre chose : les universités
n'ont pas enseigné le 'C' depuis si longtemps qu'il y a maintenant
pénurie de programmeurs valables en 'C'. Surtout concernant ceux qui
y connaisse quelque chose sur la programmation système Unix. Combien
de gars saurait quoi faire avec un 'malloc', alors qu'ils utilisent
'new' ces dernières années, et ce sans jamais vérifier le code de
retour ? En réalité, la plupart des programmeurs C++ ignorent complètement
leur code de retour. Qu'est-ce qui est arrivé au bon vieux '-1' ? Au
moins, vous saviez que vous aviez une erreur, sans tout emberlificoter
dans des 'throw' et 'try'.
Interviewer
: Mais à l'évidence, l'héritage fait gagner du temps ?
Stroustrup
: Vraiment ? Avez-vous remarqué la différence entre un
planning de projet 'C' et 'C++' ? La phase de planning d'un projet C++
est trois fois plus longue. Et justement pour s'assurer que tout ce
doit être dérivé l'est, et ce qui ne doit pas l'être ne l'est pas.
Et en plus, ils se gourent. Qui a entendu parler de 'fuites mémoire'
en 'C' ? Maintenant, on les trouve dans les plus grandes industries.
La plupart des compagnies abandonnent et commercialisent leurs
produits en sachant qu'ils fuient comme des passoires, simplement pour
éviter le coût de débuguer toutes ces fuites.
Interviewer
: Il y a des outils...
Stroustrup
: La plupart d'entre eux ont été écrit
en C++ !
Interviewer
: Si on publie cela, vous serez
probablement lynché, vous le savez, non ?
Stroustrup
: Ca m'étonnerait. Comme je vous l'ai dit,
C++ est maintenant sur son déclin, et aucune compagnie sensée ne
commencerait un projet sans un prototype. Cela devrait suffire à les
convaincre de la nature désastreuse de cette voie. Sinon, ils
mériteront ce qu'il leur arrivera. Vous savez, j'ai essayé de
convaincre Dennis Ritchie de réécrire Unix en C++.
Interviewer
: Oh mon Dieu, et qu'est-ce qu'il a dit ?
Stroustrup
: Ben heureusement, il a un bon sens de
l'humour. Je pense que lui et Brian se sont aperçu très tôt de ce
que je faisais, mais ne l'ont jamais fait savoir. Il m'a dit qu'il
m'aiderait à écrire une version C++ de DOS, si j'étais intéressé.
Interviewer
: Et vous l'étiez ?
Stroustrup
: En fait, j'ai écrit DOS en C++. Je vous
donnerai une démo après. Je le fais tourner sur un Sparc20 dans la
salle des ordinateurs. Ca tourne comme une flèche sur 4 CPU, et cela
ne prends que 70Mo sur le disque.
Interviewer
: Et-ce que cela tourne comme sur un PC ?
Stroustrup
: Là vous blaguez. Avez-vous déjà vu
Windows95 ? Je le considère comme un de mes plus gros succès. Ca a
même failli tout arrêter avant que je ne sois prêt.
Interviewer
: Vous savez, cette idée de Unix++ m'avait
vraiment fait réfléchir. Il y a des gars quelque part qui sont en
train d'essayer de le faire. [en fait,
le
µ-kernel L4
en est un bon exemple...]
Stroustrup
: Non, pas après cette interview !
Interviewer
: Je suis désolé, mais je ne nous vois
pas capable de publier quoique ce soit de cela.
Stroustrup
: Mais c'est l'histoire du siècle ! Je
veux juste être considéré par mes collègues programmeurs pour ce
que je leur ai apporté. Savez-vous combien peut toucher un
programmeur C++ ces jours-ci ?
Interviewer
: D'après ce que j'ai entendu, un vrai pro
peut valoir 70 à 80 $ de l'heure.
Stroustrup
: Vous voyez ? Et je parie qu'il les
mérite. Tenir compte de tous les pièges à con que j'ai introduit
dans le C++ n'est pas un job facile. Et comme je vous l'ai dit, tous
les programmeurs C++ sont comme lié par un serment mystique pour
employer toutes les fonctionnalités du langage dans tous les projets.
En fait, cela finit même par m'ennuyer parfois, même si cela sert
mon but original. J'en finis presque par aimer ce langage.
Interviewer
: Vous voulez dire que ne l'aimiez pas avant ?
Stroustrup
: Je le détestais. Il n'est même pas élégant, vous ne trouvez
pas ? Mais quand les royalties du bouquins ont commencé à arriver...
vous voyez l'idée.
Interviewer
: Attendez une minute... et les références ? Vous devez reconnaître
que cela représente une amélioration sur le pointeurs 'C'.
Stroustrup
: Hmmm, je me suis toujours posé des questions à ce sujet. Au
début, je pensais que s'en était une. Et puis un jour, j'ai discuté
avec un gars qui avait programmé depuis ses débuts en C++. Il me
disait qu'il ne pouvait jamais se souvenir si ses variables étaient
référencées ou déréférencées, alors il utilisait toujours les
pointeurs. Il disait que le petit '*' astérix l'aidait à se
souvenir.
Interviewer
: Et bien, à ce stade je dis généralement 'Merci beaucoup',
mais cela ne semble pas très approprié.
Stroustrup
: Promettez-moi que vous allez publier cela. Ma conscience prend
le dessus ces derniers temps.
Interviewer
: Je vous le ferai savoir, mais je pense deviner ce que mes
éditeurs vont dire.
Stroustrup
: Qui le croirait de toutes façon ? Toutefois, pourriez-vous
m'envoyer une copie de cette bande ?
Interviewer
: Je peux faire ça.
|
fin de l'interview.
|