Философия кода

Почему компании и разработчики поддерживают открытое ПО

В 1991 году один из отцов-основателей опенсорса Ричард Столлман написал песню The Free Software Song. В ней поется о прекрасном будущем, где благодаря свободному ПО можно будет отказаться от «грязных лицензий». Мечты Столлмана воплотились в жизнь — правда, не совсем так, как он представлял. Проприетарный софт никуда не делся, но практически для каждой программы, распространяемой по коммерческой лицензии, существует опенсорс-альтернатива. Рассказываем, какие идеи легли в основу движения за открытое программное обеспечение и что сегодня побуждает крупные компании и простых разработчиков работать над открытым кодом.

Этим материалом мы продолжаем проект «Исходный код», посвященный опенсорсу: его истории, философии, ключевым принципам, самым известным и важным разработкам, а также законодательству и лицензированию. Проект подготовлен при поддержке высокопроизводительного и масштабируемого российского веб-сервера Angie.

Свободы прежде всего

Движение за открытое программное обеспечение построено на философии сотрудничества и свободного доступа к знаниям. В его основе лежит простой, но важный принцип: программное обеспечение должно быть доступно всем. Ричард Столлман, основатель проекта GNU, а позже — Фонда свободного программного обеспечения (FSF, Free Software Foundation), в Манифесте GNU провозгласил четыре свободы, которыми должно обладать такое ПО:

  • программу можно свободно использовать с любой целью («нулевая свобода»);
  • можно изучать устройство программы и адаптировать ее для своих целей («первая свобода»);
  • можно свободно распространять копии программы («вторая свобода»);
  • программу можно свободно улучшать и публиковать свою улучшенную версию при условии доступности исходного кода («третья свобода»).

По задумке идеологов, опенсорс-проекты должны быть основаны на принципах свободного обмена информацией, прозрачности и меритократии, то есть руководства наиболее способных и компетентных.

Ричард Столлман исполняет «The Free Software Song»

Как мы уже рассказывали в материале «Софт для всех», свободно распространяемые программы не всегда обладали открытым исходным кодом, а ПО с открытым кодом не всегда распространялось без ограничений или было бесплатным. В 1998 году часть разработчиков предложили использовать термин open source. Отныне открытым считался софт, который можно было свободно модифицировать и распространять как за деньги, так и на безвозмездной основе.

Программист и хакер Эрик Реймонд, а также Брюс Перенс, один из лидеров движения за свободное ПО, написали 10 правил опенсорса и основали Open Source Initiative (OSI) — организацию, которая занялась популяризацией софта с открытым исходным кодом. В дальнейшем совместный проект Реймонда и Перенса и детище Столлмана пошли разными путями: OSI сосредоточилась на открытости кода, а FSF — на свободе распространения ПО.

В отличие от основателей OSI, Линус Торвальдс, который предложил миру ядро Linux, говорил о себе так: «Я считаю себя инженером, а не провидцем или большим мыслителем. У меня нет высоких целей». То же самое можно сказать о подавляющем большинстве разработчиков и компаний, поддерживающих опенсорс: они руководствуются прагматическими целями. Однако сама по себе идея опенсорса до сих пор имеет важное социальное значение.

Есть две глобальные задачи, где опенсорс играет важнейшую роль. Первая — обучение начинающих разработчиков, подрастающего поколения. Они могут посмотреть код опытных коллег. Публичность всегда приводит к повышению качества. Думаю, что из-за опенсорса система обучения разработчиков очень сильно выиграла.

Вторая социально значимая задача опенсорса — это балансировка монополии корпораций. Опенсорс позволяет избежать монополизации. Это особенно важно для общественно значимых продуктов — распространенных протоколов, библиотек. Была история, когда правообладатели пытались запатентовать GIF. Это безумие, потому что этот формат используют огромное количество людей. А правообладатель хотел за небольшой фрагмент кода получить немало денег. Это совершенно неправильный подход, и опенсорс как раз спасает от таких ситуаций.

Дмитрий Комиссаров, CoFounder MyOffice.ru

Идеи, воплощенные в реальность

Сегодня компании и пользователи идут в опенсорс не только ради идеи, но и потому, что это единственный доступный способ развивать собственные продукты, даже для крупных компаний. Опенсорс перестал быть уделом энтузиастов вместе с появлением операционной системы Linux и приходом в движение крупных игроков, прежде всего компании Netscape, создавшей браузер Navigator.

Linux установлен на подавляющем большинстве серверов. Вокруг этой операционной системы появились и другие продукты с открытым кодом — например, веб-сервера Apache HTTP Server и nginx, система управления контентом WordPress и базы данных PostgreSQL. Эти проекты стали примером больших возможностей системного софта, созданного на основе открытого исходного кода.

