Re[22]: html5
От: WolfHound  
Дата: 21.07.11 14:12
Оценка:
Здравствуйте, 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) А. Эйнштейн
Re[20]: html5
От: WolfHound  
Дата: 21.07.11 14:15
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Зависит от обёртки. Ведь Ur тоже всего лишь обёртка.

Не зависит.
Разве что ты напишешь еще один ур вид в профиль.
Только это будет не библиотека для жабаскрипта, а полноценный язык с компилятором и прочими плюшками.

WH>>2)За тем чтобы компилятор ловил ошибки. Это ты вообще никакими обертками не сделаешь.

A>Не нужно.
Повтори это еще тыщу раз. Может наконец убедишь себя в этом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[21]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 21.07.11 14:27
Оценка:
Здравствуйте, WolfHound, Вы писали:

A>>Зависит от обёртки. Ведь Ur тоже всего лишь обёртка.

WH>Не зависит. Разве что ты напишешь еще один ур вид в профиль. Только это будет не библиотека для жабаскрипта, а полноценный язык с компилятором и прочими плюшками.

Скорее это будет набор отлаженных решений типа knockuot.js и прочих. Возможно, слегка присыпанных сахаром.

WH>>>2)За тем чтобы компилятор ловил ошибки. Это ты вообще никакими обертками не сделаешь.

A>>Не нужно.
WH>Повтори это еще тыщу раз. Может наконец убедишь себя в этом.

Себя-то мне зачем убеждать? Я в этом на практике уже давно убедился.
Re[21]: html5
От: Mamut Швеция http://dmitriid.com
Дата: 21.07.11 14:33
Оценка:
M>>И? Берешь в руки любую очередь и тормозишь с обработкой сообщения. У тебя будет точно такая же проблема Банальный, блин, DOS.
WH>Это не ДОС, а кратковременный всплеск. Обычная ситуация.
WH>При использовании нормальной очереди рассосётся само за 100-200 миллисекунд.

WH>>>Чтобы любой всплеск нагрузки убивал систему.

M>>Угу, так и запишем: не знает, и знать не хочет.
WH>А нахрена мне линейный алгоритм, если я тоже самое могу сделать константным?

Для ликбеза по selective receive

http://ndpar.blogspot.com/2010/11/erlang-explained-selective-receive.html
http://erlang.2086793.n4.nabble.com/On-selective-receive-Re-eep-multiple-patterns-td2105959.html



Пример:


loop() ->
    receive
        message1 -> 
             loop2(),
             loop();
        message2 ->
             loop3(),
             loop();
        message3 ->
             ok
    end.


loop2() ->
    receive
        message21 -> 
             что-то делаем
             loop2();
        message22 ->
             ok
    end.

loop3() ->
    receive
        message31 -> 
             что-то делаем
             loop3();
        message32 ->
             ok
    end.


Что произойдет в случае , если в систему пойдут сообщения в таком порядке, например:

message1, message21, message3

или

message1, message21, message3, message31, message21, message32, message3


в случае твоей линейной системы?


dmitriid.comGitHubLinkedIn
Re[23]: html5
От: Mamut Швеция http://dmitriid.com
Дата: 21.07.11 14:39
Оценка:
M>>Там нет потоков вообще. Там есть только setTimeout и прочая братия.
WH>В ур setTimeout.
WH>А на то что есть в ассемблере мне плевать.

Угу. То есть в итоге любой поток с длинным вычислением убъет программу к чертям. Тебя же проблемы ассемблера не волнуют, ага


M>>Не сможет, потому что ur (ну или то, что в примерах) компилируется в JS.

WH>Ну то есть как работает интерпритатор ерланга ты не знаешь.

Кстати надеюсь, ты понимаешь, что ничто не мешает скомпилировать этот код так чтобы не было этой проблемы... вспомни, что делает ерланг и скажи, почему это не сможет сделать ур...


Если ur будет компилировать во что-то нечто erlang'а — пожалуйста. Пока он компилируется в JS — нереально (ну или нереально до того момента, пока он не начнет использовать workers для настоящих потоков).


M>>Я боюсь тебя разочаровать, но этот параметр означает асинхронный вызов

WH>Для ур это синхронный код.
WH>А то что он переписывается в асинхронный это дело компилятора.
WH>И на то как я пишу программу не влияет.

Еще как влияет. Гапертон предложил тебе написать то, что влияет
Автор: Gaperton
Дата: 21.07.11
, но этого не захотел. Видимо «настоящая многопоточность» в ur'е все же миф


M>>Ага. Аргументы закончились, внезпно надо восстанавливать контекст, который ты сам и забыл со своими примерами. «А вот это вообще делать вспотеешь: http://www.impredicative.com/ur/demo/threads.html», видимо, Гапертон написал...

