KDE: обсуждение выбора

Алексей Федорчук
4 октября 2005 г

Эта заметка размещается здесь в связи с обсуждением материала: Есть ли будущее у KDE? Исключительно для того, чтобы дать ретроспективу её содержанию.

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

Итак, наш десантник ответил:

Когда я прыгаю, у меня есть два выхода — или парашют раскроется, или не раскроется. Если раскроется — все хорошо, а если не раскроется, остаётся два выхода: или я останусь жив, или разобьюсь насмерть. Если я останусь жив — все хорошо, если разобьюсь — остаётся два выхода: или я попаду в рай, или я попаду в ад. Если я попаду в рай — все хорошо, а если я попаду в ад, остаётся два выхода: или черт меня не съест, или черт меня съест. Если черт меня не съест — все хорошо, а если черт меня съест — ну один-то выход у меня все равно остаётся!

Это объяснение каждый начинающий POSIX’ивист должен запомнить, как молитву: в любом затруднительном положении у него есть как минимум два варианта решения своей проблемы. И если ему покажется, что выхода нет — хоть один вариант решения проблемы по зрелом размышлении найдётся обязательно.

Так что проблема выбора графического интерфейса начинается с определения того, что же нужно пользователю — просто оконный менеджер или действительно интегрированная среда (graphic environment), называемая также просто десктопом (desktop). Различия между ними очевидны: первый класс программ предоставляет пользователю возможность управления окнами — их открытия, закрытия, масштабирования, сворачивания, перемещения, переключения между открытыми окнами. В качестве дополнительных (обычно присутствующих в оконном менеджере, но отнюдь не обязательных) возможностей могут иметь место: виртуальные рабочие столы и/или виртуальные разрешения оных, средства запуска приложений — иконки рабочего стола, треи, контекстные меню, строки минитерминала (то, что в KDE называется mini-cli), средства навигации по десктопам и окнам (типа панелей задач), различные дополнительные украшательства — фоны, обои и так далее. А также — более или менее автоматизированные средства для конфигурирования всего этого. Однако повторяю — все, что выходит за рамки управления окнами, является сугубо опциональным и может отсутствовать в оконном менеджере, а настройка его вполне может осуществляться только прямым редактированием конфигурационного файла.

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

Маленькое отступление. Среди старых (не по возрасту, а по стажу) пользователей POSIX-систем широко распространено мнение, что любые программы, выполненные в направлении Unix Way (или, резче, True Unix Way) должны настраиваться правкой конфигов в текстовом редакторе (а паче того, их созданием «с нуля»), все же остальное — от лукавого.

С этим трудно не согласиться. Да, истинный POSIX’ивист всегда должен иметь возможность вмешаться руками в процесс настройки. Однако если речь идет о правке многих десятков конфигов (а в случае с KDE, как станет ясным из дальнейшего, именно так и есть), не проще ли в общем и целом положиться на собственный конфигуратор, а к ручной правке прибегать только в критических ситуациях? Ибо если GUI не может сам себя настроить своими же GUI’евыми средствами — то какой он к чертям собачьим GUI?

И уж вообще нелепо, если с помощью GUI’евой конфигурялки можно настроить массу очень сложных параметров, а для какого-либо элементарного действия — например, изменения шрифта меню, — требуется ручное редактирование rc-файла…

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

А вот при выборе интегрированного десктопа перед пользователем два выхода. Первый — это строить такой десктоп самостоятельно, на основе более или менее простого оконного менеджера и тех приложений, которые он использует постоянно. Благо многие из оконных менеджеров позволяют превратить себя в полноценную интегрированную среду (хотя и весьма индивидуальную) если не легким движением руки, то несложным редактированием своих конфигов. Здесь показателен пример fluxbox’а — благодаря механизму закладок (tabs) совместно используемые приложения (например, терминал, текстовый редактор, браузер) легко объединяются в группы «по интересам». Так что если пользователь сделает такой выбор, все хорошо: остается только затратить должное количество времени на редактирование файла X-ресурсов, пользовательского ~/.xinitrc, конфигурационных файлов оконного менеджера и отдельных приложений. Если же это почему либо не устраивает — остается второй выход: использование уже готового десктопа.

