LINUX.ORG.RU

Вышел Node.js 19.0

 ,


0

3

18 октября состоялся релиз серверной платформы на языке JavaScript Node.js 19.0.

Node.js 19.0 заменит Node.js 18 и станет «текущей» версией со сроком поддержки до апреля 2023 года, тогда как 18я версия после стабилизации перейдет в статус LTS.

Из изменений:

  • Добавлена возможность запуска в режиме «наблюдения» с использованием опции node --watch. Запуск в этом режиме перезапускает процесс при изменении импортированного файла:
    node --watch index.js
    

    Эта функция доступна в версиях 19.0.0 и 18.11.0+.

  • Начиная с этого выпуска, Node.js по умолчанию для keepAlive устанавливает значение true. Это означает, что любое исходящее HTTP(S) соединение будет автоматически использовать HTTP 1.1 Keep-Alive. Продолжительность поддержания активности по умолчанию составляет 5 секунд. Включение функции Keep-Alive обеспечит лучшую пропускную способность, поскольку соединения по умолчанию используются повторно.
    • Кроме того, агент теперь может анализировать ответ Keep-Alive, который могут отправлять серверы. Этот заголовок инструктирует клиента о том, как долго он должен оставаться на связи. С другой стороны, в Node.js HTTP-сервер теперь автоматически отключает бездействующие клиенты (которые используют HTTP Keep-Alive для повторного использования соединения) при вызове close()).
  • API WebCrypto теперь стабилен, за исключением следующих алгоритмов:
    • Ed25519,
    • Ed 448,
    • X25519,
    • X448.
  • Удален флаг --experimental-specifier-resolution. Его функциональность теперь может быть достигнута с помощью пользовательских загрузчиков.
  • Удалена поддержка DTrace/SystemTap/ETW. Основная причина заключается в расстановке приоритетов ресурсов. Сложность поддержания поддержки в актуальном состоянии оказалась нецелесообразной без четкого плана поддержки этих инструментов.
  • Движок V8 обновлен до версии 10.7, которая является частью Chromium 107. Эта версия включает в себя новую функцию JavaScript API: Intl.NumberFormat.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Ответ на: комментарий от Unixson

Ну так я ж написал - BI, крупная коммерческая организация.

Shadow ★★★★★
()
Ответ на: комментарий от Unixson

Могу ровно это сказать про жаваскрипт. Прям один в один. Вечные проблемы с зависимостями. Вечные проблемы с версией ноды. Вечные проблемы с мусорным нпм. Код написан через одно место. Если мне приходится работать с проектами на ноде, первое, что я делаю, это переписываю их на спринге. А жава хорошая, грэдл не пользую, к мавену претензиев нет. Версия жавы одна - последняя и с ней всегда всё работает.

Typescript в теории хорош, но тулинг всё портит, конечно. deno штука многообещающая, посмотрим, может лет через 10 и сможет жаваскрипт в энтерпрайз. Пока неудобно всё, нестабильно.

vbr ★★★
()
Ответ на: комментарий от Syncro

это эмуляция императивного кода

Мимо. Это эмуляция блокировок.

а работает он практически также как условно-асинхронные промисы,

Мимо. await не является асинхронным.

потому что разворачивается жит-компилятором именно в них.

Ты не знаешь что такое jit-«компилятор». Зачем ты генерируешь рандомные базворды?

Стопать ничего нинужна

await стопает вычисления. Это его семантика.

ожидающий тред и так стопнут.

Аналогично - рандомные слова.

Файберы это какая-то костыльная хрень в духе рякта такое добро обычно невозможно дебажить или предсказуемо применять.

Как раз таки промис-дристню невозможно отлаживать. В целом уровень твоей экспертизы уже ясен. Не вижу смысла обсуждать что-либо.

В ноде тысячи лет пердолятся с пропихиваением контекстов в калбеки(которыми являются промисы). Чтобы этот мусор можно было отлаживать.

Объяснять тебе что такое файберы мне лень. Это разговор со стеной.

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

Это совсем какая-то реальность альтерантивная. Причём тут какой-то ui? Откуда она взялся - её не существует. Это твои фанатазии.

Если жс «однопоточный», то откуда ты родил потоки? В общем. Нет смысла рассуждать о потоках - ты не знаешь что это такое.

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

Для передачи данных без копирования - есть шаренная память. Она есть. Прросто изначально она пала жертвой спектр-мельдониев.

Вся память шаренная не может быть по понятным причинам.

right_security
()
Ответ на: комментарий от Unixson

