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

Исходное сообщение
"Основатель QEMU и FFmpeg опубликовал JavaScript-движок QuickJS"

Отправлено opennews , 11-Июл-19 23:14 
Французский математик Фабрис Беллар (Fabrice Bellard), основавший в свое время проекты QEMU и FFmpeg, а также создавший самую быструю формулу вычисления числа Пи и разработавший формат изображений BPG (https://www.opennet.me/opennews/art.shtml?num=41198), опубликовал первый выпуск нового JavaScript-движка QuickJS (https://bellard.org/quickjs/). Движок отличается компактностью и ориентирован на встраивание в другие системы. Код проекта написан на языке Си и распространяется  под лицензией MIT. Также доступна сборка движка, скомпилированная в  WebAssembly при помощи Emscripten и пригодная для выполнения в браузерах.

Реализация JavaScript поддерживает (https://bellard.org/quickjs/quickjs.html) спецификацию ES2019, включая модули, асинхронные генераторы и прокси. Опционально поддерживаются нестандартные математические расширения (https://bellard.org/quickjs/jsbignum.html) для JavaScript, такие как типы BigInt и BigFloat, а также перезагрузка операторов (https://ru.wikipedia.org/wiki/%D0%9F%D0%....


Кроме библиотеки для встраивания движка в приложения проектом также  предлагается интерпретатор qjs, который можно использовать для запуска JavaScript-кода из командной строки. Более того, доступен компилятор qjsc, способный на выходе генерировать пригодные для обособленного запуска исполняемые файлы, не требующие внешних зависимостей.


По производительности QuickJS существенно превосходит (https://bellard.org/quickjs/bench.html) имеющиеся аналоги, например, в тесте
bench-v8 опережает движок XS (https://github.com/Moddable-OpenSource/moddable) на 35%, DukTape (https://duktape.org/) более чем в два раза, JerryScript (http://jerryscript.net/) в три раза, а MuJS (https://mujs.com/) в семь раз.


Основные особенности:


-  Компактность и простота встраивания в другие проекты. Код включает лишь несколько файлов на языке Си, не требующих для сборки внешних зависимостей. Скомпилированное простейшее приложение  занимает около 190 Кб;
-  Очень высокая производительность и быстрое время запуска. Прохождение 56 тысяч тестов на совместимость с ECMAScript занимает около 100 секунд при выполнении на одном ядре обычного настольного ПК.   Инициализация runtime занимает менее 300 микросекунд;
-  Почти полная поддержка спецификации  ES2019 и полная поддержка приложения "B", определяющего компоненты для совместимости со старыми web-приложениями;
-  Полное прохождение всех тестов из набора ECMAScript Test Suite;
-  Поддержка компиляции в кода на языке Javascript в исполняемые файлы без внешних зависимостей;
-  Сборщик мусора на основе подсчёта ссылок без цикличного выполнения чистки, позволивший добиться  предсказуемого поведения и снижения потребления памяти;
-  Набор расширений для математических вычислений на языке JavaScript;
-  Оболочка для выполнения кода в режиме командной строки, поддерживающая контекстную подсветку кода;
-  Компактная стандартная библиотека с обвязками над Си-библиотекой.


Проектом также развиваются три сопутствующие Си-библиотеки, задействованные в QuickJS:


-  libregexp - быстрая реализация регулярных выражений, полностью совместимых со спецификацией  Javascript ES 2019;
-  libunicode - компактная библиотека для работы с Unicode;
-  libbf - реализация операций с плавающей запятой произвольной точности и трансцендентных функций с точным округлением.


URL: https://news.ycombinator.com/item?id=20411154
Новость: https://www.opennet.me/opennews/art.shtml?num=51079


Содержание

Сообщения в этом обсуждении
"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено rshadow , 11-Июл-19 23:16 
А по сути сейчас не взлетит конечно. Разработчикам важно удобство а не размер файлов. С js делать ничего не надо вообще и везде работает. Это самое удобное. Надо в браузеры интегрировать и пару лет ждать пока браузеры не обновятся.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено _kp , 12-Июл-19 00:39 
Для встраиваемых систем размер важен, а JavaScript очень удобен. Конечно, до тех пор, пока на нём пишут именно скрипты, а не приложения целиком.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено mumu , 12-Июл-19 09:17 
Он удобен только лишь тем, что он встроен.
Нет ни одного другого языка с таким же количеством подводных комней, не очевидных и не стандартизированных поведений.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено пох. , 12-Июл-19 10:10 
> Нет ни одного другого языка с таким же количеством подводных комней, не очевидных и не
> стандартизированных поведений.

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

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено e8e998feed8b11e88eb2f2801f1b9fd1 , 12-Июл-19 10:11 
есть неочевидные вещи, но поведение стандартизовано. И вообще это только кажется на первый взгляд..

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Анонец , 12-Июл-19 03:40 
Да, в этом плане оптимально поступил Google, развивая V8. Даже у Mozilla не получилось продвинуть новый движок SpiderMonkey, несмотря на все его достоинства.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 06:46 
Да если посмотреть, все последние проекты мозиллы оканчивались провалом. Сейчас, вот, браузер на очереди.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 08:10 
Да. Что делают с Фф и Тбёрдом - иначе бы им как-то.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 09:57 
Ты везде такое под копирку коментишь? https://www.opennet.me/opennews/art.shtml?num=41198
Красава :)

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено менан , 11-Июл-19 23:17 
Класс, со временем прикрутят JIT, и можно будет создать убийцу Electron!

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено bw , 12-Июл-19 10:06 
Для Electron ещё нужны DOM, CSS, рендер и т.д., так что всё равно те же 100Mb получатся.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 18:11 
С таким грамотным подходом получится сильно меньше чем 100 Мб. Opera когда-то была живым примером. Ничего не мешает повторить тот же опыт, были бы заинтересованные. Корпорациям, очевидно, совершенно по барабану. И это печалит.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 04:12 
У opera был чудовищный код с кучей костылей и if'ов под каждый случай, это не лучший пример.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 11:18 
Но оно работало. И весило, и кушало при этом мало. В вопросах оптимизации не до красоты кода. Да вы в исходник сабжа загляните - сплошная математика, но, как видно, обходит другие реализации по всем параметрам.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 06:03 
С каким грамотным? Разработчик смог сделать урезанную и медленную реализацию js для встраивания. Ок.
Но причем здесь электрон? Сделать медленную и урезанную реализацию браузера, которой невозможно будет пользоваться из-за низкой производительности...

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 11:15 
Ну, судя по тестам, получилось лучше всех из тех, что реалистично написать 1-2 людям, конечно. Если поставить его архитектором и мейнтейнером группы программеров, уверен, что порвет остальные реализации. И я сильно сомневаюсь в том, что V8 - достижимый предел по оптимизациям. Можно быть быстрым и при меньшем потреблении ресурсов.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:20 
перезагрузка оператора это когда он завис что ли?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено foi , 12-Июл-19 04:59 
Речь про ПЕРЕОПРЕДЕЛЕНИЕ ИМЕНИ

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Vasya777rus , 12-Июл-19 05:33 
Не, это перегрузка

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 08:23 
Не надо тут капсом писать, мы знаем что такое перегрузка операторов и функций, в статье написано "перезагрузка".

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 08:44 
>что такое перегрузка операторов и
>написано "перезагрузка".

Б[уха]дь .

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

Теперь только :/ собственные потуги.   #пичально-я-гляжу-на #пятница #опять-нет-повода-не...  #о-терминах


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено hiveliberty , 12-Июл-19 09:55 
Написано ведь в новости, "перегрузка", а не "перезагрузка"..

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 11-Июл-19 23:20 
Ну вот и поправил бы сразу язык, выкинув из него все говно. Может и получилась бы конфетка.

А так - вся производительность тут же умрет под новым провоцируемым языком говнокодом.

[] == ![] // true
[1, 2, 3] + [4, 5, 6] // '1,2,34,5,6'
[,,,].length // 3

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:32 
> [] == ![] // true
> [1, 2, 3] + [4, 5, 6] // '1,2,34,5,6'
> [,,,].length // 3

Сколько бы работодателей ни сменил, нигде не видел этих теоретических примеров. Зато я их видел в статьях типа "смотрите какая приколюха".

Но! Ты можешь меня легко опровергнуть, приведя в каком-нибудь гитхабе реальные примеры твоим трем кускам кода. Ждем опровержений, так сказать. Язык же провоцирует, как ты говоришь? Следовательно, ожидаются не пара ссылок, а пара десятков ссылок, найденных __сходу__ и за 15 минут начиная с 00:00 MSK (даю тебе 30 минут на рефреш страницы и обнаружение моего ответа, сейчас 23:32 MSK).


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено kiwinix , 12-Июл-19 02:15 
Да ну третий пример +- иногда используется, даже в PHP можно так запятые ставить.

И ваще то, это фича, которую юзают! Кажись так можно пропускать переменные при деструктуризации

const [first,,third] = [1,2,3];

Но я не чекал, работает ли такой код, я с телефона


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Евгений , 12-Июл-19 08:48 
Чего???

$ php -r 'var_dump([,,,]);'
PHP Fatal error:  Cannot use empty array elements in arrays in Command line code on line 1

Fatal error: Cannot use empty array elements in arrays in Command line code on line 1


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 11:34 
не, там прикол в другом - в третьем примере по логике ответ должен был быть 4

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Mmrnmhrm , 12-Июл-19 12:44 
Кому был должен? Ты выясни, чисто для себя, что такое .length - в данном случае он работает так, как ему положено

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено mickvav , 12-Июл-19 16:35 
Нет, там [1,2,] == [1,2] поэтому empty между последней запятой и закрывающей скобкой не создается.
В python, кстати, тоже можно так писать - [1,2,] и это то же самое, что и [1,2]

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 09:39 
Реально используемый код
[
  "one",
  "two",
  "three",
]
По Вашей логике там должен быть пустой элемент в конце. А по логике разработчиков языка запятая в конце позволяет избежать ошибки при добавлении последующих элементов. Например
[
  "one",
  "two",
  "three"
  "four"
]

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Mmrnmhrm , 12-Июл-19 12:38 
Если с андроеда - ставишь termux и можно прогать )

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 11:46 
Так я об этом и написал: язык является таким скопищем граблей и ловушек, что приходится избегать(!!!!) базовых вещей.

Вот еще:
1 < 2 < 3 // -> true
3 > 2 > 1 // -> false

Отличный язык, да.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 12:21 
> Отличный язык, да

Иногда лучше жевать, чем говорить.

$ cat ./fgh.c
#include <stdio.h>
void main () {
  printf("1 < 2 < 3: %d\n", 1 < 2 < 3);
  printf("3 > 2 > 1: %d\n", 3 > 2 > 1);
}
$ gcc ./fgh.c && ./a.out
1 < 2 < 3: 1
3 > 2 > 1: 0


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним84701 , 12-Июл-19 12:46 
> $ gcc ./fgh.c && ./a.out
> 1 < 2 < 3: 1
> 3 > 2 > 1: 0

Как будто кто-то утверждал, что сишка в этом плане лучше (один только препроцессор чего стоит)
Хотя там грабли все таки больше исторические, обратно-совместимые, сразу со встроенным грабле-детектором:


% gcc -Wall fgh.c
fgh.c:2:6: warning: return type of 'main' is not 'int' [-Wmain]
void main () {
      ^~~~
fgh.c: In function 'main':
fgh.c:3:35: warning: comparisons like 'X<=Y<=Z' do not have their mathematical meaning [-Wparentheses]
   printf("1 < 2 < 3: %d\n", 1 < 2 < 3);
                                   ^
fgh.c:4:35: warning: comparisons like 'X<=Y<=Z' do not have their mathematical meaning [-Wparentheses]
   printf("3 > 2 > 1: %d\n", 3 > 2 > 1);


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 13:28 
Грабледетектор - это конечно хорошо, но если разработчик берет свои ожидания не из спецификации языка, а откуда-то из воздуха ("ну вроде очевидно же"), то он ошибся профессией. Какого результата он ожидал от [1,2,3] + [4,5,6]? Ожидал ли он результат в виде [1,2,3,4,5,6]? Или там должно было быть [5,7,9]? Или [1,2,3,[4,5,6]]? Или вовсе 21? А если бы операндами были массивы массивов, ожидал ли он сложение матриц?

Толковый разработчик, не знающий языка, сразу должен заподозрить, что конструкция "массив + массив" может означать всё, что угодно, и поэтому он тут же пойдет прояснять поведение в спецификации языка. А бестолковый примет за ожидаемое поведение единственный вариант, до которого сумел додуматься.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 16:39 
Вы путаете разработчика и кодера, сиречь обезьяну, переводящую готовый алгоритм на одном языке на другой.

Толковый разработчик не должен держать в голове пятьсот взаимоисключающих параграфов (таких как true + true дает 2, или "+" - это конкатенация, а "-" - это математическая операция) нужного говноязыка, он должен легко и просто записать на выбранном языке разрабатываемый алгоритм; при этом быть защищенным от большинства интуитивных ошибок.

В любом языке эти грабли, конечно, есть (например, "=" как присвоение а не сравнение в С), но это именно что "грабли есть". В то время как JS - это одна сплошная грабля, куда не сунься. И не надо мне вешать лапшу про "динамический язык", динамических языков много, а говно - только один.

И это не только мое мнение. Это подтверждается постоянно изобретаемыми языками, фреймворками и тулзами поверх JS. Такого зоопарка языков "ну хоть как-то превратить программирование на js из изврата в программирование" больше нигде нету.
46 языков (https://www.slant.co/topics/101/~best-languages-that-compile... главная цель которых "мы не хотим писать на говне, мы хотим писать для веба комфортно"!!!

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


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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 18:42 
> Толковый разработчик не должен держать в голове пятьсот взаимоисключающих параграфов (таких как true + true дает 2, или "+" - это конкатенация, а "-" - это математическая операция)

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

У меня например таких ситуаций попросту не возникает. Если я положил в переменную число, то у меня там и будет число: туда я больше не положу ни массив, ни булево, ни что-то еще. Возможно у тебя в в for'e в while в switch'e одна и та же переменная хранит все, что бог на душу положит. Тут уж проблема в генах, а не в языке.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 22:49 
Ну вот видишь - все именно так, как я и говорил: "программист" джаваскрипт ходит строго по указанной дорожке между граблями, боясь сделать шаг влево или вправо. При этом еще и обвиняя тех, кто хотя бы указывает на присутствие оных грабель в невежестве и вообще глупости.

А программист НЕ джаваскрипт решает поставленную задачу всеми доступными ему средствами языка. За сим, думаю, тему пока что можно закрывать.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 16:56 
Прекрасное подтверждение тезиса "говноязык воспитывает говнопрограммеров".

Вы, я так понимаю, уже давно перестали понимать разницу между булевыми и числовыми значениями?
JavaScript содержит булевые значения, это true и false. True, это true. False, это false (если не верите мне, сами нажмите Ctrl+Shift+I и введите в консоли. 1 - это 1, а 0 - это 0. Тоже можете проверить. И true === 1 дает в результате false (а не, кстати, 0).

В С булевых значений нету в принципе, там есть только числа. Это низкоуровневой язык. JavaScript же содержит, это высокоуровневой язык. И typeof(false) дает "boolean", а не "number".

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

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 18:58 
> Вы, я так понимаю, уже давно перестали понимать разницу между булевыми и числовыми значениями?

Погоди-ка. Почему это Я не понимаю разницы, если это ТЫ раз за разом пишешь код, когда вместо строк и чисел складывается все, что угодно? Это же __твой__ код производит всякие трюкачества, поэтому у __тебя__ и проблемы. У меня таких проблем нет, в кодовой базе моих работодателей таких проблем нет, на гитхабе таких проблем тоже нет. Ты же не привел ссылки, верно? Пока ссылок нет, ты не сумел показать, что "проблема" носит какой-то массовый характер.

> разные(!) типы могут беспрепятственно неявно конвертироваться друг в друга

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 22:54 
Дорогой аноним. Почему бы вам не попытаться прочитать то, что написано выше? Или программирование на джаваскрипте заодно и отучает понимать то, что пишут другие? Впрочем, не удивлюсь - ведь то, что написано на джаваскрипте, чаще всего делает совсем не то, что подразумевается. Например, арифметическая сумма является конкатенацией строк, в то время как разница - действительно арифметическая разница.

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 23:52 
Без минимум двух десятков ссылок на гитхаб твои примеры исключительно сферическо-теоретические

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Антон , 11-Июл-19 23:49 
в чем проблема запомнить несложные преобразования сложных типов к примитивам и условия в котором они неявно производятся?
Да и достаточно использовать любой статический анализатор чтобы недопускать такие дурацкие вещи.
Зато у js так же много плюсов.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Mr. Beaver , 12-Июл-19 09:13 
Тонюсенько набросил про "плюсы".  Молодец. А не взлетело потому что слишком уж тонко, эксперты опеннетика такую тоньшину не могут замечать

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 16:42 
В том, что это совершенно излишне.

Ну вот представьте себе, что ваш язык не состоит не из "for", "repeat", "while", а из "+", "++" и "+++" соответственно.

В чем, скажет очередной недопрограммер, проблема? Неужели нельзя запомнить один простой сивмол? Зато сколько плюсов...


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 07:19 
Это хорошо известное документированное поведение. Если оно для тебя в новинку - катись улицы мести!

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 08:13 
Что ж такое было в голове, у созавщего(их) _это_.
Такой инструёмент не нужен.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 08:52 
> Что ж такое было в голове, у созавщего(их) _это_.
> Такой инструёмент не нужен.

Для метения улиц -- безусловно.  И для писания "ннужно"-камментариев.

То есть Вас лично никто не заставляет.  "Можете не приходить."

И Ваше мнение важно, не останавливайтесь, спасибо!


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 23:48 
Прекрасный язык:

var arr = [1, 2, 3, 4, 5, 6, 7, 8];
  arr[-1] = "yo wazzzup";
  console.log(arr.length); // > 8
  console.log(arr[arr.indexOf(99)]); // log's > "yo wazzzup"


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено e8e998feed8b11e88eb2f2801f1b9fd1 , 12-Июл-19 10:13 
кто тебя заставляет такой код писать? JS никого не заставляет. Если хочешь такое писать изволь разобраться с приведением типов..

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 16:43 
Когда мне надо - я пишу на тайпскрипте. Но, к сожалению, нормальных средств дебага (как уже 1000 лет есть в С) для него пока не создали.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 11:49 
Ну что я вижу по комментаторам - все пишут "тебя никто не заставляет по этим граблям прыгать" и "есть специально определенное практикой подмножество языка JS, на котором и надо писать, чтобы не проваливаться в ловушки и не получать граблями в лоб".

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено vitalif , 12-Июл-19 11:57 
Не выделишь - язык с динамической типизацией и без приведения типов неудобен

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 23:49 
lua. Все красиво, удобно и интуитивно понятно.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 03:42 
И индексы начинаются с 1. Спасибо, ешьте сами.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 13-Июл-19 20:28 
Индексация и должна быть с 1. Вся мировая математика считает с 1 - почему программисты должны каждый раз переделывать математику под себя, не забывая отнимать 1 от каждого индекса?
Более того - нулевой индекс лишен математического и семантического смысла.

То, что "так сложилось исторически" в самом распространенном до некоторого времени языке, который из-за лени (ничего не мешает хранить указатель на массив как "массив-1" элемент и использовать ту же самую математику для вычисления N-го элемента, что и всегда - это не повод считать, что "так правильно".

Кстати, в лиспе (одном из древнейших языков) элементы считались с 1. И математики с удовольствием этим пользовались.

p.s. Я когда-то писал для МС математическую библиотеку, она вроде до сих пор где-то в недрах даже десяточки валяется. В ТЗ было написано: индексация векторов и матриц - с единицы. Совершенно никакой деградации скорости.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено vitalif , 13-Июл-19 11:28 
> lua. Все красиво, удобно и интуитивно понятно.

и begin end, ага. убивать


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Совершенно другой аноним , 12-Июл-19 12:24 
Безотносительно недостатков языка - если автор выделит язык "на котором можно легко и приятно писать, не опасаясь, что из-за близости ящика ананасов и яблок весь склад не взорвется", то это, наверное, уже будет не JavaScript. А новый язык, уже не особо сильно и нужен - их и так уже придумано достаточно много, а автор, к сожалению, не Google, у него нет таких ресурсов, чтобы популяризировать новый язык и создать большое сообщество под своей эгидой.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено gfederix , 12-Июл-19 12:54 
Ну давайте ещё вспомним операции с плавающей точкой. Всё-таки это применяемый на практике, живой язык. Не нравится пользуйте webassembly как прослойку, для "идеального языка" или обмазывайтесь TS с кофе.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 16:44 
С вебассембли есть большая проблема - он еще не устаканился, поэтому эмскриптен, например, каждый месяц ломают обратную совместимость и каждый месяц приходится по новой вчитывать "что же они там в этот раз поломали".

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 16:58 
Для идеального языка по работе с числами есть фортран и лисп.

(* 12345678987654321 78912345654321987)
; ==> 974226487611077725558868785855827


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 03:45 
Обратная запись. Ты наркомэн штолле?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 14-Июл-19 09:53 
Вот и выросло поколение...

Во-первых, не обратная, а прямая. Префиксная.

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

> (/ 12345 555)

823/37


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено gfederix , 22-Июл-19 14:04 
> Для идеального языка по работе с числами есть фортран и лисп.
> (* 12345678987654321 78912345654321987)
> ; ==> 974226487611077725558868785855827

Вы решаете не ту проблемму том же C++ для такой проблеммы можно просто класс написать, чтобы это решить.

А вы попробуйте вот такой пример скажем в scheme48:
> (+ 0.2 .1)

0.30000000000000004

Ну или
> (+ (/ 2 10) (/ (/ (log 10) (log 10)) 10))

0.30000000000000004

> (log (exp (/ 1 10)))

0.10000000000000007


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 14:42 
> [,,,].length // 3

А что тут не так? Лист не пустой, конечно длинна будет 3. Вот размер будет нулевой, или в жабе нету подчёта размера?


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Урри , 12-Июл-19 15:31 
Четыре. Три запятые, четыре элемента.

О чем и речь.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 12:07 
не будет он нулевой.
Это будет массив из 3х пустых элементов.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 10:01 
такие грабли есть у всех языков. Не используй автоматическое преобразование типов если не понимаешь как оно работает.
!![] == ![]
[1,2,3].concat([4,5,6])
new Array(4)

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 12:52 
> такие грабли есть у всех языков.

Правда? В Haskell, Clean, Miranda, МL, Mercury? Или может в семействе паскалевых, в Ada?


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 12:55 
> такие грабли есть у всех языков.

Это в первую очередь грабли динамичных ЯП и ЯП со слабой типизацией, особенно с неявными преобразованиями.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено ksa242 , 13-Июл-19 13:31 
isNaN(null) === false

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 14-Июл-19 13:04 
и тут он узнал что null и NaN это разные значения (и типы)

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено ksa242 , 14-Июл-19 20:31 
Не в этом дело. По стандарту isNaN() всё, что не Number и не NaN, приводит к Number; и по стандарту же null приводится к +0, хотя, как ниже заметили, typeof null === "object", а object при приведении к Number по стандарту  должен давать как раз NaN. Поведение документировано.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 14-Июл-19 14:11 
typeof null === "object"

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:21 
Толковый мужик. Я из математики помню только таблицу умножения.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено _Vitaly_ , 11-Июл-19 23:22 
Про скорость верится с трудом. Скорее всего встроенные как интерпретаторы соревнуют. Это как если в современном браузерном движке просадить инлайновые кеши деоптимизациями. Скорость упадет в 4-10 раз.

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено _kp , 12-Июл-19 00:46 
Для встраиваемых систем сейчас позарез нужен компактный Javascript, причём, вменяемость важнее скорости. Буду тестировать.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Антон , 11-Июл-19 23:26 
Движок js, выполняемый в браузере это сильно конечно, но зачем???
А так самое интересное тут это компилятор. Можно ли будет, скажем, сервер под ноду скомпилировать, т.е. скомпилированный js + libuv

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 08:57 
> Движок js, выполняемый в браузере это сильно конечно, но зачем???

Мозила наконец-то выкиет неполиткорректный эйковский LISP ^W
js из бровзера же!

</Заживём>.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 11:29 
> Можно ли будет, скажем, сервер под ноду скомпилировать, т.е. скомпилированный js + libuv

Возникает вопрос: а зачем вам тогда js сдался? Может писать на компилируемом языке сервер сразу и не заниматься ерундной?


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 11:38 
JS иногда позволяет починить такие косяки дизайна программ, которые в компилируемых языках починить просто невозможно, в нём отлично реализованы вские замыкания и прочие плюхи, которые весьма облегчают программирование (но не саппорт) и делают код более компактным и простым (ровно до момента пока автор этот код помнит)

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 14:44 
> Компактность и простота встраивания в другие проекты. Код включает лишь несколько файлов на языке Си, не требующих для сборки внешних зависимостей. Скомпилированное простейшее приложение занимает около 190 Кб;

Не обязательно в браузере запускать интерпритатор. Достаточно говнореализациию от всяких мозилл и гуглов заменить.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:26 
>javascript
>компактность

звучит как оксюморон


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено gsdh , 11-Июл-19 23:32 
Наконец-то, адекватная реализация.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:32 
А это можно вместо lua в качестве встраиваемого языка применять?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:46 
Как официальный Аноним оппенета официально запрещаю тебе использовать вместо lua данную js поделку. Во имя Линуса, Ядра и святого опесорсного духа.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 00:01 
> Во имя Линуса, Ядра и святого опесорсного духа.

Тебе имя автора ни о чем не говорит?


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 00:08 
Lua - MIT

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено IRASoldier_registered , 12-Июл-19 00:23 
И что? "Лицензия MIT (англ. MIT License) - лицензия открытого программного обеспечения (...)". Т.е. - open-source license.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено gsdh , 12-Июл-19 06:06 
> Т.е. - open-source license.

Господи, да сколько вам объяснять что опенсорс != свободный софт,

MIT и BSD != GNU и GPL, которые можно юзать везде


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 06:27 
Все можно использовать. Вопрос в том, что именно ты пишешь. Исповедования Столлмана (равно как и христианства, мусульманства, буддизма) пожалуйста оставляйте при себе и больше не позорьтесь.

Вот именно сейчас ты опозорил Столлмана, который тебе мильон раз объяснил, что GNU это философия (и акроним), а GPL это лицензия.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 09:15 
> Все можно использовать. Вопрос в том, что именно ты пишешь.

Малыши http://www.opennet.me/openforum/vsluhforumID3/112997.html#153
обижены http://www.opennet.me/openforum/vsluhforumID3/116924.html#15
на GPL, FSF и лично деда Ричарда:

"" Да, для _проприертарщиков_ GPL-и более несвободны, чем пермиссивы. Это и я говорил неоднократно.
И да, так и задумано, так и надо.  ""

--  http://www.opennet.me/openforum/vsluhforumID3/109155.html#41


>Исповедования Столлмана

Да, он вообще не понятно, чего там "на[би-бииип]кодил".  (про '!= GPL , ещё что-то")

То есть по впечатлению -- +<|-)  пермиссивщик же.

>пожалуйста оставляйте при себе и больше не позорьтесь.

Сразу, как толь ко Вы -- оставите при себе свои.  Обязательно.

> Вот именно сейчас ты опозорил Столлмана, который тебе мильон раз объяснил, что
> GNU это философия (и акроним), а GPL это лицензия.

У вас парное выступление?  Один наблосил, другой провентилировал-разбросал??   Ай,  "зрада".


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 09:06 
> Господи, да сколько вам объяснять что опенсорс != свободный софт,
> MIT и BSD != GNU и GPL, которые можно юзать везде

NIT и BSD также являются свободными. Они, кроме того, не являются копилефт-лицензиями, поэтому, в отличие от кода под GNU GPL, код под MIT или BSD действительно можно юзать везде. Учитывая, что это встраиваемая реализация, использование GPL или даже LGPL сильно ограничило бы область применения.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 12:54 
>> Господи, да сколько вам объяснять что опенсорс != свободный софт,
>> MIT и BSD != GNU и GPL, которые можно юзать везде
> NIT и BSD также являются свободными. Они, кроме того, не являются копилефт-лицензиями,
> поэтому, в отличие от кода под GNU GPL, код под MIT
> или BSD действительно можно юзать везде. Учитывая, что это встраиваемая реализация,
> использование GPL или даже LGPL сильно ограничило бы область применения.

Ну, давай, давай про "ограничения"....

1) Нельзя в гугле.  Там только ASL, лояры не разрешают.
   http://www.opennet.me/openforum/vsluhforumID3/116924.html#20
   1.1) в сони, в микрософтк (GPLv2==-им-гр-Торвальдса уже почти можно, но сейчас не об этом), в ...  не суть!
   http://www.opennet.me/openforum/vsluhforumID3/82687.html#172
   http://www.opennet.me/openforum/vsluhforumID3/82687.html#132

2) В твоём проекте, где ты мечтаешь (мечтатель!) жо..ть ^W невозбранно закрывать код и продавать, продавать.... продавать!!!
   http://www.opennet.me/openforum/vsluhforumID3/82687.html#171
   http://www.opennet.me/openforum/vsluhforumID3/116924.html#23
     & http://www.opennet.me/openforum/vsluhforumID3/116924.html#20
   http://www.opennet.me/openforum/vsluhforumID3/105044.html#45

3) Во FreeBSD.  Они идейные сторонноки первых двух пунктов:  "невдобнож аплаянс вендорам" страшый харам.
   http://www.opennet.me/openforum/vsluhforumID3/82687.html#300
   http://www.opennet.me/openforum/vsluhforumID3/82687.html#176
   http://www.opennet.me/openforum/vsluhforumID3/82687.html#270
   http://www.opennet.me/openforum/vsluhforumID3/114680.html#73
     & http://www.opennet.me/openforum/vsluhforumID3/114680.html#25
     &&& http://www.opennet.me/openforum/vsluhforumID3/114680.html#44
   http://www.opennet.me/openforum/vsluhforumID3/114919.html#39

Более другие ограничения?
   http://www.opennet.me/openforum/vsluhforumID3/82687.html#115

С этими -- вполне можно жить.
   http://www.opennet.me/openforum/vsluhforumID3/82687.html#80
   http://www.opennet.me/openforum/vsluhforumID3/116924.html#24

И, кстати!  Свобода(!!)
   http://www.opennet.me/openforum/vsluhforumID3/116924.html#43
   http://www.opennet.me/openforum/vsluhforumID3/114680.html#77
использования  --  совсем не страдает.

Да, "использование" -- в изначальном смысле,
   [[ссылка на словарь потеряна в аналах]]
не проприертарщическо-сексуально-мазохистском искажении.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 09:17 
Ты очень много ссылаешся на других, а толком выразить свою мысль не можешь. Поясню для тебя на пальцах.

BSD/MIT просят сохранить копирайт, но с кодом велен делать, что хочешь. Эта просьба основа на законе об авторском праве (венская конвенция) и общечеловеческом отношении: все что не мой код, я обязан другим людям.

GPL требует открывать код при любом использовании кода под GPL. Это вирусная лицензия, смысл которой всегда создавать производный код под открытой лицензией.

Рассмотрим на примере. Есть два проекта, скажем библиотека для создания http сервера. Один проект под BSD, другой под GPL.

Ты решил написать веб-приложение на основе одной из этих библиотек, например, whois. Твой код это создание (инициализация) веб-сервера, клиент whois, html/js код.

В случае BSD твой код может быть под любой лицензией, в частности GPL.

В случае GPL - только GPL.

Теперь предположим, что я решил развить твое веб-приложение, добавив проверку в спам листах.

И снова, если ты выбрал GPL, то я обязан буду выпустить свой код под GPL. Если ты выбрал MIT или BSD, то я буду обязан лишь указать твой копирайт. В последнем случае ты будешь уверен, что я не присвоил себе твой код и точка.

Вывод. Чем лучше GPL или BSD определяет автор своего кода. А свой код ты можешь писать из-за разных внешних факторов.

Например, если ты сотрудник компании, которая решит потом продавать твой код, выгоды в GPL нуль. С GPL можно продавать только поддержку. Если решишь продавать бинарные патчи и плагины, то тебя самого можно по GPL засудить. Даже не смотря на то, что ты автор всего кода. Я не знаю таких прецедентов, но GPL это не разрешает. Именно в этом ее вирусная сущность.

Кстати, именно по причине выше некоторые выпускают код под двойной лицензией.

И в чем свободность GPL? Даю ответ. BSD/MIT это свобода выбора автора [что делать с твоим кодом]. GPL - свободный код, везде и всегда, хочет автор этого или нет.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 13-Июл-19 14:29 
> Ты очень много ссылаешся на других, а толком выразить свою мысль не

???!  Там почти все ссылки на меня-любимого.  Ты толком читать не научился?

> можешь. Поясню для тебя на пальцах.

Купи себе циркулярку, распальцовщик...

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

Да?


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Dheev , 12-Июл-19 14:44 
GPL можно использовать не везде. В проприетарные компоненты встраивать нельзя.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 19:21 
Проблема не только и не столько в проприетарщине. GPL-код нельзя линковать с кодом под кучей других свободных лицензий: https://www.gnu.org/licenses/license-list.html#GPLIncompatib...

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 14:46 
В GPL обязательно открытие исходников (только в 3.0, в 2.0 есть лазейки). В остальном MIT ничем не отличается. Ну да, MIT можно в проприетарщине юзать и не давать никому исходники, это минус.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 15-Июл-19 08:38 
> В GPL обязательно открытие исходников (только в 3.0,

Нет.  Не "открытие исходнков", а "предоставление прав".
И не "откытие"  вааще, а предоставление [тех же] прав получателям кода.

Нет.  Выкладывать  винтеренет _не_обязательно_. Но можно, да.

Вас покусали!   Срочно сделайте прививку от гпл-опенсорсия.  А то так и до гидхаб-пермиссивия не далеко.

"" --Резать!  Резать к ч.м., не дожидаясь перитонита. ""

>в 2.0 есть лазейки).


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено IRASoldier_registered , 12-Июл-19 16:31 
> Господи, да сколько вам объяснять что опенсорс != свободный софт,

Не надо никому ничего объяснять - то, что ты пытаешься объяснить не имеет отношения к СУТИ вопроса.

> MIT и BSD != GNU и GPL, которые можно юзать везде

Вот ещё один GPL-зацикленный... Кто-то запрещает использовать везде выложенное под MIT? Вот как НАДО формулировать вопрос. Не "но это же не GPL?" (и не "а что по этому поводу говорит Столлман?", бгг), а "что мне позволяет MIT?".


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 09:00 
> И что? "Лицензия MIT (англ. MIT License) - лицензия открытого программного обеспечения
> (...)". Т.е. - open-source license.

Как что?!1  Она же напрочь отбивает у анОнимов чувство прекрасного, глымления и сарказЬму.   Бида с ней.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Crazy Alex , 11-Июл-19 23:49 
Тот же ducktape сто лет как можно

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:50 
Я тебе по секрету скажу: вон те аналоги, которые в новости перечислены, уже давно именно так и применяют. Правда не знаю, зачем, если есть lua.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:53 
Для встраивания всё есть. Так что можно, разрешаю

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:44 
А мужики то и не знают что встраиваемые системы надо на джава скрипте писать а не на С. Завтра им обязательно сообщу что они ерундой занимаются.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Антон , 11-Июл-19 23:45 
C заменять не надо. А вот вместо питона было бы отлично.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:56 
Если Беллар не мужик, то я не знаю кого ты зовешь мужиками.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 10:05 
Не путай с "мужчиной". Исторически "мужик" - это крестьянин, почти раб "дворянина".

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Crazy Alex , 11-Июл-19 23:57 
1) "Встраивание в другие системы" и "встраиваемые системы" - разные вещи.
2) Удивись - питон тот же ещё в avr и PIC упихивали. О бейсике и том, на чём в своё время крутился, и не говорю - тогдашние компы мощи нынешней встройки могут только позавидовать.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено _kp , 12-Июл-19 01:03 
> А мужики то и не знают что встраиваемые системы надо на джава
> скрипте писать а не на С.

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

