� C�est le moment d�arr�ter d�initier de nouveaux projets en C ou C++ et de passer � Rust �, selon Mark Russinovich de Microsoft
Qui recommande Rust pour une meilleure s�curisation des logiciels
Go, C3, D, � La liste des langages pr�sent�s comme des alternatives au C ou au C++ s�allonge avec les ann�es qui passent. Celui qui a frapp� un grand coup dans ces tentatives multiples de mise au rebut du langage C est le Rust. En effet, le noyau Linux s�ouvre de plus en plus au langage de programmation syst�me de Mozilla. Ainsi, des voix s��l�vent de plus en plus pour en faire le successeur attitr� des langages C et C++. Sans d�tour Mark Russinovich de Microsoft vient de d�clarer que � c�est le moment d�arr�ter d�initier de nouveaux projets en langages C ou C++ et de passer � Rust. �
Chez Amazon par exemple, on est d�avis que � choisir Rust c�est opter pour une meilleure s�curisation des logiciels qu�avec le C, mais une efficacit� �nerg�tique et une performance d�ex�cution que seul le C offre. � En effet, certains benchmarks sugg�rent que les applications Rust sont plus rapides que leurs �quivalents en langage C. Et c�est justement pour ces atouts que sont la parit� en termes de vitesse d�ex�cution en comparaison avec le C, mais surtout pour la s�curisation et la fiabilit� que Mark Russinovich recommande le Rust plut�t que le C ou le C++.
Apr�s 31 ans, un deuxi�me langage sera admis pour le d�veloppement du noyau Linux : c�est le Rust. La prise en charge de Rust pour le d�veloppement du noyau Linux est vue comme une � une �tape importante vers la capacit� d'�crire les pilotes dans un langage plus s�r. � Rust de Mozilla Research est le type de langage de programmation auquel ceux qui �crivent du code pour des syst�mes d�entr�e/sortie de base (BIOS), des chargeurs d�amorce, des syst�mes d�exploitation, etc. portent un int�r�t. D�avis d�observateurs avertis, c�est le futur de la programmation syst�me en lieu et place du langage C.
Le cr�ateur du langage C3 dresse n�anmoins une longue liste de raisons pour lesquelles les initiatives de mise au rebut du langage C sont vou�es � l��chec. Il s�exprime sur divers aspects dont :
La cha�ne d'outils du langage C
Le langage C n'est pas seulement le langage lui-m�me, mais aussi tous les outils de d�veloppement d�velopp�s pour ce langage. Vous voulez faire une analyse statique de votre code source ? - Il y a beaucoup de gens qui travaillent sur ce sujet pour le C. Des outils pour d�tecter les fuites de m�moire, les courses de donn�es et autres bogues ? Il y en a beaucoup, m�me si votre langage est mieux outill�.
Si vous voulez cibler une plateforme obscure, il est probable que vous utilisiez le C. Le statut du C en tant que lingua franca de l'informatique d'aujourd'hui fait qu'il vaut la peine d'�crire des outils pour ce langage, et de nombreux outils sont donc �crits.
Si quelqu'un a mis en place une cha�ne d'outils qui fonctionne, pourquoi risquer de changer de langage ? Un "meilleur C" doit apporter beaucoup de productivit� suppl�mentaire pour motiver le temps pass� � mettre en place une nouvelle cha�ne d'outils. Reste m�me � savoir si cela est possible.
Les incertitudes d'un nouveau langage
Avant qu'un langage ne soit arriv� � maturit�, il est probable qu'il comporte des bogues et qu'il soit modifi� de mani�re significative pour r�soudre les probl�mes de s�mantique du langage. Et le langage est-il m�me conforme � la publicit� ? Il offre peut-�tre quelque chose comme "des temps de compilation exceptionnels" ou "plus rapide que le C" - mais ces objectifs s'av�rent difficiles � atteindre lorsque le langage ajoute l'ensemble des fonctionnalit�s.
Et qu'en est-il des mainteneurs ? Bien s�r, un langage open source peut �tre bifurqu�, mais je doute que de nombreuses entreprises soient int�ress�es par l'utilisation d'un langage qu'elles pourraient �tre oblig�es de maintenir plus tard. Parier sur un nouveau langage est un gros risque.
Le fait que le langage pourrait tout simplement ne pas �tre assez bon
Le langage s'attaque-t-il aux v�ritables points faibles du C ? Il s'av�re que les gens ne sont pas toujours d'accord sur ce que sont les points sensibles du C. L'allocation de m�moire, la gestion des tableaux et des cha�nes de caract�res sont souvent d�licates, mais avec les bonnes biblioth�ques et une bonne strat�gie m�moire, elles peuvent �tre minimis�es. Le langage ne traite-t-il pas des probl�mes dont les utilisateurs avanc�s ne se soucient pas vraiment ? Si c'est le cas, sa valeur r�elle pourrait �tre beaucoup plus faible que pr�vu.
Et pire encore, que se passe-t-il si le langage omet des fonctionnalit�s cruciales qui sont pr�sentes en C ? Des fonctionnalit�s sur lesquelles les programmeurs avanc�s du C comptent ? Ce risque est accru si le concepteur du langage n'a pas beaucoup utilis� le C, mais vient du C++, du Java, etc.
L�absence de d�veloppeurs exp�riment�s pour un nouveau langage
Un nouveau langage disposera naturellement d'un groupe beaucoup plus restreint de d�veloppeurs exp�riment�s. Pour toute entreprise de taille moyenne ou grande, c'est un �norme probl�me. Plus il y a de d�veloppeurs disponibles pour une entreprise, mieux elle se porte.
De plus, si l'entreprise a l'exp�rience du recrutement de d�veloppeurs C, elle ne sait pas comment recruter pour ce nouveau langage.
L'ABI C
Si le langage ne peut pas facilement appeler - ou �tre appel� - par du code C, alors toute personne utilisant le langage devra faire un travail suppl�mentaire pour faire � peu pr�s tout ce qui est interface avec du code ext�rieur. C'est potentiellement un �norme inconv�nient.
Source : Mark Russinovich
Et vous ?
�tes-vous en accord avec les griefs port�s � l'endroit de C/C++ en mati�re de s�curit� ? Le probl�me n'est-il pas plut�t celui de la qualit� des d�veloppeurs ?
Le C et le C++ a-t-il vraiment besoin de rempla�ants surtout en mati�re de programmation syst�me ?
Votre entreprise a-t-elle adopt� le langage Rust ? Si oui, pour quelles raisons ?
Quel commentaire faites-vous de l�argumentaire du cr�ateur du langage C3 ? Quels sont les aspects les plus pertinents ? Quels sont ceux qui le sont moins ?
�tes-vous aussi d�avis que la communaut� Linux anticipe non seulement sur les d�parts en retraite des actuels mainteneurs et sur les qualit�s que Rust offre en comparaison au langage C ?
Pourquoi les langages C et C++ pourraient-ils encore avoir de longues ann�es devant eux ?
Voir aussi :
L'�quipe Microsoft Security Response Center recommande l'utilisation de Rust comme approche proactive pour un code plus s�curis�
Quel langage pourrait remplacer C ? Apr�s avoir compar� Go, Rust et D, le choix d'Andrei Alexandrescu se porte sur D
C2Rust : un outil qui permet de faire la traduction et la refactorisation de votre code �crit en langage C vers le langage Rust