All streams
Search
Write a publication
Pull to refresh
45
0
spiritedflow @spiritedflow

User

Send message
> Но это всё равно не лишает Node.js уникальности — один код на клиенте и сервере.

Тут не буду спорить, не смотря на пример clojure + clojurescript ниже. Надо было так с самого начала, а не пытаться представить ассинхронность как что-то уникальное и инновационное, когда лет 20 назад мы все вешали колбеки на int 21h, а про потоки и локи даже не слышали.

P.S.: Ваш пример не тоже самое, что async.waterfall насколько я помню. В async, если step1() вернёт ошибку, то step2() уже не будет вызван. У вас даже err первым аргументом написан, но обработки нет.
> Какие у вас претензии к движку?

Не у меня. Это вы так сформулировали первый миф: «Node.js — это то, что он не стабилен и запросы иногда теряются».

> На каком языке предлагаете писать? Во сколько раз он быстрее Си?

Что же вы так реагируете :) Я не наезжаю на ноду, просто критикую ваш стиль разрушителя мифов. Вам не кажется забавным, что во всём абзаце, который должен доказать, что нода быстра, сказано только то, что нода медленнее Си в 3-5 раз, и что там можно поднять миллион соединений (а это вообще не про скорость, а про память).

> Примеры ассинхронных конкурентов node.js в студию!

Вашим «уникальным» преимуществом, а именно: «обработка одного запроса не ждёт, пока обработается другой», обладает любой concurrent код, в том числе и многопоточные решения. Было бы странно, если бы не обладали, ведь это и есть смысл concurrent programming :)

> В данном случае «умелые руки» — это руки среднего программиста, имеющего некоторый опыт с node.js (месяц — два).

О да, конечно. Если использовать async.* и другие хитрости, для борьбы с колбеками, возможно такой код станет более или менее прост и красив, по сравнению с другом node-кодом, который эти фокусы не использует. Но стоит только выйти за рамки ноды, посмотреть, как это можно было бы сделать у конкурентов, и всё встанет на свои места. Например два ассинхронных куска кода.
C#
var1 = await func1(some_const)
var2 = await func2(some_const + var1)

и node:
async.waterfall([
  function step1(done) {
     func1(some_const, done);
  },
  function step2(var1, done) {
     func2(some_const + var1, done);
  }
], final_callback);

Кто же вас так учил мифы оспаривать ;)

> Главный миф по поводу Node.js — это то, что он не стабилен и запросы иногда теряются. С появлением cluster и domain это больше не актуально.

Претензии к движку решаются с помощью двух модулей?

> Другой миф — Node.js медленный. Тут можно было бы сказать что v8 всего в 3-5 раз медленее Си

Оспариваете медленность утверждая, что он в 3-5 раз медленнее? :)

> Третий миф — это неминуемый Callback Hell. Ассинхронность Node.js — это его идеология и даёт ему уникальное преимущество: новому запросу не нужно ждать пока обработаются все запросы до него. Писать код в ассинхронной среде не совсем тоже самое, что в синхронной, это требует привычки. В умелых руках Node.js код — красив и прозрачен.

Кроме ассинхронных колбеков есть ещё пачка способов, как написать concurrent систему, когда одному коду не нужно ждать другой чтобы выполниться. Очень интересный выбор «уникального преимущества» :)

Ну а про умелые руки вообще хорошо. «Умелые руки» — это такие фантастические руки в которых и dll-ки не конфликтуют, и убунту на 6 версий обновляется сама и с первого раза, и КДЕ собирается под винду без ошибок. Только где бы их найти и сколько они стоят?

> Четвертый миф — это то, что JavaScript является не очень хорошим языком. Дуглас Крокфорд позволил себе не согласиться с этим утверждением.

Так себе опровержение. Если поискать, думаю можно устроить полноценный футбольный матч между именитыми сторонниками и противниками JS.
Вариант 1. Просто посчитали. Например, узнали сколько платит тот же Facebook и уменьшили награду в той же пропорции, в какой популярность Яху меньше популярности Фейсбука ;)

Варант 2. Это стратегическое решение. Специально выбрали смешную цену, чтобы не привлекать ещё больше хакеров к своему сервису. Чинить, наверное, всё равно не собираются, значит чем меньше людей ищут, тем лучше.

Всегда интересно было, почему минусуют за то, что кто-то чего-то не знает. Минус троллю или хаму понятен. Но за ошибку, сказанную нормально, без оскорблений и наездов? Вы сами никогда не ошибаетесь? Вы знаете всё?
Подтяжки должны были помочь.
В любой тюрьме кого ни спроси, все сидят из-за ошибки (с их слов): ни в ту квартиру забрался, помутнение разума, подговорили, ввели в заблуждение. Часть там сидит действительно из-за ошибки. Например, практически все ДТП произошли из-за ошибок водителей. Всех освободить?

Кроме того речь идёт не о СМИ, а о вирусной клевете в инете. Обязать всех, кто участвовал в распространении клеветы опубликовать опровержение?
По каким соображениям человек, который попытался испортить жизнь другому человеку клеветой, не должен нести ответственность?
И что там в подробностях? Того, кто начал клевету наказали?
Сидишь работаешь, никого не трогаешь, а тут раз какой-то мудак из ЖЖ нашел апартаменты в Майями на твоего тёску, ничего не проверил, ни в чём не убедился и побежал сразу публиковать с твоей фоткой.

И вот через день твоя фотка рядом с незнакомым домом на всех полосах, тебя уволили (просто чтобы сохранить репутацию, а не за дело), на твоего ребёнка плюют в школе, соседи мажут говном твою дверь.

Давайте разделять вред от неадекватной власти в нашей стране и вред от журналистики мнений. И то и то надо давить.
Журналиста всегда можно было нагнуть за клевету. Сейчас блоггеры подтягиваются по влиятельности к журналистам, а чем больше власти, тем больше ответственности. Вполне логичным будет, если и на них расширят ответственность за клевету.

Вот ещё о журналистике мнений и журналистике фактов: www.youtube.com/watch?v=P0X42gwEYM4

Если не заморачиваться на адекватности срока, адекватности тех кто решает, клевета это или нет, и вообще на российских реалиях, журналистику мнений надо давить. И не только наказывать тех, кто умышленно звездит, но и учить критическому мышлению всех остальных, кто им верит.

Увижу ли я когда-нибудь на первом курсы критического мышления и манипуляции мнений с наглядными примерами из новостей на первом? :)
База пользователей тоже будет своя? Выход в скайп, xmpp, и прочее будет?
1. Не вижу проблемы. Любой клиент должен ждать, что какой-то пакет не дойдёт и соединение разорвётся в любой момент. Если этого нет — то бага клиента. Если что-то должно дойти гарантировано, значит надо подтверждить сообщением о доставке.

В конце-концов, что мешает сделать XEP на XMPP сессию размазанную по нескольким TCP сессиям? Достаточно договориться с сервером в самом начале о таймауте и каком-нить ID сессии, а потом когда TCP сессия оборвётся и восстановится, послать этот ID и сервер загрузит только то, что не было доставлено. Пока таймаут не истёчет ни сервер ни клиент не завершают XMPP сессию. Если включен такой режим, то клиент и сервер могут дополнительно подтверждать каждую станцу специальным сообщением о доставке.

2. У каждого клиента есть приоритет. И если у двух клиентов одинаковый приоритет, то сообщения получают оба. Так было, несколько лет назад. И на историю на сервере тоже был XEP.

3. По-моему всё это было уже давно. Лет 5 назад на ткаббере был плагин, который показывал собеседников на карте земли, т.е. геолокация уж точно была. Да и файлы можно было пересылать. Или я не совсем понимаю о чём речь.

4. Уже ответили на это, но зацепило вот это «огромное количество разнообразных костылей». Это вы XEP-ы называете костылями, или речь о чём то другом?

5. МУК — это чаты как в IRC. Именно для этого создавался этот стандарт. Чаты, как в ВК, сделаны по другому, и естественно, что МУК будет не удобен для них. Это как копать молотком, и жаловаться, что не удобно. Если молоток не подходит, возьмите лопату, т.е. сделайте другой XEP.

6. «гибок не в том месте» — это где он гибок, где не надо? «избыточен» — а это где?
Если нет желания у ВК допиливать остальные клиенты, никто этого и не просит.

Достаточно:
— опубликовать XEP-ы, если вообще есть интерес в сторонних реализациях.
— всем остальным клиентам, кто не поддерживает фичу (это легко определить) отправлять «здесь должна быть картинка из ВК, но ваш клиент её не поддерживает, используйте наш клиент (ссылка)».

> Вместо они должны использовать инструменты iOS/Android. XMPP так не может

В XMPP есть транспорты практически в любую IM сеть. В чём принципиальная невозможность использовать тот же фокус, чтобы пробрасывать станзы через iOS/Android push технологию клиенту, который её понимает?
> но как по-вашему с помощью jabber-клиента «лайкнуть твит» или просто залить «фоточку на стену»?

Шутите? В XMPP протокол это добавляется на раз два через XEP-ы. Туда можно легко добавить и стену и даже просмотр видеороликов (сам поток конечно будет через http). А в своём XMPP клиенте можно сделать абсолютно любой фронтенд на эти функции, даже неотличимый от самого вконтакте.

Было бы желание
Т.е. раз они не смогли заставить реализовать эти ХЕР-ы 100500 разработчиков, то смогут заставить их реализовать их новый API? Вряд ли :)

А если им плевать на остальные клиенты и достаточно полноценного своего, то что мешает всем, кто не поддерживает эти XEP-ы (а это легко определить, есть функция для этого), отправлять что-то типа «здесь должна быть картинка, но ваш клиент не поддерживает её, используйте наш клиент».

NIH синдром у них там.
> Одна из серьёзных проблем XMPP — использование XML, который достаточно накладно парсить и достаточно накладно представлять в памяти.

Что вы говорите :) XML, как один из более-менее читаемых языков, очень сильно вытягивал на заре, когда все только пилили клиенты. Множество проблем можно было решить, просто открыв XML консоль в клиенте.

Да, даже не на заре. Буквально 3 недели назад ресёчил проблему на jabber сервере, опять же через консоль (не работало добавление в ростер. пиджин и ejabberd). А копипаст нескольких «цитат» из потока в гугл + ключевые слова подсказали ответ.

Возможно, XMPP выжил и выстрелил именно потому, что в стандарте приведены читаемые примеры протокола, а не таблички со смещениями и битами, которые только своим видом обещают гемор разработчику, а также потому, что любую реализацию можно сравнить с примером из XEPа за 2 секунды и без hex-редактора.
А учитывая, что у вас одновременно работает правило «пиратить — единственный вариант» и правило объективного освещения блокировок, у меня вообще большие сомнения что у вас есть хоть малейший шанс что-то исправить.

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

Грубо говоря, вы нарушаете там, где это вам не выгодно, и честные там, где это вам не выгодно. Ситуация, мягко говоря, абсурдная, не находите?
Пираты вызывающе нарушали копирайт всё это время, и мы оказались там где мы есть не в последнюю очередь благодаря им. Все эти DRM-ы были сделаны после того, как пираты нагло показывали дырку в законе.

Этот способ не только неэффективен, он даёт основание для ещё большего роста ограничений.

И не нужно ярлыков типа «послушные овечки». Итальянская забастовка — это тоже послушные овечки?

Information

Rating
6,253-rd
Location
Россия
Registered
Activity