Каковых также не так и мало. Из мне известных графических интерфейсов в этом качестве позиционируются CDE, XFce, GNOME и KDE. Однако первая — продукт коммерческий, и, насколько я знаю, не входит в состав ни одного дистрибутива Linux или свободной BSD-системы. А XFce, при всех своих несомненных (и многочисленных) достоинствах, в современном своем виде на роль интегрированной среды никак не тянет: это скорее наиболее развитый (по сравнению с прочими оконными менеджерами) конструктор для собственноручного построения таковой. Так что на самом деле и тут остается только два выхода: GNOME или KDE.

Если пользователь решится на первый выбор — для него (надеюсь) все будет хорошо. Однако здесь я ему не советчик. Потому что GNOME — один из немногих представителей класса графических интерфейсов, который мне активно не нравится. Я вполне разделяю чувства поклонников элегантности преемников NextStep (Afterstep, WindowMaker) или строгой простоты семейства *box’ов (Blackbox, Openbox, Fluxbox — к слову, ничуть не менее элегантных, а последний еще и уникально функционален). Тем паче, что сам долгое время был в их числе (а периодически пользуюсь WindowMaker или Fluxbox и по сей день). Я готов понять любителей IceWM, сочетающего в себе простоту настройки с ее гибкостью. Я осознаю несравненную настраиваемость FVWM2 — хотя и чисто теоретически. Мне, столь же платонически, очень нравятся идеи, заложенные в XFce, являющего близкий к идеальному баланс между минимализмом оконного менеджера и функциональностью полноценного десктопа. Наконец, я некоторых случая мне представляется вполне приемлемым предельный аскетизм FLVM, которому, приложив чуть-чуть усилий, можно еще и придать некоторую элегантность.

Но, разгрызи меня гром, за все свои попытки общения с GNOME я не обнаружил в нем никаких привлекательных (для себя) черт. Начать с того, что это — также не вполне интегрированная среда. Что, конечно, становится особенно понятным при сравнении с KDE, однако… Большая часть того, что интегрировано в GNOME и заслуживает всяческого использования — создавалась до него, вне него, и независимо от него. Тут вспоминаем GIMP — ведь именно для его разработки была придумана библиотека Gtk (что так и расшифровывается — GIMP Toolkit), послужившая базой для множества приложений, изначально с GNOME никак не связанных — от сугубо кросс-платформенного AbiWord до векторного графического редактора Sodipodi, автор которого озаботился столь же легкой интеграцией своего произведения в KDE.

Далее. Если KDE с каждой новой версией становится все быстрее, то GNOME — все задумчивее. Ну и наконец, просто идеология: разработчики GNOME все больше и больше тяготеют к воспроизведению особенностей Самой Великой ОС всех времен и народов. Известное высказывание, что последние версии GNOME представляют собой большую Windows, чем сама Windows, говорит само за себя.

Единственным основанием к использованию GNOME я вижу нежелание (или невозможность) плодить большое количество библиотек — так как без GIMP при мало-мальски существенной доле работы с графикой обойтись все равно не удастся, а он основан на той же библиотеке Gtk, что и GNOME. Хотя строго говоря, как раз наоборот — Gtk создавалась специально для GIMP, а ко GNOME ее прикрутили за отсутствием выбора, если исключить Qt. Впрочем (ИМХО) и тут XFce (основанная на той же Gtk) была бы более предпочтительна.

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

Так что пользователь должен сделать свой выбор, опираясь на субъективные впечатления и (квази) объективные оценки из источников. Однако, если выбор его будет не в пользу GNOME, то еще один выход у него найдется. И выход этот — использование KDE.

Итак, KDE — единственный (ИМХО) по настоящему интегрированный десктоп в мире Open Sources. Правда, в принадлежности последнему ему долгое время отказывали, так как базируется он на библиотеке Qt, имеющей (в том числе и) коммерческий статус. Однако ныне лицензионные споры относительно свободы/несвободы ее отшумели, и лицензия, под которой Qt распространяется для некоммерческого использования, признана вполне GPL-совместимой. Так что у всех адептов Open Sources «юридических» оснований не использовать KDE не осталось.

