Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   IO.JS серверная реализация JavaScript (https://javascript.ru/forum/node-js-io-js/52839-io-js-servernaya-realizaciya-javascript.html)

kobezzza 11.01.2015 00:29

Цитата:

А ты уверен в терминологии?
Дык, никто не мешает в await скормить массив задач, которые будут работать параллельно (ну во всяком случае такое оч легко сделать), но наверн ты прав, это ближе к промисам, но промисы которые done right :)

Вообще я взял термин из Java

http://doc.akka.io/docs/akka/2.0/java/futures.html

Future<Integer> f2 = f1.map(new Mapper<String, Integer>() {
  public Integer apply(String s) {
    return s.length();
  }
});
 
int result = Await.result(f2, Duration.create(1, SECONDS));


А вот C#

public async void Foo() {
    int length = await ExampleMethodAsync();
}


***

Главное отличие от промисов в том, что мы избавляемся от ненужных функций и можем использовать try-catch.

Цитата:

await всегда ждет promise, сам yield не обладает никакой асинхронностью, это просто точка выхода, тут опять все завязано на промисах
Это всё понятно, но yield позволяет создать прерывание в текущем контексте, что гораздо удобнее промисов на колбеках. Похожий принцип я использовал в Collection, для реализации потоков http://jsfiddle.net/kobezzza/hut2jhL9/

cyber 11.01.2015 00:33

Мне вот интересно что мешает в nodejs сделать нормальные потоки?

kobezzza 11.01.2015 00:34

Цитата:

Сообщение от cyber (Сообщение 350739)
Мне вот интересно что мешает в nodejs сделать нормальные потоки?

Религия :) Ну а вообще, смотря что считать нормальными потоками, ибо относительно Java в 90% языков нет нормальных потоков. Как по мне: добавили хоть какие бы.

Erolast 11.01.2015 08:25

Цитата:

После этого добавить необходимые для серверных задач вещи: стандартный http статик-сервер, поддержку блобов в post запросах, работа с куками и т.д.

Только вдумайся: mime-типы и таблица HTTP кодов - это 2 сторонних модуля, кто это проектировал Оо Или они считают, что это не нужно...
Так нода же не только для www. Я бы и http в сторонний модуль вынес - нафиг он в каком-нибудь сборщике/компиляторе/игровом сервере?

kobezzza 11.01.2015 09:18

Цитата:

Так нода же не только для www. Я бы и http в сторонний модуль вынес - нафиг он в каком-нибудь сборщике/компиляторе/игровом сервере?
Не в каждом приложении нужна математическая библиотека, предлагаешь тоже вынести?

Есть такое понятие стандартная библиотека, в которую должны входить все основные инструменты, с которыми может работать платформа. Посмотри, например, стандартную библиотеку Java - там несколько тысяч классов.

melky 11.01.2015 10:46

Цитата:

Сообщение от kobezzza
Servo + SpiderMonkey

эти слова да девелоперам в уши
Цитата:

Сообщение от kobezzza
Есть такое понятие стандартная библиотека, в которую должны входить все основные инструменты, с которыми может работать платформа. Посмотри, например, стандартную библиотеку Java - там несколько тысяч классов.

только хоть бы не получилось, как в php :)

kobezzza 11.01.2015 11:43

Цитата:

только хоть бы не получилось, как в php
Проблема PHP, что у него до сих пор нет спеки и общепринятых стандартов, а стандартная либа - это свалка в глобалспейсе с кастомными биндингами различных C-либ.

В JS, слава Богу, всё иначе.

Erolast 11.01.2015 11:46

Цитата:

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

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

kobezzza 11.01.2015 11:52

Цитата:

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

melky 11.01.2015 12:01

Цитата:

Сообщение от kobezzza (Сообщение 350776)
Проблема PHP, что у него до сих пор нет спеки и общепринятых стандартов, а стандартная либа - это свалка в глобалспейсе с кастомными биндингами различных C-либ.

В JS, слава Богу, всё иначе.

ну а у нас свалка в пакетах npm... зачем нужная хорошая STD, если можно засахарить API стандартных модулей и выложить это дело в npm? наверное, такой ход мыслей у иностранных коллег :write:

впринципе, это философия UNIX

проблема одна - избыточность и как следствие, тормоза. но последнего я пока не заметил, так что вангую в 2015 продолжение данного подхода*

*и очень надеюсь, что я ошибаюсь


Часовой пояс GMT +3, время: 22:54.