WH>Это была одна маленька строка из большого сообщения которое было написано по тому что гапертон не смог найти как же ур на события реагирует.
WH>Кстати гапертон так и не повторил тот код.
WH>Он написал совсем другой код.

Чем принципиально его код отличается от твоего?

Ах, да, я помню. Там еще было «замучаешься писать sleep в потоке на JS» при том, что JS, в который компилируется Ur, это умеет


dmitriid.comGitHubLinkedIn
Re[22]: html5
От: WolfHound  
Дата: 21.07.11 14:39
Оценка:
Здравствуйте, 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) А. Эйнштейн
Re[23]: html5
От: Mamut Швеция http://dmitriid.com
Дата: 21.07.11 14:43
Оценка:
A>>Скорее это будет набор отлаженных решений типа knockuot.js и прочих. Возможно, слегка присыпанных сахаром.
WH>Если не присыпать сахаром то ур будет короче.
WH>А если присыпать то здравствуй компилятор.

Угу. Про библиотеки Wolfhound все так же не слышал.

WH>Ну и присыпание сахаром knockuot.js тебе никак не поможет с серверной частью.

WH>Да и вот это тебе никакой сахар не даст:
WH>

skip


Это мне не даст, по сути, ни один язык, кроме java+gwt, так что мимо кассы.


dmitriid.comGitHubLinkedIn
Re[23]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 21.07.11 14:46
Оценка:
Здравствуйте, WolfHound, Вы писали:

A>>Скорее это будет набор отлаженных решений типа knockuot.js и прочих. Возможно, слегка присыпанных сахаром.

WH>Если не присыпать сахаром то ур будет короче. А если присыпать то здравствуй компилятор.

Да, можно присыпать так, что и Ur останется далеко позади, только незачем. А откуда тут взялся компилятор, вообще не понятно.

WH>Ну и присыпание сахаром knockuot.js тебе никак не поможет с серверной частью. Да и вот это тебе никакой сахар не даст:


Серверную часть я напишу отдельно, использовав для взаимодействия стандартный протокол, типа JSON-RPC. Тогда у меня будет один сервер и сколько угодно клиентов, не обязательно браузерных.
Re[22]: html5
От: WolfHound  
Дата: 21.07.11 14:48
Оценка: :)
Здравствуйте, Mamut, Вы писали:

M>Для ликбеза по selective receive

Не нужен.

M>Что произойдет в случае , если в систему пойдут сообщения в таком порядке, например:

хъ
M>в случае твоей линейной системы?
В моем случае будет канал с протоколом и сообщения просто физически не смогут прийти не в том порядке.
Компилятор настучит по голове задолго до того как это произойдет.
См сингулярити.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[24]: html5
От: WolfHound  
Дата: 21.07.11 14:52
Оценка:
Здравствуйте, 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) А. Эйнштейн
Re[24]: html5
От: WolfHound  
Дата: 21.07.11 14:53
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Угу. Про библиотеки Wolfhound все так же не слышал.

Библиотеки не убирают весь мусор.

M>Это мне не даст, по сути, ни один язык, кроме java+gwt, так что мимо кассы.

Это тебе дает ур/веб.
Причем в гораздо более лучшем исполнении чем java+gwt.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[24]: html5
От: WolfHound  
Дата: 21.07.11 14:58
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Да, можно присыпать так, что и Ur останется далеко позади, только незачем.

Это как?
Можешь показать лишний код?

A>А откуда тут взялся компилятор, вообще не понятно.

А чем ты сахарить собрался?

A>Серверную часть я напишу отдельно, использовав для взаимодействия стандартный протокол, типа JSON-RPC. Тогда у меня будет один сервер и сколько угодно клиентов, не обязательно браузерных.

Ну так ур по сети гоняет все тот же json.
Так что тут никаких проблем нет.
А экономия кода есть.
Например, не нужно два раза писать валидацию данных.
Про мелочи типа того что один и тот же код генерирует ХТМЛ и на сервере и на клиенте я вообще молчу.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[25]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 21.07.11 15:32
Оценка:
Здравствуйте, WolfHound, Вы писали:

A>>Да, можно присыпать так, что и Ur останется далеко позади, только незачем.

WH>Это как? Можешь показать лишний код?

