Node.JS complexity rant

Oct 14, 2011 17:42

Создатели целой социальной сети на основе Node.JS подтверждают всё то, что эрлангисты сразу говорили: Node.JS ск сложный и лапшистый:

Цитируя лозунг создателей NodeJS ( Read more... )

erlang

Leave a comment

Comments 40

ex_juan_gan October 15 2011, 02:26:48 UTC
А, так у них cps вместо синхронизации! Люблю, теоретически. Я б побаловался, чисто опыта набрать.

Но ведь эрланг тоже примерно так устроен, нет?

Reply

lionet October 15 2011, 06:40:41 UTC
Нет. В эрланге ты программируешь линейно. Сделал A, затем сделал B. В Node.JS ты программируешь через коллбеки: сделал A, которому скормил коллбек, который позовёт B. Это лапша.

Reply

sheremetyev October 15 2011, 19:18:30 UTC
По-моему, коллбеки или линейный код - вопрос синтаксиса. Если хочется, то можно коллбеки автоматически разворачивать.

Reply

lionet October 15 2011, 21:53:31 UTC
1. Конечно, вопрос синтаксиса. И это важно чрезвычайно. Именно из-за синтаксиса мы не программируем на брейнфаке, а хотим более высокоуровневых и, одновременно, простых конструкций.

2. Кафеин не скрывает сложность модели выполнения Node.JS: всё равно нужно помнить, где восклицательные знаки расставлять. А если вдруг забыл - то всё заблокируется напрочь. Нельзя пропустить _ни одного_ восклицательного знака. Во всех тысячах строчек кода. Иначе именно этот пропущенный знак когда-нибудь выстрелит.

Reply


ext_467811 October 15 2011, 05:25:17 UTC
>>В реальности же с callback-driven парадигмой в nodejs и особенностями javascript в целом, скорее легче сделать ошибку.

Так ведь всё клиентское веб программирование js и callback-driven (это он такой без участия node.js)

Надо уж просто признать, что node.js "прост" ... для верстальщиков и клиентских программистов и успокоиться на этом.

Вон dart сделают, того глядишь сразу node.dart появится и сразу магически все сложности js улетучатся.

Reply

lionet October 15 2011, 06:39:51 UTC
Проблема в том, что клиент может сделать Reload для решения проблем с утечками и corruption. А сервер такого себе позволить не может. Плюс, сервер обслуживает многих пользователей, и ему нельзя блокироваться направо и налево. Это снижает ценность опыта программирования на клиент-сайде, ибо этот опыт не базируется на императиве консистентности данных в памяти.

Reply


thesz October 15 2011, 05:49:05 UTC
Что-то у них там выводы не очень следуют из текста.

Из текста следует, что написать такую систему сложно, но упоминание про Node.js в описании сложности всего одно. При этом вывод весь посвящён исключительно Node.js.

И да, им там намекнули, что они занимались преждевременной оптимизацией. ;)

В общем, хотели замучиться, у них получилось. При чём здесь Node.js, непонятно.

Reply


demmonoid October 15 2011, 06:17:47 UTC
Оно еще и течет?!

Reply


zhengxi October 15 2011, 06:20:53 UTC
Кстати, а ты Go (golang.org) пробовал на таких задачах ?

Reply

lionet October 15 2011, 06:41:22 UTC
А у него интроспекции достаточно, чтобы поймать отдельный процесс, который зациклился? ;)

Reply

zhengxi October 15 2011, 06:46:36 UTC
А у node.js ?

Reply

*grin* lionet October 15 2011, 07:01:22 UTC

... )

Reply


Leave a comment

Up