GObject的自省跨多种语言(GObject Introspection across multi

2019-10-18 14:47发布

旧的PyGTK 2.8绑定的维基页面指出一个对象正确用Python写的

还应该从C代码,或者甚至其它语言绑定容易使用。

但是PyGTK是过时的,应由PyGObject更换。 是否可以混合和匹配语言与新的反省为基础的结合,也? 例如,我可以写在瓦拉GObject的类,与Python扩展它,并使用该结果在Java中?

Answer 1:

我已经写了,基本上做这一个基于C的插件库。 它使用GObject的反思与在理论上是可能的。 现在有C / C ++,Python和Lua中,并在SeedJS相同的内存空间中的所有一起玩,但我没试过子类或致电其他语言除C以外的任何东西。

不管怎么说,随时如果你喜欢鼓捣。 GPlugin



Answer 2:

从理论上说,是的,它应该是可能的。 在实践中,没有,真的没有。 混合多种运行时一样,是非常困难的,非常浪费资源。 如果你希望你的代码是在多国语言可用,你需要非常需要它写在C或瓦拉。 或C ++,只要你暴露一个C API。

你真的会得到最接近的事是一样的东西libpeas ,在其中创建定义良好的扩展点,然后被自由地实现您选择的任何语言的扩展。



文章来源: GObject Introspection across multiple languages