Читал же, наверняка, тему про ультракороткий язык программирования. (:

A>>А откуда тут взялся компилятор, вообще не понятно.

WH>А чем ты сахарить собрался?

Средствами JavaScript, но можно и транслировать, да.

A>>Серверную часть я напишу отдельно, использовав для взаимодействия стандартный протокол, типа JSON-RPC. Тогда у меня будет один сервер и сколько угодно клиентов, не обязательно браузерных.

WH>Ну так ур по сети гоняет все тот же json. Так что тут никаких проблем нет. А экономия кода есть. Например, не нужно два раза писать валидацию данных.

Ну, таким уж точно никого не удивишь нынче.

WH>Про мелочи типа того что один и тот же код генерирует ХТМЛ и на сервере и на клиенте я вообще молчу.


Это если нужно под браузером только остаться. А если я хочу клиенты под Android, iPhone и Java2ME?
Re[26]: html5
От: WolfHound  
Дата: 21.07.11 15:38
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Читал же, наверняка, тему про ультракороткий язык программирования. (:

Ултракороткий язык всего навсего кривой ДСЛ для узкого класса задач.
Так что это не в тему.

A>Средствами JavaScript, но можно и транслировать, да.

Какими? Что-то knockuot.js они не помогли.
Куча мусора в коде.

A>Это если нужно под браузером только остаться. А если я хочу клиенты под Android, iPhone и Java2ME?

Не проблема. Я же сказал что ур по сети JSON гоняет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[25]: html5
От: Gaperton http://gaperton.livejournal.com
Дата: 21.07.11 16:11
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Ты в самом деле думаешь что я не смогу переписать код в Continuation-passing style и прерывать поток каждые 1000 редукций?


И на что только люди не готовы пойти ради удобства .
Re[14]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 16:29
Оценка:
Здравствуйте, Mamut, Вы писали:

НС>>Ты с этим AXD уже лет пять носишься если не больше, вот только надежность пока что это больше вопрос приоритетов разработки, а не языка программирования. Время полностью верифицируемых языков пока не настало.


M>Можно и не AXD301, просто это один из самых ярких примеров.


Это называется читал, но не понял что написано.

M> Данные по другим баируются только на hearsay. Типа


M>

M>В конце Дэвида (http://klarna.com/) спросили: а с технической точки зрения как проявился переход на Erlang? Очень хорошо: 20 Java-машин были заменены 2-мя с Erlang'ом. За последние три года было 48 секунд простоя. Система неубиваема.


Маркетинговый булшит.
Re[14]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 16:29
Оценка:
Здравствуйте, Mamut, Вы писали:

M>«Назови мне другой источник "надежности" ерланга.» — это было так сказано, в воздух? Я должен был сконцентрироваться только лишь на типизации?


Да! Потому что речь изначально шла о типизации, а не о ерланге.

НС>>Ты путаешь язык и рантайм. Все, что ты перечислил, относится ко второму.


M>И?


Чего, уже забыто все, с чего разговор начинался? Понятно.
Re[18]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 16:29
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Я отвечал на зацитированное.


Удивительно вы с Мамутом быстро забыли про контекст разговора.

>> И правда, нафига в том же дотнете все эти TPL и Rx с асинками? Написал несколько простеньких хелперов с лямбдами поверх пула потоков и вуаля, все проблемы решены.


G>Учитывая, что ты при этом не теряешь отладчика в браузере — да, именно так.


А казалось юы, при чем тут статическая типизация
Re[27]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 22.07.11 00:30
Оценка:
Здравствуйте, WolfHound, Вы писали:

A>>Читал же, наверняка, тему про ультракороткий язык программирования. (:

WH>Ултракороткий язык всего навсего кривой ДСЛ для узкого класса задач. Так что это не в тему.

А в веб-программировании, как правило, DSL достаточно.

A>>Средствами JavaScript, но можно и транслировать, да.

WH>Какими? Что-то knockuot.js они не помогли. Куча мусора в коде.

Не заметил.

A>>Это если нужно под браузером только остаться. А если я хочу клиенты под Android, iPhone и Java2ME?

WH>Не проблема. Я же сказал что ур по сети JSON гоняет.

Только он мне не нагенерирует клиентов, поэтому пользы от написания клиента и сервера на одном языке никакой.
Re[23]: html5
От: Mamut Швеция http://dmitriid.com
Дата: 22.07.11 07:16
Оценка:
M>>Для ликбеза по selective receive
WH>Не нужен.

Нужен

M>>Что произойдет в случае , если в систему пойдут сообщения в таком порядке, например:

WH>хъ
M>>в случае твоей линейной системы?
WH>В моем случае будет канал с протоколом и сообщения просто физически не смогут прийти не в том порядке.

WH>Компилятор настучит по голове задолго до того как это произойдет.

WH>См сингулярити.


Порядок показан правильный, сообщения приходят именно в этом порядке.


dmitriid.comGitHubLinkedIn
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.