Описание тега gobject-introspection

Самоанализ GObject - это промежуточный уровень между библиотеками C GObject и языковыми привязками. Библиотека C сканируется во время компиляции для создания файла метаданных. Во время выполнения языковые привязки могут считывать эти метаданные и автоматически предоставлять привязки для вызова собственной библиотеки C.

Интроспекция GObject - это промежуточный уровень между библиотеками C (которые должны использовать gobject) и языковыми привязками. Библиотеку C можно сканировать во время компиляции и генерировать файл метаданных в дополнение к фактической собственной библиотеке C. Затем во время выполнения языковые привязки могут считывать эти метаданные и автоматически предоставлять привязки для вызова библиотеки C.

Двухуровневые приложения: C и ваша любимая среда выполнения.

Имеет смысл создавать множество видов приложений с использованием (как минимум) двух разных уровней и языков. Это C + GObject и управляемая среда выполнения ( сборка мусора). C хорош для графики, мультимедиа и систем нижнего уровня. Однако писать сложное программное обеспечение без сборки мусора сложно и подвержено ошибкам. Управляемая среда выполнения, такая как Vala, JavaScript, Python, Java, Lua, .NET, Scheme и т. Д., Имеет большой смысл для логики приложений с не быстрым путем, такой как конфигурация, макет и диалоги.

Таким образом, одна из основных целей проекта самоанализа GObject - стать удобным мостом между этими двумя мирами и позволить вам выбрать правильный инструмент для работы, а не ограничиваться одним или другим. С помощью проекта интроспекции вы можете написать, например, подкласс ClutterActor или GtkWidget на C, а затем без какой-либо дополнительной работы использовать этот класс в JavaScript.