CppCon 2016 : Persuader les programmeurs de C de migrer vers C++
Par Dan Saks

Le , par Coriolan

0PARTAGES

18  0 
C++ permet l’utilisation de l’ensemble des bibliothèques C existantes de telle sorte que beaucoup croient qu’ils sont liés l’un à l’autre, et ce n’est pas faux. Migrer du code de C à C++ est une tâche assez simple. En plus, cette migration elle-même peut s’avérer bénéfique dans le sens où elle permet d’exposer les conversions incertaines qui pourraient causer des bogues latents par la suite. Après la migration, le code a sous C++ la même performance qu’il a dans C, mais maintenant il est possible d’avoir accès à un lot de fonctionnalités qu’on peut utiliser afin d’implémenter des améliorations.

Le langage C++ a eu un énorme succès dans de nombreuses applications et domaines, il n’appartient à personne et par conséquent n’importe qui peut l’utiliser sans besoin d’une autorisation ou obligation de payer pour avoir le droit d’utilisation, ce qui en fait l’un des langages les plus populaires ayant le support d’une variété de plateformes matérielles et de systèmes d’exploitation. Mais malgré ce succès, C reste encore le langage privilégié des développeurs dans certains domaines comme les applications embarquées, de l’automobile et ceux de l’aéronautique. Dans beaucoup de cas, des projets n’admettent pas le C++ en raison du scepticisme des managers qui considèrent que les risques sont beaucoup plus importants que les avantages pour considérer le langage comme une option. Autrement dit, il y a toujours cette perception négative sur C++ chez certains programmeurs, même si elle n'est plus viable forcément.

Afin de tacler cette problématique, Dan Saks se demande comment la communauté C++ va surmonter cette résistance. En s’appuyant sur la science cognitive, la linguistique, la psychologie et bien sûr l’informatique ; il cherche à offrir des suggestions sur la façon de rendre C++ plus convaincant pour les programmeurs de C. Dan Saks est l’un des experts les plus notables de C et C++ et leur usage dans le développement de systèmes embarqués.


Source : YouTube

Et vous ?

Qu'en pensez-vous ?

Voir aussi :

La rubrique C++ : Forum C++, Cours et tutoriels C++, FAQ C++, ...
CppCon 2016 : Bjarne Stroustrup parle de l'évolution de C++ et s'intéresse à son passé, à son présent mais aussi à son futur

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de jopopmk
Membre expert https://www.developpez.com
Le 27/09/2016 à 14:04
Citation Envoyé par Coriolan Voir le message
Qu'en pensez-vous ?
Jamais ! JAMAIS ! AH AH AH AH !!! (je chauffe déjà et on est que mardi)

Bon ...
Perso, a priori je ne vois pas tellement d'avantage à passer au C++, toute la POO me semble assez aisément dispensable.
Par contre j'ai pas encore pu regarder la vidéo, je verrai ça quand j'aurai du temps devant moi (1h30 quand même).
Avatar de foetus
Expert éminent https://www.developpez.com
Le 27/09/2016 à 14:19
Citation Envoyé par jopopmk Voir le message
toute la POO me semble assez aisément dispensable.
Je mets 1 pièce que tu tapes à côté

Je pense plutôt qu'il insiste sur la RAII et sur le fait qu'en C++11 toutes les allocations dynamiques sont cachées: "code safer" ou un truc approchant
Avatar de jopopmk
Membre expert https://www.developpez.com
Le 27/09/2016 à 14:46
Citation Envoyé par foetus Voir le message
Je mets 1 pièce que tu tapes à côté

Je pense plutôt qu'il insiste sur la RAII et sur le fait qu'en C++11 toutes les allocations dynamiques sont cachées: "code safer" ou un truc approchant
Je parle de mon cas : le seul intérêt serait d'avoir la facilité de conception qu'offre la POO, mais même là ça me motive pas.
J'espère effectivement qu'en 1h30 il a des arguments un peu plus chiadés que "la POO c'est trop d'la boulette"

PS : moi j'aime mes pointeurs pas safe et mes alias disséminés de partout
Avatar de ParseCoder
Membre averti https://www.developpez.com
Le 27/09/2016 à 17:07
Le seul frein que je vois est la complexité du langage C++ et ça ne va pas en s’arrangeant. C'est clair que c'est plus complexe que le C et ça peut freiner une migration malgré les avantages du C++. Il faut tenir compte de la disponibilité des compétences en C++.
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 27/09/2016 à 17:14
Citation Envoyé par ParseCoder Voir le message
Le seul frein que je vois est la complexité du langage C++ et ça ne va pas en s’arrangeant. C'est clair que c'est plus complexe que le C et ça peut freiner une migration malgré les avantages du C++. Il faut tenir compte de la disponibilité des compétences en C++.
Ça me fait penser à ce débat : C++ aujourd'hui est-il comme Fortran ? Aurait-il atteint ses limites ? Un ingénieur explique pourquoi il ne s'adonne plus beaucoup au C++ moderne
Avatar de Luc Hermitte
Expert éminent sénior https://www.developpez.com
Le 27/09/2016 à 17:26
On retrouve les présentations que Dan Saks avait données pour les Code:ive 2015. Je reprends ce que je disais (il y a d'autres présentations pour le public qui doute des apports du C++ en embarqué) ici: http://www.developpez.net/forums/d32...r/#post8505022

Citation Envoyé par Luc Hermitte Voir le message
Tout d'abord les conférences de Dan Saks, un avocat de longue date pour employer le C++ en embarqué. Il y traite de mindset, c'est à dire, d'états d'esprit, de philosophie, et d'a priori. Il explique que les avocats du C++ ne savent pas parler aux développeurs C et en particulier à ceux qui font de l'embarqué. En particulier il a soulevé le quiproquo sur l'investigation : le développeur C++ met en avant un type (qui en plus n'est pas forcément le plus adapté) que le développeur C trouve inexploitable pour débugguer les soucis. A la place il aurait pu mettre en avant que le nouveau type est là pour intercepter les soucis au plus tôt (en compilation), afin de réduire drastiquement les besoins de debuggage.

