The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск серверной JavaScript-платформы Node.js 14.0

22.04.2020 11:52

Состоялся релиз Node.js 14.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 14.0 относится к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 14.0 будет осуществляться до апреля 2023 года. Сопровождение прошлой LTS-ветки Node.js 12.0 продлится до апреля 2022 года, а позапрошлой LTS-ветки 10.0 до апреля 2021 года. Поддержка промежуточной ветки 13.x завершится в июне этого года.

Основные улучшения:

  • Стабилизирована возможность генерации на лету или при наступлении определённых событий диагностических отчётов, в которых отражаются события, помогающие диагностике таких проблем как крахи, падение производительности, утечки памяти, большая нагрузка на CPU, непредвиденный вывод ошибок и т.п.
  • Добавлена экспериментальная поддержка API Async Local Storage с реализацией класса AsyncLocalStorage, который может применяться для создания асинхронного состояния с обработчиками на базе callback-вызовов и promise. AsyncLocalStorage позволяет хранить данные в течение обработки web-запроса, напоминая локальные для отдельных потоков хранилища (Thread-Local Storage) в других языках.
  • Убран вывод предупреждения об экспериментальной возможности при загрузке модулей ECMAScript 6 подключаемых и экспортируемых при помощи выражений import и export. При этом сама реализация модулей ESM пока остаётся экспериментальной.
  • Движок V8 обновлён до версии 8.1 (1, 2, 3), в которой внесены новые оптимизации производительности и добавлены такие новшества, как новый логический оператор объединения "??" (возвращает правый операнд, если левый операнд имеет значение NULL или undefined, и наоборот), оператор "?." для единовременной проверки всей цепочки свойств или вызовов (например "db?.user?.name?.length" без предварительных проверок), метод Intl.DisplayName для получения локализированных названий и т.п.
  • Проведена ревизия API Streams, нацеленная на улучшение согласованности API-интерфейсов Streams и устранения различий в поведении базовых частей Node.js. Например, поведение http.OutgoingMessage приближено к stream.Writable, а net.Socket к stream.Duplex. Опция autoDestroy по умолчанию выставлена в значение "true", подразумевающее вызов "_destroy" после завершения.
  • Добавлена экспериментальная поддержка API WASI (WebAssembly System Interface), предоставляющего программные интерфейсы для прямого взаимодействия с операционной системой (POSIX API для работы с файлами, сокетами и т.п.).
  • Повышены требования к минимальным версиям компиляторов и платформ: macOS 10.13 (High Sierra), GCC 6, Windows новее 7/2008R2.

Напомним, что платформа Node.js может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ. Для расширения функциональности приложений для Node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией серверов и клиентов HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули для интеграции с различными web-фреймворками, обработчики WebSocket и Ajax, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (OAuth), XML-парсеры.

Для обеспечения обработки большого числа параллельных запросов Node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe). Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8 (дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core).

