Scratch Your Own Itch

Пожалуй, самое хреновое с точки зрения пользователя в Open Source вообще и Free Software в частности: никто никому ничего не должен. Нравится — бери, пользуйся на здоровье; не нравится — твоя проблема. Никто не подписывался воплощать твои «хотелки». Код — вот он, можешь внести исправления, чтобы всё работало так, как тебе надо, или найми кого-нибудь, пусть тебе сделают. Если получится хорошо и полезно, и ты решишь поделиться с нами результатом — скажем спасибо.

Бывает, конечно, что ты нашёл баг, который заденет разработчиков за живое, или придумал какую-то фишку, полезность которой сразу очевидна всем, и разработчику захотелось её прикрутить. Но в больших проектах такое — редкость: скорее всего, всё, что было реально нужно и интересно, уже придумали и реализовали. «Да, — скажут тебе, — это интересно, будет здорово, если этим кто-нибудь займётся. Pull requests are welcome».

Поначалу это всё здорово огорчает, и даже злит. Но в какой-то момент какая-то мелочь толкает тебя к пониманию: привлекать богов к обжиганию горшков совершенно необязательно. Исправить две опечатки в интерфейсе можно самому, надо только найти, в каком месте какого файла сохранена эта фраза. И потом ещё надо эти исправления заслать обратно, разработчикам. Ты долго ходишь вокруг да около, но в какой-то момент есть свободный вечер и соответствующее настроение, и ты осваиваешь Git и GitHub…

Всё, Рубикон позади. Самое забавное, что Git — полезнейший инструмент для любого, кто так или иначе работает с текстом, а уж если работа в команде… Да даже если не в команде: если у тебя есть любые текстовые документы, которые меняются со временем или проходят несколько итераций в процессе рождения финальной версии, после освоения Git ты будешь с ужасом вспоминать, как жил до этого. То есть изучить Git хотя бы в общих чертах (на самом деле — любую СКВ, просто Git самая популярная, потому что самая удобная) в любом случае стоит. И как только это сделано, вдруг оказывается, что у тебя есть способ взаимодействовать с разработчиками «на их языке».

Вот первые твои правки приняли в проект. Вот твои правки отклонили, сказали, что именно нужно сделать иначе, и после нескольких итераций всё-таки приняли. Вот ты делаешь первые шаги в программировании, исправляя (по нагугленному шаблону) одну строчку, которая «сломала» функциональность при переходе проекта на новую версию библиотеки. Вот уже склонированный тобой репозиторий заметно ушёл вперёд от заброшенного пару лет назад авторского, а вот ты создал простенький свой собственный репозиторий с программой на десяток строк, или даже просто с документацией. И вот уже тебе сообщают о багах и просят добавить функций… А ты полминуты обдумываешь поступившее сообщение и пишешь в ответ: «Ну да, было бы здорово, если бы кто-то этим занялся. Pull requests are welcome!»

Никто никому ничего не должен, каждый исправляет какую-то мелочь, которая мешает жить лично ему, и вместе мы шаг за шагом делаем вещи, которыми можно гордиться. И это, пожалуй, самое ценное и чудесное в Open Source вообще и Free Software в частности.