Linked by David Adams on Fri 6th Aug 2010 16:36 UTC, submitted by poundsmack
Qt Been wondering about Nokia's strategy for conquering the rapidly expanding app space? Great! So were we, which is why we joined up with a recent dev event carried out by the Finnish company for an update on how and where things are going. It's a familiar narrative by this point: Qt is all set to become the way that Nokia-friendly apps are made -- whether it be for Symbian smartphones or MeeGo-powered mobile computers, coffee machines or infotainment consoles
Order by: Score:
...
by Hiev on Fri 6th Aug 2010 17:18 UTC
Hiev
Member since:
2005-09-27

Well, who wouldn't, after all they played 150 millions for it.

Reply Score: 5

RE: ...
by vivainio on Fri 6th Aug 2010 19:46 UTC in reply to "..."
vivainio Member since:
2008-12-26

Well, who wouldn't, after all they played 150 millions for it.


Whatever Nokia paid for TT, it was cheap; probably the best investment Nokia ever made.

The acquisition price is peanuts compared to what Nokia is continuously investing in Qt, and what Qt is actually worth to Nokia. It's the basis of everything Nokia is doing these days, though it takes time for the effects to trickle to end users.

Reply Score: 6

Qt great, C++ not so much
by Zifre on Fri 6th Aug 2010 19:02 UTC
Zifre
Member since:
2009-10-04

Qt itself is awesome, but I hate using it purely because I hate C++. There is no reason that a systems language has to be so messed up as C++ is. Anyone else feel like its time for a new language that actually gets things right while retaining all the power and speed of C++? (It's certainly possible.)

On a side note, the word "infotainment" needs to die. And wait a second, it actually passes Chrome's spell check. Something is very wrong here. ;)

Reply Score: 2

RE: Qt great, C++ not so much
by bnolsen on Fri 6th Aug 2010 19:11 UTC in reply to "Qt great, C++ not so much"
bnolsen Member since:
2006-01-06

C++ suffers from what made it so successful...its ability used as imperative, single rooted OO hierarchical or generic programming. The flexibility has allowed it to remain relevant through all these years but has made it difficult to work with properly (the difficulty is more about creating your own dialect based on what task you to want solve).

Unfortunately one of QT's problems is that it absolutely does select its own dialect for you and it carries a lot of baggage along with it. But there is no question here: of the frameworks out there QT is most cross platform and most complete.

It's sad for nokia that they didn't make this move before the first iphones came out. At this point they are trying to play catchup just because of timing.

Reply Score: 5

RE[2]: Qt great, C++ not so much
by vivainio on Fri 6th Aug 2010 19:55 UTC in reply to "RE: Qt great, C++ not so much"
vivainio Member since:
2008-12-26


Unfortunately one of QT's problems is that it absolutely does select its own dialect for you


That's considered a perk.

Of course Qt doesn't magically remove the rest of C++, but it provides an optimized, well-understood path that rewards those willing to stay on it.

Reply Score: 5

RE[3]: Qt great, C++ not so much
by bnolsen on Sat 7th Aug 2010 17:16 UTC in reply to "RE[2]: Qt great, C++ not so much"
bnolsen Member since:
2006-01-06

After qt went lgpl I was sort of hoping it would move away from being a jdk copy over to something lighter weight better integratred with libstdc++. In effect ripping out all the reimplemented functionality (custom collections, etc) and becoming a more modern toolkit.

As I've mentioned before where I work used to hold the first 2 licenses of QT ever sold. Our newest development project has a very strong separation between algorithm and interface. At that time we just dumped Qt, partly because the algorithms all use libstdc++ and partly because qt4 really killed network display performance, especially for CAD type operations.

There's the choice of using UTF16 as QString internal (UTF8 is more obvious), the moc compiler....a lot of stuff legacy from the 90's.

Edited 2010-08-07 17:21 UTC

Reply Score: 2

vivainio Member since:
2008-12-26

After qt went lgpl I was sort of hoping it would move away from being a jdk copy over to something lighter weight better integratred with libstdc++.


Many Qt developers strongly prefer the classes offered by Qt to those in stdlib. I (like almost everybody else) learned stdlib much before Qt, and I really don't miss using the stdlib stuff.

In effect ripping out all the reimplemented functionality (custom collections, etc) and becoming a more modern toolkit.


"Modern" is a loaded word. What you see as modern, many will see as clunky committee-driven design.

At that time we just dumped Qt, partly because the algorithms all use libstdc++ and partly because qt4 really killed network display performance, especially for CAD type operations.


What are you using for drawing now? Cairo?

Reply Score: 4

RE: Qt great, C++ not so much
by vivainio on Fri 6th Aug 2010 19:52 UTC in reply to "Qt great, C++ not so much"
vivainio Member since:
2008-12-26

Qt itself is awesome, but I hate using it purely because I hate C++. There is no reason that a systems language has to be so messed up as C++ is.


Do you hate the kind of C++ you use with Qt? Because it's pretty much the same as using Java.

People who think they hate C++ usually don't hate C++ the language, they hate the libraries they are forced to use. C++ can be as productive and "fluid" as any other language, when you have a good library. I get the same kick from writing C++ code with Qt as I get from churning out Python code (and that's saying a lot).


