Andy_m4
Well-Known Member
Aufgrund des thematischen Abschweifens rund um die Diskussion von Softwareentwicklung und Softwarequalität, hab ich mich entschlossen lieber einen eigenen Thread dazu aufzumachen. :-)
Der Ursprungsthread ist hier:
https://www.bsdforen.de/threads/openbsd-6-9-erschienen.36141/
Was man halt beobachtet in so einem typischen Softwareprojekt ist, Bugs ein enormes Problem sind. Es sind eigentlich immer irgendwelche Bugs offen und die Zahl nimmt tendenziell eher zu als ab.
Dem mit Mitigations, Sandboxes und Telemetrie zu begegnen hat viele Probleme.
Einerseits bindet es Ressourcen. Der Kram muss ja auch implementiert werden und die Ressourcen die da reinfließen fehlen mir für das Fixen der Bugs (und geradeziehen des Entwicklungsprozesses).
Die Sachen verhindern auch keine Bugs. Die sind ja trotzdem da. Die sorgen nur dafür, das die nicht so einfach exploitet werden können. Nur längst nicht alle Bugs sind ja allein sicherheitsrelevant. Also selbst wenn man jetzt unterstellt das man damit die sicherheitsrelevanten Bugs in den Griff kriegt, nützt das bei allen anderen Bugs halt herzlich wenig.
Und es steigert die Komplexität. Die einem ja jetzt schon zu schaffen macht. Die versucht man mit noch mehr Komplexität zu erschlagen. :-)
Vor allem liegt dem ne irrige Annahme zugrunde: Dein Code ist ranzig. Also baust Du Dir ne Sandbox drum. Die Annahme ist jetzt, das Du dann plötzlich die Sandbox fehlerfrei hinkriegst. Also entweder schaffst Du fehlerfreien (oder zumindest fehlerarmen) Code zu schreiben. Dann brauchst Du auch keine Sandbox. Oder eben nicht. Dann ist aber auch deine Sandbox buggy.
Ich will nicht völlig dagegen argumentieren. Ich finde nur, das man viel zu einseitig auf solche Sachen setzt und Anderes (Bugvermeidung) vernachlässigt.
Eher sieht es so aus: Neben der Unzahl an Bugs die sie nicht beherrschen haben sie jetzt auch noch Unmengen an Telemetriedaten die sich gar nicht vernünftig auswerten können.
Heutzutage guck ich zunächst, obs ein Bug gibt. Weils heutzutage eher so ist, das es dann auch tatsächlich ein Bug ist.
Klar gabs auch schon früher Probleme. Genauso gut wie es auch heute gute Software gibt. Ich will da nix schönreden oder so. Für einzelne Bereiche kann man das auch durchaus unterschiedlich sehen.
Aber insgesamt ist das Niveau ... na wenn ich es wohlwollend betrachte: Gleich geblieben. :-)
Klar. Die Software ist heute komplexer. Aber die Tools und Techniken auch. Komplexität taugt deshalb nicht als "Ausrede".
Ansonsten hat ja in der Open-Source-Szene Rolling-Release Tradtion. Also allein im Linux-Bereich. Da hat man z.B. bei Debian (gibts ja auch schon über 25 Jahre) immer testing oder gar unstable genommen.
Also jetzt nicht unbedingt auf dem Server. Aber auf dem Desktop: na klar. Schon allein deshalb, weil sonst die Hardware nicht ordentlich unterstützt wurde.
Der Ursprungsthread ist hier:
https://www.bsdforen.de/threads/openbsd-6-9-erschienen.36141/
Ja. Softwareverifikation war ja auch nur ein Beispiel dafür, wie man im Entwicklungsprozess Sachen besser machen kann.Das Henne-Ei-Problem. Solange die Tools so weit von der Einsatzreife entfernt sind, gibt es wenig Anreiz zur Beschäftigung damit.
Sehe ich etwas anders. Aber wir müssen auch nicht einer Meinung sein. :-)Was aber auch völlig richtig ist. Solange es beim Betrieb von Software so viele Unwägbarkeiten gibt, sollte man diese nach bestem Wissen und Gewissen kompensieren.
Was man halt beobachtet in so einem typischen Softwareprojekt ist, Bugs ein enormes Problem sind. Es sind eigentlich immer irgendwelche Bugs offen und die Zahl nimmt tendenziell eher zu als ab.
Dem mit Mitigations, Sandboxes und Telemetrie zu begegnen hat viele Probleme.
Einerseits bindet es Ressourcen. Der Kram muss ja auch implementiert werden und die Ressourcen die da reinfließen fehlen mir für das Fixen der Bugs (und geradeziehen des Entwicklungsprozesses).
Die Sachen verhindern auch keine Bugs. Die sind ja trotzdem da. Die sorgen nur dafür, das die nicht so einfach exploitet werden können. Nur längst nicht alle Bugs sind ja allein sicherheitsrelevant. Also selbst wenn man jetzt unterstellt das man damit die sicherheitsrelevanten Bugs in den Griff kriegt, nützt das bei allen anderen Bugs halt herzlich wenig.
Und es steigert die Komplexität. Die einem ja jetzt schon zu schaffen macht. Die versucht man mit noch mehr Komplexität zu erschlagen. :-)
Vor allem liegt dem ne irrige Annahme zugrunde: Dein Code ist ranzig. Also baust Du Dir ne Sandbox drum. Die Annahme ist jetzt, das Du dann plötzlich die Sandbox fehlerfrei hinkriegst. Also entweder schaffst Du fehlerfreien (oder zumindest fehlerarmen) Code zu schreiben. Dann brauchst Du auch keine Sandbox. Oder eben nicht. Dann ist aber auch deine Sandbox buggy.
Ich will nicht völlig dagegen argumentieren. Ich finde nur, das man viel zu einseitig auf solche Sachen setzt und Anderes (Bugvermeidung) vernachlässigt.
Gut. Fehlerfrei wirst Du sicher nicht hinkriegen. Aber fehlerarm schon. Man kann viel dafür tun. Allen voran im Bereich Ausbildung und vor allem in vernünftigen Zeitmanagement. Solange das neue Feature bis gestern fertig sein muss, wird sich an der Qualität wenig ändern. Egal was für Tools Du benutzt.Stand heute ist der Bau fehlerfreier Software jenseits trivialer Programme unmöglich und wird das auch auf absehbare Zeit bleiben.
Letzten Endes landet man bei Maschinencode. Der kennt auch viele Abstraktionen nicht. Ist aber nicht schlimm. Weil der Compiler obendrüber das für Dich regelt. Genauso kannst Du es auch mit Sprachen wie Javascript machen. Da kannst Du beispielsweise zu TypeScript greifen.aber im Browser-Bereich landet man letzten Endes (noch) leider immer bei Javascript
So wie bei Windows welches bis unters Dach vollgestopft ist mit Telemetrie. Trotzdem kriegen die ihre Bugs nicht in den Griff.Ich bin froh um beide Techniken. Mit Telemetrie kannst du überhaupt das Verhalten deiner Software beobachten, anstatt einen Blindflug hinlegen zu müssen.
Eher sieht es so aus: Neben der Unzahl an Bugs die sie nicht beherrschen haben sie jetzt auch noch Unmengen an Telemetriedaten die sich gar nicht vernünftig auswerten können.
Weiß nicht. Ich hab eher das umgekehrte Gefühl. Die Qualität hat eher gelitten. Ich hatte das ja schon mal erzählt, das meine Erfahrungswelt früher halt die war, das wenn ein Fehler aufgetreten ist ich zuerst geguckt hab, was ich falsch gemacht hab. Ganz einfach weil oftmals auch der Fehler bei mir lag.Gefühlt ist die Qualität von Software in vielen Bereichen stark gestiegen.
Heutzutage guck ich zunächst, obs ein Bug gibt. Weils heutzutage eher so ist, das es dann auch tatsächlich ein Bug ist.
Klar gabs auch schon früher Probleme. Genauso gut wie es auch heute gute Software gibt. Ich will da nix schönreden oder so. Für einzelne Bereiche kann man das auch durchaus unterschiedlich sehen.
Aber insgesamt ist das Niveau ... na wenn ich es wohlwollend betrachte: Gleich geblieben. :-)
Klar. Die Software ist heute komplexer. Aber die Tools und Techniken auch. Komplexität taugt deshalb nicht als "Ausrede".
Früher gabs vorallem deshalb kein Rolling-Release, weils mangels Internet keine Möglichkeit gab laufend Aktualisierungen zu verteilen.Ich hätte mir auch früher nicht träumen lassen, problemlos ein Rolling Release auf dem Desktop zu betreiben.
Ansonsten hat ja in der Open-Source-Szene Rolling-Release Tradtion. Also allein im Linux-Bereich. Da hat man z.B. bei Debian (gibts ja auch schon über 25 Jahre) immer testing oder gar unstable genommen.
Also jetzt nicht unbedingt auf dem Server. Aber auf dem Desktop: na klar. Schon allein deshalb, weil sonst die Hardware nicht ordentlich unterstützt wurde.
Der beschleunigte Fortschritt trägt sicher sein Teil dazu bei.Betrifft das nicht speziell Elektronik, weil der rasante Fortschritt hochpreisige Anschaffungen eher unattraktiv macht?
Das nützt den Ransomware-Opfern jetzt aber nicht wirklich viel. Was nützt mir die beste Funktionalität, wenn ständig ein Damoklesschwert über mir schwebt? Die Leute machen es trotzdem und hoffen das der Kelch an Ihnen vorbei geht. Hat so ein bisschen was von Zocken.Bei den funktionalen Anforderungen hat noch niemand einen auch nur näherungsweise konkurrenzfähigen Ersatz mit der Mächtigkeit von Active Directory, Exchange, Outlook und Office erschaffen.