Open Source
Что такое open source
Linux работает на 96% серверов интернета, в каждом Android-телефоне и в суперкомпьютерах NASA. Его написали тысячи добровольцев. Как это работает - и почему крупнейшие корпорации платят за это деньги?
- Linux Kernel: 30+ миллионов строк кода, 15,000+ контрибьюторов, включая инженеров Google, Meta, Intel
- Microsoft купила GitHub за 7.5 млрд и стала одним из главных контрибьюторов в OSS
- TypeScript, VS Code, .NET Core - открытый код от Microsoft имеет миллиарды пользователей
- Страховая компания Allianz открыла внутренние инструменты и получила 200+ внешних улучшений за год
От свободного ПО к open source
**1983 год:** Ричард Столлман запускает проект GNU и формулирует четыре свободы пользователя ПО: запускать, изучать, распространять и улучшать. Это называлось «Free Software» - но слово «free» означало свободу, а не бесплатность. Разницу понимали не все.
**1998 год:** Netscape открывает исходный код браузера. Эрик Реймонд и Брюс Перенс придумывают термин **Open Source** - без политики, только практика. OSI (Open Source Initiative) формализует определение: 10 критериев, которым должна отвечать лицензия.
Сегодня open source - это не альтруизм, а **экономическая модель**. Linux лежит в основе 96% серверов интернета. React, Vue, TypeScript, Node.js, Python - весь современный стек построен на открытом коде. Компании вкладывают миллионы, потому что это выгодно.
**Почему компании открывают код:** 1) Привлечение талантов - лучшие инженеры идут туда, где видят работу. 2) Снижение затрат - внешние контрибьюторы исправляют баги бесплатно. 3) Стандартизация рынка - если ваш формат открыт, конкуренты вынуждены его поддерживать.
Google активно финансирует разработку Chromium (движок Chrome) и Kubernetes. Какая главная бизнес-причина?
Лицензии: MIT, Apache, GPL, AGPL
Лицензия определяет **что можно делать с кодом**. Выбор неправильной лицензии - частая ошибка новичков. Главный вопрос: насколько «заразной» должна быть ваша открытость?
**GPL в коммерческом продукте:** Если вы включаете GPL-библиотеку в своё приложение, ВЕСЬ ваш код должен стать GPL. Это называется «вирусный copyleft». Именно поэтому Android использует не GPL, а Apache 2.0 + LGPL для библиотек.
Вы создаёте open source ORM-библиотеку и хотите максимального adoption в коммерческих проектах. Какая лицензия лучше?
Ключевые идеи
- Open source - экономическая модель, а не альтруизм: компании открывают код ради talent acquisition, стандартизации рынка и внешних контрибьюций
- MIT/Apache 2.0 - permissive лицензии, минимальные ограничения, максимальный adoption
- GPL/AGPL - copyleft лицензии, производные работы тоже должны быть открыты
- AGPL специально блокирует коммерческий SaaS без открытия изменений
- Для библиотек с широким adoption выбирайте MIT или Apache 2.0
Связанные темы
После понимания основ - переходим к практике: как устроены реальные проекты.
- Следующий урок курса — Логическое продолжение
Вопросы для размышления
- Вы создаёте базу данных для предприятий. Хотите зарабатывать на облачной версии, но не хотите чтобы AWS просто взял ваш код и продавал как услугу. Какую лицензию выбрать и почему?
- Почему Linux использует GPL v2 (а не v3)? Подсказка: посмотрите на историю конфликта Торвальдса с GPLv3.
Связанные уроки
- se-01 — Принципы разработки ПО - основа для понимания качества кода и code review в OSS
- devops-01 — CI/CD и DevOps практики стандартны в open source проектах
- net-01-intro — Понимание сетей помогает разобраться в distributed OSS проектах вроде P2P и децентрализованных инструментов
- oss-02-how-projects-work — Следующий урок объясняет структуру реальных OSS-проектов и как в них участвовать
- alg-01-big-o — Выбор лицензии - стратегическое решение с trade-off между adoption и защитой, аналогично выбору алгоритма с trade-off между временем и памятью