Vos recrutements informatiques

700 000 développeurs, chefs de projets, ingénieurs, informaticiens...

Contactez notre équipe spécialiste en recrutement

Pourquoi le langage C++ demeure incontournable 35 ans après sa sortie ?
Son créateur Bjarne Stroustrup revient sur les atouts du langage

Le , par Arsene Newman, Expert éminent sénior
Créé il y a 35 ans de cela, le langage C++ demeure toujours un langage incontournable au sein de la communauté des développeurs et cela pour plusieurs raisons selon son créateur Bjarne Stroustrup.

Tout d’abord, Stroustrup tient à positionner son langage au sein de la panoplie de langages existants aujourd’hui, ainsi il explique que le C++ n’est peut-être pas le langage le plus adapté pour créer les applications modernes, mais « aucun langage ne peut exécuter des codes complexes aussi vite que le C++. De ce fait, si l’on prête attention à l’embarqué, au domaine du traitement d’image, aux télécommunications ou encore aux applications financières, le C++ règne en maître ».

L’informaticien danois revient aussi sur les langages qui connaissent une forte popularité en ce moment, à l’instar du langage Go de Google. Il note que ce dernier offre des solutions très élégantes dans certains cas, mais pour lui « Les langages qui se focalisent sur l’élégance des solutions perdent en contrepartie en terme de performance et de généralité, toutefois cela n’empêche pas de prêter attention à ces langages ».

Il rappelle entre autres que son langage est bien loin de la facilité d’utilisation des langages de scripts utilisés actuellement, cela est dû à une raison bien simple : « Le C++ est conçu pour les applications lourdes, il ne se focalise pas sur la facilité d’utilisation, par contre il a toujours été utilisé conjointement avec un langage de script », comme à l’époque de son développement où Stroustrup recourait à des scripts Unix Shell.

De ce fait, le « C++ est pour la haute performance, la haute fiabilité, le faible encombrement, la faible consommation d’énergie et pour toutes ces bonnes choses, non pas pour les amateurs et les applications rapides, car cela ne relève pas de son domaine ».

Enfin, pour le créateur du C++, son langage doit affronter aujourd’hui deux challenges majeurs : « soutenir les développeurs qui sont en charge des tâches les plus exigeantes en matière de performance, de passage à l’échelle et de fiabilité, mais aussi permettre aux développeurs d’être plus productifs en écrivant des codes plus faciles à maintenir ». Tout cela se traduit par les publications de nouvelles versions du langage, comme le C++ 11 et le C++ 14 qui doivent répondre à ces challenges en supportant une plus grande diversité matérielle et en introduisant de nouvelles fonctionnalités.

Source : Interview de Bjarne Stroustrup

Et vous ?
Qu’en pensez-vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Markand Markand - Membre actif http://www.developpez.com
le 28/08/2014 à 13:54
Je fais du C++ depuis plus de 2 ans et exclusivement du C++ moderne. Je trouve que c'est un langage assez polyvalent on peut faire du très bas niveau comme du haut niveau. Je pense qu'il peut être adapté à toute les situations du moment que les bibliothèques sont fournies.

Par exemple, pour le développement d'application web, en python et ruby vous avez une panoplie de framework, en C++ il y en a très peu, seul Wt semble réellement maintenu.

Longue vie au C++
Avatar de smarties smarties - Membre actif http://www.developpez.com
le 28/08/2014 à 14:06
Il manque de quoi faire du web simplement. Les CGI sont peut être rapide mais c'est difficilement maintenable sur de grosses applications.
Avatar de Shuty Shuty - Membre éprouvé http://www.developpez.com
le 28/08/2014 à 14:09
Citation Envoyé par Markand  Voir le message
Longue vie au C++


Le C++ est un techno vraiment complexe et qui nécessite de très bonnes bases en dev pour pouvoir prétendre avec un niveau pro. Après il existe de nombreux framework / sdk tel que QT pour rendre son développement moins archaïque...

Je pense en effet que si la syntaxe était plus user-friendly, beaucoup plus de gens s'y intéresserait d'avantage.
Avatar de Grom61736 Grom61736 - Membre éprouvé http://www.developpez.com
le 28/08/2014 à 14:15
De ce fait, si l’on prête attention à l’embarqué, au domaine du traitement d’image, aux télécommunications ou encore aux applications financières, le C++ règne en maître

Ok, oui,oui, NON !
Encore un qui oublie que ce bon vieux COBOL est le maitre incontesté dans les finances malgré sa discrétion.

Mais effectivement, si on regarde un peu du coté de la recherche dans ces domaines là, c'est quasi exclusivement du C++.
Avatar de ternel ternel - Expert éminent sénior http://www.developpez.com
le 28/08/2014 à 14:18
J'en pense que c'est un langage qui s'offre des mécanismes de sureté très efficace, pour peu qu'on apprenne à les utiliser.
Le premier d'entre eux étant le RAII, et ses avatars les smart pointers.

C'est un outil qui fait bien ce qu'il est conçu pour faire: les applications complexes.

J'ai récemment participé à un repas troll débat sur les langages.
La conclusion que j'en tire est qu'il n'y a aucune possibilité d'un langage qui me manque en C++, alors que le contraire n'est pas vrai.

Je parle bien des fonctionnalités du langage, ou les bibliothèques standard réduites (STL, java.collection.*, etc) pas de leur bibliothèques étendues.
On n'avait volontairement pas considéré swing ou jdbc de java, tout comme on a ignoré Qt.
Avatar de jm130794 jm130794 - Candidat au Club http://www.developpez.com
le 28/08/2014 à 14:24
Bonjour,

