URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 115696
[ Назад ]

Исходное сообщение
"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"

Отправлено opennews , 30-Окт-18 20:50 
Доступна (http://mailman.nginx.org/pipermail/nginx/2018-October/057065...) новая версия njs 0.2.5 (http://nginx.org/en/docs/njs/), интерпретатора языка JavaScript для веб-сервера nginx. Интерпретатор njs реализует стандарты ECMAScript (http://nginx.org/ru/docs/njs/compatibility.html) и позволяет расширять (http://nginx.org/ru/docs/njs/) возможности nginx по обработке запросов с помощью скриптов (http://nginx.org/ru/docs/njs/examples.html) в конфигурации.
Скрипты могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях.


В новом выпуске улучшена поддержка спецификации ECMAScript 5.1,
исправлено более 13 ошибок, улучшена обработка различных значений в функции Array.prototype.slice(), реализована поддержка  дробей без целочисленной части, добавлена поддержка объекта "arguments (https://developer.mozilla.org/ru/docs/Web/JavaScript/Referen...)" для обработки в функциях произвольного числа аргументов и переопределения встроенных функций.


URL: http://mailman.nginx.org/pipermail/nginx/2018-October/057065...
Новость: https://www.opennet.ru/opennews/art.shtml?num=49524


Содержание

Сообщения в этом обсуждении
"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Он самый , 30-Окт-18 20:50 
и сюда js прокрался, ну почему...

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 20:52 
Ну, если люди кодят на js, то почему бы и не появиться

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Maxim , 31-Окт-18 18:30 
Может потому что тех, кто кодит на JS лучше не пускать туда, где нужен nginx?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Ананизмус , 03-Ноя-18 20:22 
JS везде, соответственно и те кто на нем кодит везде. По твоему получается что?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Maxim , 03-Ноя-18 20:49 
> JS везде, соответственно и те кто на нем кодит везде. По твоему
> получается что?

JS только в браузере, потому что так исторически сложилось.
А вот любить JS и поэтому воткнуть его везде - нужно быть редким извращенцем.
Таких отбитых к нормальному коду - не пускать.


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Сверчок , 30-Окт-18 20:55 
JS настолько хорош, что подходит почти для любой сферы, от веба до embedded, вот только с научными расчётами проблема.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Весельчак У , 30-Окт-18 21:54 
Ну почему проблемы. Недавно в js появилась поддержка BigInt. Это факт может дать новый толчёк, например, машинному обучению. Конечно, никто не говорит о производительности таких научных расчётов, суть в быстром прототипировании. Да и вообще, на худой случай можно использовать webassembly.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 22:38 
>толчёк

Ясно.

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

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Онаним , 31-Окт-18 06:02 
> Недавно в js появилась поддержка BigInt

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено ляликс , 31-Окт-18 11:37 
для прототопирования тот же питон чем не устраивает?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено J.L. , 31-Окт-18 15:51 
> для прототопирования тот же питон чем не устраивает?

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено абв , 01-Ноя-18 21:09 
Ничем. Те же яйца, как руби и остальные перлы.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 01-Ноя-18 13:28 
Очевидно, потому что он хуже плюсов.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 22:37 
> JS настолько хорош, что подходит почти для любой сферы, от веба до
> embedded, вот только с научными расчётами проблема.

Что, на самом деле и моторчиком гироскутера в реальном времени поуправлять может? Да еще и так, чтобы хипстеру не пришлось каждую минуту тренироваться в низких бреющих полетах и торможении об асфальт носом? Ух ты!

Или на нем дрова c системным софтом пишут?
А может браузер или JIT-компилеры-самого-себя?
Или не-хелловрот-вебсервера (замшелым нжинксам или хотя бы апачам не сильно уступающие) ваяют?

Или "автомобиль может быть любого цвета, если этот цвет черный!"?


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено funny.falcon , 31-Окт-18 08:38 
Насчёт вебсерверов, это вы мимо :-) На ноде чего только не пишут. Я встречал сервер раздачи видео, например.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Анонн , 31-Окт-18 13:47 
> Насчёт вебсерверов, это вы мимо :-) На ноде чего только не пишут.

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Хм , 31-Окт-18 00:19 
у js полно своих проблем тож он не на столько хорош

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено nelson , 31-Окт-18 10:54 
эмбеддинг? на"жиэс" ?? дно, походу, достигнуто  

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено pfg21 , 31-Окт-18 12:22 
если есть хороший интерпретатор и хардовая библиотека обработки низкоуровневых операций,  то почему бы и нет :)
с помощью баш-скриптов управляют же крутыми и мощщщщными серверами. а чем ентот скриптовый язык хужее.
драйвер видюхи конечнож не напишешъ, но жс-писателей к такому и не допускають.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 31-Окт-18 17:51 
> если есть хороший интерпретатор и хардовая библиотека обработки низкоуровневых операций,  то почему бы и нет :)

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

