Теоретическая часть
АрхивКомментарий дняРазвитие индустрии открытого кода, длившееся без остановки три десятка лет, тормозится сегодня отсутствием теоретической базы, которая позволила бы эффективно масштабировать модель open source на крупные предприятия и коммерчески успешные проекты.
Начать сегодняшнюю колонку хотелось бы с краткого упоминания о скромном open source-проекте, который родился и развивается под личным моим руководством. Это MatrixGL - скринсейвер по мотивам известного фильма. Первая версия его была выпущена летом и сегодня проект можно считать несомненно успешным: судя по лог-файлам, используется программа на тысячах машин по всему миру, многие из пользователей присылают исправления и дополнения, делятся идеями - часть из которых будет учтена в следующей версии. Порой приходят и фотографии - и весьма любопытные: вот, к примеру, полученный вчера снимок экспериментального кластерного экрана в вычислительном центре одного из американских университетов. Программа невелика, но отдача от неё несомненна (сделана она для рекламы посвящённого Linux сайта), да и просто приятно читать письма пользователей. Не торопитесь забрасывать меня обвинениями в саморекламе: чуть позже вы увидите, к чему здесь этот пример. И, надеюсь, со мной согласитесь. А теперь оторвёмся на минуту от конкретики...
Эволюция идеи и методов open source насчитывает больше трёх десятков лет. При этом собственно методы, как ни странно, появились раньше, чем под них подвели идейное основание: безвозмездный обмен текстами программ между компьютерными пользователями, начавшийся ещё в конце 60-х, лишь много лет спустя превратился в сознательный обмен, а потом стал основой целого движения разработчиков и пользователей программного обеспечения, принципиально отделяющих совместную разработку и бесплатное использование кода от господствующей идеологии проприетарного софта. Расставить временные вешки на этом длинном пути - задача не из лёгких. Но я предлагаю заняться сегодня не хронологией, а анализом текущего состояния движения открытого кода. Некоторые успехи его несомненны: так, о Linux слышали если не все, то очень многие. Но есть и моменты, которые требуют своего прояснения. Среди таких - точка зрения на модель open source как на извращённый вариант модели проприетарного кода: якобы, идея открытого кода является уродливым потомком естественной для каждого здравомыслящего человека "шкурнической" идеи кода закрытого, согласно которой программа создаётся как обычный продукт и потом как обычный же продукт продаётся, принося своему создателю вознаграждение. Именно здесь берут начало обвинения в гибельности open source для компьютерной индустрии. Увы, сторонникам "классического подхода" (проприетарного) к разработке софта, в силу их кровной зависимости от продаж своих программных продуктов, не дано понять, что open source - отнюдь не отрыжка проприетарной модели, а новая, самостоятельная модель.
Предыдущие два абзаца могут считаться вступлением, а сейчас - к главному: самая большая проблема индустрии open source, препятствующая её дальнейшему развитию, сегодня состоит в том, что даже сторонники открытого кода в большинстве своём ещё не понимают, что модель open source является действительно самостоятельной. Никто из сторонников открытого кода не понимает, какой инструмент оказался у них в руках. А отсюда уже вытекает физическая невозможность использовать его эффективно.
В самом деле, задумайтесь - почему одни open source-проекты превращаются из персональных в гигантские сообщества, меняющие мир информационных технологий (пример - ядро операционной системы Linux), а другие загибаются на корню, едва дав первые побеги (примеров полно на sourceforge.net)? Как следует применять методы open source при создании коммерческих продуктов, на которых смогла бы существовать большая компания (пример Red Hat почти уникален)? Можно ли использовать открытый код для создания продуктов, для которых проприетарность кода считается необходимой (программы для военных систем, антивирусы и т.п.)?
Все эти вопросы кажутся риторическими, но первое впечатление обманчиво - ведь чётких ответов на них попросту нет. То, что мы видим сегодня в успешных open source-проектах - сугубо практический подход, основанный на интуиции, высоких идеалах, харизме сильной личности - на чём угодно, но только не на теории. У каждого из основателей успешных open source-проектов своё видение ситуации, свои принципы и методы. Линус Торвальдс считает самым важным позволить разработчикам делать то, чего хочется им самим. Ричард Столлмен вербует сторонников пламенными призывами к борьбе за светлое будущее. Здания Open Office и Mozilla построены жаждущими качественной альтернативы. И так далее, и тому подобное вплоть до самых мелких начинаний, одним из которых может служить приведённый в самом начале колонки MatrixGL. Секрет его успеха видится мне в полезности продукта для пользователя, пусть даже она и ограничивается лишь эстетическим наслаждением.
И всё это действительно здорово, интересно и весело. Но копнём глубже: в массе своей сегодняшние open source-проекты напоминают бабушек на базаре, которые - не из коммерческого интереса, просто от нечего делать - торгуют припасённым на зиму барахлишком. Конечно, и мало-мальскую прибыль такая деятельность принести может, может она принести и какую-то известность и даже повлиять на происходящее вокруг ("а вот на базарчике огурчики вкуснее, чем в универсаме рядом"). Но методы ведения такого бизнеса - употребляя модный нынче термин - не масштабируются. Они непригодны для построения большого корабля, который смог бы плавать по бурным волнам рынка, выдерживая схватки с титанами вроде Microsoft. Для частных open source-проектов интуиции достаточно. Для построения компании, эксплуатирующей новую модель, необходима теоретическая база, знание которой позволило бы уверенно смотреть в будущее, управляя бизнесом.
Отдельные сообщения, проскакивающие время от времени в прессе (на днях промелькнуло известие о трёх научных группах в США, занятых теоретическим обоснованием open source) дают понять и позволяют надеяться, что работа в этом направлении ведётся и, вероятно, когда-нибудь должна разродиться практическими результатами. Но пока что вопросов больше чем ответов. Где зарыт ключик к общему успеху open source-проектов? Как эффективно применять идеи открытого кода в большом бизнесе? Как и можно ли вообще сознательно повысить производительность труда open source-разработчиков? Наивно полагать, что мы сможем сформулировать список правил, но тема кажется достойной обсуждения, тем более, что на носу праздники. Подключайтесь к дискуссии!