libgda and libgnomedb and C++

libgda and libgnomedb provide a generic database API and UI for a variety of database systems, built on glib and GTK+.

The version 3.0 C++ bindings (libgdamm and libgnomedbmm) are taking shape pretty well, along with a task-orientated tutorial for C++, and reference API for libgdamm and libgnomedbmm. The libgda and libgnomedb C documentation is also online at openismus.com while we wait for some way to get it on to the GNOME servers.

Johannes and Armin and I are still working hard on finishing it. As part of this, we’ve had to do far more work than I’d prefer on the underlying libgda and libgnomedb, but I feel much more confident about them now that it’s done. I’ve also given lots of attention to the many open libgda and libgnomedb bugs and patches in bugzilla, so you’ll see lots of new names in the ChangeLog files. Some of these bugs have been ignored for four years, which I think is a real waste.

libgda 3.0 and libgnomedb 3.0 have a much bigger API than their 1.2 versions, due to the addition of new concepts, abstractions, and features. I’d be surprised if these really meet all the expected needs, so I personally guess that another parallel-installable libgda 4.0 might do some refactoring in the future. Vivien Malerba, Daniel Espinosa and Bas Driessen (blogless?) have done the heavy thinking to get us so far.

Some parts of the API have been simplified, but I still worry that other often-used parts are too complex, exposing API that should not be public, requiring repetition, and requiring data that can only be discovered at runtime. But this can be improved with API additions.