我是一名大学计算机科学的教师。这门课基于Cormen和Knuth,教授学生们使用C++编程算法。但有时通过GUI展示算法的工作原理或仅仅任务结果是有好处的。在我看来,能够编写完整的程序非常重要。他们将修读GUI相关的课程,但是需要三年后才会毕业。因此,我认为他们应该能够更早地编写简单的GUI应用程序。因此,我想教他们。
你认为对他们来说哪个更有用:使用QT编程GUI还是用C#编写GUI并调用非托管的C++库?
更新。
学生使用MS Visual Studio开发C++应用程序,因此C#已经安装了。但据我所知,QT也可以集成到VS中。
我有以下关于C#的优点(其中一些是答案中提出的):
- 需要创建一个额外的层次。这需要更多的工作,但它强制你显式地指定GUI和处理数据之间的契约。GUI和算法之间的边界变得非常清晰。
- 在雇主中更受欢迎。至少在我们生活的俄罗斯,它相当普遍。在C#应用程序/ASP.Net网站中编写性能关键的算法并从其中调用PInvoke是很常见的。也许在世界其他地方不是那么普遍,但在俄罗斯,由于某些原因,Windows非常受欢迎,特别是在公司和企业中,因此大多数b2b应用程序都是Windows应用程序。
- 快速开发。由于许多原因,在.Net中编码比在C++中编码要快得多。
缺点是它是一门新语言,对学生来说具有自己的特定性。而且需要处理与库的调用的混乱。