C++ unsafe et unsecure ?

Mes collègues du monde Microsoft et autres me disent que C++ est dépassé, trop difficile, trop vieux, trop dur à maîtriser et y en a même qui me dise qu’il est unsafe et unsecure !

Je rigole.

Si C++ était porteur de tous ces défauts, Microsoft ne ferait pas 95% de ces produits avec. Je vais revenir sur unsafe et unsecure car c’est très intéressant. Mais avant un rappel: TOUT CE QUE VOUS AVEZ SUR VOS PC et MAC EST FAIT EN C++. Windows, Office (Word, Excel, PowerPoint, Outlook), IE, Chrome, VLC, Notepad++, Calc, MSPaint, Photoshop, File Explorer, Process Explorer, etc…

Pour vendre .NET le Marketing a essayé de décrédibiliser C++ car trop riche, trop puissant et qui n’a pas besoin de publicité ni de marketing, lui. Dans les années 2000, le marketing a essayé de vendre l’idée qu’un langage qui manipule finement la mémoire est susceptible de planter et que la panacée c’était le Garbage Collector. Ce raisonnement est une arnaque intellectuelle.

Ce n’est parce que un langage comme C ou C++ permettent de manipuler la mémoire finement à l’octet près que cela signifie plantage ou corruption de mémoire. Le Marketing, qui est un contingent de personnes qui sortent d’écoles de commerce ne connait rien à la technique et donc ces gens font des raccourcis grossiers. Il faut le dire.

Pour ceux qui sont curieux, la machine virtuelle NET ou CLR (Common Langage Runtime) est faite en C++ donc voilà, la boucle est bouclée. Si C++ était si pourri que ça, le CLR ne serait pas fait en C++. Le garbage collector et le JIT non plus ! Le problème c’est que NET doit luter contre un adversaire qui était là avant lui, à savoir Java et que la concurrence fait rage. Java est beaucoup plus implanté en entreprises que NET et cela malgré des milliards investis en marketing et publicité.

Donc je pose la question: est-ce que d’essayer de décrédibiliser C++ a été une bonne méthode pour vendre NET au monde des développeurs ? Je ne crois pas. C++ est standardisé à l’ISO et compte des millions de développeurs. Le langage C++ n’a pas besoin de publicité, c’est le langage de l’industrie, du médical, de l’édition logicielle, des jeux, etc. C++ est là depuis 40 ans et s’est renouvelé en profondeur. Ce n’est plus le C++ à Papa, le fameux C++98 ou C+03. On est passé au C++ Moderne, celui qui libère la mémoire automatiquement via les pointeurs intelligents ou smart pointers, celui des lambdas, celui de la move semantic. Le Marketing n’en parle pas, bien sur… Le marketing ce n’est pas des mathématiques, ce n’est pas scientifique et c’est pour cela qu’il faut s’en méfier.

Dans le domaine de la conception logicielle, il ne faut jamais croire le marketing et toujours s’en remettre à un raisonnement scientifique. Il faut tester les technologies et se faire sa propre opinion et toujours être factuel.

Moi j’ai accès au code source de Windows et tout est fait en C/C++. C’est du C++ moderne et c’est clean. Windows sera toujours écrit en C++.

La dernière news du moment c’est de pousser Rust comme langage kernel pour résoudre les problèmes mémoire. C’est un faux débat car le kernel comprend un Memory Manager (mm) qui gère la mémoire virtuelle et seule C++ permet d’écrire un tel module. Certains chercheurs n’ont aucune connaissance des systèmes d’exploitation et essaient de faire le buzz autour de Rust avec une démarche marketing… ça y est, ils remettent le couvert. Laissons les parler, Microsoft ne réécrira jamais Windows en Rust. Il y a des millions de ligne de code. Et contrairement à ce que disent les journaux pour les managers comme 01 Informatique, Microsoft ne réécrit pas les OS from scratch. Cela se saurait. Microsoft fait évoluer Windows depuis 25 ans. Et c’est du C++. N’en déplaise au Marketing.

Les grands logiciels sont faits en C++. Un Nième exemple ? Chrome et NodeJS. On ne peut pas saluer la révolution JavaScript sans penser à C++. NodeJS c’est du pur C++ et Chrome aussi. Microsoft en a fait son nouveau browser avec Chromium. Chrome est un logiciel (browser) qui équipe des milliards d’ordinateurs et c’est rapide, fiable et puissant. Vive C++ !

C++ RENAISSANCE

POWER AND PERFORMANCE

“THE WORLD IS BUILT ON C++”, Herb Sutter.

Envoyez moi vos commentaires sur mon email: christophep@cpixxi.com.

4 thoughts on “C++ unsafe et unsecure ?”

  1. Hi great blog! Does running a blog such as this take a lot of work?
    I’ve virtually no expertise in programming however
    I was hoping to start my own blog soon. Anyways, should
    you have any ideas or techniques for new blog owners please share.
    I know this is off topic nevertheless I simply wanted to ask.
    Thanks a lot!

Leave a Reply

Your email address will not be published. Required fields are marked *