Помимо всяких контоллеров, Javascript/Lua есть в фотоаппаратах, контроллерах телескопов...
Быстродействие скриптов в таких применениях некритично, достаточно что бы они не создавали проблем из за частичного соответствия стандартам.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено andy , 11-Июл-19 23:45 
нужно сравнение по производительности с v8

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 11-Июл-19 23:56 
Какой смысл сравнивать слона с таксой? Лучше сравнить с той же lua

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено kEKS , 12-Июл-19 00:07 
V8 тоже встраиваемый js-движок (про node.js не слышали?). В чём проблема сравнить?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 00:22 
V8 такой же встраиваемый, как cpython. Тут же речь про компактность. Ну обгонит V8 раз в 10 и дальше что? Какой вывод из этого можно сделать? То что жирный монстр с jit и морем оптимизаций уделал компактный двиг? Вот это неожиданность.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Michael Shigorin , 13-Июл-19 15:38 
О, у нас снова User294 :)
Привет!

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 09:29 
> Какой смысл сравнивать слона с таксой?

Нода-и хрома- фаги увидели Возможность!  В новости написано ж "быстрее!"

Поэтому, быстрее - пока не началось!(ц) анекдот,  нужно втащить бузинессь-преимущества в проакшен, повысить эффективность же.