Каждое поколение пытается взгромоздить на самоходную газонокосилку язык дня: Java, Scheme, Python, — теперь JavaScript. Гранты осваивают, диссеры защищают…


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Щщ , 31-Окт-18 18:47 
Вот только программировать это всё будет махровый индус и последнее, что бы вы хотели - это чтобы он лез в эту библиотеку низкоуровневых операций. А это суровая реальность.

Все эти языки и изоляции нужны чтобы максимально защитить вас от результата работы не слишком гениальных программистов (99%).


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено draw1 , 31-Окт-18 23:12 
> Подозреваю, что в библиотеку обработки низкоуровневых операций вы после этого захотите перенести примерно всё.

Ну оно примерно так всё и обстоит когда делают адекватные опытные люди. Ввод/вывод, обработка всего критичного (да и не только) основного функционала делает то, что в вашей терминологии - "библиотека обработки низкоуровневых операций". А для всякого сервисного, технологического и иногда "высокоуровневой" логики работы (не сильно критичной по времени и кастрированной ровно настолько чтоб минимальный функционал/безопасность обеспечивались даже если скрипты вообще "упадут" на первой же строке и навсегда), то почему бы и нет. Выбирается движок не по достоинствам скриптового языка, а по легкости встраивания, прожорливости и приемлемости/знакомости для участников. Делается не ради понтов, а чтобы часть работы могли делать менее квалифицированные товарищи (обычно "не из нашего района") так чтобы без шансов сломать что-либо важное. И чтобы им же было проще вносить хренилион мелких исправлений по мелким замечаниям типа "вот тут должно мигать чуть побыстрее", "при нажатии кнопки должно пищать 3 раза, а не 2" - не трогая ни нормальный код, ни нормальных разработчиков. Ну и вопрос ответственности (это же не "мы", а "мы вместе с вами" разрабатывали!)

Мне не очень нравится термин "библиотека обработки низкоуровневых операций" - он как бы намекает, что это набор каких-то разрозненных данных/функций, а тут всем рулит Скрипт (или даже СКРИПТ) и он лишь дергает какие-то низкоуровневые функции для мелкой черновой работы (хотя для поднятия самооценки пишуших такие скрипты - пусть так и считают).  По факту, это обычной embedded проект, где помимо обычного функционирования, в одном или нескольких потоках запускаются VM/интерпретаторы, им скармливается часть данных/событий и они чего-то дергают/возвращают/генерируют, что передается потом обратно основной программе.


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено qwerty123 , 03-Ноя-18 09:26 
>и в контроллере которого требования реального времени борются со сборщиком мусора.

какая-то каша.

в первых, для микроконтролеров применяются максимум embedded RTOS (классический представитель которого FreeRTOS - "я есть шедулер и все"), и вообще pure C. И обработка событий от периферии на прерываниях и main loop.

засунуть в 128Kb флеша и еще столько же памяти интрпрепретатор (которых 50-100 разных из только ходовых) c хуками к голым аппаратным прерываниям и регистарам управления - ну нужно постараться.
В общем-то, никто и не старается.

Но если таки будет - микроконтролеры таки все больше по ресурсам, то это будет нечто другое, и вполне адекватное по времени реакции.

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

А JS, если выжать до основ, это тот же LISP-like, который внезапно уже лет как 30-40 редким мелким бисером  вшивают в микропрограммное обеспечение.

Нет, не в варианте-идеологии V8, даже если MCU с ресурсами ARMv8+ - хрен бы там с выделением памяти, это уже  вылизано за десятки лет, там событийная машина самый цимес подрыва детерминизма.

Но и то опят же, при  сниженных требованиях к latency, ... ну дофига что делают на базе V8+Node.js

во вторых, с тем же cамом pure C и c FreeRTOS дурак с клавиатурой, не понимающий смысла прерывания и атомарности процесса, и вообще гирлянды state machines ... лучше скажите мне перед демонстрацией.

Но проблема в том, что вы и не узнаете.


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 21:03 
все лучше чем lua

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 21:18 
Например, в чём лучше? Тем что позволяет выстрелить себе в ногу 100500 способами? Тем что позволяет переопределить object.prototype?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Qwerty , 30-Окт-18 21:21 
Имея один JS, можно переопределяться всё, кроме этого JS. Имея два JS, можно переопределяться абсолютно всё.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Qwerty , 30-Окт-18 21:22 
Сравняли автозамена!

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 23:13 
> Например, в чём лучше? Тем что позволяет выстрелить себе в ногу 100500
> способами? Тем что позволяет переопределить object.prototype?

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Anonymouss , 31-Окт-18 00:08 
Да хотя бы [-1,-2,3,4].sort() чудесно

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено User_03 , 31-Окт-18 00:24 
Подобное можно делать даже в плюсах, так что нет, не впечатляет

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним84701 , 31-Окт-18 13:54 
> Подобное можно делать даже в плюсах, так что нет, не впечатляет

