Unity и GNOME Shell. Часть 1: Кто виноват?

Привет, давно не было меня в эфире, толи разленился, толи времени небыло, не знаю. Но вот, недавно, перечитывая журнал «Open Source» наткнулся на статью «Unity и GNOME Shell. Часть 1: Кто виноват?» которая меня взволновала, так как я полностью согласен с мнением автора и с тем как он описал происходящие в настойщий момент безобразие в мире открытых рабочих сред. Как известно мир открытого ПО с осторожнотью (мягко говоря) воспринял появление Unity, и еще более осторожно GNOME3. Я постоянно читаю буржуйскую open source прессу и мнения там на этом счет очень разные, достаточно гневных писем в рассылке ubuntu.com с гневными заголовками: “Good bay Ubuntu, thanx Unity” и прочее. Я уже высказывал свое мнение относительно Unity и повторяться не буду, но мне удалось раздобыть разрешенение перепечатать статью в свой блог, дабы как можно большее количество человек смогло ее прочесть. Итак, статья «Unity и GNOME Shell. Часть 1: Кто виноват?» под катом.

Авторство

Статья впервые была опубликована в журнале «Open Source» №86б от 23 июня 2011.
Разрешение перепечатать статью было получено у главного редактора Дмитрия Шурупова.
Автор статьи Семен Есилевский.
Скачать журнал можно на офф. сайте http://osa.samag.ru/info/OpenSource086.zip

Unity и GNOME Shell. Часть 1: Кто виноват?

Выход GNOME 3 с GNOME Shell и переход Ubuntu на Unity смешал все карты в уже давно, казалось бы, разложенном пасьянсе рабочих окружений для Linux. Если раньше GNOME был «тихой заводью», то теперь его постигли изменения похлеще появления KDE 4.

Дело здесь даже не в «революционности» новых оболочек, а в кардинальном изменении самого подхода к их разработке и позиционированию. Если раньше системы на базе Linux завоевывали десктопы, пытаясь потеснить Windows, то теперь речь идет о сегменте мобильных устройств и планшетов. Самое парадоксальное, что здесь начинается уже не борьба Linux с «идеологически чуждыми» системами, а конкуренция разных рабочих сред на основе или для Linux.

Триумф Android на мобильных устройствах и огромный потенциал MeeGo уже мало кто возьмется оспаривать, однако в гонку за лидером теперь включились Ubuntu и GNOME. Для мобильных устройств – однозначно хорошо, но то это сулит пользователям десктопов и «обычных» ноутбуков? В первой части статьи я попытаюсь ответить на вопрос «Кто виноват?»: опишу предпосылки появления новых оболочек и их общие черты.

Вторая часть (см. в следующем выпуске «Open Source») будет посвящена вопросу «Что делать?»: как обустроить GNOME Shell и Unity, есть ли им альтернатива.

Конец эры дистрибутивов?

Уже много лет все дистрибутивы Linux были более-менее взаимозаменяемы с точки зрения обычного пользователя. В самом деле, рабочие среды везде одинаковы (с точностью до «брэндинга» и настроек), а наличие каких-то специфических утилит не вносило кардинальных изменений в принципы работы с системой.

С появлением Unity Ubuntu стал первым «большим» дистрибути вом со своей особой ни на что не похожей рабочей средой. Кроме внешних отличий появились и внутренние. Вместо обычного системного трея – «индикаторы приложений» (app indicators), для удобной интеграции приложения должны иметь поддержку «быстрых списков» дока (launcher quick-lists), индикации состояния на иконке дока, глобального меню и т.д. Теперь конкретная программа либо поддерживает Unity, либо выглядит «чужой», так что Unity – это больше, чем просто альтернативная оболочка GNOME. Кроме того, портирование Unity на другие дистрибутивы затруд нено и пока среда плохо уживается в них.

В общем, можно констатировать: Ubuntu перестала быть рядовым дистрибутивом и стала отдельной операционной системой со своими специфичными технологиями и требованиями к прикладным программам. Недавнее заявление разработчиков GNOME о планах создания GNOME OS также выглядит симптоматично. В частности, GNOME вскоре станет зависимой от системы инициализации systemd. Это означает, что в дистрибутивах, использующих, скажем, upstart или «древний» init, GNOME работать не будет.

GNOME, как и Ubuntu, идет по пути превращения в отдельную операционную систему. Похоже, мы наблюдаем новую тенденцию: эра дистрибутивов Linux, отличавшихся лишь мелкимидеталями, заканчивается и крупные игроки начинают создавать отдельные операционные системы.

Прощаемся с десктопом и приходим в никуда?

Еще несколько лет назад настольный компьютер (десктоп) или ноутбук мог одинаково успешно применяться и заядлым геймером, и программистом, и завсегдатаем в социальных сетей. Параметры «железа», конечно, порой сильно различались, но пользовательский интерфейс системы был универсальным, будь то Windows, Mac OS или Linux. Потом появились массовые смартфоны и планшеты – «идиллия универсальности» закончилась.

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

И Ubuntu, и GNOME уже заявили о планах завоевания мира планшетов. И Unity, и GNOME Shell позиционируются как оболочки для мобильных устройств, которые оптимизированы для сенсорного управления и небольших экранов. Однако почему-то никто не говорит о том, что за оболочкой скрываются все те же десктопные программы, которые не приспособлены к «планшетному» управлению.

Успех Android обусловлен тем, что все программы для него пишутся с нуля с уче том специфики сенсорных устройств. Никто слепо не портирует в Android десктопные приложения, понимая, что они будут неработоспособны. Однако почемуто никто не вспоминает о том, что работать с Nautilus или LibreOffice на планшете будет в лучшем случае крайне неудобно – их интерфейс рассчитан на прецизионную мышь, а не на пальцы.

Разработчики с увлечением создают красивый фасад, за которым нет ни одного специального адаптированного приложения. Более того, еще нет ни одного мало-мальски популярного сенсорного устройства, на которое можно без «танцев с бубном» установить тот же Ubuntu с Unity. Получается, что создаются оболочки для запуска неадаптированных программ на несуществующих устройствах. Результатом такого положения дел является то, что пользователи обычных десктопов получили новые «сенсорные» оболочки, изначально не рассчитанные на десктопы, и пытаются понять, как же теперь с этим жить.

Одним словом, «починили, то, что не ломалось», т.к. никакой реальной причины кардинальной смены работающего десктопного интерфейса не было.

Сенсорные тенденции

Чтобы не быть голословным, перечислю наиболее яркие общие особенности Unity и GNOME Shell, делающие их дружественными к сенсорным экранам:

  • Отказ от обычного меню в пользу полноэкранной «пусковой панели» с огромными иконками.
  • Упор на текстовый поиск программ и документов вместо визуального поиска в меню.
  • Отказ от списка открытых окон на панели.
  • Переключение рабочих столов в специальном «обзорном» режиме.
  • Повсеместная анимация и визуальные эффекты.
  • Практически полное отсутствие настроек – компоновка рабочего стола задана раз и навсегда.

Источником вдохновения для обеих оболочек бесспорно полужили интерфейсы iOS и Android. Например, флажок-ползунок в GNOME 3 напрямую заимствован из Android, главное меню в виде полноэкранной таблицы крупных иконок наследует iOS, контекстные меню в виде «выноски» в обоих оболочках также далеко не оригинальны. Другими словами, пользователю десктопа предлагается интерфейс, сильно приближенный к интерфейсу его смартфона. Функциональность такого интерфейса на «большой машине» вызывает большие сомнения. Вот еще один список свойств, общих для обоих оболочек, но на этот раз не таких уж приятных:

  • На большом экране большая часть верхней панели пустует, не неся никакой полезной нагрузки. Особенно тут «отличился» GNOME Shell, где на нее не вынесено ни меню, ни даже заголовок полноэкранного окна. В Unity ситуация заметно лучше.
  • Запуск программы требует намного больше кликов и намного большего пробега мыши, чем в традиционном варианте. В Unity в один клик запускаются только программы вынесенные в боковой док. Все остальные надо выискивать в списке тратя иногда до пяти кликов и «возя» мышью по всему экрану. В GNOME Shell даже доступ к доку требуtт лишнего клика или жеста мышью, что еще больше усугубляет ситуацию – тут пяти кликов может и не хватить.
  • Переключение между запущенными программами затруднено. В Unity боковой док часто не вмещает все открытые окна и они сворачиваются в «пачки» на его краях. Если запущено несколько окон одной программы, то нужен дополнительный клик для их выбора из списка. Что касается GNOME Shell, то в нем вообще нет никакой визуальной ин дикации программ, закрытых активным окном.
  • Грубо нарушен принцип локальности – для выполнения стереотипных операций нужно использовать элементы интерфейса, расположенные очень далеко друг от друга. Типичный пример – вызов из меню, например, Skype. В GNOME Shell нужно открыть обзорный режим (левый верхний угол экрана), перейти к списку программ (примерно в центре вверху), выбрать категорию «Интернет» (правый верхний угол), затем найти нужную иконку (она будет далеко слева, поскольку программ в этой категории не так много) (см. рис. 1). В Unity ситуация лучше, но не намного. Для сравнения: традиционное меню разворачивается прямо от кнопки его вызова, а не на противоположном конце экрана.
  • Плохая адаптация к многоэкранным системам. Я не имел возможности протестировать такую конфигурацию, но форумы и блоги полны сообщениями о том, что новые оболочки при наличии нескольких мониторов в лучшем случает крайне неудобны.

Размер имеет значение

Возникает резонный вопрос: понимают ли разработчики, что между трехдюймовым экранчиком смартфона и 24-дюймо вым широкоформатным монитором есть не только количественная, но и качественная разница? Возьмем, к примеру, главное меню в виде таблицы на весь экран, как на (рис. 1). Прекрасно известно, что человек способен держать в «активном» поле зрения не более 7-8 объектов. На маленький экран смартфона вмещается всего с десяток крупных иконок, так что их можно «просканировать» за долю секунды одним взглядом.

На большом мониторе их приходится систематически просматривать ряд за рядом, т.к. активное поле зрения покрывает лишь малую часть экрана. Более того, большая таблица однотипных объектов – это «агрессивное зрительное поле», поиск на котором требует большого напряжения зрения и концентрации внимания. Принцип локальности как раз и призван концентрировать внимание пользователя в ограниченной зоне экрана и резко ускорять поиск в ее пределах, но в новых оболочках он игнорируется.

Сам размер иконок тоже становится проблемой на большом экране. Человеку очень сложно постоянно «переключать масштаб» между стандартными элементами интерфейса и текстом размером в 15-20 пикселей и иконками меню в Unity размером чуть ли не 100х100 пикселей. Для комфортного восприятия все элементы интерфейса должны быть соразмерными.

Мы лучше знаем, что вам нужно

Практически полное отсутствие настроек в новых оболочках заслуживает отдельного упоминания. В мобильных устройствах сам их аппаратный дизайн часто навязывает положение элементов интерфейса, но на большом экране возможности настройки становятся очень востребованными. Достаточно посмотреть, какое огромное количество людей ищут и сами создают темы оформления, иконки и обои на gnome-look.org или deviantART.

GNOME 2 приучил нас, что панели можно передвигать и прятать, а порядок иконок и апплетов на них изменять как угодно.
В GNOME Shell все решено за вас, штатными средствами настроить ничего нельзя. Вообще ничего! Нельзя убрать иконку вспомогательных технологий для людей с ограниченными возможностями, даже если они вам абсолютно не нужны. Нельзя спрятать пустую верхнюю панель. Нельзя даже поменять цвета и тему.

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

По сравнению с GNOME 2 возможностей выделиться видом рабочего стола практически не осталось. Я не сторонник доведения возможностей настройки интерфейса до фанатизма, что, к сожалению, наблюдается в KDE, где опций стало уже слишком много, но и полная невозможность настроить что-либо вряд ли способна привлечь пользователей. Разумный компромисс можно увидеть в Xfce и в версиях GNOME 2 до начала «кампаниипо упрощению интерфейса».

Нужно подчеркнуть, что и GNOME Shell, и Unity – монолитные среды. Их «родную» панель нельзя заменить на wingpanel или tint2, а встроенный док – на более функциональные cairo-dock или AWN. В отличие от модульных сред, составленных из взаимозаменяемых компонентов, GNOME Shell и Unity нужно либо использовать как есть, либо не использовать вообще. Это ставит под сомнение будущее таких прекрасных проектов, как AWN или DockbarX, – в новом GNOME и новой Ubuntu им просто нет места.

От автора блога

Хотелось бы услышать по этому поводу мнение Линуса Торвальдса.