A conundrum I’m having at the moment is that I have a vaporware home-time project which I’ve done a fair bit of design and research for. It’s really getting to the time that I should be writing some code, but I have a conundrum.
You see, this app has a very niche target user base of my (non-techy) friends. That means I need to write something which can be used on Windows, Mac OS X and Linux, whilst writing close to zero platform code (particularly for Windows, done that – not going back), and with minimal effort wasted (remember, home-time project).
Next we have Mono. While I like C# I’m put off by the ugliness of Gtk# on Mac OS X (and to a lesser extent, Windows). Of course, I can write a Mono core with native UI wrappers, but I don’t really want to maintain 3 separate UI code bases (or write host-specific code).
Third there’s that old faithful Java. The reason I won’t use it is simple, this is a GUI app and I hate Swing.
In four, there’s Clutter (and Mx) – brilliant. Only the non-Linux back-ends for Clutter will no doubt need some love, and for Mx are non-existent. Still… we could have a winner? I’m not very familiar with Clutter and I’m nervous how it would work out for what will basically be an IM client with a non-standard UI.
Finally, and by no means least, there’s Qt. The disadvantages to Qt are that I’d have to learn it’s intricacies (signals, slots, moc, etc) and obviously (as for Clutter) I’d need a host for each target OS to build the project on. That and using Qt would probably get me a flogging in the office.
Lots of choices, no simple answer. Bonus points if the platform has a decent XMPP library.
I guess that means fix and use Clutter/Mx, or write Qt and get flogged?