Anonymous
Да, я как раз про это
Anonymous
Мифы и легенды древней Греции
Алексей
ага, конечно
Anonymous
Что конечно?
Anonymous
eslint умнее большинства тимлидов и сам ставит точку с запятой, где реально требуется
Алексей
вам ещё и слабая типизация небось нравится?
Anonymous
Как ты ловко обобщаешь
Anonymous
Лучше бы в eslint так разбирался
Алексей
я не обобщаю, я спрашиваю
Roman
/stat@combot
Combot
combot.org/chat/-1001041204341
Ale
отличное сравнение слабой типизации и точек с запятой
Ale
интересно, каких языков со слабой типизацией больше, с точкой с запятой или без?) А с сильной типизацией?)
Алексей
количество - не показатель качества
Алексей
и вообще это вкусовщина
Алексей
кому-то нравится ставить точку с запятой (обычно тем, кто пришёл с других языков, где она есть), кому-то не нравится
Алексей
так что пожалуй не стоит быть столь категоричным в этом вопросе
Sergey
Алексей
Но в одном вопросе я категоричен: PHP - говно.
Славик
о, пхп в нодовском чатике
Славик
в пхп зато есть многопоточность, которой нету в ноде
Славик
3, 2, 1, срач!
Sergey
Dan
Славик
про многопоточность всегда верняк
Sergey
Dan
Sergey
Vladimir
А в php точно есть многопоточность? похоже на гон
Sergey
Алексей
Сейчас напишу длинный текст в пояснение.
Dan
но разве в ноде нет своего thread pool, который работает как раз с очередями ?
Славик
обращайтесь
Dan
но вообще https://habrahabr.ru/post/150788/ всё объясняет
Dan
в любом случае спасибо за информацию
Алексей
Anonymous
Ale
Anonymous
Shit happens
Ale
воу
Anonymous
Ale
Алексей
Асинхронность, Promise, async/await - это почти тоже самое, что и потоки, только переключение происходит в предсказуемых местах, а не посреди выполнения абсолютно любой машинной инструкции. Следовательно проблемы синхронизации, дедлоков и гонок полностью исчезают. Такая модель удобна для подавляющего большенства практических задач за исключением выполнения длительных и тяжёлых вычислений, нагружающих CPU. Если вы проводите такие вычисления на NodeJS, то вы скорее всего куда-то не туда повернули в своей жизни. Если вы уверены в своей правоте и хотите дробить числа и перемножать матрицы именно на NodeJS, то лучше всё-таки вынести всё это дело в отдельный процесс.
Jąńek
чёрт
Jąńek
а я истфака
Jąńek
ставлю то что по код стайлу
Алексей
Асинхронность, Promise, async/await - это почти тоже самое, что и потоки, только переключение происходит в предсказуемых местах, а не посреди выполнения абсолютно любой машинной инструкции. Следовательно проблемы синхронизации, дедлоков и гонок полностью исчезают. Такая модель удобна для подавляющего большенства практических задач за исключением выполнения длительных и тяжёлых вычислений, нагружающих CPU. Если вы проводите такие вычисления на NodeJS, то вы скорее всего куда-то не туда повернули в своей жизни. Если вы уверены в своей правоте и хотите дробить числа и перемножать матрицы именно на NodeJS, то лучше всё-таки вынести всё это дело в отдельный процесс.
немного из контекста вырвано, но надеюсь смысл понятен
Ale
Алексей
Мораль сей басни такова: с точки зрения программиста асинхронность (с async/await, а не с callback hell) почти всегда лучше и удобнее, чем потоки.
Anonymous
Ale
"полностью исчезают"
Anonymous
О даа
Anonymous
На промисах можно такую гонку наворотить, круче тур де франс
Алексей
Anonymous
Это не принципиально
Алексей
кстати, Питон со своим GIL тоже фактически однопоточным получается
Алексей
причём там совсем всё плохо, так как собираются вместе часть недостатков потоков и асинхронности
Алексей
Это не принципиально
в любом случае, на потоках гонку (и не только её) наворотить гораздо легче, чем в async/await
Ale
там есть асинхронность чуть что
Алексей
тогда потоки вообще бесполезными становятся
Алексей
и как вообще можно сделать гонку в NodeJS?
Anonymous
Просто посчитать, что одна асинхронная операция выполняется всегда быстрее другой (скорее всего, абсолютно неявно)
Anonymous
Готово, можете звать спортсменов
Anonymous
Особенно это весело, когда они реально должны выполняться параллельно, просто при этом случай, когда B дольше A автору не попадался
Алексей
ну как бы есть Promise.all
Алексей
для ожидания всех нужных запущенных асинхронных операций
Алексей
без всяких пердположений о скорости выполнения каждой из них
Anonymous
Очень хорошо рассуждать в теории
Anonymous
И на двух отдельно взятых объектах
Anonymous
К сожалению, в местах, где возникают такие ситуации, всё обстоит обычно слегка иначе
Алексей
если вы хотите порассуждать на практике, то предоставьте код, который показывает проблему
Алексей
может я чего-то недопонимаю