Фразу «капиталисты сами продадут нам верёвку, на которой мы их повесим» обычно приписывают Vladimir Lenin. Историки не уверены, говорил ли он её на самом деле, но в инженерной среде эта мысль звучит неожиданно современно.
В последние годы принято рассуждать об Open Source с некоторой тревогой. Аргумент выглядит так: программисты десятилетиями писали код и публиковали его бесплатно, компании собирали этот код, строили на нём продукты, а теперь обучают на нём искусственный интеллект. После чего этот же интеллект якобы заменит разработчиков. Картина получается строгая: коллективный труд превращается в сырьё, сырьё — в модели, а модели — в инструменты корпораций.
Но в такой схеме чего-то не хватает. Она описывает только первую половину процесса.
Если смотреть на явление более инженерно, Open Source — это не столько способ распространения программ, сколько особый механизм распространения знаний. Он работает по той же логике, что и наука.
В математике никто не владеет теоремой Пифагора. Её доказали, опубликовали, и она стала частью общего инструментария. То же самое произошло с рядами Фурье, с уравнениями Максвелла, с преобразованием Лапласа. Они вошли в учебники и перестали быть чьей-то собственностью. Каждое следующее поколение инженеров просто начинает с того места, где остановилось предыдущее.
Современная наука работает по тому же принципу. Когда физики выделили графен, они опубликовали результаты. После этого исследованием занялись сотни лабораторий. Технологии распространяются, потому что знания распространяются.
Open Source оказался естественным продолжением этой традиции, только в области программирования. Когда разработчик публикует библиотеку или систему, он фактически делает научную публикацию — только в форме исходного кода. Другие люди читают её, проверяют, модифицируют и используют в своих проектах. В результате появляются системы, которые невозможно было бы построить в одиночку.
Так выросли Linux, Python, PostgreSQL и множество других проектов. Они не создавались как законченные продукты; они постепенно складывались из вкладов тысяч людей. Интернет оказался построен из таких «публикаций» так же, как современная физика построена из опубликованных теорем.
Корпорации, разумеется, воспользовались этим. Это было неизбежно: когда знания доступны, их используют. Серверные инфраструктуры начали работать на Linux, базы данных — на PostgreSQL, аналитические системы — на Python. Экономическая выгода была очевидна.
Однако в последние годы произошёл новый шаг. Корпорации начали обучать большие языковые модели на огромных массивах текстов и кода. В эти массивы вошли репозитории, документация, статьи и обсуждения разработчиков. После обучения модели научились отвечать на вопросы о программировании и предлагать решения.
Важно понять, что происходит с кодом в этом процессе. Пока программа лежит в репозитории, она существует как конкретный файл. Но после обучения модели её содержание превращается в статистические закономерности. Код перестаёт быть текстом и становится знанием, встроенным в структуру модели.
Это напоминает библиотеку, только необычную. В обычной библиотеке знания лежат на полках в виде книг. В языковой модели они представлены в виде весов нейронной сети. Пользователь задаёт вопрос, и модель извлекает из этой структуры вероятный ответ.
Следствия такого устройства довольно любопытны. Если раньше архитектуры операционных систем, баз данных или компиляторов были доступны в основном специалистам, то теперь их можно обсуждать с машиной. Она объясняет принципы работы, предлагает схемы и указывает возможные ошибки. Это не делает её инженером, но превращает её в своего рода универсальный справочник.
Представим обычную ситуацию. Студент где-нибудь в Красноярске открывает ноутбук и спрашивает модель, как устроена распределённая файловая система. Модель отвечает, опираясь на знания о десятках существующих проектов. Студент экспериментирует, пробует разные варианты, исправляет ошибки. Через некоторое время у него появляется собственная реализация.
Подобные процессы происходили и раньше, только медленнее. Разработчики читали статьи, изучали исходники и постепенно перенимали идеи. Языковые модели ускоряют этот процесс: они соединяют множество источников и делают их доступными через диалог.
С этой точки зрения современные модели выполняют роль огромного каталога знаний о программировании. Они аккумулируют опыт индустрии и позволяют обращаться к нему почти напрямую.
Именно здесь возникает лёгкая историческая ирония. Компании инвестировали миллиарды долларов в инфраструктуру, собрали огромные корпуса текстов и обучили модели на коллективном опыте программистов. Результатом стала система, которая помогает разбираться в архитектуре программных систем любому человеку, у которого есть доступ к интернету.
Это не означает, что корпорации теряют преимущества. У них остаются ресурсы, инфраструктура и огромные команды инженеров. Но одновременно знания, которые раньше были распределены по тысячам проектов, постепенно превращаются в общий справочник.
Происходит процесс, знакомый по истории науки: знания распространяются быстрее, чем структуры, которые пытаются их удержать.
Поэтому разговор об «эксплуатации Open Source» оказывается неполным. Да, код использовали как сырьё. Но результатом стала система, которая усиливает способность людей создавать новые системы.
Возможно, именно в этом месте вспоминается старая ленинская фраза о верёвке. Даже если она никогда не была произнесена, в ней есть образ, хорошо подходящий к ситуации. Иногда инструмент, созданный для одной цели, начинает работать совершенно иначе.
Корпорации построили инфраструктуру, собрали знания и обучили модели.
Теперь эти модели помогают другим людям строить системы.
История продолжается.
А верёвка, по всей видимости, уже продана.
Источник


