Ключові поняття

Ліцензія на програмне забезпечення

Ліцензія на програмне забезпечення (англ. software license) — це юридична угода, яка визначає умови, за яких програму або програмний код можна використовувати, змінювати й розповсюджувати. Це спосіб для розробників захистити свою інтелектуальну власність і вказати, як інші можуть використовувати їхню роботу.

Всупереч поширеній думці, комп'ютерна програма не є «вільною» за замовчуванням. У більшості країн світу програмний код захищений авторським правом, яке дає творцеві програми виключне право контролювати її використання. Якщо ти бачиш код без ліцензії, це не означає, що з ним можна робити будь-що. Це означає, що з ним не можна робити нічого, бо автор не дав на це дозволу.

Коли ти пишеш код, авторське право на нього автоматично належить тобі. Тобто ти маєш право вирішувати, хто й на яких умовах може ним користуватися. Якщо хочеться поділитися кодом з іншими, потрібно вказати умови, за яких його можна використовувати. Саме для цього й існують ліцензії на програмне забезпечення.

Після влаштування на роботу в програмуванні тобі, найімовірніше, запропонують підписати контракт, який визначає, кому належить написаний тобою код. Здебільшого цей код вважатиметься власністю роботодавця, а не твоєю. Логіка проста: тобі платять за написання коду, тож компанія хоче бути впевненою, що код належить їй. Саме тому варто уважно читати трудовий договір і розуміти, які права на написаний код у тебе залишаються.

Зазвичай файл ліцензії називається LICENSE або LICENSE.txt і лежить у корені репозиторію. Існує багато стандартних ліцензій, тож писати власну не обов'язково. Найпопулярніша — ліцензія MIT: вона дуже ліберальна й дозволяє іншим робити з твоїм кодом майже все. Коли ти створюєш репозиторій на GitHub, він запитає, яку ліцензію використати, і сам створить файл ліцензії.

Типи ліцензій на програмне забезпечення

Існує багато різних типів ліцензій на програмне забезпечення, кожна зі своїми умовами. Одні дуже ліберальні й дозволяють робити з кодом майже все, інші — суворі й помітно обмежують можливості. Ось найпоширеніші типи:

Пропрієтарна ліцензія (англ. proprietary license): закрита ліцензія, яка обмежує використання, зміну й розповсюдження програми. Вихідний код недоступний публічно, а сама програма зазвичай продається за гроші.

  • Це ті самі величезні ліцензійні угоди з кінцевим користувачем (EULA), які доводиться приймати під час встановлення програм на комп'ютер.
  • Приклади програм із пропрієтарними ліцензіями: Microsoft Windows, Adobe Photoshop, Oracle Database.

Ліцензія з відкритим кодом (англ. open-source license): тип ліцензії, який дозволяє будь-кому вільно використовувати, змінювати й розповсюджувати вихідний код. Вихідний код доступний публічно, і будь-хто може долучитися до розробки програми.

  • Дозвільна ліцензія (permissive): тип ліцензії з відкритим кодом, який дозволяє використовувати, змінювати й розповсюджувати програму з мінімальними обмеженнями. Дозвільні ліцензії дуже гнучкі й дозволяють робити з кодом майже все.

    • Приклади дозвільних ліцензій: MIT License, BSD License, Apache License.
    • Приклади програм із дозвільними ліцензіями: Python, Node.js, React.
  • Копілефт-ліцензія (copyleft): тип ліцензії з відкритим кодом, який вимагає, щоб будь-які змінені версії програми випускалися під тією самою ліцензією. Це гарантує, що програма залишиться відкритою, а всі покращення будуть доступні спільноті. Приклади копілефт-ліцензій — GNU General Public License (GPL) і Lesser GNU Public License (LGPL).

    • Приклади копілефт-ліцензій: GNU GPL, GNU LGPL.
    • Приклади програм із копілефт-ліцензіями: Git, Linux, WordPress, Blender.

Ліцензія Creative Commons: модульний і гнучкий набір ліцензій, які дозволяють авторам вказати, як їхні роботи можна використовувати, змінювати й розповсюджувати. Ліцензії Creative Commons зазвичай застосовуються до творчих робіт, як-от музика, зображення чи відео, і не містять окремих умов щодо розповсюдження вихідного коду.

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