Журнал LinuxFormat - перейти на главную

LXF87-88:KDE 4

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(оформление, викификация)
(Создайте свой рабочий стол: викификация, оформление)
Строка 142: Строка 142:
 
конкретного человека.
 
конкретного человека.
  
KDE 4 собирается свернуть менее успешные части KDE 3, а остав-
+
KDE 4 собирается свернуть менее успешные части KDE 3, а оставшиеся упростить. Иногда достаточно изменить соответствующий API,
шиеся упростить. Иногда достаточно изменить соответствующий API,
+
 
иногда приходится создавать новый, как в случае с ''Plasma''.
 
иногда приходится создавать новый, как в случае с ''Plasma''.
  
 
Но есть несколько областей, нуждающихся в полном переосмыслении и разработке с нуля, например, медиа-проигрыватель. ''Solid'' и ''Phonon'' – два новых API, спроектированных, чтобы сделать KDE максимально портируемым – и это особенно важно сейчас,
 
Но есть несколько областей, нуждающихся в полном переосмыслении и разработке с нуля, например, медиа-проигрыватель. ''Solid'' и ''Phonon'' – два новых API, спроектированных, чтобы сделать KDE максимально портируемым – и это особенно важно сейчас,
когда свободная версия ''Qt'' доступна для операционных систем Mac OS X и Microsoft Windows. Как и в случае с Plasma, этот слой абстракции
+
когда свободная версия ''Qt'' доступна для операционных систем Mac OS X и Microsoft Windows. Как и в случае с Plasma, этот слой абстракции требует разделения на интерфейсную (front-end) и фоновую (back-end)
требует разделения на интерфейсную (front-end) и фоновую (back-end)
+
части. ''Solid'' и ''Phonon'' отделяют данные от пользовательского интерфейса настолько, чтобы фоновый поставщик данных можно было менять, а интерфейсная часть продолжала бы работать. Все это – благодаря мощному механизму «сигналов» и «слотов» в Qt, дающих программистам свободу создавать интерфейсы в ПО.
части. ''Solid'' и ''Phonon'' отделяют данные от пользовательского интер-
+
 
фейса настолько, чтобы фоновый поставщик данных можно было
+
===Solid’ная конфигурация===
менять, а интерфейсная часть продолжала бы работать. Все это – бла-
+
 
годаря мощному механизму «сигналов» и «слотов» в Qt, дающих про-
+
''Solid'' – это слой аппаратной абстракции, который KDE будет использовать в будущем. Он поможет забыть о настройке оборудования, и,
граммистам свободу создавать интерфейсы в ПО.
+
Solid’ная конфигурация
+
Solid – это слой аппаратной абстракции, который KDE будет исполь-
+
зовать в будущем. Он поможет забыть о настройке оборудования, и,
+
 
будем надеяться, сотрет грань между приложениями для конкретных
 
будем надеяться, сотрет грань между приложениями для конкретных
устройств. Лучший пример – беспроводные сети. При использова-
+
устройств. Лучший пример – беспроводные сети. При использовании ''Solid'', информация о сетевом соединении и его состояние станет
нии Solid, информация о сетевом соединении и его состояние станет
+
доступна любому приложению KDE, использующему ''Solid'', причем ему
доступна любому приложению KDE, использующему Solid, причем ему
+
 
не надо будет вникать в особенности оборудования. Это означает, что
 
не надо будет вникать в особенности оборудования. Это означает, что
апплет Plasma, менеджер сети или даже ваш FTP-клиент будут способ-
+
апплет ''Plasma'', менеджер сети или даже ваш FTP-клиент будут способны перемещаться между беспроводными сетями или отслеживать статус соединения, не надоедая вам лишними запросами пароля.
ны перемещаться между беспроводными сетями или отслеживать ста-
+
 
тус соединения, не надоедая вам лишними запросами пароля.
+
В KDE 3 обнаружением и настройкой оборудования вынуждено
    В KDE 3 обнаружением и настройкой оборудования вынуждено
+
заниматься каждое приложение. Например, для настройки ''K3b'' вам
заниматься каждое приложение. Например, для настройки K3b вам
+
нужно сообщить, какие CD/DVD-приводы вы используете. ''Solid'', в
нужно сообщить, какие CD/DVD-приводы вы используете. Solid, в
+
фоновом режиме, делает эту информацию доступной для всех остальных средств записи CD/DVD, и вам не нужно вводить одну и ту же
фоновом режиме, делает эту информацию доступной для всех осталь-
+
информацию дважды. Это особенно важно для областей, где приложения для работы можно выбирать. Так, в KDE 3 есть два инструмента для работы с беспроводными сетями (''KNetworkManager'' и ''KWiFiManager''),
ных средств записи CD/DVD, и вам не нужно вводить одну и ту же
+
информацию дважды. Это особенно важно для областей, где приложе-
+
ния для работы можно выбирать. Так, в KDE 3 есть два инструмента для
+
работы с беспроводными сетями (KNetworkManager и KWiFiManager),
+
 