Эффективные оптимизируют.

>Лучше сравнить с той же lua

Вот и Вы тоже -- участвуете, ищете микрооптимизаций и бузинес проффитов, задаёте "интересные вопросы", да?

Поеннет, пятниця -- жизнь бурлит....  //И да, Беллард - титан.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено НяшМяш , 12-Июл-19 01:47 
Взял из их архива bench-v8, сбилдил QuickJS и сравнил с нодой: https://pastebin.com/rfb7k13m

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 09:34 
> Взял из их архива bench-v8, сбилдил QuickJS и сравнил с нодой: https://pastebin.com/rfb7k13m

Где в этом наборе букафф -- сравнение-то??   Не позорился б,  подождал час-другой, пока Ларабель сделает настоящее сравнение с грахвиками, прОцентами и целеуказующими стрелочками на оных "<-<< less is butter".  /</>/


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 11:21 
Чё ноешь? Циферки не умеешь читать, графики подавай?
Чел взял и сравнил. Хочешь лучше - сделай сам! Или жди фороникс, а не ной.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено НяшМяш , 12-Июл-19 13:21 
Чёрт, вот хотел же сделать по модно-хипстерски, а сделал на отвянь, за что и поплатился )

А если серьёзно - ещё попробовал запустить их microbench.js, но там как-то жутко прибито к апишкам QuickJS и я пока не прошарил как это запустить на ноде. Там тестов намного больше и они нагляднее.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 13:38 
Что показывают эти числа? Число выполненных циклов за фиксированное время (т.е. скорость)? Или время выполнения теста? Вижу, что один в 20 раз лучше другого, но который?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено НяшМяш , 12-Июл-19 14:39 
Выдержка из комментария к бенчмарку:

