Слишком много Cвободных Программ

Too Much Free Software (http://freshmeat.net/articles/view/774)

Автор: Мариус Андриян (Marius Andreiana)

Переводчик: Крижановский Андрей.

 

Сегодняшний избыток Свободных Программ (Free Software), ни одна из которых не совершенна — это как раз та проблема, которая мешает выбрать Линукс пользователю. Чтобы завоевать рабочий стол пользователя, мы должны объединить усилия.

Слишком много Свободных Программ? Или вы думаете, что люди жалуются на недостаток приложений, и из-за этого они остаются верными Microsoft Windows. Ну, в общем то, они правы. В Линуксе нет приличного проигрывателя фильмов и нет работающего звукового рекодера (типа того, что был в Windows 95), поставляемого по умолчанию с GNOME, но, кстати, есть больше чем 385 текстовых редакторов. Выбор хороший, но он бесполезен, когда ни один из вариантов толком не работает.

У нас есть огромный выбор Свободных Программ, но именно из-за того, что их так много, они обычно остаются со слабыми функциональными возможностями, поскольку разработчики Свободных Программ — это ограниченный ресурс. Есть исключения (GIMP), но за ними обычно стоят серьёзные компании (Open Office, Mozilla), которые знают, что хотят пользователи и что требовать со своих разработчиков.

Также у нас есть процесс естественного отбора, который приводит со временем к отбору лучших программ. Но для этого нужно много времени. Это был бы лучший отбор, если бы все программы в мире были бы Свободными, но это не так, а наше время истекает. Легальность использования некоторых DVD плееров под Линуксом нечетко определена, людей сажают в тюрьму за то, что они пишут полезные программы, а Microsoft делает Palladium и имеет более чем достаточно денег, чтобы оформить всё по закону. Скоро, мы не сможем, даже брать на время книжки. Многие веб сайты требуют использования Microsoft Internet Explorer, включая те, которые представляют необходимые услуги банков и службы правительства.

Чтобы избежать этого, мы должны заставить больше пользователей использовать Свободные Программы. Пользователей, которые не используют Internet Explorer можно благополучно проигнорировать, когда их в сети меньше 2%, но ни когда их 50%. Итак, как убедить большее число людей использовать Свободные Программы? Проповедовать это — не действует на то большинство, которое настолько подавлено важностью денег, что больше не обращает внимания на свободу. Мы можем попытаться сделать Свободные Программы намного лучше, чем типовая пользовательская операционная система, Microsoft Windows, которая используется сегодня, и для этого мы должны объединить усилия.

Как сказал Крейг Манди (Craig Mundie): OSS модель разработки ведёт к серьёзной возможности нездорового “ветвления” базового кода, что приводит к разработке множества несовместимых версий программ, к ослаблению, затруднению переносимости, к неустойчивости продукта и препятствует бизнес требованию стратегически планировать будущее. Microsoft трубит, что отсутствие выбора на их платформе — это часть общей идеи, но это именно то, что нужно большинству людей (меньше стоимость технической поддержки и больше советов для начинающих, от которых сейчас часто можно услышать «Ну, я не знаю, с этим я не работал, а с этим работал»). Выбор должен быть ограничен не только двумя, тремя вариантами, но все они должны иметь общий базовый код. Несколько примеров:

Рабочий стол

GNOME и KDE для большинства, Blackbox и Window Maker для более слабого железа. Всё остальное — это просто трата времени, как разработчика, так и пользователя, который пробует программу, а затем с отвращением удаляет её. GNOME и KDE должны совместно использовать нечто большее, чем спецификацию оконного менеджера, как например: GConf для сохранения настроек, виртуальная файловая система на подобие GnomeVFS и aRts вместо esd (хотя он и использует GStreamer). Замечу, что это всё технологии, лежащие в основе, они невидимы пользователю, за исключением того, что всё всегда работает (сохранение настроек, работа с файлами и проигрывание мелодий).

Графические инструментарии

GTK+. То, что нужно. У Qt всё ещё проблемы с лицензией, т.к. он не бесплатен для коммерческого использования. Ещё Motif, Tcl/Tk, wxWindows? К чёрту! В чём бы они не превышали GTK+, преимущества GTK+ перевесят, поэтому вместо религиозного упорства с их стороны, помогите реализовать недостающие свойства в GTK+. Представьте себе радость производителей коммерческих программ, которые, захотев выпустить Линукс-версию своей программы, учат только GTK+ (который они могут использовать также и для Windows версии), вместо того, что они слышат сейчас. («Ну что ж, есть GTK+, Qt, wxWindows и другие, как насчёт того, чтобы начать изучать преимущества и недостатки каждого?»

Офисные наборы приложений

Open Office имеет наибольшую функциональность, но поэтому он требует много ресурсов. Также есть GNOME и KDE офисы. Это, пожалуй, и есть все офисные наборы (LyX из другой категории). Эти программы уже имеют большинство пользователей, а значит, больше полезных свойств, меньше багов, а всё остальное (например, Gobe) игнорировать. Это здорово. А что не так здорово, так это то, что у этих программ нет ничего общего (за исключением glibc). Они должны были бы все, по меньшей мере, использовать Open Office формат (который предложен как стандарт) для сохранения файлов и иметь общие фильтры для импорта/экспорта других форматов.

Звук

Я не знаю, что именно здесь написать, но дело плохо. Есть надежда, что ALSA будет единственным API для доступа к звуковым устройствам, OSS исчезнет и тогда будет только один звуковой сервер, используемый по умолчанию во всех дистрибутивах. API для взаимодействия со звуковым сервером будет, вероятно, всё ещё разнообразным (SDL, GStreamer, OpenAL).

Обмен сообщениями

Есть Gaim, GnomeICU, Licq и множество других. У Gaim есть система плагинов, которая позволяет использовать все главные протоколы и, например, оправлять сообщения, зашифрованные с помощью GnuPG (функция, которую планировали добавить в Yahoo! в «enterprise» версии их клиента). Gaim должен отделить функции, работающие с сообщениями, в UI-независимые библиотеки, которые можно было бы легко использовать другими приложениями (остальными, выполняющими обмен сообщениями в качестве клиента, и даже вашим собственным приложением, разработанным для использования внутри компании).

 

Хороший пример — это Mozilla. Сегодня есть множество браузеров для Линукс, но большинство из них основано на Mozilla. Поэтому они работают.

Линукс уже побеждает на стороне сервера. Почему? Он работает! У вас есть веб сервер (даже названный httpd в Red Hat), две базы данных, которые справляются со всеми возможными задачами, каковы бы они не были (MySQL и PostgreSQL), три почтовых сервера (Sendmail, qmail и Postfix), name сервер и т.д. Чего у вас нет, так это «Yan — Yet Another Nameserver» («Ещё Один Name сервер») и «Ans — Ans’s Not Sendmail» («Тот Который не Sendmail»).

Пожалуйста, перестаньте разрабатывать и использовать непонятные и неизвестные приложения, когда есть варианты лучше. Не всё в них нравится? Исправьте то, что неправильно, или, если всё кажется неправильным, выделите всю функциональность в библиотеку, независимую от пользовательского интерфейса, а затем разработайте свой собственный графический интерфейс. Повторное использование и улучшение существующего кода, а не создание своего — вот то, что нужно. Забудьте синдром «сделано здесь» и ваши 15 минут славы на freshmeat, когда вы делаете объявление, и объединитесь с общественностью. Начать новый проект — хороший способ научиться разрабатывать программы, но учиться можно и исправляя ошибки, тестируя модули, и разрабатывая новые функциональные возможности, и оптимизируя существующие приложения. На Sourceforge стоило бы начать удалять проекты с активностью меньше 1% за последние шесть месяцев (каждую неделю они могли бы ставить вопрос об удалении нескольких проектов и давать месяц на увеличение активности).

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

Итак, с нетерпением жду Линукса на каждом десктопе!

 

Ссылки

 

Биография автора:

Мариус Андриян — специалист по программному обеспечению, который познакомился с движением Свободных Программ в 1997 г. Он является основателем румынской компьютерной системы Galuna S.R.L.. Он верит в свободу и искусство, проводит свободное время с друзьями, общаясь и слушая музыку и звук растущей травы, внося свой вклад в сообщество Свободных Программ, катаясь на велосипеде и созерцая красоту мира.

 

Ссылки на проекты