Cross-platform GUI toolkits

Its an unsolved challenge … the cross-platform GUI toolkit. It just doesn’t exist in the right form. There’s lots of contenders, but all fall short in some critical way.

It should be simple, all I want to do is create a little cross-platform app that allows my users to upload a large file to a website and report on the upload progress.

My requirements are simple:

  1. I dont want to have to compile code or execute code or do packageing tasks on all 3 major OS’es (i.e. Qt, GTK, Tk, Fox, wxWdigets etc.). Just give me the toolkit, let me press the button that spits out DMG, EXE and .sh (or whatever linux uses).
  2. I dont want to be a glaring advertisement for an app development platform …. that’s right, I dont want someone else’s branding and icons all over my app. (AIR, Shoes, etc.) It will just confuse and concern my users.
  3. I dont want to depend on something that might disappear. Appcelerator does its packaging in the cloud … no!
  4. I dont want to write C or C++ … I’ve got better things to do.
  5. I dont want to be drowned in some managed marketting muffle. That’s you AIR! … stop selling and just show me how it works.
  6. I dont want my user to have to download a platform before installing my app! (AIR, Swing etc.) And please dont try to sell me that I can bundle the platform for a fee.
  7. I dont want to give my users an app that will then download the *real* app. How do I convince my users that I’m not just installing porn on their harddrive? I want to distribute an app, not an installer!
  8. I dont want to use some huuuuge application platform that would theoretically allow me to build a 3D rendering application with bells and whistles and blablabla (Mozilla, Qt, etc.). I just want an uploader.
  9. Dont even mention the word RIA … its just a buzzword used by people looking to invest money so that they can make money, for money’s sake and maybe a fast car and lots of big houses with lots of cash and money money money, note to self:must cash in on RIA and other buzzword technologies.
  10. Just because a toolkit can do a ‘hello world’ twitter client doesn’t mean anything. Twitter clients just do extremely simple HTTP gets and posts. Try doing a multi-part form upload with large files and reporting on the upload progress. Someone should invent a ‘hello universe’ concept that allows people to test the maturity of new software products.

Lastly … and mostly … I dont want to use some toolkit that’s developed open source by one single person, as a hobby, between other hobbies.

Have a look at how many projects _why has on the boil. What’s this Potion thing he is spending all his time on? … its a whole new language! … oh shit. Its not looking good for Shoes. I’ve wasted so much time on half-baked Shoes.

Where to from here? Subscription accounts are practically completed … I’m that close to launching the site in fully functional commercial mode … I just need to find some decent little toolkit that allows my users to get the content on the site easily and from any OS. arghh.

This entry was posted in Uncategorized. Bookmark the permalink.

8 Responses to Cross-platform GUI toolkits

  1. Oliver Oli says:

    That is my experience, too. I used Tcl/TK for some simple streaming application and it was really simple. But it only looked good on Windows. GTK and QT are just too big for a few icons, some text and two buttons.

    And this was 8 years ago and still I haven’t found any toolkit I’m satisfied with. I don’t want to be a professional programmer, I just need to write simple applications occasionally.

    Why is it still so hard to write simple stuff?

  2. Oliver Oli says:

    p.s.: why do you need an uploader app? isn’t the browser good enough?

  3. Hi Oliver,

    The new website doesn’t use bittorrent to upload stuff. Bittorrent makes for a complicated user experience when uploading … first you have to have the software, then you need to work out how to create a torrent, then you need to seed it for enough time etc.

    The new site just does a simple upload, and tells you when its done.

    I had a frantic frantic ‘research’ day yesterday … trying to find the right technology to achieve this. I think I found it… its a flash based uploader that reports progress …

    If this works (posting to S3) then I can do the whole thing from the browser. That means that people dont have to download any Uploader app at all. This is good, but it also means that I cant really offer extra stuff, like a mono to *.amb creator … nor an ambisonic player like I had in mind.

  4. Martin says:

    In 1994 I started developing an image processing system called iPOX. I delayed the development of the GUI while I waited for a decent cross-platform tool. I was still waiting in 1999 when the project ended.

    There are some GUI toolkits listed in the Wiki at:

    My guess is the list doesn’t contain anything you haven’t already looked at, but take a look just in case. (For the Ambisonic player I like the look of XUL/XULRunner. My understanding is that you can test XUL just using a Firefox browser.)

    • Hi Martin,

      After all my research on GUI toolkits, I concluded that if I was ever going to attempt a GUI project again, then I would use XUL/XULRunner.

      … further to that, I wouldn’t attempt to write it from scratch, I’d just implement it as a plugin to SongBird.

      SongBird is like a popular open-source iTunes-like audio application built with XUL/XULRunner.

    • … and I should also state that SongBird would be the perfect host for an ambisonic player.

      It already contains all the necessary audio-player logic and framework. Playlists, categorisations etc.

  5. Martin says:

    Etienne wrote: “… and I should also state that SongBird would be the perfect host for an ambisonic player.”

    This should maybe be taken to e-mail, but …

    I like the look of Songbird, and the fact that it has the support of the Firefox crowd. What I have not done yet is examine its internals.

    One of the reasons I have been putting off starting to develop a player is that I know how much work it is going to be. Particularly as I want the GUI to control the Ambisonic engine by producing MIDI Show Control commands (or something similar). This will allow other tasks (such as signals derived from the audio) to manipulate the soundfield. This will be a bit like the way audio has been used to control disco lights for decades, only it controls the “swish” and tumble of the soundfield instead.

    Does grafting Ambisonics onto Songbird just mean writing a Songbird plug-in? If so, that is not too much work. I had assumed Songbird was inherently stereo and could not cope with multi-channel. But I have not looked.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s