LINUX.ORG.RU

Фабрис Белар выложил движок JavaScript

 


7

6

Французский математик Фабрис Белар (Fabrice Bellard), более известный работой над ffmpeg, qemu, tcc и вычислением числа Пи, выложил в открытый доступ QuickJS — компактную реализацию JavaScript в виде библиотеки на языке C.

  • Почти полностью поддерживает спецификацию ES2019.
  • В том числе математические расширения.
  • Проходит все тесты ECMAScript Test Suite.
  • Нет зависимостей от других библиотек.
  • Малый размер статически линкуемой библиотеки — от 190 KiB на x86 для «hello world».
  • Быстрый интерпретатор — проходит 56000 тестов ECMAScript Test Suite за ~100 с на 1 ядре настольного ПК. Накладные расходы на цикл запуска и остановки < 300 мкс.
  • Может компилировать исходные файлы на JavaScript в исполняемые файлы без внешних зависимостей.
  • Может компилировать исходные файлы на JavaScript в WebAssembly.
  • Сборщик мусора со счётчиком ссылок (детерминированный, с малым потреблением памяти).
  • Интерпретатор командной строки с цветной подсветкой синтаксиса.

Согласно тестам производительности из обсуждения на Opennet.ru, скорость QuickJS в тестах в 15-40 раз меньше, чем у Node.js.

>>> Сайт автора

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Virtuos86 (всего исправлений: 1)

Ответ на: комментарий от anonymous

Фабрис Белар мамкиных погромистов

Ну мамкиным его назвать язык не повернётся, хотя все мы и ты мамкины =)

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

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Harald

Прожектором, как вражеские самолёты в ночи. И ещё сирену включать. Они от страха сами п****нутся.

anonymous
()
Ответ на: комментарий от hobbit

Я это знаю. Правила существуют, потому что их нарушают умышленно или неумышленно. Если бы не нарушали, то правил бы не было.
И да информацию можно(и нужно) искажать, чтобы у читающего возникли критические позывы. И по критическим позывам можно судить, чо важнее читателю.

anonymous
()
Ответ на: комментарий от ZenitharChampion

Opera умерла? Да нет вроде, релиз в апреле этого года был. Так что не надо паники. А «Firefox умирает» даже не знаю как понять, типа релизы поверхностные и редкие постепенно учащаются и углубляются и, достигнув максимума на пятый — седьмой релиз, вновь ослабляются и урежаются, после чего наступает пауза?

A-234 ★★★★★
()

Все разумные прогеры понимают, что JS должно сдохнуть. Ну зачем плодить ещё больше этого г***вна?? Будь он адекватом, а не математиком, давно бы запилил компилируемый C#. Ну или какой-нть ASP.D или гейм-движок. Но нет, нашёл себе занятие - размазывание г*** по времени.

matumba ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Твоё изречение сродни «инструкция к ядерной кнопке, написанная ВРАЧОМ». Не так прочитал - всё, капец америке! КАК ТАК МОЖНО?? Типы - это не «заморочки» ради, глупыши вы школотронные, а ради надёжности! Чтобы после 1000 часов прогона не вылез какой-то левый объект, который состоит из чёрте чего и непонятно что делает.

«Проще и короче» - ты имеешь право писать, но исключительно для скриптов в OnClick на домашней странице. Всё остальное, включая офиц.вебсайты, магазины и прочие, НЕ ИМЕЮТ ПРАВА рисковать данными клиента (и надёжностью сайта) ради пары крутящихся перделок.

matumba ★★★★★
()
Ответ на: комментарий от matumba

Внатуре, лучше бы водяры по совету alexferman бахнул)

Deleted
()
Ответ на: комментарий от matumba

компилируемый C#

Пользуйся плюсами.

Ну или какой-нть ASP.D

Че за маргинальщина?

гейм-движок

Их и так много.

Deleted
()
Ответ на: комментарий от matumba

Вот тебя торкнуло-то. Магазины, ядерные кнопки приплёл, самому не смешно? Вернись в реальность, как бы ты с этого не подгорал, скриптота не типизирована, конец истории.

