Здравствуйте, Mamut, Вы писали:
M>Там нет потоков вообще. Там есть только setTimeout и прочая братия.
В ур setTimeout.
А на то что есть в ассемблере мне плевать.
M>Не сможет, потому что ur (ну или то, что в примерах) компилируется в JS.
Ну то есть как работает интерпритатор ерланга ты не знаешь.
M>Я боюсь тебя разочаровать, но этот параметр означает асинхронный вызов
Для ур это синхронный код.
А то что он переписывается в асинхронный это дело компилятора.
И на то как я пишу программу не влияет.
M>Ага. Аргументы закончились, внезпно надо восстанавливать контекст, который ты сам и забыл со своими примерами. «А вот это вообще делать вспотеешь: http://www.impredicative.com/ur/demo/threads.html», видимо, Гапертон написал...
Это была одна маленька строка из большого сообщения которое было написано по тому что гапертон не смог найти как же ур на события реагирует.
Кстати гапертон так и не повторил тот код.
Он написал совсем другой код.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, anonymous, Вы писали:
A>Зависит от обёртки. Ведь Ur тоже всего лишь обёртка.
Не зависит.
Разве что ты напишешь еще один ур вид в профиль.
Только это будет не библиотека для жабаскрипта, а полноценный язык с компилятором и прочими плюшками.
WH>>2)За тем чтобы компилятор ловил ошибки. Это ты вообще никакими обертками не сделаешь. A>Не нужно.
Повтори это еще тыщу раз. Может наконец убедишь себя в этом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
A>>Зависит от обёртки. Ведь Ur тоже всего лишь обёртка. WH>Не зависит. Разве что ты напишешь еще один ур вид в профиль. Только это будет не библиотека для жабаскрипта, а полноценный язык с компилятором и прочими плюшками.
Скорее это будет набор отлаженных решений типа knockuot.js и прочих. Возможно, слегка присыпанных сахаром.
WH>>>2)За тем чтобы компилятор ловил ошибки. Это ты вообще никакими обертками не сделаешь. A>>Не нужно. WH>Повтори это еще тыщу раз. Может наконец убедишь себя в этом.
Себя-то мне зачем убеждать? Я в этом на практике уже давно убедился.
M>>И? Берешь в руки любую очередь и тормозишь с обработкой сообщения. У тебя будет точно такая же проблема Банальный, блин, DOS. WH>Это не ДОС, а кратковременный всплеск. Обычная ситуация. WH>При использовании нормальной очереди рассосётся само за 100-200 миллисекунд.
WH>>>Чтобы любой всплеск нагрузки убивал систему. M>>Угу, так и запишем: не знает, и знать не хочет. WH>А нахрена мне линейный алгоритм, если я тоже самое могу сделать константным?
M>>Там нет потоков вообще. Там есть только setTimeout и прочая братия. WH>В ур setTimeout. WH>А на то что есть в ассемблере мне плевать.
Угу. То есть в итоге любой поток с длинным вычислением убъет программу к чертям. Тебя же проблемы ассемблера не волнуют, ага
M>>Не сможет, потому что ur (ну или то, что в примерах) компилируется в JS. WH>Ну то есть как работает интерпритатор ерланга ты не знаешь.
Кстати надеюсь, ты понимаешь, что ничто не мешает скомпилировать этот код так чтобы не было этой проблемы... вспомни, что делает ерланг и скажи, почему это не сможет сделать ур...
Если ur будет компилировать во что-то нечто erlang'а — пожалуйста. Пока он компилируется в JS — нереально (ну или нереально до того момента, пока он не начнет использовать workers для настоящих потоков).
M>>Я боюсь тебя разочаровать, но этот параметр означает асинхронный вызов WH>Для ур это синхронный код. WH>А то что он переписывается в асинхронный это дело компилятора. WH>И на то как я пишу программу не влияет.
Еще как влияет. Гапертон предложил тебе написать то, что влияет
, но этого не захотел. Видимо «настоящая многопоточность» в ur'е все же миф
M>>Ага. Аргументы закончились, внезпно надо восстанавливать контекст, который ты сам и забыл со своими примерами. «А вот это вообще делать вспотеешь: http://www.impredicative.com/ur/demo/threads.html», видимо, Гапертон написал... WH>Это была одна маленька строка из большого сообщения которое было написано по тому что гапертон не смог найти как же ур на события реагирует. WH>Кстати гапертон так и не повторил тот код. WH>Он написал совсем другой код.
Чем принципиально его код отличается от твоего?
Ах, да, я помню. Там еще было «замучаешься писать sleep в потоке на JS» при том, что JS, в который компилируется Ur, это умеет
Здравствуйте, anonymous, Вы писали:
A>Скорее это будет набор отлаженных решений типа knockuot.js и прочих. Возможно, слегка присыпанных сахаром.
Если не присыпать сахаром то ур будет короче.
А если присыпать то здравствуй компилятор.
Ну и присыпание сахаром knockuot.js тебе никак не поможет с серверной частью.
Да и вот это тебе никакой сахар не даст:
Ur/Web is Ur plus a special standard library and associated rules for parsing and optimization. Ur/Web supports construction of dynamic web applications backed by SQL databases. The signature of the standard library is such that well-typed Ur/Web programs "don't go wrong" in a very broad sense. Not only do they not crash during particular page generations, but they also may not:
Suffer from any kinds of code-injection attacks
Return invalid HTML
Contain dead intra-application links
Have mismatches between HTML forms and the fields expected by their handlers
Include client-side code that makes incorrect assumptions about the "AJAX"-style services that the remote web server provides
Attempt invalid SQL queries
Use improper marshaling or unmarshaling in communication with SQL databases or between browsers and web servers
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
A>>Скорее это будет набор отлаженных решений типа knockuot.js и прочих. Возможно, слегка присыпанных сахаром. WH>Если не присыпать сахаром то ур будет короче. WH>А если присыпать то здравствуй компилятор.
Угу. Про библиотеки Wolfhound все так же не слышал.
WH>Ну и присыпание сахаром knockuot.js тебе никак не поможет с серверной частью. WH>Да и вот это тебе никакой сахар не даст: WH>
skip
Это мне не даст, по сути, ни один язык, кроме java+gwt, так что мимо кассы.
Здравствуйте, WolfHound, Вы писали:
A>>Скорее это будет набор отлаженных решений типа knockuot.js и прочих. Возможно, слегка присыпанных сахаром. WH>Если не присыпать сахаром то ур будет короче. А если присыпать то здравствуй компилятор.
Да, можно присыпать так, что и Ur останется далеко позади, только незачем. А откуда тут взялся компилятор, вообще не понятно.
WH>Ну и присыпание сахаром knockuot.js тебе никак не поможет с серверной частью. Да и вот это тебе никакой сахар не даст:
Серверную часть я напишу отдельно, использовав для взаимодействия стандартный протокол, типа JSON-RPC. Тогда у меня будет один сервер и сколько угодно клиентов, не обязательно браузерных.
Здравствуйте, Mamut, Вы писали:
M>Для ликбеза по selective receive
Не нужен.
M>Что произойдет в случае , если в систему пойдут сообщения в таком порядке, например:
хъ M>в случае твоей линейной системы?
В моем случае будет канал с протоколом и сообщения просто физически не смогут прийти не в том порядке.
Компилятор настучит по голове задолго до того как это произойдет.
См сингулярити.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Mamut, Вы писали:
M>Если ur будет компилировать во что-то нечто erlang'а — пожалуйста. Пока он компилируется в JS — нереально (ну или нереально до того момента, пока он не начнет использовать workers для настоящих потоков).
Ты в самом деле думаешь что я не смогу переписать код в Continuation-passing style и прерывать поток каждые 1000 редукций?
M>Ах, да, я помню. Там еще было «замучаешься писать sleep в потоке на JS» при том, что JS, в который компилируется Ur, это умеет
Умеет он это по тому, что переписывает код в жуткую лапшу. Ну, ты ее сам видел. Есть желание самому такой писать?
Думаю что нет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Mamut, Вы писали:
M>Угу. Про библиотеки Wolfhound все так же не слышал.
Библиотеки не убирают весь мусор.
M>Это мне не даст, по сути, ни один язык, кроме java+gwt, так что мимо кассы.
Это тебе дает ур/веб.
Причем в гораздо более лучшем исполнении чем java+gwt.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, anonymous, Вы писали:
A>Да, можно присыпать так, что и Ur останется далеко позади, только незачем.
Это как?
Можешь показать лишний код?
A>А откуда тут взялся компилятор, вообще не понятно.
А чем ты сахарить собрался?
A>Серверную часть я напишу отдельно, использовав для взаимодействия стандартный протокол, типа JSON-RPC. Тогда у меня будет один сервер и сколько угодно клиентов, не обязательно браузерных.
Ну так ур по сети гоняет все тот же json.
Так что тут никаких проблем нет.
А экономия кода есть.
Например, не нужно два раза писать валидацию данных.
Про мелочи типа того что один и тот же код генерирует ХТМЛ и на сервере и на клиенте я вообще молчу.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
A>>Да, можно присыпать так, что и Ur останется далеко позади, только незачем. WH>Это как? Можешь показать лишний код?
Читал же, наверняка, тему про ультракороткий язык программирования. (:
A>>А откуда тут взялся компилятор, вообще не понятно. WH>А чем ты сахарить собрался?
Средствами JavaScript, но можно и транслировать, да.
A>>Серверную часть я напишу отдельно, использовав для взаимодействия стандартный протокол, типа JSON-RPC. Тогда у меня будет один сервер и сколько угодно клиентов, не обязательно браузерных. WH>Ну так ур по сети гоняет все тот же json. Так что тут никаких проблем нет. А экономия кода есть. Например, не нужно два раза писать валидацию данных.
Ну, таким уж точно никого не удивишь нынче.
WH>Про мелочи типа того что один и тот же код генерирует ХТМЛ и на сервере и на клиенте я вообще молчу.
Это если нужно под браузером только остаться. А если я хочу клиенты под Android, iPhone и Java2ME?
Здравствуйте, anonymous, Вы писали:
A>Читал же, наверняка, тему про ультракороткий язык программирования. (:
Ултракороткий язык всего навсего кривой ДСЛ для узкого класса задач.
Так что это не в тему.
A>Средствами JavaScript, но можно и транслировать, да.
Какими? Что-то knockuot.js они не помогли.
Куча мусора в коде.
A>Это если нужно под браузером только остаться. А если я хочу клиенты под Android, iPhone и Java2ME?
Не проблема. Я же сказал что ур по сети JSON гоняет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Ты в самом деле думаешь что я не смогу переписать код в Continuation-passing style и прерывать поток каждые 1000 редукций?
И на что только люди не готовы пойти ради удобства .
Здравствуйте, Mamut, Вы писали:
НС>>Ты с этим AXD уже лет пять носишься если не больше, вот только надежность пока что это больше вопрос приоритетов разработки, а не языка программирования. Время полностью верифицируемых языков пока не настало.
M>Можно и не AXD301, просто это один из самых ярких примеров.
Это называется читал, но не понял что написано.
M> Данные по другим баируются только на hearsay. Типа
M>
M>В конце Дэвида (http://klarna.com/) спросили: а с технической точки зрения как проявился переход на Erlang? Очень хорошо: 20 Java-машин были заменены 2-мя с Erlang'ом. За последние три года было 48 секунд простоя. Система неубиваема.
Здравствуйте, Mamut, Вы писали:
M>«Назови мне другой источник "надежности" ерланга.» — это было так сказано, в воздух? Я должен был сконцентрироваться только лишь на типизации?
Да! Потому что речь изначально шла о типизации, а не о ерланге.
НС>>Ты путаешь язык и рантайм. Все, что ты перечислил, относится ко второму.
M>И?
Чего, уже забыто все, с чего разговор начинался? Понятно.
Здравствуйте, Gaperton, Вы писали:
G>Я отвечал на зацитированное.
Удивительно вы с Мамутом быстро забыли про контекст разговора.
>> И правда, нафига в том же дотнете все эти TPL и Rx с асинками? Написал несколько простеньких хелперов с лямбдами поверх пула потоков и вуаля, все проблемы решены.
G>Учитывая, что ты при этом не теряешь отладчика в браузере — да, именно так.
Здравствуйте, WolfHound, Вы писали:
A>>Читал же, наверняка, тему про ультракороткий язык программирования. (: WH>Ултракороткий язык всего навсего кривой ДСЛ для узкого класса задач. Так что это не в тему.
А в веб-программировании, как правило, DSL достаточно.
A>>Средствами JavaScript, но можно и транслировать, да. WH>Какими? Что-то knockuot.js они не помогли. Куча мусора в коде.
Не заметил.
A>>Это если нужно под браузером только остаться. А если я хочу клиенты под Android, iPhone и Java2ME? WH>Не проблема. Я же сказал что ур по сети JSON гоняет.
Только он мне не нагенерирует клиентов, поэтому пользы от написания клиента и сервера на одном языке никакой.
Нужен
M>>Что произойдет в случае , если в систему пойдут сообщения в таком порядке, например: WH>хъ M>>в случае твоей линейной системы? WH>В моем случае будет канал с протоколом и сообщения просто физически не смогут прийти не в том порядке.
WH>Компилятор настучит по голове задолго до того как это произойдет. WH>См сингулярити.
Порядок показан правильный, сообщения приходят именно в этом порядке.