|
|
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 только в браузере, потому что так исторически сложилось.
А вот любить JS и поэтому воткнуть его везде - нужно быть редким извращенцем.
Таких отбитых к нормальному коду - не пускать.
| |
|
|
|
2.4, Сверчок (?), 20:55, 30/10/2018 [^] [^^] [^^^] [ответить]
| –11 +/– |
JS настолько хорош, что подходит почти для любой сферы, от веба до embedded, вот только с научными расчётами проблема.
| |
|
3.18, Весельчак У (?), 21:54, 30/10/2018 [^] [^^] [^^^] [ответить]
| –3 +/– |
Ну почему проблемы. Недавно в js появилась поддержка BigInt. Это факт может дать новый толчёк, например, машинному обучению. Конечно, никто не говорит о производительности таких научных расчётов, суть в быстром прототипировании. Да и вообще, на худой случай можно использовать webassembly.
| |
|
4.24, Аноним (24), 22:38, 30/10/2018 [^] [^^] [^^^] [ответить]
| +4 +/– |
>толчёк
Ясно.
>Да и вообще, на худой случай можно использовать webassembly.
Почему на "худой"?
| |
4.37, Онаним (?), 06:02, 31/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Недавно в js появилась поддержка BigInt
Лучше бы поддержка BigDecimal появилась.
| |
|
5.59, J.L. (?), 15:51, 31/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
> для прототопирования тот же питон чем не устраивает?
а чем питон лучше js??
| |
|
|
3.23, Аноним (23), 22:37, 30/10/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
> JS настолько хорош, что подходит почти для любой сферы, от веба до
> embedded, вот только с научными расчётами проблема.
Что, на самом деле и моторчиком гироскутера в реальном времени поуправлять может? Да еще и так, чтобы хипстеру не пришлось каждую минуту тренироваться в низких бреющих полетах и торможении об асфальт носом? Ух ты!
Или на нем дрова c системным софтом пишут?
А может браузер или JIT-компилеры-самого-себя?
Или не-хелловрот-вебсервера (замшелым нжинксам или хотя бы апачам не сильно уступающие) ваяют?
Или "автомобиль может быть любого цвета, если этот цвет черный!"?
| |
|
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 полно своих проблем тож он не на столько хорош
| |
|
4.49, pfg21 (ok), 12:22, 31/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
если есть хороший интерпретатор и хардовая библиотека обработки низкоуровневых операций, то почему бы и нет :)
с помощью баш-скриптов управляют же крутыми и мощщщщными серверами. а чем ентот скриптовый язык хужее.
драйвер видюхи конечнож не напишешъ, но жс-писателей к такому и не допускають.
| |
|
5.60, Аноним (60), 17:51, 31/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
> если есть хороший интерпретатор и хардовая библиотека обработки низкоуровневых операций, то почему бы и нет :)
Посмотреть бы, как вы ответите на этот «риторический» вопрос рядом с механизмом, от которого зависит ваша безопасность и в контроллере которого требования реального времени борются со сборщиком мусора. Подозреваю, что в библиотеку обработки низкоуровневых операций вы после этого захотите перенести примерно всё.
Каждое поколение пытается взгромоздить на самоходную газонокосилку язык дня: Java, Scheme, Python, — теперь JavaScript. Гранты осваивают, диссеры защищают…
| |
|
6.63, Щщ (?), 18:47, 31/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
Вот только программировать это всё будет махровый индус и последнее, что бы вы хотели - это чтобы он лез в эту библиотеку низкоуровневых операций. А это суровая реальность.
Все эти языки и изоляции нужны чтобы максимально защитить вас от результата работы не слишком гениальных программистов (99%).
| |
6.66, draw1 (?), 23:12, 31/10/2018 [^] [^^] [^^^] [ответить] | +1 +/– | Ну оно примерно так всё и обстоит когда делают адекватные опытные люди Ввод выв... большой текст свёрнут, показать | |
|
|
|
|
|
3.12, Аноним (12), 21:18, 30/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
Например, в чём лучше? Тем что позволяет выстрелить себе в ногу 100500 способами? Тем что позволяет переопределить object.prototype?
| |
|
4.13, Qwerty (??), 21:21, 30/10/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Имея один JS, можно переопределяться всё, кроме этого JS. Имея два JS, можно переопределяться абсолютно всё.
| |
4.26, Аноним (26), 23:13, 30/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Например, в чём лучше? Тем что позволяет выстрелить себе в ногу 100500
> способами? Тем что позволяет переопределить object.prototype?
Как будто в этом что-то плохое.
| |
|
|
6.53, Аноним84701 (ok), 13:54, 31/10/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Подобное можно делать даже в плюсах, так что нет, не впечатляет
Я конечно не специалист в плюсах, но чтобы там получить именно ТАКОЙ результат сортировки:
[-1,-2,3,4].sort()
Array(4) [ -1, -2, 3, 4 ]
придется все же "пошаманить" ;)
| |
|
5.32, Бутират (?), 03:11, 31/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
А вот с reverse() не фортануло. Брендон Айк подбрасывал кубик чтобы решать чистая будет функция или нет
| |
5.51, Аноним (51), 12:26, 31/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
Потому что документацию надо читать:
Если функция сравнения compareFunction не предоставляется, элементы сортируются путём преобразования их в строки и сравнения строк в порядке следования кодовых точек Unicode.
[-2,-1,3,4].sort((a,b)=>a-b);
>>> [-2, -1, 3, 4] | |
|
6.54, Анонн (?), 13:57, 31/10/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Потому что документацию надо читать:
> Если функция сравнения compareFunction не предоставляется, элементы
> [-2,-1,3,4].sort((a,b)=>a-b);
>>>> [-2, -1, 3, 4]
Удобство и предсказуемость, че -- главное, почаще повторять и постараться забыть, что сам ЯП был сваян за десяток дней.
| |
|
7.64, Аноним (51), 19:01, 31/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
Главное - постараться понять предназначение языка. Яваскрипт со строками работает гораздо чаще, чем с математикой. А если у вас таки много математики, то вам к расширениям языка типа asm.js и WebAssembly...
| |
|
|
|
4.67, Иваныч (??), 23:32, 31/10/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
В Lua хотя бы есть строгое и прозрачное различение между глобальными переменными и их не объявишь по ошибке. Да и массивы начинают индекс с 1-цы, а не как в модном JS с 0-ля. Очевидно что на Lua легче писать большое приложение и его поддерживать.
| |
|
5.79, irinat (ok), 22:15, 04/11/2018 [^] [^^] [^^^] [ответить]
| +/– |
В Lua нет массивов, там только таблицы. Поэтому начинать нумерацию можно с чего угодно, хоть с -2.
| |
|
|
|
|
1.3, Сверчок (?), 20:52, 30/10/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Зачем плодить сущности, когда можно было взять года готовый движок? Благо выбор есть: V8, Spidemonkey, Duktape тот же.
| |
|
|
3.10, A.Stahl (ok), 21:15, 30/10/2018 [^] [^^] [^^^] [ответить]
| +6 +/– |
И что там вкратце? Неужели ты думаешь что кто-то пойдёт смотреть какое-то кино с Ютюба?
| |
|
4.25, Дмитрий (??), 22:45, 30/10/2018 [^] [^^] [^^^] [ответить]
| +4 +/– |
1) V8 и Spidermonkey сделаны в первую очередь для браузеров где совершенно иной сценарий использования (пару десятков вкладок, в каждой вкладке разный код). Тогда как на сервере для данного location код всегда одинаковый. Его можно скомпилировать и вообще выкинуть из движка все что не нужно на стороне сервера. Эти движки очень тяжелые для nginx (впилить можно, но получится недо node.js, который уже есть). nginx легковесный и быстрый и ему нужен легковесный и быстрый движок (пусть и менее навороченный, но который позволяет решать практические задачи на стороне прокси).
2) у Duktape другие цели, в первую очередь они таргетят memory footprint, а не performance.
3) Свой движок можно кастомайзить под nginx.
| |
|
|
|
1.6, Аноним (8), 21:02, 30/10/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> добавлена поддержка объекта "arguments"
А разве его не выпилили в ES6?, есть же spread
| |
|
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 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.
| |
|
|
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 осознаешь сильнее
| |
|
|
|
6.72, Maxim (??), 17:07, 01/11/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> WebAssembly и транслятор asm.js уже готов.
А зачем мне asm.js если есть Bridge.Net?
Все-таки на шарпе по-приятнее.
А из веб ассембли нет доступа к DOM. Или что-то поменялось?
Собственно мы на C# под веб и пишем (транспайл).
TypeScript - очередная затычка от мелкософта.
| |
|
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 знают бекендщики, в корпоративном секторе такое часто. А вот python... только если стек на python, а так инфраструктура держится на bash + основной язык из стека (java, c#, go...). Девелоперы занимаются не только разарботкой но и механизмом развертывания их творения. Админы рулят уже зоопарком серверов и контейнеров, управляют ресурсами, поддерживают корпоративную сеть (месенджеры, почта...), еще ездят в датацентры обслуживать арендованные стойки. Но да, nginx часто получается в пересечении этих двух "миров" :)
| |
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.
> | |
|
2.82, пох (?), 16:15, 23/03/2019 [^] [^^] [^^^] [ответить]
| +/– |
так lua - давно, это уже пройденый этап. (интересно, он по сей день намертво лочит воркер?)
У него есть два недостатка - уродливый синтаксис (требующий много лишнего колошматенья по клавиатуре) и то что он не js - поэтому мартышки его не знают, а учить им некогда, смузи ж скиснет.
> зачем было гордо отказываться от динамических модулей
чтобы не плодить лишний код и лишние проблемы (прикинь как классно подключается этот модуль при многотредовой схеме).
А бизнес-логику при помощи скриптов пишут _конечные_пользователи_, они тебе сошки писать все равно не будут, не обучены.
| |
|
1.80, Аноним (80), 10:43, 07/11/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
По производительности смотрел кто-то данное изделие? Можно его использовать в своих разработках?
| |
|
2.81, Andrey Mitrofanov (?), 12:59, 07/11/2018 [^] [^^] [^^^] [ответить]
| +/– |
> По производительности смотрел кто-то данное изделие? Можно его использовать в своих разработках?
Точн! Может ли оно притормозить обработку запросов nginx до уровня апача или не сдюжит. Аудитория затаила.
Если надо высокопроизводительной математики на "кластарах", то у интерпретируемого самописного языка конфигов "будут для тебя плохие новости"ТМ.
| |
|
|