Suites of benchmarks consist of a name and the set of benchmarks in addition to the reference timing that the final score will be based on. This way, all scores are relative to a reference run and higher scores implies better performance.

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 00:02 
> основавший в свое время FFmpeg
> разработавший формат изображений BPG


» ffmpeg -formats|grep -i bpg
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers

[exit code: 1]

Как так?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Lol , 12-Июл-19 00:06 
В следующий раз проверь поддержку FFmpeg'ом JavaScript'а

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 00:11 
И QEMU ещё.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 10:05 
> И QEMU ещё.

https://duckduckgo.com/?q=%D0%B8+%D0%B6&... //и картинка тоже+


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 00:10 
Ну вот так, в туду пока что, не впилили еще)
https://trac.ffmpeg.org/ticket/4169

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено мяя , 21-Июл-19 18:03 
Не стандарт же. Широкой поддержки не получил.
Это же по сути HEVC, а для него для изображений есть куда более официальный HEIF.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено izyk , 12-Июл-19 00:07 
Вот это, реально, крутой чувак.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 01:21 
так так так... теперь в реализацию webasm на js засунем QuickJS внутри браузера а то 16Гб на вкладку уже не комильфо

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 01:24 
хоть более нормальных свободных альтернатив qemu нет, qemu еще то гвн0. Берем учебник английского языка и гаглим  "google cloud && qemu"

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 10:01 
> хоть более нормальных свободных альтернатив qemu нет, qemu еще то гвн0. Берем
> учебник английского языка и гаглим  "google cloud && qemu"

