GObjectIntrospection

App Developer Week -- GObject Introspection: The New Way For Developing GNOME Apps in Python, JavaScript and Others -- tomeu -- Mon, Apr 11th, 2011

Toggle line numbers
   1 [18:03] <tomeu> Hi, I'm a GNOME developer working at Collabora.
   2 [18:03] <tomeu> During the past few years it has been evident that trying to keep the GNOME APIs available to languages other than C required more resources than were available.
   3 [18:03] <tomeu> If you were working on a Python app using GNOME stuff, you probably realized about that.
   4 [18:03] <tomeu> GObject Introspection's main goal is to radically lower the amount of effort required to do that.
   5 [18:04] <tomeu> Feel free to make questions at any point, I will address them as I see them fitting in the plan of the talk.

The problem

Toggle line numbers
   1 [18:04] <tomeu> Before introspection was available for GObject-based APIs, bindings maintainers had to produce C code that would bridge between the host language and each C API that would be made accessible.
   2 [18:04] <tomeu> There were code generators that saved a lot of time, but still, corner cases had to be handled manually and the generated code had to be maintained.
   3 [18:05] <tomeu> The total amount of work required to keep the C APIs callable from other languages was a factor of the size of the APIs, the number of languages that would be able to call into them, and the distros where such bindings had to be packaged.
   4 [18:05] <tomeu> As you can see, the amount of work to be done was growing very quickly, far faster than resource availability in a mature project such as GNOME.

The solution