Как провести грань между мелким скриптингом и приложением? Если можно, привести наглядные примеры.
Могу привести пару довольно наглядных (легко вычислимых) критериев:
1) если у вас вызовов внешнего API (например функций браузера) много больше, чем вызовов ваших собственных функций - то это скриптинг. И тут Оберон скорее всего проиграет. (аналог из физики - есть площадь поверхности тела/масса много больше объема)
2) Если при этом у вас код разбит на мелкие кусочки (равные одной небольшой функции), которые не связаны между собой общими структурами данных которые спроектировали вы (например если они связаны только состоянием DOM'a на страничке), то это мелкий скриптинг, и тут Оберон точно проиграет.
Каковы преимущества использования OberonJS перед TypeScript касательно статической проверки типов.
Преимущество простое - в Обероне статическая типизация обязательна, а в TypeScript она опциональна.
Каковы перспективы использования Asm.js?
Пока не ясны сами перспективы Asm.js - эту штуку только mozilla поддерживает. Но в принципе, да, это интересно было бы реализовать. Но не в ближайшей перспективе - в первую очередь сейчас делаем упор на стабильность и юзабельность решения. Оптимизация будет потом. И в первую очередь оптимизацией будет не кодогенерация в asm.js, а в переводе массивов Оберона в типизированные массивы js (для примитивных типов).
Расскажите что-нибудь из опыта отладки заковыристых мест при одновременной работе с OberonJS и JavaScript.
Чуть позже либо я, либо Влад что-нибудь расскажем :-) А какого рода заковыристые места интересуют? Баги самого компилятора oberonjs (а они там еще есть, кодогенерация не всегда вполне корректная на сложном коде) и отлов соответственно последствий в сгенерированном коде, или вопросы работы со внешним API жабаскриптовым?