Itt az első részben leírod, hogy kivédi a Rust, aztán meg leírod, hogy igazából meg lehet kerülni, csak nagyon akarni kell. Miről akarsz itt most akkor meggyőzni, amikor én ugyanezt mondtam? :)
> Ezért van Rustban bounds checking.
Na ja, de ez meg más nyelvekben is van. C-ben nincs.
> Könnyű mondani, hogy „a programozó hülye”, de nem. Nem mindegy, hogy nehezen észrevehető hibáról beszélünk, vagy fordítva: nehezen elkövethetőkről. Mégegyszer: a statisztikák szerint a bugok nagy része memóriakezelési hiba. A nehezen észrevehető.
És ezeknek a hibáknak a managelt memóriakezelés a C-nél fejlettebb nyelvekben (C++, Pascal, whatever) meg is akadályozza. (A "hülye programozó" kitétel meg nem azokra vonatkozott, akik véletlenül memóriahibára futottak, hanem aki a fenti példában leírt marhaságot elköveti.)
> C-ben egyébként minden pointer shared az adat elérésére
Esküdni mernék, hogy ezt írtam én is...
> (bár inkább az adatra szokták ilyenkor mondani, hogy „shared”)
Esküdni mernék, hogy én is idézőjelbe raktam...
> és egyik sem rendelkezik shared ownership-pel.
Esküdni mernék, hogy nem is állítottam ilyet...
> Shared pointer alatt leggyakrabban az utóbbit értjük.
Hát, hogy a Rust-os terminológia mit ért alatta, azt én nem tudom. Én csak értelmeztem a szavakat.
> Igen, lassú is a fordító. De ezekre az esetekre is van 100%-os védelem. Még egyszer: ahol kell annotálni, és nem teszem, ott max. compile error történhet, hibás kód generálása nem.
Hát ehhez képest az elején azzal nyitottál, hogy ha nagyon akarja az ember, akkor megkerüli, akkor pedig nem 100%-os a védelem.