Автор Тема: Online компилятор Oberon-07/11.  (Прочитано 164992 раз)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #165 : Август 29, 2013, 06:57:46 pm »
Чем больше я думаю о JS.do, тем больше убеждаюсь во мнении, что именно так и есть правильно.
За остальных не скажу, но я считаю, что - да, это очень хорошее решение на техническом уровне. Но есть ещё и человеческий фактор.
Про человеческий фактор в данном случае я уже все что хотел, сказал. Это проблема не может решаться на уровне языка. Это чисто организационная проблема.

Ссылки по теме:
http://mymaster.livejournal.com/388437.html

Ну и до кучи: http://mymaster.livejournal.com/320114.html
Y = λf.(λx.f (x x)) (λx.f (x x))

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #166 : Август 29, 2013, 07:00:17 pm »
Как минимум мне и Владу.
У вас есть совместный проект?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #167 : Август 29, 2013, 07:09:02 pm »
Как минимум мне и Владу.
У вас есть совместный проект?
Совместный проект - развитие OberonJS. Цели OberonJS как академические так и прикладные.

Прикладные цели у нас схожи - и мне и ему, в том числе по работе, приходится сталкиваться с необходимостью писать приложения под js-среду (это не обязательно браузер, это и сервера тоже), js как язык, штука довольно мерзкая при рефакторинге, поэтому нам нужен статически типизированный язык, чтобы использовать его там, где это уместно. То есть именно для приложений в js-среде, а не скриптов.

Вообще, по моему, мы уже про это писали где-то в этой теме.
Y = λf.(λx.f (x x)) (λx.f (x x))

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #168 : Август 29, 2013, 10:06:26 pm »
В таком случае, это не "мы".

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #169 : Август 29, 2013, 10:45:50 pm »
В таком случае, это не "мы".
Предлагаешь при каждом упоминании писать не "мы" а полностью перечислять тех кто заинтересован, что нас связывает, и какие перед нами задачи? :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #170 : Август 30, 2013, 02:11:27 pm »
Ну вот, благодаря JS.do я начал активней пользоваться компилятором, в результате обнаружил горку багов, что не может не радовать :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #171 : Август 30, 2013, 02:32:27 pm »
... а полностью перечислять тех кто заинтересован...
Просто, в ваших рассуждениях те, кто заинтересован, кому удобно и кто будет использовать - это один и тот же человек.

То есть, это язык для проектов, где будет один разработчик.

Ну, вот вы закончите oberonjs, и он не будет содержать багов. Потом вы покажете его кому-нибудь, и среди любопытствующих всегда найдётся такой человек, который кажет, что это хуже, чем js. Аргументирует он это тем, что js "гибкий" (и прочая пурга), а испортить всю программу, полученную из вашего компилятора, можно простой js-вставкой, которая поломает всю программу. И большинство тех, кто прочтёт этот диалог, запомнят эту фразу. И в силу взглядов на js как на язык они решат, что от oberonjs толку нет.

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #172 : Август 30, 2013, 02:39:09 pm »
Причём, я не пытаюсь сказать, что JS.do - это вещь, которой не надо пользоваться, просто это вещь, которой пользоваться разумно сможет далеко не каждый. И проблема даже не в этом, а в том, что в команде страдать от этой неразумности по большей части будет именно тот, кому Оберон был нужен. Тому, кто пишет как курица лапой, будет, в общем-то, по барабану.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #173 : Август 30, 2013, 02:58:49 pm »
Причём, я не пытаюсь сказать, что JS.do - это вещь, которой не надо пользоваться, просто это вещь, которой пользоваться разумно сможет далеко не каждый. И проблема даже не в этом, а в том, что в команде страдать от этой неразумности по большей части будет именно тот, кому Оберон был нужен. Тому, кто пишет как курица лапой, будет, в общем-то, по барабану.
А зачем они тогда вообще Оберон выбрали для проекта? :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #174 : Август 30, 2013, 03:10:05 pm »
... а полностью перечислять тех кто заинтересован...
Просто, в ваших рассуждениях те, кто заинтересован, кому удобно и кто будет использовать - это один и тот же человек.

То есть, это язык для проектов, где будет один разработчик.

