GObject跨多种语言的内省

时间:2013-09-03 13:01:48

标签: programming-languages gobject gobject-introspection

The Wiki page of the old PyGTK 2.8 binding表示用Python正确编写的对象

  

也应该可以从C代码,甚至其他语言绑定中轻松使用。

但是PyGTK已经过时了,应该被PyGObject取代。是否可以将语言与更新的基于内省的绑定混合使用?例如,我可以在Vala中编写gobject类,使用Python扩展它并在Java中使用结果吗?

2 个答案:

答案 0 :(得分:1)

我编写了一个基于C的插件库,基本上就是这个。它确实使用GObject Introspection,理论上它是可能的。现在有C / C ++,Python,Lua和SeedJS在同一个内存空间中一起播放,但我没有尝试在其他语言中继承或调用除C以外的任何东西。

无论如何,如果你愿意,可以随时修补。 GPlugin

答案 1 :(得分:0)

理论上,是的,它应该是可能的。在实践中,不,不是真的。混合多个这样的运行时非常困难,并且非常浪费资源。如果您希望代码可以在多种语言中使用,则需要在C或Vala中编写代码。或C ++,只要您公开C API。

你真正得到的最接近的东西就是libpeas,你可以在其中创建明确定义的扩展点,然后可以用你选择的任何语言自由地实现这些扩展。