GNOME vs. KDE

Материал из Lurkmore
Перейти к навигации Перейти к поиску

Народ требует хлеба и зрелищ!

Народ требует иллюстраций к статье!
В конце концов, если бы мы хотели почитать, мы бы пошли в библиотеку.

GNOME vs. KDE — дисциплина специальной олимпиады, практикуемая в обсуждениях Линукса, а точнее — десктопного Линукса, в том числе на ЛОРе. Состоит из споров между апологетами двух конкурирующих столпов десктопных приложений — Qt и GTK+ и, соответственно, основанных на них KDE и GNOME.

Суть™

В отличие от этих ваших винды с макосью, графическая система X Window System (она же «иксы») не предоставляет стандартного общесистемного набора виджетов. Приложение имеет окно как область для рисования, а что там рисовать — это его дело. Поэтому на заре истории юниксового гуя каждый Вася Пупкин писал свою библиотеку виджетов и извращался как мог.

Первой попыткой создать единую графическую библиотеку был Motif, выпущенный в конце восьмидесятых. Но его использовали лишь крупные компании для написания собственных программ под Unix-based дистрибутивы из-за его небесплатности, и он не пользовался популярностью среди линуксоидов (хотя все-таки нашлись желающие запилить его свободный аналог под названием LessTif).

Затем появился 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 в стандартной поставке.
  • Gnome первый опробовал вяленого (Wayland)
    • См. ниже в аргументах сторонников KDE.
  • GTK+ — это не только гномики! Такая легкая и компактная штука, как XFCE, тоже основана на нём. Как и весь зоопарк гномоспиноффов.

Аргументы сторонников Qt

Эта статья должна быть до- или даже полностью переписана.

Перед вами — очередная безблагодатная статья.
Сия халтура нам не нравится, и только вера в светлое будущее удерживает её на этом свете.
Указана следующая причина: сделайте хотя бы в виде таблицы «аргумент за аргумент», а то устроили сраный чятик.
На странице обсуждения могут быть подробности.

Gtk to Qt - a strange journey [linux.conf.au 2014]
Gtk to Qt - a strange journey [linux.conf.au 2014]
Линус рекомендует!
  • Qt написан на расово верном C++, а в GTK нагородили свою, страшную реализацию ООП на гойском C, которая на каждый чих требует приведения типа и boilerplate-код.
    • С другой стороны, к коду на C проще писать байндинги, в том числе автоматически. Синтаксис можно причесать использованием более вменяемого языка для приложений, хотя бы и того же C++ (gtkmm), а лучше Vala. В GObject в отличие от C++ изначально заложены сигналы и бинарная совместимость, которые в Qt достигаются костылями. Правда, разбираться в сишном коде самого GTK или там GLib — занятие отнюдь не из приятных.
  • Qt — продукт коммерческого уровня от коммерческой компании, а GTK — разработка энтузиастов на коленке.
    • Ну не на такой уж коленке. За GNOME Foundation также стоят коммерческие компании — в основном Red Hat. При этом GTK пилится разработчиками GNOME, которые знают, что им нужно от тулкита. А вот KDE, в отличие от Qt — чисто некоммерческий проект сообщества.
  • За KDE стоит Novell, Blue Systems — эти побогаче и попопулярнее вашей красной шляпы.
    • Таки шляпа богаче обеих вместе взятых, да и не одна она спонсирует GNOME. В конце концов, как бы смешно не было, от FSF тоже доходы есть, кормушка-то у них общая.
  • У 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 на этих платформах выглядит как негр-шпион, заброшенный в Сибирь, отчего и остаётся преимущественно линуксовым тулкитом.
    • Но в последних версиях GTK причесали, и он использует нормальную тему Adwaita вместо кошмарного Raleigh. Но теперь, когда Qt портирован на Android, кедерасты тычат в нос гномосекам именно его.
  • KDE един и цел, а ваш Gnome распадается со скоростью ядерной реакции. У KDE был всего один распад за всю историю, и тот уже закончился и все объединилось обратно. А ваш Gnome продолжает распадаться с каждым релизом все сильнее и сильнее. Вначале Unity, потом MATE, потом cinnamon, потом Flashback… И результаты распада популярнее самого Gnome.
    • Это говорит об ограниченности потребностей кедерастов и их любви жрать, что дают. На тему сходства в этом отношении с Windows можно неплохо потроллить оппонента.
      • Просто KDE настолько нравится кедарастам, что им форкать KDE не нужно. Более того, к ним еще и LXDE (LXQT) присоединился, и Unity (Unity 8 на QT), что доказывает что Gnome может накрыться медным тазом.
  • KDE перешел на Wayland в полном составе (KDE 5 ничего от KDE 4 не потерял), а Gnome все потерял по пути (сравните GNOME 2 и 3).
    • Таки KDE5 под Wayland работает быстро и регулярно плазма не падает. Справедливости ради отметим, что GNOME не лучше: пока что Mutter работает медленно. Более того, хотя весь гномософт портирован, в GTK+ 9000 багов при работе под Wayland (Анонимус лично насиловал гугл в течение двух часов, чтобы найти неподтвержденный баг в багзилле GNOME, к которому был приложен патч).
  • Qt - это не только KDE! Такая лёгкая и компактная штука, как LXQT, тоже основана на нём. Как и Liri, Deepin и некоторые другие среды рабочего стола.

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


Шаблон:СО

Loading comments...