对于桌面应用程序,人们选择Java而不是其他技术的原因是什么?图形用户界面&x27;特别是
为什么会有人选择Java来创建桌面应用程序(更具体地说是GUI)?我问的原因是,有明显的更好的选择。对于Windows,有C和.NET框架,对于MAC,有Objto-C和COCOA框架,而跨平台兼容性则有Qt和C++(也就是MNO)。p>对于桌面应用程序,人们选择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的原因是什么?除了有人“只懂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浏览器不兼容和错误
- 安全沙盒
- 为多个浏览器实现浏览器插件/扩展的问题,以及
- 安装上述插件/扩展
或者,您可以用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上运行。我本可以解决这个问题的