Культ добра и программное обеспечение

Опубликовано в журнале "Компьютерра" №19 от 02 июля 2003 года

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

По окончании войны гости отправились домой, авиарейсы и поток добра прекратились, но облегчение от первого никак не компенсировало хозяевам острова неудобства второго. Точнее, третьего. А особенно вождю. Аборигены под его мудрым руководством построили точную (в меру своего разумения) копию аэродрома и стали ждать приносящих добро железных птиц, но тщетно. Ритуал возжжения огней на ВПП, однако, сохранился и после вождя и был позднее описан антропологами как «культ добра»: костры привлекают птиц, птицы несут добро.

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

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

Но цивилизация, на задворках которой он очутился, является ему в виде абстрактных, фрагментарных организованностей («вещей») систем, целостность, конкретная полнота которых ему неведома.

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

Мне кажется, это дает ключ к теме «провинциализма» бытования ИТ в госорганах, поднятой Павлом Протасовым (см. статью «Снизу», сс. 24–26). Рубеж «провинции» проходит не по кольцевой дороге и не по государственной границе, а по пониманию того, как устроена ИТ-цивилизация.

Программное обеспечение

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

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

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

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

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

Цена свободы

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

Существуют исследования, показывающие чуть ли не половину свободного кода как разработанного в инициативном порядке и бескорыстно, однако, из их поля зрения выпадают крупнейшие проекты (такие, как ГНУ, Apache, Xfree86, OpenOffice.org и т. п.), поставляющие бо,льшую часть активно применяемого кода. Существуют кейс-исследования, посвященные, например, первым годам разработки «Линукс», но их предмет нетипичен (системное программирование и системные программисты вообще нетипичны, а к ядрам и авторам их модулей это относится вдвойне). Программирование и программисты, пишущие «с нуля», нетипичны. Типичен прикладной «софт». Мэйнстрим рынка — это «багфиксы» (Bug fix — исправление ошибки) и исполнение «фичареквестов» (Feature request — запрос дополнительной функциональности).

Волонтеры и активисты, в основном, работают на «фронтире», в то время как «мэйнстрим» обеспечивается гораздо более объемными (и зачастую менее привлекательными) работами, производимыми, как правило, в коммерческих рамках (неважно, оплачивается ли сама разработка или исполнение работ, в которых она выполняет инструментальную роль).

Не вполне понятен призыв Протасова бесплатно выполнять какие-то работы, на которые существует достаточно артикулированный рыночный спрос. Та же разработка свободной платформы для документооборота — понятная и в современных условиях (в контексте существования таких проектов, как, например, OpenOffice.org) не слишком затратная задача.

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

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

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

Стандартизация интерфейсов, форматов, протоколов в госсекторе и для взаимодействия его с частным сектором, или, по крайней мере, организация этого процесса — прямая функция государства, и она на сегодня в России злостно государством не исполняется (даже на таком уровне, на котором в США разрабатываются федеральные стандарты обработки информации, FIPS)2. Поэтому госпоставки в значительной части представляют собою клубок некомпетентности, «подкруток» ТЗ под конкретных исполнителей, «откатов» и т. п., и с трудом могут быть сегодня названы сегментом рынка. Периодически на федеральном уровне провозглашаются различные инициативы (включая известные положения «Электронной России» об открытости форматов и кода применяемых программ), однако, как замечает Протасов, уже при некотором удалении от «федеральной вертикали», воспринимаются они достаточно абстрактно.

Если государство начнет выполнять эту, свою собственную, задачу, ресурсы на реализацию найдутся, и часто эта реализация будет свободной (закладывать основу разработок и стимулировать их дальнейшую свободу можно, включая в ТЗ требования демонстрации реализуемости путем предоставления справочной реализации — под свободной лицензией). Не из каких-либо высоких соображений, а исходя из того, что свободная разработка дешевле, а перспективы приворовать на несвободной реализации стандарта весьма туманны.

На сегодня нет никаких проблем в свободном программном обеспечении типового документооборота, и даже «конструкторы» для этого появляются (например, OpenOffice.org). Рассчитывать, что кто-то из разработчиков будет в это вкладываться в условиях явного «контрпротекционизма» большинства министерств, ведомств и местных органов власти, — неразумно.

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

This entry was posted in Компьютерра. Bookmark the permalink.

Leave a Reply