Anyone else feel like its time for a new language that actually gets things right while retaining all the power and speed of C++? (It's certainly possible.)


"Go" might evolve into one.

Reply Score: 4

RE[2]: Qt great, C++ not so much
by flanque on Sat 7th Aug 2010 04:32 UTC in reply to "RE: Qt great, C++ not so much"
flanque Member since:
2005-12-15

I get the same kick from writing C++ code with Qt as I get from churning out Python code (and that's saying a lot).

Ever heard of something called Perl? ;-)

Reply Score: 1

gnufreex Member since:
2010-05-06

Perl (5) is a mess to maintain, when project gets big. Perl 6 aims to fix that but it's incompatible...

Reply Score: 1

RE[4]: Qt great, C++ not so much
by flanque on Sat 7th Aug 2010 04:55 UTC in reply to "RE[3]: Qt great, C++ not so much"
flanque Member since:
2005-12-15

It is hard to argue with that, but I'd imagine good practices and a solid IDE could go a long way to help that.

Reply Score: 2

vivainio Member since:
2008-12-26

Ever heard of something called Perl? ;-)


Unfortunately yes. It was the first scripting language I learned.

If HP Lovecraft designed a programming language, he would base it on Perl.

Reply Score: 3

RE[4]: Qt great, C++ not so much
by righard on Sun 8th Aug 2010 16:07 UTC in reply to "RE[3]: Qt great, C++ not so much"
righard Member since:
2007-12-26

If HP Lovecraft designed a programming language, he would base it on Perl.

My favourite author and least favourite language compaired with each other...interesting.

Reply Score: 2

RE[2]: Qt great, C++ not so much
by Zifre on Sat 7th Aug 2010 13:24 UTC in reply to "RE: Qt great, C++ not so much"
Zifre Member since:
2009-10-04

Do you hate the kind of C++ you use with Qt? Because it's pretty much the same as using Java.

C++ with Qt is certainly better than using C++ with any other library I know of, however it's not quite like Java. Obviously, there is some manual memory management involved (although that makes sense, given C++'s purpose). The biggest problem is just the inconsistent, complicated syntax. Also, the main feature I find myself wanting in C++ is something like algebraic data types. Boost.Variant gives some really bad error messages. I have written my own variant class using C++0x's variadic templates, which makes the error messages nice, and the compile times much faster, but it's not feature complete yet. I'll admit that I do love all the power that C++ gives you (there is no way I could write a variant type in any other language I know of, obviously not counting languages with it built in), but I don't see why a "powerful" language has to make so many mistakes.

"Go" might evolve into one.

I really hope not. Go is the only "modern" language I know of that has a syntax even worse than C++ (not counting esoteric languages, of course). Also, it's missing a lot of features such as generics/templates. D2 is the best option I know of, but it's not yet ready. Also, I am working on my own programming language in my spare time, mainly just for fun, that has all of the features I want. I doubt I will ever finish it though...

Reply Score: 2

vivainio Member since:
2008-12-26

