Description
Subtitle: (The story of GObject Introspection)
Speaker: Federico Mena Quintero
Abstract:
GNOME's platform libraries (GTK, gstreamer, libgnome-desktop, librsvg, etc.) are written in low-level languages like C, C++, and Rust, for very good historical and technical reasons. And yet, people write applications for GNOME in languages like Python and Javascript all the time.
How does this happen? How are vast APIs in C made to work from other languages without tons of manual work?
This talk will explain GObject Introspection, one of GNOME's hidden jewels. Over many years we have written what is essentially a semi-automated annotation system for the low-level C ABI, which makes it possible for language bindings to be generated mostly automatically. This talk is not as much about technology as it is a story of collective maintenance to produce something wonderful.