Я конечно не специалист в плюсах, но чтобы там получить именно ТАКОЙ результат сортировки:


[-1,-2,3,4].sort()
Array(4) [ -1, -2, 3, 4 ]

придется все же  "пошаманить" ;)

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Бутират , 31-Окт-18 03:11 
А вот с reverse() не фортануло. Брендон Айк подбрасывал кубик чтобы решать чистая будет функция или нет

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 31-Окт-18 12:26 
Потому что документацию надо читать:
Если функция сравнения compareFunction не предоставляется, элементы сортируются путём преобразования их в строки и сравнения строк в порядке следования кодовых точек Unicode.


[-2,-1,3,4].sort((a,b)=>a-b);

>>> [-2, -1, 3, 4]


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Анонн , 31-Окт-18 13:57 
> Потому что документацию надо читать:
> Если функция сравнения compareFunction не предоставляется, элементы
> [-2,-1,3,4].sort((a,b)=>a-b);
>>>> [-2, -1, 3, 4]

Удобство и предсказуемость, че -- главное, почаще повторять и постараться забыть, что сам ЯП был сваян за десяток дней.


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 31-Окт-18 19:01 
Главное - постараться понять предназначение языка. Яваскрипт со строками работает гораздо чаще, чем с математикой. А если у вас таки много математики, то вам к расширениям языка типа asm.js и WebAssembly...

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Иваныч , 31-Окт-18 23:32 
В Lua хотя бы есть строгое и прозрачное различение между глобальными переменными и их не объявишь по ошибке. Да и массивы начинают индекс с 1-цы, а не как в модном JS с 0-ля. Очевидно что на Lua легче писать большое приложение и его поддерживать.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено irinat , 04-Ноя-18 22:15 
В Lua нет массивов, там только таблицы. Поэтому начинать нумерацию можно с чего угодно, хоть с -2.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Сверчок , 30-Окт-18 20:52 
Зачем плодить сущности, когда можно было взять года готовый движок? Благо выбор есть: V8, Spidemonkey, Duktape тот же.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Дмитрий , 30-Окт-18 21:02 
Тут разработчики объясняют почему V8, SpiderMonkey и Duktape неподходят
https://youtu.be/Jc_L6UffFOs?t=645

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено A.Stahl , 30-Окт-18 21:15 
И что там вкратце? Неужели ты думаешь что кто-то пойдёт смотреть какое-то кино с Ютюба?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Дмитрий , 30-Окт-18 22:45 
1) V8 и Spidermonkey сделаны в первую очередь для браузеров где совершенно иной сценарий использования (пару десятков вкладок, в каждой вкладке разный код). Тогда как на сервере для данного location код всегда одинаковый. Его можно скомпилировать и вообще выкинуть из движка все что не нужно на стороне сервера. Эти движки очень тяжелые для nginx (впилить можно, но получится недо node.js, который уже есть). nginx легковесный и быстрый и ему нужен легковесный и быстрый движок (пусть и менее навороченный, но который позволяет решать практические задачи на стороне прокси).

2) у Duktape другие цели, в первую очередь они таргетят memory footprint, а не performance.

3) Свой движок можно кастомайзить под nginx.


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено адблок , 31-Окт-18 14:19 
Узнал что правильно говорить энжинэкс. А не нжинкс.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 21:35 
Сысоев о проблемах V8 в контексте nginx писал ещё 8 лет назад: http://sysoev.ru/prog/v8.html - с тех пор мало что изменилось.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 20:57 
Интересно, а "более 13" это сколько?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 23:59 
Чуть меньше чем 15

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 21:02 
> добавлена поддержка объекта "arguments"

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Дмитрий , 30-Окт-18 21:11 
Не выпилили https://www.ecma-international.org/ecma-262/6.0/#sec-argumen...

rest parameters syntax (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...) в процессе.


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 30-Окт-18 22:15 
njs вообще реализует новые стандарты или хотя бы какой-то стандарт?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Дмитрий , 30-Окт-18 22:35 
http://nginx.org/en/docs/njs/index.html

