Я читал эту статью и хотел написать комментарий, но мне показалось, что это заслуживает ответной статьи. Во-первых, если вы меня не знаете, я написал тонну кода с открытым исходным кодом. Целые платформы и даже больше. Я думаю, что общая точка зрения, которая выражена в этой статье и во многих других, которые я вижу в интернете, слишком упрощена и опасна.
Нам нужно получать зарплату
Кто будет платить вам зарплату?
У людей есть разные ответы на вопрос о бизнес-моделях с открытым исходным кодом. Например, «консалтинг» или расплывчатое «поддержка». Мне всегда интересно, пробовали ли такие люди продавать консалтинг? Или, может быть, «поддержку».
Люди не покупают такие вещи. Особенно в условиях экономического спада. Как правило, продавцы продают эти вещи, намекая, что вы можете нарушить лицензию, и будет гораздо проще, если вы заплатите и получите коммерческую лицензию. Я даже добавлю «поддержку» бесплатно. Да, вы можете получить несколько спонсоров, если будете проводить все свое время на телефоне. Это бесконечный процесс продаж. Погоня за лидами и звонки. Ведение такого рода бизнеса требует больших накладных расходов.
Некоторые разработчики используют проблемные лицензии с открытым исходным кодом, которые они затем могут использовать для продаж. Но потом их начинают обвинять в том, что они «недостаточно открыты». Выиграть здесь невозможно.
Sun Microsystems платила мне зарплату во время моей работы над OSS. Они обанкротились и упали с оценки в 200 с лишним миллиардов долларов, в итоге продав компанию за 7 миллиардов. Конечно, это не потому, что они были с открытым исходным кодом. Это просто анекдот, и он не помог. Реальные люди теряют свои реальные рабочие места, потому что открытый исходный код не приносит денег. Даже когда это происходит, они зарабатывают очень мало. Люди говорили, что в итоге они получают меньший кусок от большего пирога. Это правда, но только для крупных игроков, и у вас есть два варианта: стать крупным игроком или смотреть, как крупный игрок забирает прибыль от вашей тяжелой работы.
Не поймите меня неправильно, я не против того, чтобы люди наживались на моей работе или даже крупные корпорации. Я делаю OSS для удовольствия и мне нравится идея, что люди добиваются успеха, основываясь на моей работе. Но я понимаю разочарование, которое испытывают многие разработчики, и пустая «пропаганда открытого исходного кода», которую я вижу от людей, является проблематичной.
Приманка и подмена
Плохая вещь — это корпоративный цинизм. Возьмем Google. Они выпустили Android с открытым исходным кодом, когда у него не было пользователей. Компании строили на его основе, и разработчики тоже. Вокруг него сформировалась пропаганда, потому что «это открытый исходный код». Затем они выпустили Google Play Services с закрытым исходным кодом, который позже добавил требование SaaS Firebase для некоторых важных функций (сейчас это бесплатно), и теперь у нас есть глубокие зависимости от закрытого исходного кода поставщиков, маскирующиеся под открытый исходный код.
Нам не обязательно использовать Google Play Services, если мы хотим создавать приложения для Android. Конечно. Но это значительно усложняет создание приложений для Android, а если вы не используете их для некоторых вещей (например, push, покупки и т.д.), то вам запрещено пользоваться крупнейшей торговой площадкой Android. Подавляющее большинство разработчиков «просто используют его». Это означает, что любой, кто хочет стереть Google Play со своего Android-устройства в пользу решения со 100% открытым исходным кодом, обнаружит, что у него очень мало возможностей для выбора приложений.
Возьмите Elastic search. Они были с открытым исходным кодом и убили его. Но AWS ставила вилки и не очень-то помогала им. Поэтому Elastic изменила свою лицензию, чтобы заблокировать AWS. AWS начала свой собственный форк. Некоторые люди в этой истории очерняют Elastic, но этим людям, вероятно, никогда не приходилось бороться с Amazon за выживание своего бизнеса. В этом случае обе стороны использовали открытый исходный код в борьбе за бизнес.
Случай с Java немного отличается. Java не была с открытым исходным кодом и стала открытым исходным кодом позже. Компания все еще сохраняла за собой право собственности на язык. Поэтому я понимаю некоторую жесткую хватку Oracle в отношении проекта и принимаю это. Хорошо, что есть твердая рука корабля, и это способствовало успеху Java. Проблема с иском Google заключалась в том, что Oracle пыталась распространить свою IP на API. Это было ошибкой.
GPL — лучшая лицензия
Около десяти лет назад компания RoboVM выпустила компилятор с открытым исходным кодом, который переводил Java в приложения для iOS. Это было довольно круто, и я много разговаривал с его основателем на JavaOne. В то время мы раздумывали над тем, создать ли нам собственную виртуальную машину или взять решение, подобное RoboVM. В итоге мы остановились на первом варианте и создали свою собственную виртуальную машину, которая была намного проще и лучше соответствовала нашим потребностям (она также с открытым исходным кодом).
Это решение было основано на технических достоинствах, и я думаю, что оно себя оправдало, но я по-прежнему с огромным уважением отношусь к команде RoboVM. Меня беспокоила компания Apple. Они много чего ломают… Создание низкоуровневой виртуальной машины — это опасная игра в кошки-мышки, когда Apple может внезапно что-то изменить, и мы окажемся в тупике. Второстепенным вопросом была монетизация. Я понимал, что команде RoboVM придется как-то платить зарплату своим сотрудникам и основателям. Как можно заработать на компиляторе с открытым исходным кодом? Заметьте, это было десять лет назад, и не было никаких прецедентов вроде Zig, на которые мы могли бы посмотреть как на образец.
В какой-то момент мои опасения по поводу политики Apple материализовались, и Apple добавила требование биткода при работе с некоторыми платформами. RoboVM потратил огромное количество времени на работу над поддержкой биткода и решил закрыть свой исходный код. Они поняли, что не могут финансировать дальнейшее развитие без этого. Не воспринимайте это как осуждение их решения. Я полностью понимаю, что, как я уже сказал, монетизировать OSS очень сложно.
GPL защитила сообщество, заставив RoboVM выпустить код финальной версии до переноса биткода. Это позволило сделать несколько форков кода в более поздние годы, но он до сих пор не поддерживается. Компания была куплена Xamarin и быстро прекратила свою деятельность, так как последняя была куплена Microsoft. Без GPL код, возможно, был бы недоступен. Она также заставила сторонних разработчиков публиковать свой код.
В этом отношении я больше верю в GPL, чем в более разрешительные лицензии, такие как MIT, BSD, Apache и т. д. Я думаю, что мы как сообщество должны предпочесть лицензию, которая сохраняет права сообщества, а не корпоративные права. Она также предоставляет хороший вариант монетизации для создателя проекта. Просто перелицензируйте лицензию как проприетарную и взимайте за это плату. К сожалению, GPL часто не устраивает многих разработчиков, потому что они ошибочно полагают, что это плохо для них. На самом деле все наоборот. GPL — один из лучших способов сохранить права сообщества в долгосрочной перспективе.
Изменилось ли положение вещей?
Я уже упоминал Зига. Есть много других примеров успешных фондов, таких как SQLite, Mozilla и т. д. Дойти до этого момента обычно сложно и не обязательно работает для каждого проекта с открытым исходным кодом. Например, cURL используется практически всеми, но я не думаю, что мы увидим фонд cURL. Также обратите внимание, что все эти проекты базируются в технологических центрах США. По моему опыту, гораздо сложнее найти спонсоров в других странах.
Значит ли это, что весь открытый исходный код должен быть хобби или мега-всеобъемлющим проектом?
К сожалению, у меня нет хороших ответов. Но у меня есть проблема: слишком рьяные сторонники открытого исходного кода. Вы не помогаете!
Открытый исходный код становится игрой только для корпораций. Он используется как оружие между сражающимися технологическими компаниями. В розничной торговле для этого есть название: лидер потерь.
В розничной торговле большой супермаркет продает некоторые товары себе в убыток и рекламирует эту удивительно низкую цену. Это привлекает аудиторию, которая покупает другие товары, и в итоге супермаркет получает прибыль. Но причина этого в том, чтобы заглушить конкурентов. Конкуренты кажутся дорогими (поскольку они не могут продавать в убыток). Они выходят из бизнеса, и крупная розничная компания повышает цены. Поначалу кажется, что мы получили от конкурентов огромную выгоду, но в конечном итоге мы оказываемся в проигрыше. Поэтому некоторые регулирующие органы запрещают такую практику, поскольку в итоге она разрушает рынок.
Открытый исходный код используется подобным циничным образом большими технологиями. Они создают «сообщества», нанимая армии профессионалов по связям с разработчиками, чтобы создать маскарад энтузиазма на низовом уровне. Иногда им не нужно монетизировать рынок, достаточно не допустить конкурентов.
TL;DR
Я люблю открытый исходный код и считаю его чрезвычайно важным. Вот почему мы не должны позволять корпорациям использовать его в качестве оружия. Нам нужно разнообразие в экосистеме, и мы должны поддерживать небольшие, критически важные проекты. Идея «подачек» проектам с открытым исходным кодом или «консалтинга» нежизнеспособна.
Крупные корпорации используют открытый исходный код как оружие для борьбы друг с другом, и в краткосрочной перспективе мы, кажется, выигрываем. Но когда они побеждают, корпоративный менталитет берет верх, и они удваивают контроль. Я предлагаю следующие решения:
- Использовать GPL — она здесь для защиты прав сообщества. Неудивительно, что корпорациям это не нравится.
- Не будьте пуританами OSS — небольшим компаниям нужно зарабатывать деньги. Они будут предлагать SaaS, расширения с закрытым исходным кодом и т.д. Это нормально.
- Большие корпорации не благосклонны — пропаганда, которую я вижу вокруг проектов OSS от компаний FAANG (MAANG), проблематична. Они не поддерживают OSS. Они используют и используют его. Не поймите меня неправильно, я благодарен им за их код, и это замечательно, что они его выпускают. Но мы должны быть осторожны, у них есть фидуциарные требования, которые могут столкнуться с «правильным» выполнением стандартов OSS.
Я не знаю, будет ли следующее, что я буду делать, OSS. Я не знаю, выберу ли я GPL, поскольку, как я уже сказал, у людей с этим проблемы. Но я знаю следующее: если вы сторонник открытого исходного кода. Уменьшите риторику. Она не приносит пользы.