What is better for a student programming in C++ to learn for writing GUI: C# vs QT?

Posted by flashnik on Stack Overflow See other posts from Stack Overflow or by flashnik
Published on 2010-03-17T23:20:50Z Indexed on 2012/11/22 5:01 UTC
Read the original article Hit count: 176

Filed under:
|
|

I'm a teacher(instructor) of CS in the university. The course is based on Cormen and Knuth and students program algorithms in C++. But sometimes it is good to show how an algorithm works or just a result of task through GUI. Also in my opinion it's very imporant to be able to write full programs. They will have courses concerning GUI but a three years, later, in fact, before graduatuion. I think that they should be able to write simple GUI applications earlier. So I want to teach them it.

How do you think, what is more useful for them to learn: programming GUI with QT or writing GUI in C# and calling unmanaged C++ library?

Update.

For developing C++ applications students use MS Visual studio, so C# is already installed. But QT AFAIK also can be integrated into VS.

I have following pros of C# (some were suggested there in answers):

  • The need to make an additional layer. It's more work, but it forces you explicitly specify contract between GUI and processing data. The border between GUI and algorithms becomes very clear.
  • It's more popular among employers. At least, in Russia where we live. It's rather common to write performance-critical algorithms in C++ and PInvoke them from well-looking C# application/ASP.Net website. Maybe it is not so widespread in the rest of the world but in Russia Windows is very popular, especially in companies and corporations due to some reasons, so most of b2b applications are Windows applications.
  • Rapid development. It's much quicker to code in .Net then in C++ due to many reasons.

And the con is that it's a new language with own specific for students. And the mess with invoking calls to library.

© Stack Overflow or respective owner

Related posts about c#

Related posts about c++