Re[12]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 11:24
Оценка:
Здравствуйте, Mamut, Вы писали:

M>1. Это — безусловно, возможность отловить ошибки в пдающих процессах и сделать им graceful рестарт


То есть ты подтверждаешь его слова.

M>2. Async message passing и отсутсвие разделяемых данных (и bottlenck'ов', с этим связанных)


Т.е. safety. Что, очевидно, связано с управляемостью, а не наличием/отсутствием статической типизации

M>3. Стабильность и устойчивость VM (в частности — в scheduler'е, gc и работе с сетью)


Которая написана совсем не на динамике.

M>Что-то мне подсказывает, что и первое и второе, и третье у всегда неявно подразумеваемого во всех твоих сообщениях Nemerle отсутствует, как класс.


Ты путаешь язык и рантайм. Все, что ты перечислил, относится ко второму.
Re[13]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 11:24
Оценка:
Здравствуйте, anonymous, Вы писали:

A>О, признаю, неправильно понял. Но всё же в случае Perl и Erlang не видно описанных стад


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

A>Может дело вовсе не в динамике?


Я никогда и не утверждал, что дело только в динамике.
Re[14]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 11:52
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>worker.html

G>
G><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
G>        "http://www.w3.org/TR/html4/loose.dtd">
G><html>
G><head>
G>    <title>Вообще вспотеешь это делать!</title>
G>    <script type="text/javascript">
G>        var worker1 = new Worker('worker.js');
G>        var worker2 = new Worker('worker.js');

G>        worker1.onmessage = worker2.onmessage = function handle(event) {
G>            document.write( event.data );
G>        };

G>        worker1.postMessage({ prefix: "A", delay: 5000 });
G>        worker2.postMessage({ prefix: "B", delay: 3000 });
G>    </script>
G></head>
G><body>
G></body>
G></html>
G>


G>worker.js:

G>
G>onmessage = function( a_event ){
G>    var count = 0;

G>    setInterval( function(){
G>        postMessage( a_event.data.prefix + ' ' + count++ );
G>    }, a_event.data.delay );
G>};
G>


G>


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

G>Куда уж легче-то.


И правда, нафига в том же дотнете все эти TPL и Rx с асинками? Написал несколько простеньких хелперов с лямбдами поверх пула потоков и вуаля, все проблемы решены.
Re[15]: html5
От: Gaperton http://gaperton.livejournal.com
Дата: 21.07.11 12:04
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

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


Ты тред читал? Это ответ на

WH>А вот это вообще делать вспотеешь: http://www.impredicative.com/ur/demo/threads.html


Там пример с тредами. Сделал. Не вспотел. Ибо элементарно. К преимуществам динамики или статики это вообще никакого отношения не имеет, в данном микропримере это не имеет значения.

У тебя еще чего-нибудь?
Re[16]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 12:05
Оценка:
Здравствуйте, Gaperton, Вы писали:

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


G>Ты тред читал? Это ответ на


Читал. Только какой смысл расползаться мыслью по древу?

G>У тебя еще чего-нибудь?


Ну там в сообщении немного больше было. Но не хочешь отвечать — я не настаиваю.
Re[17]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 21.07.11 12:17
Оценка: +1 :)
Здравствуйте, WolfHound, Вы писали:

G>>У меня создается два настоящих потока через HTML5 Web Worker API (Видишь вызов new Worker? Это оно). Внутри каждого из потоков я использую таймер.

WH>А я что сказал? Ты вызываешь функцию по таймеру.

То же самое происходит и в коде на Ur, даже более примитивно, поскольку настоящих процессов не создаётся.
Re[17]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 21.07.11 12:20
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

M>>Ты всерьез считаешь, что ur генерирует два настоящих потока в генерируемом им HTML и JS? Извини, но это — бред, с реальностью не имеющий ничего общего. Там точно так же генерируются setTimeout'ы и прочая. Только в них можно сломать голову.

WH>Ты пойми мне абсолютно пофигу что там генерируется. Мне важно, что есть в исходном коде. Языки высокого уровня для того и нужны чтобы на ассемблере не писать.

То есть берём любую обёртку на JavaScript, и задумываемся, зачем нам Ur? Кстати, на какой бы уровень ты не перешёл, не будет настоящих потоков.
Re[14]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 21.07.11 12:24
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

A>>О, признаю, неправильно понял. Но всё же в случае Perl и Erlang не видно описанных стад

НС>Ну, не может же быть вся динамика мегапопулярной.

PHP — потому что очень просто. Ruby — поотому что RoR. Python — потому что Django. При чём тут динамика? Могу допустить, что только в случае PHP она при чём.

A>>Может дело вовсе не в динамике?

НС>Я никогда и не утверждал, что дело только в динамике.

Я тоже это спрашивал.
Re[15]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 12:25
Оценка:
Здравствуйте, anonymous, Вы писали:

A>PHP — потому что очень просто. Ruby — поотому что RoR. Python — потому что Django. При чём тут динамика?


Пологая ... ну ты понял.
Re[17]: Гы, а Wolfhound — неосилятор, оказывается.
От: Mamut Швеция http://dmitriid.com
Дата: 21.07.11 12:29
Оценка:
M>>Но зачем вникать в код?
WH>Что-то
Автор: WolfHound
Дата: 21.07.11
мне подсказывает что я в него лучше тебя вник.


Итак, ты писал:

Ты вызываешь функцию по таймеру.
А в оригинальном коде создается два потока.


Что-то мне кажется, что ты противопроставил эти два предложения Ж-\


dmitriid.comGitHubLinkedIn
Re[16]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 21.07.11 12:31
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

A>>PHP — потому что очень просто. Ruby — поотому что RoR. Python — потому что Django. При чём тут динамика?

