Stepping down with GUI toolkits

I write a small application which works with Festival speech synthesis system. As Festival modules I use are written in Scheme, I started to write the application in Common Lisp and McCLIM. But I had to step back from this decision soon. McCLIM is an excellent GUI toolkit, but it lacks support for Czech, which is absolutely required by my application. As there is no real maintainer of McCLIM and the team of occasional contributors is generally not responsive even when you try to make patches, I didn’t want to risk blockers in the later stages of my project.

I moved to Guile and guile-gnome. That seemed to be a natural choice, GTK+ is a proven and stable platform and despite I missed McCLIM high-level functions I hoped to benefit from the implementation of the whole project in Scheme. But it occurred again that using foreign bindings is painful. guile-gnome platform is basically undocumented and based on a foreign bindings generator which is hard to understand and without proper documentation too. After several battles with guile-gnome I had to give up and rewrite the UI part to C (the rest remains written in Guile).

The plain C GTK+ UI works now. Well, the basic UI concepts of GTK+ look like ten years behind CLIM 2.0 (i.e. somewhere around 1980), programming in GTK+ is no way comfortable and the thousands of low-level functions are far from elegance. But what is more important is that GTK+ works and is properly documented. You spend predictable amount of time on low-level coding instead of completely unpredictable amount of time on reading and fixing toolkit source code.

Leave a Reply

Your email address will not be published. Required fields are marked *