Если бы они были изолированы, мы бы не видели "Аддон заблокирован бла-бла"
Как раз таки если бы они НЕ были изолированы, мы бы этой надписи не видели, а просто бы падал весь интерфейс. Кстати, во времена TBC, если мне склероз не изменяет, так и было.
Видимо у нас разное представление о изоляции. Вот табы в браузере изолированные. Один сайт на другой никак не повлияет. Правильная изоляция это когда каждый аддон в своей песочнице и никак не может влиять на другие аддоны кроме как через специальным образом выставленные интерфейсы. Сейчас это не так, ты можешь залезать в любой аддон, в любое место интерфейса (некоторые места стандартного интерфейса защищены, чтобы запретить автоматизацию, но это не изоляция, это защита).
Но нет, один аддон, творящий дичь в OnUpdate легко утянет твой FPS на дно.
Ну так логично. Если горе-погромизд решил, что надо на каждый кадр чего-нить эдакое посчитать, то чем движок может помочь? Код переписать?
Движок может запускать каждый аддон в отдельном потоке и максимум, что сможет сделать аддон, это выжрать какой-то процент процессора, причём не мешая основному потоку. В этой концепции на каждый кадр, конечно, обработчик поставить не выйдет, но это никогда не надо.
А OnUpdate в вове, к сожалению, приходится использовать чаще, чем хочется. Опять же из-за убогого API. Если знаешь JavaScript, то в вове нет аналога банального setTimeout, т.е. если тебе хочется прописать реакцию через секунду от текущей (например надпись убрать с экрана), то единственный способ это писать обработчик OnUpdate и каждый кадр сравнивать, не пришло ли время её убрать.