Якщо хтось так само заплутався в ліцензіях на програмне забезпечення, як і я, ось як я бачу їх зараз. Ліцензії на програмне забезпечення контролюють, що люди можуть робити з вашим кодом. Ліцензія Массачусетського технологічного інституту дозволяє людям робити все, що завгодно. Скажімо, ви створили бібліотеку парсингу JSON з ліцензією MIT. Стартап може взяти ваш код, змінити його та продати як частину свого платного API-сервісу, не повертаючи вам нічого натомість. Їм просто потрібно зберігати ваше повідомлення про авторські права в коментарях до коду. React використовує Массачусетський технологічний інститут, тому Facebook міг би зробити його власницьким, але вони вирішили залишити його відкритим. Це ліцензія «роби все, що хочеш». GPL примушує до спільного використання. Уявіть, що ви створюєте веб-фреймворк під ліцензією GPL. Якщо хтось модифікує ваш фреймворк, щоб додати нові функції, він також повинен випустити ці модифікації під ліцензією GPL. Вони не можуть продавати фірмову версію. WordPress використовує GPL, тому всі теми та плагіни WordPress також повинні мати GPL. Якщо ви створюєте комерційну CMS на основі WordPress, вся ваша CMS стає GPL. Це зберігає все відкритим вихідним кодом. Apache 2.0 краще справляється з патентами. Ви пишете бібліотеку машинного навчання, а хтось вносить алгоритм. Пізніше вони намагаються подати до суду на користувачів за порушення патенту на цей алгоритм. З ліцензією Apache вони автоматично втрачають свої права на використання вашої бібліотеки. Це захист від патентних тролів. Kubernetes використовує Apache 2.0, тому що хмарні компанії турбуються про патентні питання. BSD – це, по суті, MIT з іншими словами. Ви створюєте мережну бібліотеку під номером BSD. За тими ж правилами, що й у Массачусетському технологічному інституті, люди можуть робити все, що їм заманеться. FreeBSD використовує це, тому Apple може взяти код BSD і помістити його в macOS, не випускаючи вихідний код macOS. Більшість розробників просто зараз використовують MIT, тому що це зрозуміліше. LGPL — це GPL для бібліотек. Ви створюєте бібліотеку генерації PDF під LGPL. Компанії можуть використовувати вашу бібліотеку у своєму власному програмному забезпеченні, не створюючи LGPL для цілого застосунку. Але якщо вони змінюють сам код вашої бібліотеки, ці зміни мають бути LGPL. Медіаплеєр VLC використовує LGPL, тому інші програми можуть включати відтворення відео без перетворення на GPL. Пропрієтарність означає, що ви контролюєте все. Ви створюєте движок бази даних і зберігаєте його власність. Компанії сплачують вам ліцензійні збори за його використання. Вони не можуть бачити вихідний код, не можуть його змінювати, не можуть розповсюджувати. Так працює Oracle Database. Ви заробляєте гроші на ліцензуванні, але обмежуєте коло тих, хто може ними скористатися. Подвійне ліцензування дає варіанти. Ви випускаєте базу даних як під GPL, так і під комерційними ліцензіями. Проекти з відкритим вихідним кодом безкоштовно використовують версію GPL. Компанії, які не хочуть обмежень GPL, платять за комерційну ліцензію. MySQL це робить. Стартапи використовують безкоштовний MySQL, великі компанії часто купують комерційні ліцензії. Суспільне надбання відмовляється від усіх прав. Ви створюєте хеш-функцію і ставите її в суспільне надбання. З ним може робити що завгодно, без обмежень, без зазначення авторства. Це робить SQLite. Державні органи це люблять, тому що юридичних ризиків немає. Створюєте бібліотеку, якою мають користуватися всі? Виберіть Массачусетський технологічний інститут. Хочете, щоб покращення поверталися до спільноти? Використовуйте GPL. Турбуєтеся про патенти в корпоративному програмному забезпеченні? Ідіть з Apache. Будуєте бізнес навколо свого коду? Залишайтеся власниками. Хочете максимум свободи для користувачів? Спробуйте суспільне надбання. Ключовим моментом є відповідність ваших цілей ліцензійним обмеженням. Не варто просто копіювати те, що роблять інші проекти, не розуміючи, чому вони обрали саме цю ліцензію.
22,17K