Другое дело, что многие не любят KDE за его масштабность, переходящую в монстроидальность. Действительно, эта среда предъявляет довольно высокие требования к аппаратуре, особенно — объему памяти: мало-мальски комфортная работа в современных версиях KDE возможна, начиная с RAM 128 Мбайт (лучше — больше, хотя, начиная с 512 Мбайт, разницы уже не чувствуется). Однако столь ли страшны такие требования для современных машин? Не мало места занимают компоненты этой среды и на винчестере: моя обычная установка KDE (вместе с обязательной библиотекой Qt) тянет почти на 500 Мбайт. Но и это при современных винчестерах не столь критично. Наконец, удовольствие от работы в KDE можно получить при разрешении экрана, начиная с 1024×768 и глубине цвета от 16 бит. Но ведь и это — не проблема для современных видеокарт и мониторов.

Можно видеть, что при мало-мальски современной аппаратуре системные требования KDE не выглядят чем-то сверхъестественным. Другое дело, что это — не лучший выбор для реанимации старого «железа». Однако и GNOME этой цели не послужит: его требования к памяти и дисковому пространству ничуть не ниже (если не выше). Так что пользователям безнадежно состарившихся (морально, не обязательно физически) машин придется обратиться в выбору между «легкими» оконными менеджерами.

Далее, среди пользователей бытует легенда о какой-то особо выдающейся «тормознутости» KDE. Однако этот вопрос тесно связан с предыдущим: резкое падение быстродействия в этой среде фиксируется при малом объеме памяти. Хотя и процессор желательно иметь помощнее Pentium-166, но любого из современных — хватит за глаза.

Впечатление некоторой «задумчивости» при общении с KDE может дать старт самой среды и первый в сеансе запуск какого-либо приложения. Действительно, поскольку любое KDE-приложение задействует множество библиотечных функций, запуск его по определению не может быть быстрым. Однако столь ли это критично? Ведь сама среда и постоянно используемые ее компоненты запускаются один раз в день (а на служебной машине, возможно, вообще загружены круглосуточно). А на тех программах, которые открываются и закрываются перманентно (например, терминальные окна), замедление не сказывается: повторный запуск любого KDE-приложения осуществляется на порядок быстрее, чем первый (оно и понятно — нужные билиотечные функции уже в памяти). Кроме того, в Linux, например, существует метод радикального ускорения старта KDE-приложений (и не только их) — так называемое предварительное связывание (prelinking). А в DragonFlyBSD аналогичная функция поддерживается на уровне ядра.

И вообще, если уж речь зашла о быстродействии — KDE в этом отношении ощутимо выигрывает у GNOME. Каковой вообще часто производит впечатление устройства, специально предназначенного для своппирования на диск. Хотя мои впечатления относятся к достаточно старым его версиям, но по отзывам — и нынешние стремительностью не поражают.

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

