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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Les derniers correctifs du projet Rust for Linux montrent que le langage Rust avance à grands pas vers le noyau,
Torvalds estime que cela pourrait être prêt pour la version 5.14

Le , par Bill Fassinou

205PARTAGES

21  0 
Linux 5.13 a été publié fin juin sans le support du langage Rust, mais Linus Torvalds a déclaré en avril que le projet Rust for Linux a maintenant beaucoup avancé et pourrait être fusionné avec la prochaine mouture du noyau, Linux 5.14. Miguel Ojeda, chef du projet Rust for Linux, a soumis un nouvel ensemble de correctifs à la liste de diffusion de Linux qui résume les progrès du projet visant à permettre l'utilisation de Rust aux côtés de C pour l'implémentation du noyau. Les progrès sont significatifs, allant de l'utilisation d'un compilateur Rust bêta, le test du support des architectures ARM et RISC-V, de nouvelles abstractions Rust, etc.

Miguel Ojeda est un informaticien du CERN à Genève, en Suisse, qui travaille maintenant à plein temps sur le projet Rust for Linux. Dans son billet, il a commencé par expliquer que les allocations infaillibles ont été supprimées par le biais d'un crate de bibliothèque standard "alloc" personnalisé. En effet, une allocation infaillible, c'est lorsqu'un développeur suppose qu'une allocation de mémoire va toujours réussir. Si elle ne réussit pas, Rust met fin au processus. Les allocations infaillibles ne sont pas acceptables dans le noyau, car les échecs provoquent une panique du noyau. Une allocation faillible permet au développeur de tester le succès.



Ojeda a écrit que les intrinsèques de panique de "compiler_builtins" sont toujours là, mais ils seront résolus en partitionnant "core" via des portes de fonctionnalités. La première, pour désactiver la fonctionnalité de virgule flottante, vient d'être acceptée en amont. « À terme, l'objectif est d'avoir tout ce dont le noyau a besoin dans "alloc" en amont et de le supprimer de l'arbre du noyau », a-t-il déclaré. Plusieurs autres améliorations majeures ont été apportées au support général de Rust. Les sous-sections suivantes les couvrent.

Support d'un compilateur Rust bêta

Rust for Linux nécessite de nouvelles fonctionnalités dans le compilateur Rust (rustc) ainsi que dans le code du noyau. Mais jusqu'à présent, le projet n'a utilisé que les versions nightly de rustc, car il a besoin des derniers correctifs et des fonctionnalités instables. Cela n'est plus désormais nécessaire, car le noyau peut maintenant être compilé avec les versions bêta et stable de rustc. Pour le moment, le projet utilise la version 1.54-beta1 comme compilateur de référence. À la fin de ce mois, la version 1.54 de rustc sera publiée, et le projet passera à cette version comme référence.

Notez que le noyau nécessite toujours des fonctionnalités instables, même s'il est compilé avec une version stable de rustc. Ainsi, Ojeda a déclaré que l'équipe ne pourra pas garantir que les futures versions de rustc fonctionneront sans changements dans l'arbre du noyau. « De ce fait, jusqu'à ce que toutes les fonctionnalités instables dont nous avons besoin soient stabilisées, nous supporterons une seule version de rustc pour chaque version du noyau », a-t-il déclaré. L'écriture de tests unitaires pour le code du noyau Rust fonctionne maintenant avec l'attribut standard Rust #test.

Ils ne s'exécutent pas encore dans le noyau, mais selon Ojeda, « l'objectif est de les faire fonctionner dans l'espace du noyau, afin que nous puissions tester le code qui dépend des fonctionnalités du noyau ».

Architectures et support du compilateur

