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

У меня, конечно, есть зуб на GTK - это её файлооткрывашка. Но в общем, вполне себе нормальный тулкит.

// На работе пишу на Qt.

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

когда приходит менеджер и говорит - хочу программу, чтобы делала фичи А, В и работала в Винде и на маке

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

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

Не слушайте waker. Хотите пишите на Qt, Gtk, .NET или Java. Главное быстро, качественно и в срок. 99% пользователей просто пользуются софтом и не понимают термин нативность. Тех кто думает что весь гуй надо заново переписывать на всех платформах нужно гнать с проекта. Такое допустимо если сам тулкит используется в совсем малой части кода и девелоперские ресурсы безграничны, например в проекте Chrome

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

gtk+ - это Си. И в языке «name it» FFI тоже работает с сишными соглашениями. Смотри, как удачно совпадает! ;)

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

И в языке «name it» FFI тоже работает с сишными соглашениями

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

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

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

А в случае C++ надо будет делать сишный враппер на плюсатую единицу функциональности, и потом делать питоновский враппер.

mv ★★★★★
()

А ты посмотри статистику использования языков программирования. На С пишут больше чем на С++. А использовать Qt + C невозможно.

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

Не слушайте waker.

Вопрос про выбор фреймворка был скорее риторическим.

Хотите пишите на Qt, Gtk, .NET или Java. Главное быстро, качественно и в срок. 99% пользователей просто пользуются софтом и не понимают термин нативность

Ну так и я об этом! В реальной жизни вопрос нативности улетает на второй, или даже третий план. К тому же тот самый менеджер, который уже выбрал одну и туже морду на Qt, сказал, что внешний вид должен быть таким, как нарисует дизайнер.

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

А в случае C++ надо будет делать сишный враппер на плюсатую единицу функциональности, и потом делать питоновский враппер.

ок, так понятнее.

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

В чем профит то от жабки будет?

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

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

ну видимо в том, что написал 1 раз, под виндой,

Ой не, это еще винду покупать/ставить. Мне уютнее в теплом линухе )

ничего не надо пересобирать больше под каждую ось

Я гентушник, я знаю как пересобирать без отрыва на написание кода

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

Ну так у нас тоже самое без жабки но с Qt.

Деталей по проекту я писать не буду, ибо NDA, ибо closed source. A так больше всего гемора в кросплатформенности нам доставляет портирование чужих С/С++ библиотек. Если бы взяли жабку, то еще добавилось бы написание врапперов. Камрад mv, говорит, что это сложно.

И что мы таки имеем в итоге? А в итоге у нас получается:

  • Существует ряд программ, у которых гуй настолько своеобразен, что говорит о его нативности тупо не имеет смысла.
  • существуют кросплатформенные программы, у которых требование обеспечить нативный внешний вид, приводит к существенному удорожанию разработки или к увеличению времени разработки
  • Есть еще программы, гуй которых требует у нативного тулкита таких фич, которых у того нет. Оно, конечно, можно написать все что угодно на одних системных вызовах. Но нафига такой закат солнца вручную, если можно взять ненативный гуй, у которого нужная фича таки есть?

Ну а теперь вопрос. Нафига упираться в нативность, если без нее жить проще?

ЗЫ: И еще. Что считать в винде нативным гуем, если дефолтовый внешний вид от 95 (не говоря про 3,11) до восьмерки менялся много раз? При этом менялся внешний вид не только самой винды но и основных приложений (тот же офис)?

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

too fat. Линус одобряет кеды, 4.9 ему понравилась.

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

Ну а теперь вопрос. Нафига упираться в нативность, если без нее жить проще?

в этой ситуации вообще пофиг на чем и как писать — лишь бы побыстрее.

ЗЫ: И еще. Что считать в винде нативным гуем, если дефолтовый внешний вид от 95 (не говоря про 3,11) до восьмерки менялся много раз? При этом менялся внешний вид не только самой винды но и основных приложений (тот же офис)?

виндовый тулкит дает нативный внешний вид соответствующий той версии оси, на которой запущена программа. и кстати, у меня под вендой (7) внешний вид программ и десктопа ничем не отличается от win95/98/2k.

waker ★★★★★
()

Распреление десктопов говорит только о качестве этих самых десктопов, а не о крутизне тулкитов. К счасью, использование десктопа на тулките А не мешает использовать приложения на тулките В.

Почему не переделали все на Qt

Зачем переделывать то, что и так работает?

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

Canonical

Они, ЕМНИП, все на питоне пишут, мб бинлинги больше нравятся. Да и основным ДЕ у них был гнум долго.

Mozilla, Google

У лисы и хромиума использование GTK номинально

Sun/Oracle

O rly? А начем написан гуй VirtualBox?

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

O rly? А начем написан гуй VirtualBox?

В JVM Gtk look and feel. А VirtualBox сначала написал кто-то другой, потом его купили. Ну не переписывать же

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

Всякие старые кады я видел в основном на Qt3. На GTK только офисы и IDE (да и то далеко не все)