Ну, вот вы закончите oberonjs, и он не будет содержать багов. Потом вы покажете его кому-нибудь, и среди любопытствующих всегда найдётся такой человек, который кажет, что это хуже, чем js. Аргументирует он это тем, что js "гибкий" (и прочая пурга), а испортить всю программу, полученную из вашего компилятора, можно простой js-вставкой, которая поломает всю программу. И большинство тех, кто прочтёт этот диалог, запомнят эту фразу. И в силу взглядов на js как на язык они решат, что от oberonjs толку нет.
А испортить программу всю на C# можно банальным unsafe-модулем (c адресной арифметикой там и так далее - оно там по сути разновидность Си реализует), а стройную программу на С++ можно легко разрушить ассемблерной вставкой (так, что там совсем крышу снесет). Да и в AO и ББ тоже асм можно втыкать.

При этом аргументация может быть ровно та же - асм (особенно макроасм) гибче и мощнее (больше возможностей) чем С++, или там АО.

Короче, волков бояться - в лес не ходить. Продавать oberonjs мы вроде бы не планируем, мы просто делаем инструмент for fun и для собственного удобства.

А показывать и доказывать его преимущества и фичи нужно не на пальцах, а демонстрируя что-то написанное на нем.

И еще раз - oberon он не для тех кто нежно любит js и считает его самым великолепным ЯП в мире. Если кто-то в проекте будет писать код состоящий на 10% из оберона, а остальное на js - отлично, значит оберон уже пригодился, ибо раньше этот код писался бы на 100% на js.

Люди всегда, или почти всегда, обучаются подражая. Для того, чтобы новые люди писали правильно на Oberon (под js-среду) нужно подать им пример, то есть должна быть правильно написанная стандартная либа, среда разработки и по крайней мере примеры приложений. И тогда JS.do будет использоваться либо js-никами которые тыкают палочкой свой первый статически типизированный язык, либо только тогда когда это действительно необходимо.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #175 : Август 30, 2013, 03:18:56 pm »
Да, поэтому таки предлагаю немного забыть про JS.do, и решить что у нас с coding style. Отступы, именования и так далее. Потому как сразу после того, как будут пофикшены текущие баги (и если не появятся новые не менее суровые) сразу начнется написание стандартной либы. Хотелось бы писать её сразу в едином стиле. Вот.
Y = λf.(λx.f (x x)) (λx.f (x x))

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #176 : Август 30, 2013, 03:35:24 pm »
А зачем они тогда вообще Оберон выбрали для проекта? :-)
А почему сразу "они выбрали"? Могло так статься (компании заведено), что выбирает тим.лид. Или проект начинался в одиночку, а потом потребовалось расширить "команду".

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #177 : Август 30, 2013, 03:46:58 pm »
А зачем они тогда вообще Оберон выбрали для проекта? :-)
А почему сразу "они выбрали"? Могло так статься (компании заведено), что выбирает тим.лид. Или проект начинался в одиночку, а потом потребовалось расширить "команду".
Плохую команду (в которой не могут договориться даже о такой элементарщине) язык не поможет. Ну а инструментально то элементарно можно запретить JS.do, на уровне IDE. А еще можно запретить на уровне git'a (или какую там они систему контроля версий используют?) - банально прекоммит хук пишется и все. Более того, там можно запретить использовать JS.do одним, а разрешить другим (типо вот Вася у нас пишет биндинги - и соответственно только он может JS.do использовать). Хотя это, опять таки, будет попытка технического решения организационной проблемы, что не есть правильно. Но это все равно лучше, чем корячить на уровне языка или компилятора.
Y = λf.(λx.f (x x)) (λx.f (x x))

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #178 : Август 30, 2013, 03:47:39 pm »
...А испортить программу всю на C# можно ... на С++ можно...
Программист на C# не станет этого делать потому, что писать на другом языке менее удобно, тяжелее. А плюсы такого подхода нивелируются его минусами. Поэтому, программист станет прибегать к нему в крайних случаях.
Вряд ли веб-программист будет стоять в таких же условиях. Те, кто использует js и плюётся, здесь не рассматриваются: были бы такими все - и я даже и не начинал бы. А вот с остальными проблема. Приходят они в новый проект, а там oberonjs. В котором даже цикла с брейком нет! Или процедура возвращает данные последним оператором (никаких return из середины цикла или if-а)! Так нивапрос же. Зато есть JS.do. Долго ли они думать будут?

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Online компилятор Oberon-07/11.
« Ответ #179 : Август 30, 2013, 03:49:32 pm »
...то элементарно можно запретить JS.do, на уровне IDE. А еще можно запретить на уровне git'a...
Ну, разве что так...