Открытый исходный код заставляет технологический мир вращаться, образуя до 90% современного программного стека через фреймворки; библиотекари; базы данных; операционные системы; и бесчисленные автономные приложения.
Преимущества программного обеспечения с открытым исходным кодом хорошо понятны, что обещает больший контроль и прозрачность. Тем не менее, существует вечная борьба между открытым исходным кодом и собственностью, что заставляет многие компании отступать от открытого исходного кода для защиты своих коммерческих интересов. В основе всего этого ледиется сложный вопрос лицензирования.
Существует два широких вида лицензий, которые соответствуют формальному определению с открытым исходным кодом, изложенному в Инициативе с открытым исходным кодом (OSI). «Разрешные» лицензии имеют несколько ограничений с точки зрения того, как пользователи могут изменять и распространять программное обеспечение, что делает их популярными среди компаний, которые хотят использовать его в коммерческих целях. А затем есть лицензии «copyleft», которые предлагают аналогичные свободы, но с одной заметной оговоркой: Любая модифицированная версия программного обеспечения также должна распространяться под той же оригинальной лицензией на авторское лево. Это не так привлекательно для предприятий, желающих защитить свою запатентованную работу.
Но в этом есть нечто большее, чем это, с различными лицензиями, существующими в каждом сегменте. Более того, существует бесчисленное множество лицензий, которые, хотя и не строго с открытым исходным кодом, также стоит знать.
Лицензия MIT с метким названием, зародившаяся в Массачусетском технологическом институте в 1980-х годах, является самой популярной лицензией с открытым исходным кодом по большинству показателей, занимая первое место среди сообщества разработчиков GitHub в течение многих лет.
Используемая проектами, включая React (фронт-энд-библиотека JavaScript) и Ruby (язык программирования общего назначения), лицензия MIT позволяет разработчикам использовать программное обеспечение так, как им нравится. Как и в отношении большинства таких лицензий, они предоставляются без каких-либо гарантий, что означает, что авторы освобождаются от любой ответственности, возникающего в результате ущерба, причиненного их программным обеспечением (например, потеря данных). Все, о чем разработчикам нужно беспокоиться, это включение оригинального уведомления об авторских правах и лицензии MIT в любую производную работу.
Но у лицензии MIT есть один недометок: она явно не предоставляет патентные права. Это означает, что если данное программное обеспечение опирается на запатентованную технологию, это может создать юридическую неопределенность для разработчиков, которые развертывают программное обеспечение без предоставления отдельных разрешений для указанной запатентованной технологии.
Тем не менее, это подчеркивает одну из ключевых точек продажи лицензии MIT: всего 200 слов, язык простой и лаконичный. Заматка вещей неоднозначным патентом word-soup добавило бы ненужной сложности для проектов, которые вряд ли будут связаны с патентами, такими как высокоуровневые языки программирования или веб-фреймворки.
Но многие проекты с открытым исходным кодом пересекаются с запатентованными технологиями, такими как аппаратно-ориентированное программное обеспечение, такое как Android.
Apache Software Foundation опубликовал лицензию Apache 2.0 в 2004 году, обновление более ранней лицензии с явным патентным предоставлением для защиты пользователей от судебных разбирательств. Таким образом, если разработчик должен был, например, внести уникальный алгоритм обработки изображений в проект, лицензированный в соответствии с Apache 2.0, любые патенты, которые разработчик имеет на этот алгоритм, автоматически лицензируются всем пользователям программного обеспечения.
Большинство людей будут знакомы с брендом Google Android, изобилующим магазином приложений и набором домашних инструментов и услуг. Но основной проект с открытым исходным кодом Android (AOSP) по существу доступен по лицензии Apache 2.0, преднамеренный шаг Google в 2008 году для борьбы с Apple и поощрения производителей телефонов использовать Android по сравнению с другими проприетарными действующими лицами (например, Symbian) того времени. И это сработало. Samsung, HTC, LG и все остальные прыгнули на Android.
Однако побочным продуктом этого является то, что лицензия Apache 2.0 имеет примерно в пять раз больше слов, чем в Массачусетском технологическом институте, благодаря тексту патентного предоставления, среди других дополнений и разъяснений. Но это компромисс, и он иллюстрирует ключевые различия между двумя наиболее распространенными лицензиями с открытым исходным кодом.
Лицензия BSD 2-Clause похожа на MIT, но с ключевыми различиями с точки зрения используемого языка. Например, в нем указано, что копия лицензии должна быть включена как в исходный код, так и в скомпилированную двоичную форму. А затем есть лицензия BSD из 3-х пунктов, которая имеет дополнительную оговорку «без одобрения», которая ограничивает использование имен владельцев авторских прав и участников в рекламных целях в любом производном проекте.
Существует также лицензия MIT No Attribution License (MIT-0), которая проще, чем MIT, в том, что нет требований к атрибуции в производном программном обеспечении. Использование этого близко к тому, чтобы поместить программное обеспечение в общественное достояние, за исключением того, что автор сохраняет авторские права и возможность менять вещи в будущем.
Фонд свободного программного обеспечения (FSF) опубликовал общую общественную лицензию GNU (GPL) в 1989 году и был одной из первых лицензий с авторским левом для общего использования.
Лицензии с авторским левом часто лучше подходят для проектов, требующих участия сообщества, по сравнению с проектами, поддерживаемыми одним юридическим лицом. Требуя, чтобы все модификации оставались доступными по той же лицензии с открытым исходным кодом, это гарантирует участникам, что их тяжелая работа не будет использоваться в проприетарном программном обеспечении без пользы более широкому сообществу - по крайней мере, теоретически, так как может быть трудно обнаружить каждое нарушение, а затем обеспечить соблюдение условий лицензии.
Запущенная в 2007 году, GPL 3.0 является третьей по популярности лицензией, согласно данным GitHub. Лицензия открыла заметные обновления GPL 2.0, включая положения о предоставлении патентов и улучшенную совместимость с другими лицензиями с открытым исходным кодом. Это также запрещает то, что стало известно как "Tivoization", когда производители оборудования, которые получают выгоду от программного обеспечения, лицензированного GPL, не позволяют пользователям устанавливать модифицированные версии этого программного обеспечения, используя механизмы управления цифровыми правами (DRM).
Известные пользователи GPL включают WordPress, который доступен по лицензии GPL 2.0 "или более поздней версии", оставляя разработчику решение о том, под какой лицензией они распространяют любые изменения.
Linux, со своей стороны, является одним из самых успешных проектов с открытым исходным кодом всех времен, используемых в серверах, облачной инфраструктуре, встроенных системах и даже Android. Тем не менее, основное ядро Linux доступно только по лицензии GPL 2.0, учитывая, что создатель Linux Линус Торвальдс противоречит некоторым положениям, добавленным в версии 3.0 лицензии, включая пункт Tivoization.
Affero General Public License (AGPL) похожа на GPL 3.0, в той ме, что это «сильная» лицензия с авторским левом, которая продвигает свободу программного обеспечения и гарантирует, что модифицированные версии остаются открытыми. Однако ключевым отличием AGPL является то, что он ориентирован на веб-сервисы и приложения, где программное обеспечение заплается с серверов, а не распространяется в виде исполняемых файлов.
В соответствии с лицензией GPL 3.0 разработчики не обязаны выпускать исходный код для модифицированного программного обеспечения, если оно работает по сети, как это делают приложения SaaS. Лицензия AGPL закрывает эту лазейку, требуя от третьих лиц сделать исходный код доступным, даже если модифицированное программное обеспечение работает только с сервера.
Опубликованная в 2007 году Фондом свободного программного обеспечения, лицензия AGPL 3.0 выросла в популярности во многом благодаря росту облачных вычислений и SaaS, и сегодня она является пятой по популярности лицензией с открытым исходным кодом.
Кроме того, продукт Фонда свободного программного обеспечения, GNU Lesser General Public License (LGPL) является «слабой» лицензией с авторским левым лицефом, поскольку она более удобна для бизнеса с менее строгими условиями о том, чем она делится. LGPL обычно используется для программных библиотек, где авторы проектов хотят поощрять вклад сообщества, но это позволяет проприетарному программному обеспечению ссылаться на библиотеки без необходимости открывать весь их собственный код. Если кто-то модифицирует саму библиотеку с открытым исходным кодом, то ему нужно только выпустить эти модификации по лицензии LGPL.
Опубликованная Фондом Mozilla в 2012 году, Mozilla Public License (MPL) 2.0 является десятой по популярности лицензией с открытым исходным кодом на сегодняшний день по метрике лицензий GitHub. MPL также является слабой лицензией с авторским левом, предназначенной для защиты проприетарного кода, позволяя разработчикам извлекать выгоду из программного обеспечения с открытым исходным кодом.
Однако, в то время как LGPL ориентирован на уровне библиотеки, а GPL на уровне проекта, MPL работает на уровне отдельного файла, требуя от пользователя совместного использования более узкого набора кода.
Хотя «лицензия с открытым исходным кодом» предоставляет определенные права, всегда прилагаются условия. Тем не менее, те, кто хочет разместить свое программное обеспечение полностью в общественном достоянии без каких-либо оговорок, могут сделать это другими способами.
Недостаточно просто публиковать программное обеспечение без лицензии; закон об авторском праве применяется по умолчанию к большинству творческих работ, включая программное обеспечение. Вот где может помочь «посвящение общественного достояния».
Разработанная специально для программного обеспечения, theUnlicense является девятой по популярности лицензией на GitHub (хотя можно ли ее на самом деле назвать «лицензией», является спорной). Несмотря на то, что OSI одобрила его в качестве лицензии в 2020 году, он отметил, что документ «плохо составлен» и поставил под сомнение его юридическую эффективность в юрисдикциях (например, Германия), где невозможно пожертвовать работу в общественное достояние.
Как и Unlicense, Creative Commons'CC0-1.0 также является инструментом посвящения в общественном достоянии, хотя он более широко ориентирован на творческие работы. В нем используется более четкая, более профессиональная юридическая формулировка, которая может быть более совпака с международным правом. Стоит отметить, что Creative Commons подала заявку на утверждение CC0-1.0 в качестве лицензии, совместимой с открытым исходным кодом в 2012 году, но отозвала заявку после того, как OSI выразила обеспокоенность тем, что она явно исключает патентные гранты.
Существуют и другие инструменты публичного посвящения, такие как BSD Zero-Clause, которые могут быть привлекательны, так как у них еще более простой язык. Тем не менее, нет единого мнения о лучшем механизме для раздачи всех прав на данное программное обеспечение.
Существует бесчисленное множество других парадигм лицензирования по всему программному спектру.
В некоторых случаях предприятия будут выпускать программное обеспечение по модели двойных лицензий, при этом пользователь сможет выбирать между признанной лицензией с открытым исходным кодом и коммерческой лицензией, в зависимости от своих намерений. Затем есть «открытое ядро», которое предлагает программное обеспечение под лицензией с открытым исходным кодом, но с ключевыми функциями платной стеной. В других случаях компания может добавить дополнение к Commons Clause к разрешенной лицензии с открытым исходным кодом, вводя коммерческие ограничения.
Существует также множество лицензий, которые выглядят и пахнут как открытый исходный код, но в конечном итоге несовместимы с определением открытого исходного кода.
В 2018 году гигант баз данных MongoDB перешел с лицензии copyleft AGPL на публичную лицензию на стороне сервера (SSPL), лицензию собственного создания MongoDB. Хотя SSPL все еще довольно «открыт», это то, что известно как «доступный источник», поскольку код доступен, но имеет значительные коммерческие ограничения, что является большим нет-нет в отношении OSI.
Люди из MariaDB вышли аналогичный путь с лицензией на бизнес-источник (BUSL), которая накладывает коммерческие ограничения перед переходом на на настоящую лицензию с открытым исходным кодом через установленное количество лет. Существует еще одно подобное движение, которое стремится сделать лицензирование «справедливого источника». Это включает в себя лицензию функционального исходного кода, которая расуется как более простая альтернатива BUSL.
Вы также можете время от времени сталкиваться с так называемыми лицензиями «этического источника», такими как Лицензия Гиппократа, которая запрещает использование программного обеспечения в нарушение международно признанных прав человека. Аналогичным образом, открытый стандартный формат файла JSON имеет чрезвычайно разрешительную лицензию, за исчем одного уморительного пункта в конце: «Программное обеспечение должно использоваться для Доба, а не для Зла».