The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Qt jambi - just what we need?

Trolltech just came out with a java API for Qt:

It let's you use the rather decent Qt library from java. It seems to be just what I've been looking for, so I'd like to get some opinions.

We've been facing the following problem:

- we're about to start developing a new application
- we mostly use Macs, but the majority of our customers would probably use Windows. We want to have a Mac version anyway (there might be a market in academia where Macs are more common).

So these are our options:

- develop two versions: one in objective-c/cocoa, the other in C#.NET. Believe it or not, this was almost the best option so far. After being done with one version, porting it wouldn't be so difficult, since the model wouldn't change, and changing the syntax isn't that big of a task. The drawback would certainly be in testing,  bugfixing and interoperability between the two versions (custom xml parsing etc). A variation of this would be to develop the model in C++ and use that from C# and objective-c.

- RealBasic: Looks nice, but has "basic" in the name, and the IDE isn't as nice as others. Plus we'd be depending on one rather small company.

- Java with swt or swing: Java is nice to develop in, and sufficiently cross-plattform. Swing and swt however aren't nearly as good as we want, both in performance and OS integration/"native feel"

- Qt with C++: good package, used by a lot of companies. But we haven't done much C++ and the complexity/missing GC of the language means we'd have to double our estimates

- .NET and Mono: just not there yet
- cocoa and openStep: see .Net and Mono

- webbased: sorry, can't do that

So Qt with Java looks nice. Trolltech seems to be a stable company, with lots of high-value customers (Adobe, Google). The performance of Qt is near-native, and it uses the native widgets. Documentation and developer community are extensive. Java is a decent language with lots of ressources, good availability of developers and performance has greatly improved in the last few years. The jambi API however is in beta right now and doesn't have a track record.

Any opinions?
Matthias Winkelmann Send private email
Friday, August 04, 2006
You can easily add garbage collection to C++.  Look for the Boehm gc library.  Additionally, you rarely need to worry about this sort of thing any more in C++, not with Qt's parent/child memory management and not with C++'s smart pointers.

That said, C++ is a fairly complex language.  You can't become an expert in the language in just six months, say.
Chris in Edmonton Send private email
Friday, August 04, 2006
Would you consider open source WxWidgets?

"wxWidgets lets developers create applications for Win32, Mac OS X, GTK+, X11, Motif, WinCE, and more  using one codebase. It can be used from languages such as C++, Python, Perl, and C#/.NET. Unlike other cross-platform toolkits, wxWidgets applications look and feel native. This is because wxWidgets uses the platform's own native controls rather than emulating them. It's also extensive, free, open-source, and mature. Why not give it a try, like many others have?"

clscott Send private email
Friday, August 04, 2006
The Excelsior JET people have come out and said they don't see a reason to market/port a Mac version. As long as you are comfortable packaging it as a java project and trust your users will have the right version of java on their Mac OS X I guess that's okay. It's still one click no? On the windows side you are ducky because Excelsior JET and friends will just package it into an executable. So yeah the final question is whether Qt is native enough for your purpose. I guess you really have to do a prototype and have a windows die-hard / mac die-hard bang on it.

Do some dummy screens calling stubs and so what happens. There's a IDE tool that comes with Qt to help you RAD the screens up quick.
Li-fan Chen Send private email
Saturday, August 05, 2006
Why won’t you swing?

I have found “Swing” in its current state to be a real good option for developing applications.

I have been doing a lot of work for a big company last 2 years. They use an Intranet site to do a lot of there business: Human Resources, Calendars, Sales data and reports, Service desk, Travel requests,…

The intranet site works ok and they are happy to use it.

That is, until I started to create new parts in swing and let it run using “WebStart”, now they want more real applications.

The development time for me, using Swing is reduced to at least half of the time of the web version and the users like it a lot more because of the extra possibilities.

Ok, this thread is not a web/client software discussion.

I have found “Swing” in its current state to be a real good option for developing applications.

* It can do all that I want to do.
* It is NOT slow (It is however easy to make any application slow).
* With the Look and feels currently available, it looks and feels like a window application.
* It can run in the browser if you want.
* The one user in the company with a mac is also happy.
* There are enough installers and exe launchers so that nobody will even know it is a Java application (at least on windows, I don’t know the status of installers and launchers on Mac)

I am now using swing for my next desktop application (mindmapping), and when I see the stability and speed compared to other products, written in C++ and .NET and how it looks, I don’t think that I need to worry about my choice.
Peter Muys Send private email
Monday, August 07, 2006
QT Jambi might work but I suggest caution.

Lots of companies crank out Java wrappers for their library products only to discover that it is very long and expensive to create a complete product with full and continuing support and with a good customer base.

In QT's case, it's easy to provide Java wrappers around a lot of the APIs.  But, if they stick with it, that means that they've got to build a team that does both Java and C++ (QT's native language).  That team has to work with Sun to iron out the quirks that pop up.  They've got to fill in the holes and wrap everything, not just the easy stuff.  TrollTech also has to evangelize to build up a base of paying customers who want to write Java applications using QT.  They've got to provide a full set of Java documentation (not just say, "read the C++ docs and guess!").

It's not insurmountable.  It's just a big commitment, almost as big as starting a new company, and it doesn't pay off quickly.  And, of course, they end up doing a lot of work that seems to benefit Sun as much as it benefits them.
Daniel Howard Send private email
Monday, August 07, 2006
I think Daniel pretty much laid out most of the reservations customers wanting to commit to the Qt java bridge will have. Great stuff.
Li-fan Chen Send private email
Wednesday, August 16, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz