Making a GUI program for Linux has been a pain in the ass for a long time. When I create an app, I want to be busy with the threads I handle, the algorithms I implement and the protocols I invent (yes, I invent protocols, for whenever I need to communicate). When I create a user interface, I want it to be Very Easy. No hassling with flowing containers, placing widgets at runtime or crashing applications (as a general rule, RAD applications or IDEs on Linux crash).
Until now, Microsoft Visual Studio C# was the best UI-builder and the environment in which building the application is fastest. You fire it up, start clicking and dragging to make an interface, double click on buttons to connect handlers and programming is a breeze with the code assistent (don’t know the official name now). So you can convert your brainpower to implementing your idea. Which is basically the point of building a program anyway. But, as we all know, it is a product of the Evil Empire. It eats your grandchildren and is the one and only reason of global warming.
Every now and then, I do a round around the RAD/IDE applications on Linux. I download and install KDevelop, Anjuta, MonoDevelop and usually also one of the more exotic programs. And every time, I am greatly disappointed. KDevelop is somehow too complex to create a simple application, Anjuta crashes and has Glade badly integrated. Not to mention the container-model of GTK, which is not intuitive. MonoDevelop is getting somewhere, but it is not there yet. The install from Synaptic doesn’t work at all on my Ubuntu 9.10 (could easily be my fault), and shows that by giving strange unhandled exceptions. Which I can only see as a bug.
But, now, there is hope. I found NetBeans. And it almost has everything Visual Studio has. There is a decent GUI builder, there is code assistance, there is integrated debugging (which I hardly use, but whatever), there is integratied compiling, building, etc. Of course, there are drawbacks. It uses Java (which can also be an advantage; the JAR files usually run everywhere), also crashes once in a while, and it doesn’t look as sexy as Visual Studio.
For now, I like NetBeans. I can use it to quickly implement any crazy idea I have without getting crazily mad at my computer. Java is a decent language to program in, has a broad range of stuff-you-just-want-to-use, like sockets, threads, UIs, etc. It is certainly not slow as it used to be, and the resulting UI isn’t ugly anymore.
Of course, I will be checking the other IDE/RAD tools every now and then. And I hope a really good tool will emerge somehwere in the future. One that I actually want to use.