Утопия FOSS и дистанция до реальности

Миф о базаре

Все отличные проекты с открытым исходным кодом, которые я видел и использовал, либо разрабатываются под руководством крупных предприятий/организаций, либо более девяноста процентов кода написаны одним высококвалифицированным разработчиком. Эти проекты, скорее, являются "открытым исходным кодом", чем "открытым", поскольку внешним лицам трудно участвовать в основных процессах разработки. В противостоянии "собора" и "базара" эти проекты явно склоняются к "собору", хотя и носят маску "открытого исходного кода".
Те проекты с открытым исходным кодом, которые я видел и которые широко привлекают внешних разработчиков, где большинство людей могут внести свой вклад в процесс разработки, как правило, представляют собой катастрофы уровня "пожар в мусорном баке". Это настоящий "открытый исходный код", который в противостоянии "собора" и "базара" явно относится к стороне "базара".
С учетом вышеупомянутого опыта трудно не иметь претензий к практике "базарной" модели. Текущее положение дел в индустрии программного обеспечения доказало, что модель "базара" не подходит для большинства программных проектов.

Миф о поддержке форков

Положа руку на сердце, сколько форков проектов с открытым исходным кодом вы поддерживали? Способен ли ваш форк отслеживать прогресс вышестоящего проекта?
Большинство форков, поддерживаемых отдельными лицами/небольшими организациями, после короткого периода интенсивных коммитов превращаются в руины:
  • Для людей/организаций, не обладающих способностью поддерживать форки, обречено не отслеживать прогресс вышестоящего проекта, потому что вы не можете управлять тем, что вы не освоили по-настоящему. Без прохождения того же уровня размышлений, что и у разработчика программного обеспечения, изменения, возникающие в результате форка, могут стать препятствием для последующей поддержки, делая ее все более сложной.
  • Для людей/организаций, способных поддерживать форки, создание нового проекта с нуля может быть менее трудоемким, что значительно снижает потребность в поддержке форка.
Даже крупные форки, возникшие из-за разногласий и поддерживаемые частью исходной команды разработчиков, часто с трудом сохраняют жизнеспособность. Доказательство более чем очевидно: на рынке не так много программ, которые успешно поддерживали бы параллельную разработку после появления крупного форка. — Не потребуется много времени, чтобы одна из сторон одержала верх. Те немногие крупные форки, которые смогли поддерживать параллельную разработку, либо имели вышестоящий проект, который был зрелым и почти не добавлял новых функций, либо полностью отказались от зависимости от вышестоящего проекта.

Суждено лишь немногим заниматься стратегическим программированием

Между основными сопровождающими проекта и "случайными посторонними людьми из интернета" существует огромная разница в уровне понимания проекта: Чтобы написать "правильный код" или код уровня "стратегического программирования", последним потребуется много времени и усилий для углубления своих знаний о проекте. К сожалению, большинство контрибьюторов не обладают таким уровнем духа открытого исходного кода или объективными условиями.
Сопровождающим проектов с открытым исходным кодом приходится рассматривать запросы на слияние, отправленные "случайными посторонними людьми из интернета", и с высокой вероятностью обнаруживать, что большинство таких запросов не могут быть объединены напрямую. Чем легче проект привлекает низкоквалифицированных разработчиков, тем чаще он сталкивается с такими запросами на слияние. Будь то обучение внешних контрибьюторов переписыванию кода для достижения состояния, пригодного для слияния, или личное переписывание кода сопровождающими, все это требует затрат времени и усилий. Циклы коммуникации и обратной связи, построенные на идеологии открытого исходного кода, обычно крайне неэффективны, Настолько, что во многих случаях они не соответствуют затраченным усилиям, и сопровождающим стоит тратить время на более эффективные вещи.

Вы отвечаете только за код, который действительно используется

Различия между целями внешних контрибьюторов и команды разработчиков — обычное явление. Многие проекты по этой причине не нуждаются во внешних вкладах на уровне функционала.
Для функций, которые действительно интересуют команду разработчиков, официальная реализация часто бывает быстрой и качественной. Для функций, которые их не очень волнуют, запросы на функциональность будут закрыты ботом после некоторого затишья, а запросы на слияние канут в Лету. Или, что еще хуже, поспешная реализация объединяется, превращаясь в уязвимость программного обеспечения, которая возвращается в последующих версиях после нескольких попыток исправления, и в конце концов ей все равно суждено быть удаленной.

Вредно для психического здоровья

Как сохранять изящество, поддерживая проекты с открытым исходным кодом? Лучший ответ: Я не знаю.
Линус Торвальдс, лидер самых влиятельных проектов с открытым исходным кодом, вероятно, тоже не знает. Учитывая, что проекты, которыми он управляет, имеют довольно высокий порог входа, настолько высокий, что такие мелочи, как я, даже не стали бы рассматривать возможность внесения вклада, Способности, необходимые ему для выполнения своих обязанностей, уже невообразимы для обычных людей. Даже в этих высокопороговых проектах, где информация доходит до Линуса после многослойной фильтрации, Линус иногда проявляет себя едким и жестоким, используя насмешки и оскорбления в своей критике, — Это явление настолько серьезно, что наслаждение этими эмоциональными излияниями стало своего рода удовольствием. Значительная часть разработчиков положительно относится к эмоциональности Линуса, И даже рассматривает ее как важную часть хорошей репутации Линуса (отчасти потому, что такая информация имеет больший потенциал распространения), Потому что мир без таких технических диктаторов, как Линус, легко представить: Мы не получили бы программное обеспечение такого качества, как сейчас, и все было бы только хуже, чем сейчас. Для всех, кроме менеджеров, ситуация аналогична: сообщество открытого исходного кода — это не клуб взаимных похвал, и более эффективные способы общения часто бывают токсичными.
В мире действительно существуют суперлюди, способные сохранять спокойствие в любой ситуации и ловко справляться со всем, я приписываю это таланту или лекарствам. Потому что если бы эту способность можно было передать или хотя бы приобрести путем практики, То она должна была бы уже широко распространиться, ведь в мире должно быть много людей, желающих обладать такой способностью контролировать эмоции. В то же время следует отметить, что эти суперлюди редко находятся на вершине технологической области —Вершина технологической области в основном занята токсичными эгоманьяками, и различия между людьми, которых вы видите, в основном зависят от уровня их PR-возможностей. Эта корреляция ведет нас к непроверенному, но, казалось бы, объективно существующему закону: Хороший дух открытого исходного кода и хорошее психическое состояние несовместимы, как рыба и медвежья лапа (т.е. невозможно получить и то, и другое).

В разработке программного обеспечения существуют значительные различия в уровне навыков

Если вы не находитесь на вершине своей области, у вас всегда будет возможность встретить людей, которые лучше вас: знают больше, мыслят глубже, делают лучше. Разрыв между худшим и лучшим инженером нельзя просто описать как "10-кратный инженер". В нишевых областях, с учетом разницы в опыте и знаниях, разрыв между инженерами может быть намного больше десяти раз.
Что касается движения за открытый исходный код, существует простой способ классифицировать инженеров с разным уровнем навыков:
  • Настоящие инженеры: создают оригинальные, поддерживаемые интеллектуальные продукты.
  • Фальшивые инженеры: склеивают внешние библиотеки, создавая неподдерживаемое, некачественное псевдо-ПО.
Однако в сообществе открытого исходного кода фальшивые инженеры, лишенные самосознания, распространены так, будто они существуют для подтверждения эффекта Даннинга-Крюгера. Эти нарушители спокойствия часто также стремятся заработать "социальные очки", предпочитая оставлять тексты, лишенные полезной информации, и вносить вклад ради вклада. Между двумя типами инженеров на самом деле существует переходная стадия, называемая синдромом самозванца; эти люди часто не участвуют в проектах с открытым исходным кодом и, следовательно, наносят очень небольшой вред.
Самое раздражающее в открытом исходном коде — это то, что ошибки, проблемы и недоразумения, которые могли бы быть решены самостоятельно, из-за различий в уровне навыков ошибочно перекладываются с фальшивых инженеров на настоящих инженеров. Это чистая трата времени последних. Если бы люди могли сначала сомневаться в себе и действовать осторожно, то большинство таких ситуаций можно было бы избежать, даже при различиях в уровне навыков. Печально, что эти вещи, которые должны были бы быть базовыми качествами, на самом деле довольно редки, а движению за открытый исходный код не хватает эффективных средств для удержания фальшивых инжененов за пределами.

Открытый исходный код — это реклама

