Bugs in der STL



  • asc schrieb:

    Ganz zu schweigen davon, das ich keinen Grund für den Post sehe, ins besondere nicht in diesen Unterforum.

    Da wollte ein kleiner Troll wohl mal wieder nen Flamewar (oder sowas ähnliches) starten.



  • Sobald es kritisch wird kommt die Trollkeule. Dumme, aber effektive Reaktion.



  • asdfasdf schrieb:

    Sobald es kritisch wird kommt die Trollkeule. Dumme, aber effektive Reaktion.

    Dann erkläre mir einmal was daran kritisch ist, wenn hier Korrekturen zu einem Compiler genannt werden, der bereits 2 Nachfolgegenerationen hat. Und noch dazu wenn der Autor die Fakten nicht richtig nennt.

    Zumal es wie gesagt auch nicht um "Bugs in der STL", sondern um Bugs in der Implementierung eines spezifischen Herstellers geht. Die Überschrift und der Inhalt des Ausgangsposts passen durchaus zu dem Vorwurf des Trollversuchs.





  • Kein Programm ist fehlerfrei (wenn man vielleicht einmal von einem Hello World absieht)

    Bullshit!



  • knivil schrieb:

    Kein Programm ist fehlerfrei (wenn man vielleicht einmal von einem Hello World absieht)

    Bullshit!

    Wenn Debuggen die Tätigkeit ist, Bugs aus einer Software heraus zu bekommen, dann ist Programmieren die Tätigkeit diese hinein zu bekommen.



  • Deine Aussage ist fuer mich nicht nachvollziehbar. Ich programmiere wahrscheinlich anders. Ich debugge sehr selten.



  • knivil schrieb:

    Ich programmiere wahrscheinlich anders.

    Oder vielleicht hast du einfachere Aufgabenstellungen. Ich glaube, wir müssen nicht darüber diskutieren, dass die totale Bugfreiheit ab einer gewissen Projektgrösse unrealistisch (bzw. unwirtschaftlich) wird. Wobei die Implementierung eines C++-Compilers definitiv als sehr komplexeres Projekt aufgefasst werden kann.

    Ansonsten gehts hier weiter 🙂



  • Viel Zustand ~ Viel Debuggen
    Wenig Zustand ~ Wenig Debuggen

    Plusminus natürlich, aber tendenziell. Wer also beispielsweise viel Mathekram macht, der braucht tendenziell weniger Zustand und muss darum auch weniger debuggen.

    Es kommt daher nicht so sehr darauf an wie man programmiert, sondern vielmehr was man programmiert...

    Meine Erfahrung besagt zusätzlich, dass die Viel-Zustsand-Fälle gehasst werden wie die Pest und von den Programmierern dann öffentlich belächelt werden, statt zuzugeben, dass die Abneigung eher von den vielen Fehlerfällen herrührt, die selbst ihre Göttlichkeit nicht vermeiden kann.



  • asc schrieb:

    asdfasdf schrieb:

    Sobald es kritisch wird kommt die Trollkeule. Dumme, aber effektive Reaktion.

    Dann erkläre mir einmal was daran kritisch ist, wenn hier Korrekturen zu einem Compiler genannt werden, der bereits 2 Nachfolgegenerationen hat.

    Ganz einfach nicht jeder arbeitet immer mit der aktuellsten Version. Ich kaufe mir doch nicht alle zwei Jahre ein Visual Studio oder ein Photoshop neu...tztztz.



  • decimad schrieb:

    Viel Zustand ~ Viel Debuggen
    Wenig Zustand ~ Wenig Debuggen

    Kein Zustand ~ Nie Debuggen?
    Dann muss ich sofort auf funktionale Programmierung umsteigen 😉

    Nein, die Grundidee stimmt natürlich. Viele Bugs entstehen durch unerwünschte Seiteneffekte und nicht-lokale Abhängigkeiten. Vor allem sind diese Bugs tendenziell schwieriger zu finden als pure Denkfehler.

    decimad schrieb:

    Wer also beispielsweise viel Mathekram macht, der braucht tendenziell weniger Zustand und muss darum auch weniger debuggen.

    Das verstehe ich hingegen nicht ganz, was meinst du überhaupt mit Mathe (auf Programmierung angewandt)? Lineare Algebra, Graphentheorie, Geometrie, Statistik, ...? Würde nicht unbedingt behaupten, dass man dazu wenig Zustand braucht...

    Nebenbei, wieso löschst du deinen Account, wenn du doch ständig hier postest? 😉



  • Ich glaube, wir müssen nicht darüber diskutieren

    Nee, muessen wir nicht. Ich werde nicht deiner Meinung sein.

    dass die totale Bugfreiheit ab einer gewissen Projektgrösse unrealistisch (bzw. unwirtschaftlich) wird.

    Und meine Erfahrung ist anders.

    Kein Zustand ~ Nie Debuggen?
    Dann muss ich sofort auf funktionale Programmierung umsteigen

    Du hast funktionale Programmierung nicht verstanden.

    Flame war, please.



  • knivil schrieb:

    Kein Programm ist fehlerfrei (wenn man vielleicht einmal von einem Hello World absieht)

    Bullshit!

    Du magst es als Bullshit bezeichnen, es gibt sogar diverse Studien zu dem Thema. Sobald Programme über eine höhere Komplexität verfügen ist es nahezu unmöglich sie fehlerfrei zu bekommen. Eine andere Frage ist aber ob die vorhandenen Fehler in der üblichen Betriebszeit und -umgebung auffallen.

    Nenne mir bitte auch nur ein komplexeres Programm das du als fehlerfrei ansiehst. Mir ist bis heute jedenfalls bewusst noch kein einziges untergekommen.



  • tztztztz schrieb:

    asc schrieb:

    asdfasdf schrieb:

    Sobald es kritisch wird kommt die Trollkeule. Dumme, aber effektive Reaktion.

    Dann erkläre mir einmal was daran kritisch ist, wenn hier Korrekturen zu einem Compiler genannt werden, der bereits 2 Nachfolgegenerationen hat.

    Ganz einfach nicht jeder arbeitet immer mit der aktuellsten Version. Ich kaufe mir doch nicht alle zwei Jahre ein Visual Studio oder ein Photoshop neu...tztztz.

    Dann hat das Thema dennoch nicht in diesem Unterforum zu suchen. Es ist kein Fehler von C++, sondern von einer ganz konkreten STL-Umsetzung. Und das die STL von Visual Studio nicht perfekt ist, sollte glaube ich inzwischen jeder wissen.



  • knivil schrieb:

    Du hast funktionale Programmierung nicht verstanden.

    Und du Smileys nicht.



  • Du magst es als Bullshit bezeichnen, es gibt sogar diverse Studien zu dem Thema.

    Habe davon gehoert, nie eine gesehen. Quellen! Desweiteren ist das Statistik, d.h. viele schlechte und durchschnittliche Programme/Programmierer. Daraus eine Unmoeglichkeitsaussage abzuleiten, ist Bullshit.

    Nenne mir bitte auch nur ein komplexeres Programm das du als fehlerfrei ansiehst. Mir ist bis heute jedenfalls bewusst noch kein einziges untergekommen.

    Sie gehoeren nicht mir, sondern meiner Firma.

    1.) Module koennen fehlerfrei geplant werden
    2.) Module koennen fehlerfrei implementiert werden.
    3.) Module koennen entkoppelt werden.
    4.) Module koennen fehlerfrei verknuepft werden.
    5.) Es gibt Strategien Fehler zu vermeiden.
    6.) Es gibt Mittel zur Beherrschung von Komplexitaet.
    7.) ...

    Warum sollte das nicht ausreichen, fehlerfrei Software zu produzieren?

    Oder anders gefragt: Was fehlt, um fehlerfreie Software zu produzieren?



  • knivil schrieb:

    Desweiteren ist das Statistik, d.h. viele schlechte und durchschnittliche Programme/Programmierer. Daraus eine Unmoeglichkeitsaussage abzuleiten, ist Bullshit.

    Ne, eben gerade nicht. Es ist praktisch unmöglich, ab einer gewissen Komplexität bugfreie Programme zu schreiben. Natürlich funktioniert Bugfreiheit in der Theorie, aber in der Praxis muss man eben gerade Faktoren wie durchschnittliche Programmierer, Budgets und Deadlines berücksichtigen. Fehler können auf jeder Stufe deiner Liste passieren, sie wegzudiskutieren ist idealistisch.

    knivil schrieb:

    Sie gehoeren nicht mir, sondern meiner Firma.

    Was ist für dich komplex? Gängige Betriebssysteme, Browser und Office-Programme sind ein gutes Beispiel. Die enthalten alle Bugs und werden ständig verbessert. Es sind auch deswegen gute Beispiele, weil sie von extrem vielen Leuten benutzt werden, und sich Bugs deshalb eher zeigen. Wenn ein Programm nur von einer Handvoll Leute eingesetzt wird, kann es gut sein, dass viele Fehler unentdeckt bleiben.

    ...verdammt, jetzt habe ich mich doch wieder auf eine aussichtslose Diskussion eingelassen.



  • Es ist praktisch unmöglich, ab einer gewissen Komplexität bugfreie Programme zu schreiben.

    Ich habe dich verstanden.

    Budgets und Deadlines

    Kenne ich, habe ich. Nur halte ich mich nicht fuer einen durchschnittlicher Programmierer.

    Wenn ein Programm nur von einer Handvoll Leute eingesetzt wird, kann es gut sein, dass viele Fehler unentdeckt bleiben.

    Medizinprodukte. Sie wird von vielen eingesetzt. Nicht von Millionen wie bei Office. Was meinst du, wie teuer dort Fehler sein koennen? Ich sage dir: Es ist sehr ... unwirtschaftlich.

    Ich wiederhole meine Frage: Was fehlt dir an Werkzeugen, um fehlerfreie Software zu produzieren? Ich gehe noch weiter: Was fehlt dir an Werkzeugen, um performante, sichere und fehlerfreie Software zu produzieren?



  • knivil schrieb:

    Was fehlt dir an Werkzeugen, um performante, sichere und fehlerfreie Software zu produzieren?

    Ihm fehlt das Wissen um funktionale Programmierung.



  • knivil schrieb:

    Warum sollte das nicht ausreichen, fehlerfrei Software zu produzieren?

    Fängt schon dabei an, das Anforderung in der Regel niemals 100% abgebildet werden kann. Sei es wegen Reibungsverlusten zwischen Anwender, Analytiker und Entwickler, sei es weil Software immer nur eine vereinfachte Abbildung der Realität sein kann.

    Man kann Software möglichst fehlerfrei, aber nicht absolut fehlerfrei schreiben. Du kannst gerne etwas anderes behaupten, nur halte ich es für ein absolutes Wunschdenken. Daran ändert auch nichts, das es ein kritischer Bereich ist. In einem solchen Versucht man nahe der 0-Fehlergrenze zu kommen, Fehler gänzlich ausschließen zu können halte ich für reine Utopie.


Anmelden zum Antworten