LINUX.ORG.RU
ФорумTalks

Зачем придумали GTK3?

 ,


2

6

Почему нельзя было развивать GTK2? Какие в нём были проблемы, требующие фундаментальной переработки с потерей совместимости? Выпуск GTK3 привёл к расколу GUI программ. У меня тоже есть программы на GTK2.

В Windows почему-то умеют поддерживать обратную совместимость. Программы для Windows 1.0 до сих пор работают на Windows 10 (на 32 битах нативно, а на 64 битах требуется 16 битный эмулятор winevdm). В WinApi не было фундаментальных изменений с времён Windows 1.0, даже соответствующим образом написанные 16 битные программы можно перекомпилировать под 64 бита. При этом он намного гибче всех Линуксовских тулкитов, можно обрабатывать окна в разных потоках, вставлять дочерние окна из другого процесса, рекурсивно вызывать цикл обработки сообщений.

Qt в целом выглядит стабильнее GTK. Большинство программ с минимальными изменениями можно перенести на новую версию.

Перемещено leave из desktop

★★★★★

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

Ответ на: комментарий от question4

Ценой десятков гигабайт легаси-библиотек. Существуют легковесные версии Windows 10, где убрали всё устаревшее, и втиснули ОС в 1 гигабайт.

Что это за тысячи библиотек, отделяющие Windows 7 от Windows 10?

Бинарную совместимость ломали неоднократно.

Например?

Не знаю, насколько репрезентативна моя выборка, но почему-то всё легаси времён Windows 2000 (включая пересобраное) требует запуска под админом, хотя под 2000 работало без него.

Потому что изменилась модель угроз и методы защиты. Запуская «под админом», фактически, просто откатываемся к более слабой модели.

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

Так в этом и фишка апи, как бы. Ты можешь переделывать и добавлять новые фичи, но старое должно работать как работало.

Zhbert ★★★★★
()

Не заметил правильного ответа

Есть 2 способа разработки ПО.

Стуненческая – разрабатывается потому что интересно и есть время и для закрытия каких-то вчера возникших потребностей. Авторы, по причине недостатка опыта, почти ничего не знают о том, ни в чём потребность состоит, ни о факте незнания, и обречены на N несовместимых версий в попытке решить изменяющуюся (ввиду накопления опыта и понимания) задачу. Последнее усугубляется если продукт выходит в мир, сталкиваясь с похожими но не совсем такими же потребностями других/завтрашних пользователей, и приплыва новых студентов с новыми взглядами на всё.

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

GTK – пример первого, окна – второго.

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

Сначала была перспективная мобильная платформа под названием MeeGo. Она была перспективная, развивалась консорциумом компаний, и могла бы стать популярной вместо Android. Единственная вышедшая модель смартфона на ней использовала X11 и GTK2.

Возможно, что GNOME Shell (планшето-ориентированный) а также GTK3 и Wayland - разрабатывались для MeeGo. А когда Nokia заявила, что MeeGo не будет, и что вместо него будет Windows Phone (года через три), тогда остальной консорциум начал думать, что делать с уже написанным кодом. В списке рассылки Fedora кто-то предложил добавить это в десктопный линукс (ну не пропадать же добру?). На следующий день Марк Шаттлворт пишет в своём блоге «СЛЕДУЮЩАЯ ВЕРСИЯ UBUNTU БУДЕТ НА WAYLAND!». Стоит пояснить, что в то время Canonical очень любила анонсировать новые фичи из Fedora раньше, чем сама Fedora. Из-за чего казалось, что десктопный Linux разрабатывает исключительно Canonical.

Федоровцы тогда обиделись и сказали «ну хорошо, да будет линуксовый десктоп на вайленде». И прекратили разработку Wayland, чтобы посмотреть, как Canonical будет крутиться. Когда Canonical заявили, что перехода на Wayland не будет, разработка Wayland была продолжена.

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

Федоровцы тогда обиделись и сказали «ну хорошо, да будет линуксовый десктоп на вайленде». И прекратили разработку Wayland

Wayland в основном разрабатывался Samsung и Intel. Samsung пару лет назад подзабил на это дело. А вот федоровцы что-то там прекращали, впрочем как и начинали, исключительно у тебя в голове.

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

У GTK3 серьезные проблемы с тем, чтобы объяснить смысл своего существования.

Парсить CSS на low power железке, чтобы нарисовать интерфейс – идиотизм.