njs is a subset of the JavaScript language that allows extending nginx functionality. njs is created in compliance with ECMAScript 5.1 (strict mode) with some ECMAScript 6 and later extensions. The compliance is still evolving.


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено th3m3 , 30-Окт-18 21:27 
Nginx пилит свою ноду?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено linvinus , 30-Окт-18 22:03 
похоже хотят сделать аналог openresty только вместо lua javascript

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

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено 1 , 01-Ноя-18 07:39 
>с урезанным javascript без модулей непонятно что делать.

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Наноним , 31-Окт-18 04:25 
Непонятно, зачем именно js. Если так уж хочется js-подобный язык можно было сделать какую-нибудь облагороженную версию типа typescript или свой вариант.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Иваныч , 01-Ноя-18 01:36 
Могли бы лучше поддержку CoffeeScript или хоть LiveScript сделать. Так нет - везде этот JS тащат!

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено jOKer , 31-Окт-18 04:30 
Странный выбор. Почему не луа, с его минимализмом потребления ресурсов, или не питон (питон-хэйтеры, расслабьтесь, - я имел ввиду что-то вроде Cython, но заточенного под продукт)?

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

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Онаним , 31-Окт-18 06:15 
Маркетинг. JavaScript - новый PHP, миллиарды неосиляторов теперь пишут на нём под любую задачу, "кадры" можно найти в любой подворотне.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 31-Окт-18 11:29 
Ну почему же неосиляторов. На нём просто приятно писать, а, когда за плечами много лет опыта C++, прелести современного JS осознаешь сильнее

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Maxim , 31-Окт-18 18:35 
Я бы лучше веб на плюсах писал.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 31-Окт-18 19:23 
WebAssembly и транслятор asm.js уже готов.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Maxim , 01-Ноя-18 17:07 
> WebAssembly и транслятор asm.js уже готов.

А зачем мне asm.js если есть Bridge.Net?
Все-таки на шарпе по-приятнее.

А из веб ассембли нет доступа к DOM. Или что-то поменялось?

Собственно мы на C# под веб и пишем (транспайл).
TypeScript - очередная затычка от мелкософта.


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено qwerty123 , 03-Ноя-18 09:31 
>Я бы лучше веб на плюсах писал.

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

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Maxim , 03-Ноя-18 16:50 
>>Я бы лучше веб на плюсах писал.
> Да-да, расскажи инвестору, что проект займет полгода вместо 2 месяцев.
> Где вас таких изготавливают?

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

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

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено jOKer , 31-Окт-18 11:49 
К сожалению (а может и к счастью?), кадры работающие с nginx профессионально (админы) не особенно близки с js. Я например, плохо представляю себе системного администратора яростно изучающего js. А вот админа знающего питон, я, напротив, представить очень даже могу, поскольку питон админу может для решения многих задач пригодится. Могу представить даже админа знающего lua... с некоторым напрягом, правда, но могу. А вот админа использующего для администрирования js ни как не получается представить. И однако, разрабы nginx выбирают именно js и это очень странный выбор.

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 31-Окт-18 12:23 
Девелоперы часто становятся DevOps'ами. Хоть как-то js знают бекендщики, в корпоративном секторе такое часто. А вот python... только если стек на python, а так инфраструктура держится на bash + основной язык из стека (java, c#, go...). Девелоперы занимаются не только разарботкой но и механизмом развертывания их творения. Админы рулят уже зоопарком серверов и контейнеров, управляют ресурсами, поддерживают корпоративную сеть (месенджеры, почта...), еще ездят в датацентры обслуживать арендованные стойки. Но да, nginx часто получается в пересечении этих двух "миров" :)

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Valentin V. Bartenev , 31-Окт-18 15:03 
Тут с 8:57 рассказано почему JavaScript:
https://youtu.be/Jc_L6UffFOs?t=537

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

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

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 31-Окт-18 06:24 
> зачем было гордо отказываться от динамических модулей,

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено asdf , 31-Окт-18 15:23 
Почему не lua, потому что, быть может, большинство из сферы Web знает JavaScript? У всех ассоциация "Web? JavaScript!". Во FreeBSD, например, уходят от Forth в пользу lua. Зачем? Потому что молодое поколение не хочет идти в страшный Forth, а lua выглядит куда более дружественное и порог вхождения куда меньше, чем в Forth - так прямо и написали в рассылке.

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Анонн , 31-Окт-18 15:30 
> Во 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.
>


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено пох , 23-Мрт-19 16:15 
так lua - давно, это уже пройденый этап. (интересно, он по сей день намертво лочит воркер?)

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

> зачем было гордо отказываться от динамических модулей

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


"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Анонимный Аноним , 01-Ноя-18 02:54 
Ура! можно писать конфиги для nginx на JSF**c!

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Аноним , 07-Ноя-18 10:43 
По производительности смотрел кто-то данное изделие? Можно его использовать в своих разработках?

"Релиз njs 0.2.5, интерпретатора JavaScript от NGINX"
Отправлено Andrey Mitrofanov , 07-Ноя-18 12:59 
> По производительности смотрел кто-то данное изделие? Можно его использовать в своих разработках?

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

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