BM

Avenir du C++

par Bah Mamadou, vendredi 9 avril 2021, 12:08
 

L’avenir du C++

Aujourd’hui, il fait partie des langages les plus utilisés dans le monde de la programmation informatique selon plusieurs aspects mais aussi d’après un sondage lancer en 2015 par la  plateforme developpez.com  qui consistait à demander à des développeurs informatiques leur langage de programmation préféré. Grâce à sa flexibilité il est utilisé dans la création des applications mais aussi des jeux. Même si ce sondage date de plus de cinq ans, partons sur ce sondage avec  d’autres aspects et  cherchons à savoir l’avenir de ce langage dans ces prochaines années.

Avant de parler beaucoup plus sur son avenir, intéressons nous d'abord sur son évolution jusque aujourd'hui c'est à dire du C++ moderne dont sa dernière mise à jour date de 2020.

Ce langage n'a cessé d'évoluer pour s'adapter aux nouvelles technologies avec différentes nouvelles versions qui sont disponibles chaque trois depuis 2011 et la dernière version date du 4 septembre 2020 et qui tarda pas à être publiée par l’ISO(organisation internationale de normalisation) pour ce plusieurs fonctionnalités ont été rajoutées tels que:

La ressource et pointeurs intelligents: La fuite des mémoires est quelque chose de très fréquent lorsque l'on programme en C++ qui est généralement causé par l'appel de la fonction delete de la mémoire qui a précédemment été allouer par la fonction new.Le C++ moderne met en place une méthodes  beaucoup plus liés au langage machine qu'on ne détaillera pas ici qui diminue fortement la probabilité de de fuite mémoire grâce à l'approche des pointeurs intelligents.

De nouvelles syntaxes: l'ajout de plusieurs nouvelles fonctionnalités de la bibliothèque permettent de rendre ce langage encore plus performant comme le std::string_view qui lorsque l'on passe juste une chaîne dans une fonction qui requiert juste sa lecture à un gain de temps important  lors de la compilation du programme ,Tout de même avec plusieurs d'autres nouveaux conteneurs  de la bibliothèque standard comme le std::variant ,std::span, std::remove_cvref et tant d’autres. De même plusieurs fonctionnalités et dépréciation ont été supprimées avec le C++20 (C++ mis à jour en 2020) notamment les entêtes dérivées du C (<ccomplex> ; <Ciso646> ;<ctgmath> ;...)car ils ne servent à rien en C++, l’identification des throw() comme spécification d’exception a aussi été supprimé. Mais il ne s’agit pas seulement de suppression ou d’implémentation de nouvelles fonctions pour faire de ce langage un outil à jour répondant au besoin des programmeur mais le but est de le garder aussi bien longtemps dans la course des autres outils de programmation.

programme C++(**)

Ces différentes mise à jour du langage font-ils de lui l’un des meilleurs outils de programmation ? Pour avoir une idée à la réponse de cette question , partons de l’expérience partager par Henrick Bucher qui est ingénieur spécialisé dans la conception de logiciels scientifiques qui explique pourquoi il ne s’adonne plus beaucoup au C++ moderne même avec toutes ses nouvelles implémentations et qui ne cesse d’être améliorer.

Pour Henrick Bucher , le C++ moderne a une perte de performance grâce aux structures qui deviennent plus en plus complexes.Et pourtant c’est ici que par exemple Fortan excelle ,en se basant sur son expérience sur les transactions qui sont d’une haute fréquence(qui désigne l’exécution à grande vitesse de transactions financières faites par des algorithmes) ,mais aussi dans l’industrie du jeux, il dit que c’est inimaginable de croire que les templates vont être plus performant car le code du C++ s’évanouit comme par magie dans le compilateur. Même si au niveau du temps de compilation les templates augmentent de façon significative le temps de compilation. Il termine en disant :« Ce n'est pas pour dire qu'il est impossible de créer des plateformes basées sur le C++ moderne avec une faible latence et rapides, mais cela crée de nombreux obstacles qui peuvent paralyser une équipe ou générer des graphiques extrêmement difficiles à optimiser avec lesquels les compilateurs C++ auront des difficultés ».

Malgré tout cela, le C++ reste tout de même un langage ayant besoin de modifications constantes, répondant au besoin des utilisateurs du langage. Ce dernier étant très populaire jusqu'à ce jour, nul ne sait s'il n'aurait pas de la concurrence à se faire parmi les nouveaux langages, certes moins populaires mais ayant plus de potentiel. En effet nombreux sont ceux qui voient un possible remplacement du C++ dans le futur proche ou lointain. On retrouve parmi eux des langages tels que :

    -Le Vala

    -Le D

    -Le C#

    -Le Dart

Le Vala trouve son point fort dans sa compatibilité avec de nombreux logiciels tel que le VTK. Le D était lui conçu depuis le debut comme une alternative au C++, il simplifie pas mal de choses afin que le langage soit plus accessible. Le C# était tout d'abord vu comme une alternative à Java mais étant compilable en langage machine son utilité pour les applications deviendrait une alternative plausible au C++. Le Dart lui concurrence C++ pour les scripts en local, il était d'abord vu comme une alternative au JavaScript avec la syntaxe du C.

Les utilisateurs voient donc une limite potentielle au C++ dans le futur proche et un possible remplacement de ce dernier afin d'obtenir de meilleures performances, il y a donc un réel besoin du C++ de s'améliorer continuellement.

sources :

(1) https://fr.wikipedia.org/wiki/C%2B%2B

(2) https://www.scriptol.fr/programmation/c-successeurs.php
(3) https://docs.microsoft.com/fr-fr/cpp/cpp/welcome-back-to-cpp-modern-cpp?view=msvc-160

(4) https://cpp.developpez.com/

(5) https://www.linkedin.com/pulse/why-i-dont-spend-time-modern-c-anymore-henrique-bucher-phd


images:

(**)lien :https://p2.piqsels.com/preview/792/452/926/code-text-screen-webcomponent.jpg

licence : Creative Commons

auteur: 




» Culture numérique