Авторские статьи об OpenSource

Разработчики GTK хотят разрушить Linux desktop.


Не являюсь действующим программистом и тем более использующим GTK тулкит. При упаковке в snap подобных программ потрясением для меня стало большое количество различных компонент, которых нужно вызвать при установке программы в систему для дальнейшей корректной её работы. Скажу честно, что Java с её графическими тулкитами AWT/SWT и Qt/QML вызвали бо́льшую симпатию. Но сейчас хотелось бы представить вам статью M.Hanny Sabbagh "Are GTK+ developers destroying Linux desktop with their plans?"

GTK

GTK - тулкит для построения графического пользовательского интерфейса. Разработчики, используя GTK, могут с лёгкостью создавать интерфейс программы для пользователей. GTK был создан командой GNU, которая ведёт разработку многих компонент GNOME project с 1999 года.

GTK+ 1.0 увидел свет в 1998, GTK+ 2 в 2002, GTK+ 3 в 2011. Легко заметить большую разницу во времени между второй и третьей версиями. Серьёзное обновление всего тулкита требовалось, чтобы идти в ногу со временем и впитать изменения в индустрии программирования.

GTK+ 2 был хорош на самом деле. Он стар и глючит немного, но многие визуальные темы, которые можно найти на просторах Интернет, работали долгие годы без проблем с приложениями, использующие вторую версию.

Новые дни с GTK 3

Теперь о проблемах, которые преподносит GTK3. Команда разработки любит коммитить изменения, ломающие API и ABI совместимость в каждые две или три подверсии.

К примеру, у вас есть тема, которая отлично работает с GTK+ 3.18 и она может перестать работать в GTK+ 3.20. Или вы создаёте своё приложение, взяв за основу GTK 3.14, и она не будет работать с GTK 3.16, так как разрабы библиотеки удалили или обновили некоторые API bindings, что вызовет у вас проблемы в работе программы или полной её неработоспособности.

Всё это вызывает много головной боли у сторонних программистов. Автор оригинальной статьи является разработчиком, использующим Python и GTK для создания UI, и ситуация с GTK это просто кошмар. Нужно проверять и обновлять API bindings (в данном случае PyGObject) каждые 6 месяцев или даже чаще, удаляя старое из программы и заменяя на новое, отслеживая заметки к релизу GTK.

Если вы обычный пользователь, то эту не нормальную ситуацию вы быстрее заметите на примере графических тем (theme). Вчера она нормально скачалась, установилась и работает, а сегодня вы снова гуглите в поисках новой её версии. Некоторые приложения, которые используются ежедневно, могут сбоить и вы увидите лицо проблемы.

Малая часть примеров:

  • Тема Vivacious. Красивая тема для Linux систем не работает с GTK+ 3.20, работает только в 3.16 и 3.18.

    Разрабы темы написали пользователям следующее: "Она не работает с GTK 3.20 (Arch, Fedora 24). Нам нужно переписать ВСЁ! GTK 3.20 другой! Нужный часы, дни, недели работы. Мы уже работаем, но поймите что это не просто. Это часы и дни нашего свободного времени."
  • Caja. Файловый менеджер MATE крашится из-за несовместимости API и разрабы ищут обходное решение.

Исправление?

Может разработчики GTK скоро исправят ситуацию!? Нет, на самом деле они ещё больше её усугубляют.

Если глянуть пост "Gtk 4.0 is not Gtk 4" про курс GTK на ближайшие годы после обсуждения его будущего на GTK hackfest в Торонто, то легко можно найти главные тезисы:

  • Скорость разработки увеличивается. We are going to increase the speed at which we do releases of new major versions of Gtk (ie: Gtk 4, Gtk 5, Gtk 6…).
  • Каждые 6 месяцев будет ломаться совместимость API и ABI. Each 6 months, the new release (Gtk 4.2, Gtk 4.4, Gtk 4.6) will break API and ABI vs. the release that came before it.

Для стороннего программиста, узаконенное переписывание кода раз в 6 месяцев, переводит ситуацию на новый уровень безумия. Можете представить тысячи часов свободного времени у сторонних программистов, обновляющих своё ПО раз в полгода? Впереди множество сломанных приложений и удар по таким линукс средам рабочего стола как MATE, Xfce и Cinnamon. Разработчиков GTK кажется не заботит ничто, кроме их Gnome.

Множество сторонних программистов создают для людей программы в свободное время и не работают над своим проектом полный день за оплату. Как вы думаете, они будут создавать заново свои программы из-за людей в проекте GTK? В ближайшие месяцы конечный пользователь столкнётся с программами, которые резко перестали нормально работать. Что им делать?

Если глянуть развитие конкурирующего тулкита Qt, то там никто не требует переписывать ПО, когда Qt в рамках одной версии обновляется в системе, к примеру с 4.2 на 4.4.

Какое решение принять? Форк?

Разработчики GTK дали ясно понять, что скорость релизов будет увеличена и между релизами будет серьёзная, постоянная ломка API и ABI. Некоторые релизы, типа 4.6, будут островками стабильности, но на маленький срок в 2 года. Небольшая команда разработчиков ломает работу тысяч других программистов и раскалывает линукс сообщество, что просто неприемлимо! Двухлетний план разрабов GTK для их "LTS версии" не подходит идеально, так как различные версии линукс дистрибутивов идут с различными версиями GTK и может быть ситуация, когда софт работает в Ubuntu и не работает в Arch и vice versa.

Linux Mint уже начали форк дефолтных программ из проекта GNOME под названием X-Apps и хотят быть совместимыми ближе к MATE и Cinnamon, чем к GNOME Shell, и удержать ситуацию в своих руках.

Но форк такого огромного проекта как GTK реально сложен, на грани нереальности. Что делать и куда бежать?

GTK2 против GTK3.
GTK приложения в Mir.
Пакуем gtk приложение DeaDBeeF в snap.
Оригинал Are GTK+ developers destroying Linux desktop with their plans?

    Twitter   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта

Лучшее на сайте:

1С под Linux.   Ускорение Ubuntu.   21 пример iptables.   Цикл статей о Ceph.   Убунту в дикой среде.   Ubuntu Linux на SSD.   Ubuntu для блондинок.   Поддержка железа в Linux.   BTSync на службе у админа.   Андроид программы в Ubuntu.   Прокидывание портов для p2p.   Анти СПАМ в Postfix.  



Круги Гугл Ада.


Группа поддержки