Смотрите, дети, на этого анОнима...

   ...г"А"глит он клауд, а г--но == qemu.

...и никода так не делайте ~


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 15:13 
Вам бы учебник русского языка взять... ну, погаглить предварительно...

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено user90 , 12-Июл-19 02:21 
Вот этого (js) - не надо! Вроде и математик, а такую фигню.. ааа, точно! Математик жи ;)

> Проще говоря WebAssembly представляет технологию, которая позволяет
> запускать в браузере низкоуровневый скомпилированный код.

Ну, такое.. ведь никто не добавляет "из доверенных источников", ХОМЯКИ!))


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Онаним , 12-Июл-19 04:47 
> Реализация JavaScript поддерживает спецификацию ES2019

Т.е. Babel больше не нужен?


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 12:16 
А как запускать es2019 в старом ie?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 05:57 
> Поддержка компиляции кода на языке Javascript в исполняемые файлы без внешних зависимостей;

Зависимости будут в рантайме из интернета подтягиваться.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Andrey Mitrofanov_N0 , 12-Июл-19 10:10 
>> Поддержка компиляции кода на языке Javascript в исполняемые файлы без внешних зависимостей;
> Зависимости будут в рантайме из интернета подтягиваться.

Тебе ж русским языком по белому написали:  без glibc-а  .
Всё.  Остальное не важно.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 06:10 
Интересно сможет ли он заменить PhantomJS? Было бы круто использовать его в CI/CD системах для тестирования фронтенда.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Quarck , 12-Июл-19 08:01 
phantomjs давно помер и не нужен, chrome и firefox поддерживают headless режимы.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 08:07 
насколько помню, PhantomJS был браузером без GUI, а не просто js-движком. И его уже заменяет современный хром в режиме headless, драйверы к нему уже прикрутили, вроде

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено qwerty123 , 12-Июл-19 09:42 
# du -h quickjs.c
1.5M    quickjs.c

