Проект 'ПОтребитель'
Главная | Новости | Информация | Статьи | Программы
Законы | Ссылки | О проекте | Off topic



Снизу

Павел Протасов
(pvp@bugtraq.ru)

Данная статья была опубликована в еженедельнике "Компьютерра", №19 за 2003 год (494)

Этот текст родился во многом как реакция на статью Максима Отставнова о свободном софте в госсекторе [2]. Сам я нахожусь на самом дне этого колодца, и проблемы тех, на кого решение применять свободные программы свалится, могу описать в красках. Правда, в результате размышлений ни одного честного способа отъема денег у Родины не родилось, про нечестные я решил не писать, а вот про все остальное - читайте ниже.

Провинция-с

Жизнь на дне - спокойна. Если кто-то просит бури, делать это лучше на поверхности. Это там - какие-то переделы рынка ПО, "Электронная Россия" и прочие хищные вещи. А мы, существа хтонические, работаем как получится и на чем придется. Вплоть до "286/40mb/3,5'/все дела".

Это я не жалуюсь. Дело в другом.

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

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

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

"Снизу" проникают не только компьютеры, но и программы. Очень показателен формат данных dBase - сначала разработчики, пользуясь легкими в освоении инструментами, начали плодить поделия для работы с файлами "dbf", а затем этот формат признали официально: сейчас поиск в онлайновой базе "Консультант +" ( http://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 - он же, под PalmOS - 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-tate.edu/pub/emacs-lisp/ ) - и вы поймете, о чем идет речь.

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

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

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

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

Список использованной литературы:



Наверх Письмо Web-мастеру