LINUX.ORG.RU
ФорумTalks

Почему почти весь линукс десктоп на Gtk?

 , , ,


2

2

В свете недавно проведенного опроса оказалось распределении десктопов по тулкитам где-то такое

  • Qt - 25.9%
  • Gtk+ - 62.7%

Почему Qt так сливает через столько лет? Ведь аргумент о лицензии уже давно устарел. Почему не переделали все на Qt и компании, такие как Canonical, Red Hat, Mozilla, Google, Sun/Oracle пишут свой софт на Gtk+?

Прошу прояснить ситуацию

★★★★★

Последнее исправление: vertexua (всего исправлений: 4)

Почему Qt так сливает через столько лет?

Это же очевидно. qt==kde. gtk>=gnome. Если бы кое-кто не прибивал свои основные приложения к кедам и позволил небольшую фрагментацию, qt пользовался бы большей популярностью. Впрочем разработчики третьегнома сейчас делают то же самое. Вангую всплеск велосипедостроения по части тулкитов через пару лет.

siphonops ★★★
()
Ответ на: комментарий от siphonops

Если бы кое-кто не прибивал свои основные приложения к кедам и позволил небольшую фрагментацию, qt пользовался бы большей популярностью

Вот портируют kdelibs в Qt...

Kindly_Cat
()

Потому что большинство линукса - форки дебиана и убунты.

cipher ★★★★★
()
Ответ на: комментарий от zhuravlik

VirtualBox ранее принадлежал InnoTek, так что саны/ораклы, быть может, выбором тулкита вообще не задавались.

d1337r
()
Ответ на: комментарий от Kindly_Cat

Ну наверно. У них же там какая-то непонятная циркуляция кода, судя по зависимостям.

siphonops ★★★
()
Ответ на: комментарий от punya
bruteforce@satanas:~$ apt-cache depends libqt4-core
libqt4-core
  Зависит: libqt4-dbus
  Зависит: libqt4-network
  Зависит: libqt4-script
  Зависит: libqt4-test
  Зависит: libqt4-xml
  Зависит: libqtcore4
  Конфликтует: libqt4-core:i386
BruteForce ★★★
()

Qt - 25.9%

Gtk+ - 62.7%

GNU/Linux - 1.5%

Windows - 90%

Jaga ★★★
()
Ответ на: комментарий от quiet_readonly

Кстати, синдром утёнка практически нельзя обойти, что печально

а это здесь каким боком?

waker ★★★★★
()
Ответ на: комментарий от vurdalak

А еще KDE4 был в свое время нестабильным, поэтому энтерпрайз ушел на GTK.

И какой же софт УШЕЛ на gtk с момента выхода KDE4? Полимеры они не просрали, у них их просто не было никогда

iRunix ★★★★
()

А меня тошнит от логотипа гнома. Это же только для футфетишистов. Мерзкая нога вонючего гнома. Фу.

Jaga ★★★
()
Ответ на: комментарий от Dendy

Глупости чистой воды, вы ещё лет через 7 вспомните про Qt3. Есть моменты, когда дальнейшая совместимость исходного кода препятствует архитектурным новшествам и смена старшей версии обусловлена качественными изменениями. Со времён выхода Qt4 для Qt3 выпустили несколько корректирующих релизов. Qt3 до сих пор стабильна, пиши — нехочу. Тем не менее сколько непортированных на Qt4 программ осталось? Я навскидку даже одну не припомню, что говорит об отличном подходе разработчиков Qt по поддержке процесса портирования.

дело не в том, сколько их осталось (хотя я могу вспомнить несколько), а в том, сколько времени и сил это переписывание заняло, вместо того чтобы софт развивать. сколько разработчиков вообще ушло и забросило свои проекты. сколько проектов после переписывания превратилось в УГ.

Далее, мнимые 10 лет поддержки в GTK это какой-то оксюморон. Совместимость между версиями обусловлена стагнацией самой библиотеки.

в чем заключается стагнация?

Если Qt4 оставить мёртвым грузом ещё лет на 20, могу я сказать, что совместимость Qt4 достигла в сумме 27 лет?

нет.

Если бы с GTK2 было так всё хорошо, зачем выпускать 3-ю версию? Ответ будет тем же.

с GTK2 как раз все хорошо, а вот с GTK3 не очень. знаю не по наслышке, т.к. мой проект поддерживает оба тулкита, и позволяет юзеру выбирать то что ему удобнее, в настройках. поэтому можно сравнивать side by side. так вот, проблем с GTK3 на порядок больше, и с каждым релизом что-то новое ломают. лично я всегда предпочитаю использовать сборки софта под GTK2, если это возможно - они просто лучше работают. быстрее, и меньше багов.

