Это неделя с открытым исходным кодом в SitePoint! Всю неделю мы публикуем статьи, посвященные всему, что связано с открытым исходным кодом, свободным программным обеспечением и сообществом, поэтому постоянно проверяйте тег OSW на наличие последних обновлений.
Соберите круглых детишек, у дяди Кэла есть урок истории, которым можно поделиться.
Назад, когда мир был молодым
Еще в первые дни Open Source — когда Динозавры бродили по земле, а Расмус был молодым человеком — было два типа проектов с открытым исходным кодом, о которых мы говорили: те, которые не стоили денег, и те, которые дали вам свободу распространять и модифицировать код. Мы использовали аналогию в том, что проекты были «Free as in beer», если они ничего не стоили, и «Free as in libre», если они давали вам свободу делиться с другими.
Именно так мы тогда объясняли Open Source маглам, и везде были маглы. Следует отметить, что это также было в то время, когда первым шагом в изучении PHP была сборка ядра Linux на вашем сервере.
Современный день
Перенесемся на несколько десятков лет, и вот мы здесь, Open Source теперь экосистема, а не группа пользователей, которую вы и пять друзей посещаете, или журнал, на который вы подписаны. Проблема в том, что большинство из нас перестали говорить о различных типах открытого исходного кода, мы просто предполагаем, что это оба. Большинство проектов в нашем уголке мира — PHP — на самом деле оба. Лицензия PHP — производная от лицензии BSD — очень открыта для предоставления вам свободы с очень небольшим количеством обязанностей. Другие проекты используют лицензии GPL, MIT, Apache и другие. Каждый разработчик или группа имеет право выбирать для своего кода любую лицензию, которая им наиболее удобна. Если вы используете их код, вы обязаны соблюдать ограничения и обязанности их лицензии.
Большинство разработчиков, использующих открытый исходный код, понимают все, что я сказал в последнем абзаце. Мы получим это. Если это GPL, мы должны отправить код, если это MIT, мы должны оставить авторское право и название на нем и т. Д. Большинство из нас понимают основные последствия лицензий, даже если мы не углубились в темные детали. Но использование открытого исходного кода влечет за собой еще одну ответственность, другую цену, если хотите.
Моя подруга Элизабет Смит лучше всего сказала в своем выступлении на ZendCon ’17 : «Если вы используете Open Source, но не участвуете в Open Source, Open Source умрет».
Это цена Open Source: отдача. Это цена, которую некоторые разработчики и большинство компаний, которые зарабатывают себе на жизнь или получают прибыль от Open Source, забывают заплатить. Отдача — это не совет, который вы отдаете Open Source, отдача — это подразумеваемая ответственность.
Как дать
«Хорошо, дядя Кэл, мы понимаем, кому мы платим?»
Видите, если вы так думаете, тогда вы действительно не понимаете этого.
Да, почти любой из разработчиков ядра PHP хотел бы, чтобы вы отдали им пару сотен за свое время. Если бы достаточное количество из нас сделало это, некоторые из них могли бы посвятить все свое рабочее время улучшению PHP.
Но это не так, как мы отдаем. Деньги можно заработать. Когда я говорю «отдача», я имею в виду отдать одну вещь, которую нельзя заработать и однажды отдать, которую нельзя заменить. Когда я говорю, что вам нужно возвращаться к Open Source, я имею в виду уделять ваше время. Для компаний это означает предоставление каждому разработчику в вашем штате времени для возврата к проекту с открытым исходным кодом по своему выбору (их выбор, а не ваш). Для частных лиц это означает участие в вашем любимом проекте. Для некоторых из нас это написание кода, для других — документация. Для некоторых, как я, это означает написание учебных пособий, выступления в группах пользователей и конференциях, а также делать все возможное для обучения; чтобы помочь построить следующее поколение разработчиков.
У всех нас есть любимый проект. Для меня это просто PHP, но мой второй фаворит — небольшой компонент Zend Framework. Я не могу внести свой вклад непосредственно в PHP — я не программист на Си. Я могу, однако, помочь распространить информацию о том факте, что PHP потрясающий. Я могу внести непосредственный вклад в мой любимый компонент Zend Framework. Это часть, которой я часто пользуюсь, поэтому, когда я узнал, что она ничего не сделает, я засучил рукава и написал код, чтобы заставить ее делать то, что мне нужно. Затем я отправил изменения обратно в очередь, чтобы другие тоже могли извлечь выгоду.
«ПОДОЖДИТЕ! Держись, обратно автобус! Вы делаете вклад только тогда, когда это приносит вам пользу, не так ли?
Может быть? Ну и что? Я не говорил, что это также не может быть корыстным, я сказал, что вы должны отдать, чтобы другие могли извлечь выгоду. Open Source — это все: «Я написал это, и если вы хотите использовать его, вы можете». Мы помогаем себе, но мы также помогаем другим.
Что если они не хотят моих подарков?
Я люблю WordPress. Столько дерьма, сколько я даю Мэтту Малленвегу — и за последние несколько лет я много ему дал — я уважаю то, что он построил. Я использую WordPress почти для всех своих проектов, потому что это простой в использовании инструмент, и я могу с ним что-то сделать. Несмотря на это, несколько раз, когда я вносил свой вклад в WordPress, мои изменения полностью игнорировались.
Как часть моей работы, когда я работал в Пантеоне, мне приходилось тратить время каждый день на возвращение. WordPress — очень большая и сложная система, над которой ежедневно работают сотни разработчиков. Верьте или нет, они не сидели без дела, ожидая, что дядя Кэл придет и спасет их, исправляя ошибки. Тем не менее, я пошел к баг-трекеру, нашел пару, которую, как мне казалось, я бы исправил, разложил проект, написал код и представил PR.
Один из них был проигнорирован. Я не уверен, почему иногда WP занимает много времени, чтобы исправить некритические ошибки. Из-за одной ошибки, для которой я представил пиар, мне также пришлось отправить заявку, потому что никто еще не заметил этого. Тот был просто отклонен, потому что это было настолько тривиально, что они даже не чувствовали, чтобы провести его через процесс обзора. Попутно я «исправил» пару проблем, которые я видел в коде, над которым я работал. Отсутствие фигурных скобок в выражениях IF и т. Д. Тривиальные вещи, но важные для меня. Я получил вежливый комментарий к своему пиару, который фактически сказал; «Пожалуйста остановись».
В WordPress очень жесткий процесс изменений. Система, которая является большой и используется многими веб-сайтами, должна иметь такую. Я не смог прочитать их инструкции и не смог следовать их правилам сообщества.
WordPress — и любой другой проект с открытым исходным кодом, который вы хотите назвать — не обязан принимать мои PR. Они также не обязаны принимать ваши. Я не знаю ни одной лицензии с открытым исходным кодом, которая требовала бы, чтобы проект либо принимал PR, либо приводил вескую причину, почему они этого не сделали. Это просто не там. Они могут отказаться по какой-либо причине или вообще без причины. Проект не должен вам, вы должны проект.
При этом, если вы пишете код, если вы вносите свой вклад в документацию, или если вы уделяете свое время другому проекту, и проект решает, по какой-либо причине, что ваше изменение не является необходимым или желательным, это хорошо, вы сделали свою часть. Ваш долг частично оплачен. Вы потратили немного своего времени и талантов, и это все, что от вас требуется.
Заплатить цену
Какой бы проект вы ни работали, найдите время, чтобы вернуть. Не позволяйте Open Source умереть в нашем поколении.
Сохраните эту великую концепцию; эта экосистема, которую мы помогли построить и которая позволила нам построить так много. Если вы разработчик, найдите свой любимый проект и отдайте. Если вы управляете компанией или командой разработчиков, дайте им время на копейки, чтобы вернуть проект. Помогите сохранить экосистему Open Source процветающей для следующего поколения разработчиков.