Naja. Bei C würde ich dir Recht geben, aber bei C++ nicht, wenn man weiß, was man tut und ein bisschen diszipliniert ist. Gut, das ist natürlich oft nicht der Fall, aber ich sehe ehrlich gesagt nicht, wo sich da durch Rust etwas ändern soll. Dennoch ist das ein spannendes Experiment, so oder so weiß man hinterher mehr.
Von Anonymous Coward am Fr, 5. April 2013 um 06:09 #
C++ ist in Bezug auf Sicherheit kaum besser als C. Im Herz der STL stecken Iteratoren, und das sind letztlich nichts anderes als Zeiger. Die Semantik eines std::vector ::iterator (invalidation rules etc.) ist explizit so ausgelegt, dass man einfach einen typedef auf T* verwenden kann. Deswegen sind STL-Container auch so schnell wie sie sind. Und so unsicher.
wenn man weiß, was man tut und ein bisschen diszipliniert ist
Das gilt aber mehr oder weniger für alle Programmiersprachen., auch für C. Das Problem sitzt ja meist vor der Tastatur UND weiß eben nicht was es tut, und diszipliniert sind nur die wenigsten.
Naja. Bei C würde ich dir Recht geben, aber bei C++ nicht, wenn man weiß, was man tut und ein bisschen diszipliniert ist. Gut, das ist natürlich oft nicht der Fall, aber ich sehe ehrlich gesagt nicht, wo sich da durch Rust etwas ändern soll.
Dennoch ist das ein spannendes Experiment, so oder so weiß man hinterher mehr.
C++ ist in Bezug auf Sicherheit kaum besser als C. Im Herz der STL stecken Iteratoren, und das sind letztlich nichts anderes als Zeiger. Die Semantik eines std::vector ::iterator (invalidation rules etc.) ist explizit so ausgelegt, dass man einfach einen typedef auf T* verwenden kann. Deswegen sind STL-Container auch so schnell wie sie sind. Und so unsicher.
Das gilt aber mehr oder weniger für alle Programmiersprachen., auch für C. Das Problem sitzt ja meist vor der Tastatur UND weiß eben nicht was es tut, und diszipliniert sind nur die wenigsten.