IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Communiqu�s de presse

    Femme Profil pro
    Traductrice Technique
    Inscrit en
    Juin 2023
    Messages
    2 399
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : Traductrice Technique

    Informations forums :
    Inscription : Juin 2023
    Messages : 2 399
    Par d�faut Le cr�ateur de C++ appelle � l'aide de la communaut� du langage pour le d�fendre contre de graves attaques
    C++ sous st�ro�des : Bjarne Stroustrup pr�sente des � profils � renforc�s par des lignes directrices pour la s�curit� des ressources et des types, afin de garantir que le code est contemporain et s�r.

    Bjarne Stroustrup a pr�sent� des � profils � renfor�ant les lignes directrices pour la s�curit� des ressources et des types de C++. Ces profils sont un moyens de s'assurer que le code soit contemporain, plut�t que de s'appuyer sur des techniques d�pass�es, peu s�res et difficiles � maintenir.

    Le C++ est un langage de programmation g�n�ral de haut niveau. Publi� pour la premi�re fois en 1985 en tant qu'extension du langage de programmation C, il s'est consid�rablement d�velopp� au fil du temps. Depuis 1997, le C++ poss�de des caract�ristiques orient�es objet, g�n�riques et fonctionnelles, ainsi que des fonctions de manipulation de la m�moire de bas niveau pour des syst�mes tels que les micro-ordinateurs ou pour cr�er des syst�mes d'exploitation tels que Linux ou Windows. Il est g�n�ralement impl�ment� en tant que langage compil�, et de nombreux fournisseurs proposent des compilateurs C++.

    Le C++ a �t� cr�� par l'informaticien danois Bjarne Stroustrup. Il a notamment dirig� le d�partement de recherche sur la programmation � grande �chelle aux Bell Labs, a �t� professeur d'informatique � l'universit� Texas A&M et a pass� plus d'une d�cennie chez Morgan Stanley tout en �tant professeur invit� � l'universit� Columbia. Depuis 2022, il est professeur titulaire � Columbia.

    R�cemment, Bjarne Stroustrup a pr�sent� des � profils � renfor�ant les lignes directrices pour la s�curit� des ressources et des types de C++. "Cela fait maintenant plus de 45 ans que le C++ a �t� con�u", �crit Bjarne Stroustrup dans un article publi� cette semaine dans Communications of the ACM. Il se plaint que de nombreux d�veloppeurs "utilisent le C++ comme s'il s'agissait encore du mill�naire pr�c�dent", dans un article intitul� 21st Century C++ qui promet "les concepts cl�s sur lesquels des logiciels C++ performants, s�rs et flexibles peuvent �tre construits : la gestion des ressources, la gestion de la dur�e de vie, la gestion des erreurs, la modularit� et la programmation g�n�rique...".


    Bjarne Stoustrup pr�sente des moyens de s'assurer que le code soit contemporain, plut�t que de s'appuyer sur des techniques d�pass�es, peu s�res et difficiles � maintenir : les lignes directrices et les profils.

    Pour aider les d�veloppeurs � se concentrer sur l'utilisation efficace du C++ contemporain et � �viter les � coins sombres � obsol�tes du langage, des ensembles de lignes directrices ont �t� �labor�s. Je me concentre ici sur les lignes directrices du C++ Core que je consid�re comme les plus ambitieuses... Mon objectif principal est une utilisation de la norme ISO C++ sans danger pour les types et les ressources. En d'autres termes :

    - Chaque objet est exclusivement utilis� conform�ment � sa d�finition
    - Aucune ressource n'est perdue.

    Cela englobe ce que les gens appellent la s�curit� de la m�moire et bien plus encore. Il ne s'agit pas d'un nouvel objectif pour le C++. Il est �vident qu'il ne peut pas �tre atteint pour chaque utilisation du C++, mais nous avons maintenant des ann�es d'exp�rience montrant que c'est possible pour le code moderne, bien que jusqu'� pr�sent l'application ait �t� incompl�te... Lorsque l'on pense au C++, il est important de se rappeler que le C++ n'est pas seulement un langage, mais qu'il fait partie d'un �cosyst�me compos� d'impl�mentations, de biblioth�ques, d'outils, d'enseignement, et plus encore.
    Le WG21 (et d'autres) travaille sur des � profils � pour mettre en �uvre des lignes directrices (bien qu'ils ne soient "pas encore disponibles, � l'exception de versions exp�rimentales et partielles"). Mais Stroustrup annonce que les directives de base du C++ "utilisent une strat�gie connue sous le nom de sous-ensemble de sous-ensemble".

    Premi�rement : �tendre le langage avec quelques abstractions de biblioth�que : utiliser des parties de la biblioth�que standard et ajouter une minuscule biblioth�que pour rendre l'utilisation des directives pratique et efficace (la biblioth�que de soutien des directives, GSL).
    Ensuite : sous-ensemble : interdire l'utilisation de fonctionnalit�s de bas niveau, inefficaces et sujettes aux erreurs.

    Ce que nous obtenons, c'est du "C++ sous st�ro�des" : Quelque chose de simple, s�r, flexible et rapide, plut�t qu'un sous-ensemble appauvri ou quelque chose qui repose sur une v�rification massive au moment de l'ex�cution. Nous ne cr�ons pas non plus un langage avec des caract�ristiques nouvelles et/ou incompatibles. Le r�sultat est 100% ISO standard C++. Les fonctionnalit�s de bas niveau, d�sordonn�es et dangereuses, peuvent toujours �tre activ�es et utilis�es en cas de besoin.
    Stroustrup �crit que les directives de base du C++ se concentrent sur des r�gles "dont nous esp�rons que tout le monde pourra �ventuellement b�n�ficier".

    • Pas de variables non initialis�es
    • Pas de violation de plage ou de nullptr
    • Pas de fuites de ressources
    • Pas de pointeurs pendants
    • Pas de violation de type
    • Pas d'invalidation


    Pour rappel, Bjarne Stroustrup, cr�ateur du langage C++, a 74 ans. Il avait racont� qu'il est devenu programmeur par erreur, en se trompant de mot au moment de choisir ce qu'il allait �tudier apr�s ses examens de fin d'�tudes secondaires. Stroustrup pensait s'inscrire � un cours de math�matiques appliqu�es, qui s'est av�r� �tre un cours d'informatique. Maintenant, il est l'un des piliers du langage C++.

    Source : Article 21st Century C++

    Et vous ?

    Pensez-vous que ses conseils sont cr�dibles ou pertinents ?
    Quel est votre avis sur le sujet ?

    Voir aussi :

    Bjarne Stroustrup publie un article dans lequel il explique comment C++ a r�ussi � s'�panouir, dans un monde surpeupl� de langages et changeant de 2006 � 2020

    Vers un C++ plus s�r ? Avec les extensions Safe C++, la communaut� veut r�pondre aux d�fis modernes de la s�curit� des logiciels, dans un contexte o� plusieurs recommandent de le remplacer par des alternatives

    Les deux factions du C++ : la communaut� est divis�e entre ceux qui souhaitent un C++ moderne avec un meilleur outillage int�gr� et ceux qui veulent conserver le langage h�rit�

  2. #2
    Chroniqueur Actualit�s
    Avatar de Patrick Ruiz
    Homme Profil pro
    Redacteur web
    Inscrit en
    F�vrier 2017
    Messages
    2 245
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : Redacteur web
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : F�vrier 2017
    Messages : 2 245
    Par d�faut Le cr�ateur de C++ appelle � l'aide de la communaut� du langage pour le d�fendre contre de graves attaques
    Le cr�ateur de C++ appelle � l'aide de la communaut� du langage pour le d�fendre contre de graves attaques
    D�agences de cybers�curit� qui militent pour un passage � des langages plus s�curis�s comme le Rust

    Bjarne Stroustrup, cr�ateur du langage C++, appelle la communaut� C++ pour qu'elle d�fende ce langage de programmation. Ce dernier est sous le feu des critiques des agences de cybers�curit� et des experts techniques ces derni�res ann�es en raison de ses lacunes en mati�re de s�curit� de la m�moire. L�initiative du cr�ateur du langage C++ se fait dans un contexte d�urgence �tant donn� l�appel du CISA � l�abandon du C++ d�ici � 2026.

    � Il ne s'agit manifestement pas d'une note technique traditionnelle proposant un nouveau langage ou une nouvelle fonctionnalit� de biblioth�que. Il s'agit d'un appel � une action urgente, en partie en r�ponse � des attaques graves et sans pr�c�dent contre le C++. Je pense que le WG21 doit faire quelque chose de significatif et �tre per�u comme tel. Profiles est un cadre qui peut le faire �, d�clare-t-il dans le cadre de la pr�sentation de nouvelles lignes directrices pour la s�curit� des ressources et des types.

    � Comme je l'ai d�j� dit, il s'agit �galement d'une opportunit� car la s�curit� des types et la s�curit� des ressources (y compris la s�curit� de la m�moire) ont �t� des objectifs cl�s du C++ depuis le tout d�but �, ajoute-t-il.

    Certains acteurs de la fili�re du d�veloppement de logiciels sont d�avis qu�il faut arr�ter d�initier de nouveaux projets en C++ et passer au Rust

    Mark Russinovich de Microsoft recommande le langage Rust plut�t que le C ou C++. Les raisons : la parit� en termes de vitesse d�ex�cution en comparaison avec le C ; la s�curisation et la fiabilit� du Rust en comparaison avec C ou C++. C�est en droite ligne avec cet �tat de choses que l��diteur de RisingWave a abandonn� son projet de SGBD cloud natif initialement d�velopp� en C++ pour le r��crire en Rust.

    � Rust garantit la s�curisation de la m�moire et des threads au moment de la compilation en introduisant des r�gles de propri�t�. Il va au-del� du RAII, un m�canisme de gestion de la m�moire couramment utilis� en C++. Il pr�sente deux avantages. Le premier est �vident : une fois que le compilateur Rust a valid� notre programme, nous n'aurons pas de d�fauts de segmentation ou de conditions de concurrence lors de l'ex�cution, ce qui n�cessiterait des dizaines d'heures de d�bogage, en particulier dans une base de code hautement concurrente et principalement asynchrone. La seconde est plus subtile : le compilateur Rust restreint simplement les types de fautes, ce qui r�duit les fragments de code �troitement imbriqu�s qui peuvent causer un tel comportement bogu�. La r�plication des bogues est consid�rablement am�lior�e avec l'aide de l'ex�cution d�terministe �, explique-t-il.

    Nom : 0.png
