According to a recent announcement, Nokia/Qt Software has decided to discontinue the development of Qt Jambi after the March 2009 release of version 4.5. Jambi is a Java version of the popular Qt toolkit. The library will be made available under the LGPL license, and Qt Software will host and facilitate a community driven continuation of Jambi.
while i am sad they are not officialy suporting it, I am really happy that they will facilitate the comunity drriven effort to continue it. And here i was worried about Nokia’s purchase of troll tech, glad they didn’t just let the Java effort die.
While I personally never cared about it, after all SWT and Swing are better options on the Java community, it is nice that they give Jambi to community.
Maybe some people do find a use for it.
Java is absolutely crying out for a decent underlying toolkit, and SWT and Swing aren’t it by any stretch.
Qt Jambi is very nice, but there did not seem to be much uptake. It’s nice that it can be continued as a community project under the LGPL. Some of the other bindings are also community projects, so that should be fine.
I think there was just too much overlap. C++ benefits massively from the complete class library in Qt. Java has their own, and it would be silly to drop it all for Qt. The only use of Qt in Java is to have nicer native GUIs, and that’s just not as much of a selling point.
As for the language issue, Java doesn’t really give you much over C++/Qt. You lose speed, add overhead, and don’t really save anything significant on development time. They’ve done such a good job getting C++ easier and more productive that it reduces the appeal of higher level languages. I’m currently using PyQt quite a bit, and although it makes some stuff easier, my programs aren’t really getting significantly easier or faster to develop. Some things are better in python, but you don’t gain a huge amount.
I fully agree. The primary major advantage of Java (platform-independence) evaporates when you combine it with a native toolkit. Java is stuck in a hard place when it comes to desktop applications. I have seen very few people who actually like Swing. And there is not much reason to use Java plus a native toolkit over C++ with the comfort of Qt (or some other language/toolkit combination). Sun seems to have lost two opportunities: Microsoft closed the window on their desktop when the released .NET. Another window of opportunity could have been the open source release in the form of OpenJDK, but it did not make a major impact there either (with GNOME-Java in a constant state of flux and Jambi still in its infancy). The fact that Qt will be LGPL doesn’t help.
Of course, it’s still big as an application server and on some phones. And it will probably stay a while.
One real danger is that C# will replace Java as the education language if it can not keep up. As if it weren’t bad enough to have C/C++/Pascal/LISP/whatever replaced .
Edited 2009-02-20 22:17 UTC
Well, let me disappoint you.
On the IT world, Java is used a lot, even for desktop applications.
I do contracting for several telecommunications companies, and in many cases, C++ left the building and is only being used in some very specific cases.
And nowadays Java is quite fast, plus it does bring you lots of improvements over C++, if I consider the tools that don’t exist for C++ because of its complex syntax.
There are lots of areas where C++ still makes sense, like gamming, HPC or OS development, so I am not bashing it.
Regarding Jambi it is a nice project, but again, meaningless for what Java already offers.
For the typical mass-market desktop app, you’re likely right. It is not the fastest and leanest, it looks the ugliest and integrates the poorest! But there’s a lot more to Java than that, which is missing from the C++ ecosystem. Bare Java+SWING is a platform comparable in breadth to c++/Qt, but there are very, very many ultra-high level libraries and extensions which make Java the chosen language for complex software engineering, possibly far ahead of C#.
There’s libraries and subsystems for 3D, graphs, database, object persistence, remote invocation, collaboration, documentation, modelling, web server, scientific programming, scripting languages… A lot of the available stuff is so special that it is very difficult just to understand what it is for! Just take a tour of the projects in the Apache foundation: it is dizzying!
And now comes JavaFX (which might be DOA) and Android, which looks like a revolution in the making.
In all, learning Java is an e-x-t-r-e-m-e-l-y sound investment, even if you don’t like the language, which, by the way, is a lot faster an leaner than it used to be, and should get better.
Yeah, the UI layer code is pretty much the same in PyQt and C++ Qt. Where python really helps you is doing the (nontrivial) backend stuff.
We are living in interesting times… it may be that LGPL:ing Qt just saved C++ on desktop. Certainly the “managed” low level languages (Java & C#) lost much of their appeal, with 1) clunkiness and 2) platform lock-in working against them.