Live data from Hacker News

Ask HN: An acceptable cross-platform GUI toolkit?

news.ycombinator.com

21–30 of 57 posts

Re: Ask HN: An acceptable cross-platform GUI toolkit?

#21
Within the last few years, I've inherited a number of projects written using several of the above choices. While I don't want to appear _too_ negative, IME, apps produced using cross-platform GUI kits look bad on all operating systems.

I'd like to offer a "none of the above", which is to code the underlying "engine" of your app in C++, then connect that engine up to an OS-native GUI.

Just my $0.02.

Re: Ask HN: An acceptable cross-platform GUI toolkit?

#22

Within the last few years, I've inherited a number of projects written using several of the above choices. While I don't want to appear _too_ negative, IME, apps produced using cross-platform GUI kits look bad on all operating systems. I'd like to offer a "none of the above", which is to code the underlying "engine" of your app in C++, then connect that engine up to an OS-native GUI. Just my $0.02.

Absolutely agreed. Stop contributing to the horrid usability of each platform by mixing and matching UI paradigms in a vain effort to create something that "fits" all platforms.

Cross-platform UI toolkits are the devil for any serious app - each OS, whether Linux, OS X, or Windows, have their own UI needs and guidelines that should be respected.

It's high time that engineers started paying attention to making their software accessible and usable, instead of focusing all their attention on core "features" that nobody can figure out, or want to.

Re: Ask HN: An acceptable cross-platform GUI toolkit?

#25
post #13

Earlier quoted context omitted.

How I wish I could forget Swing.

There are some amazing apps built with swing...JetBrains IDEA and jEdit being two.

Interesting to note that two "amazing" apps written with Java are to help Java programmers ...

Re: Ask HN: An acceptable cross-platform GUI toolkit?

#26
post #7

wxWidgets is "big" because it has features. Considering it meets all your other criteria (aka features), in addition to ones you'll only find out you need halfway through a project, I would look closer at it. Use wxGlade and wxPython if you want easy, C++ if you demand compiled. Use dabo ( http://www.dabodev.com ) if you are interfacing with databases.

I am thinking of using wxWidgets as well for my current project, although it doesn't require much of a GUI. All the guts of my app are in cross-platform C++ (by cross-platform I mean Linux, Mac, and Windows). I have connected a small GUI to it in Windows using WTL, but could easily change it to wxWdigets so I have one GUI to maintain and not three.

Re: Ask HN: An acceptable cross-platform GUI toolkit?

#27
post #7

wxWidgets is "big" because it has features. Considering it meets all your other criteria (aka features), in addition to ones you'll only find out you need halfway through a project, I would look closer at it. Use wxGlade and wxPython if you want easy, C++ if you demand compiled. Use dabo ( http://www.dabodev.com ) if you are interfacing with databases.

I ran into a project where I needed a cross platform GUI kit (needed Windows and Mac) and settled on wxWidgets after talking to a few developers. It's been great to work with, although some of the other libraries that are compatible with it don't work as well as the core.

The really wonderful part of the experience is that even after not programming in C++ for about 10+ years I was able to get things working pretty quickly and I'm productive with it. A lot of that is due to the wxWidgets documentation and it's well developed structure.

My only real problem is when I have to switch back and forth between Erlang and C++. Those days suck :-)

Re: Ask HN: An acceptable cross-platform GUI toolkit?

#29
post #25

Earlier quoted context omitted.

There are some amazing apps built with swing...JetBrains IDEA and jEdit being two.

Interesting to note that two "amazing" apps written with Java are to help Java programmers ...

Why is that interesting? Emacs uses a lisp; does that mean anything about emacs or lisp? (Edit: I'm being serious, I guess I don't see why Java being used to write Java editors is a big deal.)

Re: Ask HN: An acceptable cross-platform GUI toolkit?

#30
If you're really picky about the look-and-feel on each platform, just bite the bullet and write 3 front-ends.

If you want something that looks reasonably good on major platforms, go with Qt or wx.

There are a couple more options you have:

XULRunner: I like this option because of the flexibility you get in creating UIs using markup and styles. You can get XULRunner built with Python support so you don't have to resort to C++. And you get a reasonably powerful rendering engine to boot.

Adobe Air: Never used this so I can't say anything for sure but from what I've heard, its similar to XULRunner but uses WebKit and a lot of Flash. It is, however, proprietary.

And,

If you're going to do a new UI toolkit, great. Just make sure you know a) why wxWidgets didn't accomplish this for you b) How you plan on addressing those shortcomings.

I believe wxWidgets was supposed to address the issue you raised about giving the native look and feel on each platform independently. It uses GTK on Linux and Win32 on Windows. No idea about how it works on OS X but I assumed it would use Cocoa\Aqua\whatever. Is that not the case?

Post reply on HN