Выпиливание движков тем оформления – идиотизм. На низкопроизводительной железке как раз нужна оптимизированная отрисовка, не завязанная на CSS.

Выкидывание некоторых виджетов и переделка отдельных частей API без особых причин – идиотизм.

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

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

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

Что это за тысячи библиотек,

Скачай Докер-образы Windows 10 полную и нано и сравнивай.

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

Парсить CSS на low power железке, чтобы нарисовать интерфейс – идиотизм.

Выпиливание движков тем оформления – идиотизм. На низкопроизводительной железке как раз нужна оптимизированная отрисовка, не завязанная на CSS.

Следующая версия GNOME видимо будет на Electron.

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

При том, что они там умышленно «для пущей кроссплатформенности» выкидывают иксоспецифичные штуки. Типа shade/always-on-top. И терминологию иксовую, соответственно. Виндузятные хомячки же приучены, что кнопки бывают только minimize/maximize/close ;)

Даже макось с её think different прогнули, начиная с 10.10: сейчас светофоры ведут себя как на винде (ну только вместо maximize там fullscreen). А ведь раньше зелёная кнопка либо выдвигала расширенный тулбар, либо подгоняла окно под «оптимальный» размер: сейчас это поведение осталось, если зажать ⌥. Пару версий до этого кнопка фулскрина была отдельно присобачена справа, Мы даже закос под это делали.

А вообще, в таком виде (тупо переименование без смены параметров) это ничуть не страшно. Вон Pidgin для совместимости со старыми плагинами, которые ещё помнят его как Gaim, тащит хедер с кучей #define ;) Даже sed не нужен.

mertvoprog
()
Ответ на: комментарий от question4

где убрали всё устаревшее, и втиснули ОС в 1 гигабайт

Это те, в которых даже Edge нету? ;)

хотя под 2000 работало без него

Потому что права юзерских учёток намного шире были.

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

При том, что они там умышленно «для пущей кроссплатформенности» выкидывают иксоспецифичные штуки.

CSD и кнопки в заголовке окна тоже для кроссплатформенности навязывают?

Виндузятные хомячки же приучены, что кнопки бывают только minimize/maximize/close ;)

Ещё как приучены. Двойной клик по значку слева в заголовке окна до сих пор закрывает окно в Windows 10. Этот значёк - бывшая кнопка с минусом в Windows 3.1.

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

Парсить CSS на low power железке

Гном и во времена 2-й версии-то легковесным не считался, а сейчас и подавно. С чего им об этом париться? Gtk уже давно не позиционируется как тулкит для всех, это чисто компонент гномощели, которым вертят как хотят.

Выпиливание движков тем оформления – идиотизм. На низкопроизводительной железке как раз нужна оптимизированная отрисовка, не завязанная на CSS.

Вообще-то движки обычно нужны как раз для свистелок. А что мешает оптимизировать отрисовку CSS?

mertvoprog
()
Ответ на: комментарий от X512

CSD и кнопки в заголовке окна тоже для кроссплатформенности навязывают?

А Вы не заметили, что в макоси они примерно одновременно с гомощелью появились? ;)

Двойной клик по значку слева в заголовке окна

В гномоаппах там кнопка меню. Из которой таки тоже выйти можно.

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

Вообще-то движки обычно нужны как раз для свистелок.

Там весь «движок» состоял в том, что был объявлен интерфейс для загружаемых модулей, и «рисованием рамочек» занимался код из модуля. Который может быть и максимально тупым, как например дефолтный Raleigh.

А что мешает оптимизировать отрисовку CSS?

А что мешает оптимизировать отрисовку CSS-driven UI в браузере?

Генерализация, проведённая в gtk3, с одной стороны уменьшила разнообразие возможных решений (в плане дизайна) и, с другой, усложнила сам код тулкита. А сложное — сложно оптимизировать. (Внезапно.)

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

А Интел с какой целью это делал?

У Intel’а давний интерес к нему, они даже начали пилить порт Chromium под Wayland до того, как он ещё окреп в мейнстримовых дистрибутивах:

https://github.com/intel/ozone-wayland

Сейчас многие наработки оттуда пошли в апстрим: Wayland в Chrome

Видимо Intel’у надоело поддерживать драйвера под корявый X.Org в Linux и они решили сделать ставку на современную оконную систему.

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

В Windows 10 работают программы Windows XP

Да хватит брехать уже, от версии к версии программы отваливались. Даже при переходе 2000 -> XP некоторые программы перестали работать.

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

дефолтный Raleigh

А ему модули нужны вообще были разве?

А что мешает оптимизировать отрисовку CSS-driven UI в браузере?

А что, браузеры из-за CSS тормозят? ;)

уменьшила разнообразие возможных решений

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

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

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

Хз, что там отразилось. Почти все темы на gtk3 — плоское вырвиглазное ховно. Просто потому, что макаки могут писать CSS, но не могут в эргономику и дизайн.

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

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

Да хватит брехать уже, от версии к версии программы отваливались. Даже при переходе 2000 -> XP некоторые программы перестали работать.

Сколько ещё нужно повторять, что отвалился только говнокод, а нормальные программы написанные в соответствии со спецификацией работают начиная с Windows 1.0? Если программы используют недокументированные API, лезут во внутренние структуры ОС, эксплуатируют undefined behavior, некорректно обращаются с памятью и т.д., то разработчики - ССЗБ и должны страдать. Обеспечить совместимость говнокода невозможно в принципе.

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

А что, браузеры из-за CSS тормозят? ;)

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

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

Кто мешал сделать CSS плагин тем для GTK2? Зачем засовывать CSS в ядро тулкита?

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

Просто потому, что макаки могут писать CSS, но не могут в эргономику и дизайн.

Будто плоскота не дезигнерами придумана.

Там тоже не требовалось писать компилируемый код.

Для того, чтобы создать новую свистелку — требовалось. А очередная перекрашенная муррина ничем не интересна ;)

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

Будто плоскота не дезигнерами придумана.

Дизайнерами интерфейсов была придумана тема оформления Windows 9x.

Плоскота была придумана другими дезигнерами. С вейпом на скутере после коворкинга.

А очередная перекрашенная муррина ничем не интересна ;)

А очередная перекрашенная адвайта?

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

Если программы используют недокументированные API, лезут во внутренние структуры ОС, эксплуатируют undefined behavior, некорректно обращаются с памятью и т.д., то разработчики - ССЗБ и должны страдать. Обеспечить совместимость говнокода невозможно в принципе.

+1

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

Регионы в CSS не предусмотрели

Да вроде что-то такое пилят как раз. Правда, когда оно до гномосеков доберётся — вопрос.

Кто мешал сделать CSS плагин тем для GTK2? Зачем засовывать CSS в ядро тулкита?

Так тут опять всё упирается в то, что гномосеков не интересуют сторонние движки с их проблемами ;)

mertvoprog
()
Ответ на: комментарий от wandrien

Плоскота была придумана другими дезигнерами. С вейпом на скутере после коворкинга.

OK, boomer.

А очередная перекрашенная адвайта?

Адвайта-то как раз и не плоская.

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

Так тут опять всё упирается в то, что гномосеков не интересуют сторонние движки с их проблемами ;)

Так их вообще сторонний софт не интересует. Они делают DE, в которой должны работать только их собственные приложения.

Вроде как DE как компонент ОС общего назначения служит для комфортной работы с как раз приложениями самой разной природы и производства, а оно вон как…

2% на десктопе, 0% на мобиле. Всё к тому и шло.

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

Вроде как DE как компонент ОС общего назначения служит для комфортной работы с как раз приложениями самой разной природы и производства

Бред какой-то. Напомнить, как майки усердно пропихивали свои IE и WMP, пока на них антимонопольщики не надавили? ;) Или что на iOS встроенный софт вообще толком заменять нельзя?

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

Напомнить, как майки усердно пропихивали свои IE и WMP, пока на них антимонопольщики не надавили?

При чём тут это?

Вон в винде есть, например, API для встраивания в Проводник расширений. И его никто не ломает, как оно работало в XP, так и сейчас работает.

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

Потому что всё сделано для комфортной разработки программ сторонними поставщиками, а не для самоудовлетворения.

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

«студентами» я обозвал авторов, пишущих в процессе изучения ими же решаемой задачи. Кто кого при этом кормит несущественно.

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

При чём тут это?

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

как пилить фичи для встраивания в Проводник, так интегрировать фичи Проводника в свой софт.

А что, WebKitGTK+ нельзя встраивать в свой софт? Или на GTK+3 нельзя писать программы? Или в файловый диалог нельзя засовывать свои генераторы превьюшек?

Пример с виндой нерелевантен, потому что в винде в целом, не только в Проводнике, поддерживается обратная совместимость. А в свободных поделиях, как правило, нет. Вот и весь сказ.

mertvoprog
()
Ответ на: комментарий от DonkeyHot

пишущих в процессе изучения

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

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

в Microsoft джунов и трейни не берут

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

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

Вы это сейчас GNOME Foundation студентами обозвали, да?

Именно. Тот самый Мигель с еще одним мексом вдвоем написали весь этот гном на каникулах. А потом открыли офис, наняли кодеров за доширак, и так получился гном2. Никаких корпораций там еще не было, эти позже пришли на готовенькое.

bread
()
Ответ на: комментарий от X512

Ну так не все же свои программы забрасывают на многие месяцы.

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

А что, WebKitGTK+ нельзя встраивать в свой софт?

Лицорука. При чем тут вебкит. Вы там снова пьяны?

Или в файловый диалог нельзя засовывать свои генераторы превьюшек?

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

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

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

Или на GTK+3 нельзя писать программы?

Нельзя. Это как к ассемблером: в теории писать можно, а на практике экономически не целесообразно.

Но в случае с ассемблером причиной естественная сложность процесса, а в случае с gtk – идиотизм разработчиков.

Пример с виндой нерелевантен, потому что в винде в целом, не только в Проводнике, поддерживается обратная совместимость. А в свободных поделиях, как правило, нет. Вот и весь сказ.

В свободных поделиях стека GNOME.

В ГНУтом стеке gcc-glibc-bash-coreutils-etc… обратная совместимость на 20 лет назад – норма, не нуждающаяся в развёрнутых объяснениях.

Всё дело в лапках.

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

Именно. Тот самый Мигель с еще одним мексом вдвоем написали весь этот гном на каникулах. А потом открыли офис, наняли кодеров за доширак, и так получился гном2. Никаких корпораций там еще не было, эти позже пришли на готовенькое.

Так Мигель рубил фишку. Проект назывался, на минуточку, GNU Network Object Model Environment, среда сетевой объектной модели GNU.

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

Но не сложилось. Идиотизм оказался сильней.

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

При чем тут вебкит

А Проводник при чём?

Вы там снова пьяны?

Вы так говорите, будто Мы когда-то пили.

по прошествии вечности

О чём речь? Вроде довольно старая штука.

Обратно совместимых на 20 лет назад

Ещё раз: это заслуга стабильности WinAPI, а не DE как таковых. На макоси вон постоянно совместимость ломают, например. На Symbian ломали. На BeOS бы, возможно, тоже ломали, если бы она скоропостижно не сдохла ;)

экономически не целесообразно

Откуда ж столько лохов, которые на этом пишут?

В ГНУтом стеке gcc

Шо, серьёзно? gcc не срёт кучей ворнингов на старый код?

mertvoprog
()
Ответ на: комментарий от wandrien

Это должна была быть модульная херня

Ну она и была модульной, до появления гомощели ;) Хотя гомощель вроде как тоже модульная, но там настолько think different и куча постоянных поломок, что на эту модульность сторонние разработчики почти забили ;)

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

На BeOS бы, возможно, тоже ломали, если бы она скоропостижно не сдохла ;)

В Haiku не забили, программы для BeOS работают.

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

Шо, серьёзно? gcc не срёт кучей ворнингов на старый код?

gcc срёт ворнингами только в следующих случаях:

  • Код был написан не по стандарту.
  • В коде новые эвристики gcc находят мутные места, о которых добросовестно предупреждают.
  • На новом gcc требуются другие опции компиляции.

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

Вы серьёзно придуриваетесь?

Откуда ж столько лохов, которые на этом пишут?

Вгде? Их и раньше-то не было почти. А потом и вовсе, много мелких хобби-проектов забили на портирование на gtk3, а крупные сваливали на qt. Или что, очередной клон наутилуса и текстовый редактор от Васи на виджете GtkSourceView мы посчитаем за значимый вклад в опенсорс?

Большая часть софта, переносимого между виндой и линью, пишется на qt.

На Symbian ломали. На BeOS бы, возможно, тоже ломали, если бы она скоропостижно не сдохла ;)

Помянем.

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

Шо, серьёзно? gcc не срёт кучей ворнингов на старый код?

Ворнинги на то и ворнинги, что их можно игнорировать. В стандартах C/C++ никаких ворнингов их нет, это инструмент для помощи программисту.

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