Another option is Vala. If you haven't heard about it, Vala is a programming language in its own right, with similarities to C#, but specifically designed for use with GObject. One very interesting thing about Vala is that it compiles to plain C-with-GObjects (as an intermediate step). Thus, you write in Vala, with no 'libvala' needed, with code which is just as fast as handwritten C. Vala also supports many other libraries, which can make them easier to use, compared with plain C. Using Vala, writing GObject/GTK+-based applications becomes a lot easier. Vala Overview.
Finally, my truly low-tech solution is spuug. Spuug is a little GObject code-generator that I wrote in 2006 to learn some Ruby, and to save myself some time. And boy, has it saved me some time! Now, finally a new version. The credit for this go mostly to Viktor Nagy (many thanks!), who submitted some patches.
spuug usage is quite easy; for example:
$ spuug --class=FunkyFooBar --namespace=Funky --parent=GtkWidget
will generate funky-foobar.c and funky-foobar.h with 150 lines of boilerplate code, as a starting point for some FunkyFooBar-widget.
Of course, spuug works well for Maemo-code, and I know of a number of programs that are using it.
There are of course some disadvantages to using code-generators. But the advantage of spuug is that it doesn't require you to learn any new language. Also, after using it, you're not depending on spuug - the output is perfectly readable C code.
2 comments:
djcb,
great! I tend to write code generators and enumerators for numerous things and am constantly on the lookout for anything to ease starting classes.
any chance you can add an example of its output either on the project page or in your posting so people can see what the results will be without having to fiddle?
gary (lcuk on #maemo)
@liquid: i've updated the webpage with links to the example files.
Post a Comment