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)
Ответ на: комментарий от GateKeeper

Но ты же не будешь последователен, да?

Желаешь, чтобы я был последователен? Хорошо.
Почему Amarok зависит от libplasma3? От libkdewebkit5? От kde-runtime? Если это не прибито гвоздями, то что?
Заметь, я привел только то, что мне нужно поставить на крысу, а не весь список зависимостей.

А еще, позволь спросить, тебя не смущает зависимость некоторого софта известного автора от ядра линукса?

Меня смущает, что некоторый гномовский софт хранит настройки в своей особенной уличной реализации реестра (которая постоянно меняется, судя по изменениям ее редакторов). Или например привязан к библиотекам evolution.
Но позволь, на gtk полно других приложений, которые не привязаны. А вот на qt их мало, едва на десктоп набирается.

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

Почему Amarok зависит от libplasma3? От libkdewebkit5? От kde-runtime?

Потому что пакетный менеджер в твоём дистрибутиве - лютое говно.

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

Qt — это библиотека общего назначения, ориентированная на производительность, кроссплатформенность, обратную совместимость и прекрасно справляется с вышеописанными задачами.

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

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

далеко не все. особенно в играх.

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

Если это не прибито гвоздями, то что?

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

А вот на qt их мало, едва на десктоп набирается

Все до сих пор перечисленные тобой от кед не зависят. И от самого гнома не зависят. Лишь имеют возможность использовать возможности этих ДЕ, буде таковые запущены в цепочке ppid. Еще раз прошу, приведи пример приложения, которое зависит от кед (т.е. без них не запустится вообще), либо верни собаку.

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

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

портирования на новые платформы

Что совсем не помешало тебе в говядине применить гтк, который с горем пополам в, например, винде и макос хоть и собирается, но выглядит как говно, а сейчас у меня еще и опасения, что как только поттеринг, прогуливаясь по офису редхата начнет читать таблички на дверях и увидит «Gnome Development Department» (или как оно у них там называется), то не много останется времени и до того момента, как собираться тоже только на лялихе будет. В отличие от Qt, который список поддерживаемых платформ расширяет.

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

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

и да, мне в данный момент проще притвориться невежей, чем глубоко влезать в аргументацию. я от подобных холиваров «на чем писать игры, pascal vs c, c vs c++» устал много лет назад, и пусть каждый пишет на чем хочет. хоть бы и на qt. некоторые игры делают на флеше - и ничего. просто бывают разные игры, под разные платформы. где-то найдется ниша и для игр на qt.

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

Что совсем не помешало тебе в говядине применить гтк, который с горем пополам в, например, винде и макос хоть и собирается, но выглядит как говно

поэтому для макоси сделали нативный cocoa-интерфейс.

пруф: http://img821.imageshack.us/img821/3209/deadbeefmacosxscreen.jpg

а под венду есть фубар, зачем там deadbeef? получится ведь то же самое в итоге.

я не вижу никакого смысла применять gtk в винде и макоси.

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

Потому что пакетный менеджер в твоём дистрибутиве - лютое говно.

Платиновый комментарий КДЕ-срача.

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

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

Ага, в обязательных зависимостях.
Если приложение на qt /gtk требует библиотек kde, gnomе или еще каких нибудь, то оно прибито гвоздями.

Еще раз прошу, приведи пример приложения, которое зависит от кед (т.е. без них не запустится вообще), либо верни собаку.

Какой изящный ход. А если приложение будет тянуть за собой все кде кроме двух-трех пакетов (непомук, например), то оно тоже «запускается без кде»?
Где, по твоему, кончается граница кде и начинаются библиотеки общего назначения?

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

Где, по твоему, кончается граница кде и начинаются библиотеки общего назначения?

Граница кде проходит ровно там же, где проходит граница зависимости от запущенного рантайма. Если приложение может использовать запущенный рантайм, расширяя функционал, но не требует этого (man cvsup во фряхе, один и тот же бинарь работает консольно и под иксами с гуем, в линуксах обязательно тоже их есть, yast2 например), то это лишь «возможность», а не «зависимость». Вот тебе еще пример:

> ldd `which cp`
        linux-vdso.so.1 (0x00007fff81dff000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f02ecb4a000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f02ec942000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007f02ec739000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007f02ec534000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f02ec18f000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f02ebf8b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f02ecd68000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f02ebd6f000)
> ls -la /selinux
итого 8
drwxr-xr-x  2 root root 4096 июля  15 10:19 .
drwxr-xr-x 27 root root 4096 дек.  18 18:13 ..
> `which cp` /tmp/ddbm3uEcp5st /tmp/ddbm3uEcp5st.copy

>

Не говоря уже о том, что очередь VM IO ops в линуксах, судя по тормозам, единая для всех устройств, но cp почему-то «зависит» от тредов.

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

А под сабжем есть и кеды, остальные пока до ДЕ не доползли. И, что характерно, гткшники готовы под макось одельный велосипед мастрячить, но сделать под KDE/Qt тупо морду для модульной же аппликухи - «зачеееем, нафигааааа, плюсыыыыы» (подумаешь, cocoa на ObjC). К слову сказать, с Qt отдельно под макось тоже не надо было бы напрягаться.

а под венду есть фубар, зачем там deadbeef? получится ведь то же самое в итоге.

А если получится лучше? А если в какой-то момент окажется, что анальная огороженность автора фубара не позволяет воспроизводить какой-нибудь неогороженный формат? Ну, или вообще: привяжи уже к systemd, выбрось ObjC какашку и объяви во всеуслышание «у автора зонд имени торвальдса, про остальные операционки слышать не хочет».

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

А под сабжем есть и кеды, остальные пока до ДЕ не доползли. И, что характерно, гткшники готовы под макось одельный велосипед мастрячить, но сделать под KDE/Qt тупо морду для модульной же аппликухи - «зачеееем, нафигааааа, плюсыыыыы» (подумаешь, cocoa на ObjC). К слову сказать, с Qt отдельно под макось тоже не надо было бы напрягаться.

я не гткшник. я использую нативные тулкиты на каждой платформе, и избегаю кроссплатформенных. под виндой использую winapi, под линуксом gtk (тут личное предпочтение, т.к. предпочитаю писать на C, нативного тулкита под линукс не существует), под андроидом нативный java gui, под макосью cocoa. кстати, cocoa интерфейс для deadbeef сделал не я.

А если получится лучше?

тогда сделаю гуй на winapi под винду.

А если в какой-то момент окажется, что анальная огороженность автора фубара не позволяет воспроизводить какой-нибудь неогороженный формат?

это как?

Ну, или вообще: привяжи уже к systemd, выбрось ObjC какашку и объяви во всеуслышание «у автора зонд имени торвальдса, про остальные операционки слышать не хочет».

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

порт для венды я не делаю потому что на венде deadbeef бесполезная программа - там есть фубар. портировать туда deadbeef - это пустая трата сил и времени.

порт для андроида сделал, т.к. на андроиде вообще с плеерами тухло. стоковый плеер не может ни gapless playback, ни flac, ни даже треки в альбоме по порядку проиграть. остальные тоже ни рыба ни мясо.

это не значит, что я против других операционок. я даже очень за. и вообще вендузячник во все поля.

да, а еще deadbeef есть под bsd и opensolaris. и я вместе с другими людьми немало сил вложил, чтобы сделать это возможным.

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

кстати, я бы с радостью использовал qt для андроидной версии, т.к. C++ я предпочитаю намного больше жабы. но +10 мегабайт зависимостей вообще не вариант. это увеличение размера как минимум в 3 раза, я даже на свой телефон не смогу это в итоге установить — места постоянно не хватает.

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

тупого пользователя, которому неймётся нажать ту бажную кнопку

Нет, ну это уже вообще. На кнопки теперь не жать чтоли?

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

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

Чем кроссплатформенные не угодили?

ЗЫ: Сам знакомился с GTK по книге - «GTK+. Разработка переносимых графических интерфейсов»

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

Чем кроссплатформенные не угодили?

опять двадцать пять.. цитировали ведь уже гугл, почему чром не на qt. потому что приложение будет не вполне нативным, говорить с «иностранным акцентом». + лишний багаж с собой тащить, на андроиде 10 мегабайт, на винде вроде слышал что 20, для приложения размером пару мегабайт это как-то странно, и создавать юзерам неудобства.

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

