О блоге

Все новые материалы размещаются на Блогосайте alv.me. Старые - в процессе переноса.

05.08.2008

KDE vs GNOME: еще одно размышление на вечную тему

Citkit, 15 августа 2006 г

Все пользователи POSIX-совместимых систем делятся на две категории - тех, кто использует интегрированные графические среды (так называемые десктопы) и тех, кто их не использует. Есть, конечно, еще и стойкие прFиверженцы консоли, не признающие графического интерфейса вообще, но с каждым годом (и ростом числа новообращенных POSIX'ивистов) относительное их число все более сокращается.

С теми, кто интегрированные среды не использует, все ясно: в их распоряжении изобилие менеджеров окон, имя которому - легион. А вот у приверженцев интеграции выбор совсем невелик. И до недавнего времени он вообще сводился к альтернативе, вынесенной в заголовок. Правда, можно ожидать, что скоро к KDE и GNOME добавится XFce, обретающий постепенно качества истинно интегрированного десктопа, однако пока он до этого звания еще не дотягивает.

Полноты картины ради отмечу, что есть еще несколько программ, претендующих на звание интегрированной среды - о них можно прочитать здесь. Однако это либо а) самосборные среды на базе менеджера окон и разнородных приложений (FVWM-Crystal), либо б) сугубо экспериментальные разработки (3D-Desktop или UDE), либо в) либо "недо-десктопы", крутящиеся вокруг одно приложения (как ROX - в сущности, просто файловый менеджер, хотя и удобный).

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

Интегрированные среды могут иметь собственные менеджеры окон, как KDE и XFce. Но это для них как раз не обязательный компонент - в частности, GNOME собственного WM не содержит, а может пользоваться возможностями ряда совместимых оконных менеджеров. Главными же компонентами десктопов оказываются а) средства собственного конфигурирования и б) базовый набор приложений, объединяемых сквозным интерфейсом. Единство интерфейса обеспечивается использованием определенных наборов библиотек, которые, таким образом, оказываются неотъемлемой частью десктопа.

Идея интегрированных сред пришла в мир Open Source из проприетарных Unix-систем, где с давних пор развивался декстоп под названием CDE, основанный на библиотеке Motif. Ни сама CDE, ни ее базовая библиотека не были свободными программами, и потому их использование в Linux или BSD оказывалось невозможным. И потому во второй половине 90-х годов начали развиваться проекты по созданию свободных интегрированных сред.

И тут дело в первую очередь упиралось в разработки собственных библиотек - единственная полнофункциональная графическая библиотека, Motif, как я уже говорил, в те годы не была свободной. А ее свободный клон, Lesstif, использовавшийся во многих менеджерах окон, по своей функциональности сильно не дотягивал до прототипа. И тут помощь пришла со стороны: в 1996 году началась разработка растрового графического редактора Gimp, под который была создана библиотека Gtk (GIMP ToolKit). Именно она и легла в основу первого свободного десктопа - GNOME, который довольно быстро стал рабочей средой по умолчанию в ряде популярных дистрибутивов (в частности, Red Hat).

Вторым путем к созданию интегрированной среды - оказалась возможность использования кросс-платформенной библиотеки Qt, созданной норвежской фирмой Trolltech (на ней основывалась и основывается известный барузер Opera). Сама по себе эта библиотека не была свободной, но ее лицензия допускала бесплатное использование в некоммерческих проектах, в том числе и проектах Open Source. Она-то и легла в основу второй интегрированной среды - KDE. Правда, вследствие коммерческого характера базовой библиотеки отношение к ней было сначала очень сдержанное. И первым дистрибутивом, в который KDE была включена как десктоп по умолчанию, стал Mandrake (1998 год).

