но как бы то не было (по моим прикидкам) реализовать эту фичу гораздо проще, чем std библиотеки, и однозначно , это решение будет гораздо эффективнее...
Я бы не торопился с вводом такой фичи. Мне кажется введение этой фичи будет стратегической ошибкой, которая приведет как минимум к замедлению темпов разработки стандартной библиотеки для Оберона, а также приведет к повсеместному использованию динамической типизации в Обероне через JS-модуль, ведь использование функций JS будет смотреться в коде вполне нативно.
она у вас (динамическая типизация и нарушение правил интерпретации ЯВУ) И ТАК в наличии имеется более того (см. пример с консолью), смотрится это дело весьма "наитивно" хотя, никаких проверок на существование обьекта console не производится. Но плюсом является псевдо проверка засылаемых в обьект значений. С другой стороны нужно отдавать себе отчет, что эта реализация ЧИСТО платформенная, а одной из важнейших платформенных особенностей JS является взаимодействие с ОПРЕДЕЛЕННЫМИ (на уровне интерфейса) обьектами реализуемыми клиентским окружением (браузерами) и лишать возможность взаимодействия с ними напрямую имхо... это пендаль на эффективность решений получаемых с помощью Оберона.
Порядок появления фич имеет значение. Если эта фича появится после стандартной библиотеки, то возможно вреда она и не нанесет, а нанесет наоборот пользу.
Про JS.alert("hello") и ему подобных – в свете наличия JS.do(), я бы вообще это дело выпилил бы. Но поскольку сейчас у нас библиотеки ввода-вывода пока нет, а пользоваться JS.do("alert('hello world')") таки сложнее и не удобней чем JS.alert("hello world"), то пусть пока будет.
На счет эффективности - думаю что эффективность с биндингом или без, будет примерно одна и та же. Впрочем, чтобы утверждать однозначно, нужно провести тесты.
Поэтому предлагаю пока в этом плане ничего не трогать - пусть будет как есть сейчас. После того как компилятор дозреет до состояния когда на нем можно будет писать полноценные модули (там для этого осталось две баги пофиксить:
1,
2), в том числе модули-биндинги, вот тогда проведем тесты и посмотрим что получится. Ну и вообще, посмотрим что у нас выходит с библиотекой ввода-вывода и всяким разным стандартным иным.