WitcherGeralt ★★
()

скорость QuickJS в тестах в 15-40 раз меньше, чем у Node.js.

Нет, чтобы написать - скорость быстрее, а не меньше
Вынос мозга

kto_tama ★★★★★
()
Ответ на: комментарий от Legioner

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

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

anonymous
()
Ответ на: комментарий от Legioner

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

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

anonymous
()
Ответ на: комментарий от anonymous

пусть не адаптируют для новых

Так юзеры сидят на новых в большинстве своём. Было время, сидели на IE 6, адаптировали под него. Сейчас другое время, сейчас сидят на Chrome latest.

а что такое тестировать, все давно забыли ... есть же багрепорты от юзверей ;)

Можно подумать, они их пишут.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

Кто тебе не даёт разрабатывать быстро и с комфортом, на стороне сервера, а не на стороне клиента. Зачем мне нужны в моём браузере твои говно-скрипты

за сервер тимлиды ищущих комфорта разработчиков больно бьют по бестолковке ;)

anonymous
()
Ответ на: комментарий от Legioner

Так юзеры сидят на новых в большинстве своём. Было время, сидели на IE 6, адаптировали под него. Сейчас другое время, сейчас сидят на Chrome latest.

вот и слезли бы с самообновляющегося гугловского троянца ;)

Можно подумать, они их пишут.

может и не пишут ... но это же не повод, чтобы тестировать софт разработчикам ;)

anonymous
()

Фабрис снова взялся за своё. Уважаю мужика. Я уж было подумал, что он навсегда покинул мир OpenSource, занявшись софтом для базовых станций.

jekader ★★★★★
()
Ответ на: комментарий от WitcherGeralt

скриптота не типизирована, конец истории

Очень интересно, когда это Python успели выписать из категории скриптоты?

Zenom ★★★
()
Ответ на: комментарий от Zenom

Тут с месяц назад мне говорили, что type annotations никого не вводят в заблуждение и вообще ня. Надо было тебя в тред привести.

anonymous
()
Ответ на: комментарий от Zenom

С тех пор, как динамическую типизацию не пытаются называть «серьёзной» системой типов.

anonymous
()
Ответ на: комментарий от anonymous

вот и слезли бы с самообновляющегося гугловского троянца ;)

Как юзеры слезут, так разработчики адаптируются. Пока не слезли, будет так.

может и не пишут ... но это же не повод, чтобы тестировать софт разработчикам ;)

Не, ну тестеры-то в любой конторе есть. Ходят слухи, некоторые даже автоматические тесты делают, хотя я не верю.

Legioner ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Ваньку тут валяешь ты.

Python uses duck typing and has typed objects but untyped variable names. Type constraints are not checked at compile time; rather, operations on an object may fail, signifying that the given object is not of a suitable type. Despite being dynamically typed, Python is strongly typed, forbidding operations that are not well-defined (for example, adding a number to a string) rather than silently attempting to make sense of them.

А те, кто не различает сильную/слабую и статическую/динамическую типизацию, лишаются права на мнение просто автоматически.

Zenom ★★★
()
Ответ на: комментарий от Zenom

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

anonymous
()
Ответ на: комментарий от WitcherGeralt

Ну-ну, и что же из сказанного мной в этом треде является моей фантазией? И какова же на самом деле реальность? Ты рассказывай, рассказывай. Не стесняйся.

Zenom ★★★
()
Ответ на: комментарий от quantum-troll

Если верить автору, нетипизированные языки вроде си каким-то образом более типизированы? Хотя я видимо согласен с тем, что динамическая типизация даёт больше ограничений, чем свободы.

anonymous
()
Ответ на: комментарий от quantum-troll

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

Since every value in a dynamic language is classified in this manner, what we are doing is agglomerating all of the values of the language into a single, gigantic (perhaps even extensible) type.

