Введение в open source

Что такое open source?

Дословно open source – это «Открытый исходный код». То есть это программный (или «железный» в случае open hardware) проект, где любой желающий может изучить и использовать у себя в проектах его исходный код.
На основе этого кода можно создавать аналогичные проекты, добавляя нужную функциональность. Вы также можете предложить эти изменения авторам или помочь в разработке проекта, полностью воспроизвести его, распространять и даже зарабатывать на этом, если это позволяют условия лицензии.
Условия лицензии влияют на то, можно ли считать проект открытым, свободным или свободно распространяемым кодом и «железом».

Критерии open source проекта

Начнем с «открытости» и «закрытости» кода. Чтобы определить, относится ли код к открытому, он должен соответствовать критериям организации Open Source Initiative:
  • 1
    Свободное повторное распространение
    Приготовьтесь к тому, что ваш код многократно будет использован.
  • 2
    Доступные исходные тексты
    Обязательное условие, поэтому сделайте читаемость кода максимально удобно
  • 3
    Возможность модификации
    Ваш проект могут модифицировать сторонние пользователи
  • 4
    Производные программы и их исходные тексты должны свободно распространят
    Нельзя запрещать ПО с open source лицензиями ограничиваться рамками и копирайтами только вашей компании.
  • 5
    Отсутствие дискриминации против людей и групп людей и по цели применения
    На такое ПО не могут быть наложены санкции.
  • 6
    Лицензия распространяется на всех и не привязана к конкретному продукту
    Обратный случай, когда совместно используемое с open source ПО не становится автоматически открытым или тем более свободным.
  • 7
    Лицензия не должна ограничивать другие продукты

«Открытое» и «свободное» ПО

Картинка, сгенерированная нейросетью по запросу "сообщество программистов" моделью "Kandinsky 2.0".
Ознакомиться с исходным кодом модели можно по ссылке: https://github.com/ai-forever/Kandinsky-2.0
Соблюдение данных пунктов позволяет говорить о разработке, как об open source. В ином случае код может быть свободно распространяем, но закрыт (freeware), код может быть открыт для изучения, но содержать запреты для его применения (например, под лицензией от Microsoft Shared Source) или лицензия может иметь определенные ограничения, например, для коммерческого применения (различные лицензии Creative Commons).

Также надо различать «открытое» и «свободное» программное обеспечение (СПО). В последнем случае лицензируемый код освобождается от авторского права (так называемый copyleft), и ПО должно следовать следующим требованиям:
  • 1
    Любые лица имеют право выполнять программу на компьютере любым способом и для любых целей
  • 2
    Любые лица имеют право изучать, как программа работает, и модифицировать ее для собственных нужд
  • 3
    Любые лица вправе передавать копии программы другим
  • 4
    Любые лица вправе передавать другим лицам измененные (в том числе переработанные, модифицированные) копии программы
Кто же платит за создание свободного программного обеспечени? Стоит понять, что свободно не означает бесплатно. Коммерческая компания можем использовать код в своей деятельности, но распространять его свободно. Никто не запрещает продавать также установку, техническую поддержку или доработку кода под цели заказчика.

В России существует ГОСТ на свободное программное обеспечение, и мы рекомендуем также с ним ознакомиться, чтобы правильно применять термины «открытого» кода и СПО в своих проектах, если вы планируете получить государственного финансирование на свой проект.
Подводя итог, можно сказать, что свободное ПО — это концепт построения профессионального сообщества, в рамках которого инструменты для разработчиков создаются ими совместно и остаются доступны для использования и улучшения любому желающему