Дальнейшее развитие десктопов шло в разных направлениях. Хотя, применительно к GNOME, говорить о каком-либо определенном направлении достаточно сложно. Первоначальный замысел его создателей, насколько я его понимаю, был - создать среду, не похожую ни на что. Этой цели было подчинено все - вплоть до оконного менеджера по умолчанию, каковым выступал Enlightenment, невероятно эффектный, но, по крайней мере в те годы, не очень удобный в настройке и использовании.

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

Развитие же KDE было скучным, плоским, даже линейным. Версии первой его ветки, которые мне довелось увидеть в 1998-1999 годах, не поражали воображение ни дизайнерскими изысками, ни какими-то сверхъестественными фичами. Навевая ассоциации с унылым индустриальным пейзажем, видным из окон микрорайона современного мегаполиса. Но они отличались одной особенностью - все в них работало, работало стабильно и, по сравнению с GNOME, относительно быстро.

Вторая ветка KDE привнесла в эту среду оригинальность с точки зрения функционала: именно в ней убогий IE-подобный kfmanager сменяется покорителем файловых пространств konqueror'ом, а место удручающих kedit и kwrite занял kate. Впрочем, во всей красе они развернулись только в третьей ветке, каковая и является на данный момент текущей. И которая подарила миру десктопов функции, ранее обеспечивавшиеся только X-серверами - в частности, управление шрифтами и клавиатурой. Кстати, и с эстетической стороны KDE претерпело разительные изменения от первой до третьей ветки. Правда, следы "индустриального" происхождения можно видеть в ней и по сию пору.

С первых же дней сосуществования GNOME и KDE между приверженцами этих сред развернулись чуть ли не религиозные войны, усугубившиеся идеологическими соображениями. К настоящему времени идеологическая составляющая этого противостояния оказалась исчерпанной. Библиотека Qt, кроме сугубо коммерческой лицензии, распространяется также (для некоммерческого использования) и под открытой лицензией QPL, совместимость которой с GPL не ставится под сомнение даже самыми строгими пуристами от свободного софта. Однако технологическая сторона противостояния GNOME vs KDE не только не сгладилась, но даже несколько обострилась. Правда, в основном со стороны их пользователей. Майнтайнеры универсальных дистрибутивов ныне включают оба десктопа в штатные свои комплекты, как правило, предоставляя выбор между ними на стадии инсталляции. А разработчики сторонних программ, вне зависимости от используемых базовых библиотек, все чаще предусматривают интеграцию своих продуктов в обе среды.

Эта заметка - еще один вклад в священную войну десктопов. Сразу оговорюсь - в ней я даже не пытался быть беспристрастным. Потому как использую KDE с самых первых ее версий (тех, что были в Mandrake 5.1 и 6.0/RE), правда, с перерывами, вызванными увлечением WindowMaker и всяческими box'ами. И полагаю эту среду вполне подходящей как для начинающих пользователей, так и для тех, кому надоели работы по сборке собственного десктопа.

Что же до GNOME... начиная с того же 1998-го, неоднократно ставил его, пытаясь проникнуться величием этого десктопа - и каждый раз безуспешно. И даже недавнее обсуждение этого вопроса на POSIX.ru не изменило моего мнения. Так что можете считать эту заметку апологией KDE. Буду рад, если она подвигнет кого-либо на сочинение, продемонстрирующее, наконец, несравненные достоинства GNOME и, особенно, его приложений.

Итак, по каким критериям можно сравнивать десктопы? Во-первых, по удобству выполнения элементарных действий - запуска программ, манипуляции окнами и запущенным приложениями, и так далее.

Во-вторых, по богатству и удобству средств собственного конфигурирования.

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

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

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

Так что любые сравнительные оценки удобства использования KDE и Gnome носят абсолютно субъективный характер. Так что позволю себе и я высказать свое сугубо субъективное мнение: KDE существенно удобнее в использовании, чем Gnome. Правда, не в умолчальном своем состоянии, а после некоторых настроек, как то (рис. 1):

  1. перенесения главной панели в верхнюю часть экрана (для сокращения амплитуды перемещения мыши между нею и меню запущенной программы)
  2. уменьшения размера пиктограмм;
  3. сокращения длины панели до 90% от ширины экрана (зачем скоро станет ясным);
  4. выноса на панель наиболее часто используемых приложений и командной строки минитерминала;
  5. ликвидации сакраментальной кнопки K - запуск приложений осуществляется из контекстного меню рабочего стола по щелчку правой кнопкой мыши;
  6. увеличения количества рабочих столов по потребностям.

