KDE 4.0 - обзор


Новые кеды для гламурного юниксоида

В Европе самой популярной рабочей средой для *nix-систем был и остается KDE. Его любят за простоту использования, легкость освоения, насыщенность приложениями практически для всех повседневных задач, критикуют за наличие большого количества параметров для настройки, многофункциональность приложений, предъявляющих повышенные требования к системным ресурсам. Год назад мы пили пиво, празднуя десятилетие проекта, сегодня отмечаем уже четвертый релиз KDE. Пора с ним познакомиться, тем более что версия 4.0 была в репозитариях большинства дистрибутивов еще с альфы.
Немного о проекте

Датой рождения проекта принято считать 14 октября 1996 года. Именно в этот день в Google groups появилось сообщение студента Тюбингенского университета Маттиаса Эттриха о предложении начать разработку нового API для Kool Desktop Environment (KDE) с использованием библиотек Qt. Обилие программ, практически не отличающихся функционально, но зато сильно отличающихся внешне и поведенчески, только отпугивало пользователей от *nix-систем в целом и от Linux в частности. Поэтому основной идеей нового проекта было создание такой среды, в которой все приложения выглядели бы и вели себя одинаково. Пользователь не должен был видеть отличия в поведении программ. Предполагалось, что новая среда будет интуитивно понятна и проста в эксплуатации.

И, кстати, по прошествии некоторого времени можно смело заявить, что реализовать задуманное разработчикам удалось. Да, многим не нравится, что Konqueror - это уже не столько файловый менеджер, сколько «комбайн», понимающий многие форматы, и хотя он явно тяжелее гномьего Наутилуса, зато пользователь не задумывается: что, как и где. Многие эксперименты показывают, что человек, до этого работавший в Windows, осваивается в KDE без особых проблем.

Несмотря на споры по поводу необходимости в еще одном проекте, инициатива была поддержана, и на встрече разработчиков в августе 1997 года KDE-ONE в Арнсберге (Германия) присутствовало уже 15 участников. К этому времени среда насчитывала достаточное количество приложений. В октябре этого же года была выпущена Beta 1, а через месяц - Beta 2. Первая версия KDE 1.0 увидела свет в июле 1998 года.

С самого начала в качестве инструмента для разработки пользовательского интерфейса были выбраны библиотеки Qt. Но на тот момент Qt не использовал свободную лицензию, поэтому постоянно возникали споры о том, что свободная среда и входящие в ее состав программы не могут создаваться с применением закрытых инструментов. Причем на стороне критиков выступал и Линус Торвальдс. Все это сильно мешало команде разработчиков и отнюдь не способствовало популярности KDE. Кстати, это также послужило причиной появления еще двух проектов под эгидой GNU: Gnome и Harmony. Как ты знаешь, в первом вообще отказались от Qt, а задача Harmony заключалась в создании библиотек, совместимых по API с Qt, но под свободной лицензией. В апреле 1997 года между Trolltech, которая имела все права на Qt, и KDE было подписано соглашение по вопросам лицензирования, отраженное в документе «KDE Free Qt Foundation». В ноябре 1998 года инструментарий Qt стал использовать свободную лицензию — Open Source Q Public License (QPL), а в сентябре 2000 года Trolltech выпустила *nix-версию библиотек Qt под лицензией GNU GPL. С того времени все споры постепенно утихли, а продолжение работ над Harmony потеряло смысл.

Разработчики такое событие отметили выходом версии KDE 2.0 (октябрь 2000 года), хотя триумфальное шествие этой среды на десктопы началось с версии 2.1 (февраль 2001 года), в которой были учтены многочисленные пожелания пользователей.

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

Начиная с версии 4.0, библиотеки Qt доступны как свободное ПО не только для *nix-, но и для Mac-, Windows- и встроенных систем. Библиотеки, приложения и рабочая среда KDE больше не привязаны к одной платформе. Конечно, большинство приложений KWin, KDM и многие другие требуют X-Window, но с портированием в Винду Konqueror и Amarok проблем стало меньше. Поэтому, кто знает, может, через некоторое время мы будем работать в Vista, слушая музыку в Amarok вместо Windows Media Player, а в интернет выходить, используя завоевателя вместо исследователя :).

