На Java уже писали до меня. Что-то не понравилось, видимо.
Про Ada вообще ничего сказать не могу. И написать на ней, соответственно, тоже.
И кто потом будет это сопровождать или хотя бы захочет в код заглянуть?
Я исходники чего-нибудь на Ada даже выкачивать не буду. Абсолютное большинство разработчиков, думаю, тоже.
А насчёт надёжности...
Тут ведь как напишешь. Можно и на Java такого наваять...
Тем более, что я-то пишу только относительно небольшой движок, который можно "вылизать", а остальное всё будут писать "прикладные" программисты (и я, конечно, в т.ч.) - у них возможности "накосячить" будет гораздо больше
И о безопасности:
Безопасное ПО - вообще такая скользкая тема... но все реализации которые я знаю, написаны на ассемблере или на чистом С, причём с очень урезанными библиотеками и с использованием сто раз перепроверенных и исследованных компиляторов.
И то не бойко дело идёт.
У меня везде, где указатель подразумевается не указатель, а что-то выполняющее его роль - это слово "указатель" берётся в кавычки.
Я же не изобретаю умные "указатели": я спрашиваю - как программиста вынудить их использовать?
Ну т.е. мой движок отдаёт ему обычный указатель, но программист не может получить доступ к методам объекта - только через некий умный "указатель" или специальный интерфейс...
Но тут, в теме уже есть некоторые рекомендации, вроде "отдавать сразу смарт-указатель", возвращать "по значению" и т.п.
Умный указатель - это объект класса. Он должен быть удалён: автоматически ли или "вручную". Или не так?