# wc -l quickjs.c
   47841 quickjs.c

вот так, сразу, внезапно, кода на 1000 страниц.
в одном файле.

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено пох. , 12-Июл-19 10:15 
разница между вами в том, что у него этот код - работающий, и, в общем-то, даже и понимаемый.

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


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено qwerty123 , 13-Июл-19 08:30 
>А тебе сколько ни кури - ничего кроме хихиканья не произведешь.

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

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

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

ты думаешь, кроме него в структуру кто-то может еще вотнуться и дописать?


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено имя , 12-Июл-19 16:14 
> взял чувак ганджубас, хорошо так затянулся, и фигак с клавиатуры кода полтора
> магабайта в одну портянку.

Звучит так, будто он за день в одно рыло нагенерировал, но нет:

> * Copyright (c) 2017-2019 Fabrice Bellard
> * Copyright (c) 2017-2019 Charlie Gordon


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено qwerty123 , 13-Июл-19 08:32 
>Звучит так, будто он за день в одно рыло нагенерировал, но нет:
>2017-2019

А это как затянуться.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 09:35 
Он математик, а не программист. Не злись, придут люди и расфасуют код по файликам как надо. Ты сам можешь начать это делать.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Андрей , 12-Июл-19 12:39 
> Опционально поддерживаются нестандартные математические расширения для JavaScript, такие как типы BigInt и BigFloat

