Французский математик Фабрис Беллар (Fabrice Bellard), основавший в своё время проекты QEMU и FFmpeg, опубликовал обновление развиваемого им компактного встраиваемого JavaScript-движка QuickJS. Движок поддерживает спецификацию ES2019 и дополнительные математические расширения, такие как типы BigInt и BigFloat. По производительности QuickJS заметно превосходит имеющиеся аналоги (XS на 35%, DukTape более чем в два раза, JerryScript в три раза, а MuJS в семь раз). Проектом предлагается библиотека для встраивания движка, интерпретатор qjs для запуска JavaScript-кода из командной строки и компилятор qjsc для генерации самодостаточных исполняемых файлов. Код написан на Си и распространяется под лицензией MIT. Подробнее о проекте можно прочитать в тексте анонса первого выпуска...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=52224
Фабрис как всегда молодец. Любой из его проектов мог бы стать венцом творения и гордостью для большинства программистов. А у него таких проектов больше десяти.
Bpg спустя 7 лет всё ещё сырой, никому ненужный, и даёт результаты хуже x265. И поддерживается только жаваскриптом на его сайте, но это не точно.
> и даёт результаты хуже x265В чем? Дает из 2 часов видео 1 кадр, а остального не видно?
Это не про видео, это про картинки — их качество и размер. Bpg кстати тоже может x265 использовать, но на нужность это не влияет. Heic с hevc (читай x265) даёт много лучшие результаты.
Как он может давать результаты хуже, чем hevc, если там внутрях подмножество hevc?Ну и делалось это тогда, когда hevc не поддерживался примерно ничем. Сейчас это, конечно, не более, чем интересный эксперимент.
Даёт же. Вначале сравнивал через штатную тестовую конвертилку разными параметрами кодера, потом добавил в скрипт с convert (IM умеет цеплять скомпилированный bpgenc), после чего прогнал на данных и оказалось, что bpg слишком придирчивый ко входным данным (попросту в нём баги) и heic стабильно лучше. Качество/размер тоже сравнивал.Это было ммм год назад, heif в линуксе всё ещё не поддерживается (обещают добавить в кути, почему-то никак не добавят — на тот момент уже был общепринятым распространённым форматом).
> Как он может давать результаты хуже, чем hevc, если там внутрях подмножество hevc?Если где-то внутрях "подмножество" - значит, используются не все фичи. И с чего бы тогда результат лучше?
BPG основан на HEVC/h265. Просто на тот момент HEIF ещё не был стандартизован. Как только последний появился, BPG устарел, так как HEIF выполняет его функцию - использовать алгоритм сжатия ключевых кадров из h265 для картинок.С тех пор уже успел появиться видеокодек AV1 с сопутствующим AVIF для картинок. А сейчас ещё ведётся работа над специальным форматом для веба JPEG XL (крутая штука, пытаются собрать все лучшие качества современных форматов для картинок, включая FLIF, в одном), который по задумке должен "всех победить" и стать новым стандартом в вебе.
Угу, спасибо за ликбез для интересующихся. Ну, будем надеяться что будет успешней jpeg2k. Вейвлет-кодирование это конечно круто, но файлы у него ужасно дутые выходили.
А проблемы с патентами эти господа "expert group" учли уже наконец? Или как обычно - промямлили что их хата с краю, так что в результате ни один браузер это не заимплементит, как с H.265? Ну тогда толку то будет с того что это "для веба"? Веб без браузера не работает. И сколько б россияне не вопили что штатовские патентым им не указ, кодить браузер сами на таком уровне они врядли станут - и значит патенты распостранятся и на них :)
Планируется, что стандарт будет свободным от выплат. Над форматом работают Google (на базе их экспериментального формата PIX) и автор FLIF (основываясь на его более новом FUIF https://github.com/cloudinary/fuif).Самая классная фишка на мой взгляд - условная совместимость с JPEG. Можно будет существующие JPEG-и дожимать без потерь в качестве. И при необходимости, опять же без потерь в качестве, можно будет сделать обычный JPEG. На сервере можно будет хранить один *.jxl файл, и если браузер не поддерживает JPEG XL, сервер сможет на лету быстро генерить обычный JPEG без потерь в качестве (если JPEG XL в режиме совместимости с JPEG) или же PNG (если там lossless).
Так как в разработке учавствует Google, формат после релиза скорее всего поддержат в Chrome, а потом и в остальных браузерах. Если ничего не сорвётся, конечно же =)
Звучит неплохо, и если патенты все же учли - глядишь даже может и взлетит, гугл вполне может это учесть, у них поиск по патентам хороший. Потому что без этого всякие умники нас едва не оставили даже без гифа и жыпегов в свое время. И как мне кажется, хранить еще и jpg всяко быстрее чем генерить его, место на дисках нынче довольно дешевое. Но как 1 из вариантов - идея интересная.
> Фабрис как всегда молодец.У него весь сайт просто украшение. Нет, там нет модно-молодежных react=жыэс-чотатам, зато там куда ни ткни, это будет masterpiece. Немного олдскульный, зато обходящийся минимумом простых тулсов, никаких баззвордов - все по делу, ядрено и круто. Глядя на таких людей и понимаешь на кого равняться когда программишь.
Да у него на сайте тупо ссылки и ничего нет, ты о чём? Такой сайт за 2 дня делается левой пяткой
6 дней делал шедевры, и только на седьмом решил по быстрому выложить. А что ещё надо?
Даже если бы было какое-то медиа - не поверю, что это невозможно опубликовать без скрипта.
Одним словом, KISS.
> Да у него на сайте тупо ссылки и ничего нет, ты о
> чём? Такой сайт за 2 дня делается левой пяткойА вот контент на нем - делается ни разу не за 2 дня. И не левой пяткой, что самое то главное. Впрочем, Фабрис и левой пяткой накодит свой софт получшще чем некоторые руками...
Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего убрать.
(с) Антуан де Сент-ЭкзюпериОдним из моих самых продуктивных дней был тот, когда я удалил 1000 строк кода.
(с) Кен Томпсон.Сорри за оффтопик.
> Совершенство достигнуто не тогда, когда нечего добавить,
> а когда нечего убрать.
> (с) Антуан де Сент-Экзюпери
> Одним из моих самых продуктивных дней был тот, когда я удалил 1000
> строк кода.
> (с) Кен Томпсон.
> Сорри за оффтопик.В этой новости это не офтопик, а ценное замечание; спасибо!
А что он в этой версии исправил вот такие конструкции (=== ===== ==========) языка?
Это ж насколько ЖС хороший, продуманный и великолепно реализованный, раз до сих пор все новые и новые движки для него делают, один быстрее и краше другого!Не язык, эталон просто! Вот все бы так.
Просто один из первых языков который написан для людей, а не для машин для которых тут выдели пять байт, тут зависимостей пучек, тут систему сборки, тут тесты, везде границы всех буферов проверь и райнтайме тоже на всякие проверь. И это только чтобы вывести слово Hello. А если вывести другое то все перекомпелируй и заново проверь.
s/людей/обезьян/g
> Просто один из первых языков который написан для людей, а не для
> машин для которых тут выдели пять байт, тут зависимостей пучек, тут
> систему сборки, тут тесты, везде границы всех буферов проверь и райнтайме
> тоже на всякие проверь. И это только чтобы вывести слово Hello.Хм, а не расскажите, как проверить границы буферов или как (и зачем) выделить именно 5 байт на Prolog, Smalltalk, Lisp/ML или более молодежных, но все еще старше JS, Perl/Python/Ruby/Lua/Haskell/Java (или тьфу-тьфу-тьфу, VisualBasic)? :)
на этих не получится. потому как интерпритатор считает)) для такого только с/с++ и парочка другая компилируемых. заметь все молодежные стараются уйти от этой модели для "легкости", молодежности или безопасности, но при этом жрать начинают значительно больше. ну а что вы хотели авто с механикой стократ управляемее и экономичнее, зато с автоматом только 2 педали и удобство в пробках, правда %7-14 плюсом по топливу)) каждый выбирает для себя. вот профи выберут механику без оговорок, а новички радостно сядут на автомат. фишка только в затратах на топливо и обслуживание.
да вроде современные роботы и варики дают бОльшую эффективность по топливу чем механика
Зачем ему что-то доказывать? Он до сих похоже ездит на некромашинах из 80х-90х. У него и механика надежней, и затрат топлива меньше, и профи выбирают механику.
На 25-м году водятельского стажа механика осточертела. Врёт он там выше про профи выбирают.И не знает о болезнях позвоночника в сочетании с характерными несимметричными движениями.
Но это оффтопик.
не надо ля ля про роботов. они стали лучше , но пока на этом все. если ты работаешь таксистом и у тебя по тыс км ( а то и больше) в день, то да механика тебе до чертиков надоест. но если брать максимальную управляемость авто и расход топлива, то механика пока все же лучше. и давай не будем вдаваться сильно почему. конечно плохой водила сделает все наоборот и вгонит 20 л на сотку, но будем реалистами экономия топлива на механике больше. про заболевания позвоночника... ты наверно в иномарке только рядом с водилой сидел?)) сейчас как правило при переключении разве что кисть движется. нет того как раньше в размахе на пол кабины. а так да автомат в пробке суперская вещь(робот тоже). но из-за особенностей работы требует чуть больших оборотов работы двигателя, соответственно расхода топлива. это я к чему. аналогия с языками программирования такая же абсолютно. старые языки типа с/с++ и прочие дельфи требуют мозгов и умений, но при этом менее затратны и быстры при исполнении программ. новые языки имеют автоматическое выделение памяти ив общем более простой режим написания кода, но при этом требуют больших ресурсов, как при компиляции программы, так и её работы. вот и все.
В LuaJIT'е для этого есть FFI.
Всё работает и с нативной скоростью.
> В LuaJIT'е для этого есть FFI.Вы не поверите - FFI есть даже для/в реализаций Prolog (Perl или Python даже не упоминаю).
"Но зачем?" ;)> Всё работает и с нативной скоростью.
Не верю ;)
С верой - это в церковь.
Есть FFI, а есть FFI в LuaJIT.
> С верой - это в церковь.А с голословными утверждениями куда?
> Есть FFI, а есть FFI в LuaJIT.Есть FFI, есть FFI в LuaJIT с прямым вызовом (или что там сейчас является предметом гордости), а есть инлайн/lto.
> а есть инлайн/lto.А-а-а, понятно, вы, господин, просто не в теме.
Ну-у-у … это не я ворвался в новость о QuickJS, в каждом(!) комментарии упоминая о LuaJIT, в том числе и в стиле "Ждем позорных тестов против LuaJIT".
При этом, почему-то, всячески избегая какой либо конкретики.
"Всё работает и с нативной скоростью" "это LuaJIT" "вы просто не в теме" -- отличный наброс, не более.В общем, "Talk is cheap, show me the [benchmark] code!" (c) финнский неаноним ;)
У него лучше получится рассказать, где купить пару планочек памяти и новый 100500-ядерный процессор.
> машин для которых тут выдели пять байт,А когда байты считать перестают - программа начинает стартовать 30 секунд, тупить на любую операцию, жрать прорву оперативы, как будто она одна на всю систему. И в результате программисту, конечно, круто, но с точки зрения пользователей программа является глючными и тормозными фекалиями.
К тому же если кто экономил центы на кодинге, он и на проектирование и архитектуру, модульность, тестирование, багфиксы и прочие ненужно - положил. Ведь это ж не для людей - эвона как усложняет разработку программисту и прочим причастным. А то что это улучшает программу с точки зрения остальных - ну, узнаем об этом когда в результате разработчика (заслуженно!) обзовут вебмакакой, сугубо за качество программ.
> тут зависимостей пучек,
А, ну конечно - реюз кода это для слабаков. Надо все велики самому изобрести. При том большинство велов оказывается с квадратными колесами. С аргументом "зато по лестницам круто ездит".
> тут систему сборки,
Ну блин правильно - сперва мы навалим гуано, потом задолбаемся, и наконец изобретем свою собственную кривульку, делающую то же самое по смыслу, только хреново и самопально. Зато свое же не пахнет. Нет, есть вещи которым система сборки реально не нужна. Но их немного и это специфичные вещи. Типа header-only библиотек у сишников, но с этим есть свои нюансы.
> тут тесты,
И правда, не хватало релизить качественный софт, на радость юзерам, имидж ничто, да? Ну тогда и кисточку в штанину уж как-нибудь изволь маскировать :)
> везде границы всех буферов проверь и райнтайме тоже на всякие проверь.
Ну конечно круто когда автоматика это сделает. Но только потом почему-то все в разы сильнее тормозит - потому что автоматика не просекает, что код 5 строками выше уже сам проверил корректность того что ему подсунули по другим поводам. И хрен отключишь. Так что гора лишних проверок, бессмысленно и беспощадно. Но вы же докупите оперативки и новых процессоров, дорогие пользователи?!
> И это только чтобы вывести слово Hello.
И все это чтобы показать как Hello World выглядит в правильно поставленном процессе разработки у профессионалов своего дела. А так то я тоже могу что-нибудь испечь, например, но по сравнению с результатом работы пекаря это будет смотреться ну вот как такая программа по сравнению с результатом работы нормальных программистов.
> А если вывести другое то все перекомпелируй и заново проверь.
И правда, нафиг мозг при программировании задействовать и что-то проверять?
...а потом это вымахивает в монстра и всем мучительно больно. Когда монстр через полчаса впашки наворачивается или выдает бред, но никто не может понять почему. А всякими глупостями упрощающими это разработчик заморочится лишь потом, когда жаренный петух клюнет.
вот в том и дело
ЭКОНОМИТ
Ь если бы да кабы жЫть в идеальном мире в комунизме хде все работают ради фана то да а так
ТЫ ЗАПЛАТИЛ ЗА СВОЙ СОФТ
нет ну тогда кушай (реклама, телеметрия, тормоза, глюки итд)
Ну вот за что мне нравится опенсорц - так это за то что весьма солидный процент написан в том числе и ради фана. А у хороших програмеров вообще не поймешь где заканчивается одно и начинается другое - они настолько круто делают то что им нравится что народ начинает неизбежно хотеть дать денег за такие офигенные скиллы. И поэтому програмер уровня Фабриса да совсем уж без денег - это нонсенс.
> И правда, не хватало релизить качественный софт, на радость юзерам,
> имидж ничто, да?Вот тут и не смог плюсик поставить: как раз "качественный софт" и "имидж" (в смысле веб-страничка с избирательной лакировкой поверх кучки эээ... кодна) обычно находятся по разные стороны. Как раз из вот тех экзистенциальных различий -- кому "имидж", кому суть. Собственно, обсуждение около #17 об этом и было.
Позволю себе не согласиться. Как говаривал один известный человек, красивые самолеты - красиво летают. Это и к другим областям инженерии применимо и таки некий индикатор отношения к делу.Другое дело что какой-нибудь ffmpeg назвать некрасивым сложно. Ну например потому что я не смогу предложить красивый GUI для такого количества опций. Стало быть интерфейс ffmpeg - один из наилучших возможных в его ситуации.
>> один из первых языков который написан для людей, а не для машиндля людей всё же поудобнее будут функциональные языки, по крайней мере для тех, кто хоть немного в ладах с математикой. в js же присваивания, циклы и другие атрибуты императивщины
Люли, которые в ладах с математикой - это очень специфические люди. Вплоть до повышенного процента знакомств с дуркой. А вот с нормальными людьми, как и с реальной архитектурой реального железа, функциональщина дружит слабо.
Математика сама по себе в чистом виде - весьма абстрактная штука. И использование компьютеров для вот настолько вот абстрактных задач - все-таки скорее экзотика.
на то она и функциональщина, чтобы быть чрезмезно абстрагированной от железа. хаскели, лиспы и т.д. - это ЯПы сверхвысокого уровня, которые, к слову, намного логичнее жабаскриптов и прочей хипстерщины, которая, как правило, являет собой высокоуровневый ЯП, наполненный фон-неймановскими атрибутами типа циклов. понятно, что функциональщина подойдёт далеко не для всех задач, но вот тот же Erlang появился по причине невозможности решения поставленной задачи на C++, что как бы намекает на то, что функциональные ЯПы являются не на 100% академическими, как их пытаются иногда охарактеризовать адепты растишек, гошек и пистонов.
Вообще-то Тюринг постулировал что все ЯП эквивалентны, так что "невозможность решения задачи на %s" - это заведомое вранье. Начиная с наглых подтасовок на уровне теоретических основ.Другое дело что кроме возможности есть еще практичность. Но видимо у эрланга и с этим довольно средне, учитывая количество проектов на нем. Что еще интереснее, фирмы Эриксон с нами уже нет, да и телефония как таковая уже не в фаворе - voip во все поля.
> Что еще интереснее, фирмы Эриксон с нами уже нет, да и
> телефония как таковая уже не в фаворе - voip во все поля.Необходимость маршрутизации потоков и прочие rbtree от этого никуда не делись :)
Вообще история эрланга и /// довольно забавна -- манагеры же сперва выперли создателей языка из конторы, дескать, фигнёй маются в рабочее время; затем конторе вдруг пришлось выкупать уже отдельную лавочку из своих же бывших сотрудников.
> Необходимость маршрутизации потоков...сильно снизилась: пакетные сети победили.
> и прочие rbtree от этого никуда не делись :)
Можно реализовать эквивалентную функциональность иными алгоритмами.
> конторе вдруг пришлось выкупать уже отдельную лавочку из своих же бывших сотрудников.
А в целом конторе это не очень помогло. Да и то что контора делала мало кому надо стало вроде, по крайней мере в том виде.
>> Тюринг постулировал что все ЯП эквивалентныв теории - да. на практике же решение задачи на неподходящем для этого ЯПе окажется банально экономически невыгодным
>> так что "невозможность решения задачи на %s" - это заведомое вранье
с теоретической точки зрения - да, с экономической - вряд ли
> в теории - да. на практике же решение задачи на неподходящем для
> этого ЯПе окажется банально экономически невыгоднымЕсть довольно большая разница между "невыгодно" и "невозможно" :P.
> с теоретической точки зрения - да, с экономической - вряд ли
А это уже другой вопрос.
> Что еще интереснее, фирмы Эриксон с нами уже нетВ Ericsson об этом, видимо, не знают. Поэтому по незнанию продолжают производить телекоммуникационное оборудование во вполне себе масштабах.
А процессор-то биты молотит одинаков — что вылезшие из Сишечки, что выпавшие из функциональщины. Разница лишь в количестве этих битов, ага. Из сишечки их почему-то получается меньше, процессору обработать их быстрее. Но мы ведь не бедные, нам купить новый процессор и пригоршню планок памяти — плёвое дело. Главное, чтоб ногорукий хвостатый программист не переутомился нечаянно.
Наговариваете на программистов.Речь (основная идея) в функциональщине и дургих языках - ускорить разработку и сделать ее проще и быстрее (за счет разной ерунды странной), а это не забота о программистах, а скорее способ побыстрее получить денег.
Вот Вы хотите же себе там еды повкуснее и т.д. и соверешнно не готовы слушать, что нужно еще там пару сущьностей написать что бы было как следует.
Вот и выходит что кто-то просто не любит считать .... Берем программистов отдел на C/C++ и PHP разработчиков и просим сделать сайт и что Вы думаете? Кто побеждает в этих соревнованиях?
Определите понятие "побеждает".
> что Вы думаете? Кто побеждает в этих соревнованиях?А черт знает, но lwan.ws и на сишечке довольно неплохо в это умеет. Заодно кстати не забывая отжимать верхние места в некоторых хипстерских бенчмарках вебапликух :)
ага, можно и гвозди отвёрткой забивать и саморезы молотком закручивать
А еще бывает такая штука как шурупгвоздь. Не то чтобы дико популярное, но так тоже можно было :)
> для людей
> слабая типизацияЭто ни для людей, ни для робот не подходит.
Это для мелких скриптиков. Сабж для вот чего-то такого вот и сделан.
Для этого уже Python 3 придумали и кучу всяких фреймворков поверх.
Так что тут непонятно для чего оно нужно?
> Для этого уже Python 3 придумалиКак посмотришь на размер интерпретера и его либ, да еще сравнишь с сабжем - так сразу юзать пихон и расхочется.
> и кучу всяких фреймворков поверх.
Ага, и при выходе новой версии пихона развалится вообще все. И потом вместо кодинга мелкого скриптика придется устроить enterprise-grade долботню с попытками этого шалтая-болтая собрать.
> Так что тут непонятно для чего оно нужно?
У Фабриса что ни софт - то украшение, и вот таким софтом пользоваться и приятно и безграбельно. Это выгодно отличает его от вебмакак с пихоном и фреймворками.
#
do_something() unless $first_condition or $second_condition;
#js для людей, говорите?
Это типа на JS код?
Нет, это как раз фраза, удобная для чтения человеком. Ибо изобреталась лингвистом.
Пучек? Что такое пучка?
Движков-то много, а нормального встраиваемого движка, по сути, и нет. Либо неполная реализация спецификации, либо внутри такое, что открыл, посмотрел и закрыл.Потому lua и пихают до сих пор везде.
Беллардовский - первый хороший и по полноте поддержки спецификации, и по качеству кода.
Ждем позорных тестов против LuaJIT.
А так да, пускай лучше Луа "пихают" чем это недоподелие.
Монстры с JIT - это вообще совсем другая весовая категория. Если вам с jit - ну и рубайтесь тогда с v8 каким.
Какие монстры, товарищ?
Бинарник либы LuaJIT весит в релизе ~700Kb.
Если V8 и пр. поделки весят неадекватные мегабайты, то просто говорит об уровне адекватности их авторов, а не о сложности задачи.
> Бинарник либы LuaJIT весит в релизе ~700Kb.Ну и вот это уже как-то довольно много кода, между прочим. Да еще оперативу небось любит кушать, да еще с идеей W^X клещится, понижая безопасность - JIT означает необходимость возможности записи в регион с кодом, что как бы не очень хорошо для безопасности.
Есть варианты с таким JIT'ом легче?
Яблоки с яблоками пока бы уже сравнивать.
Ну так я не знаю зачем кто-то притащился с JITом и либами на 700 кил в тред по сабжу, который мелкий и без jit. Видимо яблоки его не перли он решил доказать что апельсины всяко круче.
Для ембеддеда JIT далеко не всегда полезен.
> Ждем позорных тестов против LuaJIT.О, я знал, кто мне его портирует на e2k (и, помнится, на riscv тоже).
И губозакаточную машинку в подарок...
В этом месте мы узнаем что у JIT с портабельностью конкретный гимор, например... что как-то не очень хорошее свойство для мелкого встраиваемого движка скриптинга без особых требований. А суперскорость... блин, можно взять и написать критичные части на си, чтоли.
А нахрена встроенным движкам полная реализация всех последних завитушек? Там и 10% всех этих фич не нужно
С другой стороны если там и завитушки, и скорость приличная, и код компактный - это, наверное, хорошо?
> Потому lua и пихают до сих пор везде.Ну почему, в polkit вот впихнули mozjs (при этом оставив "системные" правила на xml, как и раньше). Хочется взять что-нибудь тяжёлое и...
>> как математик, Фабрис Беллар известен как создатель самой быстрой формулы вычисления числа Пине совсем верно, он улучшил формулу для нахождения произвольной цифры после запятой числа пи в двоичной представлении.
https://ru.wikipedia.org/wiki/%D0%A4%D0%...
Ничто не мешает ему привлекать бесплатную студенческую силу и все лавры забирать себе.
Он лавров своими делами и без всяких студентов себе нарубил :)
> Ничто не мешает ему привлекать бесплатную студенческую силуВерно.
> и все лавры забирать
> себе.Заблуждаетесь. Чем больше учитель вырастил толковых специалистов - тем больше ему, как учителю, почёта.
под Windows будет?
Это для тех кто программит, однако - для встраивания скриптинга на js в их программы. При том мелкой аккуратной штукой а не супермонстрами-тяжеловесами типа V8 где ты быстрее родишь чем разберешься как его хотя-бы скомпилять, чтоли, не говоря про прикручивание в свою программу.Сам по себе код этой штуки вроде достаточно пофигистичный к тому виндус там или что еще. Так что если программишь под виндоус и прикрутишь в прогу это - ну тогда будет, очевидно.
Простой вопрос о нужности встраиваемого (!) js-движка. Лично я постараюсь держаться подальше от любых проектов/девайсов, где ЭТО используется, если только это не интернет-браузер.
Какая разница? Особых рисков нет, если там нет JIT (в дефолтном spidermonkey он, по-моему, есть). Замена duktape давно нужна была. Теперь бы её ещё встроить в elinks, эх.
А какие риски у JIT?
arbitrary code execution
> Замена duktape давно нужна былаа зачем? чем утка не угодила? вроде очень простая и компактная реализация
E5, медленная
Брошена утка и живет без поддержки.
А допиливать там классы или еще чего-то ну нахрен нужно.
А клиенты иногда используют странный код.
у меня небольшой проект по обработке результатов запросов к БД. Бэк на qt, клиент браузер по ws подключается к серверу, пользователь через через codemirror вводит js со строками sql, далее переданный скрипт на сервере выолняет sql запросы и при помощи js обрабатывает результаты ответов от БД, далее выводит через ws на клиента json, клиент строит всякие прелести. Сервер через классы предоставляет в JS пространство функцианал для тяжелых операций, если чтото мелкое посчитать то сравнить можно непосредственно js. И вот он ответ, я люблю скриптовые языки за то что их можно встроить в проект на с++, расширяя тем самым кейсы (ведь все варианты хотелок пользователя не предугадаешь). К сожалению или к радости (думаю все же второе) не все до конца понимают чем все таки полезены скриптовые языки, говоря про безопасность и так далее ).
звучит как редактор Visual Studio Code
ну если толко неболшой отголосок )) а так больще созвучно с node.js ) Обработка js, взаимодействие пока только через web socket (но мне очень понравилось), расширять функцианал классами c++. все это занимает весьма мало объема.
> расширять функцианалуже дважды это слово употребили. Не надо это расширять. Лучше расширяйте функционал.
Лучше функциональность
Если вы не пишете программу, в которой нужно что-то скриптовать на простом языке высокого уровня, то оно вам не надо.Скажем, почти во всех играх есть скриптинг: движок на плюсах, уровни-сцены - там, где декларативного описания недостаточно - скриптуются, чаще всего на lua. Учитывая бешеную популярность JS - вполне себе адекватная замена, выше вероятность что его и так уже человек более-менее знает.
К безопасности это не имеет ровно никакого отношения - тут все контролируется движком, в который интерпретатор внедрен. Если движок дырявый - ну, да, проблема, но тут уже пофигу какой там интерпретатор для скриптинга.
> движком, в который интерпретатор внедрен. Если движок дырявый - ну, да,
> проблема, но тут уже пофигу какой там интерпретатор для скриптинга.А вот не пофиг. В свое время Battle for Wesnoth пытался :) поюзать в этом качестве питон. Однако оказалось что секурно выполнять недоверяемую гадюку - mission impossible. А когда ремотно загружаемые аддоны типы карт и кампаний могут всю систему поиметь - это как-то ну вообще совсем не айс. И поюзали они в результате Lua. С которым таких проблем нет. Заодно список зависимостей урезался и они не имели кайфа с вечной несовместимостью версий в том террариуме.
> не имели кайфа с вечной несовместимостью версий в том террариумеIncompatibilities with the Previous Version в мануале каждой версии Lua как бы намекает.
Часть можно нивелировать правильно задав LUA_COMPAT_* в файле luaconf.h.
И тем не менее, у этих вроде ничего не разваливается, в отличие от гадюки. Да и песочница секурная. Что как бы аргумент - ну вот зачем бы AI который ходы просчитывает иметь возможность у меня файл стырить и в сеть залить, например? :)
нихрена себе у человека мозг, я и 1/100й такого как он не могу...
Не расстраивайся. И среди других людей мало кто может.
Студенты пишут компиляторы с придуманных недоязыков нараз. А потом просто пописывать дописывать и дописывать..
Ну и не забывать дописывать в новостях: "от основателя ... " а то ведь продут мимо и не заметят.. :)
А чего там у него с мозгом удивительного? Другое дело, что он почему-то дохрена всего знает, а вот это уже интеерсно когда он это изучает и по работе или нет?
Интересно в QJSEngine какой движок используется?
> Французский математик
> опубликовал обновление развиваемого им компактного встраиваемого JavaScript-движка QuickJSjs движок которые реализовала математик
очень странное явление - чтото тут пошло не так или есть какойто подвохматематики обычно просто берут какой нормальный мощный язык типа haskell/ocaml...
было бы странно если бы это сделал тракторист... или менеджер салона сотовой связи... тогда да, какойто подвох...а у человека специальное образование.
ну а цель то какая у проекта?
просто just for fun - pet project?или легковесная замена bash для людей из мира nodejs?
Бывают и умные трактористы...
Тогда и трактор у него беспилотный, а он тогда уже не тракторист.
Голова определяет профессию.
Ну да, а когда анестезиолог делает планировщик задач для ядра ОС - не странно. И числомолотилку сделал - тоже не странно.
он ее на живых клетках человека делал?
Неа, сперва на видеокартах амд, потом на asic'ах.
Эх, нет у меня пока для него stdatomic.h...