QT vs. Net - REAL comparisons for R.A.D. projects

Posted by Pirate for Profit on Stack Overflow See other posts from Stack Overflow or by Pirate for Profit
Published on 2010-04-19T01:42:59Z Indexed on 2010/04/19 1:53 UTC
Read the original article Hit count: 329

Filed under:
|
|
|
|

Man in all these Qt vs. .NET discussions 90% these people argue about the dumbest crap. Trying to get a real comparison chart here, because I know a little about both frameworks but I don't know everything.

I believe Qt and .NET both have strengths and weaknesses. This is to make a comparison that highlights these so people can make more informed decisions before embarking on a project, in the spirit of R.A.D.

Event Handling In Qt the event handling system is very simple. You just emit signals when something cool happens and then catch them in slots.

ie.

// run some calculations, then
emit valueChanged(30, false, 20.2);

and then catching it, any object can make a slot to recieve that message easily

void MyObj::valueChanged(int percent, bool ok, float timeRemaining).

It's easy to "block" an event or "disconnect" when needed, and works seamlessly across threads... once you get the hang of it, it just seems a lot more natural and intuitive than the way the .NET event handling is set up (you know, void valueChanged(object sender, CustomEventArgs e).

And I'm not just talking about syntax, because in the end the .NET anonymous delegates are the bomb. I'm also talking about in more than just reflection (because, yes, .NET obviously has much stronger reflection capabilities). I'm talking about in the way the system feels to a human being. Qt wins hands down for the simplest yet still flexible event handling system ever i m o.

Plugins and such I do love some of the ease of C# compared to C++, as well as .NET's assembly architecture, even though it leads to a bunch of .dll's (there's ways to combine everything into a single exe though). That is a big bonus for modular projects, which are a PITA to import stuff in C++ as far as RAD is concerned.

Database Ease of Doing Crap Also what about datasets and database manipulations. I think .net wins here but I'm not sure.

Threading/Conccurency How do you guys think of the threading? In .NET, all I've ever done is make like a list of master worker threads with locks. I like QConcurrentFramework, you don't worry about locks or anything, and with the ease of the signal slot system across threads it's nice to get notified about the progress of things. QConcurrent is the simplest threading mechanism I've ever played with.

Memory Usage Also what do you think of the overall memory usage comparison. Is the .NET garbage collector pretty on the ball and quick compared to the instantaneous nature of native memory management? Or does it just let programs leak up a storm and lag the computer then clean it up when it's about to really lag? Doesn't the just-in-time compiler make native code that is pretty good, like and that only happens the first time the program is run?

However, I am a n00b who doesn't know what I'm talking about, please school me on the subject.

© Stack Overflow or respective owner

Related posts about qt

Related posts about c++