В настоящее время проект поддерживается многочисленными добровольцами по всему миру. Кроме того, привлекают своих программистов для участия в проекте или помогают финансово такие компании, как Mandriva, Novell, Trolltech, Dell, IBM. Основатель Canonical Ltd. и создатель Linux-дистрибутива Ubuntu Марк Шаттлворт стал одним из первых покровителей KDE, оказавшим проекту весомую спонсорскую помощь.
Совместимость версий

Мажорные релизы 1.x, 2.x и т.д. между собой, как правило, несовместимы по API, однако приложение внутри релиза (например, для 3.0) с большой долей вероятности будет работать и с более новой версией (до 3.5.x). Отличия в API между второй и третьей версиями были незначительны, и приложения легко переписывались под новый релиз. Программы, сделанные для Qt 3, не будут работать в четвертой версии, компиляция закончится неудачей. Поэтому при переносе кода придется немного потрудиться. Информация по портированию сорцов с Qt 3 на четрертую версию библиотек приведена в документе «Porting to Qt 4» (doc.trolltech.com/4.1/porting4.html). В нем ты найдешь отличный обзор главных изменений в Qt 4 вместе со списком изменений в классах и функциях.

Изначально нумерация версий KDE привязывалась к номеру библиотек Qt. После того как стали доступны Qt 4.x, разработчикам ничего не оставалось, как заняться переносом среды под новую версию. Выясним, что нового появилось в этой среде.
Новые библиотеки и особенности сборки

В качестве основы для KDE 4.0 взяты библиотеки Qt 4.3. Основные возможности, которые они предоставляют, перечислены на странице doc.trolltech.com/4.3/qt4-3-intro.html. В первую очередь хочется отметить улучшение системы, отвечающей за вывод графики. Движок, поддерживающий OpenGL (и Direct3D для Windows-версии), позволяет использовать все преимущества современных графических карт. А переложив ответственность за вывод графики с использованием возможностей OpenGL на ту часть видеокарты, которая отвечает за 3D, можно ускорить прорисовку двухмерных элементов рабочего стола, открыв тем самым безграничные возможности по его обустройству. Новый движок вовсю юзает сглаживание, регулируя возможности anti-aliasing. Можно даже выбирать между качеством и производительностью. С введением класса QsvgGenerator появилась улучшенная поддержка формата SVG (Scalable Vector Graphics). Результат рендеринга, производимый программами с интерфейсом Qt, может быть сохранен в этот формат. Класс QsvgGenerator используется вместе с имеющимися QSvgWidget и QsvgRenderer, обеспечивая полную поддержку векторной графики.

Основные классы, выводящие окно программы, поддерживают многие функции, доступные в Visual Studio или KDevelop. Например, доковые виджеты, благодаря новому API QDockWidget, теперь можно пристегнуть в любое удобное место. А значит, внешний вид можно будет изменять как тебе вздумается - ограничений минимум. К тому же значительно расширена поддержка различных эффектов анимации. Новый класс QWindowsVistaStyle обеспечивает приложениям Qt внешний вид и поведение, присущее приложениям в Windows Vista. Для создания разного рода мастеров, позволяющих пользователю настроить те или иные параметры, следует использовать класс QWizard. Доступны четыре стиля оформления мастера: ClassicStyle, ModernStyle, MacStyle и AeroStyle (только в Vista).

Введен модуль QtScript, обеспечивающий поддержку языка ECMAScript, основанного на стандарте ECMA-262 (его спецификацию можно посмотреть на прилагаемом к журналу диске). Этот язык широко используется в вебе. Например, известные JavaScript, JScript и ActionScript являются как раз расширениями ECMA-262, который призван устранить проблемы с совместимостью. Ведь сегодня написать универсальный скрипт, совместимый с любым браузером, довольно трудно.

Но самым значительным изменением, произошедшим в Qt, является модульность. Другими словами, стало можно написать приложение для терминала, не связываясь с более высокими классами, отвечающими за графические элементы. Это разделение внутренних классов также перешло в полностью переработанные kdelibs, поэтому многие операции теперь возможно производить в командной строке.

Имена значков в KDE4 и соответствующих компонентов kdelibs основаны на спецификации, предложенной freedesktop.org (также смотри на диске). Портировать имена значков из проекта KDE3 на принятые в KDE4 можно при помощи специального скрипта adapt-to-icon-spec.py. Вместо DCOP, используемого в KDE3, в KDE4 для взаимодействия программ друг с другом используется D-Bus. Тема перехода DCOP -> D-Bus горячо обсуждается на многочисленных форумах.

Со времени основания проекта KDE для сборки использовался autotools. Такая система была сложна для новичков и требовала некоторого времени на освоение. Теперь это в прошлом, в KDE 4.0 вместо autotools применяется CMake (www.cmake.org), который на порядок проще в использовании. К тому же CMake может генерировать build-файлы, понятные компиляторам *nix, KDevelop и коммерческим решениям вроде MS Visual C++, что снимает проблему мобильности.
Подсистемы мультимедиа и коммуникации

Начиная с KDE 2.0, в качестве мультимедийной архитектуры использовался aRts (analog Real time synthesizer - аналоговый синтезатор реального времени, www.arts-project.org). Для того времени это был действительно прорыв, так как aRts позволял воспроизводить одновременно несколько аудиопотоков, как на локальном компьютере, так и по сети. Но постепенно aRts, ориентированный только на работу с аудио, перестал удовлетворять всем требованиям. Кроме того, главный разработчик aRts, Стефан Вестерфельд, перешел в KDE и начал работу в другом направлении.

В последних релизах KDE 3.x для работы с мультимедиа уже использовались сторонние библиотеки: libxine, Gstreamer, mplayer. Причем различные приложения из состава KDE могли задействовать разные варианты, что создавало проблемы. Эти и многие другие вопросы привели к тому, что в KDE 4.0 решили перейти на совершенно новый API для работы с мультимедиа, получивший название Photon (phonon.kde.org). Функционально Photon - это еще один слой, находящийся выше библиотек нижнего уровня libxine и Gstreamer. Это обеспечивает доступ к видео и аудио любому приложению без проблем совместимости и возможного изменения в мультимедиа-библиотеках KDE. Новый слой позволяет упростить перенос KDE на другие системы, разработчикам не нужно учитывать особенности всех систем. Чтобы проиграть файл, требуется всего четыре строки кода для Photon и 30 при использовании aRts. Приложению достаточно указать на необходимость получения информации, а все остальное - это уже забота Фотона. Что будет использовано в качестве выходного буфера - Xine, Quicktime или DirectX, теперь уже не имеет значения. Для настольной системы с ее всевозможными конфигурациями это то, что доктор прописал.

Чтобы упростить жизнь пользователя, Фотон обещают научить автоматически переключать устройства. Например, при подключении гарнитуры для работы с VoIP, при поступлении звонка, звуковая карта будет переключаться на вывод звука разговора через новое устройство, а музыка по-прежнему будет играть в колонках. Trolltech собирается добавить Photon в следующую версию библиотек Qt 4.4.

Новым фреймворком, отвечающим за коммуникацию, является Decibel (decibel.kde.org), задача которого - интеграция в десктоп всех современных протоколов связи. Клиентская база всех протоколов (ICQ, Skype, Jabber, email, VoIP и другие) собирается в одном месте, пользователь лишь должен выбрать нужный контакт, а как установить с ним связь - это уже забота Децибела. Правда, на полную катушку этот проект обещают запустить только к версии 4.1.
Рабочее окружение пользователя

Все, о чем говорилось ранее, скрыто под капотом. Теперь о том, что снаружи. Ведь новичка принято встречать по одежке.