Формат опенсорс позволяет нескольким компаниям, даже конкурирующим друг с другом, вести совместную разработку одного программного решения. Результаты такой разработки зачастую становятся промышленным стандартом де-факто и продолжают развиваться за счет заинтересованных в них людей и компаний. Все это привело к ускоренному развитию и совершенствованию программного обеспечения, разрабатываемого по этой модели, и позволило снизить затраты на разработку и обеспечение совместимости.

Роман Мылицын, руководитель направления перспективных исследований в Astra Linux

Заметное влияние на всю сферу IT оказало также опенсорсное ПО, которое позволило создавать программы всем желающим. В таких средствах разработки нередко можно выпускать только открытое ПО, а в случае работы над коммерческим продуктом необходимо купить платную версию программы.

Какие средства разработки используют открытый исходный код?

Многие системы обработки данных не могут существовать без СУБД, большинство из которых имеют открытый исходный код — среди них MySQL, Redis, Elastic и MongoDB. Например, PostgreSQL, которая появилась в 1996 году и прославилась своим качеством. В 2005 году в исходном коде PostgreSQL было найдено всего 20 проблемных мест на 775 000 строк исходного кода (в среднем одна ошибка на 39 000 строк). Для сравнения: в MySQL встречается одна ошибка на 8000 строк, а в ядре Linux — на 800 строк.

Другими словами, открытое ПО удовлетворяет потребность практически в любых программных инструментах. Правда, иногда коммерческое ПО оказывается все-таки удобнее для пользователя — например, Windows больше подходит для бытового использования, нежели Linux, которая требует более детальной настройки под конкретного пользователя. Иногда это включает в себя поиск драйверов и устранение системных ошибок. С другой стороны, профессиональные пользователи могут считать это преимуществом Linux, которую можно кастомизировать под себя.

Вклад в открытость

Изначально многие крупные игроки на рынке программного обеспечения боролись с опенсорсом или не оказывали ему никакой поддержки. Например, Билл Гейтс заявлял, что свободное копирование кода — акт воровства. Сегодня компании, как правило, транслируют противоположные взгляды: выкладывают продукты в опенсорс, выдают гранты и поддерживают фонды, которые разрабатывают ПО с открытым кодом.

В 2004 году Microsoft впервые вывела в опенсорс свой продукт — установщик Windows XML (WiX). А уже в 2008 году компания присоединилась к Apache Software Foundation и стала соучредителем Open Web Foundation совместно с Google, Facebook, Sun, IBM, Apache и другими. В число наиболее известных опенсорсных продуктов компании входят платформы .NET и Visual Studio Code. В 2018 году Microsoft за 7,5 миллиардов долларов приобрела крупнейшее хранилище исходного кода — GitHub. На сегодняшний день у компании почти шесть тысяч репозиториев.

Google, напротив, с самого начала поддерживала опенсорс и даже заявляла о себе как о самой крупной в мире опенсорс-компании. Продуктами, в которые компания внесла свой вклад, многие из нас пользуются каждый день. Это, например, браузер Chromium (основа Яндекс Браузера, Edge и Chrome) и ОС Android. При этом компания зарабатывает на том, что предлагает удобные «надстройки» над открытым кодом. Например, в Android это сервисы Google, которых лишена HarmonyOS — операционная система на устройствах компании Huawei.

Не отстают и российские компании. У Яндекса на GitHub сейчас 115 репозиториев. Столько же у VK. А у Лаборатории Касперского — 27. Разработчики из этих компаний работают над продуктами с открытым кодом, обрабатывают коммиты других пользователей и обновляют ПО по их запросам. Кроме того, иногда компании даже оплачивают работу сотрудников над сторонними опенсорс-проектами.

Какую выгоду извлекают компании, выкладывая продукты в опенсорс?

Однако, прежде чем выложить проект в опенсорс, продукт необходимо основательно «причесать». Нередко в программе годами используются «костыли», и вынести это наружу нельзя. Компания вынуждена писать патчи и дорабатывать то, на что раньше не было времени.

Для меня, как представителя корпорации, самое главное в опенсорсе то, что рано или поздно любой код может быть открыт и все смогут на него посмотреть. Это довольно важный психологический момент, чтобы не делать закладок и писать код качественно.

Дмитрий Комиссаров, CoFounder MyOffice.ru

Кроме того, прежде чем выходить в опенсорс, компании необходимо как следует поработать над юридическими вопросами. Часть решений, используемых в продукте, могут быть закрытыми или требовать определенных лицензий. В таких случаях требуется помощь юридического департамента.

Выгодный энтузиазм

Существуют целые фонды, которые оплачивают работу ключевых разработчиков, развивающих опенсорсные проекты. Например, Linux Foundation поддерживает разработку Linux, Apache Software Foundation — веб-сервер Apache, Mozilla Foundation — браузера Mozilla Firefox и почтового клиента Mozilla Thunderbird.

Без таких организаций большие опенсорс-проекты были бы невозможны. Однако большинство разработчиков и вовсе предлагают изменения или доработки кода бесплатно. Это касается как мелких проектов, созданных для личных потребностей, так и крупных. В первую очередь они делают это из личного интереса.

