The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск серверной JavaScript-платформы Node.js 0.10, opennews (??), 12-Мрт-13, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


24. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +/
Сообщение от exist (?), 12-Мрт-13, 10:51 
>> Писать сколько-нибудь сложную логику на callback'ах -- мучение.

С модулем "async" легко и непринужденно.

Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +3 +/
Сообщение от Филипп Филиппович (ok), 12-Мрт-13, 11:08 
Посмотрел на https://github.com/caolan/async/blob/master/test/test-async.js. По первому впечатлению, тоже не очень удобно. В Twisted это делается с использованием defer.deferredGenerator, при этом пишется обычный код (локальные переменные, ветвления и циклы используются без ограничений), и только точки разрыва оформляются как yield. К сожалению, в JS нет языкового механизма, чтобы, сохранив стек и все переменные во всех областях видимости по этому стеку, продолжить выполнение в другом месте, а впоследствии вернуться. Что, вообще говоря, жаль. Впрочем, справедливости ради скажу, что Twisted, конечно, тоже не образец простоты... Но после однократного освоения такие вещи там делаются на порядок проще.
Ответить | Правка | Наверх | Cообщить модератору

30. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +1 +/
Сообщение от exist (?), 12-Мрт-13, 11:35 
Дело привычки, не более :)
Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +/
Сообщение от Филипп Филиппович (ok), 12-Мрт-13, 19:10 
С этим трудно не согласиться. :-)

Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +1 +/
Сообщение от _Vitaly_ (ok), 12-Мрт-13, 13:03 
> Посмотрел на https://github.com/caolan/async/blob/master/test/test-async.js. По
> первому впечатлению, тоже не очень удобно. В Twisted это делается с
> использованием defer.deferredGenerator, при этом пишется обычный код (локальные переменные,
> ветвления и циклы используются без ограничений), и только точки разрыва оформляются
> как yield. К сожалению, в JS нет языкового механизма, чтобы, сохранив
> стек и все переменные во всех областях видимости по этому стеку,
> продолжить выполнение в другом месте, а впоследствии вернуться. Что, вообще говоря,
> жаль. Впрочем, справедливости ради скажу, что Twisted, конечно, тоже не образец
> простоты... Но после однократного освоения такие вещи там делаются на порядок
> проще.

Для ниасиляторов есть node-fibers. Но лично я таким советую php.

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

46. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +2 +/
Сообщение от Филипп Филиппович (ok), 12-Мрт-13, 19:01 
> Для ниасиляторов есть node-fibers. Но лично я таким советую php.

Проблема совсем не в том, что это трудно "осилить". Человек, который "осиливает" сопрограммы, заведомо "осилит" и callback'и. Для этого не требуется семи пядей во лбу, сложного-то ничего в них нет. Проблема в том, что получается громоздко.

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

Ответить | Правка | Наверх | Cообщить модератору

51. "Выпуск серверной JavaScript-платформы Node.js 0.10"  –2 +/
Сообщение от _Vitaly_ (ok), 12-Мрт-13, 19:41 
Многа букф ниачом. Пора уже вместо рассуждений хоть что-то попробовать.
Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +/
Сообщение от Филипп Филиппович (ok), 12-Мрт-13, 19:51 
А вот node-fibers дейтсвительно даёт код, похожий на Питоновские генераторы.
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

60. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +1 +/
Сообщение от anonymous (??), 12-Мрт-13, 21:59 
> Посмотрел на https://github.com/caolan/async/blob/master/test/test-async.js. По
> первому впечатлению, тоже не очень удобно. В Twisted это делается с
> использованием defer.deferredGenerator, при этом пишется обычный код (локальные переменные,
> ветвления и циклы используются без ограничений), и только точки разрыва оформляются
> как yield. К сожалению, в JS нет языкового механизма, чтобы, сохранив
> стек и все переменные во всех областях видимости по этому стеку,
> продолжить выполнение в другом месте, а впоследствии вернуться. Что, вообще говоря,
> жаль. Впрочем, справедливости ради скажу, что Twisted, конечно, тоже не образец
> простоты... Но после однократного освоения такие вещи там делаются на порядок
> проще.

Если уж зашла речь об асинхронно-событийной парадигме, то не стоит ли попробовать, к примеру, Tcl? Очень сильно развитая часть языка, при этом, использовать ее действительно просто. При этом, язык не столь экзотичен, как erlang (функциональное программирование все же многим людям непривычно). Если нравится использовать coroutine и yield - смотрите сразу на ветку 8.6, хотя я использую преимущественно 8.5 без yield и программировать все равно удобно.

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

65. "Выпуск серверной JavaScript-платформы Node.js 0.10"  –2 +/
Сообщение от Аноним (-), 13-Мрт-13, 04:08 
> Если уж зашла речь об асинхронно-событийной парадигме, то не стоит ли попробовать,
> к примеру, Tcl?

tcl умер ещё до перла. И синтаксис в нём ещё более отвратительный.

Ответить | Правка | Наверх | Cообщить модератору

70. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +2 +/
Сообщение от Michael Shigorinemail (ok), 13-Мрт-13, 17:43 
> tcl умер ещё до перла. И синтаксис в нём ещё более отвратительный.

Это разве что для чайников, которых устраивает каждые пару лет лопатить свои тонны эээ... прелестного кода.

И синтаксис -- всего лишь следствие подхода, если кому испортили мозги бей^Wимперативщиной, ну так ему любой иной подход будет непривычен.

Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +/
Сообщение от Филипп Филиппович (ok), 13-Мрт-13, 10:33 
Erlang, кстати, мне очень нравится и к некоторым задачам моей команды подходит идеально. И вообще есть мечта пописАть на функциональном языке. А в Erlang, помимо функциональной парадигмы, есть ещё и очень эффективный параллелизм с легковесными процессами, которые можно создавать тысячами.

К сожалению, трудно это намерение воплотить в жизнь по работе, т.к. не очень правильно писАть на том, что мало кто в компании знает, если это не даёт какого-то уж очень радикального выигрыша. А радикального не даёт, увы. Так уж вышло, что по работе мне вообще регулярно приходится убеждать людей не делать того, что самому хотелось бы (например, недавно один весьма уважаемый мною разработчик из другого отдела хотел прикрутить к проекту Haskell; это было бы очень красиво, но я его отговорил: ради той мелочи, которая была ему нужна, добавлять к проекту ещё один язык, тем более довольно "эзотерический", было бы не очень разумно). И, если уж поступать честно, то и самому приходится от подобных вывертов воздерживаться.

Ответить | Правка | К родителю #60 | Наверх | Cообщить модератору

71. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +/
Сообщение от Michael Shigorinemail (ok), 13-Мрт-13, 18:20 
> К сожалению, трудно это намерение воплотить в жизнь по работе,
> т.к. не очень правильно писАть на том, что мало кто в компании знает

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

Ответить | Правка | Наверх | Cообщить модератору

74. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +/
Сообщение от Филипп Филиппович (ok), 14-Мрт-13, 09:00 
Да, история была бы интересна. Попробую.
Ответить | Правка | Наверх | Cообщить модератору

73. "Выпуск серверной JavaScript-платформы Node.js 0.10"  +/
Сообщение от cyclope (??), 13-Мрт-13, 22:27 
или альтернатива - Step. только там нужно понимать, что делаете, ибо можно потерять контроль за потоком выполнения
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру