IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Bjarne Stroustrup publie un article dans lequel il explique comment C++ a r�ussi � s'�panouir
Dans un monde surpeupl� de langages et changeant de 2006 � 2020

Le , par St�phane le calme

507PARTAGES

15  0 
Bjarne Stroustrup publie un article dans lequel il explique comment C++ a r�ussi � s'�panouir,
dans un monde surpeupl� de langages et changeant de 2006 � 2020

En 2006, le C ++ �tait largement utilis� dans l'industrie depuis 20 ans. Il contenait des parties qui avaient surv�cu inchang�es depuis leur introduction dans C au d�but des ann�es 1970 ainsi que des fonctionnalit�s qui �taient nouvelles au d�but des ann�es 2000. De 2006 � 2020, la communaut� des d�veloppeurs C ++ est pass�e d'environ 3 millions � environ 4,5 millions. C'�tait une p�riode o� de nouveaux mod�les de programmation ont �merg�, des architectures mat�rielles ont �volu�, de nouveaux domaines d'application ont gagn� en importance, et plusieurs langages bien financ�s et commercialis�s professionnellement se sont battus pour dominer.

Comment le C ++, un langage plus ancien sans support commercial s�rieux, a-t-il r�ussi � prosp�rer face � tout cela ? C�est la question � laquelle s�efforce de r�pondre Bjarne Stroustrup dans son article Thriving in a Crowded and Changing World : C++ 2006�2020 (s'�panouir dans un monde surpeupl� et changeant: C ++ 2006 � 2020).

Cet article se concentre sur les principaux changements apport�s � la norme ISO C++ pour les r�visions de 2011, 2014, 2017 et 2020. La biblioth�que standard repr�sente environ les 3/4 de la norme C++ 20, mais cet article se concentre principalement sur les fonctionnalit�s du langage et les techniques de programmation qu'elles prennent en charge.

En guise d�introduction, il explique :

� � l'origine, j'ai con�u C ++ pour r�pondre � la question "Comment manipulez-vous directement le mat�riel informatique et supportez-vous �galement une abstraction efficace de haut niveau ?" Au fil des ans, C++ est pass� d'une solution relativement simple bas�e sur une combinaison d'installations des langages C et Simula visant la programmation de syst�mes sur des ordinateurs des ann�es 1980 � un outil beaucoup plus complexe et efficace pour une gamme extraordinaire d'applications. Il conserve son double objectif:
  • Mappage direct des constructions de langage avec les installations mat�rielles
  • Abstraction sans frais g�n�raux

� Les abstractions sont repr�sent�es dans le code comme des fonctions, des classes, des mod�les, des concepts et des alias. C++ est un langage vivant, il change donc pour r�pondre � de nouveaux d�fis et les styles d'utilisation �voluent. Ces d�fis et changements dans la p�riode de 2006 � 2020 sont au centre de cet article. Bien s�r, le langage ne change pas de lui-m�me; il est chang� par les gens. C'est donc aussi l'histoire des personnes impliqu�es dans l'�volution du C ++, la fa�on dont elles per�oivent les d�fis, interpr�tent les contraintes sur les solutions, organisent leur travail et r�solvent leurs in�vitables diff�rences. Lorsque je pr�sente une fonctionnalit� en langage ou biblioth�que standard, je le fais dans le contexte de l'�volution g�n�rale du C ++ et des pr�occupations des individus impliqu�s � l'�poque. Pour de nombreuses fonctionnalit�s accept�es au d�but de la p�riode, nous b�n�ficions d�sormais du recul d'une utilisation industrielle massive.


� Le C++ est avant tout un langage industriel, un outil de construction de syst�mes. Pour un utilisateur, "C++" n'est pas simplement un langage tel que d�fini par une sp�cification; il fait partie d'un ensemble d'outils avec de nombreuses pi�ces:
  • Le langage
  • La biblioth�que standard
  • De nombreuses autres biblioth�ques
  • Des bases de code massives (souvent anciennes)
  • Des outils (y compris d'autres langages)
  • L�enseignement et la formation
  • Le soutien communautaire

� Lorsque cela est possible et pertinent, je consid�rerai les interactions entre ces "parties".

� Il y a un mythe, un mythe tr�s populaire, selon lequel les d�veloppeurs veulent que leurs langages soient simples. C'est �videmment le cas lorsque vous devez apprendre un nouveau langage, concevoir un cours ou d�crire un langage dans un article acad�mique. Pour de telles utilisations, avoir un langage incarnant clairement quelques principes clairs est un avantage �vident et l'id�al. Lorsque l'accent passe de l'apprentissage � la fourniture et � la maintenance d'applications importantes, les demandes des d�veloppeurs passent de la simplicit� � une prise en charge compl�te, � la stabilit� (compatibilit�) et � la familiarit�. Les gens confondent invariablement la familiarit� avec la simplicit� et pr�f�rent la familiarit� � la simplicit� s'ils ont le choix. Une fa�on de voir le C++ est le r�sultat de d�cennies de trois exigences contradictoires :
  • Rendez le langage plus simple !
  • Ajoutez ces deux fonctionnalit�s essentielles maintenant !!
  • Ne cassez (aucune partie de) mon code !!!

� J'ai ajout� des points d'exclamation parce que ces points sont souvent livr�s avec une bonne dose d'�motion. Je voulais rendre les choses simples tout en m�assurant que les choses complexes ne soient pas impossibles ou inutilement difficiles. Le premier point est essentiel pour les d�veloppeurs qui ne sont pas des d�fenseurs du langage ; le dernier point pour les personnes qui impl�mentent un code fondateur. La stabilit� est une propri�t� essentielle pour tous les syst�mes qui durent depuis des d�cennies, mais un langage vivant doit s'adapter � un monde en �volution.


� De longues listes de nouvelles fonctionnalit�s et des pr�occupations pratiques tr�s d�taill�es sont au c�ur du d�veloppement de C ++, contr�l� par son comit� de normalisation ISO. C�est ce sur quoi insistent les personnes les plus virulentes et les plus influentes de la communaut�, et il serait imprudent de juger leurs pr�occupations et opinions uniquement sur la base de vues philosophiques ou th�oriques �.

L�article contient de longues listes de fonctionnalit�s documentant la croissance de C ++. Les points techniques importants sont discut�s et illustr�s par de courts fragments de code. En outre, il pr�sente certaines propositions qui ont �chou� et les discussions qui ont conduit � leur �chec. Il offre une perspective sur le flux ahurissant de faits et de caract�ristiques au fil des ans. L'accent est mis sur les id�es, les personnes et les processus qui ont fa�onn� le langage.

Les th�mes incluent des efforts pour pr�server l'essence du C ++ gr�ce � des changements �volutifs, pour simplifier son utilisation, pour am�liorer la prise en charge de la programmation g�n�rique, pour mieux prendre en charge la programmation au moment de la compilation, pour �tendre la prise en charge de la programmation simultan�e et parall�le, et pour maintenir une prise en charge stable de code vieux de d�cennies.

La norme ISO C++ �volue � travers un processus de consensus. In�vitablement, il y a une concurrence entre les propositions et des affrontements sur la direction, les philosophies de conception et les principes. Le comit� est maintenant plus grand et plus actif que jamais, avec jusqu'� 250 personnes qui se r�unissent � une cadence de trois r�unions par an (r�unions qui durent une semaine) et beaucoup d'autres y participant par voie �lectronique. Bjarne Stroustrup note qu�ils essayent (pas toujours avec succ�s) d'att�nuer les effets de la conception par le comit�, la paralysie bureaucratique et l'enthousiasme excessif pour une vari�t� de � modes de langages �.

Les sujets techniques sp�cifiques au langage incluent le mod�le de m�moire, la concurrence et le parall�lisme, le calcul au moment de la compilation, la s�mantique de d�placement, les exceptions, les expressions lambda et les modules. Concevoir un m�canisme pour sp�cifier les exigences d'un mod�le sur ses arguments qui est suffisamment flexible et pr�cis, mais n'impose pas de co�ts d'ex�cution s'est av�r� difficile. Les tentatives r�p�t�es de concevoir des � Concepts � pour cela ont leurs racines dans les ann�es 1980 et touchent � de nombreux probl�mes de conception cl�s pour C++ et pour la programmation g�n�rique.

La description est bas�e sur la participation personnelle aux �v�nements cl�s et aux d�cisions de conception, appuy�e par les milliers d'articles et les centaines de minutes de r�union dans les archives du comit� des normes ISO C ++.

Source : S'�panouir dans un monde surpeupl� et changeant: C ++ 2006 � 2020 (Bjarne Stroustrup)

Et vous ?

Quels langages de d�veloppement utilisez-vous ? Est-ce par choix ou contrainte professionnelle ?
Que pensez-vous du C++ ?
Quels sont les �l�ments qui vous int�ressent le plus dans ce langage ?
Que pensez-vous de la courbe d'apprentissage du C++ ?
Vous avez lu gratuitement 1 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

Une erreur dans cette actualit� ? Signalez-nous-la !

Avatar de grunk
Mod�rateur https://www.developpez.com
Le 22/06/2020 � 14:55
Quels langages de d�veloppement utilisez-vous ? Est-ce par choix ou contrainte professionnelle ?
php,java,js/ts,c++ quasi quotiennement pour tous.

Que pensez-vous du C++ ?
C'est un excellent outil qui � su �voluer tr�s favorablement. J'�tais vraiment r�ticent � faire du C++ quand j'�tais oblig� de faire du C++98. Le passage � C++11 � vraiment fait du bien et l'a rapproch� de langage de plus haut niveau en terme de confort d'utilisation.
En revanche la r�trocompatibilit� introduit un truc que je trouve particuli�rement p�nible : Il y'a toujours 10 fa�ons diff�rentes de faire quelque chose. Quand on d�bute (et m�me apr�s) il est , je trouve, difficile de savoir quelle est la vraie bonne fa�on de faire.
Je trouve �galement que souvent la librairie standard manque de fonction un peu plus haut niveau. On palie souvent � tout ca via boost qui devient presque obligatoire.

Que pensez-vous de la courbe d'apprentissage du C++ ?
Relativement simple au d�but puis tr�s difficile quand on veux maitriser le langage. En g�n�ral suffit de regarder un talk de la cppcon pour r�aliser qu'on est une merde
3  0 
Avatar de darklinux
Membre extr�mement actif https://www.developpez.com
Le 22/06/2020 � 15:07
Quels langages de d�veloppement utilisez-vous ? Est-ce par choix ou contrainte professionnelle ?
C++ , SQL , JavaScript
Que pensez-vous du C++ ?

qu' il est tr�s bien
0  0 
Avatar de kriska
Membre du Club https://www.developpez.com
Le 23/06/2020 � 13:17
Tout � fait d'accord avec Grunk, je le vois dans mes �quipes le C++ est un langage avec lequel on peut rapidement coder quelque chose de fonctionnel avec des perfs correctes mais qui n�cessite un investissement cons�quent pour ma�triser les subtilit�s (ex: atomic cf. conf Fedor Pikus) ou les aspects avanc�s (Metaprogrammation).
N�anmoins avec des outils comme ReSharper ou Clang on peut rapidement moderniser son code et apprendre les nouvelles bonnes pratiques.
Apr�s au niveau de Boost, je vois cette lib comme l'incubateur de la lib standard. �a permet d'essayer et d'�prouver des choses qui pourront �tre int�gr� par la suite (il y a beaucoup d'exemple de feature du standard qui viennent de Boost).
0  0