История изменений
Исправление Chaser_Andrey, (текущая версия) :
Этот девиз верный, но кресты, высранные недоумком и двоечником страусом ему не соответсвуют.
Похоже, что ты пытаешься выставить себя экспертом, при этом не являясь таковым.
Проверка выхода за границы массива обязательно должна быть в языке (и согласно этому девизу отключаемой ключом компиляции).
Нет, не обязательно должна быть. Но её можно реализовать. Но по желанию. Может в будущие стандарты добавят. Но это не делает такую фичу обязательной. Просто потому что лишний оверхед и на самом деле такую фичу невозможно реализовать для всех случаев без урезания возможностей языка, потому что вычислить в compile-time далеко не всегда возможно в принципе. Или нам придется выкинуть половину возможностей (в том числе и низкоуровневых), чтобы использовать только «безопасные» контейнеры и массивы.
Хочешь юзать проверки в рантайме? Пожалуйста, напиши контейнер (это вообще делается элементарно) или найди готовую реализацию, которая на каждый чих делает _проверки_. При каждом доступе к элементу нам придется делать как минимум лишнюю ассемблерную операцию сравнения. Куча крупных открытых проектов используют контейнеры собственной реализации. Покажи те, где просто добавили проверку выхода за границы.
И пофиг, в языке или в самостоятельно реализованном классе - при проверке в runtime избавится от лишних ассемблерных инструкций не получится.
Что делать с совместимостью с С-интерфейсами и библиотеками, которые передают *void?
GC может и должен быть частью любого нормального языка (опять же отключаемым).
C++ имеет explicit GC: smart-pointers. Также есть автовызов деструкторов для объектов, которые выходят из зоны видимости.
Ты же говоришь о implicit GC.
Но недоносок страус очевидно ниасилил всего этого и поэтому все 30 лет вешает лапшу на уши своим девизом.
Опять опускаешься к беспочвенным и нетехническим оскорблениям. Это не добавляет никакого веса к твоим утверждениям.
Исходная версия Chaser_Andrey, :
Этот девиз верный, но кресты, высранные недоумком и двоечником страусом ему не соответсвуют.
Похоже, что ты пытаешься выставить себя экспертом, при этом не являясь таковым.
Проверка выхода за границы массива обязательно должна быть в языке (и согласно этому девизу отключаемой ключом компиляции).
Нет, не обязательно должна быть. Но её можно реализовать. Но по желанию. Может в будущие стандарты добавят. Но это не делает такую фичу обязательной. Просто потому что лишний оверхед и на самом деле такую фичу невозможно реализовать для всех случаев без урезания возможностей языка, потому что вычислить в compile-time далеко не всегда возможно в принципе. Или нам придется выкинуть половину возможностей (в том числе и низкоуровневых), чтобы использовать только «безопасные» контейнеры и массивы.
Хочешь юзать проверки в рантайме? Пожалуйста, напиши контейнер (это вообще делается элементарно) или найди готовую реализацию, которая на каждый чих делает _проверки_. При каждом доступе к элементу нам придется делать как минимум лишнюю ассемблерную операцию сравнения. Куча крупных открытых проектов, используют контейнеры собственной реализации. Покажи те, где просто добавили проверку выхода за границы.
И пофиг, в языке или в самостоятельно реализованном классе - при проверке в runtime избавится от лишних ассемблерных инструкций не получится.
Что делать с совместимостью с С-интерфейсами и библиотеками, которые передают *void?
GC может и должен быть частью любого нормального языка (опять же отключаемым).
C++ имеет explicit GC: smart-pointers. Также есть автовызов деструкторов для объектов, которые выходят из зоны видимости.
Ты же говоришь о implicit GC.
Но недоносок страус очевидно ниасилил всего этого и поэтому все 30 лет вешает лапшу на уши своим девизом.
Опять опускаешься к беспочвенным и нетехническим оскорблениям. Это не добавляет никакого веса к твоим утверждениям.