tags:

views:

111

answers:

2

Just curious. Does anyone have experience with both. My gut feeling is that QT is better for cross platform applications but the UI won't be as slick. Also is QT faster since it compiles to native code with no Virtual Machine? I think also QT is C++ so unmanaged, so there is more chance of memory leaks etc?

If I wanted to develop a non UI or console application for cross platform use QT4?

If I wanted to develop a UI application that was cross platform use QT4?

If I wanted to develop a windows only non UI application use .Net?

If I wanted to develop a professional UI for a windows only app use .Net?

A: 

There are several GUI toolkits for .net, such as WinForms, WPF and GTK#.

  • GTK# works best on linux, and decently on windows
  • WPF is windows only atm
  • WinForms is native on Windows, but uses controls written in C# on Linux, and thus doesn't look native there.

With GTK# you get decent portability provided your Linux users don't avoid Mono for idological reasons.

CodeInChaos
+3  A: 

My gut feeling is that QT is better for cross platform applications

Absolutely. Qt is cross-platform, for real. (Sure, there's Mono that enables you to run .NET applications on Linux...)

but the UI won't be as slick

Depends how much you pay attention to details. Qt draws its widgets with native APIs (in the past it didn't, which caused its UI to look strange) meaning that most of its UI looks pretty good. There might be some widgets that don't look like the controls you might find in WinForms toolbox but that's because they are different frameworks.

is QT faster since it compiles to native code with no Virtual Machine?

Maybe, does it matter? Probably not (btw, I wouldn't be quick to say .NET is necessarily slower, I'm sure there are places it actually performs better).

I think also QT is C++ so unmanaged, so there is more chance of memory leaks etc?

In Qt's code base? Very little, if any. In yours? Probably.

I would say this is one of .NET's biggest strengths in this argument - you get to write in C#. It's a much easier language to learn, you get things like automatic memory management, a huge standard library, one of the best IDEs and a very good designer (although Qt has Creator) and many more. (ofcourse if you target Linux aswell, that's a different story).

Idan K