а насчет причин выпуска 3й версии.. они были, но не сбылись. в итоге получилось, что добавили пару бесполезных виджетов, выпилили функции отрисовки из gdk, незначительно поменяли API (на уровне исходников по прежнему можно сохранять совместимость кода с GTK2), поломали темы, поломали кучу других вещей, и, в принципе, не добавили ничего полезного. во всяком случае, мне не попадалось.

Qt5 вообще позиционируется как единый фреймворк для всех платформ, альтернатив которому не видно даже на горизонте.

в этом треде уже не раз упоминали, почему этот единый фреймворк не подходит. а на мобильных платформах особенно.

и напоследок, если не трудно, приведите пример своего проекта (или проектов) на qt, было бы интересно увидеть, откуда столько фанатизма.

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от quiet_readonly

Но вот что характерно - всё больше программистов набирают опыта программирования в работе с php, javascript, action script и C#, и такие люди почти не умеют отслеживать ресурсы или утечки памяти.

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

waker ★★★★★
()
Ответ на: комментарий от kernel

Вот и ответ на ваш вопрос - если вы не фонат с++, не вендузятник, а пишете на перлопитонах под линупс и на венды вам начхать - идея использовать Qt вам в голову прийти не может. Соответственно, отсюда и проценты на линуксдесктопе.

+1

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

waker ★★★★★
()
Ответ на: комментарий от siphonops

Это же очевидно. qt==kde. gtk>=gnome. Если бы кое-кто не прибивал свои основные приложения к кедам и позволил небольшую фрагментацию, qt пользовался бы большей популярностью.

Фонтанируешь/фантазируешь. Возьми любой биндинг для Qt (не для кед, обрати внимание). Напиши на нем приветмир с некоторым количеством виджетов. Он будет подхватывать тему ИЗ KDE автоматом, но выглядеть как говно в кедах он не будет только потому, что не зависит от kdelibs. Срочно проследуй в газпром в отдел поставок сырья.

GateKeeper ★★
()
Ответ на: комментарий от waker

вы сами рискнули бы на своем компьютере запускать ПО созданное этими недоучками?

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

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

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

во-первых, вопрос был адресован не вам. во-вторых, причем тут дезигнеры, когда речь о коде?

waker ★★★★★
()
Ответ на: комментарий от waker

cам пишу прикладное на сях, и очень нравится. юзерам тоже.

Отвечу, как юзер, мне глюбоко фиолетово, на чем там твой плеер написан. Мне надо чтобы он интсалился в пол пинка, работал без багов, был удобен. А на чем ты там его пишешь, то есть только твои проблемы.

AF ★★★
()
Ответ на: комментарий от AF

Мне надо чтобы он интсалился в пол пинка, работал без багов, был удобен.

все верно, главное результат. сишечка позволяет его достичь как нельзя лучше.

waker ★★★★★
()
Ответ на: комментарий от kernel

ну как бы в этом само задание =) именно на pure C писать.

но думаю никто не будет возражать, если выберу любой другой ЯП

BattleCoder ★★★★★
()
Ответ на: комментарий от vertexua

оо, печально. и странно. я думал он живее всех живых

только мне, к сожалению, только gtk+-2 нужен (хвала небесам, что не gtk+-1), о третьей версии речи не идёт :)

BattleCoder ★★★★★
()
Ответ на: комментарий от waker

все верно, главное результат. сишечка позволяет его достичь как нельзя лучше.

Не стоит аппроксимировать свои личные предпочтения на всех коллег по цеху. Кому удобне на С, кому на С++, а кому говно все, что не лисп.

AF ★★★
()
Ответ на: комментарий от AF

Не стоит аппроксимировать свои личные предпочтения на всех коллег по цеху. Кому удобне на С, кому на С++, а кому говно все, что не лисп.

вы таки определитесь — вы пишете как юзер, или как фанат C++? и срочно сделайте «man аппроксимация».

waker ★★★★★
()

У qt слабая совместимость. Многие хорошие программы умирают оттого, что написаны на qt, но никто не спешит переписать их с версии 3 на 4, а поддержка старых версий в дистрибутивах прекращается. Сейчас снова вводится новая версия 5, и всё надо будет снова переписывать.

Deleted
()
Ответ на: комментарий от waker

дело не в том, сколько их осталось (хотя я могу вспомнить несколько), а в том, сколько времени и сил это переписывание заняло

Извините, но на то они и разработчики, чтобы изучать, познавать новое. Если у них с этим проблемы, то боюсь и проекты их нужны мало кому. Таков уж процесс эволюции, когда разработка фреймворка заходит в тупик и не отвечает новым требованиям. Хочешь — изучай новое, иначе — пользуйся старым, благо оно вылизано и стабильно. Для портирования у желающих было несколько лет.

С GTK, насколько я понимаю, происходит сейчас нечто похожее. Две версии, одна устаревшая, но работает, вторая идеологически верная, но с глюками. Выходит, что силы разработчиков распыляются, на GTK2 уже забили, а GTK3 ещё сырое.

в этом треде уже не раз упоминали, почему этот единый фреймворк не подходит. а на мобильных платформах особенно

Бегло пробежался, можете тыкнуть где именно упоминалось? Основные проблемы наверное будут — размер самого Qt и интеграция с родным Look&Feel. Первое решается путём создания пакета с динамическими библиотеками для мобильной платформы. В крайнем случае можно линковаться статически, для крупных программ, вроде игр, лишние 5-10 Мб карман не тянут. Думаю, первые проекты для мобильных платформ появятся через полгода-год, к тому времени размер программы станет влиять ещё меньше. Второе решается путём гибкой абстракции API, унификации под различные типы устройств. Серебряной пули здесь быть не может, и Qt не панацея, так или иначе он останется в своей нише. Но в ситуации, когда совместимость исходного кода будет стоять на первом месте, а платформозависимость минимальна, Qt станет идеальным выбором.

и напоследок, если не трудно, приведите пример своего проекта (или проектов) на qt, было бы интересно увидеть, откуда столько фанатизма

В основном работаю на закрытых проетах, увы, а сейчас сам Qt отошёл на второй, а то и третий план. Из открытых проектов могу показать только конвертер в Vorbis/Ogg: http://gitorious.org/fogg

Про фанатизм тут мимо, просто устаёшь от массы голословности, которой давит на тебя ЛОР. Есть задача со своей нишей, конечной целью и есть инструмент, с помощью которого её можно выпонить. Вас не раздражает, когда люди начинают отвёрткой забивать гвозди, и плеваться на инструмент, а услышав про молоток переспрашивают: «А им шуруп им закрутить можно?».

Я постарался привести примеры главных улучшений, добавленных в Qt. Вам встречный вопрос, поскольку вы в теме: какие нововведения за последние лет 5 были добавлены в GTK и насколько они стали востребованы? Поскольку со стороны кажется, что фреймворк стоит на месте.

Dendy ★★★★★
()
Ответ на: комментарий от waker

вы таки определитесь — вы пишете как юзер, или как фанат C++?

Если я пишу как юзер, то я это специально указываю. Во всех остальных случаях, пишу как лоровец!

Меня еще никто фанатом с++ не обзывал )

AF ★★★
()
Ответ на: комментарий от Dendy

С GTK, насколько я понимаю, происходит сейчас нечто похожее. Две версии, одна устаревшая, но работает, вторая идеологически верная, но с глюками. Выходит, что силы разработчиков распыляются, на GTK2 уже забили, а GTK3 ещё сырое.

gtk2 по прежнему работает. портирование с 2 на 3 даже крупного приложения занимает пару вечеров, и имеется возможность оставить совместимость исходников с 2. в qt такое врядли получится.

Бегло пробежался, можете тыкнуть где именно упоминалось?

вот, например

для крупных программ, вроде игр, лишние 5-10 Мб карман не тянут.

зачем в играх вообще qt?

Вам встречный вопрос, поскольку вы в теме: какие нововведения за последние лет 5 были добавлены в GTK и насколько они стали востребованы? Поскольку со стороны кажется, что фреймворк стоит на месте.

никаких существенных. gtk стал полноценным тулкитом для построения GUI примерно с версий 2.12-2.16, до этого приходилось прибегать к помощи libegg (например, для поддержки system tray icon). в нем есть все что нужно, а если хочется большего — все подключается через дополнительные библиотеки (libegg, libsexy). философия gtk в том, чтобы быть хорошим, надежным, стабильным GUI-тулкитом, с помощью которого можно разрабатывать приложения с долгим сроком жизни/поддержки, и не более того. и это хорошо.

qt, в отличие от gtk, это целая платформа, со своим IDE, препроцессором C++, функциями для работы с сетью, 3д графикой, файлами, и т.д.

gtk не занимается решением этих задач, поэтому видимое отсутствие развития - нормально. тех функций, которые gtk предоставляет, достаточно для создания GUI любой сложности. для серьезных проектов, стабильность и совместимость намного важнее, чем то что делает qt. в мире windows, по аналогии, есть win32api. ~20 лет стабильности, и отсутствие существенного развития. что не мешает разрабатывать на нем самые современные интерфейсы.

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)

Всё очень просто же:


  • Qt был некоторое время проприетарным, gtk — нет.
  • На gtk можно писать приложения с любым ЯП, Qt же Си++ only (inb4: костыли)
  • gtk — легковесная библиотека, а у qt одно только время компиляции сопоставимо с временем компиляции всего KDE.
quantum-troll ★★★★★
()
Ответ на: комментарий от BattleCoder

оо, печально. и странно

Все естественно, GObject Introspection - это то к чему они так долго шли. Теперь генерация байндинга возможна полностью в рантайме

vertexua ★★★★★
() автор топика
Ответ на: комментарий от waker

причем тут дезигнеры, когда речь о коде?

И те и другие участвуют при создании GUI-app. Не? И от тех и от других зависит параметр usability. Не?

во-первых, вопрос был адресован не вам

С этим пройдите в электронную почту / IM. Тут публичное обсуждение всех со всеми. Ты вот в списке адресатов ТС тоже не перечислен, но ведь как-то втерся в тред.

GateKeeper ★★
()

Почему не переделали все на Qt и компании, такие как Canonical, Red Hat, Mozilla, Google, Sun/Oracle пишут свой софт на Gtk+?

Ну, у Canonical, ЕМНИП, клиент для Ubuntu One был, кажется, на Qt написан. Red Hat же просто ленятся переходить на что-то новое [для себя]. Google - ни рыба, ни мясо. Sun/Oracle - потому что привязки к GTK у Java допилены лучше, чем привязки к Qt. И, кстати, давным-давно Firefox собирался и под Qt.

А вообще, всё дело в том, что начинающие пользователи ставят Ubuntu и Mint. А в этих дистрибутивах KDE - второстепенное окружение рабочего стола. Да и вообще, на GTK куда больше DE основано: GNOME, XFCE, LXDE, почти все standalone-wm используются в связке с софтом на GTK... а что у Qt? KDE да полумёртвый Razor.

djambeyshik ★★★★★
()
Ответ на: комментарий от GateKeeper

И те и другие участвуют при создании GUI-app. Не? И от тех и от других зависит параметр usability. Не?

в коммерческих приложениях часто. в jff-опенсорсе практически никогда.

Ты вот в списке адресатов ТС тоже не перечислен, но ведь как-то втерся в тред.

тред был адресован всем. сообщение было адресовано конкретному человеку. но я бы не имел ничего против, если бы ответ был хоть как-то в тему.

waker ★★★★★
()
Ответ на: комментарий от GateKeeper

Возьми любой биндинг для Qt (не для кед, обрати внимание). Напиши на нем приветмир с некоторым количеством виджетов. Он будет подхватывать тему ИЗ KDE автоматом, но выглядеть как говно в кедах он не будет только потому, что не зависит от kdelibs.

Представь, что ты решил построить очередное DE. Ты будешь велосипедить с нуля, или попытаешься использовать то, что тебе подходит под концепцию, а остальное написать самостоятельно. На gtk уже сейчас написано множество приложений, которые не привязаны к DE и при выборе gtk (зачем в DE два тулкита?) велосипедить придется меньше, чем при выборе qt, основные приложения на котором фичасты благодаря интеграции в кеды.
Поэтому мы видим XFCE, LXDE, Unity, ROX-desktop там и всякие мета-DE вроде MATE, fvwm-crystal, Cinnamon на gtk. И только razor-qt и trinity на qt.

Фонтанируешь/фантазируешь... Срочно проследуй в газпром в отдел поставок сырья.

Без этого обрамления аргументы звучали бы более весомо.

siphonops ★★★
()
Ответ на: комментарий от quantum-troll

На gtk можно писать приложения Си only, Qt же Си++ only

gtk — куча разнообразного автолулзного шлака, поди найди всё, проконфигури, собери, а у qt одно только время компиляции сопоставимо с временем компиляции всего KDE, зато всё в одном месте (было до недавнего времени).

Благодарности за фикс присылай в этот тред.

GateKeeper ★★
()
Ответ на: комментарий от siphonops

основные приложения на котором фичасты благодаря интеграции в кеды

Это какие приложения без интеграции в кеды у тебя не работают? На непомук что ли намекаешь? Сопрано / Активити?

GateKeeper ★★
()
Ответ на: комментарий от BruteForce

Благодарствую за наводку про офис. Очень нра.

а русификация полная? а то у меня частично по-английски

pyometra ★★★★★
()

Почему Qt так сливает через столько лет?

потому-что 80% проектов старые. Ваш К.О.

ЗЫЖ а тебе зачем?

drBatty ★★
()
Ответ на: комментарий от GateKeeper

Это какие приложения без интеграции в кеды у тебя не работают?

Я не говорю, что они не работают. Но без КДЕ вообще малополезны. Amarok и digiKam например.

siphonops ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.