« Nous avons demandé à Compiler Explorer d'ajouter le support de tous les compilateurs alternatifs. Au moment d'écrire ces lignes, ils ont déjà ajouté mrustc et GCC Rust ; et rustc_codegen_gcc sera bientôt disponible », a-t-il déclaré. Autrement dit, les architectures ARM et RISC-V sont maintenant supportées, grâce au travail sur rustc_codgen_gcc, qui est un codegen GCC pour rustc. Cela signifie que rustc effectue la compilation initiale du code Rust, mais que GCC (la collection de compilateurs GNU) effectue la compilation finale, ce qui permet la prise en charge des architectures que GCC supporte.

Il existe une proposition pour fusionner ce travail dans la base de code principale de Rust, ce qui soulève un problème de licence, car Rust utilise les licences MIT et Apache v2 alors que GCC utilise la GPLv3. La Fondation Rust a examiné la question et a conclu que : « le changement proposé n'aura pas d'impact sur la licence de rustc sauf lorsqu'il est construit avec le back-end gcc, auquel cas la GPLv3 s'appliquera au binaire résultant » – ce qui signifie le binaire du compilateur, pas les applications qu'il compile.

Abstractions Rust et mises à jour des pilotes

Ojeda a annoncé que l'équipe de Rust for Linux a développé de nouvelles abstractions Rust qui utilisent les implémentations du noyau C, notamment : red-black trees, reference-counted objects, file descriptor creation, tasks, files, io vectors, etc. En outre, l'équipe a aussi amélioré le support des pilotes : améliorations de "file_operations" (plus d'opérations supportées, état arbitraire), de la macro module!, des macros d'enregistrement, des pilotes de plateforme rudimentaires ("probe" et "remove", la réduction du code passe-partout, etc.

Selon le message d'Ojeda, sur Binder, il y a maintenant un support pour le transfert des descripteurs de fichiers et des hooks LSM ; et l'équipe travaille sur des chiffres préliminaires de performance. De plus, un travail est en cours sur un pilote d'exemple Rust, bcm2835-rng. Il s'agit du générateur de nombres aléatoires matériel présent sur les Raspberry Pi Zero(W), Classic, Two et Three. Il y a d'autres petites améliorations, comme le fait que les pilotes sont limités sur les fonctionnalités instables qu'ils peuvent utiliser.

Quel est le statut des séries de correctifs ?

Selon Ojeda, la prise en charge de Rust est toujours considérée comme expérimentale. Cependant, comme indiqué en avril, le support est suffisamment bon pour que les développeurs du noyau puissent commencer à travailler sur les abstractions Rust pour les sous-systèmes et écrire des pilotes et autres modules. Il faut noter que les séries actuelles de correctifs viennent "linux-next", donc la première exécution a eu lieu mardi dernier.

Soutien de la communauté à Rust for Linux

Le projet bénéficie d'un soutien important de la part de l'industrie. En avril, Google a déclaré : « Nous pensons que Rust est désormais prêt à rejoindre le langage C en tant que langage pratique pour l'implémentation du noyau et que cela réduirait le nombre de bogues et de failles de sécurité potentiels ». Google sponsorise Ojeda pour qu'il travaille à temps plein sur le projet pendant un an, par l'intermédiaire de l'ISRG (Internet Security Research Group). L'ISRG a déclaré le mois dernier que cela s'inscrivait dans le cadre des efforts visant à faire évoluer l'infrastructure logicielle critique d'Internet vers un code sûr pour la mémoire.

L'ISRG est également l'organisation à but non lucratif à l'origine des certificats de sécurité gratuits Let's Encrypt. Ojeda a mentionné que le groupe Linux Systems de Microsoft contribue et espère soumettre certains pilotes Hyper-V écrits en Rust. Arm promet une assistance avec Rust pour Linux sur les systèmes basés sur ARM. IBM a contribué au support du noyau Rust pour son processeur PowerPC. Plus de détails devraient être révélés lors de la prochaine conférence Linux Plumbers en septembre. En attendant, le projet est disponible sur GitHub.

Linus Torvalds a déclaré à plusieurs reprises qu'il se réjouissait de la possibilité d'utiliser Rust aux côtés de C pour le développement du noyau, et a déclaré à en avril que le projet a atteint un point où il pourrait être fusionné avec la version 5.14 du noyau.

Sources : Miguel Ojeda, Rust for Linux

Et vous ?

Quel est votre avis sur le sujet ?

Voir aussi

Linux 5.13 est disponible avec le support de l'Apple M1, Landlock, FreeSync HDMI et a été publié sous le nom de code "Opossums on Parade"

La prise en charge de Rust pour le développement du noyau Linux commence à prendre forme, le langage fait un premier pas vers la branche "Linux-Next"

La prise en charge de Rust pour le développement du noyau Linux fait l'objet d'une nouvelle série de discussions, après une proposition de RFC

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

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de KsassPeuk
Membre confirmé https://www.developpez.com
Le 01/11/2022 à 13:43
Citation Envoyé par bmoraut Voir le message
J'ai bien conscience que c'est une réponse de normand.
Non, c'est une réponse de menteur.

La vérification de programmes et la quête du programme sans bug, c'est un sujet dans le monde de la recherche et du transfert technologique depuis des décennies. Chaque année des thèses et des papiers sur le sujet, on en publie des camions. C'est des milliers de personnes à travers le monde qui bossent dessus avec des succès et des échecs, et le domaine est assez fier des progrès qui ont été faits ces dernières années sur le sujet. Bizarrement, aucun de ces succès n'avance du "on a de la garantie de correction pour plusieurs millions de lignes de code C++". Alors quand type débarque du fond d'un forum en balançant du "non mais moi je suis trop fort, d'ailleurs j'ai réglé le problème sur lequel des milliers de personnes se sont cassés les dents pendant 40 ans, par contre je ne vous fournirai aucune preuve". Oui, on est en droit de dire que cette personne ment, purement et simplement.

A titre personnel, ça me gonfle d'autant plus que je bosse précisément sur ce type de sujet depuis 10 ans. Ce genre de discours, par son absence totale de sérieux, est prompt à créer une réaction chez les développeurs du genre "Haha ! C'est n'importe quoi, on ne pourra jamais ne serait-ce qu'approcher la possibilité d'un logiciel sans bug". Le genre de trucs qui peuvent flinguer le travail de sensibilisation qu'on fait auprès d'eux. et qui efface toutes les subtilités réelles du problème (notamment les liens entre la spécification du logiciel, du langage utilisé, et de l'implémentation du système, et ce qu'on inclut ou non dans la confiance d'un logiciel). Ces développeurs auront d'autant moins de facilité à prendre au sérieux les gens qui bossent réellement sur le sujet, autant pour produire de nouvelles solutions que pour amener ces connaissances dans le monde académique et industriel, et pousser ces solutions vers des usages de moins en moins critiques. Aujourd'hui l'ANSSI a durcis les critères nécessaires pour obtenir certaines certifications (par exemple CC EAL6/7), c'est en grande partie grâce à l'effort important qui a été fournis pendant la dernière décennie pour faciliter la mise en place d'outil de vérification formelle et qui fait qu'aujourd'hui il devient possible de sortir des garanties formelles de correction à code-level pour des softs de l'ordre de quelques dizaines de milliers de lignes. Sans parler du fait que sans aller jusqu'à de tels niveau de fiabilité, on a aujourd'hui un large panel d'outils capable de détecter des problèmes ou garantir leur absence et ce en fonction du type de problème ou de système visé.
10  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 01/11/2022 à 14:21
Citation Envoyé par bmoraut Voir le message
D'affirmer que j'ai un manques de connaissances dans ce domaine relève que vous êtes bien prétentieux pour vous permettre de juger les autres.
Écoutez je me base sur le fait que je n'ai entendu aucun expert en sécurité préconiser ça comme première action fondamentale pour sécuriser un code C++. Alors soit vous êtes quelqu'un de très novateur et dans ce cas je m'excuse et j'aimerais beaucoup que vous détaillez comment vous faites, soit il vous manque effectivement des connaissances sur le sujet. Sachez que ça n'a rien d'une insulte : tout le monde à des sujets qu'il connait mieux que d'autres, moi le premier.

Citation Envoyé par bmoraut Voir le message
Mais pas de chance, j'ai définie un thèse qui pour écrire un application entièrement sécurisée,
avec des principes révolutionnaires pour le développement de logiciels qui utilise un certains nombre de chose,
comme les modes de débogages, qui permettent d'informer sur l'auto-vérification des logiciels,
(afin de ne pas le ralentir en mode final).
Si c'est vraiment le cas, je serais très curieux de lire votre thèse et d'avoir plus de renseignements sur le sujet. A ma connaissance, les systèmes de vérification s'appuient soit sur des preuves formelles, soit de l'analyse statique du code, soit sur de la détection des comportements dangereux à l’exécution, mais qui ne requièrent pas pour autant le fonctionnement en mode débogage.
Si votre système est si efficace grâce aux informations de débogage, je serais très curieux d'en apprendre plus.

Citation Envoyé par bmoraut Voir le message
Dans mes plus 10 millions de lignes de codes validées, j'ai actuellement Zéro bugs.
Pour le coup, ça m'inquiète plus que ça me rassure. Un logiciel avec zéro failles de sécurité signalées, c'est plus souvent signe d'une mauvaise surveillance des problèmes de sécurité ou d'une rétention des informations de vulnérabilité que d'une grande fiabilité.

Citation Envoyé par bmoraut Voir le message
Alors désolé, moi aussi je relève dans tes propos que tu es un de ceux qui jouent aux experts, mais qui n'en sont pas.
Je ne prétend pas être un expert, juste connaitre assez le problème de la sécurité en C++ pour savoir que les assertions et surtout le débogage ne sont clairement pas les éléments considérés comme prioritaires pour sa sécurisation.

Citation Envoyé par bmoraut Voir le message
Alors reste modeste, et ne préjuge pas des gens, car cela nuit au forum.
Je préjuge pas des gens, par contre je juge vos préconisations en matière de sécurisation du code qui sont ... peu orthodoxes pour rester poli. Si vous pouvez m'expliquer réellement comment vous pouvez éviter les failles de sécurité grâce mode débogage, je serais on ne peu plus ravi de revoir mon jugement, mais comme je n'ai jamais entendu parler de rien de tel pour le moment dans le domaine de la sécurité du code, vous me permettrez de rester on ne peu plus sceptique en attendant.

Citation Envoyé par bmoraut Voir le message
Et bien moi aussi, je n'ai rien à prouver, et par souci de protection de mon travail,
je n'ai donc rien publié.
Il me semble que sauf cas particulier, un travail de thèse est censé être public non ?

Citation Envoyé par bmoraut Voir le message
J'ai bien conscience que c'est une réponse de normand.
En effet c'est une réponse de normand, mais c'est quand même une réponse qui contredit le propos de base. Vous affirmiez que le C++ est sécurisé, mais comme c'est grâce a une méthode qui ne semble pas vraiment connue des gens du métier, et dont vous ne souhaitez pas nous parler. Même à considérer que vous êtes de bonne foi, il n'en reste pas moins qu'elle n'est à l'heure actuelle pas une solution utilisable par le commun des mortels pour sécuriser ses application C++.

Le peu que vous dites sur votre méthode est basé sur de vielles techniques, très superficielles, qui ont montré leurs limites et dont on est revenu depuis longtemps. C'est très loin de ce qui se fait actuellement dans la sécurité. Si le but était de convaincre de la qualité de vos connaissances en matière de sécurité du code C++, c'est vraiment raté.
8  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 09/11/2022 à 11:55
Citation Envoyé par bmoraut Voir le message
C'est ce que je dis, vous pré-jugé les autres pour toujours avoir le dernier mot, avec de superbes sophismes:

"très superficielles" --> Comment peut tu le savoir, alors que je n'ai rien révélé

"sur de vielles techniques" --> Tous ce qui ancien n'est pas mauvais !

J'ai bien précisé que mes commentaires ne s'appliquaient qu'au peu que vous avez dit, à savoir : les assertions, le débogage, puis la notation hongroise. Car ces méthodes ne visent pas particulièrement la sécurité de l'application mais plutôt à gérer les bugs en général.

D'ailleurs, je pense que le gros du malentendu vient du fait que l'on parle de faille de sécurité alors que vous parlez de bugs généralistes. Les assertions et le débogage sont en effet de très bons outils pour traiter les bugs classiques, mais les failles de sécurité sont des problèmes qui restent généralement cachés, ce qui fait qu'ils nécessitent plutôt des outils pour être détectés (sanitizers, fuzzer, ...) ou les éviter (preuve formelle, analyse statique, restriction du langage,...).

Citation Envoyé par bmoraut Voir le message
Voila pourquoi j'en ai marre sur les forums, des gens comme toi, qui préjugent des autres, et qui polluent les forums en voulant toujours avoir raison.
Je ne demande qu'a avoir tort. Si le débogage permettait d'améliorer la sécurité de mes programme je serais le premier heureux. C'est pour ça que je vous ai invité a partager votre thèse, tout aussi poliment que LittleWhite, car si votre approche est valide elle serait particulièrement novatrice. Mais tant que ça reste une méthode que vous seul savez utiliser, le débogage ne peut clairement pas être considéré comme un moyen d'assurer la sécurité d'un programme.

Citation Envoyé par bmoraut Voir le message
En as tu conscience que tu veux toujours avoir le dernier mot, en agressant ton interlocuteur, alors que si tu était vraiment intelligent comme LittleWhite,
tu aurais répondu comme lui, en étant plus communicatif.

Lui, si je dis des fadaises, il a été plus intelligent que toi, car sans m'agresser, je vais devoir prouver ce que je dis.
A aucun moment je n'ai voulu être agressif, si c'est l'impression que j'ai donné, je m'en excuse, mais je pense que cette critique peut aussi vous être retournée. Le seul moment ou j'estime être critiquable c'est sur mon message qui disait que vous ne "maitrisiez" pas C++. Il visait uniquement à faire écho à votre "Il est aussi sécurisé si on le connait bien" or votre explication de la sécurité posait problème. Je pense que j'aurais pu le formuler mieux ou même m'éviter cette figure de style.

Sachez que pour moi "ne pas maitriser" n'est pas une attaque. Je ne prétends pas moi même maitriser le C++. Je ne doute pas que, sur la globalité du langage, vous le connaissiez bien mieux que moi. Par contre, je maintiens que les préconisations que vous donniez en matière de sécurité n'étaient clairement pas adaptées.

Je ne vous ai à aucun moment, contrairement à d'autres, accusé de mentir, mais je ne peux pas non plus prendre ce que vous dites sur la détection de faille par débogage pour argent comptant. Le fait que vous refusiez de partager un travail de thèse dans un domaine ou la communication est la norme, n'aide pas à votre crédibilité.

Citation Envoyé par bmoraut Voir le message
Alors que toi, tu agresses constamment, en reprenant méticuleusement chaque point,
non pas en ouvrant la discussion, mais en la fermant avec tes pré-suppositions négatives.
C'est dommage que vous voyez ça comme une agression alors que je vois ça, au contraire, comme une façon d'avoir un débat sain. Si le but était de gagner un débat d'opinion je ferais au contraire une grande tirade majestueuse, pleine de procès d'intention, dont au final la véracité du contenu importerait peu.
En prenant les points précisément, on peut essayer de voir plus clairement sur lesquels on peut être d'accord et pour ceux sur lesquels on n'est pas d'accord, essayer de comprendre pourquoi.
8  0 
Avatar de Kannagi
Expert éminent sénior https://www.developpez.com
Le 01/11/2022 à 15:04
Citation Envoyé par bmoraut Voir le message

Mais pas de chance, j'ai définie un thèse qui pour écrire un application entièrement sécurisée,
Je serais curieux de lire votre thèse , parce que une thèse est normalement accessible au public non ?

Citation Envoyé par bmoraut Voir le message

avec des principes révolutionnaires pour le développement de logiciels qui utilise un certains nombre de chose,
comme les modes de débogages, qui permettent d'informer sur l'auto-vérification des logiciels,
(afin de ne pas le ralentir en mode final).
Si votre méthode révolutionnaire c'est de faire du debogage et de la notation hongroise...

Citation Envoyé par bmoraut Voir le message

Dans mes plus 10 millions de lignes de codes validées, j'ai actuellement Zéro bugs.
A un tel point, que si un client trouve un bug, je lui offre une licence gratuite.
Cela fait 10 ans que je n'ai jamais rien offert.
ça me semble un peu mytho , sans parler que dire que tu n'as jamais constater de bug , ne veut pas dire qu'il y'en a pas.

Citation Envoyé par bmoraut Voir le message

Cette méthode, je l'ai créé, car je n'ai pas choisi le C++ par "envie" mais bien par une analyse pragmatiste des langages.

Ma méthode m'a permis de réduire de 90% de mes erreurs dès le départ, en partant d'une idée simple, sur une chose déjà présentée,
mais qui n'est plus utilisée:
- le pré fixage des variables.
C'est là que je me dis que c'est "n'importe quoi" , non faire de prefixage de variable ne réduit pas les bugs , d'ailleurs je doute qu'il y'a beaucoup de bug qui sont vraiment lié au type de variable et à leur conversion (il y'en a , mais la plupart des bugs sont pas lié à celà).
Sans parler que ce n'est pas révolutionnaire, vu que ça existe déjà...
7  0 
Avatar de mintho carmo
Membre éclairé https://www.developpez.com
Le 01/11/2022 à 16:44
Citation Envoyé par bmoraut Voir le message