Affichages : 120758
Taille : 397,9 Ko

    Linus Torvalds est d�avis que Rust est une solution d�avenir pour le noyau Linux mais certains intervenants pensent le choix de Rust est une erreur et que C++ moderne est une meilleure alternative

    Il consid�re la prise en charge de Rust pour le d�veloppement du noyau Linux 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. En effet, des experts sont d�avis qu�il offre de meilleures garanties de s�curisation des logiciels que le couple C/C++. Chez AWS on pr�cise que choisir Rust pour ses projets de d�veloppement c�est ajouter l�efficacit� �nerg�tique et la performance d�ex�cution du C � l�atout s�curit�.

    En effet, il y a une liste de griefs qui reviennent � l�encontre du langage C : les probl�mes li�s � la gestion de la m�moire � d�passements de m�moire tampon, allocations non lib�r�es, acc�s � des zones m�moire invalides ou lib�r�es, etc. D�apr�s les chiffres du dictionnaire Common Vulnerabilities and Exposure (CVE), 15,9 % des 2288 vuln�rabilit�s qui ont affect� le noyau Linux en 20 ans sont li�es � des d�passements de m�moire tampon.

    De plus, 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 de plus en plus d�acteurs de la fili�re du d�veloppement informatique recommandent le Rust plut�t que le C ou le C++.

    Ainsi, en adoptant Rust, la communaut� autour du noyau Linux devrait mettre � profit ces atouts du langage sur le C. Et elle devrait faire d�une pierre deux coups �tant donn� que Rust peut faciliter l�arriv�e de nouveaux contributeurs. C�est en tout cas ce que laisse entrevoir une �tude de l�universit� de Waterloo.

    N�anmoins, certains intervenants comme le d�veloppeur Peter Anvin sont d�avis que C++ moderne est une meilleure alternative que Rust pour le d�veloppement du noyau Linux :

    � Maintenant, "pourquoi pas Rust" ? Tout d'abord, Rust utilise une syntaxe diff�rente (souvent, � mon avis, gratuitement), et non seulement tous les d�veloppeurs du noyau devraient se familiariser intimement avec la syntaxe afin d'obtenir le m�me type de "feeling" que nous avons pour le C, mais convertir du code C en Rust n'est pas quelque chose qui ne peut �tre fait par les d�veloppeurs du noyau qu'au coup par coup, alors qu'avec quelques nettoyages le code C existant peut �tre compil� en C++.

    Cependant, je ne suis pas d'accord avec certaines des conclusions de David. en fait, je crois que David est inutilement pessimiste, du moins en ce qui concerne le C++ moderne.

    Notez que personne de sain d'esprit ne s'attend � utiliser toutes les fonctionnalit�s de C++. Tout comme nous avons le "kernel C" (actuellement un sous-ensemble de C11 avec un avec un ensemble relativement large d'extensions sp�cifiques au compilateur), nous aurions le "noyau C++", que je sugg�re d'�tre un sous-ensemble strictement d�fini de de C++20, combin� � un ensemble similaire d'extensions de compilateur). Je me rends compte que que la prise en charge du C++20 par les compilateurs est encore tr�s r�cente pour des raisons �videntes, de sorte qu'au moins une partie de ce qui pr�c�de est tourn�e vers l'avenir. �

    Avec l�introduction des extensions Safe C++, le C++ se positionne pour rester pertinent et comp�titif face aux nouveaux langages de programmation. Cette �volution devrait permettre au C++ de s�adapter et �voluer pour r�pondre aux besoins modernes de s�curit� et de fiabilit� des logiciels. Les extensions Safe C++ repr�sentent une avanc�e majeure pour un langage qui continue de jouer un r�le crucial dans le monde de la programmation.

    Source : Bjarne

    Et vous ?

    Partagez-vous les avis selon lesquels les extensions Safe C++ peuvent permettre au C++ de rivaliser avec les langages modernes comme Rust en termes de s�curit� ? Pourquoi ou pourquoi pas ?
    Partagez-vous les avis selon lesquels le choix de Rust comme langage de d�veloppement du noyau est une erreur ? Voyez-vous le C++ moderne comme meilleure solution aux questions d��volution du noyau ?

    Voir aussi :

    Programmation : une �tude r�v�le les langages les plus voraces en �nergie, Perl, Python et Ruby en t�te, C, Rust et C++, les langages les plus verts

    Linus Torvalds souligne une bonne avanc�e du langage Rust dans le d�veloppement du noyau Linux, et aurait qualifi� le C++ de � langage de m... �, apr�s le message de Google

    Microsoft, Google, AWS, Huawei et Mozilla s'associent pour cr�er la Fondation Rust, une organisation � but non lucratif charg�e de g�rer le langage de programmation

    Facebook rejoint AWS, Huawei, Google, Microsoft et Mozilla dans la Fondation Rust, et renforce son �quipe Rust par des nouveaux talents
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et R�digez des actualit�s

  3. #3
    Membre confirm�

    Inscrit en
    D�cembre 2009
    Messages
    171
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2009
    Messages : 171
    Par d�faut
    A mon humble avis, et en tant qu'utilisateur de C++ depuis presque 20 ans, la meilleure fa�on de d�fendre le langage est de le faire �voluer en arr�tant de faire la sourde oreille � certaines demandes tr�s raisonnables:
    * Une nouvelle librairie standard, memory safe par d�faut. De pr�f�rence commune � touts les compilateurs autant que possible, opensource et r�guli�rement mise � jour.
    * Une syntaxe "C++2", sous ensemble du langage safe par d�faut plus quelques additions pour le comfort. Pourquoi pas empreinter le borrow checker et les lifetimes (c'est fait dans circle)
    * Un syst�me de build et de d�pendances standard et moderne

    J'utilise pas mal Rust. Je comprends les gens qui veulent y passer: c'est moderne, simple et efficace. Ce n'est pas encore � parit� avec le C++ concernant la programmation g�n�rique mais �a suffit pour 99% des d�veloppeurs.
    Il est temps que le C++ apprenne de ses concurrents, juste comme ses concurrents ont appris du C++.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 31
    Par d�faut
    Note this good summary by David Chisnall (ancien de chez Microsoft Research, chercheur � l'University de Cambridge et architecte syst�me chez SCI Semiconductor) in a January 2024 FreeBSD mailing list post:
    "Between modern C++ with static analysers and Rust, there was a small safety delta. The recommendation [to prefer Rust for new projects] was primarily based on a human- factors decision: it�s far easier to prevent people from committing code that doesn�t compile than it is to prevent them from committing code that raises static analysis warnings. If a project isn�t doing pre-merge static analysis, it�s basically impossible."

    C++26 r�pondra � un certain nombre de points:
    * La STL "hardened" par d�faut (proposition rapidement adopt�e car presque tous les fournisseurs de STL ont cette "option") => suppression des violations de type "bound safety".
    * Le "initialisation safety"
    * Les contrats (possibilit� de v�rifier les pr�-requis et post-requis)
    * Probablement la r�flection statique
    * Devrait apporter des profils (possiblement incomplets) pour v�rifier les "type, bound, lifetime safety", inspir�s de ce qu'il se fait avec les outils fournis avec clang ou cl. L'avantage c'est que ce sera directement � la compilation et non pas dans un outil s�par�.
    => Cons�quence, C++26 va rendre les m�thodes "unsafe" (venant souvent du C) visibles (naked union, variant, enum C, NULL, pointeur de type array, for � l'ancienne, naked new/delete, malloc/free, cast douteux, les fonctions C unsafe...) et donc rendre le language plus propre et �pur� pour ceux qui ne d�sactiverons pas la v�rification � la compilation.
    * Pour le petit plus (exemple not_null<T>, narrow_cast...) il faut voir du c�t� de la GSL (Guideline Support Library).

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    86
    D�tails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (�le de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 86
    Par d�faut Utiliser C++
    Il fut un temps o�, en plus de mon m�tier de concepteur/consultant, j'enseignais le C++ en entreprise � des d�veloppeurs qui connaissaient d�j� d'autres langages (environ 1 cours de 5 jours/mois). Il s'agissait � l'�poque de C++11. J'ai aussi audit�, � l'aide de Logiscope des millions de lignes de C++ pour des applications militaires principalement (les fameux SIC et SIR). On pouvait d�j� �crire du code tr�s propre en C++ � condition d'�tre tr�s disciplin� et d'avoir fait une conception objet impeccable. H�las, je me suis rendu compte que peu de d�veloppeurs comprenaient r�ellement et ma�trisaient la conception objet et la programmation en C++ "safe". Il me semble que les ajouts sont fait pour aider les d�veloppeurs et les guider dans des concepts qu'ils ne comprennent pas toujours jusqu'au fond des choses.
    Peut-�tre que mon post est un peu provocateur mais c'est vraiment ce que je pense ayant pratiqu� la conception objet d�s le d�but en 1983 avec les articles de Grady Booch et le C++ d�s 1993.
    PS : j'ai pratiqu� intensivement la m�taprogrammation en C++ avec la g�n�ricit� et il me semble que ce n'est qu'avec C++ qu'on arrive � faire des choses vraiment sophistiqu�es dans ce domaine. Rust ne lui arrive pas � la cheville.

Discussions similaires

  1. R�ponses: 13
    Dernier message: 24/11/2020, 15h27
  2. Sauvegarde des profils itin�rant sous SERVER 2008
    Par jjacques68 dans le forum Windows Serveur
    R�ponses: 2
    Dernier message: 16/02/2015, 18h11
  3. R�ponses: 3
    Dernier message: 08/09/2013, 18h55
  4. Configuration des profiles Samba
    Par Gwen38 dans le forum R�seau
    R�ponses: 7
    Dernier message: 08/06/2005, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo