LINUX.ORG.RU

Интроспекция в системе типов GObject

 , , , ,


0

0

GNOME Project представляет поддержку интроспекции для системы GObject.

Интроспекция (англ. Introspection) - возможность определения типов и получения описаний (метаданных) типов и интерфейсов во время выполнения программы. Задачей проекта GObject Introspection, по словам авторов, является попытка собрать метаданные по всему стеку библиотек GTK+/GNOME (и не только), оформить их в универсальном, машинно-читаемом формате, и предоставить соответствующее API.

Возможные варианты использования GObject Introspection:

  • привязки к языкам (language bindings). На данный момент, как правило, для различных языков используются свои методы описания API, что зачастую приводит к дублированию информации. Проект GObject Introspection должен представить унифицированный интерфейс для получения информации об API;
  • верификация API. Нередко случаются критические изменения публичного API (в результате, например, непредусмотрительности разработчика-новичка), которые могут "сломать" некоторые программы. GObject Introspection позволит автоматизировать сравнение двух версий API и выявить изменения с предельной точностью;
  • инструменты документирования. В рамках самого проекта GObject Introspection уже используется инструмент для автоматического документирования публичных API, которым в дальнейшем планируется заменить gtk-doc в рамках всего проекта GNOME;
  • автогенерация пользовательского интерфейса (наподобие того, как сделано в системе аудиосинтеза Beast);
  • дизайнер пользовательского интерфейса;
  • сериализация, RPC (в том числе средствами DBus), компонентная система.
На данный момент GObject Introspection представляет собой:
  • схему (формат) XML для представления метаданных, называемую GIR (GObject Introspection Repository);
  • модуль на языке Python для манипуляции форматом GIR;
  • генератор GIR из файлов исходных текстов на С (.c + .h);
  • систему typelib, схожую с XPCOM/MSOLE, для сохранения метаданных в бинарном формате;
  • конвертер между GIR (XML) и typelib (бинарный формат);
  • C-библиотеку для чтения typelib.
Исходные тексты GObject Introspection доступны в Subversion-репозитории проекта GNOME в соответствующем модуле (см. "Подробности").

Проект GObject Introspection активнейшим образом используется в языке Vala.

>>> Подробности

anonymous

Проверено: Shaman007 ()

Re: Интроспекция в системе типов GObject

пихнем еще больше xml в систему!

volh ★★ ()

Re: Интроспекция в системе типов GObject

> систему typelib, схожую с XPCOM/MSOLE
> схожую с XPCOM/MSOLE

> с XPCOM/MSOLE

> MSOLE


Just as planned.

anonymous ()
Ответ на: Re: Интроспекция в системе типов GObject от volh

Re: Интроспекция в системе типов GObject

> пихнем еще больше xml в систему!

пихнем еще больше С в ядро Linux!
пихнем еще больше нефтепродуктов в бензин!
пихнем еще больше пшеницы в хлеб!

anonymous ()

Re: Интроспекция в системе типов GObject

Ой какими технологиями Гноме трясёт. А встроенный композитинг то уже осилили ?

anonymous ()

Re: Интроспекция в системе типов GObject

а разве в QT x.x этого нет? что только люди не делают чтобы не работать...

anonymous ()

Re: Интроспекция в системе типов GObject

Разъясните кто-нибудь, а программисту на Си это что-то даёт?

Bohtvaroh ★★★★ ()
Ответ на: Re: Интроспекция в системе типов GObject от Bohtvaroh

Re: Интроспекция в системе типов GObject

>Разъясните кто-нибудь, а программисту на Си это что-то даёт?

Отсутсвие встроенного композитинга.

anonymous ()
Ответ на: Re: Интроспекция в системе типов GObject от Robotron

Re: Интроспекция в системе типов GObject

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

anonymous ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

А у меня композитинг в Metacity работает (Gnome 2.22). Что я делаю не так?

gconftool-2 --set --type=bool /apps/metacity/general/compositing_manager true

crank ()
Ответ на: Re: Интроспекция в системе типов GObject от crank

Re: Интроспекция в системе типов GObject

>gconftool-2 --set --type=bool /apps/metacity/general/compositing_manager true

А вот не надо нам gconftool. Это по тому что они его "turned off by default" в версии 2.22. Просто не осилили ребятишки из Гнома протестить как полагается вот и вырубили по умолчанию, а вдруг у кого заработает и чудненько.

anonymous ()

Re: Интроспекция в системе типов GObject

Гномеры идут верной дорогой про созданию джава-подобной обёртки для Си. В Java-то это давно есть...

anonymous ()
Ответ на: Re: Интроспекция в системе типов GObject от Bohtvaroh

Re: Интроспекция в системе типов GObject

> Разъясните кто-нибудь, а программисту на Си это что-то даёт?

"Прямую" сериализацию/десериализацию. Автоматическая проверка api тоже многого стоит.

mv ★★★★★ ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

> В Java-то это давно есть...

В более правильных языках оно было за много лет до появления Джавы.

mv ★★★★★ ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

> А вот не надо нам gconftool. Это по тому что они его "turned off by default" в версии 2.22. Просто не осилили ребятишки из Гнома протестить как полагается вот и вырубили по умолчанию, а вдруг у кого заработает и чудненько.

На сколько я понимаю, KDE4 тоже не особо тестируют.

mv ★★★★★ ()

Re: Интроспекция в системе типов GObject

> В более правильных языках оно было за много лет до появления Джавы.