Obviously, there is some manual memory management involved (although that makes sense, given C++'s purpose).


There is actually very little manual memory management going on, since the QObject hierarchy and implicit sharing do the bulk of the work. If you do lots of memory management, you are doing something wrong.

Also, the main feature I find myself wanting in C++ is something like algebraic data types.


Do you really need that in normal programs?

Reply Score: 3

danieldk Member since:
2005-11-18

Maybe not in the typical GUI-driven business application. But if you are writing more low-level code (and I do use Qt for low-level code, since it provides platform-independent unicode strings and threading), it's very handy (and safe!) if you can unwrap data via pattern matching.

C++ is a hell of an ugly language (D2 shows that pretty much the same functionality can be provided far more elegantly), but it is also one of the few languages that provides stellar performance, while having far more abstraction than C. I use C++ as a necessity, but will drop it very soon once a widely-accepted alternative comes along.

I know that C++0x solves some of the current problems of C++, but language support for currying, lambdas, and type inference does make life far easier. I mean, explicitly writing function objects in 2010...

Reply Score: 2

vivainio Member since:
2008-12-26


I know that C++0x solves some of the current problems of C++, but language support for currying, lambdas, and type inference does make life far easier. I mean, explicitly writing function objects in 2010...


What do you mean here? Language support for lambdas and type inference are exactly what C++0x is bringing to table (and currying is trivial when you have lambdas). Granted that garbage collection would make closures safer and more natural...

C++ is not the "optimal" solution by any means. I'm a recovered C++ hater myself (mostly because I used to be a Symbian programmer). But, a language to replace it needs to reach a pretty damn broad adoption and acceptance before it even gets close.

My main gripes are addressed by C++0x.

Reply Score: 3

danieldk Member since:
2005-11-18

What do you mean here? Language support for lambdas and type inference are exactly what C++0x is bringing to table (and currying is trivial when you have lambdas). Granted that garbage collection would make closures safer and more natural...


Sorry, I have not been so explicit here. I know that C++0x provides lambdas and some type inference. I played with some of the new features in fresh g++ versions. They do clean up a lot of code, but it will still take some years until everyone supports them (e.g. OS X via XCode, rather than MacPorts).

C++ is not the "optimal" solution by any means. I'm a recovered C++ hater myself (mostly because I used to be a Symbian programmer). But, a language to replace it needs to reach a pretty damn broad adoption and acceptance before it even gets close.


Indeed. D2 as a language provides an excellent replacement. But it will take some time until the compilers and libraries catch up.

But I sometimes wonder if taking a full plunge into functional languages is not better. I have written some small programs in Haskell, and they are often more elegant than in C++. Of course, Haskell has its own set of problems, it's often hard predict performance in a lazy language, and stuff like performant hash tables are not trivial (yes, I do know Data.Judy).

That said, I am happily using Qt in various projects, including:

http://github.com/danieldk/dact
http://github.com/danieldk/alpinocorpus
http://github.com/langkit/citar

Edited 2010-08-07 16:51 UTC

Reply Score: 2

RE: Qt great, C++ not so much
by Richard Dale on Fri 6th Aug 2010 23:09 UTC in reply to "Qt great, C++ not so much"
Richard Dale Member since:
2005-07-22

Qt itself is awesome, but I hate using it purely because I hate C++. There is no reason that a systems language has to be so messed up as C++ is. Anyone else feel like its time for a new language that actually gets things right while retaining all the power and speed of C++? (It's certainly possible.)

On a side note, the word "infotainment" needs to die. And wait a second, it actually passes Chrome's spell check. Something is very wrong here. ;)


I don't like C++ libraries much either when they are written in the template-tastic style of boost. But I find the Qt dialect of C++ to be quite nice to someone who doesn't like C++ all that much. It makes the language perfectly acceptable to me. I personally still prefer to develop Qt apps in QtRuby, and there are plenty of other good language bindings for Qt like PyQt, PerlQt, PySide, Qyoto(C#) and so on.

Reply Score: 5

RE[2]: Qt great, C++ not so much
by danieldk on Sat 7th Aug 2010 15:42 UTC in reply to "RE: Qt great, C++ not so much"
danieldk Member since:
2005-11-18

QtRuby is nice, however, OS X is badly supported. Try to compile a recent version ;) .

Reply Score: 2

Richard Dale Member since:
2005-07-22

QtRuby is nice, however, OS X is badly supported. Try to compile a recent version ;) .


Yes, sorry, sorry. We need to fix cmake to work better with frameworks I think on Mac OS X (was that your problem?). I have no excuse to not help fix it - I am writing this on an iMac.

Reply Score: 2

hibridmatthias Member since:
2007-04-11

I agree with Richard Dale!

I use QtRuby as well for all my stand-alone apps; as a result, along with QTDesigner, I don't need to know hardly anything about C++! And, my friends all use my apps no matter what OS they are running! SWETE!!!

Reply Score: 2

RE: Qt great, C++ not so much
by Soulbender on Sat 7th Aug 2010 02:00 UTC in reply to "Qt great, C++ not so much"
Soulbender Member since:
2005-08-18

I hate using it purely because I hate C++


So do I and that's why I use PyQT.

Reply Score: 5

RE: Qt great, C++ not so much
by nt_jerkface on Sat 7th Aug 2010 04:55 UTC in reply to "Qt great, C++ not so much"
nt_jerkface Member since:
2009-08-26

Qt itself is awesome, but I hate using it purely because I hate C++. There is no reason that a systems language has to be so messed up as C++ is.


To appreciate C++ all you have to do is see how much additional work it actually takes to develop a cross-platform Java application. Perhaps Java has improved but a lot of us were burned by the promise of 'write once run anywhere' that really was 'write once debug everywhere' so you can get a non-native looking application.

C++ can be needlessly finicky and lacks memory management. It can also feel like it has one foot firmly planted in the 70's. I prefer C# but would take C++ over python.

As for Qt it is the best cross-platform toolkit available, such a shame the open source world is still building around GTK.

Reply Score: 3

RE[2]: Qt great, C++ not so much
by siride on Sat 7th Aug 2010 05:08 UTC in reply to "RE: Qt great, C++ not so much"
siride Member since:
2006-01-02

Qt in C# would be awesome. Aside from a few minor annoyances, C# is what Java should have been and what C++ should have been heading towards and not away from. Just check out the C++ FQA for just some of the many reasons why C++ is broken by design (http://yosefk.com/c++fqa/).

Reply Score: 2

gnufreex Member since:
2010-05-06

Qt in C# would be awesome.

Tying cross-platform toolkit to Windows-only language would be an EPIC facepalm.

Reply Score: 1

RE[4]: Qt great, C++ not so much
by m_abs on Sat 7th Aug 2010 12:46 UTC in reply to "RE[3]: Qt great, C++ not so much"
m_abs Member since:
2005-07-06

"Qt in C# would be awesome.

Tying cross-platform toolkit to Windows-only language would be an EPIC facepalm.
"
What makes you think C# is windows only? Ever heard of mono?

Reply Score: 4

RE[4]: Qt great, C++ not so much
by siride on Sat 7th Aug 2010 14:08 UTC in reply to "RE[3]: Qt great, C++ not so much"
siride Member since:
2006-01-02

The language isn't Windows-only...

Reply Score: 2

gnufreex Member since:
2010-05-06

C# is .NET only. .NET is Windows-only. Mono is crappy implementation of .NET which is backed by Microsoft and their subsidiary, Novell, only so that people can point at it and try to make an argument that .NET can run outside of Windows, all in hope to get C# more used.

If C# get ubiquitous, they will just shutdown Mono by claiming patent infringement, telling people to buy Windows it they need .NET. So Mono shouldn't count if you're examining possibility to use C#.

Microsoft is corporation with drug dealer mentality, take one sniff and you are their for life.

Reply Score: 0

nt_jerkface Member since:
2009-08-26
vivainio Member since:
2008-12-26



In practice, C# is a "Microsoft language", as they will always have the best implementation of the whole .Net stack. The others (just Mono in practice) are shoddy & slow imitations at best.

The psychology at play is "better to reign in hell than serve in heaven".

Reply Score: 2

nt_jerkface Member since:
2009-08-26

In practice, C# is a "Microsoft language", as they will always have the best implementation of the whole .Net stack.

C# as a language is completely separate from the .net stack. You can read through the spec yourself.


The others (just Mono in practice) are shoddy & slow imitations at best.

Mono is a step behind but that is what everyone expected. For quick in-house Win/OSX apps it is pretty good.


The psychology at play is "better to reign in hell than serve in heaven".

No I think the psychology at play is paranoia.

Reply Score: 3

vivainio Member since:
2008-12-26


C# as a language is completely separate from the .net stack. You can read through the spec yourself.


Reading through the spec doesn't help the fact that there is no C# implementation that is separate from .net stack.

Reply Score: 3

Fettarme H-Milch Member since:
2010-02-16

"In practice, C# is a "Microsoft language", as they will always have the best implementation of the whole .Net stack.

C# as a language is completely separate from the .net stack. You can read through the spec yourself.
"

The C# specs are written and published solely by Microsoft. So its a pain fact that C# is a MS language, especially considering that the standardization was just a marketing stunt. Neither C# 3.0, nor the new C# 4.0 are standardized by any committee.

Reply Score: 3

RE[7]: Qt great, C++ not so much
by Zifre on Mon 9th Aug 2010 00:22 UTC in reply to "RE[6]: Qt great, C++ not so much"
Zifre Member since:
2009-10-04

Mono is a step behind but that is what everyone expected. For quick in-house Win/OSX apps it is pretty good.

Yes, but it's not the greatest solution for FOSS GUI development...

No I think the psychology at play is paranoia.

That may be true, but you still can't ignore it. Whether Microsoft ever does anything "evil" or not, if you write an application for Mono, a lot of people are not going to use it. It's simply not very well accepted by the FOSS community. Personally, I doubt Microsoft will ever do any harm to Mono, but I wouldn't bet on it. So therefore, I don't write code for C#/Mono.

Reply Score: 4

gnufreex Member since:
2010-05-06


C# as a language is completely separate from the .net stack. You can read through the spec yourself.

Show me working C# implementation that doesn't compile to MSIL. Either JVM implementation, or something like that. If you can't do that, then stop lying that C# is not Microsoft-only language.

Mono is a step behind but that is what everyone expected. For quick in-house Win/OSX apps it is pretty good.

You twoface jerkface. You saying here that Mono is "pretty good" and on your blog you write that is crap and has memory leaks. So which is it?

You dress up facts for the occasion, to always suit your Windows zealotry.

No I think the psychology at play is paranoia.

Quoting Andy Grove: "Only paranoid survive".

Reply Score: 2

Fettarme H-Milch Member since:
2010-02-16

C# is an ECMA standard

So is OOXML.

Reply Score: 4

nt_jerkface Member since:
2009-08-26

So is the UMD disc inside the psp.

Reply Score: 2

boudewijn Member since:
2006-03-05

Just use Qyoto: C# bindings for Qt :-). See http://techbase.kde.org/Development/Languages/Qyoto.

Reply Score: 5

danieldk Member since:
2005-11-18

Just check out the C++ FQA for just some of the many reasons why C++ is broken by design (http://yosefk.com/c++fqa/).


C++ has many weak points, but the C++ FQA borders on being trollish, and is often half-true. I'll take a random question:

http://yosefk.com/c++fqa/dtor.html#fqa-11.1

His criticism is that RAII fails if there is no clear ownership of resources. He fails to mention that TR1 has shared_pointers, which is a pointer-wrapping class that does reference counting. As it shows, RAII can handle cases where the is no single owning object.

Another mosty question:

http://yosefk.com/c++fqa/operator.html#fqa-13.2

So, he does not like DSLs defined within a language. Big deal, I dislike having to invoke external preprocessors when something can easily be done within the language. Doing so, also provides many opportunities for optimizations (see template-based matrix libraries).

Reply Score: 3

RE[2]: Qt great, C++ not so much
by gnufreex on Sat 7th Aug 2010 05:50 UTC in reply to "RE: Qt great, C++ not so much"
gnufreex Member since:
2010-05-06

You obviously didn't use Java for a decade. Quit talking about things you don't know about. Java works as promised, try again.

Reply Score: 2

Then check D
by jgfenix on Sat 7th Aug 2010 16:09 UTC in reply to "Qt great, C++ not so much"
jgfenix Member since:
2006-05-25

It was designed for that. The version 2 of the spec is very interesting.

Reply Score: 1

RE: Then check D
by Zifre on Mon 9th Aug 2010 00:16 UTC in reply to "Then check D"
Zifre Member since:
2009-10-04

It was designed for that. The version 2 of the spec is very interesting.

D2 is great, but it's still not ready after several years. The compiler crashes even on some basic template tests. Also, DMD is not very portable and its backend is not quite as good as LDC, but LDC doesn't support D2 very well yet. Both projects don't look terribly active, so I'm not sure if we'll ever see a complete D2 compiler.

Reply Score: 2

qt
by ari-free on Mon 9th Aug 2010 06:12 UTC
ari-free
Member since:
2007-01-22

"Qt is all set to become the way that Nokia-friendly apps are made "

but what about user friendly apps? I don't think most people will be too excited about a whole bunch of desktop linux ports to their phone.

Reply Score: 2

Isn't there a performance issue?
by ThomasFuhringer on Mon 9th Aug 2010 08:21 UTC
ThomasFuhringer
Member since:
2007-01-25

Maybe it is only me, but every time I use a Qt app or see one in action it seems terribly slow to me.
Judging by what I saw so far, Qt is bogging Nokia down performance wise.

Reply Score: 0