Рис. 1. Вид рабочего стола KDE, приведенного в соответствие с изложенным выше

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

Таким образом, для полного комфорта работы в KDE (подозреваю, что и в Gnome тоже) необходимо выполнить кое-какие настроечные действия. И тут мы плавно переходим ко второму критерию сравнения десктопов - собственным средствам конфигурирования.

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

В упрек KDE можно поставить разбросанность настроек в KCC (KDE Control Ctenter, рис.2) и некоторую нелогичность их группировки. Так, нелегко догадаться, что настройка "горячих клавиш", например, для переключения между рабочими столами, скрывается за пиктограммой Региональные и специальные возможности. Однако, если освоиться внутри системы конфигурирования KDE, то с ее помощью можно настроить абсолютно все. Конечно, времени это займет несколько больше, чем аналогичные манипуляции Gnome. Но временные затраты компенсируются много большей гибкостью настроек. Да и заниматься этим делом приходится лишь однажды - далее потребуются лишь мелкие коррективы при обновлении версий.

Рис. 2. KCC - центр управления KDE; на рисунке приведен несколько модернизированный его вариант, принятый в дистрибутиве Kubuntu.

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

  • терминальная программа;
  • файловый менеджер;
  • текстовый редактор;
  • почтовая программа;
  • браузер;
  • средство резервного копирования;
  • офисный пакет; точнее, ворд-процессор, как средство, по выражению Владимира Игнатова, прогнуться под испорченный мир.

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

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

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

Итак, переходим к сравнению, начав, согласно приведенному выше списку, с терминальной программы. Таковыми в KDE и Gnome выступают konsole и Gnome terminal, соответственно. Набор базовых возможностей у них примерно одинаков: поддерживаются закладки (Tabs), имитирующие множество терминальных окон "в одном флаконе", "горячие клавиши" для переключения между ними, настройку шрифта, цветовой схемы и типа терминала, смену кодировок вывода "на лету" (незаменимая возможность для поиска текстовых фрагментов в файлах с разными исторически кодировками). Однако незаменимая функция konsole - возможность сохранения так называемых профилей сеансов, позволяющая индивидуально задать свойства каждой закладки и сохранить их для дальнейшего использования.

Файловые менеджеры из KDE и Gnome - Konqueror и Nautilus, соответственно, - сравнивать напрямую не очень легко. Хотя бы потому, что первый выступает также и как браузер, тогда как Nautilus - только и исключительно файловый менеджер, внешне подобный MS Explorer. Однако даже чисто в ипостаси файлового менеджера Konqueror демонстрирует массу уникальных свойств. Во-первых, внешний его вид может быть настроен буквально как угодно - от типично древовидного представления файловой иерархии до двухпанельного вида, подобного незабвенному командиру Нортону и его многочисленным детям.

Главная же особенность Konqueror'а - интеграция файлового менеджера с терминальным окном, представляющим собой ту же самую konsole, свойства которой могут быть настроены независимо. И действия в которой можно синхронизировать с окнами визуального представления файловой системы (рис. 3).

Рис. 3. Konqueror с интегрированным терминальным окном

Стандартным текстовым редактором в KDE выступает kate (при унаследованном от прошлых версий kwrite), в Gnome - Gedit. Здесь все просто: второй супротив первого - что плотник супротив столяра, это программы просто разной весовой категории. Gedit - простенький редактор с минимумом обычных ныне для функций, включающих контекстный поиск и замену, подсветку синтаксиса. Однако лишенный таких развитых средств, как поиск с использованием регулярных выражений и управление проектами, а также возможности простого создания макросов.

