Question

I have been asked to develop a new, small, custom-specific CRM (Customer Relationship Manager) that will be used mainly on Linux desktops (compatibility with Windows and Mac OS X would be appreciated but it is not required).

This seems to be a good opportunity to try the new Vala language and some of its libraries (most notably libgda and the rest of Gnome-DB) but, of course, I still have to deliver a working product to the customer in time so... I'm still scratching my head and wondering.

To develop this application I would need:

  1. A "glue" language (Vala itself). This is OK.

  2. A GUI Library (GKT+ 2.X or 3.X). This is OK.

  3. A database abstraction layer (libgda). Here I have some doubt.

  4. Maybe a MVC framework like Bakery (Bakery 2.6 seems to be working with GTKmm 2.4 only. It does not work with the GObject-enabled GTKmm 3, as long as I can see.).

  5. Maybe a ORM like Hiberlite (libgda supplies data-aware widgets and other tools but it is not a full-blown ORM, as long as I know).

At the moment, I'm confident about the first two items, only. Even the real amount of Vala support for libgda is not very clear to me (The ValaDoc describes as supported the interface of a old version of LibGDA while the Gnome-DB website says that the new 4.2 and 5.X versions of the library are GObject- and Vala- enabled). Most likely, Bakery and Hiberlite would not be available any time soon for Vala.

The nearest alternative seems to be:

  1. C++

  2. GTKmm (2.X)

  3. Maybe Bakery 2.6

  4. libgda

  5. Maybe Hiberlite

A more mature stack but... maybe so mature to be fated.

Hence: would you try Vala for a new database-centric project like this? Or would you wait for a more mature and more rich Vala ecosystem?

Thanks

Was it helpful?

Solution

Vala just means native compilation without requiring a framework (and versions) to bother about. Connecting to database still looks premature and definitely undocumeted (that's how I came to this post). Besides, there is no IDE. Glade is not really and IDE, but an interface designer.

Try out Lazarus and you will be in for a surprise, how conveniently database front ends can be developed. Pretty mature, native compilation, ready to use third party components, database support right through the IDE, options of using Gtk or Qt.

And it gives native exe's on Windows, Linux and Mac. Nothing comes even remotely close if you are developing cross-platform database front ends. Development time would be a fraction and performance comparable to C, if not equal.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top