Последняя капля
АрхивКолонка ЗолотоваХотите увидеть, как рождаются большие программные проекты? В эти дни предоставляется хорошая возможность - от свободного GNOME отделяется группа революционеров GoneME.
Начать сегодняшнюю колонку позвольте издалека - с краткого рассказа об одном из самых популярных коллективных проектов в мире свободного софта, о рабочей среде пользователя (то, что по-английски называют desktop environment) GNOME. Родившийся в 1997 году, этот инструмент изначально задумывался как, во-первых, полностью свободный, во-вторых, интуитивно понятный и привлекательный для среднего юзера, и в-третьих, достаточно функциональный для объединения разнородных приложений на одном экране. Формально координирующую роль в судьбе GNOME играют люди, стоящие за проектами GNU и GNOME Foundation, практически же, как и любой другой достаточно крупный свободный проект, GNOME развивается в том направлении, в каком это кажется интересным и разумным его разработчикам - сотням энтузиастов со всего мира. За восемь лет существования GNOME успел стать весьма популярным продуктом, попав в большинство Linux-дистрибутивов (к примеру, в SuSE Linux он принят за основу) и даже выбравшись за пределы Linux, в другие UNIX-совместимые ОС (Solaris, в частности). GNOME из-за сравнительного несовершенства своего графического движка (GTK) не блещет внешней красотой, но тысячи пользователей - и прямым доказательством тому его распространённость - ценят эту среду за её удобство.
Тем не менее, с некоторых пор GNOME активно критикуют: его обвиняют в неуклюжести, отсутствии простоты и интуитивности, медлительности в исправлении ошибок и учёте пожеланий (это уже к разработчикам) и прочих грехах. Конечно, с одной стороны, такая судьба рано или поздно ожидает любой проект, обретший достаточную популярность. Но с другой, GNOME - не одинок: те же обвинения сыплются и в адрес его главного соперника KDE (в противовес которому в своё время и был рождён GNOME), и в адрес множества других свободных и частично свободных программных продуктов (XFree, OpenOffice.org, Mozilla и др.).
Причина такой универсальности - в особенностях мира UNIX-систем и, в частности, Linux. Как и в любой операционной системе, каждая большая программа здесь использует некоторый набор программных библиотек, содержащих нужные ей функции. Такие связи называют зависимостями. Однако, в отличие от Windows или "прикидывающейся юниксом" MacOS X, Linux подходит к вопросу удовлетворения зависимостей очень строго: если некой программе требуется библиотека определённой версии, вам придётся выполнить это требование, иначе нужная вам программа просто не установится либо откажется работать. Ситуация осложняется ещё и тем, что разработчики-энтузиасты, создающие софт для свободной ОС, не связаны никакими соглашениями, поэтому они работают на той конфигурации системы, которая им удобна (невольно обязывая пользователей приводить конфигурацию системы к такому же виду), не обращают внимание на число зависимостей и оптимизацию кода.
Всё это выливается в настоящий кошмар: часто программы, входящие в один дистрибутив Linux (так, к примеру, обстоят дела с Debian - крупнейшим из некоммерческих дистрибутивов), требуют установки конфликтующих версий библиотек, а потому не могут использоваться вместе. Кроме того, иногда один крохотный компонент может потребовать установки десятков мегабайт дополнительных библиотек. И если ресурсы вашей машины ограничены, вы не можете быть заранее уверены, что вам удастся запустить ту или иную программу (это особенно актуально для неполноценных систем, вроде наладонных компьютеров. См. проект Debian для iPaq).
Впрочем, у сообщества пользователей свободного софта есть приятная особенность: по достижении "точки кипения" включается механизм саморегуляции. В полном соответствии с классическим определением революционной ситуации, когда верхи (разработчики) не могут (адекватно реагировать на критику), а низы (пользователи) не хотят (работать с продуктом, не отвечающим их чаяниям), находится энтузиаст, который начинает строительство нового продукта на базе старого. Так в разное время случилось с XFree86 (Кейт Паккард и Xserver), с gcc (EGCS и группа программистов) и многими другими проектами. То же самое в эти дни происходит с GNOME - некто Али Аккаагак объявил о старте GoneME.
Собственно, для Али всё началось с неудовлетворённости внешним видом последних версий GNOME. Желая исправить некоторые вещи, в частности, изменить порядок размещения кнопок на панели (да, такая вот мелочь), он написал несколько патчей - программных "добавок" к исходникам GNOME, которые приводят продукт к нужному виду. Но стоило ему поделиться идеей с публикой, и тут же нашлись желающие поправить в GNOME другие мелочи. К настоящему моменту составлен примерный план, который включает больше десяти пунктов: из GoneME будут исключены лишние зависимости (по словам Али, одна только не всем нужная библиотечка libglade-convert в 50 килобайт требует подключения 40 мегабайт (!) дополнительных библиотек), переработан пользовательский интерфейс, возвращена простота навигации и пр. Али знает, о чём говорит: его руками выполнены несколько Linux-разработок, соответствующих тем же принципам, что декларированы им для GoneME. Таков, в частности, крохотный веб-браузер Atlantis.
Будут ли изменения, выполненные участниками GoneME, однажды приняты официально в GNOME (так, как случилось это с упоминавшимся выше EGCS), или появится новый, самостоятельный десктоп, покажет время. Впрочем, это не так уж и важно. Важнее то, что свежие идеи воплощаются в коде: пользователи проприетарных продуктов о такой свободе могут только мечтать!