gob2, the GObject builder, is a preprocessor that produces a .c and .h file for each input .gob. It adds some syntactic sugar to developing with the GObject model, allowing you to create new classes in a java-like syntax, like so:
requires 2.0.0
class My:Object from G:Object {
public gint foo = 0;
property INT foo
( nick="foo",
blurb="just a sample property",
minimum=0,
maximum=100,
default_value=0,
link );
virtual public gint
get_foo( self ) {
return( self->foo );
}
public void
do_something( self ) {
g_message("Doing Something");
}
}
gob2 supports the GObject paradigm in adding syntactic constructs for derivation, properties, signals and virtual functions. The possibility to declare new interfaces is still missing; also, integration with autoconf/automake is still very annoying.