Что дает разработчику участие в опенсорсе?

В опенсорс-проектах участвуют не только разработчики — здесь нужны и тестировщики, и те, кто будет вести документацию, и те, кто будет отвечать за пиар продукта, и так далее. Поэтому крупными проектами обычно занимаются либо специальные фонды, либо компании — владельцы кода. Они направляют разработку, принимают решения о добавлении фич, исправлении ошибок, а также обеспечивают сборку проекта и предоставляют готовый продукт всем желающим.

Мир с открытым кодом

Похоже, мечтам Ричарда Столлмана не суждено сбыться и проприетарный софт с нами навсегда. Тем не менее опенсорс прочно занял свою нишу на рынке: он предлагает доступные аналоги многих решений, распространяемых по платной лицензии. Вместо Microsoft Office можно использовать LibreOffice или OpenOffice, вместо Adobe Photoshop — GIMP, вместо AutoCAD — LibreCAD или FreeCAD.

Опенсорс распространен в госучреждениях и научных организациях. Компьютеры в МФЦ используют AstraLinux в качестве операционной системы, которая хоть и продается по проприетарной лицензии, но основана на опенсорс-проекте Linux. А в суперкомпьютерах часто используется SLURM — бесплатный планировщик заданий с открытым исходным кодом для Linux и Unix-подобных ядер. В основе многих российских проприетарных решений лежат опенсорсные проекты — это, например, многочисленные Linux-версии, Postgres Pro — СУБД на открытом исходном коде PostgreSQL.

В образовательной сфере опенсорс имеет весьма важное значение. Благодаря ему можно смотреть на best practices, изучать различные операционные системы, компиляторы, программное обеспечение практически любых категорий. С точки зрения обучения это просто замечательно: вы можете показывать, как надо делать и как не надо. Это значение опенсорса невозможно переоценить. Уже один этот фактор оправдывает существование опенсорса на 100 процентов.

Дмитрий Комиссаров, CoFounder MyOffice.ru

В частности, для российских компаний преимущество опенсорса заключается в независимости от политических событий или конъюнктуры рынка. В 2022 году многие западные вендоры покинули Россию. После этого решения, построенные на основе их продуктов, перестали работать или более не поддерживаются. Например, сейчас трудно продлить лицензии на Adobe и Microsoft, особенно для корпоративных продуктов. Ушли MS SQL и Oracle — прежде весьма распространенные СУБД в российских компаниях. Рынок был вынужден переходить на опенсорс или российские аналоги.

Впрочем, у опенсорса есть свои проблемы. Открытость кода повышает безопасность продукта, так как на уязвимость его проверяют множество разработчиков. Но в то же время открытость связана с рисками, поскольку злоумышленнику проще найти уязвимость и воспользоваться ею.

Распространение опенсорса, как и всякое другое явление, имеет две стороны медали. С одной стороны, инженеры и ИТ специалисты, применяя опенсорс, способствуют его популяризации и развитию. С другой — повышают риски самих компаний, применяя произвольное программное обеспечение без юридических гарантий или обязательств с чьей-либо стороны.

К сожалению, имеется множество фактов безоговорочного доверия опенсорсу, без его проверки или заключения контракта на его поддержку. Есть много фактов деструктивного изменения свободного программного обеспечения по политическим мотивам.

Роман Мылицын, руководитель направления перспективных исследований в Astra Linux

Кроме того, далеко не все открытые проекты существуют вечно. Бывает, что интерес к продукту падает, особенно если на рынке появляется более продвинутый аналог. Небольшие проекты чаще перестают поддерживаться, если разработкой занимались один-два человека на голом энтузиазме. При выборе опенсорс-проекта следует проверять количество звезд на GitHub и время последнего коммита.

Эти и некоторые другие проблемы прямо вытекают из недостаточного финансирования. Даже фонды опенсорса не всегда в состоянии предложить качественный аналог проприетарным решениям, не говоря о тех продуктах, которые разработчики делают сами, без какой-либо поддержки. Кроме того, пожертвования в фонды не всегда стабильны. Из-за этого работа над теми или иными фичами может остановиться.

У опенсорса в России есть будущее, если мы будем генерировать код. На текущий момент мы в основном просто пользуемся опенсорс-продуктами, у нас мало игроков, контрибьюторов. Есть компании, которые выпускают продукты на базе опенсорса, и в российском реестре десятки таких продуктов. А вот контрибьюторов практически нет.

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

Нужно не только использовать код, но двигаться в сторону контрибьюторов. И, естественно, генерировать свои собственные опенсорс-проекты. Тогда у опенсорса в России будет неплохое будущее.

Дмитрий Комиссаров, CoFounder MyOffice.ru

Реклама: ООО «Веб-Сервер», ИНН 9704151517, Kra23vrCx

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.
Выдающийся софт

Шесть заметных и важных опенсорс-проектов из России