Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于桌面应用程序,人们选择Java而不是其他技术的原因是什么?图形用户界面&x27;特别是_Java_User Interface - Fatal编程技术网

对于桌面应用程序,人们选择Java而不是其他技术的原因是什么?图形用户界面&x27;特别是

对于桌面应用程序,人们选择Java而不是其他技术的原因是什么?图形用户界面&x27;特别是,java,user-interface,Java,User Interface,为什么会有人选择Java来创建桌面应用程序(更具体地说是GUI)?我问的原因是,有明显的更好的选择。对于Windows,有C和.NET框架,对于MAC,有Objto-C和COCOA框架,而跨平台兼容性则有Qt和C++(也就是MNO)。p> 有人放弃上述选择而选择Java的原因是什么?除了有人“只懂Java”这一事实之外,我还对真正的原因、好处以及Java何时会成为更好的解决方案感兴趣。可移植性将是一个原因。您可以用Java编写代码,并使用JRE在任何平台上运行 这意味着它将在Linux、AIX、

为什么会有人选择Java来创建桌面应用程序(更具体地说是GUI)?我问的原因是,有明显的更好的选择。对于Windows,有C和.NET框架,对于MAC,有Objto-C和COCOA框架,而跨平台兼容性则有Qt和C++(也就是MNO)。p>
有人放弃上述选择而选择Java的原因是什么?除了有人“只懂Java”这一事实之外,我还对真正的原因、好处以及Java何时会成为更好的解决方案感兴趣。

可移植性将是一个原因。您可以用Java编写代码,并使用JRE在任何平台上运行

这意味着它将在Linux、AIX、HPUX、Solaris、OSX、Windows、OS/400(或现在称之为什么)甚至z/OS下运行。你提到的其他解决方案没有一个有如此广泛的应用

尽管是单声道,但在绝大多数情况下,C#基本上用于Windows。Objective C虽然在其他地方可用,但主要用于Apple universe


话虽如此,由于我的大部分工作都是基于Windows的,我更倾向于使用C语言,因为C语言目前是一种更具市场价值的技能,它能为我做Java所能做的一切。

Java是使用GUI实现桌面应用程序的最具可移植性/平台独立性的方法

  • C#和.NET是特定于Windows的
  • 我们的智慧还不够好
  • Objective-C和Cocoa完全针对Mac
  • Qt和C++代码在理论上是可移植的,但在实践中需要对细节进行更多的关注/关注,以实现可移植性。(+,C++是非托管语言,所以你有内存管理和相关的稳定问题要处理)
对于许多应用程序,一个潜在的更可移植的解决方案是在web浏览器中实现GUI。当然,这避免了在桌面上安装应用程序的问题。但是,您必须应对:

  • 不更新其浏览器平台的人员/组织
  • web浏览器不兼容和错误
  • 安全沙盒
  • 为多个浏览器实现浏览器插件/扩展的问题,以及
  • 安装上述插件/扩展

如果您想要可移植性,应该用java编写代码。Java在每一个重要的桌面操作系统上运行

在我看来,如果你的应用程序是只使用Windows的,C#是一个更好的选择。与在Swing中从头制作相比,gui编辑器是一件轻而易举的事情

Objective-C是苹果公司的产品,与Qt/C++一起,理论上它是可移植的,但您仍然需要克服故障和潜在的内存泄漏。Java不需要修改源代码就可以在Linux或Mac上工作,即使您只在Windows上编写代码

Java最引人注目的特性是您可以使用的工具,更不用说几乎任何东西的库了。你可以自由选择工具。如果您喜欢Qt,还可以找到它的java绑定,我记得它叫Qt/Jambi


或者,您可以用C++/Mono/Objective-C编写后端代码,并用java编写前端代码。通过这种方式,至少您的gui很容易移植。

您列出的选项仅在给出特定需求列表的情况下“更好”。一般来说,主要的一点是我可以使用语言X,因为我只针对一个平台。虽然C#可能更适合windows,但如果需要跨多个平台运行代码,它不如Java好。Java是编写跨平台GUI的唯一主流方式,Mono可能是一个例外,它使您摆脱了内存管理的要求。Java也是创建可在多个平台上运行的二进制文件的唯一选项。虽然QT允许您为多个平台创建GUI,但您必须为每个平台进行自定义构建。尽管GUI是许多应用程序的重要组成部分,但它通常不是唯一的部分。在您列出的所有语言中,Java拥有最多的第三方库。这意味着您可以用一种语言编写用户界面和后端代码,以便在多个平台上运行。如果你希望将来的应用程序从桌面GUI移动到Web应用程序,那么这将更容易与一个架构良好的java解决方案一起完成,然后用C++编写的Qt应用程序。

可移植性有点被超卖。这很好,但不太可能成为你应用程序的杀手级功能


为什么要使用Java?因为Eclipse是有史以来最伟大的应用之一。由于Eclipse也是一个平台,您也可以利用它来构建自己的应用程序。

我喜欢Java,因为我可以创建一个桌面应用程序,用3行代码,我可以将它作为小程序部署到web上。因此,操作系统之间的可移植性非常好,但能够轻松地将其部署到web上也是一个优势。

“most”?我不这么认为。tcl/tk和python/wxpyton只是其中的两种,还有其他语言比java具有更好的“一次编写,随处运行”行为。Java在这方面并没有它所宣传的那么好。@Bryan,具体在哪方面更好?你是否声称这些其他语言运行在更多的平台上?他们的行为在不同平台上更加一致?我很难相信我所知道的语言(Python、Perl等)能够满足“更好”的标准,但我愿意接受教育。@paxidiablo:我相信有一些语言可以在更多的桌面平台上运行。我说的不是始终如一的行为,我说的是能够跑步。就在几周前,作为我们招聘过程的一部分,有人提交了一份对编程挑战的回复,尽管它是用Java编写的,但它只在windows和mac上运行。我本可以解决这个问题的