Я пользуюсь десктопом Linux. Сотрудники Google используют десктоп Linux. Но Linux-десктоп никогда не был особенно популярен. Мигель де Икаса, один из создателей Linux-десктопа GNOME, объяснил причины на то в блог-записи “Что убило десктоп Linux” (What Killed The Linux Desktop). Другими мнениями поделились создатель Linux Линус Торвальдс и ведущие разработчики Linux.
По мнению Де Икаса, неудача Linux-десктопов “коренилась в культуре разработчиков, сформированной вокруг десктопа Linux”. А именно: “Несмотря на то, что Линус входит в команду разработки ядра ОС, несколько лет назад он задал тон всему сообществу, отказавшись от бинарной совместимости драйверов устройств. Парни из команды разработки ядра ОС могли иметь некоторые веские причины для этого и могли заставить индустрию играть по своим правилам. Разработчики десктопа не имели такого авторитета, но последовали такому подходу”.
Он пояснил: “Позицией нашего сообщества было инженерное совершенство: мы хотели избавиться от бесполезного кода в исходниках, плохого дизайна, нам требовался чистый и прекрасный дизайн, мы хотели удалить все следы плохих или плохо реализованных идей из исходного кода. … Так мы и поступали”.
И продолжил: “Мы с пренебрежением относились к API [программным интерфейсам], находя более подходящие решения. Считая “что-либо неправильным”, мы удаляли функциональность. Причины “неправильности” были разные, от “дыры в системе безопасности” до “несовместимости с новым стилем, который мы используем”.
И вот здесь Торвальдс несогласен: “Одно из основных правил разработки ядра ОС заключалось в том, что мы никогда не ломали внешние интерфейсы. Это правило существовало с первых дней, хотя более явным стало лишь в последние несколько лет. Тот факт, что мы сломали внутренние интерфейсы, невидимые приложениям, совершенно не имеет значения и является бессмысленным аргументом”.
Инго Молнар, ведущий Linux-разработчик в Red Hat, добавил: “В проекте ядра Linux всегда строго относились к сохранению внешних, целевых и даже второстепенных ABI. Поэтому бинарный файл игры Rouge, созданной Аланом Коксом 20 лет назад, в 1991-ом, все еще совместим и без модификации работает на самой последней версии ядра Linux — и будет работать еще 50 лет.
Теодор “Тэд” Тсо, другой ведущий разработчик ядра Linux, также высказался по этому поводу: “Разработчики десктопа обратили исключительное внимания на отношение разработчиков ядра к внутренним интерфейсам, ИГНОРИРУЯ позицию разработчиков ядра по отношению к внешним интерфейсам, и сделали неправильные выводы, сосредоточившись на неправильных вещах. Могу ли я предположить, что это целиком и полностью ошибка разработчиков GNOME? Дело в том, что правило "мы никогда не ломаем приложения" оставалось твердым на протяжении десятилетий, и мы отказывались от изменений ядра, если обнаруживали, что это правило нарушено”.
Но речь идет не только о стиле разработки. Де Икаса констатировал: “Второй аспект проблемы в том, что нет двух дистрибутивов Linux, создатели которых договорились о том, какие базовые компоненты они должны использовать. Либо не договорились, либо время перехода не синхронизировано, либо есть конкурирующие реализации одного функционала”.
Де Икаса продолжил: “Усилия по стандартизации ядра и набора базовых библиотек подрывались очередным "Дистрибутивом дня", разработчики которого становились в позицию силы. Доминируя на рынке, вы не хотите идти на какие-то уступки, которые могут помочь другим дистрибутивам догнать ваш. Несовместимость — способ получения доли рынка. Стратегия, которой придерживаются лидеры мира Linux”.
На это Алан Кокс, ведущий Linux-разработчик, ответил: “Это меня рассмешило. Был KDE, появился Мигель и разглагольствуя создал путаницу. … Он чертовски прав, каждый раз команда Gnome создает проблемы совместимости для графического интерфейса, config (который сегодня все еще хуже, чем в Gnome 1.x !) и так далее. Однако, это не болезнь открытого кода, это болезнь некоторых проектов, таких как Gnome”.
Торвальдс согласился: “Некоторые из команды Gnome вообще отрицают наличие внутренних проблем. Они будут рьяно обвинять всех, кроме себя. Этот блог-пост, по видимому, является прекрасным примером”.
Как бы то ни было, де Икаса считает, что оба отмеченные факторы уничтожили экосистему для сторонних разработчиков, нацелившихся на Linux-десктоп: “Можно было приложить максимальные усилия для поддержки одного топ-дистрибутива или, из щедрости, трех топ-дистрибутивов, а потом через шесть месяцев обнаружить, что ваше программное обеспечение не работает”. В обсуждении на Google+ де Икаса добавил: “Разработчикам проприетарного программного обеспечения слишком дорого обходится поддержка десктопа Linux, рынок мал и сильно фрагментирован”.
Он продолжил в своей статье: “Мы упустили ситуацию в целом и отвернулись от сторонних разработчиков. Экосистему, появившуюся благодаря Apple OS X и AppStore, просто невозможно воспроизвести на современном Linux”.
Сегодня де Икаса является поклонником Mac OS X. В дополнение к блог-посту де Икаса написал: “Лучшее в Linux из того, что когда-либо было, -- это Ubuntu и Unity, Fedora и GnomeShell, RHEL и Gnome 2, Debian и Xfce, плюс дистрибутивы KDE. И несмотря на это, есть четыре главных API для десктопов, около полудюжины популярных и слегка несовместимых десктопных версий Linux, каждая со своей собственной курируемой подсистемой ОС, с различными системами управления пакетами, различными зависимостями и слегка различающимися версиями базовых библиотек”.
Есть ли ответ? Есть ли способ сделать Linux популярным на десктопах? Де Икаса высказал свое мнение: “Единственный способ исправить Linux — взять один дистрибутив, один базовый набор компонентов и отказаться от всего другого. Все должны поддерживать унифицированную Linux. Выбрать можно из Canonical Ubuntu, Red Hat Fedora, Debian или нового совместного проекта (о котором разумные люди не договорятся до конца света)”.