На днях Марк Шаттлворт поделился в своём блоге очередными мыслями по поводу здоровой конкуренции в сообществе разработчиков открытого ПО, рассмотрев в качестве примера взаимодействие разработчиков Unity с проектом GNOME. Заметка Марка опубликована в ответ на замечания Дэйва Нири (Dave Neary), в прошлом входившего в совет директоров организации GNOME Foundation, упрекнувшего Unity в нежелании сотрудничать с GNOME, соблюдая установленные в GNOME правила разработки.

В частности, Нири попытался опровергнуть утверждение, что Canonical предлагает свои разработки, но GNOME без веских причин отказывается их принимать. В качестве примера рассмотрены причины отказа от принятия libappindicator в состав GNOME: libappindicator не поддерживает интеграцию с оболочкой GNOME Shell; libappindicator зависит от GtkApplication и возможно требует интеграции дополнительного кода в GTK+; разработчики libappindicator не желают конструктивно обсуждать критику; наличие похожей альтернативной системы в GNOME. Из других причин называется медленное продвижение используемых в Ubuntu патчей в upstream (например, в Unity используются модифицированный Compiz, DBus и Glib).

Говоря о конкуренции, Марк замечает, что существует два вида конкуренции - внешняя и внутренняя. Внутри проекта Ubuntu существует интенсивная внутренняя конкуренция. Команды Ubuntu и Kubuntu и Xubuntu и Edubuntu сотрудничают, но также и конкурируют между собой, и каждому ясно, что здесь существует общая заинтересованность в донесении всех совместных достижений и опыта до каждого проекта. Что касается управления проектом GNOME, Шаттлворт говорит, что оно должно эффективно использовать конкуренцию на благо проекта, что предполагает внимательное отслеживание и недопущение местечкового "внутреннего мышления". К примеру, замечает Шаттлворт, "мне часто встречалось выражение, что "не стоит ожидать, что в GNOME будут включены идеи, которые не были рождены и размещены исключительно внутри проекта".

Позиция Марка сводится к следующему заявлению:

Когда образ Unity более-менее оформился, разработчики Ubuntu ясно понимали, что хотят выпускать её под эгидой GNOME. В общем и целом в Ubuntu выбирали дружественные GNOME-технологии, а там, где нам нужно было что-то другое, подобные решения всегда тщательно обсуждались. С самого начала Unity описывалась как "оболочка для GNOME". Со многими проектами GNOME разработчики Ubuntu успешно сотрудничали в целях интеграции API Unity в их код, потому что были уверены, что любая возникающая при этом конкуренция была конкуренцией "внутри" GNOME, и следовательно, способствовала лучшему положению всего проекта GNOME в целом.

Но разработчики Ubuntu ошибались. И судя по высказываниям, и судя по принятию решений, в GNOME все уверены в том, что Unity конкурирует извне с GNOME, а не внутри GNOME. В качестве примера тут можно привести случай, когда API индикаторов Unity (libappindicator) не был принят в роли внешней зависимости, хотя внешние API как раз и существуют для того, чтобы поощрять использование GNOME-приложений на всех платформах, включая проприетарные Windows, Mac OS X и Solaris. Этот отказ был явной попыткой предотвратить концентрирование приложений GNOME вокруг этих API. Unity воспринимается как угроза для GNOME, а не как возможность и конкуренция, способствующая его развитию.

В отличие от среды KDE, в которой приложения "просто работают" с Unity, благодаря проделанной работе по стандартизации. Unity - это оболочка для GNOME. Сегодня лидеры проекта GNOME должны решить, хотят ли они, чтобы результаты этой конкуренции стали вкладом в их проект, или нет. В свете слабой надежды на то, что внутренние правила разработки в GNOME можно исправить, тем не менее разработчики Ubuntu успешно сотрудничают на площадке FreeDesktop.org с KDE и другими проектами, сосредоточив усилия на определении стандартов. GNOME явно не воспринял эту площадку всерьёз, но, возможно, если и дальше Unity и KDE покажут хорошие результаты работы, точка зрения Gnome изменится.

Спустя день, Дэйв Нири (Dave Neary) подготовил развернутый ответ. Краткие тезисы таковы:

  • FreeDesktop.org не работает в качестве органа по стандартизации;
  • Марк Шаттлворт не понимает, как работает GNOME;
  • GNOME понять нелегко;
  • Между Canonical, GNOME и KDE пролегла серьёзная трещина недоверия;
  • В каждом из этих проектов работают непростые личности;
  • Закулисные разговоры - яд;
  • Чтобы люди могли работать вместе, им надо находиться в одном и том же месте.

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

Дополнение 1: Аарон Сейго (Aaron Seigo), основной разработчик десктоп-оболочки KDE Plasma, принял участие в дискуссии на стороне Марка Шаттлворта. По словам Аарона, предложенная разработчиками Ubuntu система StatusNotifiers (интеграции апплетов на панель, управление статусами на системном трее, размещение данных в области уведомлений и формирования меню через D-Bus) решает многие накопившиеся проблемы в ранее используемой системе XEmbed. Технология была поддержана проектом KDE и рассматривалась как один из шагов по унификации десктоп-систем. Но проект GNOME, несмотря на продвижение данной технологии в рамках стандарта freedesktop.org, отказался от неё и реализовал собственный вариант, завязанный на GNOME Shell и неприменимый в других системах.

Поэтому, утверждать о несовместимости libappindicator с GNOME Shell по меньшей мере некорректно, так как GNOME Shell специально развивается в другом направлении, несовместимом со спецификациями freedesktop.org. При этом никто не мешает воспользоваться в GNOME Shell универсальной системой, а не создавать её собственный вариант. По поводу ухода разработчиков Ubuntu от публичных дискуссий, Аарон Сейго заявил, что ничего подобного при общении команды KDE Plasma с представителями Ubuntu замечено не было, в списке рассылки freedesktop.org xdg обсуждения велись в конструктивном русле и все высказанные пожелания и предложения были в конечном итоге отражены в libappindicator.

Дополнение 2: Марк Шаттлворт ответил на второе письмо Нири.

Источник: http://www.opennet.ru/opennews/art.shtml?num=29863