Je vous conseil de réfléchir rien que sur le pré fixage des variables, dans votre code,
cela vous réduira 90% de vos bugs. ce qui n'est pas mal au départ.
(...)
*B
ou l'on ne sait pas si on Multiplie par B ou s'il s'agit de la récupération de la valeur contenue dans la case de pointeur B.
Un dev pro (C++ ou non) n'aurait pas pensé a ce type d'exemple (qui est de niveau débutant) quand on parle de qualité logicielle et de sécurité. Le choix de ces exemples montrent que tu n'es pas dev pro et encore moins en C++. Et les chiffres que tu donnes (80 Go de cours, 10M de lignes de code) sont complètement risibles.

Donc je comprend qu'on te qualifie de troll.
7  0 
Avatar de KsassPeuk
Membre confirmé https://www.developpez.com
Le 01/11/2022 à 17:01
(note pour le côté public des thèses : non les thèses ne sont pas forcément publiques. Il y a au moins un cas qui peut rendre la thèse privée : si ça a trait à des travaux qui sont sur des éléments confidentiels - notamment pour certaines CIFRE ou travaux liés à la Défense - mais c'est plutôt rare et très fortement déconseillé car ça nuit fortement au démarrage de carrière d'un docteur)
7  0 
Avatar de coder_changer_vie
Inactif https://www.developpez.com
Le 08/07/2021 à 19:02
"Google sponsorise Ojeda pour qu'il travaille à temps plein sur le projet pendant un an"

