( TCH | 2021. 04. 18., v – 12:05 )

Persze, hogy lehetne, csak ha ezt a mentalitást generalizálod, akkor oda fogsz jutni a végén, hogy nincs is unsafe, mert mindent, amit ott csináltál, leellenőrzünk, hogy megfelel-e a safe szerint.

Ettől miért ne lenne lehetőség unsafe módon dolgozni? Azt továbbra sem kell ellenőrizni ami unsafe blokkban van, lévén az - nomen est omen - unsafe, de az, hogy egy safe rész ellenőrizetlenül felhasznál egy változót, amit egy unsafe rész állított elő, az bizony rés a pajzson. A crash a safe részben történik. Ennyi a lényeg és nem több. Érdektelen, hogy a kapott adata unsafe körülmények között jött létre, mert safe körülmények között lett felhasználva és az eredmény a crash volt.

Márpedig az unsafe azért van, hogy meg tudd kerülni az ellenőrzések megkötéseit, ha az tényleg szükséges. Én értem, hogy ez tud bajt okozni, és limitálja a hasznosságot, de én továbbra is azt gondolom, hogy ez nem a safe hiányossága, hanem a rossz unsafe kód következménye. És szerintem az egy teljesen élhető kompromisszum, hogy mondhatod, hogy most ne legyél okosabb nálam, tudom mit csinálok, akkor hagyja neked a tool, hogy rendben kisgazdám, de akkor te vagy a felelős a következményekért is.

Csakhogy - ahogy mondtam - az összeomlás a safe részben történik: akkor, amikor azt kértem, hogy most legyen okosabb nálam, mert nem tudom, hogy mit csinálok. Mi van, ha az unsafe részt tartalmazó függvényt nem is én írtam, csak felhasználtam? Én itt bízok a nyelvben, hogy nem érhet baj, amíg safe módban vagyok, aztán puff...