Dans ses conférences, il donne des exemples où le C++ apporte de la sécurité grâce à son typage moins laxiste, et ce sans dégrader les performances.
- Sonner Rather that Later:

- Representating Memory Mapped Devices as Objects:
Bref, l'OO, OSEF ici. Son premier point est que les développeurs C ont des attentes et des habitudes, et que les dev C++ ne savent pas leur expliquer en quoi le C++ est une alternative qui pourrait leur convenir. Et non, la réponse ne se résume pas à "OO". C'est d'ailleurs plus des surcouches génériques et sécurisées qui sont mises en avant, en appuyant le fait que l'on refile la tâche de l'analyse au compilateur au lieu de passer du temps à débugger.

Bref, mettez vos a priori de côté et regardez ces confs avant de dire "toute la POO me semble assez aisément dispensable". Le C++ n'est plus depuis longtemps un C avec juste de l'OO en plus.
Avatar de derderder
Membre averti https://www.developpez.com
Le 27/09/2016 à 17:26
Quel intérêt pour un programmeur C de passer au C++ plutôt qu'au Rust par exemple ? Une vidéo pour inciter les pprogrammeurs C++ à passer au Rust me paraitrait plus utile...
Avatar de Vincent PETIT
Modérateur https://www.developpez.com
Le 27/09/2016 à 17:44
[...]Mais malgré ce succès, C reste encore le langage privilégié des développeurs dans certains domaines comme les applications embarquées, de l’automobile et ceux de l’aéronautique. Dans beaucoup de cas, des projets n’admettent pas le C++ en raison du scepticisme des managers[...]
Oula... ça n'a rien a voir avec le scepticisme.
C'est simplement que les managers savent ce qu'est le domaine de l'embarqué contrairement a Dan Saks qui réduit les systèmes embarqués aux nano-PC embarquant un OS et c'est justement une erreur.

Pourquoi je dis ça ? Déjà parce que j'étais développeur de ce côté là justement mais aussi parce que :

Dans la vie courante, qui dit systèmes embarqués dit : 5% de gros microcontrôleurs/SoC (dans le genre Raspberry) avec un OS et 95% de microcontrôleurs sans aucun système d'exploitation.

Chez vous les 5% c'est votre box internet, votre téléphone portable, vos PC, votre télévision et votre console et c'est a peu prés tout pour les gens normalement connecté.
Les 95% c'est dans vos voitures, votre thermostat, votre chaudière, chauffage, votre frigo, micro-onde, réveil, thermomètre, dans les capteurs de fumée, les jouets des enfants .... j'arrête là car il y a aujourd'hui des petits micro-contrôleurs programmés en langage C ou assembleur dans tout ce qui vous entours et qui est électronique. C'est devenu tellement pas cher ces bestioles que même lorsqu'il y en a pas besoin, et bien on en trouve un.

En gros on peut voir ça comme dans une alarme où on aurait une centrale avec un OS (là le C++ a un réel avantage) pour plein de capteurs intelligents (programmés en C) qui n'embarque aucun OS.

Afin de tacler cette problématique, Dan Saks se demande comment la communauté C++ va surmonter cette résistance. En s’appuyant sur la science cognitive, la linguistique, la psychologie et bien sûr l’informatique ; il cherche à offrir des suggestions sur la façon de rendre C++ plus convaincant pour les programmeurs de C. Dan Saks est l’un des experts les plus notables de C et C++ et leur usage dans le développement de systèmes embarqués.[...]
Qui a déjà programmé sur un microcontrôleur sait que si il passe au C++ alors ça sera pour utiliser que ce qui est commun au langage C donc il n'y a pas d'intérêts.
Avatar de Luc Hermitte
Expert éminent sénior https://www.developpez.com
Le 27/09/2016 à 18:17
@Vincent, regarde la présentation de Bartosz Szurgot alors
Avatar de Thorna
Membre éprouvé https://www.developpez.com
Le 27/09/2016 à 19:15
Tant qu'à choisir un truc un peu moderne qui a plus ou moins des airs de C, pourquoi pas plutôt D ?
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web