Независимо от того, признаете вы это или нет, но концепции свободного программного обеспечения и программного обеспечения с открытым исходным кодом, когда они обращены к конечным пользователям, по сути, означают одно и то же: — Они являются заменой для фразы "бесплатное и безопасное программное обеспечение".
"Получать вознаграждение, ничего не вкладывая" имеет очень сильный эффект на уровне маркетинга, и большинство людей не в состоянии противостоять этому искушению. Самый типичный пример встречается в игровой индустрии (которая также является частью индустрии программного обеспечения): самые прибыльные игры — это так называемые "бесплатные игры". Задайте себе этот вопрос: если бы это не было бесплатно, вы бы все равно выбрали это?
Значительная часть "проектов с открытым исходным кодом", где ценность метки "открытый исходный код" как рекламы намного превышает ценность "открытого исходного кода" как модели. Эти люди либо четко осознают, что эти проекты с трудом выживут, если оторвутся от исходной команды разработчиков, и используют открытый исходный код только как маркетинговый инструмент для опережения конкурентов; Либо просто используют свои собственные "лицензии с открытым исходным кодом"; когда "проект с открытым исходным кодом" не использует общепринятые лицензии, нетрудно представить, что там кроется подвох; Некоторые изначально открытые проекты после смены на несвободные лицензии продолжают вводить в заблуждение под видом открытого исходного кода, и тогда вы понимаете, в чем заключается маркетинговая ценность слова "открытый исходный код".
В области искусственного интеллекта даже "открытые веса" теперь называются "открытым исходным кодом". Как "читаемость исходного кода" не является открытым исходным кодом, так и "открытые веса" не являются открытым исходным кодом. От такой небрежной расширяющей семантики могут выиграть только те, кто рассчитывает использовать открытый исходный код в качестве рекламы.

Кажущаяся бесплатность

Уродливая сторона программного обеспечения с открытым исходным кодом часто маскируется поверхностной "бесплатностью". Бесплатного обеда не бывает; изучение, понимание, использование и вклад в программное обеспечение с открытым исходным кодом — все это имеет свою цену. Из-за более скудной документации, сильной зависимости от сообщества для исправления ошибок и получения поддержки, а также повсеместного наличия непроверенного на практике кода, программное обеспечение с открытым исходным кодом часто порождает неожиданные расходы. Когда вы решаете полагаться на проект с открытым исходным кодом, вы уже несете эти расходы.
Единственная бесплатная часть программного обеспечения с открытым исходным кодом заключается в самопорабощении сопровождающих, движимых идеалами и чувством миссии, что легко может привести к более крупному краху. Временно хорошо функционирующее программное обеспечение с открытым исходным кодом не означает, что оно будет хорошо функционировать и в будущем. Сопровождающий может устать, бросить, потерять способность поддерживать, быть некомпетентным или даже просто внезапно заболеть и решить уничтожить ранее неплохой проект. Поэтому использование программного обеспечения с открытым исходным кодом не только сопряжено с затратами, но и с рисками. Коммерческое программное обеспечение, благодаря очевидной мотивации выгодой, оказывается более гарантированным, чем программное обеспечение с открытым исходным кодом.
"Но сопровождающие открытого исходного кода ничего вам не должны!" —Надеюсь, вы сможете уверенно произнести эти слова, когда понесете убытки из-за атак на цепочки поставок и уязвимостей безопасности. Даже если это всего лишь подаяние в виде каши, помочиться в нее непростительно. Слепое доверие и злоупотребление программным обеспечением с открытым исходным кодом создали слишком много возможностей для добавления мочи в кашу, В результате любое программное обеспечение, использующее внешние зависимости, может случайно и косвенно внести проблемные зависимости, Что нанесет вред всем, кто находится ниже по цепочке зависимостей. Этот кризис доверия фундаментально увеличивает затраты для всех, кто продолжает использовать программное обеспечение с открытым исходным кодом; в конце концов, все, что изначально было легким, будет обременено тяжелыми оковами из-за показухи безопасности от "пытающихся решить проблемы" людей, неизвестно откуда взявшихся.

Последняя капля

Note
Большая часть этой статьи была написана до того, как LLM стали широко использоваться для генерации программного кода; только этот раздел был добавлен позже. Оглядываясь назад на предыдущий текст, я чувствую, будто читаю пророчество.
Злоупотребление LLM привело к полному и концентрированному взрыву проблем, которые изначально существовали в FOSS. Если раньше программное обеспечение с открытым исходным кодом еще имело некоторую ценность для использования, то теперь оно полностью утратило ее: Стоимость оценки уровня навыков автора и его понимания предметной области по коду стала слишком высокой. Особенно код, выпущенный после ноября 2025 года, больше не стоит ни секунды серьезного внимания; только если рассматривать его как мусор, можно говорить об эффективности.
По моему мнению, FOSS уже существует лишь формально, и единственный выход для сообщества — создать новый бренд, объединив тех, кто по-прежнему уважает качество кода, под новым знаменем —И это при условии, что эти люди способны победить новое поколение worse is better, вызванное LLM-программированием.
Я считаю, что у сообщества FOSS нет шансов на возрождение, пока LLM не рухнут из-за того, что новые обучающие данные будут состоять только из мусора. Лучший выбор, который они могут сделать, — это признать ценность кода, сгенерированного LLM, затем притвориться, что все идет гладко, и, наконец, погибнуть в тишине и удушье, как Советский Союз.