а также различные приложения для определения оборудования, и их
 
а также различные приложения для определения оборудования, и их
следует переработать в KDE 4, чтобы использовать преимущества аппа-
+
следует переработать в KDE 4, чтобы использовать преимущества аппаратной абстракции ''Solid''. В этих случаях пользовательский интерфейс
ратной абстракции Solid. В этих случаях пользовательский интерфейс
+
''Plasma'' будет расположен поверх слоя абстракции ''Solid'', и вам не придется каждый раз «изобретать велосипед».
Plasma будет расположен поверх слоя абстракции Solid, и вам не при-
+
 
дется каждый раз «изобретать велосипед».
+
''Solid'' работает в так называемых доменах. Они сообщают максимум
    Solid работает в так называемых доменах. Они сообщают максимум
+
 
информации о затрагиваемом оборудовании (хотя непосредственно с
 
информации о затрагиваемом оборудовании (хотя непосредственно с
ним не взаимодействуют). Есть домены для распознавания оборудова-
+
ним не взаимодействуют). Есть домены для распознавания оборудования, управления питанием и управления сетью. Поверх доменов располагаются агенты политик (policy agent), занимающиеся характеристика
ния, управления питанием и управления сетью. Поверх доменов распо-
+
ми оборудования. В данный момент их всего два: один для управления
лагаются агенты политик (policy agent), занимающиеся характеристика-
+
сетевыми соединениями и второй – для обработки мультимедиа.
  
 +
Может показаться, что технологии, подобные ''Plasma'' и ''Solid'', сами
 +
по себе не новы, но огромным отличием KDE 4 является то, что о них
 +
думали до начала разработки какого-либо приложения, так что ''Plasma''
 +
и ''Solid'' становятся доступны любому приложению KDE 4. Для разработчиков это упростит добавление функций во время портирования приложения на KDE 4 – только представьте, какой потенциал это дает
 +
для ''KOffice, Kopete, Kate, Konqueror''. Изменится самый способ использования KDE.
  
 
===Что нам готовит DigiKam===
 
===Что нам готовит DigiKam===

Версия 16:48, 5 декабря 2008

Содержание

KDE 4 Вкус будущего!

Слухи о релизе v4 уже дразнят воображение фанатов KDE, но ждать его еще не один месяц. Ключевые разработчики KDE предоставили Грэму Моррисону предварительный обзор.

C момента выпуска KDE 3 в 2002 году, ландшафт Linux-технологий изменился до неузнаваемости. Теперь мы принимаем как данность поразительные 3D-возможности, интегрированный поиск и апплеты рабочего стола; и проектировщики KDE 2002 г. убеждаются, что их рабочий стол выдерживает перегрузки.

Но теперь не только Linux имеет вращающиеся кубы да виртуальные рабочие столы: новые версии Microsoft Windows и Apple OS X наращивают конкурентоспособность. Новая среда рабочего стола KDE должна будет сделать серьезную заявку на удобство Linux. Она должна стать доступной любому, простой в использовании и величавой на вид. Она должна переманить пользователей изуродованных «цифровыми правами» рабочих столов DRM в мир свободы, единения и сотрудничества.

До выхода KDE 4 все еще остаются месяцы, но дизайнерские планы нового рабочего стола утверждены, а библиотеки и спецификации уже доступны. Linux Format воспринял это как открытое приглашение сделать обзор. Мы оценили возможное влияние каждой технологии и поговорили с некоторыми из ведущих разработчиков, чтобы дать вам представление о вашем будущем рабочем столе KDE 4.

Структура KDE 4

KDE 4

Структурная схема KDE 4 показывает, что пользователи получат хорошо спроектированный, ориентированный на задачи рабочий стол благодаря проекту Appeal, а появление Solid, Decibel и Phonon означает, что разработчикам больше не нужно будет изобретать велосипед при добавлении новейшего оборудования, мультимедиа и сетевых функций.

Манифест Appeal

Как мог бы сказать Стив Баллмер: конечные пользователи, конечные пользователи, конечные пользователи, конечные...