%username%, соль в том, что Гномеры тоже способны дойти до этого. И пусть не за 10 лет, но за 20!

anonymous ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

Чем бы дитя не тешилось - лишь бы не вешалось. Гномеры показывают всему миру кишки gcc вытащенные в отдельную либу. Ура!

anonymous ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

>А встроенный композитинг то уже осилили ?

Вы хотите встроенный композитинг в GObject? Может вам еще и "переключалку раскладки" прямо в QWidget?

:)))

petrosha ★★★★★ ()

Re: Интроспекция в системе типов GObject

Требую метку [программирование]

anonymous ()

Re: Интроспекция в системе типов GObject

Воплощается мечта Мигеля о реесте в Гноме, он еще gtk+ на mono перепишет, и все это можно будет бысто закапывать пока Балмер в суд не побежал.

anonymous ()

Re: Интроспекция в системе типов GObject

>На сколько я понимаю, KDE4 тоже не особо тестируют.

Ну так такое оно и есть. Его ни то что не тестируют, а наверное даже в глаза разработчики не видят, токо код пишут, и проверяют чтобы компилялось.

anonymous ()

Re: Интроспекция в системе типов GObject

> В более правильных языках оно было за много лет до появления Джавы.

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

vgudkov ()
Ответ на: Re: Интроспекция в системе типов GObject от vgudkov

Re: Интроспекция в системе типов GObject

> Только на этих правильных языках нельзя написать платформенную библиотеку, которую можно будет использовать из кучи других языков без особых костылей.

А как же gcj?

anonymous ()

Re: Интроспекция в системе типов GObject

Скажите, а IUnknown скоро будет?

sv75 ★★★★★ ()

Re: Интроспекция в системе типов GObject

Рискну предположить, что богатые возможности introspection и последующего reflection могут заложить основу для создания object-relational persistence layer для GObject в духе Hibernate, тем самым открывая языкам типа Vala путь в мир enterprise.

anonymous ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

Нафиг только энтерпрайзу нужен gtk/glib... Окошки а так ваяют, на чём не попадя, а для ваяния особо сурьёзных поделок есть более другие языки.

mv ★★★★★ ()
Ответ на: Re: Интроспекция в системе типов GObject от sv75

Re: Интроспекция в системе типов GObject

>Скажите, а IUnknown скоро будет?

java.lang.Class - такой же IUnknown. Другое дело что IUnknown->AddRef() / IUnknown->Release() в принципе не могут заставить не течь даже платные специалисты, не говоря об опенсорце.

Absurd ★★★ ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

> велика и могуча русская языка

Падежей только мало. И лаконичность за последнее тысячелетие здорово потерял.

mv ★★★★★ ()

Re: Интроспекция в системе типов GObject

Ага... Понятно к чему были эти разговоры о .NET а Gnome. Они решили GObject сделать а-ля .NET Framework, а язычки C# подобные уже для него есть. В принципе совсем не плохо.

eXOR ★★★★★ ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

> открывая языкам типа Vala путь в мир enterprise.

Вряд ли. "Мир enterprise" - это, в основном, marketing bullshit. А на вале особенно непобулшитишь ;-)

AlexM ★★★★★ ()

Re: Интроспекция в системе типов GObject

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

А теперь представьте перспективы труЪ-компилируемого языка с автоматическим управлением памятью, богатой рантайм-библиотекой и ORM.

anonymous ()

Re: Интроспекция в системе типов GObject

Как много ынтерпрайза...

GFORGX ★★☆ ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

> Ага... Понятно к чему были эти разговоры о .NET а Gnome.
> Они решили GObject сделать а-ля .NET Framework, а язычки C#
> подобные уже для него есть. В принципе совсем не плохо.

Вообще то когда первый раз вышел NET я тогда еще подумал вот наконец
то додумались. Транслировать разный код в Си код и с последующей
сборкой под нужную платформу. А как спеки прочел так понял что опять
VM аля Java :(

Короче если Vala пойдет дальше также то это будет RIP для Net и Java !

http://www.linux.org.ru/jcaptcha.jsp

anonymous ()

Re: Интроспекция в системе типов GObject

О отличная вещь !!

srgaz ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

> Чё таблетки не пьёшь? man QMetaObject

Вот сиди и читай, а потом для просветления прочитай новость еще раз.

и не пори чуши.

anonymous ()

Re: Интроспекция в системе типов GObject

> "Прямую" сериализацию/десериализацию. Автоматическая проверка api тоже многого стоит.

А вот и пися. Потому как GLib/GTK+/etc изначально не затачивались под это, в результате - куча подводных граблей, с которыми лично мне приходится сталкиваться при разработке Glade3.

Короче, чувствую я, что область применения ограничится одним Vala.

ShprotX ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

> А как спеки прочел так понял что опять
> VM аля Java :(


Неправильно прочел :). Оно компилируется в нативный код.

eXOR ★★★★★ ()
Ответ на: Re: Интроспекция в системе типов GObject от ShprotX

Re: Интроспекция в системе типов GObject

> Короче, чувствую я, что область применения ограничится одним Vala.

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

eXOR ★★★★★ ()
Ответ на: Re: Интроспекция в системе типов GObject от anonymous

Re: Интроспекция в системе типов GObject

>> Чё таблетки не пьёшь? man QMetaObject

> Вот сиди и читай, а потом для просветления прочитай новость еще раз.

Глупенький штоле? Ну-ка, объяснил, какой ещё тебе интроспекции не хватило в Qt, или соснул плюсца.

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