Linked by Eugenia Loli on Fri 7th Dec 2007 06:25 UTC, submitted by poundsmack
Qt Jambi ships as a single Java library, or JAR (Java Archive) file, plus a handful of tools, including an interface layout and design tool, and an Eclipse plug-in. Trolltech uses its vaunted Qt C++ library as the GUI engine and puts Java wrappers around it. This approach uses the JNI (Java Native Interface) to call the necessary functions from Java. More here.
Thread beginning with comment 289190
To read all comments associated with this story, please click here.
Unconvinced
by evangs on Fri 7th Dec 2007 08:35 UTC
evangs
Member since:
2005-07-07

After downloading Jambi, having a look at the examples and their accompanying source code, I am unconvinced that it will go far.

1) The code looks similar to Swing. By that, I mean that it is almost as verbose. For example, something that takes 10 lines to accomplish in Swing is going to take you roughly the same to accomplish in Jambi. Perhaps my opinion will change if I coded in Jambi professionally, but the examples I've seen do not convince me of any worthwhile productivity gain over Swing.

2) GUI Fidelity. I know that many Java developers are whining at Apple right now for not releasing Java 6. But ... one thing they have done right with Java as far as I'm concerned is Swing. Swing looks and feels native on OS X. The only giveaway is how components are spaced (i.e. they do not respect the Apple HIG). Jambi and Swing look pretty similar on OS X. They are so similar that they even have the same spacing problem. I don't know the situation on other operating systems like Windows and Linux, but as far as OS X is concerned there is no reason to dump Swing because Jambi looks similar.

3) Custom components. A common criticism of Swing is how it lacks a wide variety of components. The most cited example, is the date picker. Ok, Jambi comes with a date picker (QCalenderWidget) and an analog dial (QDial). It provides some handy input widgets that take care of formatting of dates, but it's not like you can't do that with a few lines of code in a changeListener of a JTextEdit.
A visual guide to Swing Components: http://java.sun.com/docs/books/tutorial/ui/features/components.html
A visual guide to Jambi Widgets: http://doc.trolltech.com/4.3/gallery-macintosh.html

4) Price. Jambi costs a lot of money. From the pricing site:
License Pricing (per developer)
One Platform 1420
Two Platforms 2130
Three Platforms 2840

You're paying close 2840 for some custom components that Swing doesn't have, similar visuals on OS X, perhaps slightly better visuals on Linux, can't comment about the look on Windows. In comparison, Swing is free and if the looks aren't that hot on Linux/Windows, you can always code in SWT which is free too. I need to point out too that the listed price is per developer. So if you have a team of developers the cost of licenses is going to sky rocket. Sorry for the use of hyperbole, maybe it doesn't sky rocket since that implies exponential growth, but the cost is still going to grow linearly unless Trolltech implements some unpublished volume license scheme.


There are other miscellaneous things that I shall briefly mention. Qt-Designer is pretty cool, but the Java alternatives are getting there. Matisse is shaping up to be a very good GUI designer. Jambi could perform better since Qt is renown for its speed. But then this has yet to be demonstrated for Jambi.

In conclusion, the price tag coupled with the lack of any large improvement over the existing free Java GUI toolkits will make Jambi a hard sell to existing Java developers. They can get away with such pricing in the C++ world because C++ lacks a viable cross platform GUI development library. It remains to be seen whether the same holds true in Java land.

Of course, someone could point out some super-major-killer-feature of Jambi that I've left out that makes it all worthwhile in the end ...

Edited 2007-12-07 08:39

Reply Score: 9

RE: Unconvinced
by MORB on Fri 7th Dec 2007 10:58 in reply to "Unconvinced"
MORB Member since:
2005-07-06

Regarding GUI fidelity, Qt looks native both on OSX and windows (linux being of course a different topic since there is no such thing as a default toolkit)

Actually there are plenty of apps that are Qt based (for instance Opera, Skype) that many people don't even know are Qt apps.

Edited 2007-12-07 10:58

Reply Parent Score: 2

RE[2]: Unconvinced
by PowerMacX on Fri 7th Dec 2007 13:53 in reply to "RE: Unconvinced"
PowerMacX Member since:
2005-11-06

Regarding GUI fidelity, Qt looks native both on OSX and windows (linux being of course a different topic since there is no such thing as a default toolkit)

Actually there are plenty of apps that are Qt based (for instance Opera, Skype) that many people don't even know are Qt apps.


Actually, Opera looks very obviously un-Mac-like and Skype... Skype on OS X looks and behaves perfectly as if it were a native app, even including Core Image transitions! Of course... that is because for Mac OS X they rewrote the GUI code using Cocoa ;)

edit: spelling ;)

Edited 2007-12-07 13:54

Reply Parent Score: 2

RE[2]: Unconvinced
by sappyvcv on Fri 7th Dec 2007 19:00 in reply to "RE: Unconvinced"
sappyvcv Member since:
2005-07-06

Opera is not Qt based. They use Qt for menus only. The actual theme engine is their own.

Reply Parent Score: 3

RE: Unconvinced
by pgquiles on Fri 7th Dec 2007 11:08 in reply to "Unconvinced"
pgquiles Member since:
2006-07-16

Actually, Qt is cheap and cheaper.

