1. Foren
  2. Kommentare
  3. Software-Entwicklung-Forum
  4. Alle Kommentare zum Artikel
  5. › NSS: Die TLS-Lücke…

mit C++ wäre das nicht passiert !

Neue Foren im Freiraum! Raumfahrt und freie Software haben jetzt einen Platz, die Games tummeln sich jetzt alle in einem Forum.
  1. Thema

Neues Thema


  1. mit C++ wäre das nicht passiert !

    Autor: herc 02.12.21 - 11:46

    Unions sind doch ein Antipattern aus C.
    Warum wird immer noch so viel in C entwickelt? Inzwischen gibt es für quasi alle Systeme ausgereifte C++ compiler, oder?

    in C++ hätte man einfach std::variant genommen (oder gleich so entwickelt, daß man sowas gar nicht erst braucht)..

    Leider wird durch die Probleme, die sehr häufig mit C auftreten, das moderne C++ mit in den Dreck gezogen.

    Ich meine aber, mit modernem C++ kann man sehr sicher entwickeln, da hier die meisten Probleme von C schon von vornherein vermieden werden.

  2. Re: mit C++ wäre das nicht passiert !

    Autor: tritratrulala 02.12.21 - 12:03

    herc schrieb:
    --------------------------------------------------------------------------------
    > Unions sind doch ein Antipattern aus C.
    > Warum wird immer noch so viel in C entwickelt? Inzwischen gibt es für quasi
    > alle Systeme ausgereifte C++ compiler, oder?
    >
    > in C++ hätte man einfach std::variant genommen (oder gleich so entwickelt,
    > daß man sowas gar nicht erst braucht)..
    >

    std::variant ist jetzt aber nicht das Paradebeispiel für die Vorteile von modernem C++, denn es ist ziemlich unbequem zu nutzen und sorgt für lange Kompilierzeiten. Das ist generell ein Problem mit C++. Viele "moderne" Features sind eher unergonomisch, daher werden sie auch nicht ausgiebig genutzt.

  3. Re: mit C++ wäre das nicht passiert !

    Autor: herc 02.12.21 - 12:29

    stimmt schon.

    Ich persönlich würde aber sagen: nur wenige Funktionen der C++-Standardbibliothek sind wirklich kryptisch. Die meisten sind ziemlich gut. Es wäre schon viel erreicht, wenn Leute standardmäßig die neuen Features von modernem C++ nutzen würden, nur spontan mal aufgezählt: auto, std::array, std::vector, std::string, std::shared_ptr, member initializers etc.. halt die Basisfunktionalität von modernem C++. Damit könnte man auf einen Schlag 99% der C Bugs vermeiden.

    ---
    Die Frage für mich persönlich ist: wie kryptisch ist Rust, wie anstrengend der Umstieg? Kann ich bei Beachtung gewisser Patterns nicht weiterhin in modernem C++ 99% der Sicherheit von Rust erreichen?

  4. Re: mit C++ wäre das nicht passiert !

    Autor: spieles21 02.12.21 - 13:01

    herc schrieb:
    --------------------------------------------------------------------------------
    > Die Frage für mich persönlich ist: wie kryptisch ist Rust, wie anstrengend
    > der Umstieg? Kann ich bei Beachtung gewisser Patterns nicht weiterhin in
    > modernem C++ 99% der Sicherheit von Rust erreichen?


    Tja ich habe zwar keine Erfahrung mit C/C++ aber der umstieg zu Rust ist nicht so leicht zu machen wie man glaubt. Zb Bei Rust gibt es keine Klassen im klassischen Sinne sondern nur Structs und Traits (Sind Sowas wie interfaces und klassische Traits kombiniert) welche man für einen Struct implementiert.

    Rust zu lernen halte ich im generellen für eine gute Idee, da dir der Compiler die gesamte Speicherverwaltung abnimmt*.

    *Mann muss sich nur darum kümmern, dass der Eigentümer (Owner) einer Variable im richtigen Scope bleibt, passiert schneller als man denkt. Aber der Compiler schmeißt dir einen Error welcher sogar beschreibt wo die Var den Scope verlässt. Das ist wichtig da Rust eine Var dropt wenn der Scope ausläuft.

  5. Re: mit C++ wäre das nicht passiert !

    Autor: Lixht 02.12.21 - 14:58

    Hab noch nie was kryptischeres ähm um genau zu sein ausführlicheres als Rust gesehen.
    Allein um Operatoren vernünftig zu überladen braucht man teilweise um die 200 Zeilen Code...
    Auch benutzerdefinierte Iteratoren sind ein Krampf bzw. fast unmöglich wen man schon auf Borrows arbeitet. Dann wurschtelt man sich mit lifetime Specifiern zu tode bzw. bekommt die Meldung, dass man das nur im unstable Mode benutzen kann.
    Das Sprachkonzept von Rust ist Prima. Aber die Umsetzung ist entweder nicht fertig aka. auf der Featureliste oder so verbose, dass man 50 Zeilen C++ mit 300 Zeilen Rust vergleicht. Manchmal wünscht man sich in Rust dann doch einfache const Referenzen zurück.



    1 mal bearbeitet, zuletzt am 02.12.21 14:59 durch Lixht.

  6. Re: mit C++ wäre das nicht passiert !

    Autor: pythoneer 02.12.21 - 17:16

    herc schrieb:
    --------------------------------------------------------------------------------
    > Die Frage für mich persönlich ist: wie kryptisch ist Rust, wie anstrengend
    > der Umstieg?

    Ich kann da natürlich nur für mich persönlich sprechen aber Rust war für mich eine der am schwierigsten zu lernenden Sprachen seit langem. Dabei geht es gar nicht so sehr darum die Regeln zu lernen, sondern das gelernte auch richtig anzuwenden. Ich würde es mit Schach vergleichen, die Regeln kann man in 5 Minuten lernen, gut Spielen dauert länger :P

    > Kann ich bei Beachtung gewisser Patterns nicht weiterhin in
    > modernem C++ 99% der Sicherheit von Rust erreichen?

    Die Frage ist schon falsch gestellt. Ich kann auch mit Beachtung gewisser Pattern in C die Sicherheit von Rust erreichen. Der feine aber wichtige Unterschied ist: In C und C++ KANN man sicheren Code schreiben. In Rust MUSS man. Die Fehler die passieren sind ja so gut wie immer die Fehler von Menschen die gewisse Pattern eben NICHT eingehalten haben. Die Frage ist also eher schon fast tautologischer Natur. Kann ich, wenn ich keine Fehler mache, ein Programm schreiben was Fehlerfrei ist? Ja, kann man. Gibt es Leute die keine Fehler machen? Nein. Hier ist also die Grundannahme schon falsch. Ex falso quodlibet (aus Falschem folgt Beliebiges).

    > Kann ich bei Beachtung gewisser Patterns

    Das man das immer zu 100% oder 99% kann ist schon eine Falsche Annahme. Daher kann ich auch

    > nicht weiterhin in modernem C++ 99% der Sicherheit von Rust erreichen?

    Mit ja beantworten denn aus Falschem folgt Beliebiges.

    Darüber hinaus hat man natürlich das Problem: wer überwacht überhaupt die Pattern, deren Anwendung und das "nur modernes" C++ angewendet wird. Das sind wieder menschliche Faktoren und diese können und werden wieder Fehler machen. Microsoft, Google und Mozilla haben das bei sich ja – unabhängig voneinander – untersucht und erkannt, dass ich über die Jahrzehnte einfach keine Besserung ergeben hat. 70% aller Security Bugs sind auf fehlerhafte Speicherbenutzung zurück zu führen und das über Jahrzehnte. Es wird einfach nicht besser. Nicht mit besseren (klügeren) Programmieren, nicht mit Tooling (ASan, TSan ...) und auch nicht mit "modernem" C++. Die Zahlen sprechen eine klare Sprache. Und die Sprachkonstrukte die C++ einem zur Verfügung stellt sind halt leider nicht mit denen von Rust vergleichbar. Vielleicht wenn man sie "richtig" anwendet – aber das ist ja genau das Problem. Warum muss man das und warum kompiliert das Programm wenn man das nicht tut – man gewinnt einfach nicht viel damit. Der Mensch als Fehlerquelle bleibt genauso erhalten.

  7. Re: mit C++ wäre das nicht passiert !

    Autor: Lixht 03.12.21 - 21:56

    Google und modernes C++ sind wie schwarz und weiß.

  8. Re: mit C++ wäre das nicht passiert !

    Autor: pythoneer 03.12.21 - 23:53

    Lixht schrieb:
    --------------------------------------------------------------------------------
    > Google und modernes C++ sind wie schwarz und weiß.

    Unzertrennlich möchten Sie damit sagen, ja?

  1. Thema

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Manager (m/w/d) Digitalisierung Klinische Anwendungen
    Helios IT Service GmbH, Berlin
  2. Network Architect / Network Engineer (m/w/d)
    IF-TECH AG, Passau, Ansbach, München
  3. Softwaretester (m/w/d) für das Energiemanagementsystem Efficio
    Berg GmbH, Seeheim-Jugenheim bei Darmstadt oder remote
  4. Business Analyst (m/w/d)
    Engelbert Strauss GmbH & Co. KG, Freigericht

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 760€
  2. (u. a. Godzilla vs. Kong, Halloween Kills, Fast & Furious: Hobbs & Shaw, Pleasure)
  3. 999€
  4. (u. a. SPC Gaming-Tisch elektrisch für 339,90€)


Haben wir etwas übersehen?

E-Mail an news@golem.de