The OpenNET Project / Index page

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

Доступна JavaScript-платформа Node.js 21.0

21.10.2023 13:48

Состоялся релиз Node.js 21.0, платформы для выполнения сетевых приложений на языке JavaScript. Поддержка ветки Node.js 21.0 будет осуществляться в течение 6 месяцев. В ближайшие дни будет завершена стабилизация ветки Node.js 20, которая получит статус LTS и будет поддерживаться до апреля 2026 года. Сопровождение прошлой LTS-ветки Node.js 18.0 продлится до сентября 2025 года, а позапрошлой LTS-ветки 16.0 до апреля 2024 года.

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

  • Объявлен стабильным API Fetch, предназначенный для загрузки ресурсов по сети и упрощающий написание универсального JavaScript-кода, пригодного для работы на стороне сервера и клиента. Реализация основана на коде из HTTP/1.1 клиента undici и максимально приближена к аналогичному API, предоставляемому в браузерах. API включает в себя метод fetch() и объекты Headers. Request и Response, представляющие HTTP-заголовки, запрос и ответ.
    
       const res = await fetch('https://nodejs.org/api/documentation.json');
       if (res.ok) {
         const data = await res.json();
         console.log(data);
       }
    
  • Стабилизирована поддержка API WebStreams, предоставляющего доступ к потокам данных, полученным по сети. API даёт возможность добавить свои обработчики, работающие с данными по мере поступления информации по сети, не дожидаясь загрузки всего файла. В Node.js доступны такие объекты, как ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream и DecompressionStream.
  • Добавлена экспериментальная реализация API WebSocket. Для включения поддержки WebSocket предусмотрен флаг "--experimental-websocket".
  • Добавлен экспериментальный режим использования по умолчанию реализации JavaScript-модулей ESM (ECMAScript Modules, применяется в модулях для браузеров) вместо CommonJS (специфичен для Node.js). Изменение не затрагивает модули, формат которых явно определён через поле "type" в package.json, задан через флаг "--input-type" или очевиден в силу расширения файла (.mjs для ESM, .cjs для CommonJS). При этом модули, которые явно не определены как CommonJS (например, имеют расширение ".js"), при включении нового режима будут восприниматься как модули ESM. Для активации новых настроек модулей предложен флаг "--experimental-default-type".
  • Движок V8 обновлён до версии 11.8, применяемой в Chromium 118, в котором появилась поддержка метода ArrayBuffer.prototype.transfer, возможности группировки массивов (метод groupBy) и WebAssembly-инструкций обработки констант (i32.add, i32.sub, i32.mul, i64.add, i64.sub и i64.mul).
  • Прекращена поддержка обработчика globalPreload, вместо которого для настройки модулей следует использовать вызовы register и initialize.
  • В функцию fs.writeFile добавлена опция "flush" для принудительного сброса данных на накопитель после каждой операции записи.
  • Повышена производительность кода, связанного с разбором URL, API fetch, streams, node:fs и HTTP.
  • Добавлен глобальный объект navigator. Например, для получения данных о числе ядер CPU можно использовать свойство navigator.hardwareConcurrency.
  • В параметре "--test" добавлена поддержка glob-масок для выбора запускаемых тестов (например, можно указать "--test **/*.test.js.").
  • Обновлены входящие в комплект пакетный менеджер npm 10.2.0 и парсер llhttp 9.1.2.
  • Прекращена поддержка Visual Studio 2019 и версий macOS старее 11.0.

