В наши дни свободное программное обеспечение уже стало распространенным явлением в сфере высоких технологий. Этому есть огромное количество доказательств. Все больше и больше компаний открывают исходные коды своих проектов, что еще более ускоряет темпы роста этой культуры.
Мы склонны называть все продукты с открытым исходным кодом одним термином, считать их одной категорией. Так удобнее, но это всего лишь упрощение. Фундаментальная концепция открытого кода понятна всем, но права, обязанности и привилегии сторон интерпретируются по-разному. Это отражается на лицензиях свободного ПО. В этой статье мы рассмотрим основные виды свободных лицензий, а также насколько они популярны.
Виды свободных лицензий ПО
Одна из самых распространенных лицензий программного обеспечения — лицензия GNU GPL. Ее суть во взаимности. Лицензия требует, чтобы если код был изменен, то все изменения были обязательно опубликованы и доступны всем. Это называется копилефт. Но есть другие типы лицензии, которые строятся вокруг свободы для разработчика. Такие лицензии накладывают минимальные ограничения на пользователей и не требуют взаимности от разработчиков. Оба типа лицензий свободны, разница только в том, что именно остается свободным.
За последние десятилетие более чем две трети проектов с открытым исходным кодом распространяются под лицензией GPL. Можно предположить, что это лицензия по умолчанию, но все же на протяжении последних лет эта лицензия теряет популярность, а вместо нее начинают использоваться разрешающие лицензии.
Если сравнить долю каждой из лицензий по рейтингу Black Duck в этом месяце, по сравнению с январем 2010, то различие вполне очевидно:
В этом рейтинге самой популярной остается GPLv2, но она потеряла больше половины своей популярности, от 46% до 19%. За этот же период разрешительная лицензия MIT выросла от доли 8% до 29%. Apache License 2.0 выросла с 5% до 15%.
Можно предположить, что если в 2007 мы говорили о свободном по, то имели в виду копилефт лицензию GPL, тогда как сейчас фоукс сместился в сторону разрешающих MIT и Apache. Это не означает, что копилефт лицензии становятся менее важными, просто в наше время разработчикам больше нравятся разрешающие лицензии. Вот какие выводы мы можем сделать из этого графика:
Консолидация. Это топ 10 лицензий по популярности за 2010 и 2016 год, все, кроме трех из них, снизились в популярности. Больше всего снизилась лицензия GPL, а выросли Apache и MIT, это уже обсуждалось. Но примечательно, что достаточно популярная лицензия BSD, наоборот, снизилась. Та же тенденция у лицензии ISC. Сейчас только несколько лицензий являются самыми популярными и, возможно, скоро мы будем видеть консолидацию между несколькими лицензиями.
Бинарный выбор. Исторически так сложилось, что у вас есть три основных варианта выбора лицензии: копилефт, разрешающая и среднее положение. К средним лицензиям можно отнести LGPLv2.1 (4), LGPLv3 (2), EPL (1), MPLv1.1 (<1), CDDL (<1) и CDDLv1.1 (<1) они имеют общую долю порядка 7-8%. Теперь все больше и больше выбор сводится к копилефт или разрешающим лицензиям.
Без лицензии. Сколько бы ни говорилось об открытых лицензиях, но до сих пор остаются репозитории открытых проектов с кодом, не использующим ни одну из лицензий. Со временем процент лицензированных репозиториев сокращается:
Основные лицензии свободного ПО
А теперь давайте сделаем краткое описание для каждой лицензии из рейтинга чтобы вы могли ориентироваться что они из себя представляют:
GNU General Public License. Расшифровывается как универсальная общественная лицензия. Была разработана в 1988 году в рамках проекта GNU. Принцип действия лицензии, как уже говорилось, все изменения кода должны быть опубликованы. Программа не может быть включена в проприетарное ПО, но зато может свободно распространяться между пользователей, изучаться и улучшаться при условии публикации улучшений. За время развития было выпущено три версии — GPLv1, GPLv2 и GPLv3, в которых были немного ослаблены ограничения лицензии gpl к проприетарному ПО.
MIT License. Это лицензия, разработанная Массачусетским технологическим институтом (МТИ). Это разрешительная лицензия, а это значит, что несмотря на свободность распространения, ПО может использоваться в качестве части проприетарных программ.
Apache License 2.0. Это еще одна разрешительная лицензия. Кроме того, что разрешается полностью свободно распространять продукт, программы можно встраивать в проприетарное ПО. Но нельзя изменять название, а в файлах нужно прикладывать всю информацию об изменениях и лицензии.
Artistic License — свободная лицензия, разработанная The Perl Foundation. Это копилефт лицензия, она требует чтобы все изменения были опубликованы, а в файлах были описаны вносимые правки.
BSD Licese 2.0. Лицензия на программное обеспечение университета Беркли. Лицензия очень похожа на MIT, и программное обеспечение тоже можно встраивать в проприетарные проекты. Но здесь нельзя использовать оригинальное название свободного проекта.
Code Project Open 1.0.2 License. Это лицензия, опубликованная сообществом разработчиков The Code Project. Она разрешает использовать исходный код и сами программы в коммерческих целях, код можно изменять и включать в другие проекты.
Mozilla Public License (MPL) 1.1. Эта лицензия была разработана в компании Netscape и улучшена в Mozilla Foundation. Разрешается использование кода в закрытых проектах, но измененный код должен быть лицензирован в соответствии с MPL.
Microsoft Public Licese (MS-PL) — это свободная лицензия, которая предоставляет право на использование, распространение и изменение кода. Но при распространении нужно сохранить информацию об авторских правах.
Понятие об отличиях основных лицензий свободного ПО на одной схеме: