Предупреждение. Пишу я из чувства негодования, и мне не особо хочется сдерживать тон. Если вы не желаете выслушивать мои резкие высказывания на тему опенсорса, то лучше эту статью не читайте.
Недавно в сердцах я написал на Mastodon такой пост:
«Мы считаем, что сфера опенсорса должна быть жизнеспособной, а труд мейнтейнеров должен оплачиваться!»
Мейнтейнер: *вносит коммерческие возможности*
Мы: «Не таким образом».
Мейнтейнер: *работает на крупную технологическую корпорацию*
Мы: «Не таким образом».
Мейнтейнер: *привлекает инвестирование*
Мы: «Не таким образом».
Эта моя публикация вызвала вирусную реакцию, получив множество встречных аргументов и критики (а также немало согласия, и это приятно). Думаю, часть критических ответов объясняется моим намеренно вольным изложением и придирчивостью читателей к терминологии, но некоторые всё же стали следствием искреннего недопонимания моих язвительных высказываний. Я сам виноват, что поднял этот вопрос без должной ясности вместо того, чтобы говорить прямо. Поэтому в текущей статье я выражу свои размышления в виде более рассудительной и развёрнутой тирады.
Мой основной посыл в том, что труд специалистов, работающих в сфере опенсорса, заслуживает оплаты. Без исключений. Нам следует перестать критиковать идею оплаты труда мейнтейнеров и начать её ценить. Да, все используемые для этого механизмы в том или ином смысле несовершенны, но лишь потому, что сам мир таков. И дело не в том, что люди берут деньги. Наезжать на мейнтейнеров, которые нашли способ устроить себе жизнь, неправильно.
Почему это важно
Естественно, эта проблема коснулась и меня лично: я состоял в опенсорсных сообществах более двадцати лет, и среди них у меня есть немало коллег и друзей, которые были бы рады перевести свою деятельность в формат оплачиваемой работы. Большинство из них не могут, и это проблема. Тех же, у кого получается, заваливают гневными письмами, критикующими их финансовый выбор и ставящими под вопрос их моральные принципы.
Но эта тема уходит гораздо глубже. Сфера опенсорса полезна для человечества. Будет лишь небольшим преувеличением сказать, что она является одним из наиболее ярких успешных коллективных начинаний человечества как вида. Это одно из немногих мест, где, по сути, все люди работают сообща над чем-то, что принесёт пользу всем. Без опенсорса мир был бы намного хуже того, в котором мы сейчас живём.
Поэтому я хочу, чтобы люди, которые желают работать в открытых проектах, могли этим спокойно заниматься, имея возможность вести комфортную жизнь, в которой будут удовлетворены все их базовые потребности. Они вносят вклад во что-то полезное для всего человечества, и не должны ради этого жертвовать собой!
Определения
Отчасти причиной возникшей полемики стало отсутствие общего соглашения относительно значений ключевых терминов. Поскольку в своём первом посте я использовал термин «опенсорс», в комментариях возникло обсуждение, вызванное его ошибочной интерпретацией некоторыми читателями (хуже того, снова пошли споры на тему отличия ПО с открытым исходным кодом и свободное ПО).
Поэтому во избежание разночтений я начну с определения того значения, которое закладываю в термины «ПО с открытым исходным кодом и открытого ПО».
▍ ПО с открытым исходным кодом и открытое ПО
Заметьте, что я намеренно указываю эти понятия в нижнем регистре (в оригинале автор использует термины «opensource» и «free software», – прим. пер.). Я не использую термин Open SourceTM, определённый организацией Open Source Initiative, как и Free SoftwareTM, определённый Free Software Foundation.* Я закладываю в эти выражения максимально широкий смысл: «Программное обеспечение, исходный код которого я могу читать и менять, выпуская его вариации, возможно, с определёнными условиями». Поэтому моё понимание «опенсорса» включает лицензии OSI и FSF, а также лицензии Polyform, JSON и BSL (Business Source License).
* Я знаю, что эти термины не являются торговыми марками. Хотя в отношении Open Source это неточно – OSI пыталась каким-то образом защитить этот термин как свой торговый знак.
Это, пожалуй, будет примечанием, но отчасти проблема здесь в том, что «минималистичное» определение Open Source прозвучит как «только те лицензии, которые подтвердила OSI», или, хуже того, «GPL – это единственная ‘истинная’ лицензия Free Software». Я хочу видеть в вариантах лицензирования больше экспериментирования и разнообразия, и если это означает включение дополнительных ограничений, препятствующих «использованию этого продукта кем угодно и для любых целей», то меня это вполне устраивает. В своей книге я рассматриваю в качестве опенсорсных широкий спектр лицензий, начиная с Blue Oak и заканчивая BSL (и даже ещё более ограничивающими).
Так что в этой статье под термином «опенсорс» я буду подразумевать весь этот спектр от «полностью свободного» до «свободного с некоторыми ограничениями». И я не стану обозначать максимальную степень этих «некоторых» ограничений, при которой продукт всё ещё может считаться свободным для использования. Я даже буду использовать термины «опенсорс» и «свободное ПО» как взаимозаменяемые, просто чтобы показать, насколько в этом контексте для меня не важны их точные трактовки.
Такой настрой наверняка некоторым будет не по нраву, и отчасти я это делаю нарочно. Не в том смысле, что я хочу кого-то разозлить, но…скажу так: «Если моё вольное использование этих терминов беспокоит вас в контексте обсуждения того, как люди налаживают свою жизнь, то это говорит о том, что вас больше волнует терминология и определения, чем жизни людей, и я хочу, чтобы вы какое-то время потерпели этот дискомфорт».
▍ Жизнеспособность
Теперь проясню, что я имею в виду под «жизнеспособностью» в отношении опенсорса. Люди используют этот термин во многих контекстах – грамотное управление, здоровое сообщество, финансирование и прочее.
Я же вкладываю в него весьма конкретный смысл: «Могут ли мейнтейнеры, занимаясь написанием ПО, вести образ жизни по шкале комфорта от удовлетворительного до хорошо обеспеченного?» Для меня в случае опенсорса «жизнеспособность» означает, что человек, выбравший написание ПО в качестве профессиональной деятельности, может быть уверен, что она, как минимум, покроет его базовые потребности – расходы на жильё, питание, здравоохранение и так далее. В идеале, конечно, не только это. Здорово, если бы реализация опенсорсных проектов позволяла людям вести хорошо обеспеченную или даже роскошную жизнь.
Опенсорс нельзя считать жизнеспособным
Практически никто не может обеспечить себе жизнь, занимаясь написанием открытого ПО. Если считать в процентах от всех инженеров ПО, то количество таковых специалистов близко к нулю.
Естественно, есть ряд компаний, нанимающих людей для работы над открытыми проектами: с ходу на ум приходят Canonical, Red Hat, Hashicorp и Mozilla. Уверен, вы сможете назвать и другие. Но, (а) – эти компании нанимают очень мало инженеров в сравнении с миллионами специалистов, занятых написанием проприетарного ПО, и (b) – не каждый инженер в таких организациях фактически пишет только открытый код; почти во всех этих компаниях используются бизнес-модели, зависящие от некоего проприетарного продукта. Поэтому даже самые яркие истории успеха в сфере опенсорса представляют лишь процент от процента.
Посмотрим на Django. По моим примерным оценкам сотни тысяч инженеров используют этот фреймворк ежедневно. А сколько получают плату за то, что развивают сам этот инструмент? Ответ: «полтора» – в Django Software Foundation трудится два специалиста: один на полную ставку и один на полставки. И это единственные люди, которые получают деньги за работу над Django. С самим Python ситуация аналогичная – используют его ежедневно миллионы, а оплату за разработку получает меньше десятка*.
*Здесь я считаю штатных разработчиков Python Software Foundation плюс небольшое число мейнтейнеров, нанятых такими компаниями, как Google и Microsoft для работы над Python на полный день.
«Жизнеспособность» означала бы, что над Django за деньги трудится около десяти человек на полную ставку, получая заработок на уровне среднего по отрасли. В случае Python их число достигало бы уже нескольких десятков. Чёрт возьми, да над одним только каталогом PyPI должна трудиться команда из минимум 10-15 человек, учитывая его охват, масштаб и значимость.
Ещё один не менее важный момент. «Жизнеспособность» в опенсорсе должна означать, что «какой-то специалист в Небраске», обслуживающий критическую зависимость, может вести обеспеченный образ жизни с возможностью брать выходные и отпуск, подменяясь с коллегами.
Обычно возникает момент, когда кто-то язвительно отмечает: «Вас раздражает не опенсорс, а капитализм». И это правдивое замечание, но к делу отношения не имеет.
То, что люди должны выбирать между написанием открытого ПО и возможностью получать достойные медицинские услуги, является проблемой, которая уходит корнями в текущую реализацию капитализма как игры «кто кого», и ответственность за которую нельзя возложить на движение «за открытое ПО».
Мечта состоит в том, что общество и правительства стран утвердят открытое ПО как общественное благо, которым оно определённо является, и будут финансировать его должным образом. А также исправят здравоохранение, обеспечат доступное жильё, общественный транспорт, государственную социальную поддержку и прочее, и прочее…
Я на миллион процентов согласен с этим видением, но его реализация не произойдёт в одночасье. Да что уж говорить, сомневаюсь, что оно случится даже на нашем веку, если вообще случится.
Мы должны принять мир как есть – даже если он не соответствует нашим желаниям. Это означает, что нам следует поддержать идею оплаты труда мейнтейнеров. Слишком уж часто я встречаю аргументы вроде: «Частные компании не должны оплачивать труд мейнтейнеров, так как это дело правительства». Звучит, безусловно, прекрасно – но правительства этого не делают! В итоге весь аргумент сводится к форме «Труд мейнтейнеров опенсорсных проектов оплачиваться не должен». С этим я не могу согласиться.
Любой случай получения оплаты за написание открытого кода можно считать победой
На сегодня жизнеспособность опенсорса означает оплату труда мейнтейнеров – и мы должны праздновать каждый такой случай! Всякий раз, когда мейнтейнер находит способ получить оплату своего труда – это победа.
Устроился в Microsoft работать над Python? Победа.
Получил грант? Победа.
Достиг стабильного уровня финансирования на Patreon? Победа.
Получаешь венчурное финансирование для разработки открытого ПО? Победа.
Строишь устойчивый бизнес по модели Open Core? Победа.
Hashicorp? Победа.
Поддерживаешь опенсорсный проект с платными опциями хостинга? Победа.
Успешно используешь не подтверждённую OSI лицензию, чтобы не потерять долю рынка в пользу Amazon? Победа.
Пока мы не достигнем полностью автоматизированного высокотехнологичного коммунистического строя с роскошным уровнем жизни, каждый случай, когда специалисту удаётся найти способ получать оплату за написание открытого ПО, является победой и заслуживает соответствующего праздника!
Но по факту мы получаем хейт
Хотя происходит совсем не это. Напротив, каждый раз, когда мейнтейнер находит способ получать деньги, возникают люди, которые его критикуют и жалуются.
Лицензии, не относящиеся к OSI, «не считаются» опенсорсными.
Если человек устроился в Microsoft, значит, он стал «привержен интересам корпорации» и доверия не заслуживает.
Patreon – это «попрошайничество».
Получение денег от спонсоров на GitHub – это «поддержка рентоискательства Microsoft».
Поиск венчурного инвестирования означает, что нас пытаются подвести под схему rug pull.
Open Core – это «замануха».
И ни одно из этих утверждений не является гипотетическим. Я видел, как каждый из этих аргументов звучит в отношении мейнтейнеров, получающих деньги за свою работу. Один даже сказал мне, что его критиковали за продажу футболок!
Не спорю. У каждой из тактик по поддержке мейнтейнеров определённо есть свои проблемы. Это верно, что венчурные инвестирования сопряжены с аспектами, которые зачастую ведут к проблемам в перспективе. Хреново, что Patreon или GitHub (и Stripe) удерживают комиссию от перечисляемых спонсорами средств. Дополнительные ограничения, накладываемые PolyForm или BSL действительно идут вразрез с идеалом Freedom 0. Что касается модели Open Core, то я тоже часто расстраиваюсь, когда вижу, что какая-то функциональность продукта оказывается доступна только в его платной версии.
Но вы можете критиковать эти системы, продолжая поддерживать мейнтейнеров! Наезжайте на A16Z сколько хотите, мне плевать (как и им). Если же вы ругаете мейнтейнера за то, что он взял деньги у венчурного инвестора, то направляете свой гнев не по адресу. Структурные и социальные аспекты, которые делают все эти разные модели финансирования проблемными, не являются виной людей, которые пытаются обеспечить свою жизнь, занимаясь разработкой открытого ПО.
Это подобно наезду на человека за то, что он делает покупки в Dollar General, когда это единственный доступный ему магазин. Хищническая модель бизнеса Dollar General определённо отстой, как и политики правительства, которые ведут к появлению продовольственных пустынь. Но всё это не является виной человека, которому нужно купить молоко в условиях, когда альтернатив нет.
Стремление к «непорочности» лишь ограничит ценность опенсорса для общества
За разработку открытого ПО оплату должно получать намного больше людей, но для того, чтобы это произошло, нам придётся смириться с несовершенством механизмов. Критикуйте эти механизмы, если хотите. Но, будьте добры, принимайте меры по искоренению социальной несправедливости.
Когда же мейнтейнер находит способ получать оплату за свой труд – порадуйтесь за него. Это маленькая победа для всех нас.