Oberon space

General Category => Общий раздел => Тема начата: valexey_u от Сентябрь 17, 2014, 07:31:51 pm

Название: Вопросы по OberonJS
Отправлено: valexey_u от Сентябрь 17, 2014, 07:31:51 pm
Цитата: Роман М.
  • Как провести грань между мелким скриптингом и приложением? Если можно, привести наглядные примеры.
  • Расскажите что-нибудь из опыта отладки заковыристых мест при одновременной работе с OberonJS и JavaScript.
  • Каковы преимущества использования OberonJS перед TypeScript касательно статической проверки типов.
  • Каковы перспективы использования Asm.js?

(оригинал вопроса тут: http://forum.oberoncore.ru/viewtopic.php?f=30&t=5215
Название: Re: Вопросы по OberonJS
Отправлено: valexey_u от Сентябрь 17, 2014, 07:39:46 pm
Цитата: Роман М.
Как провести грань между мелким скриптингом и приложением? Если можно, привести наглядные примеры.

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

Цитата: Роман М.
Расскажите что-нибудь из опыта отладки заковыристых мест при одновременной работе с OberonJS и JavaScript.
Чуть позже либо я, либо Влад что-нибудь расскажем :-) А какого рода заковыристые места интересуют? Баги самого компилятора oberonjs (а они там еще есть, кодогенерация не всегда вполне корректная на сложном коде) и отлов соответственно последствий в сгенерированном коде, или вопросы работы со внешним API жабаскриптовым?
Название: Re: Вопросы по OberonJS
Отправлено: vlad от Сентябрь 17, 2014, 08:19:22 pm
Цитата: Роман М.
  • Как провести грань между мелким скриптингом и приложением? Если можно, привести наглядные примеры.
Вообще на js даже очень маленькое приложение быстро теряет какую бы то ни было структуру. Буквально на днях пытался отбиться "голым js" и уже через 200 строк почувствовал, что теряю контроль. В смысле если и дальше продолжать на js, то со всем арсеналом - тесты, библиотеки.

Цитата: Роман М.
  • Расскажите что-нибудь из опыта отладки заковыристых мест при одновременной работе с OberonJS и JavaScript.
Неисследованная область - очень тяжело может быть.

Цитата: Роман М.
  • Каковы преимущества использования OberonJS перед TypeScript касательно статической проверки типов.
Не могу сказать - не пробовал TypeScript. С первого взгляда там все не так плохо (как в js) и на старте точно лучше, чем в oberonjs (за счет готовой инфраструктуры с поддержкой от M$).

Цитата: Роман М.
  • Каковы перспективы использования Asm.js?

По всем признакам должно очень хорошо ложиться в asm.js. Просто пока не до него.
Название: Re: Вопросы по OberonJS
Отправлено: Romiras от Сентябрь 17, 2014, 10:19:42 pm
Цитата: Роман М.
Расскажите что-нибудь из опыта отладки заковыристых мест при одновременной работе с OberonJS и JavaScript.
Чуть позже либо я, либо Влад что-нибудь расскажем :-) А какого рода заковыристые места интересуют? Баги самого компилятора oberonjs (а они там еще есть, кодогенерация не всегда вполне корректная на сложном коде) и отлов соответственно последствий в сгенерированном коде, или вопросы работы со внешним API жабаскриптовым?
В данном случае я имел в виду при "взаимоотношении" между имеющейся кодовой базой на JS и новым кодом, написанным на OberonJS. Возможно, будут некоторые особенности из-за скомпилированного кода.
Название: Re: Вопросы по OberonJS
Отправлено: vlad от Сентябрь 17, 2014, 11:54:42 pm
В данном случае я имел в виду при "взаимоотношении" между имеющейся кодовой базой на JS и новым кодом, написанным на OberonJS. Возможно, будут некоторые особенности из-за скомпилированного кода.

Посколько код сейчас компилируется в читабельный js (не asm.js), то сильно заковыристых проблем быть не должно. Самое страшное - из js придет непотребность с точки зрения оберона. Например:
PROCEDURE test*(i: INTEGER);

Будет вызвана из js как:
oberon.test("abc");

В каком месте после такого упадет (и упадет ли вообще) "обероновский" код - угадать/отладить может быть трудно (особенно без дебагера). В обратную сторону (из оберона звать js) - должно быть намного лучше, потому что js библиотеки более устойчивы к таким вещам (точнее там оно в порядке вещей).