• # Mouais...

    Posté par  . Évalué à 2 (+1/-0).

    Pas convaincu du truc, restera en démonstrateur dans son coin.
    Pour le code legacy C existant je crois beaucoup plus a hw kasan sur am64 pour rendre l'exploitation quasiment impossible, manque une solution équivalente côté x86_64.
    Pour le code nouveau avec un fort besoin cyber,rust a pris la place.

    • [^] # Re: Mouais...

      Posté par  . Évalué à 2 (+0/-0).

      TrapC code resembles C/C++ code, but, according to Rowe, it's memory safe. That is to say, its pointers cannot produce segfaults, buffer overruns, or memory leaks. The programming language is designed to be link compatible with C, because it uses the same application binary interface (ABI). And supposedly it's safer than Rust because it lacks an "unsafe" keyword while also being easier to learn.

      Mouai. Ça me laisse songeur sur la question des compétences en C++ de la personne qui a écrit ce passage…

      its pointers cannot produce segfaults

      Les références C++ qui existent depuis… le début? Bon, en pratique, ça peut toujours segfault, quand tu fais de la merde, mais il faut vraiment y aller pour ça.

      buffer overruns

      Je suppose qu'il parle de buffer overflow, ici? Même le terme technique est mauvais!

      memory leaks

      C++ a toujours eu la RAII. Ok, avant C++11 le seul pointeur intelligent était auto_ptr, largement sous-utilisé, qui avais ses défauts, sans être inutile pour autant, mais même, au pire écrire des constructeurs et un destructeur c'est pas si difficile que ça.

      Ça me laisse vraiment songeur.
      De la même manière que Rust qui est vendu comme panacée si souvent, mais en dehors du multi-thread je n'arrive pas a me laisser persuader que ça soit si intéressant d'apprendre un langage qui ne possède qu'une seule implémentation et aucun standard officiel (a ma connaissance, et je précise que je ne suis pas super renseigné sur le sujet, par manque d'intérêt. Donc, si je me trompe, ma fois, faites vous plaiz' sur l'inutilage).

      Rust est vendu un peu comme si les langage non compilés ne souffraient pas de failles de sécurité mais juste de lenteur, et que C, C++, ADA, pascal… étaient rapides mais inutilisables pour écrire du code correct (clairement faux, bien que C (et peut-être pascal? qui garde l'avantage d'avoir des chaînes de caractères à la taille connue dès le début, contrairement au C) requiert effectivement un plus grande concentration pour ce résultat.
      Quand je vois le nombre de crash par memory leak & oom-killer de firefox sur mon système, ça me laisse vraiment, vraiment songeur. Rust a été inventé littéralement pour firefox, et pourtant?
      Pour ceux qui doutent de ce paragraphe, désactivez donc l'overcommit sur votre machine, vous allez rire.

      • [^] # Re: Mouais...

        Posté par  . Évalué à 1 (+0/-0).

        Je suis d'accord sur le fait que la personne qui a écrit l'article est maladroit surtout le passage "And supposedly it's safer than Rust because it lacks an unsafe keyword"

        Pour moi impossible de faire plus sûr que l'implémentation du compilateur Rust.

        apprendre un langage qui ne possède qu'une seule implémentation et aucun standard officiel

        Le compilateur "rustc" défini le standard. Il existe des propositions. De plus il existe une autre implémentation pour GCC (en cours de stabilisation) elle DOIT être compatible avec la version "rustc" et DOIT créer le moins de fonctionnalités non standard.

        Amiralgaby#1847

      • [^] # Re: Mouais...

        Posté par  (site web personnel) . Évalué à 5 (+2/-0).

        C++ a toujours eu la RAII.

        Le RAII c'est bien mais ça ne résout pas tout, comme les références par ailleurs.
        Le soucis en C++ c'est qu'il est facile d'écrire du C++ salement, à la C with class. Tu n'as aucun moyen de garantir que dans telle partie du code tout est écrit parfaitement. Cela demande une grande rigueur d'écriture et de conception.

        Rust te force à faire ce travail car le compilateur te prévient quand ce n'est pas sûr.

        De la même manière que Rust qui est vendu comme panacée si souvent, mais en dehors du multi-thread

        Sachant que 50-70% des problèmes de sécurité et beaucoup de bogues par ailleurs dans les grands projets sont liés à des classes d'erreur que Rust peut détecter à la compilation, ce n'est pas un détail comme amélioration.

        Ce n'est pas parfait, ne conviendra pas forcément à tout les cas d'usage, mais on ne peut nier son intérêt.

        et que C, C++, ADA, pascal… étaient rapides mais inutilisables pour écrire du code correct (clairement faux, bien que C (et peut-être pascal? qui garde l'avantage d'avoir des chaînes de caractères à la taille connue dès le début, contrairement au C) requiert effectivement un plus grande concentration pour ce résultat.

        Mais en pratique on voit qu'aucun projet d'envergure n'arrive à avoir 0 problèmes de mémoire avec du code en C ou C++, malgré les années, malgré des développeurs expérimentés. Ce n'est pas un problème de compétence ou de concentration, c'est un problème de conception : c'est inhumain d'être parfait tout le temps dans des projets si complexes.

        Quand je vois le nombre de crash par memory leak & oom-killer de firefox sur mon système, ça me laisse vraiment, vraiment songeur. Rust a été inventé littéralement pour firefox, et pourtant?

        Sauf que le C++ et JavaScript représentent au moins 75% du code de Gecko (le moteur de rendu de Firefox), Rust n'est utilisé que sur une petite partie pour l'instant.
        Firefox entièrement en Rust ce ne sera pas avant très longtemps et d'ici là les problèmes de mémoire auront toujours lieu.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.