GNOME vs. KDE
Народ требует хлеба и зрелищ!
Народ требует иллюстраций к статье!
В конце концов, если бы мы хотели почитать, мы бы пошли в библиотеку.
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, тоже основана на нём. Как и весь зоопарк гномоспиноффов.
- Теперь есть и LXQT, который жрет меньше XFCE [[пруфлинк?]https://www.linux.org.ru/forum/talks/14502677]
Аргументы сторонников Qt
Эта статья должна быть до- или даже полностью переписана.
Перед вами — очередная безблагодатная статья.
Сия халтура нам не нравится, и только вера в светлое будущее удерживает её на этом свете.
Указана следующая причина: сделайте хотя бы в виде таблицы «аргумент за аргумент», а то устроили сраный чятик.
На странице обсуждения могут быть подробности.
- 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 может накрыться медным тазом.
- Это говорит об ограниченности потребностей кедерастов и их любви жрать, что дают. На тему сходства в этом отношении с Windows можно неплохо потроллить оппонента.
- KDE перешел на Wayland в полном составе (KDE 5 ничего от KDE 4 не потерял), а Gnome все потерял по пути (сравните GNOME 2 и 3).
- Таки KDE5 под Wayland работает быстро и регулярно плазма не падает. Справедливости ради отметим, что GNOME не лучше: пока что Mutter работает медленно. Более того, хотя весь гномософт портирован, в GTK+ 9000 багов при работе под Wayland (Анонимус лично насиловал гугл в течение двух часов, чтобы найти неподтвержденный баг в багзилле GNOME, к которому был приложен патч).
- Qt - это не только KDE! Такая лёгкая и компактная штука, как LXQT, тоже основана на нём. Как и Liri, Deepin и некоторые другие среды рабочего стола.
Пропущена длинная беседа с выяснениями, кто есть родственники, родители собеседника, сам собеседник. Приходит модератор и раздает всем волшебных пиздюлей, вплоть до выпила всего диапазона и блокировки прохождения рекапчи.