Опенсурс как таковой зародился, по сути, из культуры хакеров 80-ых. Они писали программы и обменивались ими друг с другом. Но эта идиллия не могла длиться вечно. В какой-то момент разработка ПО коммерциализировалась. Корпорации начали пользоваться открытым ПО, ничего не давая его разработчикам взамен, зато часто требуя от них фикса багов и добавления фич. Недавно тут обсуждали монетизацию опенсурса. Люди много чего писали, но по итогу не изобрели рабочего и непротиворечивого способа получать деньги за открытый код. Так почему же челы, чьи технологии использует огромное количество коммерческих фирм, по итогу сидят без денег?
Начнём с психологии самих разработчиков опенсурса. Когда они видят репозиторий с большим количеством звёздочек, у них в мозгу формируется ассоциативный ряд, в котором бок о бок идут контент-мэйкеры с YouTube, стримеры с Twitch, клип-мэйкеры в Tik-Tok, шаболды с PornHub, создатели ссаных говняных хорроров с монстром на Unity из Steam и, наконец, творцы опенсурса. Разрабы думают: “Хммм, люди получают лайки в соцсетях. Но очень многие из них получают и реальные деньги. Значит, мэйнтэйнеры GitHub’a тоже получают деньги, наверное”. Да и согласитесь, соблазнительно создать и всю жизнь поддерживать что-то, что потом все будут учить, чем самому штудировать десятки фрэймворков. Другой резон - мнение о том, что работодатели смотрят на опенсурсные проекты и оценивают по ним кандидатов.
Сначала развенчаю второе, потому что с этим всё просто. Нанимателям АБСОЛЮТНО НАПЛЕВАТЬ, что вы там делали на GitHub’e. Кстати, им также наплевать на ваши статьи, ваши участия в конференциях, да даже если вы кучу книг по разработке ПО написали, им на это будет наплевать. У них есть свои собственные способы отсева кандидатов, с помощью которых они могут производить это очень быстро. Например, LeetCode-задачи. Никто не хочет смотреть на опенсурс-проекты и пр., когда откликов на вакансию сотни, если не пара тысяч, и все как на подбор с опытом, регалиями и пр. У меня был всего один случай, когда на мой опенсурс-проект удосужился взглянуть тот, кто проводил собес. Он похвалил мои репозитории, но на том и всё. Мне всё равно пришлось пройти через стандартное собеседование. Ну и какой смысл по итогу? Да и согласитесь, вряд ли среди претендующих на роль формошлёпа или перегонщика джонсонов будет что-то прорывное, достойное премии Хоппер. А если вы легендарные личности индустрии на уровне Гвидо ван Россума, Роба Пайка и Кена Томпсона, то вам смело можно стучаться уже не к HR-тётенькам, а к кому повыше.
С первым уже сложнее. Прежде всего про контент-мэйкеров необходимо сказать, что сами они в той или иной степени уникальные личности и творчество у них тоже уникальное. Даже если куча летсплееров снимает снимает один и тот же челленж в Minecraft’e, а толпа интернет-шаболд делает эротический косплэй 2B из NieR: Automata, они всё равно все делают это по-разному. И никого из них нельзя заменить так, чтобы вышло эквивалентно. Чего я не могу сказать об авторах опенсурсных проектов. Видите ли, открытый код, обладающий соответствующей лицензией, кто угодно может форкнуть, начать вносить в него изменения, и делать всё это он сможет не хуже, а то и лучше оригинального автора, лол. Разработчики взаимозаменяемы. Более того, если кто-то приборзеет и начнёт требовать деньги за свой труд, отказываясь дальше выпускать обновления, обязательно найдётся какой-нибудь ло… ВОЛОНТЁР, который согласится продолжить работу за автора.
Кроме того, советую вспомнить тексты всяких там опенсурсных лицензий. Если вкратце, то туда включено отсутствие каких-либо гарантий от разработчиков. Т.е. если опенсурсный код у вас не работает, или работает со сбоями, или вообще открывает в вашей системе узявимости - никто из авторов вам ничего не обязан ни чинить, ни тем более финансово компенсировать. Любой, кто имеет наглость чего-то там требовать от опенсурса, неправ априори. Да пускай хоть ублюдки из ИГИЛ (запрещённая в РФ террористическая организация) вставят этот код куда-то там в свои ракеты, автора не отправят в тюрьму. Так, например, никто из разработчиков OpenSSL не понёс наказания за Heartbleed. А уязвимость эта была критической. Иначе говоря, когда коммерческая фирма использует в собственном проекте опенсурсный код, она ничего за это не платит, но делает это на свой страх и риск. А вот когда в дело вступают деньги, вот тогда и начинается ответственность. Справедливо, нечего сказать. А теперь представьте себе, что авторы core-js и faker-js целый день занимались тем, что решали issues, деньги за которые по факту получали не они сами, а пользователи их библиотек.
Не забываем также, что IT - это всё-таки сфера услуг. Код, который пишет разработчик, сам по себе прибыли не приносит, т.к. не является конечным товаром в большинстве случаев. Прибыль приносит развёртывание приложения на инфраструктуре (что требует труда девопса) и привлечение к нему аудитории (работа маркетолога), которая как раз и будет генерировать прибыль путём кликанья по рекламе и уплаты комиссий с операций. Создавая опенсурсный код, вы, по сути, бесплатно оказываете кому-то услугу. Требовать после такого, чтобы вам платили - немного странно.
Наконец, истинное предназначение опенсурса сейчас - совместная работа крупных компаний над кодом, от которого они все зависят.
Вот есть, например, Linux. Intel выпускает новые процессоры и хочет, чтобы Linux на них эффективно работал, а Google хочет выпускать обновления для ОС Android, которая основана на Linux, а поскольку процессоры от Intel могут быть предназначены для мобильных устройств, то Google и Intel кооперируются в работе над Linux. Кроме того, на этой арене может возникнуть ещё несколько игроков со своими интересами в отношении Linux, и вот они все сотрудничают, чтобы никто не ушёл обиженным и Linux был эффективен для всего. Кроме того, бонусом при таком подходе будут раскрытие багов и контрибуции от мимокрокодилов
Кто-то скажет мне, что есть опенсурсные проекты, которые успешно монетизируются, например, тот же вышеупомянутый Linux. Я скажу, что это единичные случаи. В отличие от видеороликов на YouTube и порнографии с PornHub, для открытого кода нет готового известного метода монетизации. Каждый решает этот вопрос как-то по-своему. Если что-то получилось у Торвальдса и GNU Foundation, то это далеко не означает, что это получится у вас, даже если вы достигнете каких-то схожих параметров у своего проекта (популярности, например). Кроме того, монетизируется зачастую не сам исходный код, а что-то, что с ним сопряжено. Так, например, CockroachDB и MongoDB продают облачные версии своих открытых продуктов, то бишь инфраструктуру. nginx продаёт индивидуальную поддержку. Ну и вот расценки на Patreon одного опенсурс-разраба, поддерживающего десктопное приложение:
Кто-то ещё предложил отдельно продавать доступ к документации (бессмысленно, вы даже популярности тогда не наберёте, да и её могут и за вас написать), облагать коммерческих пользователей какой-то мздой (у вас просто всё сопрут и ничего вы нигде не докажете), продавать расширенную коммерческую версию библиотеки (бессмысленно, опять же, открытую версию могут написать за вас). Ещё есть предложение встраивать в закрытый динамически прилинковываемый бинарь, который идёт вместе с открытым кодом, майнер. Но тут придётся сильно поднапрячься. Обфусцировать его, сделать так, чтобы он не особо палился при том же профилировании, например. Плюс ещё как-то юридически всё это организовать, чтобы при поимке с поличным вам не могли устроить анальный экстерминатус. В общем, головняк. Да и в целом вывод один: перечисленные способы монетизации выходят за рамки одного только открытого кода. Он, так сказать, является лишь тем, от чего вам надо плясать. Кстати, как мне кажется, монетизировать именно какую-то библиотеку, которая подключается к проекту и не использует в работе некие сторонние интернет-сервисы - наиболее сложная, если не нерешаемая, задача. Пожертвования? Ну, это всего лишь формальное название. Микротранзакции в онлайн-играх тоже долго назывались “пожертвованиями” (во избежание налогов?), но на деле платили игроки за вполне конкретные внутриигровые вещи: за множители опыта, бусты к статам персонажа, иногда вообще за шмот или скины. Стримерам донатят тоже не просто так, а чтобы получить ответ на интересующий вопрос, засветить свой ник на экране, а потом в старости показывать внукам и говорить: “Смотрите, ребятишки, это именно я тут заставил Папича зарэйджить!” Открытый код вообще близок к понятию т.н. свободного блага. К таковым обычно относят воздух и солнечный свет. На деле же вы не можете получить доступ к солнечному свету ночью или к чистому воздуху в загрязнённом мегаполисе. А посмотреть или отредактировать открытый код вы можете в любое время, был бы доступ в интернет. Это благо даже более свободное, чем дарованные нам природой, но экономисты со мной не согласятся, потому что на написание кода были затрачены человеческие ресурсы.
Я скажу так: в какой-то момент настаёт время, когда следует распрощаться со своими идеализированными детскими мечтами и подумать в первую очередь о себе любимом и о своих близких. Если же вам просто нравится смотреть на увеличивающийся счётчик лайков, то есть куда более простые способы прийти к такому, а потом ещё и монетизировать. Так, например, я однажды сделал клип в Tik-Tok, который набрал 415к просмотров и 80к лайков (больше, чем звёздочек у core-js и faker-js вместе взятых) за пару дней. Для этого мне просто понадобилось взять чужое видео, немного обрезать его и сделать короткую надпись. Вот так вот. Люди любят тех, кто их развлекает, а остальное, будь это даже спасение их жизни, они воспринимают как должное.