crypt of decay - вот поэтому остальное и подзамок [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

вот поэтому остальное и подзамок [Jul. 3rd, 2024|10:27 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
Linkmeow!

Comments:
[User Picture]
From:[info]ketmar
Date:August 28th, 2024 - 11:21 pm
(Link)
вообще, я уже где-то упоминал, но повторю, а то хуй найдёшь.

безопасность — это не про защиту от идиота. потому что идиот — он завсегда найдёт как любую защиту обойти, идиоты очень изобретательны.

безопасность — это защита от непреднамеренных ошибок. программа должна или работать, или с грохотом падать. а вот молча рубать в лапшу память, например — не должна.

вот оберон это и гарантирует: ты не испортишь «чужую» память, если вдруг у тебя где-то вылезет «дикий» указатель (в обероне это вообще невозможно), или если выстрелишь индексом за пределы массива. на этом месте полномочия оберона всё: написать правильный алгоритм — забота программиста.

GC нужен за тем же самым: он гарантирует, что у тебя никогда не будет ситуации «use after free». но и всё: он не гарантирует, например, отсутствие утечек памяти — это опять забота программиста.

технически в оригинальном обероне нет даже зануления локалов (кроме указателей) и проверки на целочисленные переполнения: программа всё равно не сломает того, что ломать не должна. просто выдаст фигню какую-то, но фатально память в лапшу не нарубит, например.

я добавил зануление и проверки переполнений просто потому, что это почти ничего не стоит, и делает код более предсказуемым.