to post messages and comments.

← All posts tagged node

А мы вчера решили замерить производительность 3 языков программирования.

Задача была такая:

Есть массив из 1 000 000 объектов.
Надо посчитать сколько объектов имеют свойство X > 50
Тупо линейно пробежаться по массиву и посчитать.

Результаты:

С++ — 7мс
C# — 8мс
Node — 9мс

То есть Node даже на порядок не отличается по скоросте от C++ и С#.

Только что наблюдал в офисе картинку маслом. Плюющийся от ненависти питонщик злобно смотрит на фотку TJ Holowaychuk и цокая языком шепчет: "25 лет, 500 репозиториев, вот сцука...".

P.S. Неужели все питонщики такие завистливые гондоны?

Есть идея для JS-проекта. Универсальный движок оффлайн-синхронизации. Положим, у нас есть редактор чего-то в виде веб-приложнния. Задача — обеспечить ему бесперебойную работы в оффлайне. Как это сделать? Мы редактируем коллекцию JSON-документов. На серваке они где-то хранятся в БД. Клиент перед работой вытягивает последнюю ревизию документов. Потомна клиенте пользователь что-то меняет. Создаются коммиты. Каждый коммит хранится в виде диффа от предыдущей ревизии (на JS уже давно есть все необходимые библиотеки).
Потом приходит время делать push. Но сначала надо сделать pull --rebase, чтобы вытянуть с сервака последние изменения — вдруг кто-то что-то менял до того. Клиент посылает HTTP-запрос: "у меня последняя ревизия, полученная с сервака — такая-то. дай мне коммиты с тех пор". Сервак возвращает коммиты. Клиент накатывает их на последнюю полученную с сервака ревизию. Потом пытается сверху накатить свои локальные коммиты (ну — все как в таром добром git, только проще — без веток). Если все получилось, то отсылаем на сервак локальные коммиты, фиксируем транзакцию (сервак отвечат: "да, я получил твои коммиты", клиент считает их уже не локальными).
Я считаю, что современные веб-приложения так и должны работать. Надо ставить во главу угла автономность. Но почему-то подобный функционал мы если и видим, то, преимущественно, в проприетархных продуктах. Надо прорабатывать эту концепцию, потому что очень много реально интересных штук можно построить на этом!

Осваиваю node-webkit. Очень интересная штука для написания кроссплатформенных GUI-приложений. Кто-нибудь уже писал что-нибудь под винду на node-webkit?