Концепция программного обеспечения с открытым кодом (open-source), некогда созданная в академических кругах и получившая свое развитие как элемент борьбы за права на инновации, сегодня уже сама превратилась в элемент глобализации, с которой так отчаянно сражались все эти годы ее адепты. Сегодня мы видим, как открытый исходный код стремительно поглощает рынок проприетарного программного обеспечения.
Еще не так давно боссы Microsoft убеждали нас в том, что открытый код — разрушитель интеллектуальной собственности, а сегодня гигант проприетарного кода покупает очередной проект, Citus Data, работающий с открытым исходным кодом, вслед за прошлогодним приобретением центрального хранилища для проектов с открытым исходным кодом GitHub за $7,5 млрд. Это стало знаменательным моментом в развитии отношений между признанными технологическими гигантами и сообществом разработчиков программного обеспечения с открытым исходным кодом.
То, что еще в начале тысячелетия бывший генеральный директор Microsoft Стив Баллмер назвал «коммунизмом» и «раком», его преемник и нынешний CEO Сатья Наделла объявляет «ва-банком» корпорации. За последние 20 лет программное обеспечение с открытым исходным кодом прошло путь от аутсайдера к технологическому мейнстриму, востребованному на 98% предприятий. Активная деятельность по IPO, слияниям и поглощениям способствовала привлечению капитала, что сделало модель компании с открытым исходным кодом финансовым мейнстримом. Как программное обеспечение с открытым исходным кодом стало основной движущей силой в мире технологий, кардинально изменив способ разработки и распространения ПО?
Хороший год
2018 год стал выдающимся для разработчиков программного обеспечения с открытым исходным кодом. В апреле состоялось крупнейшее на тот момент публичное размещение (IPO) акций когда-либо существовавших open-source компаний: за первый день торгов капитализация Pivotal Software превысила $3,9 млрд. В мае 2018-го, спустя всего год после IPO, был приобретен MuleSoft компанией Salesforce за $6,5 млрд, что стало крупнейшим приобретением среди компаний, работающих над открытым исходным кодом. Менее чем через месяц Microsoft приобрел GitHub, а цена MongoDB, компании по разработке баз данных с открытым исходным кодом, которая разместила свои акции в октябре 2017 года, выросла почти в 3 раза за год, достигнув $4,5 млрд.
В конце 2018 года произошла самая показательная сделка. RedHat, первая компания, которая построила успешный бизнес на основе программного обеспечения с открытым исходным кодом, в октябре была приобретена IBM за $34 млрд. В том же месяце публичные open-source компании Cloudera и Hortonworks объявили о слиянии, которое привело к появлению объединенной компании с рыночной капитализацией более $5 млрд и годовой выручкой более $700 млн. Ставший отраслевым стандартом поиска стартап Elastic вышел на IPO и почти удвоил свою капитализацию до без малого $5 млрд в первый день торгов.
Рождение лицензионного ПО
Идея о том, что человеку, работающему с программным обеспечением, должно быть разрешено просматривать, редактировать свой исходный код и делиться им без юридических последствий, не нова. До 1970-х годов программное обеспечение, как правило, распространялось вместе с его исходным кодом. Причина в том, что программное обеспечение зависело от аппаратного обеспечения: конечные пользователи должны были иметь возможность его модифицировать для запуска на конкретном компьютере.
Большинство людей, которые работали с компьютерами в это время, делали это в строго исследовательских целях, так что академическая культура обмена знаниями распространилась на ранние программы.
Однако по мере того, как программное обеспечение становилось все более сложным и дорогим в производстве, компании-разработчики искали способы остановить необузданный обмен исходным кодом, чтобы защитить свои доходы и лишить конкурентов доступа к их наработкам.
В 1969 году в ответ на антимонопольный иск Министерства юстиции США IBM отделила свое программное обеспечение от аппаратного обеспечения и начала взимать плату за софт. А в 1970-х годах комиссия Конгресса США определила, что компьютерные программы являются предметом авторского права.
Благодаря этим двум событиям к концу 1970-х годов большинство софтверных компаний прекратили поставки программного обеспечения с исходным кодом. В результате родилась индустрия проприетарного программного обеспечения, регулируемая лицензиями на программное обеспечение и лицензионными соглашениями. А для хакерского сообщества, которому нравилось делиться кодом непатентованного программного обеспечения, казалось, что их эпоха подходит к концу.
Коммерциализация Unix
В начале 1980-х AT&T решила начать коммерциализацию операционной системы Unix. Для некоторых, включая молодого исследователя Массачусетского технологического института по имени Ричард Столлман, это стало последней каплей. Будучи членом академического хакерского сообщества более десяти лет, он разочаровался в распространении проприетарного программного обеспечения и стал рассматривать его как нарушение прав людей на инновации и улучшение существующего ПО.
В 1983 году Столлман запустил проект GNU. Это была попытка создать операционную систему, которая предоставила бы пользователям свободу просмотра, изменения и обмена исходным кодом. Столлман сформулировал свою мотивацию для проекта в Манифесте GNU. В нем он заявляет о своей убежденности в том, что проприетарное лицензирование блокирует разработку программного обеспечения на уровне сообщества, препятствуя развитию технологий. Это, по мнению Столлмана, ложится несправедливым бременем на пользователей и разработчиков, которые в противном случае могли бы изменить код в соответствии со своими потребностями или изменить его для выполнения нового функционала.
В 1985 году Столлман на основе проекта GNU представил Фонд свободного программного обеспечения (FSF) — некоммерческую организацию, занимающуюся пропагандой концепции свободного программного обеспечения среди широкой общественности. Позже, в 1989 году, Столлман также разработает Стандартную публичную лицензию GNU (GPL) — лицензию на программное обеспечение, которая гарантирует права конечных пользователей свободно запускать, просматривать и обмениваться исходным кодом.
Это был мир, в котором молодой двадцатилетний финский студент по информатике по имени Линус оказался в 1991 году. Линус Торвальдс хотел разработать свою собственную операционную систему и сделать ее бесплатной. Поскольку его новое ядро в значительной степени опиралось на инструменты GNU, он решил в 1992 году выпустить его именно под лицензией GPL.
Открытый Linux
Если вы запутались в названии лицензий, то просто скажем, что Торвальдс разработал операционную систему Linux, которая в последующие десятилетия превратилась в одну из самых популярных в мире. Популярность Linux также породила Закон Линуса, который стал мантрой для описания ценности программного обеспечения с открытым исходным кодом для создания лучшего кода: «При достаточном количестве глаз все ошибки лежат на поверхности». То есть открытость исходного кода повышала его качество: недостатки обнаруживались и дорабатывались.
Тем не менее лицензия GPL все еще содержала некоторые ограничения, которые накладывала концепция Copyleft (в отличие от стандартного авторского права Copyright). Ограничения распространялись на способы распространения свободного программного обеспечения, гарантируя, что все производные продукты будут распространяться под той же лицензией.
Для разработчиков появление Copyleft, позволяющей среди прочего при создании нового ПО не получать разрешения владельца исходного кода, означала необходимость в новом виде лицензии для программ с открытым исходным кодом. Поэтому в 1998 году была основана инициатива открытого исходного кода (OSI). С самого начала целью OSI было продвижение непатентованного программного обеспечения с использованием прагматического подхода, который «отличал его от альтруистичного свободного программного обеспечения». Модель open-source подразумевала использование открытых исходников как метод разработки, модернизации и сопровождения кода, но права на него оставались у исходного разработчика в отличие от свободного ПО.
Драйвер роста
11 августа 1999 года компания, которая построила бизнес на базе Linux под названием RedHat, стала публичной и показала восьмой в истории взлет стоимости акций в первый день торгов на Уолл-стрит, прибавив 272%. Популярность Linux, который отнял долю рынка у Microsoft Windows, показала, как открытый исходный код может проникнуть на рынок проприетарного программного обеспечения.
RedHat впервые применила бизнес-модель с открытым исходным кодом, используя комбинацию услуг поддержки на основе подписки, обучения и интеграции. В первый день торгов компания достигла оценки в несколько миллиардов долларов и с тех пор значительно выросла: сегодня она стоит более $30 млрд, а выручка превосходит $3 млрд в год.
В 2000-х годах с развитием лицензирования проектов с открытым кодом последние расширялись и росли. JBoss была приобретена RedHat более чем за $350 млн в 2006 году; XenSource куплена Citrix за $500 млн в 2007-м; Zimbra досталась Yahoo! за $350 млн в том же 2007 году; MySQL приобрела Sun за $1 млрд в 2008-м. Описывая сделку по покупке компанией SpringSource разработчика виртуальных машин VMWare за $420 млн, в 2009 году TechCrunch не удержался от восклицания: «Открытый исходный код — легитимная бизнес-модель!» Появилось много новых технологий с открытым исходным кодом, среди которых Wordpress, Nginx, Hadoop, MongoDB, Elasticsearch и многие другие.
Причины процветания открытого исходного кода
Основной причиной распространения открытого исходного кода на старте была нулевая стоимость покупки и возможность гибкой настройки, позволяющая изменять исходный код по мере необходимости. Затем появился закон Линуса о том, что модель с открытым исходным кодом приводит к более качественному коду, и ряд неочевидных на первый взгляд, но весомых аргументов в пользу отказа от проприетарного ПО с закрытым исходным кодом.
Открытый исходный код означает устранение привязки к поставщику и возможность полагаться на поддержку сообщества. Даже если компания, спонсирующая проект, терпит крах, технология может продолжить свою жизнь силами сообщества, как это произошло, к примеру, когда компания RethinkDB закрылась, и проект с открытым исходным кодом присоединился к Linux Foundation.
Проекты с открытым исходным кодом являются передовыми благодаря их модели коллективного сотрудничества, позволяющей исправлять любые ошибки самостоятельно и, что не менее ценно, получать обратную связь сообщества. Внедрение технологий с открытым исходным кодом помогает как при работе по найму, так и при самостоятельной разработке: инженеры с большим энтузиазмом, а следовательно, и быстрее, изучат фундаментальную технологию, нежели запатентованную систему конкретного вендора. Вклад программиста в open-source проект, помимо прочего, дает возможность быть замеченным и помогает в долгосрочной карьере.
Открытый исходный код стал более эффективной моделью выхода на рынок, чем традиционное проприетарное программное обеспечение. Усилия по охвату рынка могут быть сфокусированы на обучении разработчиков, а не на продажах, что позволит напрямую связаться с конечным пользователем, не обращаясь к сложным организационным схемам. Продажи, в свою очередь, могут быть сосредоточены среди клиентов, знающих и успешно использующих распространяемые технологии, что дает на порядок большую эффективность, чем монетизация проприетарного ПО «холодными звонками» и демоверсиями.
Проблемы роста
Если в мире проприетарного программного обеспечения самой распространенной проблемой зачастую является привлечение внимания к созданному ПО, то в мире открытого исходного кода куда большую угрозу представляет чрезмерное внимание, способное сделать его создателей жертвой собственного успеха. По мере того как все больше разработчиков используют вашу технологию, затраты по обслуживанию и развитию подобного продукта возрастают экспоненциально. К такому развитию событий оказываются готовы далеко не все разработчики. Иногда это даже приводит к тому, что они оставляют свой проект, как это сделали BoltDB.
В 2001 году подсчитали, что только на разработку одной кодовой базы GNU/Linux потребовался бы $1 млрд, если бы работу программистов пришлось оплачивать. И это исследование было проведено почти два десятилетия назад, а с тех пор Linux стал еще более сложной и функциональной системой.
Угрозой для проектов с открытым кодом стали облачные сервисы. Поскольку открытый исходный код по своей природе является бесплатным и доступным, публичные облака (например, Amazon AWS, Microsoft Azure, Google Cloud) достаточно эффективно распространяют и монетизируют программное обеспечение с открытым кодом, не внося существенного вклада в улучшение исходных проектов.
Это можно считать «злоупотреблением открытым исходным кодом», и некоторые активисты даже готовят ряд мер по сдерживанию такого потребительского отношения. Однако предлагаемое условие лицензирования open-source Common Clause по своему духу противоречит исходным принципам ПО с открытым исходным кодом.
Как стимулировать разработчиков и дальше совершенствовать ПО, если облачные сервисы зарабатывают на нем миллиарды? Один из вариантов — полагаться на крупные технологические компании. Так, Google поддержал развитие фонда облачных вычислений Cloud Native Computing Foundation (CNCF). Однако при таком подходе жизнеспособность проекта становится зависимой от воли крупной корпорации. Это то, чего так пытались избежать создатели концепции проектов с открытым исходным кодом.
Пока самым реальным способом окупить проект остается некоторая комбинация поддержки ПО, продаж проприетарного программного обеспечения на базе открытого исходного кода (open-core) и управляемой облачной инфраструктуры. Компании RedHat, Cloudera, Hortonworks, MongoDB, Elastic, Hashicorp, Confluent, Databricks и другие доказали, что такой подход позволяет достигать ежегодной выручки в $100 млн и более.
Будущее программного обеспечения
Суть успеха open-source в том, что вокруг проекта создаются сообщества, чьи совместные усилия не только снижают вероятность ошибок, но и делают продукт лучше.
Проблемой открытого исходного кода остается сложность баланса между свободным программным обеспечением и устойчивым бизнесом, а также взаимодействие с поставщиками облачных услуг, которые умудрились построить огромные бизнесы, опирающиеся на плечи «бесплатных» технологий, развитие которых они не торопятся поддерживать.
В то же время стоит понимать, что open-source сегодня — это, как правило, отличное программное обеспечение, предназначенное для разработчиков, а не для потребителей. Наиболее успешная модель ПО для бизнеса сегодня предполагает комбинацию открытого и проприетарного исходного кода. Проприетарное программное обеспечение уходит на второй план в развитии новых технологий, но тем не менее пока не собирается исчезать из нашей жизни полностью.
Если компании, специализирующиеся на проприетарном ПО, не адаптируются, они рискуют покинуть рынок. Поэтому Microsoft и другие корпорации уже признали перспективы программного обеспечения с открытым кодом и спешат «запрыгнуть в последний вагон». Однако будет много и тех, для кого игра скоро будет закончена. Те ценовые рекорды, которые мы видим сегодня при покупке проектов open-source, являются платой технологических гигантов за то, что они почти десятилетие не замечали изменяющуюся культуру разработки ПО, движимую силами отдельных инициатив и сообществ. Теперь она становится технологическим и финансовым стандартом.