C++ est un outil pratique. Il n'est pas parfait , mais il est utile.
Dans le monde du logiciel industriel, C++ est vu comme un outil sur, mûr, et sans surprise. Il est très répandu dans l'industrie ce qui le valorise d'un point de vue productif en général.
[ Haut | Bas | Section précédente | Section suivante ]
C++ n'a pas été conçu pour montrer à quoi ressemble un langage OO parfait. Il a été conçu pour être un outil pratique de résolution des problèmes réels. Il a quelques verrues, mais le seul endroit où il est approprié de continuer à perfectionner une pièce jusqu'à la perfection est dans un configuration académique pure. Ce n'était pas but de C++.
[ Haut | Bas | Section précédente | Section suivante ]
Slogan OO : l'industrie du logiciel "n'arrive pas" à satisfaire les demandes de systèmes logiciel grands, et complexes. Mais cette "panne" est réellement due à nos succès: nos succès ont poussé les utilisateurs à demander plus. Malheureusement cela a créé une nouvelle demande que l'analyse "strucutrée", et les techniques de conception et de programmation classiques ne pouvaient pas satisfaire. Ceci a exigé de nous de créer un meilleur paradigme.
C++ est un langage de programmation OO. C++ peut également être utilisé comme langage de programmation traditionnel (comme "meilleur C"). Cependant si vous l'utilisez "comme meilleur C", ne comptez pas obtenir les avantages de la programmation orientée objet.
[ Haut | Bas | Section précédente | Section suivante ]
Dans 99% des cas, la sélection du langage de programmation est dominée par des considérations relatives à l'activité, et non pas par des considérations techniques. Les critères qui finissent par peser sont des citères de gestioncomme la disponibilité d'un environnement pour la machine de développement, la disponibilité de l' (des) environment(s) d'exécution pour la (les) machine(s) de déploiement, les problèmes légaux ou de licence des environnements d'exécution et/ou de développement, la disponibilité de développeurs qualifiés, la disponibilité de services de conseil, et la culture/politique de l'entreprise. Ces considérations de gestion jouent généralement un rôle beaucoup plus grand que le temps de compilation, le la vitesse d'exécution, le typage de donnée statique ou dynamique, le liage statique ou dynamique, etc...
Quiconque plaidant en faveur d'un langage par rapport aux autres d'une façon purement technique (c-à-d., qui ignore les problèmes de gestion) se désigne lui-même comme un technicien tétu, et ne mérite pas d'être écouté.
[ Haut | Bas | Section précédente | Section suivante ]
Le nombre de développeurs C++ double chaque année. Vous pouvez imaginer que cinq personnes deviennent développeur C++ tandis que vous lisez ce FAQ.
La croissance est une des caractéristiques déterminantes de C++ .
[ Haut | Bas | Section précédente | Section suivante ]
Cela prend 6-12 mois pour devenir compétent en OO/C++. Moins si les développeurs ont un accès facile à un corps "local" d'experts, plus s'il n'y a pas de "bonne" bibliothèque de classes C++ tout usage. Devenir un de ces experts qui peuvent apprendre à d'autres prend autour de 3 ans.
Certains ne le font jamais. Vous n'avez pas une chance à moins que vous soyez receptif et motivé. Comme minimum strict, vous devez savoir admettre quand vous avez eu tort. Comme minimum strict de "motivation" vous devez être disposé à mettre quelques heures supplémentaires (il est beaucoup plus facile d'apprendre quelques nouveaux trucs que de changer votre paradigme [ c-à-d., pour changer votre manière de penser; pour changer votre notion de la qualité; pour changer votre modèle mental du monde de la technologie ]).
Deux choses que vous devriez faire:
[ Haut | Bas | Section précédente | Section suivante ]
[ Haut | Bas | Section précédente | Section suivante ]
D'un point de vue de gestion, C++ sans les fonctions virtuelles a peu de valeur ajouté sur C. Les spécialistes pensent souvent qu'il y a une grande différence entre C et un C++ non orienté objet, mais sans OO, la différence n'est habituellement pas suffisante pour justifier le coût de formation des développeurs, des nouveaux outils, etc. En d'autres termes, si je devais conseiller un gestionnaire sur la pertinance d'un passage de C à un C++ non orienté objet (c-à-d changer de langage mais non de paradigme), je le ou la découragerais probablement à moins qu'il y ait des contraintes liées aux outils de développement. D'un point de vue gestion, OO peut aider à faire des systèmes plus extensibles et adaptables, mais la syntaxe des classes C++ seule sans OO peut éventuellement ne pas réduire le coût de maintenance, et certainement ajoute au coût de formation de manière significative.
Note: C++ sans virtual n'est pas OO. La programmation avec classes mais sans appels dynamiques s'appelle la programmation "basé objet", et non "orienté objet". Jeter les fonctions virtual est équivalent à jeter OO. Tout ce qu'il vous reste est la programmation basé objet, similaire au première version d'Ada (les versions récente d'Ada sont véritablement OO).
[ Haut | Bas | Section précédente | Section suivante ]
Avant la programmation OO, la réutilisation se limitait à du code nouveau appelant du code ancien. Par exemple, un programmeur pouvait écrire une routine qui utilisait un code existant réutilisable tel que printf().
Avec la programmation OO, la réutilisation peut également être accomplie dans l'autre sens. Par exemple, un programmeur peut écrire une routine destinée à être appelée par un cadre d'exécution qui a été écrit par leur arrière, arrière grand-père. Et il n'y a aucun besoin de changer le code de l'arrière arrière grand-père. En fait, on n'a même pas besoin de recompiler le cadre appellant. Même si tout ce que vous avez est le fichier objet et si les fichiers sources que l'arrière, arrière grand-père avait écrit il y a 25 ans sont perdu, ce fichier objet antique appellera la nouvelle extension sans que quoi que ce soit tombe en morceaux.
Ceci s'appelle extensibilité, et ceci s'appelle programmation OO.
[ Haut | Bas | Section précédente | Section suivante ]
C++ est aussi proche que possible de la compatibilité avec C, mais pas plus proche. En pratique, la différence principale est d'une part que C++ exige des prototypes, et que d'autre part la déclaration f() déclare une fonction qui ne prend aucun paramètre alors qu'en C, f() est le même chose que le f(...), c'est-à-dire une fonction prenant un nombre d'argument variable.
Il y a quelques autres différences plus subtiles, comme sizeof('x ') qui est égal à sizeof(char) en C++ mais qui est égal à sizeof(int) en C. De plus, C++ met les structures "étiquette" dans le même espace de nom que les autres noms, tandis que C exige un struct explicite (par exemple, la technique typedef struct Fred Fred; fonctionne toujours, mais elle est redondante en C++).
[ Haut | Bas | Section précédente | Section suivante ]
C++ a été normalisé par l'ANSI (l'organisme de normalisation national américain), BSI (l'institut britannique de normes), DIN (l'organisme de normalisation national allemand), plusieurs autres organismes nationaux de normalisation, et ISO (l'organisme de normalisation international). La norme ISO a été menée à bonne fin et adoptée à l'unanimité le 14 Novemebre 1997.
Le comité ANSI-C++ s'appelle le "X3J16". Le groupe de standardisation ISO de C++ s'appelle le "WG21". L'ensemble des acteurs principaux dans le processus de normalisation de l'ANSI/ISO C++ compte des représentants d'Australie, du Canada, du Danemark, de France, d'Allemagne, d'Irlande, du Japon, de Hollandes, de Nouvelle Zélande, de Suède, du R-U, et des Etats-Unis, plus des représentants d'une centaine de société et de beaucoup de particuliers intéressés. Les principales sociétés incluent AT&T, Ericsson, Digital, Borland, Hewlett Packard, IBM, Mentor Graphics, Microsoft, Silicon Graphics, Sun Microsystems, et Siemens. Après environ 8 ans de travail, cette norme est maintenant complète. Le 14 Novembre 1997 a vu la norme être approuvée à l'unanimité des pays représentés à Morristown. La ratification finale par deux douzaines de pays est attendue pour Mars 1998.
[ Haut | Bas | Section précédente | Section suivante ]
Vous pouvez également obtenir une copie papier par l'intermédiaire du Web (coût US$175): allez sur http://www.ansi.org, choisissez le menu Catalogs/Standards, puis choisissez "le catalogue en ligne d'ANSI-ISO-IEC". Recherchez "14882". Le document que vous recherchez est répertorié comme "ISO/IEC 14882-1998", avec le titre "Information technology - programming languages - C++". Vous pouvez également télécharger une copie électronique d'un fichier Acrobat (.pdf) de 2.8MB pour US$18. Pour cela, allez sur http://webstore.ansi.org/ansidocstore/default.asp. Pour lire le document, vous devez au prealable installer Acrobat reader (gratuit par download).
Enfin, vous pouvez lire la revue de presse de l'ISO à cette adresse. Cette revue de presse est accessible aux non programmeurs.
[ Haut | Bas | Section précédente | Section suivante ]
Ecrire à l'auteur,
au traducteur,
ou en savoir plus sur la traduction.
[ C++ FAQ Lite fr |
Table des matières |
Index |
A propos de l'auteur |
© |
Téléchargez votre propre copie ]
Dernière révision le 12 Nov 2002