Suis-je le seul à penser que venant d'un grand groupe, ce type d'investissement semble démesurément ridicule aux regard des enjeux / bénéfices techniques ?

C'est pas comme si le noyau était largement utilisé par Google pour Android (à vérifier mais je dois pas être loin si c'est un fork).

j'ai pas suivi en détail, mais c'est le reflexe pavlovien que ça inspire en première lecture
6  0 
Avatar de AoCannaille
Expert confirmé https://www.developpez.com
Le 09/07/2021 à 9:56
Citation Envoyé par coder_changer_vie Voir le message

C'est pas comme si le noyau était largement utilisé par Google pour Android (à vérifier mais je dois pas être loin si c'est un fork).
Sans compter les ~900 000 serveurs de googles qui génèrent genre 90% de leur chiffre d'affaire...
6  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 29/10/2022 à 22:36
Citation Envoyé par bmoraut Voir le message
C'est le Langage le plus rapide et puissant.
C'est un langage rapide et puissant mais certainement pas le plus rapide et puissant. Le C et le Rust on des performance similaires.

Citation Envoyé par bmoraut Voir le message
Il est aussi sécurisé si on le connait bien:
- Assertions
- Mode de "Débuggage"
Visiblement tu ne le maitrises pas toi même, car ce n'est clairement pas le mode de débogage et les assertions qui sont les points important pour assurer la sécurité en C++.