It is cheap because it boosts your development process. You are 3 or 4 times more productive using Qt than not using it.

And it is cheaper because those 1480 EUR/platform/developer are to buy, renewal is about 1/3 of that.

Did I say at my company we develop software using Qt and we do have commercial licenses?

Edited 2007-12-07 11:09

Reply Parent Score: 3

RE[2]: Unconvinced
by evangs on Fri 7th Dec 2007 11:18 in reply to "RE: Unconvinced"
evangs Member since:
2005-07-07

But you are using C++, right? The question is whether the productivity boosts that come with Qt-Jambi transfer to Java which already has GUI toolkits that appear to be similar.

I have no doubt that Qt is better than any C++ GUI toolkit (like wxWidgets, MFC or some other obscure toolkit). As I've said, just looking at the line count from the examples that come with Qt-Jambi, what jumps out at me is how similar the code looks to Swing.

Reply Parent Score: 5

RE[2]: Unconvinced
by joshv on Fri 7th Dec 2007 13:36 in reply to "RE: Unconvinced"
joshv Member since:
2006-03-18

3 to 4 times as productive eh? Care to substantiate that? At a certain level, object oriented GUI toolkits all work pretty much the same.

Reply Parent Score: 4

RE: Unconvinced
by sanctus on Fri 7th Dec 2007 13:42 in reply to "Unconvinced"
sanctus Member since:
2005-08-31

I don't know if you use OS X, but as a full time OS X user, swing applicantion can't lie. They never look nativ and you can always spot a swing application without knowing it is in java. It behave differently, generic windows tools are completly foreign (like the file chooser) and they are slower (when you which between tab to diffent menu.) If you want a swing application to look good on each platform, a lot of work is required.

Anyway, SWT writes on their site that it look native on every plateform. First thing you notice, ugly tabs that make application looks odd.

Productivity:
Gui designer in swing are well done (netbeans), swt are a total disaster. Qt designer is an incredible productity booster and is fun to use.

Their tools are so good, I think trolltech could give Q for free, reach a higher marker share. Then base their business on support and developpement tools. But anyway, they probably already think about it.

Reply Parent Score: 3

RE: Unconvinced
by JeffS on Fri 7th Dec 2007 14:17 in reply to "Unconvinced"
JeffS Member since:
2005-07-12

"They can get away with such pricing in the C++ world because C++ lacks a viable cross platform GUI development library."

Not true.

wxWidgets

and

Gtkmm

are both free, cross platform C++ GUI toolkits. Also, Gtkmm is essentially C++ wrapper classes on top of regular Gtk, which also can be used by itself in C++ applications.

So your point that Qt has been successful in the C++ world because a lack of cross platform C++ GUI toolkits holds less weight. IMO, Qt has been successful because of it's dual licensing (free for open source projects), the fact that KDE uses it, and it's overall excellence, which makes the propietary price tag easier to swallow (look at Google Earth, Skype, and Adobe Photoshop as great proprietary Qt programs).

Nonetheless, your point is well taken. I kind of doubt that Jambi will gain much traction, simply because Java devs already have Swing (which rapidly improving these days - after years of Sun neglect), and they have SWT (the Eclipse plstform is practically a de-facto standard for tools).

That said, I do think that Qt is a superior library to Swing or SWT. I just don't think that Qt Jambi will gain much of a user base. But it is nice for Java desktop developers to have another viable choice.

Reply Parent Score: 2

RE[2]: Unconvinced
by evangs on Fri 7th Dec 2007 15:05 in reply to "RE: Unconvinced"
evangs Member since:
2005-07-07

wxWidgets and gtkmm (and other obscure stuff like FLTK) are hardly in the same league as Qt. GTK on OS X and Windows has been the butt of many jokes. Having a C++ wrapper around isn't going to make it any better.

That leaves wxWidgets which is the most viable contender. I have tried to love wxWidgets. IMHO, it tries too hard to be MFC. Qt's signal and slots mechanism is better than wxWidgets MFC style message maps. They have introduced signals and slots in recent versions but this feels like the red headed stepchild that nobody likes. Most of the examples and documentation still deal with the message map.

Another thing that is lacking for wxWidgets is a decent GUI designer. Qt-Designer on the other hand is awesome sauce. I used it for Java(thanks to http://uic.sourceforge.net/) and I have mostly praise for it. wxWidgets lacks something like this.

The documentation for Qt, the design and the tools are better than the competition. This is what makes it so successful. The dual licensing scheme just makes things sweeter, allowing you to experiment with it for free while writing open source applications and paying for a license when going commercial. Being free (both libre and gratis) has not helped gtkmm or any of the other obscure C++ libraries. wxWidgets is more popular mainly because it provides a much more viable alternative to Qt than the others.

Reply Parent Score: 5

RE: Unconvinced
by Moochman on Fri 7th Dec 2007 14:29 in reply to "Unconvinced"
Moochman Member since:
2005-07-06

Of course, someone could point out some super-major-killer-feature of Jambi that I've left out that makes it all worthwhile in the end ...

Well, Designer is pretty freaking sweet. That one's pretty huge. It's also pretty awesome that you will (in the future) be able to make Java applications that blend in with KDE themes. So that may make it popular in the open-source world, at least.

Reply Parent Score: 2