Многим вопрос о выпуске исходного кода Vivaldi под свободной лицензией кажется простым. Vivaldi — бесплатный браузер. Мы зарабатываем деньги благодаря партнёрским сделкам, поэтому предоставление внешним пользователям доступа к исходному коду и помощь в разработке от них теоретически не должны вызывать проблем.
Также многие из нас являются сторонниками Open Source и используют программное обеспечение с открытым исходным кодом. Однако, всё становится чуть сложнее, если углубиться в детали.
Vivaldi — браузер с частично открытым, частично закрытым исходным кодом
Прежде, чем мы перейдём к обсуждению открытого исходного кода, давайте посмотрим, как построен наш браузер.
Vivaldi состоит примерно из трёх слоёв. Мы используем Chromium в качестве основы для нашего браузера. Помимо Chromium, у нас есть много внутреннего кода на C ++ для поддержки функций, таких, как блокировщик рекламы или заметки. Эти два слоя поддерживают пользовательский интерфейс, который представлен в двух разных вариантах.
- Пользовательский интерфейс ПК версии написан с использованием в основном HTML + CSS + JS.
- Интерфейс Android версии, который реализован на Java и в основном основан на пользовательском интерфейсе Java, включенном в Chromium (лицензия на код Chromium Java не требует от нас публикации изменений, которые были там сделаны).
Сам Chromium имеет лицензию с открытым исходным кодом, и все изменения, которые мы вносим в него для поддержки уровня пользовательского интерфейса и функций, публикуются. Мы также публикуем весь наш внутренний функциональный код C ++, как если бы он был частью изменений Chromium. Это облегчает внутренний процесс, потому что позволяет нам собрать всё — Chromium и наш код C ++ — в одной библиотеке.
Копия открытого исходного кода браузера Vivaldi доступна на нашем сайте. Изменения публикуются под открытой лицензией BSD. Подробности вы найдете в файлах README и LICENSE.
Vivaldi также содержит сторонний код. Лицензии для этих компонентов можно найти в пакете с исходным кодом и в установленном браузере, перейдя к vivaldi://credits.
Таким образом, из трёх уровней только слой пользовательского интерфейса имеет закрытый исходный код. Примерно 92% кода браузера с открытым исходным кодом поступает из Chromium, 3% — с открытым исходным кодом, полученным от нас, и только 5% — с закрытым исходным кодом нашего пользовательского интерфейса.
Vivaldi — это бренд
Пользовательский интерфейс Vivaldi — это то, что делает браузер уникальным. Это наш самый ценный актив с точки зрения кода.
Мы не публикуем его под свободной лицензией и выпускаем только обфусцированные версии. Обфускация (запутывание кода) частично предназначена для повышения производительности, но она также несёт в себе функцию защиты, чтобы не позволить другим разработчикам слишком легко взять код и создать похожий браузер (форк).
Стоит ли бояться форков?
Это очень субъективно. С точки зрения открытого исходного кода, форки в значительной степени важны. Вы берёте чужую работу, делаете из неё что-то новое и крутое, получаете признание за свое дополнение, в свою очередь проект, из которого вы взяли код, получает признание за то, что он является этим проектом, и, возможно, они примут ваше дополнение, и все будут счастливы.
Но как я уже говорил, Vivaldi — это больше, чем просто код. У нас есть бренд и соответствующие торговые марки, которые мы должны защищать, это означает, что любой форк должен быть маркирован как другой продукт. По этой причине Chrome и Chromium — разные вещи.
Новый продукт может стать непосредственным конкурентом, не прикладывая каких-либо значительных технических усилий (хотя его все равно нужно будет продавать).
Если проект достаточно крупный или он давно и прочно завоевал себе место на рынке, то его пользователи не обращают внимания на форки.
Vivaldi пока является небольшим проектом и его можно легко затмить при наличии определённых средств, это делает наш бренд уязвимым, речь идет не только о доходах.
Если новый проект, основанный на нашем коде, реализует функции, которые в корне противоречат нашей этике (например, наносят ущерб правам человека или окружающей среде), даже если мы никоим образом не будем связаны с автором проекта, это может повлиять на нашу репутацию.
Если сохранение слоя пользовательского интерфейса Vivaldi с закрытым исходным кодом позволяет нам отложить в сторону такого рода беспокойство, это определенно стоит сделать, даже если такое решение не идеально. Когда дело доходит до бизнеса, мы должны принимать решения, которые сводят к минимуму неопределенность.
Процессы с открытым исходным кодом тоже дорогие
Существует и более прагматичная причина, по которой браузер Vivaldi не использует единую лицензию с открытым исходным кодом. В случае открытого исходного кода для нас было бы здорово получить вклад от многих замечательных людей, которые нас поддерживают. Но на самом деле это было бы сомнительным достижением, учитывая небольшой размер нашей команды. Дело в том, что при работе с дополнениями к открытым проектам требуется довольно много ресурсов на проверку поступающего стороннего кода, на общение с авторами этих улучшений и на интеграцию кода в основной проект.
Все это требует времени и ресурсов. На данный момент мы считаем более продуктивным сосредоточиться на создании максимально настраиваемого браузера.
А как же преимущества безопасности?
Хотя большая часть кода, относящегося к безопасности, находится в Chromium, в пользовательском интерфейсе также есть некоторый код, отвечающий за безопасность. Если вы считаете, что определенные относящиеся к безопасности части пользовательского интерфейса должны быть с открытым исходным кодом, дайте нам знать, и мы рассмотрим его как часть наших пакетов кода, чтобы вы могли проверить это сами.
Что произойдет, если Vivaldi уйдет с рынка?
Это разумный вопрос. Многие в нашей команде испытывали разочарование по поводу того, что Opera на базе Presto практически не могла существовать после того, как Opera Software решила перейти на реализацию на основе Chromium. Лично я потратил много времени, работая над Opera, базирующейся на Presto, улучшая и исправляя её, и я думаю, что если бы она была с открытым исходным кодом, она все ещё могла бы жить по сей день.
Может ли этот фактор стать решающим для перевода Vivaldi под свободную лицензию? Вполне возможно. Это то, с чем в данный момент согласны все, кто работает в команде браузера. С другой стороны, мы растём и настроены позитивно. В конечном счёте, хоть мы и хотим решить эту проблему, сейчас это не является насущным вопросом.
Нет пути назад
Это очень важный момент. Вы не можете просто попробовать поработать в режиме Open Source и затем вернуться к закрытому коду, если окажется, что Open Source не для вас. Код, выпущенный под открытой лицензией, остаётся открытым навсегда. Единственный способ обойти это — сделать выпущенный код устаревшим, а это требует значительного времени. Таким образом, с точки зрения бизнеса, если вы не знаете наверняка, правильный ли выбор в пользу Open Source — лучше пока не пробовать это.
Настройте Vivaldi для себя
Если вас не беспокоят вопросы открытости кода и вы заинтересованы только в том, чтобы иметь возможность редактировать код для настройки браузера Vivaldi на свой вкус (если у вас есть навыки), вы можете сделать это в нашей версии для ПК.
Вы можете разобраться в обфусцированном коде и изменить его для личного использования, просто отредактировав минимизированный код JavaScript. Это проще сделать, чем в других браузерах, для которых все изменения требуют полного шага компиляции.
Хотя наша лицензия официально не допускает этого, мы приветствуем изменения и разрешаем пользователям делиться ими на форумах.
Должен ли Vivaldi быть с открытым исходным кодом?
Вы уже увидели, что это непростой вопрос. Хотя есть аргументы, указывающие в обоих направлениях, мы довольны тем, что можем предложить сейчас — бесплатное программное обеспечение, включающее большую часть лицензии с открытым исходным кодом и с ограниченным количеством закрытого, но изменяемого кода.
Мы будем придерживаться этого до тех пор, пока считаем, что защита индивидуальности Vivaldi очень важна. Это то, что мы будем пересматривать в будущем (но не будем давать пустых обещаний).
Автор статьи: Julien Picalausa, фото: Markus Spiske, Unsplash.