И последнее из широко распростран/нных предубеждений против KDE — его интерфейс с точки зрения визуального впечатления. Действительно, «умолчальный» вид KDE а) не являет собой предел эстетического совершенства, и б) вызывает неприятные для приверженцев True Unix GUI ассоциации с внешностью Самой Известной ОС. Однако а) с каждой новой версией KDE движется в сторону элегантности, и б) для него существует (и постоянно пополняется — см. http://www.kde-look.org/) большой набор тем, в том числе и весьма симпатичных. Ну а родимые пятна Windows-подобия легко выводятся несложными настроечными действиями.

Да, ещё, коль скоро я уж заговорил о настройках. В качестве надостатков KDE подчас отмечают сложность конфигурирования этой среды и неочевидность способа ручных настроек. Это действительно так. Однако взамен среда предлагает очень развитые средства интерактивного конфигурирования. А способы русной коррекции настроек и составят часть этого цикла заметок — я постараюсь показать, что не так уж страшен черт, как его малюют.

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

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

Конечно, всем этим богачеством современного пользователя удивить трудно — перечисленные средства в том или ином сочетании есть в любом развитом оконном менеджере. Однако, во-первых, лишь в редких из них можно найти полный их набор. А во-вторых, многие из означенных возможностей впервые появились именно в KDE — например, минитерминал с историей команд (т.н. mini-cli).

Однако KDE имеет и уникальные возможности. И здесь в первую голову стоит помянуть сквозное средство глобального конфигурирования среды обитания — Центр управления (KCC — KDE Control Center). Описанию способов настройки KDE будет посвящена изрядная часть этих заметок. Пока же отмечу только, что с помощью KCC конфигурируется 99 процентов того, что вообще может возникнуть желание сконфигурировать у самого привередливого пользователя. Тот же оставшийся процент настроек, не поддающихся средствам KCC, легко изменяется редактированием конфигов.

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

Изобилие штатных приложений — вторая особенность KDE: не покидая этой среды, можно найти и прекрасный эмулятор терминала, и полнофункциональный текстовый редактор, и файловый менеджер с браузером, и почтовый и ftp-клиенты, и множество графических и мультимедийных приложений, не говоря уже о мощном (и, что характерно, пригодном к использованию) наборе ощесистемных утилит и средств разработки программ и web-материалов. «А чего не хватит в доме — сколько хочешь в гастрономе»: число программ от сторонних разработчиков, ориентированных на работу в среде KDE, наверное, учету не поддается (см. http://kde-apps.org/), и охватывает абсолютно все области, для которых только существуют разработки Open Sources вообще. Кроме того, ряд программ, специфических библиотек не использующие, имеют front end’ы (в просторечии — «морды»), основанные на библиотечных элементахQt/KDE — здесь можно вспомнить не только KDE-ипостась mplaeyr’а, известного, но и сборки на базе KDE офисного пакета OpenOffice и недавно появившуюся возможность прикрутить KDE’шную морду к движку Gekko — базе проприетарного Netscape, свободных Mozilla и Galeon. Все разработанные для KDE программы, включая front end’ы, имеют стандартизированный интерфейс, который, как уже было сказано, может быть настроен глобально, вместе с параметрами самой среды (что не исключает индивидуального конфигурирования — но и об этом я уже упоминал).

В целом KDE выглядит даже перегруженным штатными приложениями — и это нередко отмечается как очередной недостаток данной среды. Да уж, что есть, то есть: кое-какие программы редко кем используются (ввиду наличия более продвинутых аналогов), иные же явно дублируют друг друга, и подчас дублирующие варианта, мягко говоря, далеки от совершенства — чтобы в этом убедиться, достаточно просмотреть пункты Графика и Мультимедиа «умолчального» K-меню. Однако, во-первых, вовсе не все компоненты полного набора KDE обязательны к установке, и нет препятствий к запуску из этой среды программ, основанных на других библиотеках. А главное, многие программы штатного комплекта принадлежат к числу лучших в своем классе (для примера — текстовый редактор Kate, звонилка Kppp, почтовый клиент KMail) или просто держат пальму первенства в своей области (как тут не вспомнить konqueror — лучший файловый менеджер всех времен и народов, о чем со временем будет отдельный рассказ).

Из первых двух особенностей KDE вытекает третья, и главная — ее самодостаточность. Которая, собственно, и позволяет назвать эту среду по настоящему интегрированной. Подавляющее большинство своих задач пользователь может выполнить, не покидая KDE-десктопа — вплоть до интерактивного редактирования общесистемных скриптов инициализации (что, впрочем, не значит, что это нужно делать — но возможность этого вы имеет). А в грядущих версиях, по агентурным данным, KDE будет способно обходиться даже без Иксов — правда, подробности в настоящее время пока не известны, и не ясно, как это будет выглядеть: то ли в KDE будет встроен собственный X-сервер, то ли система обретет возможность воспроизведения графики через frame buffer. Впрочем, даже в современном виде KDE просматривается тенденция обходиться без обще-Иксовых ресурсов — например, в нем имеются собственные системы управления шрифтами и клавиатурными раскладками.

И четвертое выгодное качество KDE — это стабильно поступательное, уже на протяжении многих лет, развитие. Я имел удовольствие наблюдать эту систему с самых первых версий (где-то с 1998 г.) и свидетельствую: от ветки к ветки она не только обрастала новыми функциями (это — дело обычное), но становилась все стабильнее и (sic!) быстрее. Совершенствуя при том свой интерфейс визуально — а эстетический момент отнюдь не последний в деле выбора среды обитания, по крайней мере для меня.

Конечно, KDE еще не достигла состояния идеального десктопа, и не свободна от некоторых недостатков. Однако выше я попытался показать, что они не критичны, и более-менее легко преодолимы. Что позволяет рассматривать эту систему в качестве оптимального выбора при необходимости именно в интегрированной среде обитания.