KDE порожден немецким компьютерщиком Маттиасом Эттрихом [Matthias Ettrich] в 1996 г. Он всегда строился на коммерческом продукте Qt от норвежской фирмы Trolltech. Но KDE, по большому счету, крупнейший проект, использующий Qt, и Маттиас Эттрих теперь директор Trolltech по разработке ПО, а значит, эти два проекта серьезно влияют друг на друга.

Qt – инструментарий программиста и костяк функциональности KDE, выполняющий многие трудоемкие задачи, например, манипуляцию изображениями и файлами, прорисовку элементов графического интерфейса и взаимодействие с базой данных. При выходе каждого основного релиза Qt KDE должен адаптироваться к изменениям и вбирать новые функции. Вот почему цикл выпуска KDE следует за Qt. Qt 4, вышедший в июне 2005 г., ввел много новых функций, которых не хватало KDE, в том числе, новый движок рендеринга Arthur и поддержку SVG.

Но команда KDE, обновляя версию, не упустила шанса сделать гораздо больше, чем просто пересмотр функций. Кроме замены устаревшего механизма взаимодействия процессов и принятия D-BUS, разработчики добиваются внешней привлекательности. При переводе внутреннего формата изображений на SVG и добавлении расширяемых виджетов, разработчики хотят, чтобы новые пользователи понимали среду рабочего стола интуитивно. Мэтт Роджерс [Matt Rogers], глава проекта входящей в состав KDE IDE KDevelop, говорит: «Я думаю, во главе угла для разработчиков KDE 4 сейчас находится интерфейс пользователя. Говорю это только потому, что слишком много было спекуляций, шумихи и прочего вокруг всяких интерфейсных технологий, типа Plasma и Oxygen». В KDE 4 пользовательский интерфейс становится «первым лицом».

Полигон идей

Экскурсию по KDE 4 удобно начать с Appeal. В отличие от технологий, которые мы рассмотрим дальше, Appeal [зов, – прим. пер.] – это не конкретный программный проект, а, скорее, исследовательский центр по «перетягиванию» KDE от разработчиков поближе к простым смертным. Не очень внятно? Дело в том, что Appeal – пока только манифест для задуманных в KDE 4 новых технологий, видимых пользователям: они должны сразить их в первую же наносекунду и заставить влюбиться в этот рабочий стол. Проект Appeal хочет, чтобы пользователи KDE 4 воспринимали функциональность так же, как Йода воспринимал Силу – просто как должное.

Сайт http://appeal.kde.org был запущен в августе 2005 г., и его wiki переполнена идеями. Проект занимается «визуальными искусствами» KDE 4, включая Plasma (похожую на SuperKaramba замену виджетов рабочего стола, икон и панели) и Oxygen, гладкий, векторизованный набор иконок, определяющий внешний вид KDE. С некоторого момента Appeal займется и технологией поиска, которую будет использовать KDE 4. Аарон Сейго [Aaron Seigo], штатный разработчик Plasma, описывает Appeal как «социальный эксперимент по сознательному вовлечению в скоординированную, открытую и многоцелевую разработку». По сути, Appeal стал координационным центром для новой плеяды разрабатываемых приложений KDE 4.

Манифест Appeal содержит четыре принципа: «произведение искусства», «рай разработчиков», «сетевые вычисления» и «интегрированный рабочий стол». Каждый из них немного расплывчат, ибо Appeal не определяет требования: он только иллюстрирует идею. Поэтому «произведение искусства» стоит на первом месте. Подобно Марку Шаттлворту, разработчики KDE признают, что красота – это функция. KDE 4 в первую очередь нуждается в приятной внешности, вот почему дизайн иконок Oxygen непосредственно связан с Appeal. «Рай разработчиков» означает, что разработчикам должно хотеться работать с KDE API и при этом ощущать, что использование технологий KDE – лучший способ достичь их целей. Есть даже мысль создать в сети «университеты» KDE-разработки, где можно изучать KDE, чтобы максимально упростить новым разработчикам создание собственных проектов.

У «сетевых вычислений» более прикладная цель, движимая идеей единой регистрации для пользователя: и за получение почты, и за доступ к удаленному столу по протоколу NX, и за web-сервисы будет отвечать единственный механизм аутентификации. Это согласуется с инициативой KDE/Wikipedia, анонсированной в июне 2005 г.: разработкой интерфейсов KDE API для выполнения запросов к Wikipedia, которые в дальнейшем сможет использовать каждое приложение KDE.

