Тут пишут, что можно написать свой код в стиле GObject, то можно будет, скажем, в питоне использовать этот код без дополнительных обвязок на С, просто использовав средства gobject introspection. Кто-нибудь пробовал?
Странно, что гтк только с третьей версии перешел на полную «гобъектность». Возможно он все-таки делался для управления памятью, для сигналов и всего такого, а не только лишь для интроспекции.
Если набор библиотек популярен, то найдётся тот, кто к нему напишет привязку. Вот то, что можно из питона использовать libvte - заслуга того, что libvte реализует интерфейс для gobject-introspection.
P.S. На самом деле для использования gobject-introspection даже не обязательно использовать GObject (и вообще ООП). Можно просто написать метаданные для экспортируемых функций.
P.P.S. А если не использовать динамическую память, то достаточно стандартного модуля ctype из Питона и gobject-introspection не нужен.
Есть альтернатива, мострячить хелловроды на QML замест Qt биндов, тогда получается вменяемый размер бинарника.
Я прошу прощения, немного дал дезинформации. Вот полное исследование (исключая QML) для Линукс. Приложение создаёт окно с белым фоном и всё. Где binary — размер скомпилированного бинарника, а stripped — этот бинарник порезанный strip --strip-all
Fyne (EFL)
binary 7.9MB
stripped 6.0MB
GLFW + GL4.5 core
bianry 3.5MB
stripped 2.2MB
GTK3
binary 14.0MB
stripped 9.7MB
Qt Go bindings
binary 46.0MB
stripped 24.0MB
X Go bindings
binary 3.3MB
stripped 2.4MB
Кончено X и GLFW не умеют в текст, например, т.е. они тут не совсем честно.
Прикол в том, что интерфейс взаимодействи Win32 API (Карл!) написан полностью на Go. Ни строчки Си. И бинд, лично мне, нужен только для создания .lnk файла и то, потому что разбираться в этих ком, или как их там, форматах довольно хлопотно.
Под виндой с бубнами собирается. Там при генерации introspection-описаний собираются автоматом мини-бинарики, которые дампят информацию о классах. Вот эти мини-бинарики не хотели линковаться, приходилось им подкладывать библиотеки-зависимости (точнее линки создавать). Но допускаю, проблема в скриптах от poppler или где-то я сам не досмотрел.