В России термин Open Source зачастую понимается как бесплатное ПО, которое можно взять себе с GitHub, доработать и использовать. Или так: бесплатная библиотека, которую можно задействовать в разработке своего сервиса.

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

Виды лицензий на Open Source

Популярный стереотип: Open Source — это разрешительные лицензии, например, MIT и Apache 2.0, с которыми можно делать почти все, что угодно.

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

В этом и есть отличие свободного и открытого ПО:

  • Free Software — про возможность для человека свободно использовать, изучать и распространять сервис.
  • Open Source — про удобство открытого исходного кода для разработчика в плане изучения, модернизации и поддержки.

Все виды лицензий для Open Source можно разделить на три типа:

  • Public Domain — общественное достояние. Такой софт принадлежит всему обществу, его можно использовать как угодно, на него не распространяется авторское право. Этот тип лицензирования был популярен на заре развития Интернета, но сейчас встречается крайне редко и чаще всего относится к творческим материалам.

SQLite — встраиваемая СУБД с Public Domain лицензией СС0, которая используется практически везде, в том числе в Google Chrome, Safari, iOS и Android

  • Permissive — разрешительные. Практически не ограничивают использование и распространение исходного кода, но не требуют отказа от авторского права. К производным от этих продуктов можно применять другие лицензии. Примеры: Apache 2.0, MIT, BSD, WTFPL.

Chromium — браузер с Permissive-лицензией BSD-3-Clause, который стал основой для Google Chrome, Opera, «Яндекс Браузера» и Microsoft Edge

  • Copyleft — со строгим авторским правом. Допускает распространение копий и производных продукта без разрешения автора, но ограничивает или запрещает применение кода в коммерческом софте. Производные наследуют тип лицензии исходного продукта — нельзя сделать коммерческий продукт на базе свободного и наоборот. Примеры: CC BY-SA и GNU GPL.

Исходный код российского корпоративного мессенджера с Copyleft-лицензией GNU GPL

Все эти типы лицензирования позволяют изучать и использовать исходный код, в отличие от закрытого проприетарного ПО, где стараются держать монополию на изменение, копирование и распространение своего продукта.

Вендоры с Open Source-лицензиями не боятся поделиться исходным кодом, но за их продукты зачастую тоже нужно платить. Зато, даже если сервис не бесплатный, у открытого исходного кода есть ряд преимуществ.

Три преимущества Open Source для бизнеса

  • Можно заглянуть «под капот» сервиса перед покупкой. Изучение Open Source-продукта можно сравнить с полной предварительной диагностикой машины в противовес покупке вслепую. Во втором случае остается надеяться только на свое везение и порядочность продавца. Так и с программным обеспечением: на сайте разработчика может быть все красиво написано, но без проверки это всего лишь слова.

Сервисы с открытым исходным кодом позволяют заранее посмотреть, стоит ли вообще внимания этот софт: как собирается и хранится информация, что с безопасностью и наличием уязвимостей, совместимо ли с текущим ПО и т. д.

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

  • Можно доработать сервис под себя. Open Source-продукты можно развивать и модернизировать независимо от вендора — это касается даже строгих лицензий.

Бывают ситуации, когда ПО полностью устраивает компанию, но не хватает одной-двух важных функций. В сервисах с открытым исходным кодом можно не ждать, пока пожелания клиента включат в план разработки и реализуют, а доработать нужный модуль силами своих разработчиков.

Продукт с открытым исходным кодом может стать элементом для своего приложения или и вовсе его основой — это сэкономит кучу времени и денег на разработку. Например, мессенджер Mattermost с лицензией Apache 2.0 можно использовать как самостоятельный продукт, а можно забрать себе на сервер, поменять интерфейс под фирменный стиль и добавить нужные компании функции.

Так сделал «Тинькофф», когда создавал свой корпоративный мессенджер TiMe: команда разработчиков внесла более 200 изменений в открытый исходный код Mattermost, чтобы адаптировать его под потребности более 20 тыс. сотрудников.

Интерфейс мессенджера Mattermost

Интерфейс мессенджера TiMe, созданного на базе Mattermost

  • Участие профессионального сообщества в разработке и аудит кода. Разработчики ПО вынуждены полагаться только на внутреннюю команду. Если сотрудники заходят в тупик, они не могут выложить часть кода на GitHub и спросить «подскажите, как это оптимизировать?». Приходится разбираться своими силами.

В Open Source-сервисах работать над эффективностью кода может не только внутренняя команда вендора, но и заинтересованные энтузиасты-разработчики. Эти люди помогают интересным продуктам на некоммерческой основе, чтобы развиваться в разработке и обмениваться опытом с коллегами.

Для вендора профессиональное сообщество — это дополнительный ресурс вне штата. Их «мозги» помогают Open Source-продуктам быстро развиваться и отвечать запросам рынка. Профессиональное сообщество может указать на ошибки или предложить пути улучшения продукта.

Для инженеров покупателя изучение обсуждений на GitHub зачастую гораздо более информативно, чем наличие сертификата об аудите. Это работает и как дополнительная проверка качества: если исходный код открыт, сообщество с ним работает и дает хорошие отзывы, значит с сервисом все в порядке и ему можно доверять.

Обсуждения разработчиков-энтузиастов в репозитарии сервиса для видеоконференций Jitsi Meet

Заключение

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

Платные Open Source-продукты отличаются от проприетарного ПО. Их открытость и прозрачность для профессионального сообщества дает им преимущества:

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

Евгений Перов, директор продукта в корпоративном мессенджере Compass