Разработчики Mozilla приступили к созданию гибридного JavaScript-движка V8Monkey

Разработчики проекта Mozilla выступили с инициативой обеспечения возможности запуска на базе используемого в Firefox движка SpiderMonkey серверной JavaScript-платформы node.js, позволяющей создавать высокопроизводительные сетевые приложения на языке JavaScript. Основная проблема при портировании связана с привязкой node.js к особенностям реализации JavaScript-движка V8, разработанного компанией Google для проекта Chrome. По мнению инициаторов проекта в последнее время наблюдается рост интереса к серверным JavaScript-решением, если среди клиентских решений продукты Mozilla достаточно успешно конкурируют с другими браузерами, то в серверной среде движок V8 пока остаётся безальтернативным решением.

Рассмотрев возможные пути выхода из сложившейся ситуации разработчики пришли к выводу, что наиболее оптимальным вариантом станет создание гибридного JavaScript-движка, в котором поддержка API V8 реализована на базе кода SpiderMonkey. В случае перевода node.js на API SpiderMonkey потребовалась бы довольно значительная переработка кода платформы, которая несопоставима по трудозатратам с созданием надстройки, обеспечивающей эмуляцию API V8. Дополнительным плюсом выбранного подхода является то, что при выходе новой версии node.js её не придется портировать заново, код можно будет использовать без внесения в него изменений.

Итоговый гибридный движок получил название V8Monkey, конечной целью разработки которого является обеспечение сборки основанных на движке V8 приложений с использованием движка SpiderMonkey. Работа по адаптации платформы node.js для использования SpiderMonkey осуществляется в рамках проекта SpiderNode. В будущем созданные для SpiderNode наработки по интеграции поддержки SpiderMonkey в систему сборки node.js планируется передать в основной проект node.js.

Примечательно, что изначально создатели платформы node.js пытались использовать движок SpiderMonkey, но после нескольких дней экспериментов перешли на использование V8. В качестве достоинств V8 был назван ясный и простой API, качество документации, независимость от проекта Chrome и других библиотек, а также поставка движка в виде отдельной библиотеки и простота компоновки с другими проектами. По мнению разработчиков Mozilla проект V8Monkey поможет проанализировать недостатки API SpiderMonkey и внести в него необходимые изменения. Также рассматривается возможность перевода API SpiderMonkey с представления на языке Си в Си++.

©  OpenNet