Appeal помогает убедиться, что каждое приложение KDE 4 использует один и тот же подход к дизайну интерфейса. Удобство – ключевой момент, и это означает, что функциональность должна быть как можно более интуитивной: нет смысла дарить пользователю мощь KPArts или KIO slaves, если он даже не подозревает о подарке. Вот как сильно разработчики KDE хотят, чтобы вы использовали их рабочий стол.

Plasma и Solid

Не парьтесь с настройкой оборудования: лучше поиграйте с виджетами.

Plasma – «интегрированный рабочий стол» Appeal, и это первое, что бросится в глаза в KDE 4. Эффекты Plasma, в отличие от многих других новых технологий этой версии, вы сможете увидеть на рабочем столе.

Если вы не программист, то старый KDE 3 для вас нерасширяем: невозможно создавать собственные элементы интерфейса или добавлять функции к рабочему столу. Вы ограничены в использовании предоставляемых инструментов, и их недостаточно. Самое популярное приложение для расширения функциональности KDE 3, SuperKaramba, больше похоже на одномоментный «хак», чем на основу для расширений. Но это не вина автора прежней Karamba, Ганса Карлссона [Hans Karlsson], а следствие слабой поддержки расширений в KDE, отсюда и «хаки»: просто не было другого способа решить проблему. Plasma – средство KDE 4, призванное исправить этот недостаток. Это интерфейс к рабочему столу, способ добавлять расширения, не ломая машину.

Проблема Kicker

К сожалению, разработка Plasma зависит от некоторых других функции KDE 4, и потому она шла медленно. Лидер проекта, Аарон Сейго, до июля 2006 г. дожидался стабилизации новых API, достаточной, чтобы начать разработку, и многое изменилось в сентябре, после конференции Akademy в Дублине (ежегодная встреча KDE-сообщества).

Сейго имеет огромный опыт управления проектами типа Plasma, и к разработке Plasma его привела, прежде всего, его работа над KDE-панелью Kicker. Kicker часто воспринимается как некий «хак» (похоже, это общая тема приложений KDE). Он не предусматривал обработки прозрачности, кнопок или множественных апплетов, и в результате добавления этих функций исходный код стал неуправляемым и сложным в сопровождении. Были случаи, когда разработчики, хотевшие всего-навсего сменить цветовую схему, обнаруживали, что проще ответвить Kicker и решать свои задачи в этом коде, чем вносить свои изменения в исходный проект с тем же самым эффектом. Сайт http://kde-apps.org содержит некоторые ответвления Kicker, которые вносили в него только косметические изменения, не влияя на суть исходного проекта. Kicker даже научили автоматически перезагружаться, если он зафиксирует крах своего собственного процесса.

Частично эта проблема вызвана тем, что подавляющее большинство приложений KDE разработано на языке C++. Он очень мощный, но, по словам Сейго, «может и крышу снести». C++ слишком сложен для разработки простых расширений и расставляет слишком много ловушек для неосторожных программистов. SuperKaramba обходит эту проблему, используя язык Python, довольно простой по сравнению с C++, и подобное сделано и в Plasma. Plasma по-прежнему будет разрабатываться на C++, но расширения предполагается писать на JavaScript, в основном потому, объясняет Сейго, что JavaScript гибок и прост. Также планируется поддержка других популярных языков, включая Python и Ruby.

Создайте свой рабочий стол

Лично на вас окажет влияние тот способ, которым Plasma использует пространство рабочего стола. Plasma заменит метафору иконок тем, что лучше соответствует современным технологиям. Апплеты, подобные предлагаемым SuperKaramba, станут разменной монетой для рабочего стола, а компоненты типа Kicker или менеджера задач будут представлены отдельными апплетами Plasma. Дойдет даже до перетаскивания в апплеты компонентов из некоторых основных приложений. Например, перетаскивание папки входящих сообщений из KMail на ваш рабочий стол могло бы динамически создать, скажем, апплет оповещений о поступлении новой почты.

Вот тут-то и пригодилась идея KDE об абстракции данных, потому что если у SuperKaramba и есть проблема, так это недостаток согласованности – существует десяток апплетов для вывода информации о погоде или мониторинга системы, и каждый собирает данные по-своему. Отделение данных от интерфейса апплета будет означать, что как только будет создан внутренний механизм сбора информации о погоде или о системе, каждый, кто обладает минимальными художественными способностями, сможет легко добавить пользовательский интерфейс. Сложность здесь в разработке источников данных. Они будут многомерными (как база данных), и разрабатываются на C++. При этом каждый источник сможет иметь более одного атрибута – например, число писем в вашем почтовом ящике наряду с количеством писем от конкретного человека.

KDE 4 собирается свернуть менее успешные части KDE 3, а оставшиеся упростить. Иногда достаточно изменить соответствующий API, иногда приходится создавать новый, как в случае с Plasma.

