LINUX.ORG.RU

Новый высокопроизводительный движок JavaScript Higgs

 , higgs,


0

2

Вышла новая версия высопроизводительного движка JavaScript Higgs, написанного на D. Тестирование новой версии показало, что практически во всех тестах движок значительно обходит в производительности TraceMonkey и v8.

Результаты теста for-in loops:

  • Higgs 2.91s
  • V8 3.29.66 (baseline) 4.98s
  • V8 3.29.66 (Crankshaft) 4.95s
  • TraceMonkey 4.12s

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

>>> Подробности

★★

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

Хороший вроде язык. Но почему-то не выстрелил. Неужели недостаточно преимуществ по сравнению с C++? Или может все системщики/геймдевелоперы чрезмерно чтут традиции и не слезут с плюсов до самого апокалипсиса..

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

Ну и кто всем этим системщикам и геймдевелоперам перепишет их легаси на D/Rust? Да так, чтобы выгода была в производительности, иначе — зачем?

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

ну так голос — это надо гормональную терапию проводить.

это тебе не сисечные импланты поставить.

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

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

Ага, ага, у которых память течет не годами, а десятилетиями. Хороший повод на плюсы перейти.

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

Кажется я нашел ответ на свой вопрос). D не может в C++ API. Как и многие другие языки. Тогда получается и Rust не взлетит

Being 100% compatible with C++ means more or less adding a fully functional C++ compiler front end to D. Anecdotal evidence suggests that writing such is a minimum of a 10 man-year project, essentially making a D compiler with such capability unimplementable. Other languages looking to hook up to C++ face the same problem, and the solutions have been:

  • Support the COM interface (but that only works for Windows).
  • Laboriously construct a C wrapper around the C++ code.
  • Use an automated tool such as SWIG to construct a C wrapper.
  • Reimplement the C++ code in the other language.
  • Give up.

http://dlang.org/cpp_interface.html

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

Тогда получается и Rust не взлетит

На счет Rust взлетит или нет не ясно — уж очень синтаксис своеобразный. Очевидно одно, что С++ не живет, а доживает. В новых проектах его могут использовать только наркоманы или дураки, а тем кому старые проекты приходится на нем поддерживать можно только посочувствовать.

Ситуацию даже новые стандарты не исправят. Они лишь костылей добавляют.

Интерпрайз быстренько перейдет на Swift, C#, Go и прочие прелести (что мы собственно сейчас и наблюдаем), а любители плюсов будут нервно грызть ногти и заниматься самовнушением.

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

А на чем еще писать? На недоплюсах?

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

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

Или может все системщики/геймдевелоперы чрезмерно чтут традиции и не слезут с плюсов до самого апокалипсиса..

я с плюсов слез лет 10 назад, на C. хотелось бы конечно ObjC, но без библиотек он не нужен, а библиотеки есть только под ios и osx. а так вообще — для ряда задач я бы вполне слез на что-то вроде go/swift/rust.

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

недоплюсы - это си?

Нет, тут имелся ввиду С++

это было бы круто. но даже если на плюсах — всяко лучше чем на D.

А зачем писать на С++ если есть D?

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

D не может в C++ API

в C++ ABI, ты наверное имел ввиду, в которое не могут даже разные версии компиляторов C++, не говоря уж о других языках. но C++ поддерживает C ABI, и для внешних интерфейсов их достаточно, а C ABI поддерживают почти все языки.

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

А зачем писать на С++ если есть D?

я ненавижу C++, но D это вообще ненужная маргинальщина. почему ты заставляешь меня выбирать из двух сортов говна?

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

Swift

Он определенно заменит objectC в среде пративных разработчиков. Только потому, что из swift можно легко дергать килотонны готового ObjectC кода.

C#, Go

Эти совсем из другой ниши.

На с++ написана куча всего. И эта куча работает только в рамках с++. Но у раста с API дела обстоят так-же. Mangling функций по-умолчанию и прочие ООП-радости. Так что либы на расте в большинстве случаев будут совместимы исключительно с растом. И, как и для c++, понадобятся костыли чтобы юзать эти либы из С. Шило на мыло, короче

makoven ★★★★★
()
Последнее исправление: makoven (всего исправлений: 3)
Ответ на: комментарий от static_lab

очевидно жеж... Это ща прямо мода такая пошла...

а по теме — ждём движок на Rust.

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

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

я ненавижу C++, но D это вообще ненужная маргинальщина. почему ты заставляешь меня выбирать из двух сортов говна?

D это не такая уж маргинальщина. Тем более альтернатив ему нет. Rust слишком своеобразен, а Go вообще для других целей задумывался. На чем тогда писать?

D в данном случае единственный из разумных вариантов.

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

