Как сотрудничают проекты с открытым исходным кодом

Прилив поднимает все лодки

В предыдущей статье я объяснил, почему существует так много проектов с открытым исходным кодом, решающих одну и ту же проблему. Но есть еще кое-что в этой истории с открытым исходным кодом. Проекты с открытым исходным кодом часто сотрудничают, даже если они кажутся конкурентами. Почему это?

Они не могут этого избежать

Иногда ничего не поделаешь. Если проекты имеют общие зависимости или используют одни и те же инструменты, любые улучшения, которые они вносят, принесут пользу всем пользователям — даже их «конкурентам». KDE и GNOME — это два проекта с открытым исходным кодом, которые создают конкурирующие среды рабочего стола. Но они оба используют GitLab для управления своим исходным кодом. Когда разработчик GNOME исправляет ошибку GitLab, KDE выигрывает. Когда разработчик KDE исправляет ошибку GitLab, GNOME выигрывает.

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

Допустим, вы разработали собственную реализацию SSL (почти наверняка не должны). Когда сообщается о серьезной ошибке в openSSL, вы можете посмотреть, не затронута ли она и вашу реализацию. Поскольку ваша реализация не используется широко, она не получает такого же уровня проверки, как более крупные проекты. Но вы все равно можете извлечь выгоду из тщательного изучения других проектов.

Все это создает впечатление, что проекты с открытым исходным кодом не хотят сотрудничать, они просто не могут этого избежать. Это совсем не так.

Они хотят

Большинство проектов активно поощряют сотрудничество. Это основа идеала открытого исходного кода.

Естественным местом для совместной работы над проектами являются общие основы. Как и в сценарии «они не могли этого избежать», это сотрудничество связано с инфраструктурой и восходящими потоками. Но это больше, чем просто «о, как приятно видеть тебя здесь!» Проекты могут — и делают — предпринимать преднамеренные усилия для совместной работы над вещами, которые принесут пользу им обоим.

Проекты с открытым исходным кодом также напрямую способствуют друг другу. Как правило, человек работает в одной компании одновременно. Но проекты с открытым исходным кодом — это не компании. Люди участвуют в нескольких проектах, даже в кажущихся конкурирующими проектах одновременно. Если вы используете несколько дистрибутивов Linux, вы, вероятно, будете вносить свой вклад в оба. Люди будут вносить переводы в несколько проектов — даже в те, которые они не используют, — потому что так они могут сделать его более доступным для людей, говорящих на их родном языке.

Если вы не привыкли работать в проектах с открытым исходным кодом, вам может быть трудно принять идею помощи вашим конкурентам. Но когда мы работаем вместе, мы все делаем лучше.

Обязательно ознакомьтесь с книгой Бена Коттона на The Pragmatic Bookshelf: