В ОС с ортогональной персистентностью и виртуальной машиной такая модель безопасности реализуется сама собой. Но чтобы от нее был толк, нужно отсутствие глобальной барахолки, где каждый может найти каждого. В идеале надо вообще убрать из языка возможность создавать глобальные/статические переменные, а API ядра предоставлять в виде интерфейса, а не статических функций.
Круто! А можно узнать больше деталей об Design vision? Собираетесь поддерживать capability-based security или будет глобально доступное пространство имен? Граф объектов будет сплошной или разделенный на кластеры/домены/SIP-ы?
Странно что программисты используют разделение данных и представления в своих продуктах, но не используют в своих инструментах. ИМХО, следить за отступами, пробельчиками, скобочками и др. вещами не влияющими на семантику кода должна IDE. Заставлять человека следить за этим — очень нерациональная трата ресурсов. Код должен хранить в репозитории в некотором «нормализированном» стиле, а показываться при непосредственной работе в соответствии с индивидуальными предпочтениями конкретного программиста.
Если поток Б выполняет метод obj.DoSomething() то у него всегда есть ссылка на obj — это указатель this/self, который передается через регистры или стек — эту ссылку забрать из другого потока не получится (ну разве что убив поток средствами ОС).
А зачем синхронизировать деструкторы? Я не знаток Делфи, но насколько я понимаю роль деструкторов в C++, деструктор должен вызываться только тогда, когда на объект не осталось больше ссылок. Синхронизация не защитит от обращения к разрушенному объекту, а обращение к разрушенному объекту из любого потока — это баг.
IDE подсказывает параметры при написании нового кода. Когда читаешь уже написанный код IDE ничего не подсказывает. Кроме того, я больше кода читаю на ревью в браузере чем в IDE (но это конечно субъективный показатель).
А можно услышать более развернутый отзыв о предложенном синтаксис? Чем он плох кроме того, что, само собой, непривычен?
Добавьте плз свое творение в список реализаций на json-schema.org/implementations.html.
Насколько я понял, объект схемы из JSON-описания создать нельзя, да?
> 3. Virtual machine for memory protection and security.
Какую VM собираетесь использовать — JVM, CLI или что-то другое?
А можно услышать более развернутый отзыв о предложенном синтаксис? Чем он плох кроме того, что, само собой, непривычен?
Баг в том что по правилам С++ вызывается foo и в результате baz возвращает ссылку на временный объект.
4 — это undefined behaviour