Нету в жс никакого сахара - он просто ретранслирует чушь.

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

  • сахар скрывает проблемы.

  • Как следствие сахар мешает их чинить.

  • сахар делает язык непредсказуемым. Т.е. появляется огромная разница между тем с чем работает язык и тем кодом, который написан.

  • сахар не скейлится. Т.е. это захаченный какой-то частный случай. Он работает только там замусоревает язык.

Здесь стоит говорить не только о сахаре, но о сахаре как о разновидности хардкодинга.

right_security
()
Ответ на: комментарий от vbr

Не можешь. жс никак не повязан на мусоре, нпм и прочем. Жс является открытой, развивающейся платформой. Никаких проблем с версией ноды не существует. В отличии от жавы.

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

Типичный пример того о чём я говорю. Во-первых переписать нормальный проект на ноде на жава-мусор невозможно. Это враньё.

Во-вторых палево заключается в «спринге», «мавену» и прочей чуши. Т.е. сказочник подтверждает мой тезис о том, что этот мусор не полноценный. Ведь он не переписывает на жаву. Он переписывает на мусорную либу. И это даже не либа - это рабство.

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

Если мы говорим про npm - это лишь хранилка пакетов и костыль для работы дырявого легаси-мусора. Если у тебя нет этого мусора - её можно не использовать. Либо можешь использовать но совершенно другими тулами.

В жаве есть мусорная сборка. Это тотальное рабство. В npm никакой сборки нет. Как и в жс. Есть мы под сборкой подразумевает какие-нибудь бандлеры - тут тоже множество вариаций. Каких угодно. В жаве только одно - рабство.

За пруфами далеко ходить ненужно - нужно лишь посмотреть на жава-спо. Вернее на его отсутствие. Какие-то примеры есть, но всё эт клоака.

deno штука многообещающая

Чем? Это мусор.

right_security
()
Ответ на: комментарий от Unixson

заметь, я не говорил что он плох))

в том же Питоне a+b - это уже сахар))

qbbr ★★★★★
()
Последнее исправление: qbbr (всего исправлений: 1)
Ответ на: комментарий от Unixson

Не, sql-процедурки куда мощнее, быстрее, надёжнее и прочее. Конечно, это мусор в сравнении с тем, что они косплеят. Но важно понимать то, что твой бек в сравнении с ними - это мусор мусора.

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

right_security
()
Ответ на: комментарий от right_security

Мимо. Это эмуляция блокировок.

в жс блокировка означала бы фриз интерфейса, это можно сделать и обычным циклом и если бы это было так с await, то на них напейсать ничего вообще не получилось бы, поэтому его сделали как раз как так называемый сахарок, который даже совместим с промисами

Ты не знаешь что такое jit-«компилятор»

жит компилятор как раз выполняет все эти оптимизации

Как раз таки промис-дристню невозможно отлаживать

сложно, но в меньшей степени чем транспиленые в итераторы или нетранспиленые асинки

Если жс «однопоточный», то откуда ты родил потоки?

один поток ui, два стека «асинхронного» выполнения все это в одном эвент-лупе, некоторые задачи типа хттп запросов или воркеров выполняются в отдельных потоках, чтобы не блокировать ui, там же выполняются колбеки промисов и асинки

Если жс «однопоточный», то откуда ты родил потоки?

воркеры которые отдельные потоки надо создавать руками, при этом ui и основной жс рантайм всеравно будет однопоточным

Syncro ★★★★★
()
Ответ на: комментарий от right_security

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

Syncro ★★★★★
()
Ответ на: комментарий от menangen

в жаве6 уже есть классы, интерфейсы, стабильный рантайм и все что нужно для нормального кода, несмотря на то, что ей 15 лет, а в друсте, гошечке и нодежуес есть только антипаттерны и закатывание солнц рукаме

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)
Ответ на: комментарий от Shadow

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

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

Я тебе уже говорил ты не знаешь предмета обсуждения. Обсуждать что-то с тобою не имеет смысла.

в жс блокировка означала бы фриз интерфейса

Нет. Блокировка не имеет никакого отношения к фризам.

жит компилятор как раз выполняет все эти оптимизации

Нет, не выполняет.

это можно сделать и обычным циклом

Нет, это просто потоки бреда.

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

right_security
()
Ответ на: комментарий от Syncro

Опять какие-то потоки бреда, куда-то отдельно, куда-то «не высаживая». Повторение лозунгом про какой-то подсчёт ссылок, аналог которого есть в любом языке. Типичная мифология уровня днища основанная на value-типах, особенностей гц.

