你说你已经知道C++和Java,而且你以前从未做过GUI。这意味着:
- 无论你是使用Java GUI还是C++GUI,你都需要学习如何处理GUI框架。
- 如果你选择了Java,你还需要学习如何在两种语言之间进行接口。
因此,留在C++可以为您节省一件事。好吧,学习一些东西总是一个好主意,但同时学习两个新概念可能是一个坏主意。无论如何,学习可能是较小的负担,我想有很多实际工作涉及,即使你使用像SWIG这样的工具。
您可能想知道用Java编写GUI还是用C++编写GUI更容易。这取决于所选的框架。对于Java,你有AWT和Swing,它们是默认Java发行版的一部分,然后有SWT,例如,Eclipse使用。对于C++,有许多工具包,其中Qt,GTK和wxWidgets是最受欢迎的工具包,并且这三者都支持每个主要平台。大多数“C++”GUI工具包也具有Java绑定甚至Java端口,因此您也可以将它们与Java一起使用。
到目前为止,我已经使用了Swing,Qt和其他一些对您的情况没有帮助的人(Borland C++ Builder和WinForms在.NET上附带的UI)。基本上,所有这些框架的概念都是相同的,我发现它们都没有比另一个更困难或更容易。唯一的例外可能是Java,因为我从未让这些布局管理器工作,即使其他工具包具有与布局管理器等效且易于掌握的工具包。但也许那只是我。
人们还会告诉你,Java GUI总是很丑陋,不适合主机系统。好吧,大多数Java GUI确实是,但恕我直言,这不是因为Java,而是因为糟糕的编程。让Swing应用程序适应操作系统的外观和感觉需要两行代码,而大多数程序员根本没有在他们的Java GUI上投入足够的精力来复制和粘贴这两行...你可以想象他们有多关心他们的GUI设计的其余部分。
对于您目前的情况,我建议您使用C++ GUI,但是如果您知道将来的计划是什么样的,并且如果您知道您将在余生中执行Java GUI,那么现在开始并进行额外的努力可能是可以的。
如果你选择C++作为GUI,人们会告诉你各种各样的事情,把你拉向任何方向。所有三个大型可移植框架都有其优点和缺点,但我不相信它们之间有任何最好或最差的框架。我会推荐Qt,只是因为我已经用过它 - 但是如果我愿意使用GTK或wxWidgets,我可能会建议这样做。