Архивы: по дате | по разделам | по авторам

Снизу

Архив
автор : Павел Протасов   02.07.2003

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

Этот текст родился во многом как реакция на статью Максима Отставнова о свободном софте в госсекторе [2]. Сам я нахожусь на самом дне этого колодца, и проблемы тех, на кого свалится «высочайшее повеление» применять свободные программы, могу описать в красках. Правда, в результате размышлений ни одного честного способа отъема денег у Родины не родилось, про нечестные я решил не писать, а вот про все остальное — читайте ниже, а также на www.bugtraq.ru/law/freesoft/up.html.

Провинция-с

Жизнь на дне — спокойна. Если кто-то просит бури, ему лучше оставаться на поверхности. Там — какие-то переделы рынка ПО, «Электронная Россия» и прочие хищные вещи. А мы, существа хтонические, работаем как получится и на чем придется. Вплоть до «286/40mb/3,5”/все дела».
Я вовсе не жалуюсь. Дело в другом.

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

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

Судя по всему, вышестоящим инстанциям про такое положение вещей известно. Маленький пример — одно из недавних положений Центробанка РФ, касающееся формата представляемых данных [3]. Требования к данным просты: формат dbf и кодировка DOS. Похоже, в Центробанке понимают, на чем они обрабатываются.

«Снизу» проникают не только компьютеры, но и программы. Очень показателен формат данных dBase: сначала разработчики, пользуясь легкими в освоении инструментами, начали плодить поделки для работы с dbf-файлами, а затем этот формат признали официально — сейчас поиск в онлайновой базе «Консультант+» (www.consultant.ru/Online) по запросу «dbf» выдает 103 документа.

…Одна из тех задач, решение которой для государственных учреждений жизненно важна, — документооборот и делопроизводство, но на отечественном программном рынке сейчас нет достойных бесплатных (как свободных, так и проприетарных, но именно «бесплатных» — поскольку на уровне пользователя под сакраментальным «free» подразумевается как раз цена, а не свобода) программ для их автоматизации. Хотя сами обитатели дна об этом не подозревают, пользуясь для составления документов редактором Word. Да и поддерживается он аж на федеральном уровне: например, рекомендован «Инструкцией по делопроизводству в федеральных органах исполнительной власти» [4]. Уже в этом проявляется некомпетентность тех, кто принимает решения: для хранения документов больше подошла бы база данных с полями, содержащими отдельные реквизиты (дата, адресат, отметка о контроле и т. п.) Думается, виной этому — постсоветский стиль руководства, когда стратег-начальник решает тактические задачи и пытается регламентировать вещи, которых не понимает.

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

В таких условиях появляются возможности распространять и использовать самые невероятные программы, подобные приснопамятным уродцам, писанным на FoxPro с Clipper’ом, которые трудятся на госслужбе и поныне. Основное условие — уродец должен быть удобен в использовании.

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

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

Вместе нам не сойтись

Я — тупой «чайник».
Никогда не подняться мне духом до написания скриптов к EMACS. Я и по-русски его писать так и не заставил… Я даже сборкой-разборкой ядра никогда не занимался. Я диски монтировать учился полчаса… В довершение всего Linux я таки снес, перед этим подвесив пару раз до перезагрузки. Остается только пойти и утопиться.

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

Существует, правда, другой вариант: самому написать то, что нужно. Или нанять человека, который напишет. Я уже даже выучил, что это — один из основных способов написания софта с открытыми исходниками: я, наверно, все-таки способный. Хотя и тупой.

Чтобы как-то развивать свободные разработки, требуется финансирование: на голом энтузиазме далеко не уедешь. А для этого необходимо «заманить под софт» как можно больше пользователей, в том числе и «чайников». Не случайно одним из основных направлений в развитии того же Linux является облегчение установки и работы с ним для пользователя и написание приличного графического интерфейса.

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

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

Сначала — цитата из «Манифеста GNU»: «Полные исходные тексты системы будут доступны каждому. Вследствие этого все желающие модифицировать систему смогут проделать это в любой момент самостоятельно либо привлечь любого программиста или компанию. Пользователи не будут более зависеть от милости программиста или компании, владеющих «исходниками» и монопольным правом на внесение изменений» [1].

Выше я писал, что на голом энтузиазме далеко не уедешь. Но свободный софт держится большей частью не на нем, а на желании предоставленных самим себе разработчиков решить свои задачи. Впоследствии они в соответствии с «манифестом» позволяют пользоваться продуктами своего труда другим. В классике жанра «Собор и базар» [5] Эрик Реймонд объявляет это «первым уроком», хотя и непонятно, что же именно он собрался преподавать читателю.

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

Чуть получше с этим у писателей shareware, совсем хорошо — у наймитов капитала. Но недостаточно хорошо. В качестве примера берем опять редакторы, а в качестве задачи, решаемой с их помощью, — обработку ссылок и сносок.
Итак, сноски поддерживают: под DOS — MS Word, под Windows — он же, под Palm OS — WordSmith и Quick Office, под Linux — Lyx (надстройка над TEX). И, предположительно, EMACS, который после обработки напильником умеет и не такое. С библиографией хуже: списки литературы поддерживаются, похоже, только в bibTEX. Делать ссылки на элементы списка литературы умеет только Word for Windows, да и то — не совсем традиционным (в этом абзаце я сам себе противоречу: сначала говорю об отсутствии «традиционных» способов, а потом… Это я чтобы не писать «через задницу», извините) способом: список оформляется как обычный нумерованный, а затем в текст вставляются перекрестные ссылки на его элементы. (Говорю только о том, что щупал собственноручно.)

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

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

И еще один камень в бизона…

Unix и Unix-подобные системы задумывались и писались как набор инструментов. Столлман в своем «Манифесте» подчеркивает этот факт, считая его достоинством:

«Для большинства проектов такую распределенную работу с неполной занятостью очень трудно координировать; независимо написанные части, возможно, не заработают вместе. Но для частной задачи замещения Unix эта проблема отсутствует. Полная система Unix содержит сотни утилит, каждая из которых документирована отдельно. Большинство описаний интерфейсов зафиксированы для совместимости с Unix. Если каждый сотрудник сможет написать совместимую замену для одной Unix-утилиты и сделает так, чтобы она работала вместо оригинала в системе Unix, тогда вместе эти утилиты будут работать надлежащим образом» [1].

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

Опиум для народа

А кто вам вообще сказал, что графический интерфейс есть вершина удобства в использовании компьютера? Ничего подобного. В поздние советские времена, когда компьютеры уже не были такими большими, как БЭСМ, существовало понятие «АРМ» — «автоматизированное рабочее место».

АРМ на начальном этапе распространения компьютеров наиболее полно отвечали ожиданиям пользователей: ты включил — оно заработало. Вдобавок эти самые пользователи не в состоянии были ни объяснить, чего хотят от ЭВМ, ни научиться с ней обращаться. Их нужно было просто посадить, как грудничков, в «манеж», где они вреда принести не смогут ни себе, ни другим, и оставить работать.

Живой пример действительно работающих АРМ — места операционистов в сберкассах и на вокзалах: компьютер, обученный выполнять одну задачу, а за ним — обученный тому же пользователь. Какой «графический интерфейс», зачем?

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

Но чтобы написать программу, вовсе не нужно знать какой-либо «настоящий» язык программирования, это вредное заблуждение. Гляньте на тот же EMACS Lisp Archive (ftp://archive.cis.ohio-state.edu/pub/emacs-lisp) — и вы поймете, о чем идет речь.

Столлман дал пользователям вовсе не текстовый редактор, а расширяемую среду, которая выполняет уйму функций и которую можно настраивать под конкретную задачу. В результате появилась куча расширений, включающая в себя даже веб-браузер (EMACS/W3). Еще один пример удачно созданной среды для написания расширений — Far Manager (plugring.farmanager.com).

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

Условию удовлетворяет эдакий «конструктор», содержащий в себе команды для настройки интерфейса, работы с данными и описания их структуры. Поддерживаться в нем должны форматы файлов, основанные на простом текстовом: SGML/XML, CSV, RTF. А если использовать программу, которая может работать с файлами dBase, то появится еще одно преимущество: в нашей стране за период господства «Клиппера» с «Фокспро» было написано множество программ, работающий именно в этом формате; данные, обрабатываемые в них, при переходе на «конструктор» не потеряются.

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

Осталась единственная проблема: я не знаю, кто и как может такую программу написать. Похоже, придется доживать век на дне, где Word и Windows… и EMACS с X-Window: нам, чайникам, все едино…


Список использованной литературы
[1] Манифест GNU (The GNU Manifesto) // arc.linux.zp.ua/gnu/ manifesto.ru.html.
[2] М. Отставнов, Почем свобода для государства? // Компьютерра, 2003, №3, с. 21–26 // www.computerra.ru/offline/2003/478/24155.
[3] «О порядке представления кредитными организациями в уполномоченный орган сведений, предусмотренных Федеральным Законом «О противодействии легализации (отмыванию) доходов, полученных преступным путем и финансированию терроризма»: Положение Центрального Банка РФ от 20 декабря 2002 г. N 207-П.
[4] Типовая инструкция по делопроизводству в федеральных органах исполнительной власти (утв. приказом Росархива от 27 ноября 2002 г. №68).
[5] Э. Реймонд, Собор и базар // itinfo.spb.ru/Library/SoftwareDevelopmentTheorys/ERaymond-TheCathedralAndTheBazaar.html.
 

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.