Pull to refresh

Зачем Опере свой JS движок?

Reading time2 min
Views872
Давно было интересно: зачем Опере писать собственный интерпретатор JavaScript, когда есть открытые альтернативы? SpiderMonkey, допустим, может быть проблемой из-за LGPL, но v8 — это BSD лицензия, для проприетарного ПО годится. Поинтересовался мнением людей. Говорят, самая вероятная причина — не хотят зависеть от стороннего разработчика. При этом Opera уже использует сторонний Aspell, хотя он, конечно, не является жизненно важной функцией.

Решил выяснить официальное мнение. JL ответил, что, с технической точки зрения, интеграция такого объёма чужого кода — большая работа. Поддержка всех операционных систем, на которых работает Opera, требует определённого проектирования и повышает требования к коду, и очень вероятно, что разработчики основного движка отказались бы принимать странные модификации в больших количествах, что привело бы к перманентному форку. Что возможно, но затраты сопоставимы с разработкой своего движка. Звучит разумно, хотя я и не знаю, на скольких платформах используется Carakan — кажется, мобильная Opera получает с сервера, грубо говоря, скриншоты с отмеченными ссылками, и скрипты там не работают?

Если отбросить технические причины, — продолжает JL, — движок ECMAScript — настолько важная часть браузера, что просто не хочется полагаться на чужую работу. Хочется иметь собственный продукт, а не быть шкурой для чужой разработки. И хочется доказать, что мы можем принять вызов и произвести собственный конкурентоспособный продукт. И в каком-то смысле это такой же маркетинговый шаг, как и всё остальное.

Последнее как раз подтверждает мои опасения: конкуренция в данном случае практически противопоставлена сотрудничеству, от чего конечный пользователь не выигрывает, а проигрывает. И сама компания тоже, ведь ресурсы, потраченные на повторение чужих результатов, можно было бы потратить на что-нибудь действительно новое и полезное, что Opera делать умеет, заодно и быстрый JavaScript появился бы примерно на год раньше.
Tags:
Hubs:
Total votes 58: ↑30 and ↓28+2
Comments70

Articles