Платформа 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-приложении, работающем в браузере.

  1. Главная ссылка к новости (https://nodejs.org/en/blog/ann...)
  2. OpenNews: Доступна серверная JavaScript-платформа Node.js 20.0
  3. OpenNews: Доступна серверная JavaScript-платформа Bun 1.0, более быстрая, чем Deno и Node.js
  4. OpenNews: Атака на Node.js через манипуляции с прототипами объектов JavaScript
  5. OpenNews: Автор Node.js представил защищённую JavaScript-платформу Deno 1.0
  6. OpenNews: Представлен Ayo, очередной форк проекта Node.js
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59969-nodejs
Ключевые слова: nodejs, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (123) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 15:45, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    >Добавлен экспериментальный режим использования по умолчанию реализации JavaScript-модулей ESM (ECMAScript Modules, применяется в модулях для браузеров) вместо CommonJS

    Я 5 лет назад пробовал этим воспользоваться на GitHub Actions - не работало. Какие же они слоупоки.

     
     
  • 2.16, Аноним (16), 16:38, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А кто вам мешал упаковать эти модули в один файл ES5? Более того, зачем так сильно заморачиваться для Github Actions?
     

  • 1.4, Аноним (4), 15:52, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Почему серверная? Использую на клиенте.
     
     
  • 2.159, Пряник (?), 10:18, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Платформа Node.js может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ.
     

  • 1.5, Аноним (5), 15:54, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Для скриптования handy-скриптов не приложений лучше питона ничего нет Я как я... большой текст свёрнут, показать
     
     
  • 2.9, Вы забыли заполнить поле Name (?), 16:12, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > - Очень легко скачивать файлы по http(s). В ноде-16 приходится писать бойлерплейт в один лист А4, чтобы просто скачать файл. И все равно реализация будет ошибочной, так как надо слишком у слишком многих объектов слушать on('error'). Наконец-то в 2020-каком-то году в ноде сделали fetch().

    Просто в ноде было низкоуровневое апи изначально когда еще не было промисов и async/await в стандарте ecmascript. Это кстати одна из причин почему все тащат кучу всего из npm.

     
  • 2.14, Аноним (14), 16:33, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Очень легко скачивать файлы по http(s).

    Открой для себя curl или wget какой-нибудь.

     
     
  • 3.165, User (??), 07:31, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ... и погрузись в волшебный мир bash-скриптинга, ага.
     
  • 2.33, Аноним (33), 17:18, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Питон имеет отличные биндинги к GI

    Это не питон, а сишный Glib имеет отличные биндинги примерно ко всем языкам, и к джаваскрипту в том числе

     
  • 2.49, Аноним (49), 18:22, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В sh, который из /bin, есть getopts для парсинга флагов, а в системе с вероятностью 99.99% есть референсные реализации архиверов и curl / wget для скачивания. Про пайпы, редиректы и просто файловые дескрипторы уже молчу. Какой-то продвинутой логики и фильтрации там лучше не делать, но это и не всегда требуется.
     
  • 2.52, Илья (??), 18:35, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    на питоне писать более 500 строк кода такое себе
     
     
  • 3.139, анонист (?), 17:21, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    питон для этого и не предназначен; питон это про мелкие скрипты-хеллоувроты
     
     
  • 4.140, Аноним (140), 17:32, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Питон действительно не предназначен для проектов на больше чем миллион строк кода, но сопровождение таких проектов будет довольно болезненным занятием независимо от языка. Последнее время с добавлением типизации ситуация начинает улучшаться для питона.
     
  • 2.59, Аноним (59), 19:04, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если уж говорить о том, где что есть из коробки, то вообще победит php. Только зачем? Модульность - это плюс, а не минус.
     
     
  • 3.63, Аноним (63), 19:12, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > победит php

    Аж жир из монитора закапал.

     
     
  • 4.168, Вы забыли (?), 08:47, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ~ s/жир/елей/
     

  • 1.6, Аноним (6), 16:04, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нода рулит, однако это не только и не столько серверная платформа, а кросс-платформенная среда выполнения JS кода.
     
     
  • 2.7, Аноним (7), 16:06, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Главное достижение ноды - электрон, остальное такого же эффекта не принесло
     
     
  • 3.13, Аноним (14), 16:31, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Каждый второй микросервис в глубоком бэкенде крутится на ноде.
     
     
  • 4.32, YetAnotherOnanym (ok), 17:09, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > в глубоком бэкенде

    А вот это очень тонко! Зачот.

     
  • 4.53, Илья (??), 18:36, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    мы дотнет выбрали для себя.
     
     
  • 5.66, Аноним (63), 19:23, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > мы дотнет выбрали для себя.

    Сервера на винде чтоль?

     
     
  • 6.83, Илья (??), 21:25, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    он уже лет 5 на линуксах в контейнерах гоняет
     
     
  • 7.86, Аноним (86), 21:46, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А мсье знает толк в извращениях
     
     
  • 8.101, FF (?), 23:39, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У одного нода в backнице очень глубоко сидит Аж на гиг во все стороны У другог... текст свёрнут, показать
     
     
  • 9.149, Аноним (149), 23:02, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    С разморозкой вас - asp net уже давно нативно работает под linux без всяких mono... текст свёрнут, показать
     
  • 6.173, Аноним324 (?), 13:27, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А ничего что современный .NET уже лет 7-8 работает под линуксами, собственно потому что в азуре крутятся разные линуксы.
     
  • 3.17, Аноним (16), 16:45, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я часто на ноде пишу вспомогательные программы — перенос файлов, специальные реверс-прокси сервера для нужд проекта, какие-либо особые операции. Просто JS знаю хорошо и получается быстро. На пайтоне тоже писал из-за того что один сервис именно его поддерживал, но медленно.
     
     
  • 4.102, FF (?), 23:41, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В итоге если сложить паззлв проектика, бюджетного сокета по ОЗУ хватит нового или нет?
     
  • 3.122, th3m3 (ok), 02:32, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Дак электрон - днище, какое же это достижение?
     
     
  • 4.129, Бывалый смузихлёб (?), 06:33, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    норм производительность и возможность подключения нативных модулей
    норм производительность графики и поддержка аппаратного ускорения прямо из коробки
    полностью бесплатно


    Вдобавок, нередко десктопные клиенты требуются на несколько ОСей и уже при наличии веб-версии
    В случае с электроном вопрос лишь в запаковке веб-версии в форму десктопного приложения( мб с какими-то правками ) - и готово приложение на несколько ОС. Это даже не недели, а дни
    А не месяцы и годы, ещё и наверняка несколько разных команд, для случая целенаправленной разработки на не_электроне. И не факт что по итогу получится хотя бы такого же качества

     

  • 1.11, Аноним (14), 16:29, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Лучший язык, лучшая платформа с развитой экосистемой! Всё чаще убеждаюсь что в своё время сделал правильный выбор соскочив с php на js.
     
     
  • 2.57, _ (??), 18:57, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Сорта (С)
     
  • 2.103, FF (?), 23:44, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да куда уж хуже то? Обратно на вордпрессы переходите
     

  • 1.15, Аноним (63), 16:37, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Откуда у некоторых людей такая ненависть к JS и Node в частности?
     
     
  • 2.18, Аноним (16), 16:47, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Они его не знают, а я лично все чаще сталкиваюсь что он необходим.
     
     
  • 3.164, Аноним (164), 05:52, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пару раз писали что-то системное и поняли, что это полное барахло. И экосистема зеленая и сама платформа не расширяемая и сама платформа корявая.

    Проще взять классический C++ и написать что тебе нужно...

     
  • 2.26, YetAnotherOnanym (ok), 17:06, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Откуда у некоторых людей такая манера снова и снова задавать давным-давно жёванные-пережёванные вопросы?
     
     
  • 3.30, Аноним (63), 17:07, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так это тебя спросить надо, ты ж задаёшь
     
  • 2.41, Аноним (41), 17:43, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Когда же эта тухлая технология уйдёт туда же, куда ушли flash, java-апплеты, activex и им подбные?
    Приложения - виртуальным машинам, веб - веб-браузерам. Нужно отделять мух от котлет.
     
     
  • 3.74, Вы забыли заполнить поле Name (?), 20:30, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Гугл и другие конторы ввалили кучу денег и средств в js движки и веб платформу в частности. Поэтому не скоро.
     
  • 3.82, Аноним (82), 21:23, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Всё равно разделятся, когда нынешние "комбайны" не смогут шевелиться на подавляющем большинстве клиентов - "закон мура"-то ведь давно неактуален.
    Не "гениальные js-веб-программисты", а банально "рыночек порешает":
    нет клиентов -- нет доходов -- нет заказчика -- нет "гениального js-веб-сайта".
     
     
  • 4.128, Бывалый смузихлёб (?), 06:26, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    закон мура - изначально был рекламной ерундой как нынешние "нанометры" в процессорах

    По остальному. Нода - это не только жс
    В ней огромное количество пакетов и модулей с нативной частью. Да-да, немалое количество пакетов идут с исходниками которые компилятся в ходе установки под конкретную архитектуру и окружение

    Нода в общем и целом удобна даже для написания каких-то вспомогательных скриптов. Обилие пакетов под любой функционал тому способствует. А то что полученный скрипт можно будет без проблем запускать под разными ОСями и на разных архитектурах - ещё один приятный бонус

     
  • 3.119, Аноним (119), 01:50, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно же когда будет альтернативная и более перспективная технология. Я тут вспомнил одну шутку про одну страну: "Давай сначала скушаем твоё, а потом каждый своё".
     
  • 2.44, Аноним (44), 18:03, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Такого бардака как в экосистеме Ноды больше нигде нет. Ни в Питоне, ни в ПХП.
     
     
  • 3.48, Аноним (63), 18:21, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У ПХП в принципе нет экосистемы. ПХП это шаблонизатор никому не нужный во времена когда страницы отрисовываются на стороне клиента.
     
     
  • 4.50, Аноним (44), 18:27, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Надеюсь, эти времена скоро закончатся.
     
     
  • 5.51, Аноним (63), 18:31, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И все снова перейдут на православный четвёртый пень и WEB 1.0? Да, хорошее время, можно было грести бабло лопатой клепая лэндинги и интернет-магазины на вротпресс.
     
     
  • 6.64, Аноним (44), 19:16, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Есть случаи, где логика приложения на клиенте востребована и даже необходима. Но подавляющему большинству существующих сайтов это не только не нужно, но и просто вредно.
     
     
  • 7.65, Аноним (63), 19:21, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сайты сами по себе как явление скоро уйдут в прошлое. Все пересядут на приложения, маркетплейсы и соцсети. Просто спроси у молодёжи младше 25 лет насколько часто они пользуются браузером и пользуются ли вообще.
     
     
  • 8.67, Аноним (44), 20:23, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Было уже - Ничего не будет Ни кино, ни театра, ни книг, ни газет 8211 одно ... текст свёрнут, показать
     
     
  • 9.69, анонист (?), 20:24, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    собственно так и есть, только не телевизор, а интернет ... текст свёрнут, показать
     
  • 8.123, Аноним. (?), 03:28, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Младше И тут, а не в Фасебук ... текст свёрнут, показать
     
  • 3.95, Вы забыли заполнить поле Name (?), 22:40, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Ни в Питоне

    Да ладно. Чего стоят pip (отдельный и в составе python3), pipenv, poetry, conda...

     
  • 2.58, _ (??), 19:01, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что некоторым людям приходится использовать софд(C) написанный на этом :(
    По своей воле же - ни-ни-ни, только за деньги и всё равно моё чуйство пгрегкрагсного страдает! :-р :)
     
  • 2.68, Вы забыли заполнить поле Name (?), 20:23, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Откуда у некоторых людей такая ненависть к JS и Node в частности?

    Потому что часто на js и node пишут люди без профильного образования, которые выбрали js из-за наиболее просто кривой обучения. Потом мы имеем помойку кривых модулей в npm, которые используются в таких же кривых проектах.

     
     
  • 3.73, анонист (?), 20:30, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    у меня вот профильное образование, но ничего из того что я учил мне не пригодилось в разработке; образование это ко всяким математикам, физикам, писателям игровых движков, биг дата, нейронки, торговые роботы и т.д. но точно не для вэбни
     
     
  • 4.75, анонист (?), 20:34, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    п.с. есть коллеги кодеры вообще без вышки которые просто мастерски решают задачи и которые зарабатывают очень приличные деньги; в то же время полно примеров где инженеры с образованием протирают штаны в госе или военке за гроши перед элт мониторами
     
     
  • 5.78, Вы забыли заполнить поле Name (?), 20:36, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Речь скорее про тягу к обучению. Многим, кто пришел в js - это не надо. Просто им хочется "больших денег" и не хочется особо ничего изучать. Ну либо они думают, что делают что-то очень важное, когда пишут очередной leftpad и грузят его на npm.
     
     
  • 6.126, Бывалый смузихлёб (?), 06:18, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    вначале придумать какую-то ерунду, потом всерьёз поверить в неё и героически пытаться обосновывать

    В жс огромная куча нюансов и подводных камней( особенно весело было до стрелочных функций. У обычных - даже this разный в зависимости от того как и откуда вызывалась конкретная функция )

    Изучать в жс надо огромное количество всего, т.к обычно он используется не самостоятельно а в связке с чем-то
    И учиться надо постоянно, т.к постоянно появляется что-то новое и выкидывается что-то старое. Появляются новые пакеты, забрасываются старые

    Это тебе не на какой-нибудь 8-й джаве прогать

     
  • 4.76, Вы забыли заполнить поле Name (?), 20:35, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > у меня вот профильное образование, но ничего из того что я учил мне не пригодилось в разработке

    И какое образование у тебя? Что за разработка?

    > но точно не для вэбни

    Что такое вэбня в твоем понимании?

     
  • 4.77, анонист (?), 20:36, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    так что больше от человека зависит, от его интеллекта, умения работать, пробиваться, а не наличия бумажки
     
     
  • 5.79, Вы забыли заполнить поле Name (?), 20:39, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вот js сообществе как раз какое-то засилие криворуких и низкоинтеллектуальных. Достаточно сделать npm install в среднестатистическом проекте и посмотреть, что прилетает.
     
     
  • 6.174, Аноним324 (?), 13:30, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем быть высокоинтеллектуальным для того чтобы выполнять свою работу?
     
     
  • 7.176, Вы забыли заполнить поле Name (?), 19:10, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > А зачем быть высокоинтеллектуальным для того чтобы выполнять свою работу?

    Когда в следующий раз сантехник тебе соединит в ванной трубу не напрямую, а протянет сначала через всю квартиру, ты мне ответишь на этот вопрос.

     
     
  • 8.177, Аноним324 (?), 13:02, 27/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ну он так не сделает, по одной до тупости простой причине, для этого придётся до... текст свёрнут, показать
     

     ....большая нить свёрнута, показать (31)

  • 1.20, Аноньимъ (ok), 17:00, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пробежался бегло по изменениям, ну и муть.

    С тем-же успехом можно на сишке голый ивент луп писать, будет проще быстрее и в целом адекватнее.

    Откуда это почему и зачем?

     
     
  • 2.25, Аноньимъ (ok), 17:06, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > В функцию fs.writeFile добавлена опция "flush" для принудительного сброса данных на накопитель после каждой операции записи.

    Это вообще прелестно. Реально какой-то сюр.

     
     
  • 3.46, Аноним (49), 18:14, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь можно писать в обход буфера, где сюр?
     
     
  • 4.54, Аноньимъ (ok), 18:43, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Теперь можно писать в обход буфера, где сюр?

    Сюр в том что до сих пор было нельзя.
    Это инопланетяне используют.

     
     
  • 5.80, Вы забыли заполнить поле Name (?), 21:02, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> Теперь можно писать в обход буфера, где сюр?
    > Сюр в том что до сих пор было нельзя.
    > Это инопланетяне используют.

    Кто сказал, что нельзя было? Есть отдельный sync и datasync как в POSIX.

     
  • 2.29, Аноним (63), 17:07, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > С тем-же успехом можно на сишке голый ивент луп писать, будет проще быстрее и в целом адекватнее.

    Давай сразу на ассемблере.

     
     
  • 3.45, Аноньимъ (ok), 18:08, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> С тем-же успехом можно на сишке голый ивент луп писать, будет проще быстрее и в целом адекватнее.
    > Давай сразу на ассемблере.

    Внезаптно, это не так уж сложно. Особенно с современными средствами разработки.

     
     
  • 4.47, Аноним (63), 18:20, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Особенно с современными средствами разработки.

    Ахах... ну удачи. П.с. ты всё же проверяй на работоспособность СИшный и ассемблерный код который выдаёт чатжпт, ибо он в 99% нерабочий.

     
     
  • 5.55, Аноньимъ (ok), 18:45, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу видно html программиста, который о том как это у людей работает представления не имеет, и ничего кроме этой жуткой ноды в жизни не видел.
     
     
  • 6.125, Аноним (63), 04:28, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Сразу видно html программиста

    А ты вообще не программист раз пишешь фигню про ассемблер. Твой максимум это хеллоувроты.

     
     
  • 7.133, Аноньимъ (ok), 13:19, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ночью спать надо, а вы чем занимаетесь? Стыд и срам.
     
  • 4.171, Аноним (171), 22:13, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Внезаптно, это не так уж сложно. Особенно с современными средствами разработки.

    И как, продвижение есть в твоём мега проекте?

     
  • 2.72, Вы забыли заполнить поле Name (?), 20:28, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > С тем-же успехом можно на сишке голый ивент луп писать, будет проще быстрее и в целом адекватнее.

    Нода использует libuv, который как раз "голый ивент луп", правда кросплатформенный. Можно посмотреть в его код и понять получится ли "проще быстрее и в целом адекватнее".

     
     
  • 3.84, Аноньимъ (ok), 21:34, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну я понятно гиперболирую.

    Просто, из того что я вижу, эта нода не делает ничего что не умели бы другие платформы. Ну допустим тот же дотнет. При этом беглый взгляд на интерфейсы вызывает недоумение. Может оно всё очень красиво и логично конечно, но судя по комментариям анонимных экспертов, похоже что нет.

    При этом инструмент странный со всех сторон вообще. Ну например не имею ничего против языков с динамической типизацией, но э, не иметь того же инта, и по умолчанию странным образом кастовать всё во всё... Тоесть в браузе выбора у тебя нет, но во имя какого Сатаны это тащить из него?

    У меня было заблуждение на счёт ноды, я думал что на ней вот ваще просто просто всё можно делать, а похоже что нет.

     
     
  • 4.88, Аноним (86), 21:52, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Динамическая типизация, отсутствие указателей и ссылок - это благо. К этому надо стремиться и на основе этого развивать все современные языки. Нужно программы писать, а не мастурбировать на лишние пару мегабайт сэкономленной памяти и пару тактов твоего четвёртого пня.
     
     
  • 5.90, Аноним (140), 21:55, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это устаревшие технологии зари становления науки. Ты буквально предлагаешь всех загнать обратно в пещеры.
     
     
  • 6.91, Аноним (86), 21:59, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Устаревшие технологии это экономить каждый такт и каждый байт вглядываясь в регистры и память в ассемблерном отладчике. Сегодня делать выбор языка лишь основываясь на его эффективности в плане ресурсов максимально бредово, учитывая то что железо люди обновляют практически каждые 2-3 года. Ну а если человек сидит на древнем железе то он априори неинтересен для бизнеса и на таких людей равняться точно не стоит.
     
     
  • 7.92, Аноним (140), 22:17, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как раз без ручного использования регистров процессора и постоянного контроля генерации кода практически ни одной серьёзной программы ни на одном языке не напишешь. И особенно это касается динамически типизированных языков, в них приходится постоянно думать о каждой "автоматически" совершаемой операции, включая касты типов. Люди, которые этого не понимают, действительно никому не интересны.
     
  • 4.93, Вы забыли заполнить поле Name (?), 22:25, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну например не имею ничего против языков с динамической типизацией, но э, не иметь того же инта, и по умолчанию странным образом кастовать всё во всё...

    Это в стандарте нет (хотя сейчас уже есть bigint) и максимальный представимый инт в js - это 2^53 - 1, но современные движки не настолько тупые, чтобы все хранить в double.

    > Тоесть в браузе выбора у тебя нет, но во имя какого Сатаны это тащить из него?

    В С или С++ в раширении для ноды ты спокойно можешь гонять инты туда/сюда https://nodejs.org/dist/latest-v18.x/docs/api/n-api.html#napi_create_int64

     
     
  • 5.96, Аноньимъ (ok), 23:09, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так при помощи нехитрых присоблений, смекалки, буханки белого или чёрного хлеба, можно сделать троллейбус. Но зачем?

    О интах, неплохо когда оно безразмерное, как в лиспе или Питоне.

     
     
  • 6.104, Вы забыли заполнить поле Name (?), 23:44, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Так при помощи нехитрых присоблений, смекалки, буханки белого или чёрного хлеба, можно
    > сделать троллейбус. Но зачем?

    В lua интов тоже не было до версии 5.3. То есть с 1993 до 2014 года никого от использования это не останавливало.

    > О интах, неплохо когда оно безразмерное, как в лиспе или Питоне.

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objec

     
  • 6.112, Аноним (63), 00:22, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Так при помощи нехитрых присоблений, смекалки, буханки белого или чёрного хлеба, можно сделать троллейбус. Но зачем?

    Так это тебя надо спросить, ведь это ты собирался event loop писать на ассемблере с использованием чатжпт. Я теперь надолго к тебе прицепился))

     
  • 4.94, Вы забыли заполнить поле Name (?), 22:33, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну допустим тот же дотнет.

    На js как раз и пишут те, кто дотнет в глаза не видел.

    Хотя вот разрабы из ms пытаются в стандарт протащить некоторые идеи оттуда.

     
     
  • 5.97, Аноньимъ (ok), 23:10, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не только дотнет...
     
  • 5.111, Аноним (63), 00:21, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Крутить дотнет на линпусе это извращение, уж лучше java тогда.
     
     
  • 6.131, Советский инженер (ok), 09:25, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а зачем его крутить? он сам крутится.
     
  • 5.135, Чолхан (ok), 13:49, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    C# устарел сразу после появления, в самом языке нет поддержки многозадачности (нет также в Java и Python) - она реализуется библиотечно. В JavaScript, как ни странно, - из коробки. Эволюция, как правило, устраняет специализированные закрытые системы, бронтозавр уступает место мышке.
     
     
  • 6.148, Аноним (148), 22:59, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И чем джаваскриптовый setTimeout(рутина) принципиально отличается от джавового new Thread(рутина).start()? В джава ещё мощнее, рутины не одним потоком выполняются
     
  • 2.175, Аноним324 (?), 13:31, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну запусти сишку в браузере
     

  • 1.22, YetAnotherOnanym (ok), 17:03, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > API Fetch

    Круто будет, если эта штука позволит в запущенном приложении подтягивать js-код для выполнения на сервере из произвольных источников. Это поднимет помоечность ноды на новый, доселе невиданный уровень.

     
     
  • 2.27, Аноньимъ (ok), 17:06, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет предела совершенству!
     
  • 2.35, Аноним (33), 17:22, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Внезапно, запущенное приложение сможет выполнять код.

    Если вы про недоверие к загруженному коду из сети, то это не повод вырезать сетевые апи.

     
  • 2.60, Аноним (59), 19:06, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    При чем тут это?
    Просто добавлен более удобный http-клиент.

    Сделать eval() можно было всегда. Дурак всегда найдет, как себе в ногу выстрелить.

     
     
  • 3.134, Аноним (134), 13:47, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    fix> YetAnotherOnanymи всегда найдет, как себе в ногу выстрелить.
     

  • 1.31, Аноним (31), 17:08, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > При написании приложений для node.js необходимо учитывать специфику событийно-ориентированного программирования, например, вместо выполнения "var result = db.query("select..");" с ожиданием завершения работы и последующей обработкой результатов, в Node.js использует принцип асинхронного выполнения, т.е. код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдёт к дальнейшему коду, а результат запроса будет обработан по мере поступления данных.

    Можно поинтересоваться у автора, копирующего эту давно неактуальную чушь из новости в новость: а зачем тогда в этой новости приведен пример с const res = await fetch('https://nodejs.org/api/documentation.json'); ?

     
  • 1.61, Аноним (61), 19:07, 21/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    И зачем это медленное поделие, когда есть bun?
     
     
  • 2.70, Вы забыли заполнить поле Name (?), 20:25, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Верить тестам производительности проекта конкурента - такое себе.
     
     
  • 3.146, Вездеход (?), 20:43, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем верить Что мешает самому сделать такой тест 1 Bun let n 0 const s... большой текст свёрнут, показать
     
     
  • 4.150, Вы забыли заполнить поле Name (?), 23:21, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем верить? Что мешает самому сделать такой тест? :)

    Жизненный тест прям. Сделай такой же для go и посмотри результаты и ответь на вопрос: нужна ли нода?

     
     
  • 5.166, Аноним (166), 07:38, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вполне нормальный тест. Еще на ассемблере потребуй реализовать, демагог.
     
     
  • 6.169, Вы забыли заполнить поле Name (?), 14:18, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Вполне нормальный тест. Еще на ассемблере потребуй реализовать, демагог.

    Нормальный тест? Это аналог привет мира. Делать на основе этого выводы о производительности - бред. Никто не бросится переписывать приложения с кучей логики, где узкие места совсем в другом месте.

    А пример с go действительно показательный в таком случае: код по сложности понимания такой же, а производительность будет сильно выше. Теперь все на go переписать?

    Твоё предложение про асм - как раз и есть демагогия.

     
     
  • 7.170, Вездеход (?), 15:16, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Верить тестам производительности проекта конкурента
    > Жизненный тест прям. Сделай такой же для go
    > Никто не бросится переписывать приложения с кучей логики

    Ты так быстро спрыгиваешь с одной темы на другую, что уже сам запутался :)

     
     
  • 8.172, Вы забыли заполнить поле Name (?), 13:17, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня все логично, не нужно переводить стрелки Ты привёл в пример тесты самого... текст свёрнут, показать
     
  • 2.108, FF (?), 23:52, 21/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Когда есть Go и WebASM
     
     
  • 3.110, Аноним (63), 00:19, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Гошка не взлетела. Даже у нас в компании пробовали её, но не увидели особого смысла, плюс спецов почти нет.
     
     
  • 4.132, FF (?), 09:30, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У гошки нет альтернатив в горутинности, которая эффективнее многопоточности
     
     
  • 5.137, Советский инженер (ok), 16:08, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    что значит нет альтернатив? async/await всякие вполне себе альтернатива.
    а недавно в яву завезли виртуальные потики. чем не альтернатива?
     
  • 4.136, Аноним (136), 14:45, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Так и пиши "Go в нашей компании не взлетел".
    Странно, почему у других Go взлетел?
    Достаточно ли прямы ваши ручонки и под что они заточены?
     
     
  • 5.138, анонист (?), 17:15, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    список вакансий говорит о многом, так что вы, неуважаемый эксперт по всем языкам мира, не правы
     
     
  • 6.141, Аноним (136), 18:35, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    И что? По Rust вакансий почти нет. Из этого делаем вывод, что Rust херня и у нас прямые ручонки? Миллионы мух не могут же ошибаться?
     
     
  • 7.167, Аноним (166), 07:40, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >По Rust вакансий почти нет. Из этого делаем вывод, что Rust херня

    Эээээ... Да?

     
  • 4.154, Аноним (59), 02:17, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Любой, кто имеет приличный опыт разработки и на Си, и на каком-нибудь более высокоуровневом языке с gc, изучит go за пару дней, а через неделю будет писать продакшен-код.
     
     
  • 5.156, _ (??), 04:55, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет.
    Есть те, кому зашло - и они таки будут.
    А есть те, кому не зашло и они будут жалистно выпрашивать чего то другого - плюсы, жабу, ржавчик, ноду или свиной хрящик.

    Я к примеру "имел в виду" тащить разработку на тулесе который мне поперёк, ну дык и Го не всем - вдоль :) Нормально, так всегда было.
    Тут главное смотреть не какая бабаягапротив, а чего сделали те кто - за. Гошники - [ОИ]го-го :) сколько вещей наклепали которые в работе каждый день. Некоторые я люто хейтю (доскер) но мне за них деньги платють так чтЭээ ... :)

     
     
  • 6.162, Аноним (59), 19:27, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну не знаю, это какой-то инфантилизм. У меня в одном проекте были и java, и nodejs, и go. Джава для бэкенда с числодробилками и AI, nodejs для миддлвари и вебсокетов, go для инфраструктурных микросервисов. Просто брал то, что лучше подходило для конкретной задачи.
     
  • 2.160, ooko (?), 11:14, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сырая булочка еще
    '''
    async function testA(data) {
        var data = data;
        console.log(data); // Bun v1.0.7 выдал undefined
    };
    function testB(data) {
        var data = data;
        console.log(data); // Bun v1.0.7 выдал {xx: 11}
    };
    testA({xx: 11});
    testB({xx: 11});
    '''

     
     
  • 3.161, Вездеход (?), 12:40, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, неторопливый async может иногда "выбесить" :)

    '''
    async function testA(data) {
        var data111;
        await (() => { data111 = data })();
        console.log(data111);
    };

    function testB(data) {
        var data = data;
        console.log(data);
    };

    testA({xx: 11});
    testB({xx: 22});
    '''

    Вывод:
    {
      xx: 22
    }
    {
      xx: 11
    }

     

  • 1.151, Аноним (151), 23:40, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    (дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core)
    уже в архиве
     
  • 1.158, Пряник (?), 10:16, 23/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А где предыдущие новости? Или чем так примечательна эта не-LTS версия?
     
  • 1.163, Аноним (-), 20:18, 23/10/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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