A Taste of Qt 4
Karma Sucks writes "In 'A Taste of Qt 4', Trolltech reveals that it is positioning Qt 4 directly against Java. Qt 4 promises to be smaller and faster than its predecessors and there will be a boatload of new features including support for non-GUI applications and accessibility under Linux using Sun's ATK. More controversial is the introduction of a new and elegant foreach construct. Incidentally, for those still opposed to Qt's moc preprocessor, Havoc has some interesting comments. It is possible the idea will be adapted to provide GObject introspection in the future."
"Trolltech reveals that it is positioning Qt 4 directly against Java."
And what about Mono?
Real contender for what exactly ? You rule things out in a way suggesting that one thing can do everything.
Java works very well on server side. It doesn't work very well client side. Its horses for courses.
When KDE released version 3.2, there was a noticable speed improvment for most users. Will we get to see another good speed boost when/if KDE moves to QT4? Here's hoping.
*twitch*
Ain't it neat how the trolls have their own tech company?
qt 6.5 has been out for a while now.
I'm not a developer, I'm just a KDE user. I fail to see how there's anything revolutionary in here for me, or the other users. After all, software isn't just for the developers.
While you may not realise the benefits straight away, software being easier to develop means more, higher quality apps for everybody.
If it's better for developers, then it will be better for you (or should be).
I thought we had come to the conclusion that since Sun "sold out" to Microsoft, that Java was therefore "dead" ... didn't we? And now these guys come along and ... wait ... Trolltech ...?
Nevermind, it makes sense now.
topreacher@signature.slashdot.org 1% rm -rf sig
That'll be great to be writing servlets and jsp's in C++. *cough*
This should be obvious.
If the new Qt toolkit gives developers things to drool over, they'll develop more software. If they develop more software using droolworthy tools, there's a good chance some of that software will be droolworthy in and of itself.
A good API isn't the be-all and end-all of software design. But giving developers things to feel excited over is important, especially in the open-source world.
How can you use my intestines as a gift? -Actual Hong Kong subtitle.
Dude, you can't hope to get a job if your only skill is technical trolling. There is no such thing as a company called Trolltech... oh wait.
exactly - so?
It's a C++ development toolkit - the users of this software are by definition developers.
Also, the article is posted in the "Developers" section of slashdot, it was never intended to interest you. If it bothers you so much, turn off the Developers section in your preferences.
Advanced users are users too!
In the Linux world, Qt is often thought of as just a GUI toolkit. After all, there is no look-and-feel standard in the X11 environment, and by default Qt and Gtk look much different. Therefore, most look-and-feel decisions on the X11 platform amount to selecting between the toolkits. Consider PyQt, which provides GUI support to python via Qt, but nothing more.
What people don't realize is that Qt is actually a massive foundational library, similar in nature to Java's, for C++. It is a very large API, with threading, network, XML, objects, container classes, string handling, unicode, etc. The 'moc' tool even brings extra features to C++ that normally don't exist. It's almost as if Qt/C++ is a language of its own. GUI is a very small portion of Qt. In fact, of all the Qt code I've ever written, most of it has nothing to do with the GUI. Qt makes C++ actually fun.
I'm very much looking forward to Qt 4. With the plans for advanced threading support and GUI/non-GUI split (similar to how glib and gtk are separated), I can see Qt being very useful for writing cross-platform server applications, a market mostly ruled by Java. The great thing about Qt is that it gives us natively compiled code.
a. More controversial is the introduction of a new and elegant foreach construct.
b. VB has a foreach construct.
c. Therefore, VB is elegant ?
-- You see, there would be these conclusions that you could jump to
A Qt widget set target against the Parrot virtual machine would be lovely.
.Net has well, all that Windows stuff (I'm not a big windows graphics programmer)
Just think.
Java has Swing / Eclipse and the old one whose name I can't remember but I did use it a lot but its 7:30am and the coffee hasn't hit me yet.
A Parrot/Qt set would give Perl, Python, Ruby etc a nice graphics toolkit targettable against multiple platforms. Yes I know about Tk/Tcl and WxWindows.
Uurgh. Must get coffee. And train
regards, treefrog
Sounds interesting, BUT.... The problem QT are as follows:
.NET, etc)
1) No GPL version for the Windows platform. As much as people in the Open Source community might hate MS, many (most) Open Source packages are cross-platform where Windows is a platform.
2) A non GPL version of the library costs an outrageous sum of money. Sure Trolltech wants to make money, but lower the costs a bit.
3) Why compete against Java? Somebody who uses Java is not going to switch to Qt as Java is still simpler. To me C++ != Java, and I am not saying one is better or worse than the other.
Frankly, I tend to prefer wxWindows, which has many of facilities mentioned in the parent post. And there are plenty of bindings for wxWindows (Python, Java,
"You can't make a race horse of a pig"
"No," said Samuel, "but you can make very fast pig"
Wow, a new syntactic construct. Stop the press.
Seriously, such rejoicing about new language features fills me with pity at the thought of those poor programmers stuck with whatever language constructs the "higher autorities" deems them worthy to have.
Lisp has supported extending the language for about 40 years. And people still get excited when they get a new syntactic construct for C++. That is sad.
If you want to find joy and productivity in programming, use Scheme, Common Lisp or some other programmable programming language. Free your mind.
A message from the system administrator: 'I've upped my priority. Now up yours.'
taken! (by Davidleeroth) Thanks Bingo Foo!
http://www.sgi.com/tech/stl/for_each.html would do the trick (and would help in avoiding a large body for for-loop).
You can buy a commercial license and make closed-source linux applications, while supporting the community financially.
Or you can stick with the open one...
I can't see why it would bother microsoft either way.
Already, Java is being threatened by Microsoft (for obvious reasons) and by Sun themselves (for almost-as-obvious reasons-- i.e. Sun getting into bed with Microsoft). Remember that the software field does not look like "Microsoft versus Sun versus Apple versus...." at present. Rather, it looks like "Microsoft versus everybody else.."
Until the marketplace is more open, with no gigantic 95+% monopolies in any given field, I'd like to see the non-Microsoft players cooperate in an effort to cut MS down to size. Then, and only then, should they focus on competing amongst themselves!
Honey, I shrunk the Cygwin
...that will make Things better. What is it, that everybody is trying to discredit java, by just copying fundamental features of the Language, or API or VM? .NET and QT are just the big players here. I don't know whats wrong with these folks.
So Qt 4 is "positioned directly against Java". Fantastic! Except I read just a few days ago (also here on slashdot) that Qt will keep on blockading the release of a free-of-charge and publicly available version of their Win32 library port.
Now, call me cynical, but how in the hell are you gonna compete with Java, whose foremost strength is the (alleged) platform independency if you kill yourself right away for the most commonly used platform?
As pointed out by many readers already, Mac OS X is not free or Open Source, and does not have a statistically proven larger base of FOSS developers. So offering free Qt library for OS X while categorically denying Win32 is nothing but complete BS. And this new PR crap about "positioning against Java" is simply too laughable seen in this light.
Btw, I prefer KDE over Gnome, so I'm not an "enemy" of Qt per se.
Driven by consumer electronic devices such as mobile phones and PDAs, desktop applications are moving away from standard widgets and styles towards more customized user interfaces. Qt 4 will support this modern user interface approach through its powerful style system as well as with flicker-free refreshes and transparency for all built-in and custom widgets.
I find this trend distressing. Custom user interfaces are, in general, a bad idea. Using non-standard widgets impacts negatively upon application usability.
Standardised widgets help the user quickly adapt to new applications, by maintaining consistent user interfaces.
I wonder if it's anything like the foreach macro I wrote and proposed for inclusion in the Boost library. Slides and source code available from here.
your post is redundant. GPL is GPL. If you want GPL Qt on windows, you are free to write the code yourself. As if Trolltech's GPL isn't as good as the GNU GPL. Give this a rest.
-- "Perceptions create reality. By changing your perceptions you change your reality."
For most people who were in the pre-DotCom Boom you will recall that WebObjects via Objective-C really paved the way for Web Server-Side Development.
The decision to switch it to J2EE was political and at the time, necessary, in order to compete with all the hype.
Remember however, that this "CODE" wasn't washed down the drain. WebObjects leveraged Foundation and AppKit directly. The beauty of Cocoa is that augmenting WebObjects back to Cocoa/Objective-C is extremely trival for Apple.
I would be highly surprised if Steve doesn't decide to throw out the trump with Portable Distributed Objects (PDO) for say OS X version 11 and have it seemlessly work with .NET and J2EE.
What a lot of people who also worked once at NeXT know is that lots of the technologies that were never released are slowly being reincarnated into various pieces of the pie.
As a KDE user you can look forward to a (most likely) KDE 4.0 release that'll start faster and run faster, have smaller memory requirements, look better and have better accesibillity.
And you say there's nothing to be excited about as a KDE user?
So when will KDE 4.0 be released? I have no idea (and I'm not a KDE developer so I have no influence at all - I have just followed the KDE losely for quite a while) but my wild guess would be fall 2005 :)
Yes, already in version 3, see the SQL module:
http://doc.trolltech.com/3.3/sql.html
Which bit ?
Against the J2EE platform supported by IBM, SAP, PeopleSoft, Oracle, BEA, Sun, Manugistics etc etc
Against J2SE supported by IBM, Sun, Dell, HP etc
Against J2ME supported by IBM, Nokia, Ericsson, Sony, Sun etc
How about positioning it as a useful tool for corporate developers with minimal tooling support and no easy integration with corporate applications.
OSS needs to realise what WORKS in a corporate environment and why it does, and why re-inventing, or competing with, the wheel is not a great idea.
I like OSS, I advocate OSS with my clients, but its this sort of visionless statement that makes many serious IT directors walk away as they know its a bollocks statement made by people without a grasp of their problems.
Corporate IT _is_ IT.
An Eye for an Eye will make the whole world blind - Gandhi
On Linux, Qt is in the unique position of being seen as one of the native APIs.
I thought that honor belonged solely to Motif...
Put identity in the browser.
All the morons are out this morning...
> QT isn't even free software
The GPL'ed version is. GPL'ed Qt != Win32 Qt, i.e. you need to view them as different products.
Trolltech have given us GPL'ed Qt, but they have absolutely no obligation to provide their Win32 version under the same license.
The price is a factor only if you want to develop using Trolltech's proprietary version. I suppose that if you can't afford that then you may have to consider cheaper alternatives, but this doesn't lead us to "QT's licence is BAD!" unless you see all proprietary licenses as bad (I do, but you seem to be singling out this one).
I don't see Qt as a competing technology to Java, but I love using the Free Qt, and appreciate Trolltech's generosity in providing it.
- Brian.
First, we need to clear up the confustion from the following statement:
"Qt is positioned as superior alternative to Java".
Trolltech cannot possibly mean that. What they meant to say is: "Qt is an alternative to Java when it comes to cross platform client applications using a GUI". While Qt may do some non-GUI things, too, it's totally different from Java (clue: Qt is not a programming language) and from the Java platform (it doesn't come with a VM, it doesn't have its own bytecode, etc...). What remains is that it's an alternative to Java if you want to deploy applications across Windows, Mac, and Linux. Giving Trolltech the benefit of doubt, this is what they meant.
Having done client-side programming for many years, i can see that there is something to that. I once hoped that Qt would develop into a viable alternative because AWT/Swing was so slow.
However, since then Sun has done their homework and made Swing fast (indistinguishable from native, for the most part), and they are continuing to work on performance in release 1.5. There is still a lot of room for improvement. Things like Apple's library caching - where they pre-compile the native libraries and cache the machine code on the hard disk which makes a Java apps start as fast as a native apps, more hardware acceleration for Swing etc.
Once we get performance out of the way (i have not seen Qt, but i assume it's fast), there is nothing Qt could offer that Java didn't do better.
For example, you don't have to deal with c++. Java is not perfect, but it's - yes we can say that in public - definitely more productive than c++, in the same way that c++ is more productive than asm machine code.
Add to that extensive networking libraries, array bounds checking (buffer overflow exploits not possible in java, imagine that), garbage collection, serious instead of optional OO, and the list could go on and on, no recompiling, runs on more platforms than Qt, free deploy license...
How about this one? (For the "programmable" bit, see here.)
Here's Qt's new 'foreach' construct:Here's the equivalent code in Lisp:And here it is in OCaml:
Don't expect to port to Windows without paying the Trolls.
Why on earth not? If you've only ever agreed to the GPL license on their X11 version, there is absolutely nothing they can do to stop you from porting the library, like these people are doing.
I work for a small development house, and we were certainly able to afford it. $1550 is less than two weeks' salary (and that's before counting expenses on the top of the payroll) so if Qt can save that much developer time it's worth buying. Note that the price includes good technical support.
Yes, this is an unfortunate problem. The main reason there is no GPL version for Windows is that 99% of all software developed is in-house, and the GPL would allow in-house development without needing a commercial license (this would seriously eat into Trolltech's income). The company has tried in the past to release a "non-commercial" edition, which was closed source, but free to use, provided it was not for commercial purposes. Unfortunately this was abused by organizations who used it for commercial purposes anyway.
I should mention that the Psi project receives Qt/Windows for free. Trolltech gave us several commercial licenses, including endless support and upgrades, provided that we only use it for open source work. I'm not sure how practical it is for all free cross-platform projects to establish a trusting relationship with Trolltech in order to use Qt/Windows, but it might be a solution...
The price is per developer, not per user.
Have you checked the prices on Win32 development tools? $1550 isn't cheap, but it's far from outrageous or out of reach.
If that is out of your budget, you aren't a "smaller development house" -- you haven't even learned to think like a business yet. Products like Qt save development time, which allows lower bids, which means more revenue. If you can't work the numbers, go back to the basement -- your business won't be outgrowing it for quite some time.
I do not fail; I succeed at finding out what does not work.
But how will they make shared data thread-safe implicitly!? Usually, for MPC, data is just copied. But if different threads share pointers, the access must be synchronized. Will QObjects become Monitors, like Java's Objects?
2) A non GPL version of the library costs an outrageous sum of money.
If you think only 1500-3000 ( depending on package ) per developer for a perpetual license is a large amount of money, then you're either 12 years old or have never paid a dime for software in your life.
A manager of any team of 5 or more people would laugh at that kind of money. It is chump change compared to how much a company would spend on *paper* for pete's sake.
And if you take into account the developer's time ( which any manager must ), Qt is actually cheaper since it is so powerfull it takes on average 25-50% less code to do things in Qt than it does to do in other C++ toolkits I have used in the past.
I would use Qt even if I was only targeting Windows and even if I was the only person on the team. It is *that* good. People who knock it just do not have experience using it.
"I really don't understand the parent post."
.Net/CLR, php, whatever.
The difference is that Java is a true platform while QT is at the moment foremost a widget toolkit with a bunch of latecoming useful libraries bolted on. Not to knock it - I think one of the massive holes in the C++ "platform" (if you are going to act like it is one) is that it has had no standard set of libraries. The mantra is "write your own" or "use XYZ because that's most popular". That, a platform, does not make.
Seriously I think it's about time C++ got a platform, but to call some syntactic sugar plus some libraries a platform (or at least a platform even beginning to compare to Java in platform-ness) is silly.
And by the way, C++ is "enterprise ready" in the same way straight razors are "oral hygeine ready". Sure you can do it, but expect pain, bleeding, and embarrassment. These is not only my argument - survey the enterprise landscape... the only people using something like C++ for large web applications or middleware are either those that have 1) massive legacy investment 2) massive earth crushing load and performance requirements (e.g. ebay, amazon, etc.). Lastly just because you CAN do it, doesn't mean that it is necessarily a good idea. The market shows that C++ is very expensive to write and deploy (if you are going to go by salaries, etc.) for jobs which can be done equivalently in some other language.
Almost every body else is using some other-generation language, be it Java,
It's 10 PM. Do you know if you're un-American?
2000 * 4 developers = 8,000.
8,400 / 120 = 70
4 Developers * 30 / hour = $120 / hour
Even if using QT only saved you 10% of developer time ( and from my experience it saves you more like 25%-50% ), it would pay for itself after only one and a half weeks. After one and a half weeks you are making pure profit.