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 10.01.2015 21:12

Цитата:

Ну, как мне кажется, кобеззза имел в виду не столько уязвимости и бажность, сколько кривизну АПИ.
Баги тоже есть, например уже 100 лет висит тикет, о багах в файл вотчерах под виндой, но воз и ныне там.

Цитата:

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

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

Цитата:

Тоже был расстроен отсутствием канваса.
Это только один пример, а почему нет стандартного нативного DOM парсера, почему нет поддержки веб-сокетов и т.д.

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

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

Safort 10.01.2015 21:20

kobezzza,
Цитата:

Баги тоже есть, например уже 100 лет висит тикет, о багах в файл вотчерах под виндой, но воз и ныне там.
А я то думал, что оно у меня как-то странно работало)

Цитата:

Нафиг промисы, если в ES7 есть (да и сейчас на генераторах тоже) фьючерсы, т.к. промисы - это теже колбеки с своими проблемами, но в профиль.
Ок. Просто я к тому, что эту, казалось бы, стабильную в плане API часть так же было бы не плохо улучшить.

kobezzza 10.01.2015 21:25

Цитата:

Ок. Просто я к тому, что эту, казалось бы, стабильную в плане API часть так же было бы не плохо улучшить.
Согласен. По хорошему нужно сесть и написать спеку для Ноды, где все как следует обдумать.

Safort 10.01.2015 21:31

kobezzza,
это было бы круто, но, как ты и сам понимаешь, многое осложняется тем, что тот же ES6 ещё изменяется, не говоря уже о ES7, по этому "самодельничать" нужно осторожно.

kobezzza 10.01.2015 21:39

Цитата:

Сообщение от Safort (Сообщение 350670)
kobezzza,
это было бы круто, но, как ты и сам понимаешь, многое осложняется тем, что тот же ES6 ещё изменяется, не говоря уже о ES7, по этому "самодельничать" нужно осторожно.

Ну, для начала можно интегрировать ES6 модули, т.к. они уже получили статус готовности, затем заимлементить частично HTML5: canvas, worker, dom и т.д.

Почему нельзя было пойти путем PhantomJS, т.е. взять не голый V8, а chromium (в мечтах: Servo + SpiderMonkey :) ).

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

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

Safort 10.01.2015 22:08

kobezzza,
согласен. + если мы говорим о Ноде, то было бы не плохо, чтобы они плотнее взаимодействовали с сообществом.

Gozar 10.01.2015 23:23

Цитата:

Сообщение от kobezzza
в ES7 есть фьючерсы

Ссылку можно?

cyber 10.01.2015 23:44

Цитата:

Сообщение от Gozar
Ссылку можно?

+1 Только хотел попросить ссылку:)

kobezzza 11.01.2015 00:08

https://github.com/lukehoban/ecmascr...nd-parallelism

async function getData() {
  var items = await fetchAsync('http://example.com/users');

  // Внутри async асинхронные операции похожи на синхронные,
  // поэтому можно юзать try-catch для отлова исключений
  console.log(items);
}


Такой подход оч удобен и используется во многих языках, например С# или Go.

Юзать уже можно сейчас (но на свой страх и риск, т.к. стандарт может поменяться в любой момент), т.к. подобных механизм делается на основе генераторов, а 6to5 поддерживает эту фичу.

http://6to5.org/repl/

А можно юзать co (поддерживается вплоть до ES5 с помощью полифилов)

Octane 11.01.2015 00:24

А ты уверен в терминологии?
В Python и C# Futures используется для параллельного запуска задач, мне кажется больше похоже на Promises (если не брать во внимание многопоточность), даже не так: Promises частный случай Futures получается.

async-await в ES7 это реализация на уровне языка следующей конструкции:
co(function * () {
    var result = yield request();
    result… //здесь можно использовать result;
});
подробнее про принцип работы co
будет:
async function () {
    var result = await request();
    result… //здесь можно использовать result;
}
await всегда ждет promise, сам yield не обладает никакой асинхронностью, это просто точка выхода, тут опять все завязано на промисах


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