По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере. При написании приложений для node.js необходимо учитывать специфику событийно-ориентированного программирования, например, вместо выполнения "var result = db.query("select..");" с ожиданием завершения работы и последующей обработкой результатов, в Node.js использует принцип асинхронного выполнения, т.е. код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдёт к дальнейшему коду, а результат запроса будет обработан по мере поступления данных. .



  1. Главная ссылка к новости (https://nodejs.org/en/blog/rel...)
  2. OpenNews: Проект Deno развивает защищённую JavaScript-платформу, похожую на Node.js
  3. OpenNews: Новые выпуски Node.js 13.8, 12.15 и 10.19 с устранением уязвимостей
  4. OpenNews: Выпуск серверной JavaScript-платформы Node.js 13.0
  5. OpenNews: Выпуск серверной JavaScript-платформы Node.js 12.0
  6. OpenNews: Бэкдор в зависимости к event-stream, популярной библиотеке для Node.js
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/52786-node.js
Ключевые слова: node.js, javascript
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (123) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:53, 22/04/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –5 +/
     
     
  • 2.19, Аноним (19), 15:20, 22/04/2020 Скрыто модератором
  • –2 +/
     
     
  • 3.21, Аноним (1), 15:38, 22/04/2020 Скрыто модератором
  • –1 +/
     

     ....ответы скрыты модератором (2)

  • 1.2, InuYasha (?), 12:09, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Так что же, всё-таки, хуже - Node.js или Java?
     
     
  • 2.4, TormoZilla (?), 12:28, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Opera mini
     
  • 2.6, Аноним (6), 12:51, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Node быстро набрасываешь скрипты на лингва-франке, в том числе и для тех задач,... большой текст свёрнут, показать
     
     
  • 3.7, Im banana man (?), 13:09, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сейчас на вас дата-майнеры обидятся
     
  • 3.8, Аноним (-), 13:12, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Так что же, всё-таки, хуже - Node.js или Java?
    > обычно применяют пихон
    > в отличие от пихона
    > существенно быстрее пихона
    > интерпретаторе пихона

    Пихонобатхерт пихононеосилятора детектед.

    > работает существенно быстрее пихона. Минусы: в отличие от пихона, обычно не
    > предустановлен. На этом список минусов заканчивается.

    Т.е. память как не в себя уже не жрет? Или как обычно у ЖопоСкритозников - "640GB RAM хватит на все!"

    > Node и Java оба имеют JIT-компиляцию. В предустановленном интерпретаторе пихона JIT-компиляции  нет, поэтому его следует рассматривать как просто более сложный баш с изуродованным синтаксисом.

    В непредустановленном интерпретаторе Node и Java JIT тоже нет, но об этом скромно умалчиваем.

     
     
  • 4.20, Аноним (20), 15:27, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Хммм, а я вот осилив все три из них считаю без всякого батхёрта, что питон - это... большой текст свёрнут, показать
     
     
  • 5.28, Аноним (28), 17:05, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это ты про sys.setdefaultencoding() не в курсе? Дела минувших дней… Сегодня указываешь # -*- coding: utf-16 -*- 2 строкой и можешь работать с utf16 в коде, вроде нормально. В системе то всё-равно utf8 везде (как и в сети, это у меня сетевая приложуха, да), просто этот утф8 на каждой платформе свой. На крайний случай есть PYTHONIOENCODING, но я не слышал, чтобы к консоли где-то utf16 был, в вендоконсоли утф8. Вообще, если тебе нужно распознать символы с коллизиями в утф8 на разных платформах (спасибо мс и эпл за коллизии в утф8), ты берёшь утф16 для этого, для всего остального utf8 норм.
     
  • 5.31, Аноним (31), 17:54, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > UTF-16

    Вендузяторы должны страдать.

     
     
  • 6.80, Аноним (80), 00:32, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Вендузяторы должны страдать

    Страдают только идиоты с UTF-8. Расскажика мне аноним как ты за O(1) вычислишь длину строки в кодировке с переменной длинной? Поэтому те кто дружит с головой используют UTF-16.

     
     
  • 7.85, qetuo (?), 03:06, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Длину сохраняешь и обновляешь с каждым изменением строки, по запросу отдаешь.
     
  • 7.87, Аноним (28), 04:31, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ммм, а как ты вычислишь длину строки в utf-16? Хинт, никак.
     
     
  • 8.99, Аноним84701 (ok), 13:18, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Магией, вестимо Тем более, UTF-16 - тоже кодировка с переменной длиной ... текст свёрнут, показать
     
     
  • 9.103, Аноним (80), 14:06, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, но, длина код юнита в UTF-16 2 байта, в код поинте может быть только один ил... текст свёрнут, показать
     
     
  • 10.104, Аноним84701 (ok), 14:20, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, и как это способствует вычислению длины строки кол отображаемых знаков в ... текст свёрнут, показать
     
     
  • 11.126, kai3341 (ok), 00:53, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Чисто на поржать python2 -c print len 66561 66615 a 9... текст свёрнут, показать
     
     
  • 12.127, Аноним84701 (ok), 01:06, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Просто в 2 кодировку ручками указывать надо python2 7 -c print len unicode 6... текст свёрнут, показать
     
  • 11.130, Виталик (??), 08:29, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    The length property of a String object contains the length of the string, in UTF... текст свёрнут, показать
     
  • 8.102, Аноним (80), 13:58, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хинт посмотри на имплементацию String в Java ... текст свёрнут, показать
     
  • 5.50, bootforce (?), 20:05, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Многабукв, с джаваскриптом все проще:

    1. ===
    2. '1'+1
    3. npm

     
     
  • 6.77, фттщ (?), 00:25, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Неосилятор не усвоил несколько простых правил приведений типов? Приводи явно через Number, String и тд. Конкатенация vs сложение, серьезно?
     
  • 6.86, Аноним (86), 04:10, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Неудачная попытка выдать плюсы за минусы?)
     
     
  • 7.91, Аноним (91), 07:39, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Почему плюсы и почему неудачная? Это базовые особенности языка, которые надо знать. Как и в любом языке. У js есть проблемы и похуже, но смеяться над ним за то, что написано выше - весьма глупо.
     
     
  • 8.96, Аноним (86), 11:56, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Почему плюсы - важная штука для сравнений по типам 1 1 валидно, но 1 ... текст свёрнут, показать
     
     
  • 9.121, коржик (?), 00:01, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    на проде у вас скорее всего будет так paidAmount receivedAmount, потерявший ... текст свёрнут, показать
     
  • 9.128, bootforce (?), 02:00, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что хорошего ... текст свёрнут, показать
     
  • 5.67, Anonimous (?), 21:57, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну хз У меня обратная ситуация 8212 пишу разнообразные бузиинассмен-приложен... большой текст свёрнут, показать
     
     
  • 6.78, фттщ (?), 00:28, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    sequelize не пробовал?
     
     
  • 7.95, Anonimous (?), 11:47, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он не умеет CTE и JSONB в PostgreSQL. У меня основные БД - PGSQL10.1+

    SQLAlchemy ORM — можно быстро расширить с помощью Core, потому необходимость работы JSONPath для 12+ реализовал через CTE и SA Core.

     
  • 4.34, Аноним (34), 18:26, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Т.е. память как не в себя уже не жрет? Или как обычно у ЖопоСкритозников - "640GB RAM хватит на все!"

    Вот эти вот колхозные тру стори 19-го века про память, рассказывай своим товарищам по офису. И ещё, вот эту статью распечатай и на лоб себе приклей https://bit.ly/3axCt1E.

    > В непредустановленном интерпретаторе Node и Java JIT тоже нет, но об этом скромно умалчиваем.

    Не знаю как в JAVA, но в V8 используется JIT. Соответственно и в ноде тоже JIT.

     
     
  • 5.76, Аноним (76), 00:18, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    То, что ЖСкриптозники понятия не имеют, как работает JIT и какие проблемы у JITо... большой текст свёрнут, показать
     
     
  • 6.83, Аноним (34), 01:42, 23/04/2020 Скрыто модератором
  • –1 +/
     
  • 3.14, vitalif (ok), 14:28, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Java толстое древнее г..., на котором пишут бизнес-быдлокод
     
  • 3.73, InuYasha (?), 23:33, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Java: для серьезных приложений,

    Главный признак серьёзности - это, наверное, регулярные ООМы, как у всяких эластиков.
    /сарказм
    Но мнение интересное, спасибо.

     
  • 2.9, коржик (?), 13:34, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы так вбросить пытаетесь?

    А к джаве нареканий нет, вроде всё нормально с ней.

     
     
  • 3.17, atk91 (ok), 14:39, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пока не начал разрабатывать под JVM, не мог представить, зачем нужно больше 16Гб памяти (если, конечно, сам явно не попросил у ОС столько)
     
  • 2.22, Аноним (1), 15:40, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тут традиционный хейт джаваскрипта. Так что Node.js объективно хуже.
     
     
  • 3.51, НяшМяш (ok), 20:08, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > традиционный хейт
    > объективно

    Даже не поспоришь )

     
  • 3.58, хотел спросить (?), 20:38, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это объективный hate JS. Давайте все-такие не путать теплое и мягкое.

    P.S. Java вполне годный язык. Правда пишу на нем очень редко.

     
  • 2.72, InuYasha (?), 23:29, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Задать вопрос и получить кучу минусов - оттак спрашивай у онанима. *facepalm*
     

  • 1.3, Анон Анонов (?), 12:12, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Улучшение диагностики и новые операторы это очень круто.
     
     
  • 2.24, Аноним (24), 16:31, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для тех кто прыгает по LTS релизам, там еще в 13-й версии включили по умолчанию ES6 imports(https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/impo) и в 14-й версии он тоже теперь есть.
    Я в тот день на радостях нажрался как свинья.
     
     
  • 3.26, mail (?), 16:44, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    свинья
     
  • 3.40, Аноним (40), 18:35, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты действительно свинья, раз читаешь MDN на русском.
     
     
  • 4.88, Аноним (24), 06:41, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты еще посетуй, что у меня локаль стоит ru_RU.UTF-8, и гугл мне выдает первым результатом ссылку на русский MDN. Я просто пытался прояснить причину моей радости непричастным к бекенд js-у.
     
  • 3.74, Весельчак У (?), 23:46, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пох на es6, как писал на commonjs, так и буду. Tc39 могут хоть сколько там друг другу новые спеки разносить.
     
     
  • 4.89, Аноним (24), 06:46, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это как раз не блажь коммона, а современный js в том виде в котором сейчас его пишут. Разумеется, авторы библиотек будут поддерживать синтакс коммон до EOL 12-й ноды, легаси тоже, но для проектов которые пишутся прямо сейчас это выглядит как не только как жуткий анахронизм, но еще и вредительство из-за веселья циклических ссылкок CommonJS и того факта что v8 может самостоятельно делать tree-shaking и не разбирать ненужный код(привет lodash и async)
     

  • 1.5, A.Stahl (ok), 12:38, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >серверной JavaScript-платформы

    Это как кирпичи из воздуха, чугунные литые подушки или лысые летающие ежи.

     
     
  • 2.15, vitalif (ok), 14:30, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вылезай из криокамеры, в ноде самый быстрый интерпретатор из всей скриптоты. Да еще и эвентлуп. Уж если на пхп, руби и питоне серверные приложения пишут, то на ноде-то точно можно
     
     
  • 3.23, Аноним (23), 16:01, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Вылезай из криокамеры, в ноде самый быстрый интерпретатор из всей скриптоты.

    Написан Google'ом, а ни как не разрабами NodeJS. Так что не их заслуга.

    > Да еще и эвентлуп

    libuv, тож не их.

    Т.е. все ништяки NodeJS к NodeJS не имеют отношения.

     
     
  • 4.30, vitalif (ok), 17:36, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    https://github.com/libuv/libuv

    > libuv is a multi-platform support library with a focus on asynchronous I/O. It was primarily developed for use by Node.js

    ОДНАКО речь вообще шла не о том, чья где заслуга - речь о том, что из ВСЕЙ скриптоты нода щас - самая быстрая.

    И поэтому комментарии от местной ылиты "фууууу джаваскрипт за сервере" вот вообще не уместны )

     
     
  • 5.32, Сишник (?), 18:19, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не уместны станут, когда на сервере запретят использовать всё, кроме скриптоты. И претензии к ноде в основном по потреблению памяти.
     
     
  • 6.52, НяшМяш (ok), 20:12, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пруфы в студию. А то мы сейчас мейнтейним кучу сервисов на ноде в продакшне и что-то проблем именно по потреблению памяти ни разу не вылазило. Утечки бывали конечно, но во всех случаях (кроме 1, там был баг в самой ноде) это была ошибка программиста.

    Например, на локалхосте команда node занимает 4 мегабайта. Свежезапущенный сервис с кучей кода но пока без запросов уже 48 метров. После минутного лоадтеста в пике занимал 150 мегабайт, после него подчистился до 70.

     
     
  • 7.59, Сишник (?), 20:39, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дум2 4мб занимал, а чтобы отдать джсонину меньше 70-150 никак нельзя занять?
     
     
  • 8.81, Lex (??), 01:34, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Шутка про 1 вкладку браузера, которая вполне может 1 гиг озу отжирать п с вы... текст свёрнут, показать
     
  • 8.84, Аноним (34), 02:08, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальное сравнение среды выполнения и API 96-го года с 2020-ым Просто генетал... текст свёрнут, показать
     
     
  • 9.93, Сишник (?), 10:51, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я делал отдачу джсонины по http с показаниями датчиков с микроконтроллера esp826... текст свёрнут, показать
     
  • 9.94, Сишник (?), 11:03, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хотите, используйте свою ноду, я против что ли Только не говорите, что она мало... текст свёрнут, показать
     
     
  • 10.97, Аноним (34), 12:40, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А сколько нужно Столько же, сколько ваш самописный калеч на ардуино Ну это на ... большой текст свёрнут, показать
     
     
  • 11.101, Сишник (?), 13:30, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кроме ноды есть много чего для бэка, вы хотите сказать, что нода - идеал, а всё ... текст свёрнут, показать
     
     
  • 12.106, Аноним (34), 15:28, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, как раз это вы пытаетесь так сказать Я вас поэтому и спросил, почему вы вз... большой текст свёрнут, показать
     
     
  • 13.109, Сишник (?), 18:37, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не пишу на ноде, но у меня был опыт пользования электроноподелий на ноуте с 12... текст свёрнут, показать
     
     
  • 14.111, Аноним (34), 19:29, 23/04/2020 Скрыто модератором
  • +/
     
     
  • 15.112, Сишник (?), 19:59, 23/04/2020 Скрыто модератором
  • +/
     
     
  • 16.115, Аноним (34), 20:52, 23/04/2020 Скрыто модератором
  • +/
     
     
  • 17.116, Сишник (?), 21:50, 23/04/2020 Скрыто модератором
  • +/
     
     
  • 18.117, Аноним (34), 22:41, 23/04/2020 Скрыто модератором
  • +1 +/
     
     
  • 19.119, Сишник (?), 23:31, 23/04/2020 Скрыто модератором
  • –1 +/
     
     
  • 20.124, Аноним (34), 00:30, 24/04/2020 Скрыто модератором
  • +/
     
  • 20.125, Аноним (34), 00:32, 24/04/2020 Скрыто модератором
  • +/
     
  • 12.107, Аноним (34), 15:30, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как-то странно, что нода их бустит, вопреки вашим словам ... текст свёрнут, показать
     
  • 8.131, НяшМяш (ok), 23:53, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А ничего, что чтобы отдать жсонину, нужно сходить в редис за кешем, в монгу скул... текст свёрнут, показать
     
  • 5.42, Аноним (28), 18:41, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так libuv форк чего-то там что было популярно до него, в питон его замечательно втащили. Питон с минимумом затрат разгоняется до уровня си (иногда буквально 1 переменную счётчик в цикле обзываешь интом, и вот твой цикл уже ускорился в 100000 раз, и ещё в 100 раз можно ускорить, если подтянуть numpy), да и батарейки все тоже сишные. У ноды нет такого варианта (да у той же жабы весь производительный код в нативных батарейках, у жс есть только тормозной nacl из опций). Т.е. сейчас все проблемы жс тупо забиваются более мощным железом. Не, плохо сравниваете.

    >самая быстрая

    Заслуга исключительно жита, которому надо жрать память и прогреваться. Тем временем жабу научили компилировать в нейтив, чем ускорили её в 1000 раз.

     
     
  • 6.47, Тетя Сара (?), 19:41, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Таки посмотрите на NAPI и wasm
     
     
  • 7.49, Аноним (28), 19:52, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, это есть, но там ведь песочница с ограничениями и пониженная производительность? Нейтив это нейтив всё-таки, в вебе ему нечего делать. Кроме того, я слышал, недавно и воркеры прикрутили, а то ведь 1-задачная нода это ещё печальней, чем однозадачный питон. Хотя нода менее однозадачной не стала от этого.
     
     
  • 8.108, Паша Зерриканский (?), 16:41, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https nodejs org api worker_threads html worker_threads_worker_threads https... текст свёрнут, показать
     
     
  • 9.110, Аноним (28), 18:42, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Всё же непонятно, в чём смысл сравнивать жит с интерпретатором Лучше какой-нибу... текст свёрнут, показать
     
  • 6.120, vitalif (ok), 00:00, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Питон с минимумом затрат разгоняется до уровня си

    Ага, щас. Ну покажи пример, только без PyPy.

    > Заслуга исключительно жита, которому надо жрать память и прогреваться.

    Там он хитрый и в отличие от жабы например код который исполняется 1 раз - интерпретирует и вообще не JIT-ит. За счёт этого и старт быстрый, и выполнение горячих участков быстрое.

    А жабу-то да, что-то там оптимизируют, но по факту никто это не юзает до сих пор. В целом по практике я считаю, что для типичных веб-приложений её глупо применять. Геморроя 10x, а профита никакого, даже возможно отрицательный. Там же не только в реализации JVM дело, JVM-то быстрая. Ещё сам язык важен + библиотеки к нему (философия, в которой они написаны) - вот это самая опа...

     
     
  • 7.123, Аноним (28), 00:05, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ага, щас. Ну покажи пример, только без PyPy.

    cython

    >без PyPy

    numba

    > Там он хитрый и в отличие от жабы например код который исполняется
    > 1 раз - интерпретирует и вообще не JIT-ит. За счёт этого
    > и старт быстрый, и выполнение горячих участков быстрое.

    Такая же VM и aot компиляция, в принципе. И жаба может байткод интерпретировать, только это медленно.

     
     
  • 8.132, vitalif (ok), 21:55, 26/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ситоны и ньютки быстрее обычного питона всего в несколько раз Вот pypy стремитс... текст свёрнут, показать
     
     
  • 9.133, Аноним (28), 22:15, 26/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нютка и тот второй транслируют питон в достаточно стрёмное компилируемое предста... большой текст свёрнут, показать
     
     
  • 10.134, vitalif (ok), 00:44, 27/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А, понятно, перепутал ситон с кем-то из ньюток Да не, pypy на горячих участках ... текст свёрнут, показать
     
  • 4.39, Аноним (40), 18:34, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > libuv, тож не их.

    Чей их? Разрабы libuv работают сейчас в IBM, который заинтересован в развитии Node.js.

     
  • 3.69, Аноним (69), 22:13, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вылезай из криокамеры, в ноде самый быстрый интерпретатор из всей скриптоты.

    Как будто дело в скорости…

     
     
  • 4.90, коржик (?), 07:02, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    да ладно, это же так интересно почитать, что быстрее, питон или нода
     
  • 2.29, Аноним (29), 17:13, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    о, крупнейший иксперт опеннета, нам важно ваше мнение
     

  • 1.10, th3m3 (ok), 13:36, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ноду даже создатель захейтил. И соглашусь с ним, что сегодня достаточно Go.
     
     
  • 2.12, Gemorroj (ok), 14:02, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    если бы не убогий синтаксис (как там эксепшены все еще планируются?) и инфраструктура (как там модули, нормально себя чувствуют?)
     
     
  • 3.70, Аноним (69), 22:14, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Эксепшены по-прежнему не нужны. Модули чувствуют себя прекрасно.
     
     
  • 4.98, Gemorroj (ok), 13:12, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Эксепшены по-прежнему не нужны. Модули чувствуют себя прекрасно.

    дадада, живи в мире розовых поней, промаркеченых гуглом, юный падаван

     
  • 2.25, Аноним (34), 16:36, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну во-первых: Хейт - это нечто большее и регулярное, чем просто адекватное подчёркивание недостатков.
    Во-вторых: Он же (создатель ноды) пилит новою ноду, которая называется Deno.
     
     
  • 3.33, th3m3 (ok), 18:23, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, пилит Deno, т.к. считает что Node.js - имеет фатальный недостаток. Но очень странно, когда можно просто использовать Go, как он и говорил.
     
     
  • 4.38, Аноним (34), 18:33, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, пилит Deno, т.к. считает что Node.js - имеет фатальный недостаток

    Интересно, какой?

     
  • 4.65, Аноним (65), 21:29, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    я так и не понял концепта Deno это вроде и не TypeScript язык и толком и не Node.js платформа.
    В чем смысл? Это как утащить шуруп после увольнения и пытаться его везде применить или спроектировать?
     
     
  • 5.79, Аноним (34), 00:30, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зайди на сайте deno в manual => introduction. Там тебе основные фичи deno расписаны, сравнение с нодой, его цели, философия и пр.
     
  • 5.122, vitalif (ok), 00:03, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да нет там концепта (т.е есть но бессмысленный). Просто кисо обиделось
     
  • 2.36, Аноним (40), 18:32, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Создатель давно уже ушел, до того как ее допилили до стабильного состояния. И не потому что, он нашел там фатальный недостаток, а потому что он хипстер.
     
  • 2.37, Аноним (40), 18:32, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, кстати, и Go тоже не айс по его мнению, они же rust используют теперь.
     
     
  • 3.43, th3m3 (ok), 19:03, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Rust - это уже следующий уровень развития, после Go :)
     
     
  • 4.56, Аноним (40), 20:34, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я про то, что он кидается от одного к другому. TJ Holowaychuk (visionmedia) тоже ушел из Node.js сказав, что все что ему надо уже давно есть в go, оставив за собой кучу модулей, которые более менее допилили до вменяемого состояния или бросили.
     

  • 1.27, Аноним (27), 16:44, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Добавлена экспериментальная поддержка API WASI (WebAssembly System Interface), предоставляющего программные интерфейсы для прямого взаимодействия с операционной системой (POSIX API для работы с файлами, сокетами и т.п.).

    Звучит так. Раньше было js -> node, теперь стало rust\c++\kotlin->wasm->node. Таким образом node всё меньше отличается от jvm  

     
     
  • 2.44, Аноним (44), 19:10, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Таким образом node...

    И его выкинут, как и все другие предыдущие технологии.

     
  • 2.82, Lex (??), 01:41, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Отчасти
    По большому счету, wasm - ультраминифицированный JS с некоторыми нюансами.

    Хотя, до этого уродливого динозавра, точнее, джавы, ему весьма далековато

     

  • 1.35, Аноним (40), 18:30, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Ну вот политика версионирования Node.js очень даже не плоха, в отличие, нарпирмер, от python 2 -> 3: небольшие обратно несовместимые измненения.
     
     
  • 2.45, Аноним (28), 19:30, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я понимаю, что вы все в силу возраста пропустили python 1 - 2, но было и такое ... большой текст свёрнут, показать
     
     
  • 3.46, Аноним (28), 19:32, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >2

    В 3 больше не надо наследовать object, так что это всё зависит только от того, насколько твой код был плох. У нормального кода нет проблем, и соломка подстелена за годы.

     
     
  • 4.54, Аноним (40), 20:18, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > У нормального кода нет проблем

    Да, именно поэтому они увеличили срок поддержки на 5 лет. Вы бы ради интереса глянули код крупных проектов, например, того же chromium, где по прежнему есть python 2. Если бы переход на 3 был простой и легкий, то ничего этобы не потребовалось.

     
     
  • 5.60, Аноним (28), 20:40, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Протухший софт, который никто не развивает. Особенно это касается проприетарного ПО, мигрирование стоит денег. Вон у виртуалбокса билд система сдохла лет 15 назад и она до сих пор на 2 питоне. Почему не свалят с неё? Потому что работает, а переезд стоит денег.
     
     
  • 6.61, Аноним (40), 20:50, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Протухший софт, который никто не развивает.

    Ну-ну протухший. Просто цена переезда большая и это ошибка разработчиков python, которые накопили целую пачку обратно несовместимых изменений.

    > Потому что работает, а переезд стоит денег.

    Но это везде так и это нормально. Гораздо больших денег будет стоит, если остаться на старой и неподдерживаемой версии.

     

  • 1.41, Аноним (40), 18:39, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну что могу сказать. Поздравляю всех причастных. А так жду:

    * Поддержки WHATWG Streams https://github.com/whatwg/streams
    * Добавления явного управления ресурсами https://github.com/tc39/proposal-explicit-resource-management (аналог context manager из python).
    * Декораторы для функций.

     
     
  • 2.48, Тетя Сара (?), 19:44, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да посмотрите вы таки на этих людей из TC39. Они же свинину заворачивают в лаваш как эти ваши функции. Декораторов таки не будет выше стейдж 2, помяните мое слово.
     
     
  • 3.53, Аноним (40), 20:16, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Есть проблемы с декораторами для function declaration, но для function expression их вроде нет. Про текущий stage 2 - там только декораторы для классов и методов.
     

  • 1.66, Аноним (65), 21:30, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда можно будет в Meson собирать моудли для Node.js, а то через жопу собирать черех node-gyp, который через Python 3, который через какие-то bat файлы... Короче нужен простой путь в одно слово static-library или типо того.
     
     
  • 2.68, Аноним (40), 22:06, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Их можно и сейчас собирать через него, но надо самому настраивать сборку.

    Кроме node-gyp есть еще cmake-js. А вообще вот обсуждение по теме https://github.com/nodejs/TSC/issues/648

     
  • 2.71, Аноним (69), 22:17, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Можно подумать, meson не через python3.
     
  • 2.92, Аноним (92), 08:34, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > node-gyp

    node-gyp объявили устаревшим и собираются потихоньку вычистить из ноды.

     
     
  • 3.113, Linus on selfisolation (?), 20:19, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Есть ссылки на это утверждение?
     
     
  • 4.129, Аноним (92), 08:12, 24/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/nodejs/node/issues/32814

    Вместо него будет использоваться gyp.js и ninja.js, перемещенные в ядро.

     

  • 1.75, SubGun (??), 00:10, 23/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://www.npmjs.com/package/pshe
     
  • 1.100, Аноним (100), 13:20, 23/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сегодня, по плану, еще и Ubuntu 2020.04 должна зарелизиться, кстати. Что-то тишина по этому поводу.
     
     
  • 2.105, Аноним (92), 14:27, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ubuntu 20.04 codenamed Focal Fossa will be released on April 23, 2020 i.e. today. It should be released around 1700 GMT but that’s just an estimation.
     
  • 2.114, Марк Шатлврот (?), 20:24, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все будет, ждите.
     

  • 1.118, коржик (?), 23:29, 23/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    коржик
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру