GNOME vs. KDE
Материал из Lurkmore
GNOME vs. KDE — дисциплина специальной олимпиады, практикуемая в обсуждениях Линукса, а точнее — десктопного Линукса, в том числе на ЛОРе. Состоит из споров между апологетами двух конкурирующих столпов десктопных приложений — Qt и GTK+, и, соответственно, основанных на них KDE и GNOME.
Содержание |
[править] Суть™
В отличие от этих ваших винды с макосью, графическая система X Window System (она же "иксы") не предоставляет стандартного общесистемного набора виджетов. Приложение имеет окно как область для рисования, а что там рисовать — это его дело. Поэтому на заре истории юниксового гуя каждый Вася Пупкин писал свою библиотеку виджетов и извращался как мог.
Затем появился KDE, основанный на несвободной в тот момент библиотеке Trolltech Qt. Именно несвободность Qt дико возмутила Ъ-сторонников опенсорса, и те, позаимствовав библиотеку виджетов у одной ГНУтой рисовалки, запилили на её основе свою среду рабочего стола GNOME, с б/дж. и ш., которую с тех пор стали ставить по умолчанию в разных дистрибутивах (тогда Гном был единственным полностью свободным полноценным DE).
А затем подтянулись и Тролли — перевели Qt на свободную лицензию, сначала самописную QPL, а затем и GPL. Когда они с потрохами продались Нокии, та вообще открыла Qt 4.5 под LGPL, но это было потом. Постепенно KDE и GNOME перетянули на себя большую часть пользователей Линукса, и теперь даже приложения, не входящие в эти тулкиты, либо пишутся сразу на Qt или GTK+, либо старательно под них мимикрируют (как правило, под второй).
Итог: имеются две конкурирующие среды с разным поведением, разными движками тем оформления и разными настройками. При этом обе весьма тяжелы, и для запуска гномовских и кедовских приложений одновременно нужны многие сотни памяти, а некоторые кадры не хотят их устанавливать параллельно по религиозным соображениям. Вот такие пироги.
[править] Аргументы сторонников GTK+
- Qt написан на б-гомерзком C++, причём даже не современном, а достандартных времён, а GTK на няшной сишке.
- Зато код на C++ проще читать, чем все эти g_overly_long_function_name с приведениями типов.
- Qt требует не только компилятор C++, но ещё и свой препроцессор moc.
- moc поставляется в составе самого Qt и интегрируется так же, как и любой другой внешний инструмент компиляции. Гномовские приложения, кстати, тоже используют различные внешние утилиты в процессе сборки, включая gnome-doc-utils, компилятор схем GSettings, а также GIR, до появления которого рефлексии и автоматической генерации байндингов в GTK не существовало как класса.
- Qt несвободен.
- Когда-то это было действительно так, но это уже давно 4.2. А начиная с четвёртой версии свободны и виндовый, и маковский вариант.
- Qt разрабатывает корпорация, а GTK — сообщество.
- См. ниже в аргументах сторонников Qt.
- GTK не изобретает велосипедов и использует, где возможно, существующие технологии, включая Pango, Cairo и GNU Gettext. А Qt — раздутый монолит.
- Таки да, в Qt весь код отрисовки свой. С другой стороны, это позволяет интегрировать весь API, а не лезть на каждый нетривиальный чих на уровень ниже GTK. А за стандартами freedesktop.org Нокия всё-таки следит — тот же fontconfig, область уведомлений, даже мимикрия под GTK в стандартной поставке.
[править] Аргументы сторонников Qt
- Qt написан на расово верном C++, а в GTK нагородили свою, страшную реализацию ООП на C, которая на каждый чих требует приведения типа и boilerplate-код.
- С другой стороны, к коду на C проще писать байндинги, в том числе автоматически. Синтаксис можно причесать использованием более вменяемого языка для приложений, хотя бы и того же C++ (gtkmm). В GObject в отличие от C++ изначально заложены сигналы и бинарная совместимость, которые в Qt достигаются костылями. Правда, разбираться в сишном коде самого GTK или там GLib — занятие отнюдь не из приятных.
- Qt — продукт коммерческого уровня от коммерческой компании, а GTK — разработка энтузиастов на коленке.
- Ну не на такой уж коленке. За GNOME Foundation также стоят коммерческие компании — в основном Red Hat, отчасти Novell и Canonical. При этом GTK пилится разработчиками GNOME, которые знают, что им нужно от тулкита. А вот KDE, в отличие от Qt — чисто некоммерческий проект сообщества.
- У Qt лучше документация и средства разработки, потому что пилится в том числе для коммерческого использования.
- Качество документации по API для самого тулкита примерно одинаково, но по Qt, таки да, больше вменяемых гайдов и учебников, а также нормальных IDE (в том числе Qt Creator от самой Нокии). Зато документация по байндингам, уж на что не фонтан в GTK, в Qt ещё хуже. Если при программировании на Vala или, скажем, Gtk# можно напороться на грабли, то какое-нибудь Qt Jambi — это сплошное минное поле.
- Cairo тормозит, отрисовка Qt быстрее.
- Первые версии Cairo действительно тормозили, но постепенно это дело выправили. В последнем релизе появилось аппаратное ускорение с помощью cairo-gl, правда, ещё мало где используемое. Сейчас же, с аппаратным ускорением как XRender, так и OpenGL, скорость отрисовки упирается в основном не в тулкит. а в видеодрайвер, состояние которых в Линуксе — "местами снег, местами град, местами кислый виноград". К тому же первые версии KDE 4 умудрялись адски затормаживать отрисовку изначально быстрого Qt 4, хотя сейчас это, похоже, уже выправили.
- Qt и KDE сейчас развиваются быстро, а GNOME стагнирует.
- Это сейчас. Во времена позднего KDE 3 всё было с точностью до наоборот. Тролли провели работу над ошибками и запилили действительно хорошую четвёртую версию, а GTK 2, как в своё время Qt 3, стал заложником обратной совместимости. Вот выйдет GTK/GNOME 3 — тогда и посмотрим.
- Qt лучше интегрируется с платформами, отличными от X, такими, как Windows и Mac.
- А вот с этим не поспоришь. Действительно, GTK на этих платформах выглядит как негр-шпион, заброшенный в Сибирь, отчего и остаётся преимущественно линуксовым тулкитом.
[править] GNOME 3. Грядущие холивары
Надо сказать, что на данный момент (2.32) Гном действительно представляет собой страшную кашу из разных технологий (одно только соседство gconf и dconf чего стоит). Це усё потому, что изначально они хотели выпустить GNOME 3 ещё в сентябре, но в последний момент передумали и всё, что уже успели портировать на ещё сырой третий GTK, спешно портировали обратно на второй.
Тем временем Qt развивается, а GTK версии два задыхается под грузом обратной совместимости, мешающим реализовать действительно радикальные нововведения. А релиз солнцеликого третьего Гнома, который во мгновение ока решит все проблемы разработчиков, всё откладывается. Хотя три с половиной разработчика GTK действительно что-то пилят в третьей версии (уже выпилили устаревшие рисовальные API в пользу няшного Cairo) и глядишь, действительно сделают из третьей версии если не конфетку, то по крайней мере нечто съедобное.
Как и при релизе KDE 4, когда эфемерный третьегном всё-таки материализуется, ждём срачей "Гном уже не торт" и "GNOME 3.0 != GNOME 3". Запасаемся попкорном, улыбаемся и машем.
Таки появились первые скрины и даже загрузочный Live cd / usb на котором можно полюбоваться на нестабильные версии нового DE. Скриншоты словно пытаются напугать нас своими ШГ, а общий вид интерфейса туго копирует макось и представляет собой некое жуткое YOBA. Анонимные аналитики ЛОРа плюются и предрекают гному скорую смерть.
06.04.2011(по новости на ЛОРе), это чудо все-таки вышло. Чем вызвало бурный когнитивный диссонанс почти у всех, и не только на ЛОРе. Чего только стоят одни эпичные высеры кирпичей в теме про тестирование Fedora 15 Beta.
Небольшой список изменений:
- Гном-Шелл теперь по умолчанию в составе гном 3. Именно это вызвало больше всего криков, так как сделали гном абсолютно неюзабельным. "Интерфейс для мобилок какой-то". Причем на планшетах это хорошо смотрится, но на десктопе, это сущий АД(как и юнити). Вместо меню гнома 2 запилили некий "Обзор"(en: Activities) в углу. В "Обзор"'е как раз и разместили меню. И если какую-нибудь программу не добавить в "Избранное"(а туда много не влезет, в зависимости от размера экрана), то полноэкранному меню ты будешь искать эту программу долго. Поиск конечно тоже сделали, но кто им пользуется, без особого случая?
Еще - если попытаться в меню еще раз запустить приложение, которое уже запущено(например - терминал), то будет просто переход на окно этого приложения(sic!). Из-за такого фейла, сам Линус покрыл ругательствами GNOME 3, назвал разрабов гнома сумасшедшими, призвал форкнуть GNOME 2, и перешел на XFCE
Еще в обзоре видится вкладка "Окна", которая открывается первой при клике на "Обзор", или тыкнув курсором в левый верхний угол. Там можно насоздавать виртуальных рабочих столов, там отображаются все окна в миниатюрах. Безусловно, полезная, "нужная" и красивая функция с миниатюрками, которая раньше в гноме 2 примерно реализовывалась только с помощью компиза. В стандартном гноме этого не хватало. Только вот разрабы гнома позабыли, что народ привык к панели задач, и сделали это переключалкой окон по умолчанию. Т.е. панель задач(да-да, эту панель задач, как в винде, где можно переключаться между окнами) выпилили к чертям. И теперь переключиться между окнами можно только с помощью Alt+Tab(и то, теперь оно дефолтно ориентируется не на окна, а на приложения. Т.е. хрен переключишься между окнами браузера, можно там только выбрать браузер, и последнее активное его окно и выйдет вперед. Хорошо что стандартный альт-таб можно запилить обратно с помощью расширения) и этого "Обзора". Это как раз неплохая причина бурного обсирания ГШ. Потому что даже попытки привыкнуть к этому приведут к рвоте кирпичами, и обычной рвоте, что уж говорить о высере кирпичей. По крайней мере у анонимуса, пишущего это, так и было, и он решил не продолжать попытки во избежании тяжелых последствий,
И еще в ГШ "рабочий стол" с иконками по умолчанию выпилен. Придется переть в dconf, и поставить одну галочку если оно тебе нужно(Или можно воспользоваться GNOME Tweak Tool).
Без расширений, ГШ использовать невозможно. Или нужно иметь очень мощное терпение
NM-applet в ГШ как говно. Даже простое DSL соединение чтоб настроить, придется использовать nm-connection-editor. Из-за того, что "System Settings" не умеет многое настраивать. Благо что в GNOME 3.2 сделали NM, хоть как-то юзабельнее.
Разрабы гнома так-же вставили костыль для пользователей приприетарных дровов, называемый Gnome 3 Fallback. Это такое подобие гнома 2(GNOME 3 без ГШ), со страшными панельками и ограниченным кол-вом апплетов. Многим приходится сейчас это и использовать. Но заметим: оно никогда не сможет заменить гном 2. И еще, после недавней новости о том, что ГШ больше не нужно ускорение GPU, есть слухи что они хотят выпилить Fallback
- Теперь то, что относится ко всему гному(и к ГШ, и к Fallback):
-- Наутилус урезали до невозможности. Превратили в какой-то файл менеджер макоси
-- В System Config все настройки урезаны до невозможности. Включая до невозможности выставить имя Bluetooth компу. Так и останется оно ${HOSTNAME}-0, если не найти другой способ изменить его
Из персонализации - нельзя в System Settings изменить что-то, кроме обоины. Тему GTK в настройках "Внешнего вида" изменить нельзя, и тему иконок тоже. В убунте 11.10(юнити которого как раз теперь лежит на плечах GNOME 3.2), в system settings сделали какой-то костыль с темами, но не понятно, это официальное добавление, или разрабы убунты поставили этот костыль. Но тему иконок по прежнему не сменить. Как и тему GTK2(потому что не все приложения успели адаптироваться, и перейти на GTK3. Ну или хотя-бы мимикрировать под GTK3)
Настройки gnome-power-manager урезали до "через сколько отключать экран", или примерно до этого
Но по сути, есть предположения, что они не "урезали настройки" в прямом смысле этого слова, а просто не дописали System Config. Потому что если все-таки залезть в dconf-editor, то там настроек вполне хватает. Даже для gnome-power-manager. Видимо они не успели ко всем ключикам добавить графическую галочку в System Settings, или решили половину просто перенести в dconf. Ведь хомячкам же не нужно столько настроек! А как же!
Причем не смотря на все недостатки, некоторым ЭТО нравится и они умудряются этим пользоваться. Используя расширения они пытают бедный гном, и делают из говна конфетку. Но достается все это очень не хилым трудом, включая лазаньем по dconf'ам, и написанием своих расширений
В общем, разрабы гнома совершили такой-же фейл как и когда-то - Microsoft со своим Windows Phone 7. Когда это нужно еще пилить и пилить, они решили это зарелизить еще не готовым. Потому что хомячки же ждут! Еще как ждут, нового зонда!
Так или иначе, будем следить за развитием событий. Допилят ли GNOME 3, или сделают хуже, увидим
![]() |
[ + ] GNOME vs. KDE — лучше всех! Я гарантирую это!
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
![]() |
[ + ] GNOME vs. KDE является официальной дисциплиной Специальной ОлимпиадыДля более подробной информации посетите портал «Special Olympics» |
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|