C++ Renaissance

C++ Renaissance

C++ est dans l’O.S et pas seulement dans Windows, C++ est dans le navigateur web et pas seulement Internet Explorer. La communauté C++ se réduit mais au travers des universités, c’est la plateforme la plus populaire, avec .NET, Java et PHP.

C++ veut dire développement natif. C++ permet d’accéder à toutes les fonctionnalités sous-jacentes du système d’exploitation. C’est une caractéristique unique. Ce n’est pas le cas des langages managé comme C# ou Java qui dépendant d’un framework et lorsque la fonctionnalité n’est pas exposée au travers du framework et de ses classes de bases, l’appel au code natif est la seule possibilité.

La nouvelle génération d’application appelle le développement natif. Native UI.

L’autre argument est la puissance et la performance qu’apporte C++ et il n’y a pas d’équivalents. Un très haut degré d’abstraction mais sans compris sur la performance.

C++ a évolué et les extensions TR1 et C++ 11, anciennement nommé C++ 0X en sont la preuve.

Avant, le code C++ utilisait des appels à new et le code pouvait produire des fuites mémoires. Avec les shared_ptr<T>, il est possible de complètement s’affranchir des problèmes liés à la restitution de la mémoire. Bjarne Stroutrup, inventeur du C++ déclare à propose de C++, entre autre que « C++ is the best language for garbage collection principally because it creates less garbage ». A traduire.

Le manager de Visual C++ (Ale Contenti) préfère cette maxime « C++ brings Power and Performance without comprise». A traduire.

Le code natif est très naturel car la plupart du temps, le code a une relation simple avec la mémoire. Le programme interagit en direct.

Le monde C++ est indissociable du monde des librairies. La symbiose entre le langage et les librairies est totale. Le monde C++ existe depuis plus de 20 ans et donc il existe des centaines de librairies.

C++ permet d’avoir du code « clean » et « secure » malgré tous les slogans marketing que l’on a pu entendre à propose des langages évolués comme C# ou Java. La librairie STL par exemple apporte un niveau de maturité et de stabilité exceptionnel qui rend le code plus fort, plus lisible et sans compris sur la performance. En C++, chaque programmeur a un jour essayé de coder sa propre classe String et finalement, après des heures de conception et après avoir essayé de gérer son propre buffer, le constructeur par copie ou la surcharge de l’opérateur d’affectation, on arrive à la conclusion que l’implémentation standard std::string fournit dans la STL fait le job de manière bien plus efficace !

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: