tags:

views:

577

answers:

9

I am going to program a GUI under windows (will be about 10,000 line code with my estimates) and don't know C# or C++ (QT library) to choose for my needs. Please help me to choose.

+7  A: 

If you are developing a Windows application I'd suggest using C# and the .Net Framework as they are the 'native' solution. Using QT is just going to add complexity as it's a cross-platform library and has additional concerns therein. I'd also suspect the support for the .Net Framework is likely to be greater and more widespread.

The overarching question would be, which programming language are you most familiar with. If there is a Windows compiler for it then use that!

Lazarus
Downvoted for the subjectivity of this comment. While this is a valid point of view for .Net programmers, others may see Qt as the least complex of the two options. I for one hold the view that Qt is one of the most elegant UI solutions available.
Shaun
You can't use the builtin GUI designers of Visual Studio with the Qt library -- this is why the native WinForms solution is probably easier on Windows.
Billy ONeal
how is using Qt less complex then using C# and building the GUI out of the box?
Darknight
For the naysayers, I only 'suggest' that using C# and .Net is simpler, it's not a statement of fact, just opinion. That said, given that the volume of support available to a beginner, along with samples, etc. for .Net is undoubtedly much higher than that available for QT, it would seem to make simple sense that it's better for a beginner.
Lazarus
@Shaun, and you were free to provide that subjective opinion in your own answer. Voting my opinion down on the grounds that it's subjective is somewhat ludicrous. I tried to be objective based on the tools and the support available, your evangelism for QT seems to have missed that point.
Lazarus
I didn't evangelize Qt at all. All I've done is point out that beauty is in the eye of the beholder. None of the statements you've made yet in this post are imperative fact (referring also to the "for the naysayers" comment). I do plenty of .Net development but I also do plenty of Qt development. I wouldn't say either has an obvious advantage over the other. The best advice one can give is to try each and see for yourself what you do and don't like.
Shaun
@Shaun, I don't see how this answer is subjective. Do you realize that your comment is the most subjective of all? ("I for one hold the view that Qt is one of the most elegant UI solutions available.")
StackedCrooked
+1  A: 

What are your needs?

mlk
this should be added as a comment to the question itself.
Naveen
He can't do that yet.
ZippyV
Will keep that in mind for next time.
mlk
+1  A: 

Use .NET if your only target is Windows. It is much more productive and you have better IDE support for development of GUI. The disadvantage is that you need to have .NET framework installed on the machine your application will run on.

If you consider going cross platform, or you think you master Qt (and C++) more than .NET, then go on with Qt.

Cătălin Pitiș
+10  A: 

If you have to debate on using C# or C++ then the correct answer is probably C#. I would stay away from a low level language like C++ unless you absolutely have to as the amount of time required to develop/debug with it will be much greater. C# has a lot of GUI functionalilty that it harnesses from the .net framework. There isn't a lot you can't do with right out of the box as opposed to C++ which you'll have to hand code a lot of functionality.

Kevin
Your first sentence +1000. And i am a hardcore C/C++ lover.
acidzombie24
I am worried that C# will be not fast and size will be big than with QT.
Narek
Trust me, C# is more than fast enough. Why would you think it's slow? C++ nowadays should never be used for GUI applications unless you need them to be cross platform or something.
ryeguy
naghekyan: I think you should read this post on C++ vs. Java and speed. http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html
Kevin
naghekyan: C# isnt as bad as some people make it out to be. Its pretty optimized right now. I'm program more with C++ then C# and i am doing more with C# bc of how good its been.
acidzombie24
unless you are writing computationally intensive or cross-platform code, don't bother with c++. You will be far more productive in c#. Most performance issues are not language issues anyway. The issues are usually from poorly-designed programs not language limitations.
Steve
A: 

Use C# its has superior GUI builder and is easy to program. Also you can use mono to run on other system which is built by novell and not some open source community ;).

acidzombie24
-1 argumentative/flaim bait
gimpf
A: 

Choose the GUI toolkit based on your requirements, then choose the language.

if QT fits the bill, then C++, if WinForms looks good, C#, if MFC (and the new feature pack) is good enough, C++ ....

Also, depending on your skill (and the skill of your team) of one language or the other, your decision might be easier.

Max
A: 

What are the requirements? If the performance is not an issue then I would go with C#.

grigy
+1  A: 

I'd prefer C#.. In some cases is easier to distribute (windows 7 comes with .NET). Microsoft showed that the future is in WPF, so why wait to adopt it

Billy
A: 

I think the question should be using c++, .net winforms or wpf.

You will never use c# lonely to build it, you will use the IDE.

If you need something visual I should use wpf, otherwise I would use .net winforms. You can mix them too.

Regards.

Pablo Castilla