Fog Creek Software
Discussion Board




XUL / wxWindows / Qt

After reading Joels recent posting about XUL, I'm wondering if anyone out there has any opinions about XUL versus wxWindows or Qt as a multi platform GUI platform.
I thought wxWindows was the way to go if a non platform specific GUI is your aim ?

Paul Reidy
Sunday, October 27, 2002

Don't forget Java and C#. 

Cross-platform GUI development: We are legion.

Personally, I like Java.

Nat Ersoz
Sunday, October 27, 2002

Tcl/TK works well for me.

Scott Gamon
Monday, October 28, 2002

I use wxWindows for my (open source) projects and I like it. I find the classes reasonably intuitive and I have been able to produce working GUIs with many different types of controls, quickly. My development has been on Linux using wxGTK but at least in theory my code could compile and run under Windows and other platforms.

I looked at Qt/KDE before wxWindows and was not so impressed. The API was OK, but I hit a problem early on which had no obvious solution, extensive searches via Google and the Qt and KDE web sites didn't help so I abandoned it. I found the Qt examples to be particularly simplistic and lacking in the sort of extras that are required for production quality GUIs.

I have no experience of XUL.

Jonathan

WhatTimeIsItEccles
Monday, October 28, 2002

"I thought wxWindows was the way to go if a non platform specific GUI is your aim ?"

Why would a non platform specific GUI be an aim? Other than for the people who have to build and maintain it?
Don't platforms have specific standards that make them easy to use once you have learned them? And don't different platforms have different standards for similar purposes? Like the small x in the upper righthand corner in Windows? Do all platforms have that?
In other words, how can you use platform specific standards to make the life of people who know that platform easier, with a non platform specific GUI?

Erik
Monday, October 28, 2002

----------------------------------------------------------------
In other words, how can you use platform specific standards to make the life of people who know that platform easier, with a non platform specific GUI?
----------------------------------------------------------- Erik

I think this is the main reason that Joel is emphasising XUL over the other efforts.  It does manage to feel like a Windows apps as well. 

-----------------------------------------------------------------
And thanks a lot of hard work all the little platform-specific touches (like Alt+Space N to minimize a window) are finally right
----------------------------------------------------------- Joel

Ged Byrne
Monday, October 28, 2002

I have to jump in to defend wxWindows here.

wxWindows is a multi-platform *toolkit*, therefore issues about key bindings for specific functions are still in the hands of the developer. Of course this means that on different platforms with different standards for key bindings, then your underlying code would presumably have conditional compilation or other mechanism.

wxWindows makes use of the underlying  windowing system to provide the controls/widgets (unlike Java Swing). In order to provide a rich environment for the developer, and not some poor lowest common denominator (Java AWT anyone?), controls/widgets that are not available on a given platform are programmed within wxWindows in a way that fits in with the native GUI.

I suggest you take a look at the wxWindows web site (http://www.wxwindows.org) and see what can be done. BTW I have no connection to wxWindows except as a happy bunny developer.

Jonathan

WhatTimeIsItEccles
Monday, October 28, 2002

With XUL you get to inherit the application model (key bindings, mouse behaviour) of the platform as well as the means of laying out boxes and widgets. 

Now its not an object inheritance which is enforced by anything, its just a bunch of text files and code describing the behaviour and its not compulsory to take it.  But it does reduce the work considerably.

For the doomed ecommerce app earlier this year I evaluated  wxWindows, Java with Swing and XUL in an attempt not to choose XUL and Mozilla, because I'd been burned by the flip-floppy development of Mozilla.

In the end I still came down to using XUL, partly because of speed and performance (though wxWindows seemed ok), and largely because the rest of the app was going to have large lumps of connectivity that the rest of Mozilla already gave.

If it hadn't been an interwebby, networky thingy I might well have chosen wxWindows.  I'm pretty sure I wouldn't have chosen Java and Swing.

Simon Lucy
Monday, October 28, 2002

We just changed one project from Java/Swing to C++/WxWindows.
The developers seem to be happier now, the app runs much faster, the GUI "feels" better (though still in the "I wrote this!" programmer style of in-house dev.).

Just me (Sir to you)
Monday, October 28, 2002

These toolkits (specifically, wxWindows and Qt) have always held a great attraction for me, but I always seem to end up not using them. 

I look for clear evidence that people are successfully using these tools to produce consumer-grade apps.  It would seem that the cross-platform toolkits generally get used for internal corporate apps, open source stuff, research apps, and so on.  I never find much evidence that mass market product development gets done this way.

Perhaps I am missing something?  I haven't actually checked on these toolkits in a little while.  Do wxWindows and Qt have big success stories to be told?

Eric W. Sink
Monday, October 28, 2002

---
Perhaps I am missing something?  I haven't actually checked on these toolkits in a little while.  Do wxWindows and Qt have big success stories to be told?
----

Well, not too sure about wxWindows, but Qt is the underlying toolkit used in Borland's CLX Class Library, which in turn is the core lib. on Borland's Kylix Development tools for Linux (both C++ and Delphi versions), and also is avaliable on the latest Windows Dev tools (C++Builder, Delphi) to allow x-platform "recompile and forget" development.

So I'd say that's quite a big "success" story. IIRC, Borland's tools are by far the best sellers for development on linux (it's true that open source tools still have a big share of the market, but I think that "for pay" tools are being used more and more as more companies start targeting linux). Also, there is an Open Edition of the tools tha you can use to make GPL apps (and to test-drive them, of course ;)

HTH

  Javier

F. Javier Jarava
Monday, October 28, 2002

I've been using wxPython -- a Python binding around wxWindows -- for the last six months or so. As a toolkit, this beats the tar out of anything else I've used (including the classic Tcl/Tk combo).

We haven't used it cross-platform yet, but we may.

Jeff Kotula
Monday, October 28, 2002

For Java developers, the SWT subproject of the Eclipse Platform Project, http://www.eclipse.org , looks promising.

Brian
Monday, October 28, 2002

Nat, can you elaborate on C# being a cross-platform GUI technology? I realize it has the *potential*, but so far Ximian Mono has not delivered, while Microsoft Rotor doesn't seem to be targeted for GUIs at all.

Nate
Monday, October 28, 2002

I've never used it, and likely never will.  I was just trying to be "inclusive" - politically correct on a predominantly MSFT laden discussion group.  It's because I'm so tactful and courteous.

Anyhow, we use Java in embedded projects, without using any Awt or Swing.  The UI is fully custom.  I write the JNI layer and device drivers.

I will not likely use C# in my career lifetime - although we have researched embedded Qt.

Nat Ersoz
Monday, October 28, 2002

BTW, can someone define the terms "toolkit" and "framework"?  Are these terms synonymous with regards to the topic being discussed?

Brian
Monday, October 28, 2002

I think QT has a lot of examples where it has been used to build "professional" or "industrial" software (whatever that means), like Opera, or KDE.

lonely_programmer
Wednesday, October 30, 2002

*  Recent Topics

*  Fog Creek Home