Но есть несколько областей, нуждающихся в полном переосмыслении и разработке с нуля, например, медиа-проигрыватель. Solid и Phonon – два новых API, спроектированных, чтобы сделать KDE максимально портируемым – и это особенно важно сейчас, когда свободная версия Qt доступна для операционных систем Mac OS X и Microsoft Windows. Как и в случае с Plasma, этот слой абстракции требует разделения на интерфейсную (front-end) и фоновую (back-end) части. Solid и Phonon отделяют данные от пользовательского интерфейса настолько, чтобы фоновый поставщик данных можно было менять, а интерфейсная часть продолжала бы работать. Все это – благодаря мощному механизму «сигналов» и «слотов» в Qt, дающих программистам свободу создавать интерфейсы в ПО.

Solid’ная конфигурация

Solid – это слой аппаратной абстракции, который KDE будет использовать в будущем. Он поможет забыть о настройке оборудования, и, будем надеяться, сотрет грань между приложениями для конкретных устройств. Лучший пример – беспроводные сети. При использовании Solid, информация о сетевом соединении и его состояние станет доступна любому приложению KDE, использующему Solid, причем ему не надо будет вникать в особенности оборудования. Это означает, что апплет Plasma, менеджер сети или даже ваш FTP-клиент будут способны перемещаться между беспроводными сетями или отслеживать статус соединения, не надоедая вам лишними запросами пароля.

В KDE 3 обнаружением и настройкой оборудования вынуждено заниматься каждое приложение. Например, для настройки K3b вам нужно сообщить, какие CD/DVD-приводы вы используете. Solid, в фоновом режиме, делает эту информацию доступной для всех остальных средств записи CD/DVD, и вам не нужно вводить одну и ту же информацию дважды. Это особенно важно для областей, где приложения для работы можно выбирать. Так, в KDE 3 есть два инструмента для работы с беспроводными сетями (KNetworkManager и KWiFiManager), а также различные приложения для определения оборудования, и их следует переработать в KDE 4, чтобы использовать преимущества аппаратной абстракции Solid. В этих случаях пользовательский интерфейс Plasma будет расположен поверх слоя абстракции Solid, и вам не придется каждый раз «изобретать велосипед».

Solid работает в так называемых доменах. Они сообщают максимум информации о затрагиваемом оборудовании (хотя непосредственно с ним не взаимодействуют). Есть домены для распознавания оборудования, управления питанием и управления сетью. Поверх доменов располагаются агенты политик (policy agent), занимающиеся характеристика ми оборудования. В данный момент их всего два: один для управления сетевыми соединениями и второй – для обработки мультимедиа.

Может показаться, что технологии, подобные Plasma и Solid, сами по себе не новы, но огромным отличием KDE 4 является то, что о них думали до начала разработки какого-либо приложения, так что Plasma и Solid становятся доступны любому приложению KDE 4. Для разработчиков это упростит добавление функций во время портирования приложения на KDE 4 – только представьте, какой потенциал это дает для KOffice, Kopete, Kate, Konqueror. Изменится самый способ использования KDE.

Что нам готовит DigiKam

  • Независимый интерфейс к базам данных
  • Интеграция с рабочим столом
  • Поиск по метаданным

Жиль Кoлье [Gilles Caulier], «хранитель» DigiKam: «После выхода версии 0.9.0 было начато портирование DigiKam на Qt 4/KDE 4. Первая задача новой библиотеки – предоставить новый интерфейс к базам данных, независимый от выбранного сервера (как в Amarok). С Qt 4, в отличие от Qt 3, это будет сделать легко. Qt 4/KDE 4 также будет управлять всеми поточными фильтрами изображений, доступными в ядре DigiKam. На самом деле, стиль кодирования потоков в Qt 3 не особо удобный, особенно когда пытаешься получить обратную связь с графическим интерфейсом пользователя во время расчета или загрузки файла.

За последний год мы много работали над DigiKam и DigiKamImagePlugins, чтобы добавить поддержку 16-битного цвета, управление цветом, полную поддержку метаданных, поддержку файлового формата RAW и так далее – между 0.8.x и 0.9.0 разница очень большая. Исходный код использует только Qt 3/KDE 3, и сейчас он на стадии завершения. Выпуск 0.9.0 планируется на конец 2006 г. Фактически, у нас нет времени на изучение нового API, предоставляемого KDE 4. Этим мы займемся после выхода 0.9.0.»

Персональные инструменты
купить
подписаться
Яндекс.Метрика