Causerie++ - Episode 2 : Effective Modern C++ // Le C++ aujourd'hui

Une chronique libre sur ce beau langage

Salut les agrumes ! Bienvenue dans le deuxième épisode de Causerie++, une petite chronique hebdomadaire sur le C++. Voici un lien vers le premier épisode pour ceux qui l’ont raté et souhaitent le lire.

Aujourd’hui, on va parler de Effective Modern C++, un livre qui m’a beaucoup plu, ainsi que de la place actuelle du C++ parmi les langages de programmation. C’est parti !

Effective Modern C++ : Un must have !

Pour commencer, je vais parler d’un livre qui m’a marqué lorsque je l’ai lu il y a quelques années : Effective Modern C++ de Scott Meyers, auteur des célèbres Effective C++ et More Effective C++. Ce livre est une véritable pépite, il faut l’avoir lu.

effective modern cpp.jpg
effective modern cpp.jpg

En 42 items, l’auteur nous donne des conseils sur de nombreux aspects du C++ moderne, en particulier des normes C++11 et C++14. L’intérêt, c’est que chaque point est expliqué en profondeur : l’auteur ne donne pas seulement des guidelines, il les explique et nous fait découvrir les raisons qui se cachent derrière. Cela permet vraiment de prendre du recul sur les notions abordées et sur le langage de manière générale. C’est un véritable chef-d’oeuvre de pédagogie.

Que vous veniez d’apprendre le C++, que vous soyez un ancien développeur C++ qui a raté la transition vers des normes plus modernes, ou que vous enseigniez le C++ et cherchiez de l’inspiration, je vous conseille vivement ce bouquin. Je suis d’ailleurs actuellement dans la dernière catégorie, et ce livre m’inspire régulièrement !

Des livres plus anciens

Tout cela m’amène à un autre point dont je voulais parler. Plus précisément, je veux avoir vos avis sur d’autres lectures. J’ai commencé le C++ autour de 2012, c’est-à-dire après la sortie de la norme C++11, notamment. Il y a donc des tas de « classiques » datant d’avant cela, et que j’envisage de lire. Je me demandais s’ils valaient toujours le coup. Je pense notamment à Effective C++, More Effective C++ et Effective STL de Scott Meyers - logique -, mais aussi à Modern C++ design d’Andrei Alexandrescu, et enfin à Exceptional C++ et More Exceptional C++ de Herb Sutter.

Qu’en pensez-vous ? Ces lectures sont-elles toujours d’actualité ? Je m’adresse en particulier aux plus anciens d’entre vous ! :)

Sinon, avez-vous d’autres suggestions de livres que vous considérez être des must-have ?

J’attends avec impatience vos réponses. Peut-être que je parlerai de tous ces bouquins dans de futurs épisodes lorsque j’aurai dévoré tout ça !

Le C++ aujourd'hui : un langage populaire et dynamique

Suite à une suggestion de @tidev, nous allons parler de la place actuelle du C++ dans le riche paysage des langages de programmation. Pour ce point, j’ai fait quelques recherches, et j’ai choisi trois indicateurs de popularité qui, je trouve, nous donne un bon point de départ :

  • Le classement TIOBE : ce classement classe les langages selon le nombre de résultats de recherche concernant ce langage sur de nombreux moteurs de recherche. Il donne donc un indice sur la popularité d’un langage.
  • The State of the Octoverse fait simplement l’état des lieux sur les proportions de projets Github utilisant chaque langage, en tirant donc un classement par popularité, comme TIOBE.
  • Le classement RedMonk met en rapport la poopularité du langage sur Github et sur StackOverflow pour estimer la propension des langages à être utilisés dans le futur.

Dans tous ces classements (et d’autres !), le C++ est très bien positionné, et pointe vers la cinquième place. C’est d’ailleurs l’un des rares langages aussi anciens qui soient dans le haut des classements.

J’interprète ces classements comme ça :

  • Le C++ est très populaire : c’est ce que nous montrent les deux premiers classements.
  • Le C++ est très dynamique : son bon positionnement dans le classement RedMonk l’indique.

Personnellement, ce que je souhaite souligner à travers ces classements, c’est que le C++ n’est pas populaire seulement grâce à son ancienneté et l’inertie des technologies. Au contraire, il est très dynamique ! Il évolue très régulièrement, ce qui lui permet de rester un langage moderne.

Il est même de plus en plus dynamique : après seulement deux standards en 20 ans d’existence, nous avons eu droit à 4 standards en l’espace de neuf ans (je compte ici C++20) ! Le langage suit un rythme d’un standard tous les trois ans, et C++23 est déjà sur le feu !

Ainsi, le C++ est parmi les langages les plus populaires, et est particulièrement dynamique depuis 2011. Au fil des standards, il devient plus facile à utiliser, plus beau, plus élégant, plus complet, plus fiable. En un mot : plus moderne !

Le C++ a donc l’air d’avoir de belles années devant lui, et c’est tant mieux, parce que c’est un sacrément beau langage.


Et voilà pour aujourd’hui, j’attends vos commentaires avec impatience !

A lundi prochain ! <3

22 commentaires

Salut! ;)

Le C++ a donc l’air d’avoir de belles années devant lui, et c’est tant mieux, parce que c’est un sacrément beau langage.

Entièrement d’accord !!!!

Le C++ est vraiment un langage plein de ressources et qui n’attend qu’à être utilisé ;)

J’ai hâte de voir la suite lundi prochain :D

