Évoquer le développement natif, cela implique qu’une application appelle en direct les primitives (ou API) du système d’exploitation sur lequel il s’exécute. Or, les systèmes d’exploitation sont majoritairement faits en C/C++. Le développement natif se traduit naturellement en développement C/C++ car les primitives des systèmes sont soit des fonctions, des classes ou des interfaces exposées pour être utilisées par un compilateur C++.
C++ est dans l’O.S et pas seulement dans Windows, il est dans le navigateur web et pas seulement dans Internet Explorer. La communauté C++ ne se recrute pas seulement au travers des universités et des entreprises, c’est la plateforme la plus populaire (25%) devant Java (17%), C# (7%), PHP (6%) et Objective-C (6%) – cf. l’indice TIOBE disponible sur http://www.tiobe.com. 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és comme C# ou Java qui sont dépendants d’un framework et d’un runtime d’exécution. Et lorsqu’une fonctionnalité n’est pas exposée au travers du couple framework/runtime, un langage managé doit faire un appel à des API natives au travers d’un système de traversée de couches (marshalling) souvent exotique à coder (P/Invoke en C#, JNI en Java).
Christophe Pichaud