BigInt только только в Firefox 68 официально появился. А тут один Человек успел. Да ещё и не кое-как лишь бы работало.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 13:05 
Вроде бы и математик - умный человек. А приток смузи победил. Модно-молодёжно... а шутки про тостер с дырявым JS скоро станут кошмарной реальностью

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 14-Июл-19 03:05 
Альтернативная реальность, где ранее разумные люди делают что-то полезное тебе не доступна?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 14:00 
Приложение под видом документа - это троян.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 14-Июл-19 03:06 
Где ты был последние 20 лет? Тебя всё устраивало?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Wilem , 12-Июл-19 15:46 
Вместо того, что бы похоронить этот недоязык, они его развивают. Whyyyy.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 12-Июл-19 16:00 
Научите Белларда в git уже! Ну что за архивы в tar.gz на его странице?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Michael Shigorin , 12-Июл-19 19:01 
Если кого возмутила встройка -- ну посмотрите, с чем нынче линкуется polkit.  Да, меня там и libxml2 смущала, но и это познаётся в сравнении, как оказалось.

PS: надо добыть себе немного стадотомиков:

lcc: "quickjs.c", строка 107: фатальная ошибка: не
          могу открыть исходник файл "stdatomic.h"


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Андрей , 13-Июл-19 00:35 
> lcc

И в значительно более активно развивающемся tcc нет. Вот это точно досадно.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 00:54 
Фабрис опять жжет. То виртуалку на джеэс напишет, то компилятор, а ведь уже 47 лет мужику.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 14-Июл-19 03:07 
И, с твоей точки зрения он должен перестать делать то, что он делает? Или как?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 13-Июл-19 12:15 
Компиляция js в исполняемый файл это очень интересно.

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 14-Июл-19 03:08 
Чем это ново и почему это интересно тебе?

"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено KonstantinB , 13-Июл-19 16:06 
Вот за libregexp Фабрису спасибо!

"Backtracking with an explicit stack is used so that there is no recursion on the system stack. Simple quantizers are specifically optimized to avoid recursions."

Прямо то, что мне надо, чтобы заменить PCRE с его комбинаторными взрывами, но иметь возможность backtracking-а.


"Основатель QEMU и FFmpeg опубликовал JavaScript-движок Quick..."
Отправлено Аноним , 05-Авг-19 17:00 
Крутой чувак надо ему памятник поставить...