( kroozo | 2021. 04. 18., v – 15:51 )

Erről beszéltem idáig. Örülök, hogy konszenzusra jutottunk.

Bocs, nem, csak kimaradt egy nem. :)

Az unsafe lényege nem az, hogy direkt átadhass rossz adatokat, hanem az, hogy megtehess olyat, amire a nyelv bereklamál safe módban.

Nem nagyon látom, hogy a gyakorlatban mire lenne ez használható.

 Nem azon volt a hangsúly, hogy ki írja a kódot, hanem, hogy ha felhasznál egy libet és nem tudja, hogy az adott függvény hogy old meg valamit, akkor most hiba volt-e a részéről, hogy támaszkodott a safe módra, vagy sem? Mert ha hiba, akkor viszont át kell néznie a felhasznált library kódját, ami ha soktíz kB-ra rúg, az nagyon "meggyorsítja" a fejlesztést. A safe mód lényege a Rust userek szerint pont az lenne, hogy az ember ne követhessen el triviális hibákat, márpedig, ha egy sima print crash-t okoz, mert a kapott referencia invalid memóriacímre mutatott, az bizony triviális hiba, hiszen a delikvens egy meghívást, meg egy kiiratást csinált, nem többet.

Ha nem bízik benne, akkor sem kell átnézni neki mindent, csak az unsafet. De ez alapvetően annak a dolga, aki az unsafe kódot írja. A triviális hiba továbbra is azért van, mert ott valaki elkefélt valamit, mikor megígérte, hogy de én bizisten tudom mit csinálok. De innen már csak ismételni tudom önmagam. Ez természetesen nem ideális, és faszkalapok meg rosszindulatúak továbbra is tudnak vele bajt csinálni, de jó eséllyel akkor is kevesebb lesz a triviális hiba, mint korábban, és kiszúrni is egyszerűbb lesz, mert bazi nagy unsafe flag lesz rajta.