LINUX.ORG.RU

История изменений

Исправление 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 лет вешает лапшу на уши своим девизом.

Опять опускаешься к беспочвенным и нетехническим оскорблениям. Это не добавляет никакого веса к твоим утверждениям.