The OpenNET Project / Index page

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

30.10.2018 19:22  Релиз njs 0.2.5, интерпретатора JavaScript от NGINX

Доступна новая версия njs 0.2.5, интерпретатора языка JavaScript для веб-сервера nginx. Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации. Скрипты могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях.

В новом выпуске улучшена поддержка спецификации ECMAScript 5.1, исправлено более 13 ошибок, улучшена обработка различных значений в функции Array.prototype.slice(), реализована поддержка дробей без целочисленной части, добавлена поддержка объекта "arguments" для обработки в функциях произвольного числа аргументов и переопределения встроенных функций.

  1. Главная ссылка к новости (http://mailman.nginx.org/piper...)
  2. OpenNews: В HTTP-сервер nginx встроена поддержка JavaScript
  3. OpenNews: Выпуск nginx 1.15.4
  4. OpenNews: Выпуск сервера приложений NGINX Unit 1.5 с поддержкой Node.js
Автор новости: Аноним
Тип: Программы
Ключевые слова: njs, nginx
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Он самый (?), 20:50, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +12 +/
    и сюда js прокрался, ну почему...
     
     
  • 2.2, Аноним (2), 20:52, 30/10/2018 [^] [ответить]    [к модератору]
  • +2 +/
    Ну, если люди кодят на js, то почему бы и не появиться
     
     
  • 3.61, Maxim (??), 18:30, 31/10/2018 [^] [ответить]    [к модератору]
  • +3 +/
    Может потому что тех, кто кодит на JS лучше не пускать туда, где нужен nginx?
     
     
  • 4.77, Ананизмус (?), 20:22, 03/11/2018 [^] [ответить]    [к модератору]
  • +/
    JS везде, соответственно и те кто на нем кодит везде. По твоему получается что?
     
     
  • 5.78, Maxim (??), 20:49, 03/11/2018 [^] [ответить]     [к модератору]
  • +/
    JS только в браузере, потому что так исторически сложилось А вот любить JS и по... весь текст скрыт [показать]
     
  • 2.4, Сверчок (?), 20:55, 30/10/2018 [^] [ответить]    [к модератору]  
  • –11 +/
    JS настолько хорош, что подходит почти для любой сферы, от веба до embedded, вот только с научными расчётами проблема.
     
     
  • 3.18, Весельчак У (?), 21:54, 30/10/2018 [^] [ответить]     [к модератору]  
  • –3 +/
    Ну почему проблемы Недавно в js появилась поддержка BigInt Это факт может дать... весь текст скрыт [показать]
     
     
  • 4.24, Аноним (24), 22:38, 30/10/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    >толчёк

    Ясно.

    >Да и вообще, на худой случай можно использовать webassembly.

    Почему на "худой"?

     
  • 4.37, Онаним (?), 06:02, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > Недавно в js появилась поддержка BigInt

    Лучше бы поддержка BigDecimal появилась.

     
  • 4.47, ляликс (?), 11:37, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    для прототопирования тот же питон чем не устраивает?
     
     
  • 5.59, J.L. (?), 15:51, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > для прототопирования тот же питон чем не устраивает?

    а чем питон лучше js??

     
     
  • 6.73, абв (?), 21:09, 01/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Ничем. Те же яйца, как руби и остальные перлы.
     
  • 5.71, Аноним (71), 13:28, 01/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Очевидно, потому что он хуже плюсов.
     
  • 3.23, Аноним (23), 22:37, 30/10/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Что, на самом деле и моторчиком гироскутера в реальном времени поуправлять может... весь текст скрыт [показать]
     
     
  • 4.43, funny.falcon (?), 08:38, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Насчёт вебсерверов, это вы мимо :-) На ноде чего только не пишут. Я встречал сервер раздачи видео, например.
     
     
  • 5.52, Анонн (?), 13:47, 31/10/2018 [^] [ответить]    [к модератору]  
  • –4 +/
    > Насчёт вебсерверов, это вы мимо :-) На ноде чего только не пишут.

    А нода разве на JS?

     
  • 3.30, Хм (?), 00:19, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    у js полно своих проблем тож он не на столько хорош
     
  • 3.45, nelson (??), 10:54, 31/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    эмбеддинг? на"жиэс" ?? дно, походу, достигнуто  
     
     
  • 4.49, pfg21 (ok), 12:22, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    если есть хороший интерпретатор и хардовая библиотека обработки низкоуровневых о... весь текст скрыт [показать]
     
     
  • 5.60, Аноним (60), 17:51, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Посмотреть бы, как вы ответите на этот 171 риторический 187 вопрос рядом с м... весь текст скрыт [показать]
     
     
  • 6.63, Щщ (?), 18:47, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Вот только программировать это всё будет махровый индус и последнее, что бы вы х... весь текст скрыт [показать]
     
  • 6.66, draw1 (?), 23:12, 31/10/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Ну оно примерно так всё и обстоит когда делают адекватные опытные люди Ввод выв... весь текст скрыт [показать]
     
  • 6.74, qwerty123 (??), 09:26, 03/11/2018 [^] [ответить]     [к модератору]  
  • +/
    какая-то каша в первых, для микроконтролеров применяются максимум embedded RTOS... весь текст скрыт [показать]
     
  • 2.8, Аноним (8), 21:03, 30/10/2018 [^] [ответить]    [к модератору]  
  • –5 +/
    все лучше чем lua
     
     
  • 3.12, Аноним (12), 21:18, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Например, в чём лучше? Тем что позволяет выстрелить себе в ногу 100500 способами? Тем что позволяет переопределить object.prototype?
     
     
  • 4.13, Qwerty (??), 21:21, 30/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Имея один JS, можно переопределяться всё, кроме этого JS. Имея два JS, можно переопределяться абсолютно всё.
     
     
  • 5.14, Qwerty (??), 21:22, 30/10/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Сравняли автозамена!
     
  • 4.26, Аноним (26), 23:13, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > Например, в чём лучше? Тем что позволяет выстрелить себе в ногу 100500
    > способами? Тем что позволяет переопределить object.prototype?

    Как будто в этом что-то плохое.

     
  • 4.28, Anonymouss (?), 00:08, 31/10/2018 [^] [ответить]    [к модератору]  
  • –4 +/
    Да хотя бы [-1,-2,3,4].sort() чудесно
     
     
  • 5.31, User_03 (??), 00:24, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Подобное можно делать даже в плюсах, так что нет, не впечатляет
     
     
  • 6.53, Аноним84701 (ok), 13:54, 31/10/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Я конечно не специалист в плюсах, но чтобы там получить именно ТАКОЙ результат с... весь текст скрыт [показать]
     
  • 5.32, Бутират (?), 03:11, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    А вот с reverse() не фортануло. Брендон Айк подбрасывал кубик чтобы решать чистая будет функция или нет
     
  • 5.51, Аноним (51), 12:26, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Потому что документацию надо читать Если функция сравнения compareFunction не п... весь текст скрыт [показать]
     
     
  • 6.54, Анонн (?), 13:57, 31/10/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Удобство и предсказуемость, че -- главное, почаще повторять и постараться забыть... весь текст скрыт [показать]
     
     
  • 7.64, Аноним (51), 19:01, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Главное - постараться понять предназначение языка Яваскрипт со строками работае... весь текст скрыт [показать]
     
  • 4.67, Иваныч (??), 23:32, 31/10/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    В Lua хотя бы есть строгое и прозрачное различение между глобальными переменными... весь текст скрыт [показать]
     
     
  • 5.79, irinat (ok), 22:15, 04/11/2018 [^] [ответить]    [к модератору]  
  • +/
    В Lua нет массивов, там только таблицы. Поэтому начинать нумерацию можно с чего угодно, хоть с -2.
     
     ....нить скрыта, показать (36)

  • 1.3, Сверчок (?), 20:52, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Зачем плодить сущности, когда можно было взять года готовый движок? Благо выбор есть: V8, Spidemonkey, Duktape тот же.
     
     
  • 2.7, Дмитрий (??), 21:02, 30/10/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Тут разработчики объясняют почему V8, SpiderMonkey и Duktape неподходят
    https://youtu.be/Jc_L6UffFOs?t=645
     
     
  • 3.10, A.Stahl (ok), 21:15, 30/10/2018 [^] [ответить]    [к модератору]  
  • +6 +/
    И что там вкратце? Неужели ты думаешь что кто-то пойдёт смотреть какое-то кино с Ютюба?
     
     
  • 4.25, Дмитрий (??), 22:45, 30/10/2018 [^] [ответить]     [к модератору]  
  • +4 +/
    1 V8 и Spidermonkey сделаны в первую очередь для браузеров где совершенно иной ... весь текст скрыт [показать]
     
  • 3.55, адблок (?), 14:19, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Узнал что правильно говорить энжинэкс. А не нжинкс.
     
  • 2.17, Аноним (17), 21:35, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Сысоев о проблемах V8 в контексте nginx писал ещё 8 лет назад: http://sysoev.ru/prog/v8.html - с тех пор мало что изменилось.
     
  • 1.5, Аноним (5), 20:57, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Интересно, а "более 13" это сколько?
     
     
  • 2.27, Аноним (27), 23:59, 30/10/2018 [^] [ответить]    [к модератору]  
  • +5 +/
    Чуть меньше чем 15
     
  • 1.6, Аноним (8), 21:02, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    > добавлена поддержка объекта "arguments"

    А разве его не выпилили в ES6?, есть же spread

     
     
  • 2.9, Дмитрий (??), 21:11, 30/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Не выпилили https www ecma-international org ecma-262 6 0 sec-arguments-exoti... весь текст скрыт [показать]
     
  • 2.21, Аноним (21), 22:15, 30/10/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    njs вообще реализует новые стандарты или хотя бы какой-то стандарт?
     
     
  • 3.22, Дмитрий (??), 22:35, 30/10/2018 [^] [ответить]     [к модератору]  
  • +/
    http nginx org en docs njs index html njs is a subset of the JavaScript langua... весь текст скрыт [показать]
     
  • 1.16, th3m3 (ok), 21:27, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Nginx пилит свою ноду?
     
  • 1.20, linvinus (?), 22:03, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    похоже хотят сделать аналог openresty только вместо lua javascript

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

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

     
     
  • 2.70, 1 (??), 07:39, 01/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >с урезанным javascript без модулей непонятно что делать.

    Берется rollup и полетели!

     
  • 1.34, Наноним (?), 04:25, 31/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Непонятно, зачем именно js. Если так уж хочется js-подобный язык можно было сделать какую-нибудь облагороженную версию типа typescript или свой вариант.
     
     
  • 2.68, Иваныч (??), 01:36, 01/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Могли бы лучше поддержку CoffeeScript или хоть LiveScript сделать. Так нет - везде этот JS тащат!
     
  • 1.35, jOKer (ok), 04:30, 31/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Странный выбор. Почему не луа, с его минимализмом потребления ресурсов, или не питон (питон-хэйтеры, расслабьтесь, - я имел ввиду что-то вроде Cython, но заточенного под продукт)?

    И вообще, если посмотреть на траекторию развития nginx в целом, то приходит на ум вопрос: зачем было гордо отказываться от динамических модулей, коли теперь приходится бизнес-логику расширять с помощью скриптов? Уж лучше было бы плагины-сошники "на лету" подключать, - они по крайней мере бинарные, со статической типизацией, что многие проблемы решает.

    Короче, я в недоумении по поводу такой архитектуры. Лично мне она не кажется очевидной. Но возможно я чего-то не до конца понимаю.

     
     
  • 2.39, Онаним (?), 06:15, 31/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Маркетинг. JavaScript - новый PHP, миллиарды неосиляторов теперь пишут на нём под любую задачу, "кадры" можно найти в любой подворотне.
     
     
  • 3.46, Аноним (46), 11:29, 31/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Ну почему же неосиляторов. На нём просто приятно писать, а, когда за плечами много лет опыта C++, прелести современного JS осознаешь сильнее
     
     
  • 4.62, Maxim (??), 18:35, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Я бы лучше веб на плюсах писал.
     
     
  • 5.65, Аноним (65), 19:23, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    WebAssembly и транслятор asm.js уже готов.
     
     
  • 6.72, Maxim (??), 17:07, 01/11/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    А зачем мне asm js если есть Bridge Net Все-таки на шарпе по-приятнее А из веб... весь текст скрыт [показать]
     
  • 5.75, qwerty123 (??), 09:31, 03/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >Я бы лучше веб на плюсах писал.

    Да-да, расскажи инвестору, что проект займет полгода вместо 2 месяцев.

    Где вас таких изготавливают?

     
     
  • 6.76, Maxim (??), 16:50, 03/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >>Я бы лучше веб на плюсах писал.
    > Да-да, расскажи инвестору, что проект займет полгода вместо 2 месяцев.
    > Где вас таких изготавливают?

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

    У меня на типизированных языках разработка идет кстати быстрее.
    Так что это все из области неосиляторов.
    А вариантов овердокуя: Java (GWT), C#, Kotlin.

    Так что таких как ты я бы близко к коду не пускал. Жаль у вас на лбу не написано: "веб-макака".

     
  • 3.48, jOKer (ok), 11:49, 31/10/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    К сожалению (а может и к счастью?), кадры работающие с nginx профессионально (админы) не особенно близки с js. Я например, плохо представляю себе системного администратора яростно изучающего js. А вот админа знающего питон, я, напротив, представить очень даже могу, поскольку питон админу может для решения многих задач пригодится. Могу представить даже админа знающего lua... с некоторым напрягом, правда, но могу. А вот админа использующего для администрирования js ни как не получается представить. И однако, разрабы nginx выбирают именно js и это очень странный выбор.

    В общем, приходится делать вывод, что целевая аудитория nginx перестала быть ориентированной на администраторов и стала ориентироваться на веб-программистов. Печально коли так.

     
     
  • 4.50, Аноним (50), 12:23, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Девелоперы часто становятся DevOps ами Хоть как-то js знают бекендщики, в корпо... весь текст скрыт [показать]
     
  • 4.56, Valentin V. Bartenev (?), 15:03, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Тут с 8:57 рассказано почему JavaScript:
    https://youtu.be/Jc_L6UffFOs?t=537

    1. Это современный лингва франка, о нём знают все и если не программировали на JavaScript, то хотя бы видели и сталкивались.

    2. Использует С-подобный синтаксис, который неплохо знаком разработчикам и DevOps-инженерам (на которых эта функциональность и ориентирована). Также благодаря этому он хорошо вписывается в формат конфигурационных файлов nginx, который тоже использует фигурные скобки для обозначения блоков кода.

    3. Был написан для браузеров под событийно-ориентированную парадигму программирования. И это хорошо ложиться на nginx, поскольку он тоже работает в этой парадигме и построен на обратных вызовах (callback-ах).

     
  • 2.40, Аноним (40), 06:24, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > зачем было гордо отказываться от динамических модулей,

    nginx динамические модули умеет уже много лет.

     
  • 2.57, asdf (?), 15:23, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Почему не lua, потому что, быть может, большинство из сферы Web знает JavaScript? У всех ассоциация "Web? JavaScript!". Во FreeBSD, например, уходят от Forth в пользу lua. Зачем? Потому что молодое поколение не хочет идти в страшный Forth, а lua выглядит куда более дружественное и порог вхождения куда меньше, чем в Forth - так прямо и написали в рассылке.
     
     
  • 3.58, Анонн (?), 15:30, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > Во FreeBSD, например, уходят от
    > Forth в пользу lua. Зачем? Потому что молодое поколение не хочет
    > идти в страшный Forth, а lua выглядит куда более дружественное и
    > порог вхождения куда меньше, чем в Forth - так прямо и
    > написали в рассылке.

    Вы бы еще пояснили, что речь идет о загрузчике:
    >  A LUA boot loader is 60k larger than a FORTH one, which is
    > 80k larger than a no-interpreter one. Subtle changes in size
    > may tip things past some subtle limit (the binary is ~430k now
    > when built with LUA). A future version may offer coexistance.
    >

     
  • 1.69, Анонимный Аноним (?), 02:54, 01/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Ура! можно писать конфиги для nginx на JSF**c!
     
  • 1.80, Аноним (80), 10:43, 07/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    По производительности смотрел кто-то данное изделие? Можно его использовать в своих разработках?
     
     
  • 2.81, Andrey Mitrofanov (?), 12:59, 07/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > По производительности смотрел кто-то данное изделие? Можно его использовать в своих разработках?

    Точн!  Может ли оно притормозить обработку запросов nginx до уровня апача или не сдюжит.  Аудитория затаила.

    Если надо высокопроизводительной математики на "кластарах", то у интерпретируемого самописного языка конфигов "будут для тебя плохие новости"ТМ.

     

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


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