Были enterprise кады? Так, любительские поделки вроде... На сегмент Ынтерпрайза линукс и не совался никогда собственно

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

Я называю энтерпрайзом всякие кады и IDE, которые используются только на рабочих станциях. Вот их них кады на Qt, а IDE на gtk или на swing.

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

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

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

А вот IDE - да, верю, гтк... Как и почти весь коммерческий софт

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

но +10 мегабайт зависимостей вообще не вариант

Опять кривишь душой. Линковать статически никто не заставляет, а при динамической таскать гтк с каирами, гдк и прочим зоопарком тебя, почему-то, не смущает. И ведь у тебя по-прежнему нет гарантии, что весь этот зоопарк будет кем-либо еще использован.

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

GIMP

Неюзабельное говно в силу их неосиляторства в одно окно. Это, естественно, мое личное мнение.

Firefox

Работоспособных аналогов нет, согласен.

Pidgin

Kopete?

Thunderbird

KMail

GVim

Kwrite, Kate

Zim

Первый раз вообще про такой use-case услышал, за неимением вообще представления о нем, соглашусь.

клиенты к MPD

Clementine, заодно избавляет от MPD. Но если у тебя coreutils всенепременно зависит от MPD, вот тут смотри.

GateKeeper ★★
()

На моём десктопе из GTK только Gimp, Firefox и VMPlayer.

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

в силу их неосиляторства в одно окно.

С разморозкой.

Kopete?

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

KMail

Неплохая функциональность, но много багов. После KDE 4.4 использует БД для хранения всего.

Первый раз вообще про такой use-case услышал, за неимением вообще представления о нем, соглашусь.

Тогда я назову аналог из KDE — KJotes. Он сильно слабее по функциональности и использует БД, но основные возможности есть. Basket я считаю программой другого типа, хотя некоторые почему-то их сравнивают.

Kwrite, Kate

Блокнотики :)

Clementine

Унылый комбаен на унылом GStreamer. Говорят, там есть визуализация с nyancat — это, конечно, плюс, но не киллерфича :)

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

Кстати, зачем говядине под ведроид пермишн на состояние телефона, это потому что ведроид не умеет на уровне системы гасить самостоятельно неприоритетный звук (например, плеер), дабы приоритетный (например, телефонный вызов) не глушило? Или там как-то не получается словить... как его там, «интент», вроде, на начавшийся сеанс телефонной связи, например, чтобы поставить плеер на паузу? В общем, расскажи, чем там костылить приходится?

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

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

Ты сейчас про всю инфраструктуру gtk2 прямо сказал, только в конце gtk3 почему-то обозвал «telepathy». Но приму твой тулкитофобский вариант как мнение.

Неплохая функциональность, но много багов. После KDE 4.4 использует БД для хранения всего.

Баги же повыловили, бОльшую часть. Про БД я так и не понял, это «баг» или что?

Блокнотики :)

А vi не блокнотик? Ок. vim == VisualStudio-like IDE. Дезупорин 2 раза в день после еды в течение месяца.

Унылый комбаен на унылом GStreamer

А, после этого я начинаю понимать vi-байтолюбов. Рюкзачок Возняка не мешает ходить еще?

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

В том то и суть, что обычно те кто выбирают софт из DE выпили упорину

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

Я понимаю, что работает. Я спрашиваю, зачем плееру самостоятельно следить за этим, там до сих пор уродская архитектура что ли? Т.е., например, нет возможности подписаться на анонимные события без данных, а ля «Поступил входящий звонок (данных о звонке нет)». Обработать, встать на паузу там? Короче, подписка на очередь широковещательных событий, отправляемых для обозначения факта, что они вообще произошли.

Я просто спрашивал, зачем каждому приложению вручную обрабатывать состояние телефона?

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

Опять кривишь душой. Линковать статически никто не заставляет, а при динамической таскать гтк с каирами, гдк и прочим зоопарком тебя, почему-то, не смущает. И ведь у тебя по-прежнему нет гарантии, что весь этот зоопарк будет кем-либо еще использован.

я как раз говорю о динамическом qt на андроиде. посмотри, там есть пятнашки в play store, 7mb занимают + 10mb qt.

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

Кстати, зачем говядине под ведроид пермишн на состояние телефона

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

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

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

Ты же не дочитал мой вопрос. О том, для чего конкретно говядина дергает этот пермишн, я представляю. Я говорю о другом: неужели там нет возможности подписаться на и словить некое глобальное событие вида «Поступил звонок», «Начат разговор», «Аппарат переключен на беззвучный режим» и т.д.?

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

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

есть, для этого и нужен этот пермишн.

http://developer.android.com/reference/android/telephony/PhoneStateListener.html

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

Да, печально там всё. Можно было бы реализовать анонимные события в довесок к тем, что там. «Анонимные» в смысле такие, которые не несут в себе никаких данных, кроме факта возникновения таких событий (тупо пустой класс). Тогда многие приложения могли бы подписываться на них, не требуя никаких разрешений.

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

Да, печально там всё.

это далеко не самое печальное, что там есть.

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