С другой стороны, Kate обладает всеми атрибутами редактора "тяжелой" весовой категории, в том числе поддержкой вкладок (Tabs) и меток в тексте, очень развитыми средствами управления проектами и поиска/замены. Ему также свойственна особенность, уникальная, насколько мне известно, среди текстовых редакторов - интеграция с файловым навигатором и терминальным окном, функции которого выполняет все та же вездесущая konsole. Конечно, Kate обладает одним существенным и, похоже, неискоренимым недостатком: отсутствием простых средств для создания пользовательских макросов (пободных таковым в NEdit, например). Но ведь его нет и в Gedit'е...

В отношении почтовых программ сравнивать KDE и Gnome несколько сложно. Потому что функционально Evolution, обеспечивающий приеми отправку почты в последнем, далеко выходит за рамки почтового клиента, являясь также персональным помощником (PIM) и обеспечивая интеграцию с Microsoft Exchange. Однако, если в этих функциях нет необходимости - можно признать, что Kmail из KDE с обязанностями почтового клиента справляется отлично. А PIM в KDE есть и отдельный.

Теперь браузер. В KDE с ним все просто - эту роль исполняет Konqueror в соответствующей ипостаси. Его относят обычно к категории легких, или "неполноценных" барузеров. Что, однако, было верно только для второй ветки. В ветке же третьей Konqueror-браузер, сохранив легкость, превратился в полноценное средство web-серфинга. Фирменная его особенность - очень развитые и удобные средства управления закладками, ничуть не уступающие таковым из Opera, породившей идею Tab'ов. К недостаткам Konqueror'а можно отнести неправильное воспроизведение многих сайтов. Что ж, это - плата за нежелание потсупиться принципами в отношении следования спецификациям W3C (Konqueror - один из самых жестких браузеров в этом отношении). Так что недостаток ли это - вопрос спорный. По меткому замечанию Сергея Голубева, он по крайней мере позволяет сразу выявлять фирмы, сэкономившие на зарплате web-мастера.

В Gnome с браузером посложнее. Насколько я слышал, на эту штатную единицу там предназначен Galeon. Слышть слышал, а вот видеть не приходилось. Потому что в дистрибутивах, использующих Gnome в качестве декстопа по умолчанию (например, Ubuntu) никаких следов Galeon'а в исходной установке не обнаруживается. Стыдятся его майнтайнеры, что ли? Неужто Galeon так плох? И в результате в большинстве случаев дежурным браузером оказывается FireFox. Хорошая, конечно, программа (хотя мне и не нравится), но какое отношение она имеет к Gnome?

Напоминать о необходимости резервного копирования, думаю, не нужно - она очевидна всем. Столь же очевидно, что чем удобнее инструмент для выполнения этой операции (а ныне она, фактически, сводится к записи на CD/DVD), тем с большей регулярность пользователь будет ее выполнять. Конечно, в его распоряжении консольная пара mkisofs и cdrecord, и при массовой записи дисков с ними не сравнится никто. Однако единичные диски часто проще записать с помощью графических front-end'ов. И такой в KDE имеется (хотя и не ходит пока в набор основных пакетов) - программа k3b, простая в освоении и использовании, имеющая все необходимые функции. Ничего аналогичного Gnome, насколько мне известно, предложить не может. Разве что Gaveman - очень простую в обращении оболочку, вроде бы умеющую делать все, что обычно нужно (по крайней мере, мне). Но и это - строго говоря, не Gnome, а просто Gtk-приложение...

И, наконец, ворд-процессор, представленный KWord в KDE и AbiWord в Gnome, составные части KOffice и Gnome Office, соответственно. Сразу скажу, что для всамделишних офисных задач ни тот, ни другой не годятся - тут уже без OpenOffice.org не обойтись. В частности, оба они не умеют работать с мультиверсионными документами MS Word. Хотя KWord делает это, если так можно выразиться, менее плохо: он хотя бы помещает версионные вставки в общий текст, и хотя никак их не помечает, при крайней необходимости разобраться можно. Тогда как AbiWord их просто игнорирует.