Новой рабочей средой для KDE 4.0 является Plasma (www.plasma.kde.org), объединившая в единое приложение рабочий стол, панель KDE и виджеты SuperKaramba (в том числе и написанные для версии 3.x). Кроме того, работают виджеты Apple Dashboard, и в будущем планируется поддержка плагинов браузера Opera. Для разработчиков доступно единое API, позволяющее создавать плазмоиды - небольшие приложения или виджеты для новой среды, которые с легкостью интегрируются с рабочим столом или панелью. Работа с данными в Plasma и их визуализация разделены, что открывает простор для творчества и упрощает программирование. Фреймворком для плазмоидов да и для среды KDE 4.0 в целом служит Kross. Последний не является еще одним языком, его задача гораздо прозаичнее – упростить создание новых приложений для этой среды. Теперь можно писать виджеты на С++, Python, Ruby, JavaScript и Falcon. При необходимости модульность Kross позволяет добавить поддержку любого другого языка. Кроме Plasma Kross в настоящее время поддерживает и другие приложения: KWord, KSpread, Krita, Kexi SuperKaramba. Думается, этот список будет постепенно расширяться.

Но разработчики считают, что одной Плазмы маловато, чтобы удивить юзера. Долой старые значки, напоминающие карикатуру, теперь рулит более реалистичная векторная графика, предоставляемая новой темой оформления Oxygen (oxygen-icons.org), которая использована по умолчанию в KDE 4.0. Основные приложения уже используют новые значки. Все, куда не кинь взгляд, теперь выглядит по-новому: меню, курсоры, новая графика в приложениях. Разработки Oxygen поддерживают стандарты и спецификации Standard Icon Naming Specification и Standard Icon Theme от freedesktop.org, единство стиля позволяет использовать наработки в различных приложениях. Виджеты и другие элементы украшения поддерживают изменение внешнего вида при помощи CSS-подобных файлов тем.

Обновленный оконный менеджер KDE - KWin - имеет некоторые эффекты OpenGL, которые ранее были доступны в композитных оконных менеджерах вроде Compiz (compiz.org). Кстати, если видеоподсистема не может воспроизвести тот или иной эффект, он просто отключается.
Файловый менеджер Dolphin

Новое окружение пользователя потребовало и новых приложений. Так, Konqueror, заменивший на посту файлового менеджера KFM, начиная с KDE 2.х, уже вобрал в себя столько функций, что было решено вернуться к предыдущей схеме. То есть файловый менеджер должен быть только файловым менеджером. Теперь в этом качестве юзеру предлагается Dolphin (enzosworld.gmxhome.de), в котором просмотр рисунков, препрослушивание музыки и некоторая другая привычная функциональность уже недоступны. Для этих задач вызываются сторонние приложения. Пока нет многооконности, хотя поддержка KIO Slaves присутствует.

Система навигации в Dolphin несколько напоминает принятую в Windows Vista. Окно визуально разбито на три части. В левой отображены закладки, посередине - сами файлы и каталоги, а справа выводится информация по выбранному файлу. Здесь же находятся пункты, предлагающие действия, которые можно произвести с данным объектом, не прибегая к меню (зашифровать, заархивировать, отправить по почте, открыть как root и другие). При необходимости среднее окно можно разделить на две независимые части, что очень удобно при копировании файлов из одного каталога в другой. По умолчанию адресная строка не выводится, открыть ее можно, нажав на неприметную кнопку Edit Location. Закладки в левую панель можно добавлять простым перетаскиванием.

Благодаря набору технологий NEPOMUK (Networked Environment for Personalized, Ontology-based Management of Unified Knowledge, nepomuk.semanticdesktop.org) Dolphin получил так называемые семантические свойства, позволяющие связывать воедино различные предметы и типы данных в десктопе и вне его, осуществлять поиск, обмен информацией и прочее. Пока эта технология находится в самом начале пути, самое интересное обещают в будущем.

И в заключение хочется отметить, что с Konqueror ничего криминального не случилось, он также доступен пользователям KDE 4.0.

Комментарии

Популярные сообщения