Очередную волну обсуждений темы пользовательских интерфейсов в прошедшие дни снова поднял неутомимый Шаттлворт, предложив новую концепцию меню Head-Up Display. Обновились проекты Cinnamon и KDE 4, представляющие более традиционные интерфейсы. Для разработчиков вышло обновление GDB, опубликована предварительная версия компилятора языка Rust, обновлён Ruby on Rails. В заключение обзора несколько коротких мультимедийных новостей.
Интерфейсы
На прошедшей неделе доминантный тон в мире свободного ПО задавали новости о пользовательских интерфейсах. Суть всех этих новостей можно свести к тому, что спокойной жизни пользователям этих самых интерфейсов уже не будет. Эпоха "классицизма", когда бал повсюду правил классический тип интерфейса а-ля Windows 98, в ИТ-мире окончательно миновал. И появление в прошлом году в дистрибутивах Linux интерфейсов Unity Ubuntu и GNOME 3 - тому подтверждение.
Ошарашив многих поклонников Ubuntu интерфейсом Unity с его боковой панелью, глобальным меню и другими новациями, Марк Шатлворт не останавливается на достигнутом. Уже в грядущей этой весной версии Ubuntu появится новая революционная вещь - Head-Up Display (HUD).
HUD - это кардинально новая реализация главного меню в программах и глобального меню в Ubuntu. Традиционная привычная система главного меню существует в компьютерной индустрии уже более 30 лет. Она предполагает навигацию к нужной функции программы через древовидную систему выпадающих списков - часто запутанную и не всегда логичную.
Вместо привычной полоски с выпадающими списками команд Шаттлворт предлагает использовать поле текстового поиска. В этом поле поиска пользователям нужно просто начать набирать, что они хотят выполнить в программе или системе. В процессе набора команды HUD будет автоматически подбирать и предлагать наиболее вероятные названия функций из арсенала текущего приложения или имеющихся в операционной системе команд и программ.
Система HUD будет интеллектуальной. То есть она будет накапливать опыт и на основе предыдущих действий пользователя старается угадать, что хочет пользователь выполнить в данный момент времени.
Марк Шаттлворт видит такую систему более логичной, а следовательно, более простой и понятной для пользователя. HUD собирает в единое унифицированное пространство все команды системы и приложений, в том числе и те команды, которые в обычных меню могут быть не представлены. К тому же HUD значительно сокращает количество элементов в визуальном пространстве пользовательского интерфейса.
С другой стороны, не для всех пользователей HUD может подойти. Пользователи, которые умеют активно работать с клавиатурой и хоткеями, возможно, вполне позитивно оценят новую концепцию главного и глобального меню. Но есть и те, кто любое действие в системе предпочитает выполнять исключительно мышкой. Им новая концепция может и не понравиться.
По словам Марка, скорее всего, HUD впервые представят в ближайшем выпуске Ubuntu 12.04, и он будет включаться опционально. Но поддержка традиционных меню будет, конечно же, сохранена в полном объёме. Иначе, как нетрудно догадаться, ещё одна большая часть пользователей перейдёт на Linux Mint.
Кстати, на прошлой неделе появилась и очередная версия рабочего окружения Cinnamon, создаваемого разработчиками Linux Mint. В рамках этой графической среды предпринимается попытка воссоздать "правильный" классический GNOME на основе GNOME 3. Представленный выпуск является первым стабильным релизом, в котором API и само окружение уже можно считать стабильными.
Первоначально графическая оболочка Cinnamon представляла просто набор расширений для GNOME Shell, реализующих классический стиль GNOME 2. Но в скором времени вся функциональность этих дополнений была интегрирована в саму оболочку Cinnamon на более низком уровне, что позволило повысить производительность интерфейса. С другой стороны, Cinnamon потерял совместимость с GNOME Shell, и теперь его нужно считать отдельным проектом.
По отзывам пользователей, Cinnamon ещё должен решить некоторые проблемы. Однако то, что этот интерфейс представляет собой классический вариант, думаю, привлечёт очень многих любителей классики к этому проекту.
Тем временем также обновилась и популярная графическая среда KDE SC до версии 4.8. Этот проект в своё время первым вступил на путь модернизации, что сопровождалась горячими дискуссиями.
Но вот незаметно пришло время, когда KDE 4 начал поворот к завершению своего жизненного цикла. После выпуска KDE 4.8 разработчики переключились на развитие проекта, известного под именем "KDE Frameworks 5". Хотя это не значит, что KDE 4.8 является последней версией. Новые обновления всё ещё будут по-прежнему появляться раз в шесть месяцев.
А "KDE Frameworks 5" будет основан на библиотеке Qt 5. В отличие от KDE 4, выпуск KDE 5 не станет революционным и внешне мало будет отличаться от того, что уже можно наблюдать сейчас. Ключевые изменения будут связаны с внутренней реструктуризацией, повышением качества, упрощением зависимостей и увеличением модульности системы.
GDB 7.4
24-го января вышла новая версия отладчика GDB (GNU Project Debugger) с номером 7.4. Для систем UNIX существует много отладчиков, но общепризнанный лидер - GDB. Он присутствует практически в любом дистрибутиве Linux.
Отладчик выполняет внутри себя другую программу и даёт возможность пользователю в определенной степени осуществлять контроль над выполняемой программой и определять, что происходит в процессе ее выполнения. GDB может осуществлять отладку на так называемом уровне исходного текста, создавая иллюзию, что выполняются операторы Си, а не машинный код. Для этого отлаживаемая программа должна быть специальным образом скомпилирована.
GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования: C, C++, Objective-C, Pascal, Ada. Отладка возможна для различных аппаратных архитектур: i386, amd64, ARM, Power, Sparc и т.д.
Возможно нововведений в новой версии и не так много, как хотелось бы, но, тем не менее, можно отметить:
- новую целевую платформу Texas Instruments TMS320C6x;
- новый эмулятор Renesas RL78;
- улучшенное API для написания скриптов на языке Python;
- отображение значений параметров функции во время вызова данной функции;
- улучшение работы с tracepoints;
- возможность определения маски для точек наблюдения.
Rust 0.1
Время в программировании не стоит на месте, и появляются новые средства разработки программ. Во второй половине января был представлен ознакомительный вариант компилятора языка программирования Rust. Разработчиком проекта является компания Mozilla.
Rust - новый экспериментальный язык программирования. Язык компилируемый, позиционируется как альтернатива C/C++. В Rust поддерживаются функциональное, параллельное, процедурное и объектно-ориентированное программирование.
Пример классики "hello, word":
use std; import std::io; fn main() { std::io::println("hello, world!"); }
Одна из наиболее интересных частей языка - параллельные вычисления. Rust призван обеспечить высокий параллелизм выполнения заданий с возможностью порождать тысячи и даже миллионы подпроцессов.
Предварительная версия компилятора предназначена только для практического знакомства. API ещё полностью не сформирован и в дальнейшем будет расширяться и изменяться.
Ruby on Rails 3.2
Для веб-ориентированного программирования можно отметить выход среды разработки с открытым исходным кодом Ruby on Rails 3.2, весть о которой не успела попасть в прошлый выпуск новостей СПО.
Rails - это полноценный фреймворк для построения веб-приложений, использующих базы данных, который основан на архитектуре Модель-Представление-Контроллер (Model-View-Controller, MVC). Этот фреймворк написан на языке программирования Ruby. Его используют популярные сервисы Github, Hulu, Twitter и другие.
Особенностью Rails 3.2, является то, что этот выпуск предваряет Rails 4.0. И это последний релиз, в котором всё ещё обеспечивается поддержка Ruby 1.8.7.
Звук и видео
И в завершение несколько новостей, связанных с мультимедийной частью. Уверен, все эти новые возможности мультимедиа обязательно следует ждать в весенних выпусках дистрибутивов.
После года разработки вышла новая версия основной звуковой системы ALSA. Это первая версия ALSA, являющаяся, можно так сказать, официально предназначенной для ядра Linux версий 3.х.
Выпуск обрадует многих пользователей, которые со слезами на глазах годами ждали нормальной поддержки своих аудиоустройств вроде VIA VT1705, Sound Blaster X-Fi и старых карт на чипах EMU10K1 и EMU10K2. Также добавлена поддержка синтезаторов Yamaha MOX6/MOX8 и Roland GAIA SH-01, внешнего звукового интерфейса NI Traktor Audio 2 и MIDI-интерфейса Cakewalk UM-1G.
Увидел свет и очередной выпуск мультимедиа-пакета FFmpeg 0.10, включающего набор приложений и коллекцию библиотек для кодирования, декодирования и обработки различных мультимедиа форматов. Вместе с ним обновился и форк проекта FFmpeg - Libav 0.8. В новые версии этих мультимедийных библиотек добавлены новые кодеры и декодеры аудио- и видеоформатов - в основном, экзотических
А компания Google представила пакет VP8 Codec SDK 1.0 (libvpx) - реализации свободного видеоформата VP8. В версии 1.0 имеется поддержка интересной техники временного масштабирования (Temporal scalability), позволяющей сформировать многослойный видеопоток из нескольких субпотоков с независимой частотой кадров для каждого. Что позволяет закодировать один раз видео для передачи в разных по качеству каналах передачи данных. Также в новой версии видеокодека реализована поддержка кодирования сразу в нескольких разрешениях.
Михаил АСТАПЧИК
Горячие темы