Effective C++ […] Qu’en pensez-vous ? Ces lectures sont-elles toujours d’actualité ?

Alors je ne suis pas un ancien en C++, c’est sûr, mais pour avoir lu et relu ce livre, je trouve qu’il a encore sa place dans la bibliothèque d’un développeur C++. Il apprend par exemple des bonnes pratiques comme préférer const& à la recopie, essayer de faire du code exception safe le plus possible, le quand du comment du pourquoi des destructeurs virtuels, comment gérer x = x dans le cas des opérateurs surchargés, etc.

Après, c’est sûr qu’il prend sa valeur en complément de Effective modern C++. :)

Merci de ton avis ! J’ai moi-même fait quelques recherches, et ce que tu dis fait à peu près consensus. Effective C++ et More Effective C++ sont toujours d’excellentes lectures si on les complète avec Effective Modern C++.

Du coup je vais me les commander, avec Modern C++ Design ! J’en ferai une review dans un futur épisode. :)

+0 -0

Alors je n’irais pas jusqu’à dire que c’est très opaque, mais c’est vrai que le langage et la communauté ont de réels progrès à faire pour « se vendre », et le débutant est parfois perdu.

C’est vrai qu’il y a aussi un manque de ressources pour débutants, notamment en français1 ; à ma connaissance, il n’existe aucun bon cours de C++ moderne pour débutants en français sur internet. C’est pourquoi des gens comme @gbdivers, @informaticienzero et moi essayons d’améliorer la situation.

Cet aspect « opaque » est peut-être aussi dû à l’âge du langage, qui fait que beaucoup d’enseignants séniles continuent à l’enseigner « à l’ancienne ».

Par contre, je trouve qu’il y a du progrès là-dessus. Déjà grâce aux évolutions du langage qui rendent la courbe d’apprentissage moins raide, mais aussi de la communauté qui essaie de progresser dans la manière d’enseigner. La fondation du SG20 et les nombreuses conférences sur la pédagogie du C++ à la CppCon2 en sont des réalisations concrètes. Donc j’ai bon espoir que la situation continue de s’améliorer.

En tous cas, c’est un sujet intéressant, peut-être que je détaillerai plus dans un futur épisode (ce ne sera pas dans l’immédiat, j’ai déjà d’autres choses de prévu ;) ). J’espère avoir apporté quelques éléments de réponse en attendant.


  1. Par contre en anglais il y a quand-même d’excellents livres pour débutants, mais il faut sortir le portefeuille. ^^

  2. C’est marrant, c’est un lien que j’avais mis de côté pour le prochain épisode, ça tombe bien que j’en aie besoin maintenant. :)

+0 -0

De toute manière toi et le C++ ça fait un donc pas besoin mais moi j’ai beaucoup de choses à apprendre ;) (miam 940 pages de C++)

Vanadiae

C’est flatteur mais faux ! ^^ Et puis l’avantage avec le C++, c’est qu’il y a toujours des tas de choses à apprendre, c’est tout l’intérêt ! ;)

En tous cas, bonne lecture ! :)

+0 -0

Il me semble que lorsque des langages sont appris à des étudiants, les profs se tournent vers du Python ou du OCaml dans certains cas (en France en tout cas). Sinon lorsqu’ils apprennent le C++, ils apprennent souvent le C++ historique:

Cet aspect « opaque » est peut-être aussi dû à l’âge du langage, qui fait que beaucoup d’enseignants séniles continuent à l'enseigner « à l'ancienne ».

mehdidou99

Le classement TIOBE montre surtout que le langage C++ est imposé à de nombreux étudiants, qui espèrent trouver la solution de leurs exercices grâce à un moteur de recherche.

MichelBillaud

Ah, peut-être, mais j’ai lu suffisamment de classements différents pour affirmer qu’au-delà de ça, le C++ n’est pas mort ! Mais je comprends tout à fait ton propos, vu le nombre d’étudiants de ce genre que tu as dû croiser sur le forum d’OpenClassrooms ! ^^

+0 -0

Il me semble que lorsque des langages sont appris à des étudiants, les profs se tournent vers du Python ou du OCaml dans certains cas (en France en tout cas). Sinon lorsqu’ils apprennent le C++, ils apprennent souvent le C++ historique:

On trouve de tout. Si on ne prend que les IUT d’informatique en france, on doit avoir, comme premier langages C, C++, C#, Ada, Eiffel, Java, Python, Basic, Pascal, Lisp et certainement d’autres.

Après, que le C++ ne soit pas mort, c’est évident. Cobol se porte très bien aussi.

+0 -0

Après, que le C++ ne soit pas mort, c’est évident. Cobol se porte très bien aussi.

MichelBillaud

Ce que j’ai essayé de défendre, c’est que ça n’est pas pour les mêmes raisons. La survie de Cobol est le pur artefact de l’inertie des bases de code. Si quelqu’un lance un projet en 2019, il paraît vraisemblable et cohérent qu’il utilise le C++. Pour le Cobol, ça n’est pas le cas.

D’ailleurs, à ma connaissance, il n’y a pas de version Cobol20. ^^

+0 -0

Mais c’est bien ce qu’il me semblait que pour le Cobol c’était qu’il était énormément utilisé auparavant dans le domaine financier mais que depuis on ne l’utilise plus (imaginez vous utilisez tu BCPL en 2019 !)

D’ailleurs, à ma connaissance, il n’y a pas de version Cobol20. ^^

Eh oui ;)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte