Рабочий стол Budgie переходит с GTK+ и библиотек GNOME на Qt
Разработчики дистрибутива Solus приняли решение о переводе рабочего стола Budgie на фреймворк Qt. Изначально Budgie был построен на основе GTK+ и штатных библиотек GNOME, но использовал собственные реализации оболочки GNOME Shell, панели, апплетов и системы вывода уведомлений. В качестве причины принятого решения указано, что потребности Budgie переросли возможности стека GNOME, и проект не может реализовать все свои задумки на основе штатных библиотек.
Отмечается, что GTK+ развивается в паре с GNOME и разрабатывается для решения задач, которые ставят перед собой разработчики GNOME, без оглядки на другие проекты. В итоге, каждый значительный релиз GNOME приводит к возникновению непредвиденных проблем, возникающих при переводе Budgie на обновленные библиотеки GNOME. Среди таких проблем упоминаются нарушение совместимости API или ABI, слияние компонентов, нарушение работы виджетов и тем оформления, непостоянство GdkScreen API, изменение поведения GSettings. Для того, чтобы поддерживать Budgie на плаву приходится тратить много усилий и притворяться GNOME Shell. В качестве выхода рассматривалась возможность создания собственного ответвления библиотек GNOME, но подобный шаг оценен как излишне трудоемкий.
Рассмотрев все за и против оптимальным признан путь миграции рабочего стола Budgie на Qt. По мнению разработчиков переход на Qt положительно отразится на производительности, позволит реализовать новые возможности и расширенные графические эффекты. При этом в основной кодовой базе планируется использовать только средства разработки на C++ и отказаться от применения языка Vala. В Budgie также не будет применяться QML и JavaScript.
Подобное ограничение не распространяется на сторонние виджеты, авторы которых вольны применять QML. Библиотеки проекта KDE в разработке использовать не будут. Также не планируется обеспечение совместимости с KDE Plasma, проект продолжит ориентацию на запуск приложений GNOME и обеспечит их бесшовную интеграцию в окружение на базе Qt.