Увидел свет (https://new.nodejs.org/en/blog/release/v4.0.0/) релиз Node 4.0.0 (https://www.nodejs.org/), платформы для выполнения высокопроизводительных сетевых приложений на языке JavaScript. Выпуск примечателен слиянием с кодовой базой проекта io.js, ранее ответвившегося от Node.js, но вернувшегося (http://www.opennet.me/opennews/art.shtml?num=42461) к совместной работе над единым унифицированным продуктом.
По функциональности Node 4.0.0 близок к выпуску io.js 3.0 (http://www.opennet.me/opennews/art.shtml?num=42735) и включает (https://github.com/nodejs/LTS/wiki/Breaking-changes-between-...) реализованные в рамках проекта io.js новшества, состояние которых признано стабильным. Лежащий в основе Node.js JavaScript-движок V8 обновлён до актуальной версии 4.5 (в Node.js 0.12 (http://www.opennet.me/opennews/art.shtml?num=41625) использовался V8 3.26, выпущенный год назад). Обновление движка открыло доступ ко многим новым возможностям JavaScript, определённым в спецификации ECMAScript 6 (http://www.opennet.me/opennews/art.shtml?num=42450).
В частности, добавлена поддержка классов, генераторов, шаблонов строк, новых методов обработки строк, типизированных массивов (в том числе объекта Buffer, реализованного на основе V8 Uint8Array), структур данных Map и Set для работы с коллекциями, механизма Promise, типа Symbols и arrow-функций. Официально реализована полноценная поддержка архитектуры ARM (ARMv6, ARMv7 и ARMv8). Введён в строй кластер для тестирования работы Node.js на различных аппаратных платформах и операционных системах (Linux-дистрибутивы, OS X, Windows, FreeBSD и SmartOS).
Ветке Node.js 4 планируется присвоить статус LTS, обеспечив длительный выпуск обновлений и регулярный цикл подготовки релизов. Ожидается как подготовка корректирующих выпусков со сменой номера во третьей цифре версии (4.0.1, 4.0.2 и т.п.), так и функциональных обновлений, содержащих новые возможности (4.1.x, 4.2.x и т.п.). При этом на протяжении существования ветки 4.x будет гарантировано сохранение обратной совместимости. Новые стабильные ветки планируется формировать раз в 6 месяцев.
В октябре ожидается ответвление ветки 5.x, которая будет развиваться параллельно и содержать новые возможности, обкатываемые для следующей стабильной ветки, в том числе переход на новый выпуск движка V8 и возможно изменения, нарушающие совместимость. Основной цикл LTS-поддержки ветки 4.x продлится 18 месяцев, плюс ещё 12 месяцев будут устраняться критически ошибки и уязвимости (в сумме ветка будет поддерживаться 30 месяцев).
URL: https://new.nodejs.org/en/blog/release/v4.0.0/
Новость: http://www.opennet.me/opennews/art.shtml?num=42937
>>высокопроизводительных сетевых приложений на языке JavaScriptМда, это кто написал такое?
Движок V8 вполне себе шустр, как и модуль http у ноды. По крайней мере если сравнивать с классическим LAMP.
Есть большие сомнения в том что он быстрее Apache+PHP(with apc or similar) на каком-либо значимом наборе тестовых сценариев ;)
> Есть большие сомнения в том что он быстрее Apache+PHP(with apc or similar)
> на каком-либо значимом наборе тестовых сценариев ;)apache+php - вообще медленная парочка.
Лучше уж брать nginx+php-fpm.А вообще в интернете полно сравнений.
Вот сравнение php, hhvm и nodejs.
php на дне, hhvm ещё сравним с nodejs по скорости.
http://www.hostingadvice.com/blog/comparing-node-js-vs-php-p.../Вот "риальное" сравнение
Человек получил разницу в 14 раз и офигел
http://www.prahladyeri.com/blog/2014/06/php-vs-node-js-real-...nodejs действительно быстр, хотя его главная фишка не в скорости одиночного потока, а в скорости кучи параллельных потоков.
Тот же meteor делают на js.
А это 100500 запросов в секунду на сервер, чтобы у всех клиентов обновлялись элементы страниц в реальном времени.
Я не пишу на ноджиэсе, вообще не пишу на яваскрипте. Но читал на хабре, как запрограммили сервер чего-то, который на node.js чуть ли не миллион соединений держал.
Всё это потребяло какой-то небольшой минимум памяти, вроде 24ГБ.
Напишите такое на другом языке, чтоб с утечками памяти бороться и прочее. Тут не текло, благодаря реализации самой платформы.
шо erlang уже не справляется с 1млн соединений? или он просто не в моде у хипстеров.
Я не осилил.
Эрланг - штука правильная со всех сторон. Но на нем не пишут явоскриптеры :)
Для них ведь Elixir запилили, памятуя о том что внутри каждого явоскриптера старше 14 лет - бывший рубист. А не хотят все равно.
я не читаю комменты, вообще не прочел твой коммент, но на хабре кто-то чего-то говорил что нода убогая штука и кто-то запрограммил сервер чего-то всего на 256 МБ и ничего не текло.
так что ты не прав.
> Я не пишу на ноджиэсе, вообще не пишу на яваскрипте. Но читал
> на хабре, как запрограммили сервер чего-то, который на node.js чуть ли
> не миллион соединений держал.
> Всё это потребяло какой-то небольшой минимум памяти, вроде 24ГБ.
> Напишите такое на другом языке, чтоб с утечками памяти бороться и прочее.
> Тут не текло, благодаря реализации самой платформы.Так при 24Гб и без приставки "-script" потянет ;)
> Всё это потребяло какой-то небольшой минимум памяти, вроде 24ГБ.вопрос для дополнительного изучения: сколько памяти на миллион соединений потратит nginx?
> Напишите такое на другом языке, чтоб с утечками памяти бороться и прочее. Тут не текло, благодаря реализации самой платформы.
вот как раз утечки памяти в ноде -- реальная проблема. в отличие от go или erlang.
У Node, Go есть ещё одна проблема, это Garbage Collector (GC), и поэтому даже если на синтетическом тесте выше на них всё будет "держать" (работать), то работа GC, при нормальном приложении, с множеством объектов, даст заметную просадку в производительности.Поэтому тут уместнее использовать RUST, C.
Плотно работаю с GOПро просадку при чистке мусора подтверждаю :). Посмотрим, на сколько изменится при переходе на 1.5.
Так ведь он вышел уже. Еще не тестили разве? Вроде как он конфетнее стал.
Стал: https://www.reddit.com/r/golang/comments/3hnuav/go_15_gc_per.../
спасибо, это было почти смешно.
Питоновский Gevent уделывает эту детскую игрушку ноду в пух и прах.
> Питоновский Gevent уделывает эту детскую игрушку ноду в пух и прах.война была равна…
Что V8 с байткодом в ассемблер костыль, что Gevent какая-то примочка нс Си к Python...
Вот только для Python - это нормально, писать библиотеки на С/C++. А JS детская игрушка для браузера, написанная на коленке и теперь её зачем-то насильно затащили на сервер. JS-фанатики конечно в угаре, они теперь типо фулл-стек разработчиками стали. Вот только NodeJS не идеальна и другие решения, которые развивались все эти годы, куда адекватнее и производительнее.Смешно смотреть, как парни сидели например на Python, а потом зачем-то на Ноду полезли, когда у них есть Gevent, который оставляет NodeJS позади. Или ещё есть Tornado, который тоже может всё то, что может NodeJS. Вокруг прыгают радостные веб-обезьянки, которые думают, якобы нода им весь мир заменит. И якобы скоро везде будет один сплошной js =))) Тем временем, приход WASM только приблизит смерть JS.
> Вот только для Python - это нормально, писать библиотеки на С/C++.ну дык. у пистонолюбов всё всегда нормально. что у других, по мнению пистонолюбов, фигня, то в пистоне сразу становится ВАУ.
конечно, в пистоне нормально всё, что можно, делать на ц — потому что пистон убожище.
Начнём с того, что бидон в реализации разработчиков языка написан на C. Следовательно, расширять его с помощью C есть смысл. На этом и закончим.
> На этом и закончим.согласен. как скриптовое гуано ни крути, а чтобы на нём написать что‐нибудь нормально работающее, надо его выкинуть и взять си.
>> а потом зачем-то на Ноду полезли, когда у них есть Gevent, который оставляет NodeJS позадиБайки фаната питона? Ох уж эти хелловорлдщики...
Есть тесты. Всё официально. NodeJS проигрывает питоновскому Gevent.
> Питоновский Gevent уделывает эту детскую игрушку ноду в пух и прах.Gevent все так же упирается в GIL.
Кстати, в отличие от.
Вы сами попробуйте 1кк запросов подать и увидите.
Тут бы еще не путать scalability, performance, efficiency и concurrency.
Но это наверное несбыточно.
> Я не пишу на ноджиэсе, вообще не пишу на яваскрипте. Но читал
> на хабре, как запрограммили сервер чего-то, который на node.js чуть ли
> не миллион соединений держал.
> Всё это потребяло какой-то небольшой минимум памяти, вроде 24ГБ.
> Напишите такое на другом языке, чтоб с утечками памяти бороться и прочее.
> Тут не текло, благодаря реализации самой платформы.Erlang, Go.
Ну и надо смотреть, что ещё с соединениями делать, кроме как держать.
Просто держать и веб сервер (nginx) может, потребляя куда меньше 24ГБ памяти.
node.js может использовать больше одного ядра процессора?
При ожидании ответа от базы данных не заблокируется весь сервер?
Ваш LAMP :)
> node.js может использовать больше одного ядра процессора?
> При ожидании ответа от базы данных не заблокируется весь сервер?
> Ваш LAMP :)пейши асинхронно и не будет зависонов на одном ядре
>> node.js может использовать больше одного ядра процессора?
>> При ожидании ответа от базы данных не заблокируется весь сервер?
>> Ваш LAMP :)
> пейши асинхронно и не будет зависонов на одном ядреДрайвер к ораклу на js :)))
Оракл выпускает официальный драйвер для node.js. Что вас удивляет?
https://blogs.oracle.com/opal/entry/introducing_node_oracled...
>Introducing node-oracledb - a Node.js driver for Oracle Databasehttps://www.npmjs.com/package/oracledb
>Oracle Database driver by Oracle Corp.
> Оракл выпускает официальный драйвер для node.js. Что вас удивляет?
> https://blogs.oracle.com/opal/entry/introducing_node_oracled...
>>Introducing node-oracledb - a Node.js driver for Oracle Database
> https://www.npmjs.com/package/oracledb
>>Oracle Database driver by Oracle Corp.только обертка, сам драйвер на C++
в npm половина модулей такие, причём все собирают свои либы при установке, возлагая болт на установленное в системе
Хипсторы не могут в библиотеки.
хипсторы откровенно не хотят разделяемых библиотек, у них даже аргументы какие-то есть
>>node.js может использовать больше одного ядра процессора?https://nodejs.org/api/cluster.html
>>При ожидании ответа от базы данных не заблокируется весь сервер?
man асинхронный
> node.js может использовать больше одного ядра процессора?может, если запустить соответствующее количество воркеров. из коробки для этого идёт модуль cluster.
> При ожидании ответа от базы данных не заблокируется весь сервер?
нет. у процесса node.js один тред, но асинхронный event loop.
> нет. у процесса node.js один тред, но асинхронный event loop.а потоков что вообще совсем нет? а если будет много данных?
Будет много воркеров (чайлд_процессы) или кластеров, смотря, что удобней в данном случае. Внезапно, все это из коробки.
> node.js может использовать больше одного ядра процессора?
> При ожидании ответа от базы данных не заблокируется весь сервер?
> Ваш LAMP :)Может не только на разных ядрах, но и многое другое, как тут уже говорили некоторые задачи можно вообще выносить в отдельные процессы. Например работа с базой, в общем вариантов множество, остановить вас может только фантазия
>> node.js может использовать больше одного ядра процессора?
>> При ожидании ответа от базы данных не заблокируется весь сервер?
>> Ваш LAMP :)
> Может не только на разных ядрах, но и многое другое, как тут
> уже говорили некоторые задачи можно вообще выносить в отдельные процессы. Например
> работа с базой, в общем вариантов множество, остановить вас может только
> фантазияили количество процессов в системе )))
> остановить вас может только фантазияИли эвтаназия…
P.S. Само напросилось, в рифму.
Вас наверно я так понимаю удивит, но на ноде можно делать такие вещи как веерный запуск множества процессов с разным временем обработки каждого и возврата результата каждого такого процесса одной функции которая обработает конечный результат всех процессов... Я могу конечно мого чего тут понаписать.. но всяк свое будет хвалить и будет прав, потому что его это устравивает пока решает поставленные задачи. Как только начинает Неустраивать, начинается поиск чего то покешернее.. с запасом на будущее. Я выбрал ноду, не только из-за языка, но и потому что в ней можно делать невероятные вещи на одном языке, не прибегая к вставкам чего то.. РНР - для меня давно умер, ибо на нем активные вещи делать - курам поржать. Про ерланг скажу так, сделайте код на этом языке - который одинаково и без изменений будет работать как на сервере, так и на клиенте в обычном браузере? .. я не буду обьяснять ЗАЧЕМ, надо.. и все тут.. и масса проблем сразу.. js это позволяет. Мне достаточно. Все упирается в поставленное ТЗ, исполнение и будущее сопровождение того зоопарка который будет реализован на выбранной платформе..
Молодцы что слились назад. У многих не получается. Например openoffice-libreoffice.
Там уже нечему сливаться, ОпенОфис, по факту, RIP.
> У многих не получается. Например openoffice-libreoffice.у оракла вообще с опенсорцем никак не получается. вылитый медведь в посудной лавке.
А к node.js есть что нить gui-евое?
> А к node.js есть что нить gui-евое?Есть проект, AppJS но это GUI не полноценный я бы сказал
> А к node.js есть что нить gui-евое?Использую Webstorm, там есть все и отладка тоже.. рекомендую...
можно конечно просто в текстовом редакторе лепить, но тут дело вкуса..
Cloud9 хоть локально, хоть на сервере.
В комментах опять набег хелловордщиков, которые считают, что нода это для хипстеров? Таких не возьмут на работу в PayPal...
> В комментах опять набег хелловордщиков, которые считают, что нода это для хипстеров?
> Таких не возьмут на работу в PayPal...А что PayPal написан на JavaScript?
PayPal перекатилась на ноду, как и многие, например CloudFlare.
> PayPal перекатилась на ноду, как и многие, например CloudFlare.Бросили LuaJIT и Си и переписали WAF на JavaScript? Вот прямо с драйверами сетевухи собственными? Да что вы говорите.
заметьте, господа: как любитель ноды, так — в большинстве случаев — почти каждое предложение заканчивается кучей точек, обычно не тремя, а рандомным количеством.что по этому поводу думает психиатрия — можете поискать сами. а я лично предпочту от них подальше держаться, и на работу тоже не брать: чай, не материтерезы, убогих пригревать.
Хм, а об привычке начинать предложения со строчной буквы о чем говорит психиатрия?
Действительно, не берите в свою шарашкину контору, они и так без проблем найдут работу.
> Действительно, не берите в свою шарашкину контору, они и так без проблем
> найдут работу.как и жабисты. расходники — они везде расходники.
IBM сделает платформу NodeJS стандартом корпоративной разработки.
А какие новости в вашей шарашкиной конторе?
> А какие новости в вашей шарашкиной конторе?пьём. едим. веселимся. плевать хотели на то, что делает межделмаш. иди, молись им дальше.
Что не нравится в Ноде, да и на фронтенде эта проблема в полной красе - растущее, похоже, в геометрической прогрессии модулей и инструментов. И 99% из них посредственны. Убогая документация, разработчик потерял интерес через два месяца после раздутой шумихи на весь интернет, нестабильный апи, сомнительные преимущества перед имеющимися, баги-баги-баги, весь этот, бл, хипстерский дискурс с superheroic frameworks и радуги-единороги.А тебе нужно выбрать парочку хороших библиотек для проекта, ну чтобы не изобретать велосипед да? И правда, в интернете находишь тысячи велосипедов, целую, бл, парковку перед Икеей с велосипедами!
За техническую сторону я вам ничего не скажу, но культура сообщества у Ноды и фронтового ДжеЭс уровня ПэХоПэ, и это НЕ комплимент.
Культура разработки у хиптсторов таки повыше чем, например, у рельсистов, там либы вообще обновлять нельзя, а тут и за уязвимостями вроде следят, и за фичами обновляться можно.А вообще ты, походу, завидуешь успеху хипсторов, а сам полный ноль.
>рельсы
>намекает, что язык одного фреймворка не хипстерская темаОоок.
>С порога переходит на личностиЛол, 0/10.
> А тебе нужно выбрать парочку хороших библиотек для проектаа раньше говорили: «написать» вместо «выбрать»…
хотя, конечно, забавно наблюдать, как хипстер ругает хипстеров.