Сайт Opensource.com решил в очередной раз обратиться к старой и неисчерпаемой теме — достоинствам Open Source. На этот раз перечень мотивов для использования или написания программ с открытым кодом изложил евангелист GitHub Бен Балтер.

Микроэкономические мотивы

Создание открытого ПО стоит дешевле, поскольку разработчики избавлены от необходимости «изобретать велосипед». Это позволяет инженерам сосредоточиться на действительно неразрешённых или уникальных для организации проблемах, так как все простые задачи уже давно кем-то решены и можно воспользоваться готовым результатом.

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

Использование открытых решений позволяет заметно снизить общую стоимость владения (TCO) программным обеспечением. СПО имеет низкие (а порой и нулевые) первоначальные затраты, а также позволяет заместить капитальные расходы (лицензирование) на операционные (установка и настройка). Остальное (обучение и обслуживание), очевидно, никак не зависит от того, является программа свободной или проприетарной.

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

Согласно «закону Линуса» у многих глаз все ошибки мелкие. Что, впрочем, плохо согласуется с народной мудростью «у семи нянек дитя без глаза». Тем не менее Балтер утверждает, что можно считать эмпирически доказанным лучшее качество СПО.

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

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

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

Не исключено, что в том числе и по этим причинам разработка открытого ПО всё чаще привлекает внимание даже тех компаний, которые раньше считались противниками СПО. Сегодня практически все крупные фирмы активно участвуют в деятельности сообщества Open Source: IBM, Microsoft, Apple, SAP, Adobe и др.

Бен Балтер замечает, что неверно говорить «за открытым кодом будущее». Открытый код уже выиграл.

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

Если используется открытый код, то все участники процесса заинтересованы в том, чтобы внести свой вклад в разработку. Не снять с себя ответственность, а сделать так, чтобы ошибка была поскорее исправлена. Всё сделанное человеком несовершенно — надо принять это как истину и сообща делать продукты лучше.

Макроэкономические мотивы

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

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

Программное обеспечение — по сути не более чем технические знания, которые принципиально ничем не отличаются от знаний научных. Были времена, когда алхимики скрывали результаты своей работы, считая их своей «интеллектуальной собственностью». Как только они начали делиться знаниями, их стали называть учёными.

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

Нравственные мотивы

Важно понимать, что концепция Open Source подразумевает «свободное слово, а не бесплатное пиво». Поэтому это прежде всего нравственная категория, основанная на базовых человеческих ценностях.

Бен Балтер приводит в пример известное приложение Adobe Flash Player, которое свободно в экономическом смысле (бесплатно), но является проприетарным. Основные категории свободных лицензий вообще ничего не говорят о деньгах. Всё сводится к четырём основным свободам: запускать, изучать, распространять и улучшать программу.

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

Именно нравственными категориями объясняется обязанность пользователя свободного ПО возвращать в сообщество плоды своего труда. Без вклада всех участников Open Source по сути прекратит своё существование. Это золотое правило, если оперировать философскими понятиями.

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

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

Прозрачность процессов

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

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

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

Участие в процессе

Практика показывает, что единственно эффективный метод контроля результата — участие в процессе. Open Source даёт эту возможность.

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

Также открытый код позволяет частным компаниям более эффективно организовать обратную связь с клиентами. Отзывы о продуктах становятся массовыми и обоснованными, причём разработчики получают их напрямую от самых взыскательных пользователей.

Личные мотивы

Бен Балтер утверждает, что Open Source — отличный способ узнать, как работает ваше любимое приложение. А вовлечение в деятельность сообщества позволит на практике научится самостоятельно писать эффективный код.

Наконец, это просто интересно. Точно так же, как пазлы, кроссворды и головоломки.