Жава - это тормозной мусор. А то, что там есть - обусловлено не жавой. Как раз таки то, что этого в жс нет обусловлено его ограничениями. жс должен стартовать быстро, не жрать форфан батарейку/прочее(миллионы памяти, как это делает жава). Должен постоянно умирать/прочее.

Вот когда жава научится стартовать быстро, мочь в том же что и жс, не жрать милларды памяти и прочее. Тога ты можешь о чём-то рассуждать. Всё это прикуртить к жс не проблема.

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

А то, что к жс без проблем всё это прикручивается - есть дарт как пример. Был такой же жс, даже ещё более жсный.

right_security
()
Ответ на: комментарий от Syncro

Экспертность поражает воображение. Во-первых мелкасофт не имеет никакого отношения к жс. Во-вторых «типы в комментах» - это древний жсдок мусор, которому миллиарды лет.

Остальные фантазии - типичное проявление невежества. Какие проблемы есть с интеграцией с жс? Кому вообще нужен жс? Это легаси-говно.

Вырезаются типы? Куда они должны деваться? В астрал? Такие же попытки хоть что-то родить.

right_security
()
Ответ на: комментарий от right_security

если жаву скомпилить в бинарник граалем, она будет стартовать моментально и жрать несколько десятков мегабайт, но для сервера приложений важнее переиспользование памяти и преалокейт который делает жава что-бы не тормозить в продакшине как это делают интепретируемые языки и другие платформы с гц на подсчете ссылок

Syncro ★★★★★
()
Ответ на: комментарий от right_security

ну значит древний жсдок мелкософт украл в свой тайпскрипт, чтобы оправдаться новым откровением за тормозной компилятор тупскриптовых типов, которые не работают

Вырезаются типы? Куда они должны деваться? В астрал?

вероятно, в скомпиленом в жс коде информации о типах нет и пролазиют любые рантайм манипулции, например если бекенд вернул не то, что задумал фронтовик

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

и в тех его клиентах, что должны что-то делать используете реализацию с логикой, а в тех, что не должны делать ничего

И это, конечно, не костыль, когда ты имея иерархию и разговоры про божественное ООП и реюз кода, логику работы должен настраивать через то, что ты передаешь в констуктор класса. Инкапсуляцию ты так тоже ни разу не обосрал. И код у тебя написан, конечно, в относящемся к делу классе, а не размазан везде вообще. Позорище одно. Зато слова какие умные, охереешь, агрегация, клиент. Но за ними стоит несостоятельность и переобувания в стиле «глубокое наследование делать не нужно, оно вредно, делайте X». Да не, всё проще. Ваша концепция ооп - говнище.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 2)
Ответ на: комментарий от leprecon73

Нихера себе ты сделал открытие. Беги, расскажи скорее всем, а то никто не в курсе.

crutch_master ★★★★★
()
Ответ на: комментарий от Shadow

Я сейчас рефакторю процедурный код на pg/plsql. Вообще, это даже интересно - как город из спичек собирать... Проблема в том, что я его перевожу на чистый SQL, и он становится менее читаемым (зато с векторной алгеброй)

На чистом SQL можно писать, только если это джоин трех таблиц без подзапросов. В любом другом случае, получается говно.

crutch_master ★★★★★
()
Ответ на: комментарий от vbr

Версия жавы одна - последняя и с ней всегда всё работает.

Вечные проблемы с версией ноды.

Лол, ты что дурак?

crutch_master ★★★★★
()
Ответ на: комментарий от Syncro

разы медленнее жавы и чем больше проект тем медленнее

Парадокс, но хоть жс и проигрывает в 2 раза жабке во всяких бенчах по памяти и процу, приложения работают также или быстрее. А дело всё в жаба-мусоре типа jdbc, спринга и прочей параши, без которой жабки не существует. Пока ты там надрачиваешь на классы, дёргая конструктор и инжектя в них всякое дерьмо, жс макаки запихают всё в объект, сделают работу и будут таковы. И хоть в8 и медленнее, но сделает быстрее сожрав меньше памяти просто потому, что не занимается хернёй ради херни.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

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

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)
Ответ на: комментарий от crutch_master

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

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)
Ответ на: комментарий от Syncro

т.к. жейдибиси и все прочее добро переиспользуется

Где оно переиспользуется? На каждую запись там делают по 20 раз new, там где надо и не надо. Разруливают поведение стратегией и всё, как вы там у себя любите.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Ты до сих пор относишся с написанию класса как к ловкому трюку. Наверное твоя настольная книжонка «300 трюков в нескучном язычке»