Citation Envoyé par bmoraut Voir le message
Mais comme il est décrié par les universitaires, qui ne veulent pas se casser la tête à écrire des cours,
les ingé ont du mal à s'y mettre.
C'est pas le rôle des universitaire d'apprendre tous les détail d'un langage de programmation. Il sont là pourra apprendre les concepts généraux. Et comme C++ est bourré de complexité qui lui sont assez particulière, c'est normal que les universités avec un temps de cours limité ne puissent pas tout couvrir. Si tu veux un bon niveau de formation au C++, et même dans n'importe quel langage, il faut aller bien au delà de ce qu'on apprend à l''université.

Citation Envoyé par bmoraut Voir le message
Abandonné le C++ par Microsoft serait une grave erreur,
qui conduirait à une perte de savoir et de codes sources de valeurs.
Il faut sortir du fantasme du grand remplacement. Personne n'envisage de jeter à la poubelle du code parfaitement fonctionnel pour le remplacer par une récriture de qualité moindre. Pour réécrire un code,il faut que ça apporte un réel gain.
7  1 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 30/10/2022 à 12:54
Citation Envoyé par bmoraut Voir le message
Qu'est ce que tu en sais que je ne maitrise pas le C++ ?
Surtout en disant les modes de débuguage et les assertions ne sont pas le points importants pour assurer la sécurité du code !
Vous savez peut-être faire du C++ mais si vous pensez que le débogage et les assertions sont les points clés pour assurer la sécurité, clairement vous avez quelques des lacunes dans ce domaine.
Les assertions c'est toujours bien de les utiliser, mais ce n'est clairement pas le premier point pour assurer la sécurité car ça ne couvre que les domaines auxquels on pense, or malheureusement les problèmes de sécurité viennent surtout des cas particuliers que l'on oublie.
Quant au débogage, c'est utile pour résoudre des problèmes dont on a connaissance, alors que les problèmes de sécurités sont au contraire des erreurs dormantes. Si on veut s'attaquer aux failles de sécurités, il y a d'autres outils externes bien plus adaptés comme les memory sanitizer, fuzzers, ...

Citation Envoyé par bmoraut Voir le message
Merci de rester poli et de ne pas faire des affirmations sans savoir.
On ne peut pas entamer une discutions saine et constructive avec des gens comme toi !
Je reste poli et me base uniquement sur ce que vous avez déclaré sur la façon de sécuriser du C++, ce qui montre quand même une manque de connaissances dans la partie sécurité du langage.

Citation Envoyé par bmoraut Voir le message
Le C++ n'est pas bourré de complexité mais de fonctionnalité, quand on les comprends, qui sont géniales.
Je les utilisent et c'est un énorme avantage par rapport à d'autre langage, en terme de structures comme en terme d'efficacités.
L'un va généralement avec l'autre. En augmentant les fonctionnalités, on augmente également la complexité, surtout quand les les fonctionnalité on un impact large qui peut entrainer des interactions surprenantes avec d'autres. C'est pas pour rien que la plupart des langages qui se sont posé en successeur du C++ (Java, D, Rust, ...) ont visé à limiter les fonctionnalités pour réduire cette complexité induite qui peut amener a de nombreuses erreurs
8  2