Автор Тема: Вопросы по OberonJS  (Прочитано 5788 раз)

valexey_u

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

(оригинал вопроса тут: http://forum.oberoncore.ru/viewtopic.php?f=30&t=5215
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Вопросы по OberonJS
« Ответ #1 : Сентябрь 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 жабаскриптовым?
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Вопросы по OberonJS
« Ответ #2 : Сентябрь 17, 2014, 08:19:22 pm »
    Цитата: Роман М.
    • Как провести грань между мелким скриптингом и приложением? Если можно, привести наглядные примеры.
    Вообще на js даже очень маленькое приложение быстро теряет какую бы то ни было структуру. Буквально на днях пытался отбиться "голым js" и уже через 200 строк почувствовал, что теряю контроль. В смысле если и дальше продолжать на js, то со всем арсеналом - тесты, библиотеки.

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

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

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

    По всем признакам должно очень хорошо ложиться в asm.js. Просто пока не до него.

    Romiras

    • Sr. Member
    • ****
    • Сообщений: 264
      • Просмотр профиля
      • Romiras Dev Lab
    Re: Вопросы по OberonJS
    « Ответ #3 : Сентябрь 17, 2014, 10:19:42 pm »
    Цитата: Роман М.
    Расскажите что-нибудь из опыта отладки заковыристых мест при одновременной работе с OberonJS и JavaScript.
    Чуть позже либо я, либо Влад что-нибудь расскажем :-) А какого рода заковыристые места интересуют? Баги самого компилятора oberonjs (а они там еще есть, кодогенерация не всегда вполне корректная на сложном коде) и отлов соответственно последствий в сгенерированном коде, или вопросы работы со внешним API жабаскриптовым?
    В данном случае я имел в виду при "взаимоотношении" между имеющейся кодовой базой на JS и новым кодом, написанным на OberonJS. Возможно, будут некоторые особенности из-за скомпилированного кода.

    vlad

    • Hero Member
    • *****
    • Сообщений: 1391
      • Просмотр профиля
    Re: Вопросы по OberonJS
    « Ответ #4 : Сентябрь 17, 2014, 11:54:42 pm »
    В данном случае я имел в виду при "взаимоотношении" между имеющейся кодовой базой на JS и новым кодом, написанным на OberonJS. Возможно, будут некоторые особенности из-за скомпилированного кода.

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

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

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