А вот в чем KOffice оказывается вне конкуренции - это в экспорте в формат HTML. Будучи единственным из известных мне ворд-процессоров, позволяющим получить на выходе web-документ без всяких "паразитных" тэгов. Для чего только и нужно, что отметить в диалоге экспорта соответствующие опции. Правда, AbiWord тоже предлагает аналогичный диалог, но результаты его хладнокровно игнорирует: что бы вы там ни указали, результатом будет все тот же перегруженный "отсебятиной" файл (хотя и не столь страшный, как при экспорте из MS Word и даже OpenOffice.org).

Раз уж речь зашла об web-страницах, не могу не сказать пары слов об инструментах, в отличие от ворд-процессоров, специально предназначенных для создания оных. Тем более, что пакет kdewebdev входит в штатное расписание KDE. А включает он редактор html-кода Quanta Plus, среди функций которого - средства управления проектом, возможность закачки изменений на сервер и прямой онлайновой правки web-страниц, визуальное представление и редактирование кода, и многое другое. А чего не поддерживается непосредственно редактором - обеспечивается дополнительными компонентами пакета, обеспечивающими построение Image Maps, проверку целостности ссылок, как внутренних, так и внешних, глобальную замену текста в пределах проекта. Кстати, для Quanta Plus характерна та же интеграция со средствами файловой навигации и терминальным окном, что и для Kate. В противовес этому Gnome может вдвинуть два html-редактора - Bluefish и Screem. Правда, ни тот, ни другой не входят в уполчальный комплекта, а суммарный их функционал дай Бог потянет на половину от одной Quanta.

О сравнении мультимедийных и графических программ говорить особенно не буду: первое - очень субъективно, в отношении же графики сравнивать особо нечего. Ибо векторная графика в обеих средах находится в зачаточном состоянии, в графике растровой Gimp конкуренции себе не имеет. Растровый редактор из KDE, Krita, представляет из себя еще весьма сырую и неустойчивую консрукцию. Правда, Gimp тоже не составляющая Gnome, скорее уж, Gnome - это интерфейс для запуска Gimp'а.

Пора подвидить итог. Не боюсь показаться пристрастным, но, с моей точки зрения, он таков:

  • KDE - это целостная конструкция, все составляющие которой развиваются во взаимосвязи;
  • Gnome - эклектическая мозаика различных по происхождению программ, причесанных под один интерфейс лишь благодаря общим библиотекам;
  • среди приложений, составляющих ядро KDE, ряд программ, безусловно, принадлежит к числу лучших в своем классе, а некоторые - просто уникальны по своим возможностям;
  • все Gnome-приложения, составляющие неотъемлемую часть этого десктопа, в лучшем случае имеют средний рейтинг в своих категориях;
  • все действительно первоклассные программы, включаемые в состав среды Gnome, не являются неотъемлемыми его компонентами.

При обсуждении KDE и Gnome обычно большое внимание уделяется их сравнительному быстродействию. Я об этом скажу лишь вкратце. До недавнего времени KDE по визуальном быстродействию однозначно выигрывала - Gnome подчас казался мне средой, специально предназначенной для того, чтобы swap-раздел не простаивал без дела. Ныне положение изменилось, и по такому параметру, как скорость собственной загрузки и запуска приложений, Gnome безусловно (и ощутимо) вырвался вперед. Но: скорость запуска отнюдь не равна быстроте выполнения реальных операций. Как скажется различие сред и лежащих в их основе библиотек на, скажем, создании огромного архива или образа DVD-диска? Подозреваю, никак: на современных машинах разница вряд ли будет заметна, а для старых и слабых машин ни KDE, ни Gnome не предназначены; хотя, может быть, последний не предназначен несколько менее...

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