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

Wieder neuer Datenpunkt

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. Wieder neuer Datenpunkt

    Autor: pythoneer 02.12.21 - 11:48

    Das zeigt mal wieder das die gepredigten Annahmen man müsse nur Programmierer anstellen die klug genug sind; man kann da ganz viel mit ASan, LSan, TSan, UBSsan, MSan, Valgrind etc. machen; "gute" Code Reviews; "bessere" Firmenkultur; strikte Benutzung von X; Fuzzer; mit "modernem" C++ wäre das nicht passiert ... alles an der Realität vorbei geht.

    C/C++ bleibt einfach eine Fallgrube in der jeder mal landet egal wie gut und schlau und da helfen auch "moderne" Techniken nichts (vielleicht in diesem konkreten Fall wegen der Unions aber "modernes" C++ hilft einfach nicht wie Microsoft und Google gezeigt haben). Das einzige was hilft sind Programmiersprachen die solche Probleme einfach unmöglich machen und zu Kompilierfehlern führen. Man kann den Programmierern nicht mal böse sein die "gezwungen" sind in großen vorhandenen Codeprojekten zu arbeiten. Aber viele sollten langsam wirklich anfangen den Willen zu zeigen von C/C++ langfristig Abstand zu nehmen und wenigstens für neuen Code besser geeignete Sprachen zu verwenden.



    3 mal bearbeitet, zuletzt am 02.12.21 11:51 durch pythoneer.

  2. Re: Wieder neuer Datenpunkt

    Autor: herc 02.12.21 - 12:34

    ich sehe deinen nutzernamen. pythoneer. hast du schon in modernem C++ entwickelt? Das ist eigentlich eine ganz neue Sprache und hat mit dem alten C nur noch die Rückwärtskompatibilität gemeinsam.

    Aber klar: ich bin bereit, auf eine modernere Sprache umzusteigen, wenn sie mir die Flexibilität und die Effizient von C++ mit der einfache Syntax und dem rapid-prototyping von Python bietet :-)

    ach ja - das array slicing wie in Python mit numpy , Julia / Matlab (nativ eingebaut) fehlt mir in C++ am meisten. Das ist für mich mit ein Hauptgrund die Augen nach einer neuen Sprache aufzuhalten.

    Vielleicht kommt meinem Wünschen Julia noch am nächsten? Das soll wohl fast so performant wie C/C++ sein..

  3. Re: Wieder neuer Datenpunkt

    Autor: spieles21 02.12.21 - 13:07

    herc schrieb:
    --------------------------------------------------------------------------------
    > Vielleicht kommt meinem Wünschen Julia noch am nächsten? Das soll wohl fast
    > so performant wie C/C++ sein..

    Rust wäre auch eine Alternative. Performance schlägt sie Teils C/C++;
    Kann leider keine Links posten.
    Einfach nach "benchmarksgame-team debian rust" suchen.


    Aber es gibt keine Beste Programmiersprache, sondern nur die welche für den Anwendungszweck am besten geeignet ist.

  4. Re: Wieder neuer Datenpunkt

    Autor: pythoneer 02.12.21 - 16:59

    herc schrieb:
    --------------------------------------------------------------------------------
    > ich sehe deinen nutzernamen. pythoneer. hast du schon in modernem C++
    > entwickelt? Das ist eigentlich eine ganz neue Sprache und hat mit dem alten
    > C nur noch die Rückwärtskompatibilität gemeinsam.

    Ja ich habe schon mal mit "modernem" C++ entwickelt. C++ ist auch meine erste echte Programmiersprache gewesen an die ich mich aktiv erinnern kann. Vielleicht abgesehen von VB und Javascript Spielereien. Das muss so damals in der 6. oder 7. Klasse gewesen sein und die Motivation war Spieleprogrammierung. Erst mit D3D und dann später mit OpenGL alles immer mal wieder On/Off war auch Abhängig davon welche Spiele gerade hip waren. Die Unreal und Quake3 Engines hatte da noch mal einen zusätzlichen Schub gegeben. Ich erinnere mich auch noch sehr gut an "3D Spieleprogrammierung mit Direct X in C/C++" von Stefan Zerbst.

    Dann ging es aber so langsam ins Abitur und die Uni und da gab es dann eher die Tendenz zu Java. Das war recht "angesagt" unter den Lehrern und Profs – so die frühen 2000ner (Das dunkle Zeitalter des Javahypes wie ich es nenne :P)

    Zu dieser Zeit hatte ich mich aber immer noch private mit C/C++ auseinander gesetzt, vor allem die Arbeit(Bücher und Vorträge) von Scott Meyers, Andrei Alexandrescu(D-Lang Author) und Herb Sutter. Und mit weiteren Iterationen des Standards – ähnlich wie Scott Meyers – immer mehr Kritik an der Sprache gefunden. Besonders, dass es mit den neuen Versionen des Standards immer unübersichtlicher wurde. Was ja auch mit zum Ruhestand von Scott Meyers geführt hat der selber zugibt einfach nicht mehr den Überblick über die neuen Standards behalten zu können.

    So ging es mir dann auch, allerdings nicht mit dem Detailgrad mit dem Scott Mayers das betreibt. Seine Bücher und Vorträge waren immer sehr "ach so, stimmt wenn man drüber nachdenkt" "ahh, gut zu wissen – in die Falle wäre ich bestimmt auch getappt" und für mich dann irgendwann auch der Grund die Sprache zu verlassen. Für privates herumspielen Ok – aber ich kann für mich nach Jahrzehnten einfach nicht sagen, dass ich mit großem Selbstvertrauen sicheren Code schreiben kann. In der Uni Zeit dann auch meist mit Python gearbeitet und gelernt wie langsam das sein kann :P Beruflich viel mit Java zu tun und ab und zu sich für kleine Projekte auch noch mal an C++ getraut (Qt Programme). Aber alles in allem muss ich sagen, C++ hat mir viel beigebracht, ich verdanke C++ auch den "ernsthaften" einstieg in die Programmierung. Aber nach allem was mir C++ persönlich bedeutet ist es einfach nicht mehr auf der Höhe der Zeit aber das ist auch gar nicht schlimm. Schlimm ist nur wenn Leute sich daran klammern als gäbe es kein Morgen.

    > Aber klar: ich bin bereit, auf eine modernere Sprache umzusteigen, wenn sie
    > mir die Flexibilität und die Effizient von C++ mit der einfache Syntax und
    > dem rapid-prototyping von Python bietet :-)

    Diese Punkte sind mir mittlerweile, wenn es um professionelle Programmierung geht gar nicht mehr so wichtig. Vielleicht als Einstiegsmotivation für Hobbyprojekte – aber was ich wirklich will ist keine stundenlangen Debugsessions mit irgendwelchen Runtime Fehlern/Abstürzen die ich in Livesystemen suchen muss. Ich will Wartbarkeit und Resistenz gegen Anfängerfehler für Leute die neu ins Projekt kommen. Einfaches Refactoring wo ich das Vertrauene in den Code haben kann dass der danach von das tut was er soll auch ohne massen on Unit Tests.

    Wenn ich dafür mehr Code schreiben muss oder länger daran sitze mich mit dem Compiler zu "streiten" nehme ich diese "Nachteile" mit Kusshand, weil die 15 Minuten die ich deswegen länger brauche, die spare ich dann 20x wenn ich im Vergleich dazu nachts um halb vier das Abgestürzte System des Kunden untersuchen muss und ein Hotfix bastle der dann ne Woche später drei andere Fehler ausgelöst hat.

    > ach ja - das array slicing wie in Python mit numpy , Julia / Matlab (nativ
    > eingebaut) fehlt mir in C++ am meisten. Das ist für mich mit ein Hauptgrund
    > die Augen nach einer neuen Sprache aufzuhalten.

    Da hat wohl jeder so seine eigenen Ansichten was einem wichtig bei einer Sprache ist.

    > Vielleicht kommt meinem Wünschen Julia noch am nächsten? Das soll wohl fast
    > so performant wie C/C++ sein..

    Ich hoffe Sie finden die für Sie passende Sprache. Julia habe ich selber noch nicht probiert, höre aber viel gutes. Bekannte aus der Wissenschaft haben da das eine oder andere gute Wort drüber verloren die sonst eher mit R arbeiten.

  5. Re: Wieder neuer Datenpunkt

    Autor: lestard 02.12.21 - 17:20

    herc schrieb:
    --------------------------------------------------------------------------------
    > ich sehe deinen nutzernamen. pythoneer. hast du schon in modernem C++
    > entwickelt? Das ist eigentlich eine ganz neue Sprache und hat mit dem alten
    > C nur noch die Rückwärtskompatibilität gemeinsam.
    Ist nicht genau diese Rückwärtskompatibilität das Problem hier? Das heißt doch, dass der Compiler auch alten, fehlerträchtigen Code durchwinkt anstatt direkt ein Problem anzuzeigen, oder?

    Ernst gemeinte Frage, kenne mich mit C(++) nicht aus.

  6. Re: Wieder neuer Datenpunkt

    Autor: pythoneer 02.12.21 - 18:32

    lestard schrieb:
    --------------------------------------------------------------------------------
    > Ist nicht genau diese Rückwärtskompatibilität das Problem hier? Das heißt
    > doch, dass der Compiler auch alten, fehlerträchtigen Code durchwinkt
    > anstatt direkt ein Problem anzuzeigen, oder?
    >
    > Ernst gemeinte Frage, kenne mich mit C(++) nicht aus.

    Im Grunde, ja. Moderne C/C++ Compiler haben aber schon allerhand tolle Warnungen parat, die es früher noch nicht gegeben hat. In trivialen Fällen wird man schon gewarnt jedoch kompilieren tut es trotzdem.

    Man kann natürlich recht simpel diesen dümmlichen Code verfassen



    Und in diesem Fall wird man auch vom Compiler gewarnt – und ich muss sagen die Fehlermeldung ist hier ausgezeichnet. Das ist man von früher so gar nicht gewohnt :P gute Fortschritte gemacht was Übersichtlichkeit und Visualisierung anbelangt.



    Ein fertiges Kompilat mit anschließendem Absturz bei Ausführung kommt aber trotzdem raus

  7. Re: Wieder neuer Datenpunkt

    Autor: ubuntu_user 02.12.21 - 21:09

    pythoneer schrieb:
    --------------------------------------------------------------------------------
    > Im Grunde, ja. Moderne C/C++ Compiler haben aber schon allerhand tolle
    > Warnungen parat, die es früher noch nicht gegeben hat. In trivialen Fällen
    > wird man schon gewarnt jedoch kompilieren tut es trotzdem.

    naja wenn man warnings ignoriert ist man schon selbst Schuld ^^

  8. Re: Wieder neuer Datenpunkt

    Autor: ubuntu_user 02.12.21 - 21:11

    spieles21 schrieb:
    --------------------------------------------------------------------------------
    > Aber es gibt keine Beste Programmiersprache, sondern nur die welche für den
    > Anwendungszweck am besten geeignet ist.

    hat aber auch viel mit Selbstdisziplin zu tun. Kannst auch Mist mit jeder Programmiersprache anstellen. Wenn man immer mehr Scheiß (wie jetzt bei firefox) reinpackt fliegt einem der Mist halt irgendwann um die Ohren

  9. Re: Wieder neuer Datenpunkt

    Autor: pythoneer 02.12.21 - 21:25

    ubuntu_user schrieb:
    --------------------------------------------------------------------------------
    > pythoneer schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Im Grunde, ja. Moderne C/C++ Compiler haben aber schon allerhand tolle
    > > Warnungen parat, die es früher noch nicht gegeben hat. In trivialen
    > Fällen
    > > wird man schon gewarnt jedoch kompilieren tut es trotzdem.
    >
    > naja wenn man warnings ignoriert ist man schon selbst Schuld ^^

    Das ist man auch ohne warnings zu ignorieren.

  10. Re: Wieder neuer Datenpunkt

    Autor: herc 03.12.21 - 10:29

    Vielen Dank für die spannenden Einsichten!
    Bezüglich des "dunklen Javazeitalters": LEIDER wird diese Sprache immer noch in den ersten Semestern an Hochschulen gelehrt. Ich ich persönlich habe Java nie gemocht und weigere mich, sie zu nutzen (zum Glück kann ich frei wählen). Bei mir stand lange Zeit die Performance für Games und Simulationen an allererster Stelle. Damals war Java deutlich langsamer als C++, es war und ist keine multi-paradigm Sprache, hatte damals nicht einmal generics, und "garbage collector" ist für mich spontan noch immer ein schlimmes Schimpfwort ;-) (ja ich weiß - das ist etwas unreflektiert und meiner persönlichen Entwicklung geschuldet).
    Da ich im Hochschul-Bereich tätig bin, habe ich eine zeit lang Matlab genutzt, mich über die wiederkehrenden Lizenzprobleme und den wuchtigen Plattenplatzfraß geärgert und bin dann automatisch zu Python gekommen - eine Offenbarung bezüglich der einfachen, schönen Syntax und der idealen Tauglichkeit für die Lehre.

  11. Re: Wieder neuer Datenpunkt

    Autor: herc 03.12.21 - 11:03

    C++ Lambdas mit capture by reference sind ja potentielle Bugmonster...

    habe gerade einmal in compiler-explorer ( https://godbolt.org/ ) folgenden code getestet:



    leider bekomme ich da trotz "-Wall -Wextra" keine Warnung. Gibt es Tools / Compiler, die auch solche Fehler erkennen?

  12. Re: Wieder neuer Datenpunkt

    Autor: pythoneer 03.12.21 - 12:34

    herc schrieb:
    --------------------------------------------------------------------------------
    > Vielen Dank für die spannenden Einsichten!
    > Bezüglich des "dunklen Javazeitalters": LEIDER wird diese Sprache immer
    > noch in den ersten Semestern an Hochschulen gelehrt. Ich ich persönlich
    > habe Java nie gemocht und weigere mich, sie zu nutzen (zum Glück kann ich
    > frei wählen). Bei mir stand lange Zeit die Performance für Games und
    > Simulationen an allererster Stelle. Damals war Java deutlich langsamer als
    > C++, es war und ist keine multi-paradigm Sprache, hatte damals nicht einmal
    > generics, und "garbage collector" ist für mich spontan noch immer ein
    > schlimmes Schimpfwort ;-) (ja ich weiß - das ist etwas unreflektiert und
    > meiner persönlichen Entwicklung geschuldet).
    > Da ich im Hochschul-Bereich tätig bin, habe ich eine zeit lang Matlab
    > genutzt, mich über die wiederkehrenden Lizenzprobleme und den wuchtigen
    > Plattenplatzfraß geärgert und bin dann automatisch zu Python gekommen -
    > eine Offenbarung bezüglich der einfachen, schönen Syntax und der idealen
    > Tauglichkeit für die Lehre.

    Ich sehe wir sind uns gar nicht so fern :) Performance war letzten Endes auch der Grund warum ich bei C++ geblieben bin, da meine ersten Programmierschritte ja auch immer Games als Grundlage hatte. Obwohl meine Fähigkeiten damals das sowieso nicht ausgenutzt hatte. Ich hatte Python immer schon mal für kleinere Sachen benutzt richtig Schwung kam da aber erst in der Uni rein weil da einfach auch Zeit ein Faktor war und auf Korrektheit und Performance weniger Wert gelegt wurde als ein passables Ergebnis zu haben. Für die Benotung von Aufgaben war es einfach effizienter ein funktionierendes Ergebnis zu haben was nicht ganz korrekt ist als ein korrektes Ergebnis was nicht funktioniert (weil es vielleicht noch nicht fertig ist um in seiner Gesamtheit ein Ergebnis zu liefern).

  13. Re: Wieder neuer Datenpunkt

    Autor: pythoneer 03.12.21 - 13:00

    herc schrieb:
    --------------------------------------------------------------------------------
    > C++ Lambdas mit capture by reference sind ja potentielle Bugmonster...
    >
    > habe gerade einmal in compiler-explorer ( godbolt.org ) folgenden code
    > getestet:
    >
    > coreloop.de
    >
    > leider bekomme ich da trotz "-Wall -Wextra" keine Warnung. Gibt es Tools /
    > Compiler, die auch solche Fehler erkennen?

    Das ist ja genau das Problem mit diesen Static-Analyzern (wozu ich die Compiler-Warnungen jetzt mit zähle). Und was Sie hier demonstriert haben ist ein Paradebeispiel. Im Grunde können die Tools das eigentliche Problem in seiner trivialen Form erkennen (siehe mein Beispiel). Steckt man das dann aber in einen komplexeren Kontext, kann es passieren das die Erkennung dann nicht mehr klappt. Das kann man leider mit vielen solcher Beispiele demonstrieren. Irgendwann können die Tools über bestimme "Stellen" nicht mehr hinaus gucken. Selbst wenn wir jetzt einen Compiler oder ein Tool finden was dies erkennen kann (oder es wird als Feature hinzugefügt), dann könnte ein weiteres Spachfeature, das wir ins Beispiel einbauen, die Erkennung wieder zerstören.

    Das fundamentale Problem liegt hier leider in der Sprache selbst und die Tools die das "nachträglich" anflanschen wollen können den Kampf leider einfach nicht gewinnen. Ich denke ultimativ kann man sich da nur auf ein Tool/Compiler verlassen der das als Sprachfeature integriert hat.



    Der Compiler zählt dann den Fehler an und der Hinweis zur Lösung ist auch genau das, wie man auch den C++ Code korrigiert hätte – wir wollen nicht by reference (einfangen) capturen sondern by value/move

  14. Re: Wieder neuer Datenpunkt

    Autor: herc 03.12.21 - 13:09

    Danke für die Demo / Übersetzung in Rust! Sehr erhellend!

  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. Datenbank-Administrator (m/w/d)
    LOANCOS GmbH, Frankfurt
  2. Mitarbeiter (m/w/d) Medizinische Dokumentation / Medizinisches Informationsmanagement / Datenmanagement
    Bayerisches Landesamt für Gesundheit und Lebensmittelsicherheit, Nürnberg
  3. Wissenschaftliche Mitarbeiterin / Wissenschaftlicher Mitarbeiter (m/w/d) am Lehrstuhl für ... (m/w/d)
    Universität Passau, Passau
  4. IT-Administrator (m/w/d)
    SAGA IT-Services GmbH, Hamburg

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote


Haben wir etwas übersehen?

E-Mail an news@golem.de


Nordvpn, Expressvpn, Mullvad & Co: Die Qual der VPN-Wahl
Nordvpn, Expressvpn, Mullvad & Co
Die Qual der VPN-Wahl

Wer sicher im Internet unterwegs sein will, braucht ein VPN - oder doch nicht? Viele Anbieter kommen jedenfalls gar nicht erst in Frage.
Von Moritz Tremmel

  1. Windows 10 und Windows 11 Microsoft behebt Bug mit VPNs unter Windows
  2. Überwachung Polizei beschlagnahmt VPN-Dienst
  3. Urheberrecht VPN-Anbieter blockiert Torrents und Pirate Bay nach Klage

Polizei: Wenn Sexting zur Kinderpornografie wird
Polizei
Wenn Sexting zur Kinderpornografie wird

Der Straftatbestand Kinderpornografie umfasst auch Sexting unter Jugendlichen und betrifft ganze Schülerchats. Offenbar wissen viele gar nicht, wann sie strafbar handeln.

  1. Kriminalität Europol nimmt eines der größten Hackerforen vom Netz
  2. Kriminalität Anlagebetrüger sollen 14 Millionen Euro erbeutet haben
  3. Gehackte Polizeikonten Kriminelle erhielten wohl IP-Adressen von Google-Kunden

Xiaomi Watch S1 Active im Test: Wenn sich beim Joggen der Schlafmodus meldet
Xiaomi Watch S1 Active im Test
Wenn sich beim Joggen der Schlafmodus meldet

Eine günstige Sportuhr mit gutem GPS-Modul - das wäre was! Leider hat die Watch S1 Active von Xiaomi zu viele Schwächen, um Spaß zu machen.
Von Peter Steinlechner

  1. Wearable Fossil präsentiert Hybrid-Smartwatch im Retrolook