НС>Пологая ... ну ты понял.

Я понял, но по прежнему не вижу связи с динамикой.
Re[17]: html5
От: Ночной Смотрящий Россия  
Дата: 21.07.11 12:33
Оценка: -1
Здравствуйте, anonymous, Вы писали:

A>Я понял, но по прежнему не вижу связи с динамикой.


Ну не видишь и хорошо.
Re[17]: html5
От: Mamut Швеция http://dmitriid.com
Дата: 21.07.11 12:36
Оценка:
M>>Ты всерьез считаешь, что ur генерирует два настоящих потока в генерируемом им HTML и JS? Извини, но это — бред, с реальностью не имеющий ничего общего. Там точно так же генерируются setTimeout'ы и прочая. Только в них можно сломать голову.
WH>Ты пойми мне абсолютно пофигу что там генерируется.
WH>Мне важно, что есть в исходном коде.
WH>Языки высокого уровня для того и нужны чтобы на ассемблере не писать.



Тебе такое понятия, как «библиотека», знакомо?

Тут спокойно пишется то, что тебе надо в виде библиотеки.


dmitriid.comGitHubLinkedIn
Re[18]: html5
От: WolfHound  
Дата: 21.07.11 12:37
Оценка:
Здравствуйте, anonymous, Вы писали:

A>То же самое происходит и в коде на Ur, даже более примитивно, поскольку настоящих процессов не создаётся.

Там наблюдаются настоящие кооперативные потоки.
Из этого следует, что нам не нужно плясать с бубном, чтобы обновлять UI.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[18]: Гы, а Wolfhound — неосилятор, оказывается.
От: WolfHound  
Дата: 21.07.11 12:37
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Что-то мне кажется, что ты противопроставил эти два предложения Ж-\

Ты на самом деле не понимаешь чем поток отличается от таймера с калбеком?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[18]: html5
От: WolfHound  
Дата: 21.07.11 12:37
Оценка:
Здравствуйте, anonymous, Вы писали:

A>То есть берём любую обёртку на JavaScript, и задумываемся, зачем нам Ur? Кстати, на какой бы уровень ты не перешёл, не будет настоящих потоков.

1)За тем чтобы писать еще меньше кода.
Ибо все эти обертки заставляют писать кучу мусора.

2)За тем чтобы компилятор ловил ошибки.
Это ты вообще никакими обертками не сделаешь.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: html5
От: Mamut Швеция http://dmitriid.com
Дата: 21.07.11 12:38
Оценка:
M>>1. Это — безусловно, возможность отловить ошибки в пдающих процессах и сделать им graceful рестарт
WH>Быстренько перезапуститься и сделать вид что так и надо.

От того, что ты это повторяешь, менее бредом это не становится.

M>>2. Async message passing и отсутсвие разделяемых данных (и bottlenck'ов', с этим связанных)

WH>Типа этим можно когото удивить.
WH>И причем тут кстати типизация?

"Назови мне другой источник "надежности" ерланга." — это, видимо не я спрашивал, ага

M>>3. Стабильность и устойчивость VM (в частности — в scheduler'е, gc и работе с сетью)

WH>Ну да, конечно.
Автор: WolfHound
Дата: 21.07.11


Угу. Теперь приведи мне хоть что-то близкое к перформансу и фичам Erlang'а на твоем людимом Nemerle, и только тогда можно будет поговорить с тобой о надежности VM Erlang'а.


dmitriid.comGitHubLinkedIn
Re[18]: html5
От: WolfHound  
Дата: 21.07.11 12:40
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Тебе такое понятия, как «библиотека», знакомо?


M>Тут спокойно пишется то, что тебе надо в виде библиотеки.

Да правда чтоли?
Повтори код на UR в виде библиотеки.
fun main () =
    buf <- Buffer.create;
    let
        fun loop prefix delay =
            let
                fun loop' n =
                    Buffer.write buf (prefix ^ ": Message #" ^ show n);
                    sleep delay;//Вот тут у тебя будут большие проблемы
                    loop' (n + 1)
            in
                loop'
            end
    in
        return <xml><body onload={spawn (loop "A" 5000 0); spawn (loop "B" 3000 100)}>
          <dyn signal={Buffer.render buf}/>
        </body></xml>
    end
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: html5
От: Mamut Швеция http://dmitriid.com
Дата: 21.07.11 12:40
Оценка:
M>>1. Это — безусловно, возможность отловить ошибки в пдающих процессах и сделать им graceful рестарт

НС>То есть ты подтверждаешь его слова.


Только частично. Это — всего лишь один из пунктов.

M>>2. Async message passing и отсутсвие разделяемых данных (и bottlenck'ов', с этим связанных)


НС>Т.е. safety. Что, очевидно, связано с управляемостью, а не наличием/отсутствием статической типизации



Блин. еще один.

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

M>>3. Стабильность и устойчивость VM (в частности — в scheduler'е, gc и работе с сетью)


НС>Которая написана совсем не на динамике.


И? См. цитату выше.

M>>Что-то мне подсказывает, что и первое и второе, и третье у всегда неявно подразумеваемого во всех твоих сообщениях Nemerle отсутствует, как класс.


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


И?


dmitriid.comGitHubLinkedIn
Re[13]: html5
От: Mamut Швеция http://dmitriid.com
Дата: 21.07.11 12:42
Оценка:
G>>Девять девяток надежности по итогам эксплуатации AXD301 — это не надежность

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


Можно и не AXD301, просто это один из самых ярких примеров. Данные по другим баируются только на hearsay. Типа

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


Сейчас прибежит Wolfhound и будет рассказывать сказки про то, что на Немерле у него простоя вообще не было, ага.


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