но C++ поддерживает C ABI, и для внешних интерфейсов их достаточно

Вот только мало кто озадачивается делать внешний С-интерфейс

makoven ★★★★★
()
Ответ на: комментарий от i-rinat

А какой основной язык?

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

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

D в данном случае единственный из разумных вариантов.

только для фанатов этого языка, не более.

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

Вот только мало кто озадачивается делать внешний С-интерфейс

примерно 50% C++ библиотек, которые мне приходилось использовать (за очень много лет), имеют сишный внешний интерфейс. для многих можно легко сделать собственный wrapper. остальное — это уже либы уровня Qt, boost, и т.п.

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

D в данном случае единственный из разумных вариантов.

D is a fully garbage collected language. That means that it is never necessary to free memory. Just allocate as needed, and the garbage collector will periodically return all unused memory to the pool of available memory

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

Тоже подумываю плотно присесть на c. Какой язык не возьми - всё в конце концов сводится к сишным биндингам для всяких libuv/xml. Причем биндингам не первой свежести и стабильности)

makoven ★★★★★
()
Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от makoven

только для фанатов этого языка, не более.

А на чем писать-то? Назовите другой язык, который мог бы заменить С++.

D is a fully garbage collected language

Ничего не мешает сделать @nogc и управлять памятью вручную.

Xroft ★★
() автор топика
Последнее исправление: Xroft (всего исправлений: 1)
Ответ на: комментарий от Xroft

А на чем писать-то? Назовите другой язык, который мог бы заменить С++.

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

waker ★★★★★
()

Отхигачили всё лишнее и так сделали шустрый движок?

Quasar ★★★★★
()

«он пока ничего не умеет, но делает это очень быстро»

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

На счет Rust взлетит или нет не ясно — уж очень синтаксис своеобразный

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

Ничего не мешает сделать @nogc и управлять памятью вручную.

stdlib написана с GC в уме.

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

Ок

Тут столько народу набралось заинтересованных, что я уже очкую что-то выкладывать :)

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

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

Имеет-имеет. Я к примеру вообще Rust не понимаю т.е. я смотрю на код и полный ступор. Смотрю на тот же Go и оно более или менее понятно. Тот же Ruby и Python взлетели именно за счет понятного синтаксиса.

Есть шанс, что D если не заменит С++, то серьезно потеснит его.

По поводу stdlib — ее активно переписывают.

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

Я к примеру вообще Rust не понимаю т.е. я смотрю на код и полный ступор

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

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

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

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

Go за пару лет настоялся и уже начинает бродить. Видимо, потому-что в сообществе был вакуум: недоразумение 90-х по имени «динамические интерпретируемые языки» изжило себя. Теперь все хотят клепать бэкенды на go. Так что не аргумент)

makoven ★★★★★
()
Последнее исправление: makoven (всего исправлений: 2)
Ответ на: комментарий от makoven

Go за пару лет настоялся и уже начинает бродить.

Go занял незанятую нишу. D метит на замену С++ и поэтому рынок он занимает очень и очень медленно.

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

Теперь все хотят клепать бэкенды на go.

Кто «все»? Я не хочу и не видел тех кто хотел бы. Вакансий тоже не видел.

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

У него нету совместимости с C++, а значит он вряд ли что-либо займёт. C++ — это тонны легаси, которые никто переписывать на D/Rust/Go никогда не будет. Ткни в любую прикладуху на компе, она полна С++-легаси, которое всегда останется на С++:

Firefox, Thunderbird, VMware Player, VurtualBox, 2GIS, Adobe Reader, VLC, MPC, Notepad++, Kate, qBittorent, Skype for Linux, Opera, Chromium, Steam, Qt Creator, MS Visual Studio, Photoshop, Autodesk Maya, IDA Pro и так далее, и так далее.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Старые проекты переписывать никто не будет. А вот новые писать, да будут. Да и 50% потребностей закрывает совместимость с чистым Си, на котором либ написано великое множество.

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

Затем что яп коммерческий продукт. Наймут пару контор для раскрутки, запустят пару программ поддержки, закажут пару статей и народ потянется. Тогда вместо УМВР будет УМНРНЧ

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

Пруфы чего? Что самый тормоз? Сходи на jsperf да проверь. Постоянно там проверяю код и еще ниразу не видел что бы FF показывал производительность хотя бы близкую WebKit

uin ★★★
()

практически во всех тестах движок значительно обходит в производительности TraceMonkey и v8.

для начала пусть обойдёт VanillaJS, тогда и поговорим

q11q11 ★★★★★
()

V8 обойти невозможно. Приблизиться, возможно.

Разработкой V8 управлял датчанин который всю жизнь разрабатывал виртуальные машины, JIT.

Smalltalk, Java HotSpot, Javascript V8.

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