Pour les applications WEB, il existe tntnet. J'utilise régulièrement ce logiciel et je peux vous assurer qu'il est très simple à prendre en main.

Le développement d'application Web se fait en quelques minutes. Le préprocesseur eccpc vous permet d'écrire des pages HTML aussi facilement qu'avec du PHP ou autres langages de scripts. L'écriture de services REST est enfantin.

Cerise sur le gâteau, vous pouvez tout inclure dans un seul exécutable : serveur HTTP, images, pages html ou javascrpt, etc

Fini les CGI...

Par contre, pas de version pour Windows.

Jean-Marc
Avatar de Mouke Mouke - Membre averti http://www.developpez.com
le 28/08/2014 à 14:33
J'ai commencé le C++ dans le cadre mes études. C'est mon premier langage objet et, aujourd'hui encore, il reste mon préféré.

Sur le plan pédagogique, je le préfère à Java, C# ou aux langages de scripts comme Python : J'ignore si les dernières normes ont changé ça, en tout cas C++ (impose ?) permet la gestion mémoire avec les pointeurs et les malloc, il n'a pas de Garbage Collector (une aberration pédagogique à mes yeux), permet l'apprentissage de bas niveau comme de haut niveau. Les langages plus haut niveaux ont tendance à faire abstraction de concepts qui sont, à mes yeux, importants d'appendre. Mais je pense que, 30ans dans le passé, on considérait de cette manière le C++.

Sur le plan pro, je n'ai pas encore eu la chance de travailler en C++. Néanmoins, quand je vois son usage et tous les outils qui lui sont proposés, effectivement, C++ est un outil très puissant. Certains domaines n'ont pas d'alternative à C++ d'ailleurs.

j'apprécie par contre que M. Stroustrup ne néglige pas pour autant le domaine du script :
« Le C++ est conçu pour les applications lourdes, il ne se focalise pas sur la facilité d’utilisation, par contre il a toujours été utilisé conjointement avec un langage de script »

Effectivement, dans certains domaines, inutile de déployer du C++ avec un gros framework. Un script léger et performant, comme Python, fera totalement l'affaire.

De même, comme dit plus haut, c'est dommage que C++ ne propose pas une solution web suffisamment efficace...

Encore un qui oublie que ce bon vieux COBOL est le maitre incontesté dans les finances malgré sa discrétion.

Actuellement en stage dans une banque, je me permets de compléter : Effectivement, point de C++. Du COBOL, du Natural, beaucoup de Java aussi (ça m'a surpris d'ailleurs le Java). Il me semble qu'il y a encore 75% de l'informatique financier qui fonctionne en COBOL dans le monde.
Néanmoins, le C++ ne me choquerait pas dans la finance.
Avatar de Gugelhupf Gugelhupf - Modérateur http://www.developpez.com
le 28/08/2014 à 14:34
Citation Envoyé par Shuty  Voir le message
Je pense en effet que si la syntaxe était plus user-friendly, beaucoup plus de gens s'y intéresserait d'avantage.

Le C++ est devenu plus user-friendly avec C++11 et C++14, mais cela n'enlève rien à sa complexité qui prime sur le reste.

EDIT:
@Mouke
J'ignore si les dernières normes ont changé ça, en tout cas C++ (impose ?) permet la gestion mémoire avec les pointeurs et les malloc

malloc c'est du C, on n'est normalement pas censé utiliser cette fonction pour allouer de la mémoire en C++, il y a new, make_unique & les smart pointers.
Avatar de redcurve redcurve - Membre actif http://www.developpez.com
le 28/08/2014 à 14:48
Citation Envoyé par jm130794  Voir le message
Bonjour,

Pour les applications WEB, il existe tntnet. J'utilise régulièrement ce logiciel et je peux vous assurer qu'il est très simple à prendre en main.

Le développement d'application Web se fait en quelques minutes. Le préprocesseur eccpc vous permet d'écrire des pages HTML aussi facilement qu'avec du PHP ou autres langages de scripts. L'écriture de services REST est enfantin.

Cerise sur le gâteau, vous pouvez tout inclure dans un seul exécutable : serveur HTTP, images, pages html ou javascrpt, etc

Fini les CGI...

Par contre, pas de version pour Windows.

Jean-Marc

Pour du REST tu peux utiliser aussi Casablanca : http://casablanca.codeplex.com/
Avatar de jm130794 jm130794 - Candidat au Club http://www.developpez.com
le 28/08/2014 à 15:21
Citation Envoyé par redcurve  Voir le message
Pour du REST tu peux utiliser aussi Casablanca : http://casablanca.codeplex.com/

Je sais

Néanmoins, si l'asynchrone n'est pas une priorité, tntnet offre beaucoup plus de possibilités que Casablanca.

Ses atouts :
- il et est plus mature,
- la documentation est bien faite,
- il gère les formats XML, JSON, CVS, ... sans bibliothèques supplémentaires,
- les pages HTML seront transformées en composant C++ natif si nécessaire,
- il intègre une gestion des logs par niveau (DEBUG, ERROR, TRACE, INFO, ...
- les ressources peuvent être intégrées au programme,
- on peut faire autre chose que du REST,
- ...

Je n'ai pas dit que Casablanca est à éviter, loin de là mais utiliser tntnet peut mettre en évidence que les applications Web peuvent très bien être réalisées en C++.

Jean-Marc
Offres d'emploi IT
Développeur symfony – (H/F)
Mobiskill - Ile de France - Paris (75000)
Consultant technique .net / sql h/f
INTEAM - Ile de France - Paris (75000)
Consultant Technico Fonctionnel Junior SAP H/F
Atos Technology Services - Rhône Alpes - Lyon

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil