Aleksand
тоже самое с нодой, вопрос в масштабах этой компании
ты можешь понять разницу между финансированием развития технологии и сообщества вокруг технологии и финансированием нестандартной фичи одной компанией в рамках этой технологии?
старий
и с тем же typescript
Таймураз
обилием твитов
Нет твиттера *fuck yea*
Vladimir
Почему нода - это технология, а reactphp - это фича?
Таймураз
Почему нода - это технология, а reactphp - это фича?
reactphp- это тоже технология, но тут понятно смысловое разделение понятий
Vladimir
Мне не понятно
Таймураз
node- это платформа Но и с той вариацией терминов можно догадаться
Cenator 🐈
Почему нода - это технология, а reactphp - это фича?
Еще и название у фейсбука спиздили
Таймураз
js подразумевает использование асинхронной логики, тогда как php- нет. И чтобы придти к reactphp- нужно задуматься о существовании оного
старий
утиная типизация же, как замена всяких там интерфейсов
ну я могу имплементить множество интерфейсов, но наследоваться от одного класса. т.е. как мне на этом уровне реализовать тот же самый I?
старий
или в работе с нодой у меня таких вопросов возникать не будет?
Таймураз
Vladimir
Я про промисы
KlonD90
https://github.com/nodejs/node/labels/good%20first%20contribution о есть такой лейбел
Vladimir
Колбэки это не асинхронность, это просто функции
Ale
А колбеки и промисы- это не асинхронность?)
колбеки изобретены не в жаваскрипте. Все верно, в ноде стандартная либа позволяет работать с IO асинхронно из коробки, в пыхе для этого надо ставить сторонний пакет
Алексей
Я про промисы
а как же генераторы, а как же async/await?
Vladimir
Ок, async await
Vladimir
Генераторы абсолютно синхронные
Ale
ну и асинхронные ж добавили)
Алексей
Генераторы абсолютно синхронные
зависит от вызывющей стороны на самом деле
Vladimir
Я имею в виду сами по себе
Алексей
Я имею в виду сами по себе
ну так то да, но они раньше использовались как некая замена async/await
Cheslav
можете подсказать, сделал изоморфное приложение ( React + Node.js), деплою на хероку, там собирается билд, потом запускается сервер, вроде все ок, но потом при get "/" где должна отдаваться папка с билдом возникает ошибка 403 Forbidden. с локалхоста все ок. в какую сторону копать?
Cheslav
нагуглил что могут быть права на папки, может из за этого
Cheslav
папки в корне, client, server, build
Aleksand
Почему нода - это технология, а reactphp - это фича?
я не хочу лезть в дебри терминологии особенно учитывая ее неоднозначность. но nodejs - это масштабный набор компонентов с навязанным паттерном использования (один поток выполнения + eventloop), можно менять реализацию js, можно расширять возможности, но паттерн не изменяется и не изменится, он поставляется из коробки и его поддержка гарантируется. в php же наоборот, там другой паттерн поддерживается создателями из коробки и другие не поддерживаются, однако есть небольшая группа людей которая предлагает адаптацию паттерна для nodejs в рамках php, он не поддерживается из коробки и его надежность и работоспособность обеспечена только количеством сил и денег у его создателей
Алексей
?
генераторы не работают сами по себе, по ним нужно итерироваться, а вот синхронно ли итерироваться или асинхронно - это зависит от того кода, который эти итерации производит
KlonD90
все еще не делает их асинхронными
старий
в жсе у тебя интерфейсы неявные и структурные
Все, уже нагуглил нужную инфу, спасибл)
Aleksand
Слабоватый аргумент. Нода единственная _платформа_ с такими свойствами. Это не значит что неблокирующий IO везде кроме ноды нестабилен
нестабильна априори любая реализация вне стандартной библиотеки и не взятая на поддержку создателями языка (платформы, технологии). просто потому что сломаться она может с ближайшим минорным обновлением а создатель реализации может затягивать или просто забросить его поддержку.
Vladimir
Короче понятно твоя логика. Если что то не в стандартной библиотеке, то оно не стабильно
Aleksand
Короче понятно твоя логика. Если что то не в стандартной библиотеке, то оно не стабильно
не все, а ключевые фичи. reactphp меняет принцип и подход к разработке. когда такое не поддерживается из коробки это очень дорого может стоить в итоге
Алексей
"принудительная" асинхронность ноды заставляет разработчиков библиотек, драйверов для баз данных делать своё апи также асинхронным, чего нельзя сказать про все остальные языки, для которых наличие синхронного апи и отсутствие асинхронного - это норма, а не исключение
Vladimir
Про Netty наверно и не слышал никто
Алексей
Vladimir
По логике выше оно является нестабильным
Vladimir
Надо срочно рассказать чувакам из твиттера, эппла, и остальным
KlonD90
Про Netty наверно и не слышал никто
крутая штука да. а что?
Aleksand
По логике выше оно является нестабильным
классная штука, но у него отдельное сообщество и богатые спонсоры
Vladimir
Ну то есть все таки дело в популярности, да?
Алексей
по логике выше (я про своё сообщение), как только захочется использовать с Netty, ну скажем Hibernate, то тут могут начаться проблемы, хотя и решаемые в принципе
Ale
так а популярности чего? libuv хоть в бреинфаке юзай себе
Aleksand
Ну то есть все таки дело в популярности, да?
ну я выше писал, в бабле и тем кто за фичей стоит. netty формально то же самое, но за счет сообщества фактически совсем другая история. прежде всего по мощности и масштабу проекта.
Anonymous
А с Казахстана есть тут разрабы. Какая средняя зп?
Vladimir
Ок, то есть мы все таки пришли к тому, что значение имеет сообщество и бабло, а не то, стандартная это штука или нет
Таймураз
Ок, то есть мы все таки пришли к тому, что значение имеет сообщество и бабло, а не то, стандартная это штука или нет
Имеет значение и то, и другое Закрывать глаза на любой из этих аспектов неправильно
Aleksand
"принудительная" асинхронность ноды заставляет разработчиков библиотек, драйверов для баз данных делать своё апи также асинхронным, чего нельзя сказать про все остальные языки, для которых наличие синхронного апи и отсутствие асинхронного - это норма, а не исключение
нет, это не так. такая же проблема в питоне, но там она сложнее, из-за совмещения синхронного кода и эвентлупа. но при этом async/await чудовищно мощен (сильнейший просто, яркий пример когда копия лучше оригинала) и проблемы с асинхронными стилем кода купировали на взлете благодаря этому. тогда как нода их прошла эволюционно
Nurik
Всем привет. Кто знает мануалы чтобы юзать babel и express ? Можете плиз накидать ссылок. Честно говоря не понял как разруливать, скомпилированные файлы, куда и зачем их класть. P.S. знакомлюсь с babel
Aleksand
так а популярности чего? libuv хоть в бреинфаке юзай себе
я последний год плотно оперирую примитивами эвентлупа, это уровень абстракции выше чем у libuv. и могу сказать что это полное дерьмо и пустая трата денег и сил с точки зрения разработки продукта
Алексей
Алексей
иначе толку от асинхронности не будет вообще, такак этот синхронный код будет блокировать поток с event loop
Aleksand
в питоне в любом случае не получится чистой асинхронности, так как большинство либ, которые взаимодействуют с i/o синхронны, а значит части кода работы с этими либами придётся по любому выносить в другие потоки
поверь чистой асинхронности местами нет и в ноде (например DNS), из-за блокирующей природы системных вызовов. ну и не так много либ синхронных в питоне осталось
Алексей
поверь чистой асинхронности местами нет и в ноде (например DNS), из-за блокирующей природы системных вызовов. ну и не так много либ синхронных в питоне осталось
я не знаю как там на низком уровне, но неужели нода не выносит такие блокирующие синхронные операции в отдельные потоки? да и с моего дивана видится, что в питоне, который лишь относительно недавно обзавёлся асинхронностью всё ещё будут очень часто встречаться чисто синхронные либы
Nurik
Глянь https://github.com/CheerlessCloud/koa-node8-boilerplate Только выкинь Koa (и весь мусор от неё) и babel-plugin-module-resolver.
Спасибо. А есть ещё? По ссылке не хватает workflow как это потом будет работать. Но уже понятнее.
KlonD90
https://highloadcup.ru/ кто-нибудь вписался?
Aleksand
я не знаю как там на низком уровне, но неужели нода не выносит такие блокирующие синхронные операции в отдельные потоки? да и с моего дивана видится, что в питоне, который лишь относительно недавно обзавёлся асинхронностью всё ещё будут очень часто встречаться чисто синхронные либы
> всё ещё будут очень часто встречаться чисто синхронные либы ну я тебе не с дивана с продакшена скажу - сичтанные либы у меня остались синхронные, большая часть имеет асинхронные неплохие реализации
Gleb
Спасибо. А есть ещё? По ссылке не хватает workflow как это потом будет работать. Но уже понятнее.
Мммм... У меня нет, но я давно собирался пачку гайдов наваять, Sorax и скринкас Кантора мальца подустарели. Мб добавлю потом в репу)
Aleksand
https://highloadcup.ru/ кто-нибудь вписался?
там с других чатов куча народу и коллег, прикольная идея
Gleb
Спасибо. А есть ещё? По ссылке не хватает workflow как это потом будет работать. Но уже понятнее.
Но по сути он тупо собирает всё в dist (bin, src, config, etc...), а нода стартует по ./dist/bin/... Там уже всё внутри крутится. Там где нужно налету трансайлить, node стартует с —require babel-register.
Gleb
там с других чатов куча народу и коллег, прикольная идея
Такая себе идея) Ну то есть идея прикольная, да, чемпионат, все дела) Только С+libuv будут в топе, а это, как ты понимаешь, не продакшен решения) Я думал поучавствовать, когда на хабре вывесели, но как-то забил.
Таймураз
оно же полутруп. и да у похапе в таком режиме память течет.
Я об этой хрени только в этом разговоре услышал
Aleksand
например сишник может зафакапить бестолковым хранением данных и выборкой, а питонист или гошник его на этом обогнать может, причем не в фантастическом рассказе а при определенных условиях на практике