24–26 Nov 2020
Online
Asia/Kuala_Lumpur timezone

How GNOME supports multiple programming languages (the story of GObject Introspection)

26 Nov 2020, 15:30
50m
Track 2

Track 2

https://meet.gnome.org/b/gno-5ry-mlc-rry
50 minutes presentation

Speaker

Federico Mena Quintero

Description

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 a technology as it is a
story of collective maintenance to produce something wonderful.

Tracks Application Development and Deployment
Level of Difficulty Beginner
Author(s) Bio Federico (he/him) is one of the founders of GNOME, and is the current maintainer of librsvg.

Primary author

Presentation materials

There are no materials yet.