Psilocybe ★★★★
()
Ответ на: комментарий от Unixson

pg/plsql, векторная алгебра… звучит как что-то мега муторное

Любители js на серверах добрались до plsql и вместо того, чтобы написать всё одним запросом накалякали процедурную лапшу.

Psilocybe ★★★★
()
Ответ на: комментарий от Syncro

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

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

crutch_master ★★★★★
()
Ответ на: комментарий от menangen

У меня друган в одном ру банке; до сих в проекте грит есть код на java 6, o java 11 они могут только мечтать!

Зажрались они там. В некоторых банках до сих пор Oracle Forms рулит. Кто знает - ужаснется.

Psilocybe ★★★★
()
Ответ на: комментарий от Psilocybe

У меня такой же любитель все писать одним запросом напротив сидит. С sql лапшой на 2к строк одним запросом в котором делается всё.

crutch_master ★★★★★
()
Ответ на: комментарий от Psilocybe

Ты до сих пор относишся с написанию класса как к ловкому трюку.

Я к написанию класса отношусь как к карго культу.

crutch_master ★★★★★
()
Ответ на: комментарий от Psilocybe

написанию класса

Смысл его вообще начинать писать, писать иерархию, а потом выплясывать как цирковая обезьяна и агрегацией и прочими «паттернами проектирования» (мешок костылей, лол), пытаясь как-то выкрутиться из ограничивающей парадигмы, не оскорбив при этом ничью веру.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

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

Syncro ★★★★★
()
Ответ на: комментарий от crutch_master

У меня такой же любитель все писать одним запросом напротив сидит. С sql лапшой на 2к строк одним запросом в котором делается всё.

Видимо он что-то подозревает. Во всяком случае он на пути к просветлению.

Psilocybe ★★★★
()
Ответ на: комментарий от Syncro

Нет. Жава - это говно. Даже если её собрать. И уж тем более необходимость собирать говорит о многом, что проблемы есть.

И никакие «десятки мегабайт» оно жрать не будет, а если будет - не будут обладать свойствами жавы. Такова реальность.

right_security
()
Ответ на: комментарий от right_security

бинарник рест сервиса с базейкой на фреймворке quarkus (это такой специальный спринг для упаковки сразу в докер клауд нейтив) у меня канпелялся в 20мб, можете сами проверить, хеловорлд там состряпать недолго. Реальность в том, что джава теперь может обладать свойствами С++ и свойствами приложни для JVM/сервера приложений, а сектансткие кривульки, что вы пропагандируете тут нет.

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

все попилено на классы в нем грамотно из без красноглазия и злоупотреблений

Но такое бывает только в заявлениях на форуме. А по факту там всегда какая-то срань.

смысл в том, что в вашем коде сможет разобраться даже не только вы

Я тоже умею заявлять, что у меня там вменяемая объектная модель и вообще, понять что происходит, сможет любой школьник даже без иде.

crutch_master ★★★★★
()
Ответ на: комментарий от Psilocybe

Видимо он что-то подозревает. Во всяком случае он на пути к просветлению.

Да нет, он всегда писал говно, пишет говно и будет писать говно до самой деменции, в котором никто кроме него не будет разбираться. Если он прекратит писать говно его уволят. Такое-то просветление.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Ты или прикалываешься или никогда их не видел.

Открою тебе секрет. Написав одни запрос ты имеешь возможность использовать оптимизатор по полной (конечно, если СУБД не является чем-то вроде MariaSQL).

Решая задачу процедурно, ты обречен выдавать тормозное гогно.

Psilocybe ★★★★
()
Ответ на: комментарий от Psilocybe

Последовательные серии запросов с минимум 20-тью временными таблицами и не очень чёткими задачами для CASE, которые потом в процессе костылились. Блин, месяц вкуривал его. Причём, если положить рядом ТЗ и запрос, становится только непонятнее.

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

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Мне, славааллаху, грозит перевод на MDX/M и прочий MS BI, если не эмигрирую, а не как твой коллега.

Shadow ★★★★★
()
Ответ на: комментарий от Syncro

Реальность в том, что джава теперь может обладать свойствами С++ и свойствами приложни для JVM/сервера приложений, а сектансткие кривульки, что вы пропагандируете тут нет.

Фуфломицин это. Если обмазываться, то тогда ужо DotNet.

SharpTits
()
Ответ на: комментарий от Psilocybe

вместо того, чтобы написать всё одним запросом

Вот таких персонажей не пущщать к DB!

SharpTits
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.