Этот трюк не только с динамическими языками проходит. Иными словами, если переопределить термины так, как предлагает автор, то классификация языков по системе типизации вообще теряет смысл.

То есть автор явно гораздо умнее того шута, который тут в лужи газ пускает, но пользуется типично маркетоидными приёмами чтобы протолкнуть свою мысль. Сама мысль при этом верная, кстати. Просто приёмы сомнительны.

Zenom ★★★
()
Ответ на: комментарий от WitcherGeralt

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

Zenom ★★★
()
Ответ на: комментарий от matumba

Так и запишем: статическая типизация — для дебилов, не умеющих писать прозрачный и надёжный код и просто испытывающих необходимость во внешних надзирателях и ограничителях, без которых они гарантированно выстрелят себе в ногу.

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

anonymous
()
Ответ на: комментарий от quantum-troll

Динамически типизированные языки это статически типизированные языки с единственным типом.

Контрпример: FastScript. У переменной может быть 1 из 4 типов: integer, extended, string, pointer. (Внутри всё обрабатывается через дельфийский variant.)

question4 ★★★★★
() автор топика

скорость QuickJS в тестах в 15-40 раз меньше

Местным минималистам зайдёт, лол.

anonymous
()
Ответ на: комментарий от anonymous

Результат — несовместимость типов. При «единственном» типе :)

question4 ★★★★★
() автор топика
Ответ на: комментарий от Zenom

Чувак просто не в себе. Действительно придумал свою терминологию и всех говном поливает.

Vudod ★★★★★
()
Ответ на: комментарий от quantum-troll

Очень отличается, потому что умеет выдавать несоответствие типов как ошибку, а также проверять типы и приводить типы однозначным образом. Я тебе больше скажу, Питон имеет значительно более сильную типизацию, чем Си, а, значит, и Си++, потому что он обратно совместим с Си. Другой вопрос --- можно одному и тому же значку (по недоразумению до сих пор именующемуся переменною) последовательно присваивать выражения разных типов. Но это и в OCaml можно, хотя тот совсем строго типизированный. Настолько, что там для сложения целых и действительных чисел разные значки используются.

Vudod ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Он не в одиночку это написал. Там второй чел с ним кодил, не звезди.

menangen ★★★★★
()
Ответ на: комментарий от anonymous

То ты с Фабрисом Дэсром перепутал. Кстати, готовимся к очередному озалупливанию последнего в августе-сентябре.

rebforce
()
Ответ на: комментарий от matumba

То есть пилить компилируемый C#, который без хотя бы net core нахер не нужен никому, а с ним всё равно тормозит - это нормально, пилить ещё менее кому-то нужный ASP.D - это нормально, геймдвижок, под который надо пилить игру - это нормально, а запилить новый интепретатор мейнстримного Javascript человеку, который уже дофига времени занимается языками, байткодами, интерпретациями - не нормально?

Вы точно в своём уме?

ixrws ★★★
()
Ответ на: комментарий от matumba

Все разумные прогеры понимают, что JS должно сдохнуть.

Начал за здравие.

Будь он адекватом <…> давно бы запилил компилируемый C#

Кончил за упокой.

dexpl ★★★★★
()
Ответ на: комментарий от Vudod

Питон имеет значительно более сильную типизацию, чем Си, а, значит, и Си++, потому что он обратно совместим с Си.

C++ обратно совместим с C? я надеюсь, ты не программист, потому что иначе ты полностью профнепригоден. с другой стороны, чего ещё ожидать от лоровских специалистов?

anonymous
()

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

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

По меньшей мере он проектировался как эмбедед, но с человеческим синтаксисом, не как lua.

iamtakingiteasy
()

Почти полностью поддерживает спецификацию ES2019

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

dummy ★★
()
Ответ на: комментарий от rechnick

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

А почему ты думаешь, что виноват js, что это он тормозит или жрёт электричество?

Вот, оцени, например:
Solar System animation - Pure CSS
Solar System 3D Animation (Pure CSS)

Как себя чувствует твой старый ноут на этих страничках?

А ведь это — без JS!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.