опять двадцать пять.. цитировали ведь уже гугл, почему чром не на qt.

Ну так то про гугл было, а не про тебя. Вот и спрашиваю.

+ лишний багаж с собой тащить, на андроиде 10 мегабайт

Про андроид речь тоже не идет. У меня на планшете место есть, но Qt на нем я только палочкой тыкаю, т к сыро еще.

Вопрос в первую очередь был про винду и мак. Там места полно. Ну а нативность... Опера, скайп, vlc, можно продолжать дальше. И чтото не слышно возмущенных криков от пользователей, о том что оно не нативно, занимает много места и говорит с иностранным акцентом.

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

Я ту книжку в 2003 купил. С ней еще диск с cygwin прилагался + скомпиленный GTK. Вобщем для старта самое оно. Книгу я таки осилил и кое чего таки написал. Но потом плавно переполз на Qt3 и обратно меня уже фиг кто затянет )

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

Ну на С конечно не очень удобно писать прикладные приложения. Я сначала пользовался Gtkmm. Теперь Python. Может чисто поржать что-то напишу на gjs

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

Ну на С конечно не очень удобно писать прикладные приложения.

Сейчас придет waker, и скажет, что ты не прав ). И он таки по своему будет прав!

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

Я совершенно не против от того что ему удобно. Готов даже поправиться «мне не очень удобно». Тем более мы все профиты от Gtk получаем только потому что самим разработчикам Gtk удобно на нем писать.

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

Ну а нативность... Опера, скайп, vlc, можно продолжать дальше. И чтото не слышно возмущенных криков от пользователей, о том что оно не нативно

Преимуществ в написании морды для скайпа на Qt перед GTK не вижу. Возможно, тот единственный человек, который раз в два года что-то пописывает для скайпа под линукс, больше любит Qt.
У Оперы вообще сейчас свой тулкит, который дергает GTK или Qt по обстоятельствам (и делает это как-то не очень, имхо). Жалоб на выделяющуюся в любом окружении морду VLC в интернетах полно, например, на этой неделе в блогах для хомячков-убунтоводов типа omgubuntu или webupd8 видел.

занимает много места

Любой тулкитосрач на ЛОРе не обходится без этого.

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

Вопрос в первую очередь был про винду и мак.

я ответил на этот вопрос?

Там места полно. Ну а нативность... Опера,

уже давно не использует qt.

скайп, vlc, можно продолжать дальше.

перечислять приложения на qt необязательно, я сам о них прекрасно знаю, и даже сам пользуюсь некоторыми из них (те же скайп, vlc, а еще psi+).

И чтото не слышно возмущенных криков от пользователей, о том что оно не нативно, занимает много места и говорит с иностранным акцентом.

то, что вам чего-то не слышно, не говорит ровно ни о чем.

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

Преимуществ в написании морды для скайпа на Qt перед GTK не вижу.

Может я чего пропустил, но неужели по оффтопиком уже можно в полпинка собрать окружение для разработки с GTK?

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

Может я чего пропустил, но неужели по оффтопиком уже можно в полпинка собрать окружение для разработки с GTK?

1. можно

2. не нужно

3. а что, скайп и под вендой на qt? в этом случае, несколько странно, что линуксовая версия отстает от вендовой лет на 5.

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

то, что вам чего-то не слышно, не говорит ровно ни о чем.

Ну вот пошла лоровская риторика )

1. можно

Я знаю, что можно. Вопрос в том, насколько это будет отличаться от configure && make && make install

3. а что, скайп и под вендой на qt?

А разве нет? (давно винду живьем не видал)

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

Может я чего пропустил, но неужели по оффтопиком уже можно в полпинка собрать окружение для разработки с GTK?

А зачем это нужно скайпу? На _всех_ остальных платформах его морды не на Qt. Вполне очевидно, что на Qt их переписывать в обозримом будущем не будут.

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

А зачем это нужно скайпу?

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

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

Я знаю, что можно. Вопрос в том, насколько это будет отличаться от configure && make && make install

gtk + libs + headers ставятся инсталлятором. потом как нравится - или вижуалы, или mingw32 со всеми автотулсами.

А разве нет? (давно винду живьем не видал)

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

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

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

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

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

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

Ну конечно, имея работающие нативные версии для нескольких ОС, они стремительно стали бы переписывать их на Qt, как только он наконец-то стал выглядеть нативно на этих ОС с релизом Qt4.

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

У винды, мака, и если я правильно понимаю, то и у андроида тоже есть стабильный системный API. Это и лицензия deadbeef позволяет компилировать с Qt статически. Я когда-то давно ещё слышал, что Qt4 для относительно простой программе выдаёт 200-600 КБ под виндой при статической компиляции.

Хотя это так, FGJ, всё равно мака для тестирования не было, на винду не планируете портировать, а под андроидом ещё неизвестно что при статической сборке будет.

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

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

Под виндой - на delphi.

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

gtk + libs + headers ставятся инсталлятором.

Я так понимаю, это все пребилд, не? Пребилдом и я свое время пользовался. А вот как самому все с нуля собрать? Я когда то хотел в gstreamer под виндами попробовать. В инете нашлась не свовсем свежая сборка фиг знает от кого. В свежих исходниках прямо писали - мы сборку студией не поддерживаем. И это был еще не сам гстример, а всякие Гбиблиотеки.

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

Тогда, забей. Дело ж не в скайпе, я его в качестве примера привел.

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

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

Опять 25 ). Это только на ЛОРе различают нативный и ненативный гуй! Все остальные от таких заморочек далеки. Вот, к примеру, winamp был популярен, но гуй у него вообще нина что не похож. Или блендер, который использует свою библиотеку для гуя. Если гуй удобный и красивый, то пользователю пофиг, что там под капотом.

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

Вы принимаете упорин. Или винде

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

Я так понимаю, это все пребилд, не? Пребилдом и я свое время пользовался. А вот как самому все с нуля собрать?

не знаю, я не пробовал, и не понимаю зачем это надо. а уж каким боком тут гстример — я вообще не в курсе. он что, как-то связан с gtk? под линуксом gtk собирал много раз через configure && make. не вижу, в чем проблема сделать это же в mingw32.

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

Опять 25 ). Это только на ЛОРе различают нативный и ненативный гуй! Все остальные от таких заморочек далеки. Вот, к примеру, winamp был популярен, но гуй у него вообще нина что не похож.

winamp использует нативный виндовый тулкит. не надо путать дизайн интерфейса с тулкитом. upd: тут хотелось бы уточнить, что вообще-то в винампе свой собственный тулкит, но он нативно заточен под винду, и интегрирован как следует, поэтому остается нативным. в нем нет кроссплатформенности.

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

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

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

не понимаю зачем это надо.

1)Пребилд несвежий

2)в пребилде учитываются зависимости на все случаи жизни. Мне такой монстр не нужен.

каким боком тут гстример — я вообще не в курсе. он что, как-то связан с gtk?

У них зависимость общая - глиб. В винде глиба из коробки нет, вот и приходится собирать.

не вижу, в чем проблема сделать это же в mingw32.

Чисто теоретически, проблем нет. А на практике выплывают всяки косяки, т к девелоперы соответствующих библиотек забивают на тестирование сборки в не-линухе. И да, если бы оно все собиралось, то что удобне - собрать десяток другой связанных библиотек или собрать один фреймворк?

winamp использует нативный виндовый тулкит.

Ну и что для пользвателя изменилось, если бы винамп где-то у себя внутри использовал «не нативный» тулкит для отрисовки своего гламура?

не надо путать дизайн интерфейса с тулкитом.

Неистово плюсую! Но и ты меня пойми, пользователь как раз дизайн и оценивает. Про нативность он ничего не знает.

AF ★★★
()
Последнее исправление: AF (всего исправлений: 2)
Ответ на: комментарий от Homura_Akemi

А собственно ради каких приложений надо держать GTK? Gimp и Inkscape? Первое с успехом заменяет Krita, а второе мне не нужно. Что там ещё есть из полезного?

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

А собственно ради каких приложений надо держать GTK?

Да собственно 90% приличного десктопного софта на GTK. На Qt почти ничего стоящего и нет.

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