Jic*_*hao 7 java cross-platform desktop-application
在Windows/Linux平台上,我作为一个普通的计算机用户,几乎找不到任何用Java编写的软件.
而且我找不到在桌面应用程序领域用Java编写的软件.程序员似乎更喜欢使用跨平台的Widgets(Qt,wxWidgets等)而不是Java.
我的问题是:
谢谢.
至少有一些用Java实现的操作系统,即JNode,JOS和JX.当然,在Java发布之前,您不会看到任何以该语言实现的操作系统.此外,对操作系统内核的托管语言似乎存在长期偏差; 有一些研究项目,比如奇点,尝试这种方法的可行性,但我们还远远没有准备好"正常"使用.但是,您将始终需要一个内核"核心",它在汇编或其他低级语言中完成,这使您可以访问通常不具备的部分.但这可以保持很小.
Java API是一致的还是优秀的可能是值得商榷的,但对于许多环境而言,首选语言是C(主要是UNIX喜欢,Windows API的许多部分),Objective-C(Mac OS X)或C++等衍生产品(基于COM的Windows,KDE,Qt编程.这并不意味着您不能用另一种语言执行此操作,但文档通常假定您坚持使用首选语言.您显然需要考虑的另一个重要因素是您需要在目标系统上使用JVM.我所知道的唯一一个本地使用Java的操作系统是Mac OS X.所以你会打扰用户有额外的依赖.像微软这样的公司也非常不愿意考虑发布他们无法用Windows控制的第三方软件,所以你永远不会看到JVM随着操作系统发布.(是的,曾经有一个Java 1.1,iirc,但那些日子早已过去,不会再回来.而且那个是由微软自己提供的.)
大多数Java开发人员可能每天至少使用一个,例如Eclipse和Netbeans是用Java编写的.和其他一些软件开发工具一样,例如Maven或Ant.另一个受欢迎的程序是例如Vuze(以前的Azureus)BitTorrent客户端.但至少对我来说,目前我甚至没有多少Java桌面应用程序每周使用.
但是,对于Web应用程序来说,这是完全不同的,因为你无法真正地告诉他们从外部写入了什么.
1.
Java不利于内核开发.主要原因是控制.这不仅仅与速度有关(尽管这是速度的一部分).Java不会给程序员提供与内存相同的控制权,而不是代码的执行方式.在C/C++中,您通常可以根据代码确切地猜测将创建哪个汇编代码.在Java中不是这样.
注意:对于C以及C++ 的部分内容都是如此:如果您在C++中使用了许多更高级别的功能,那么您显然会失去相同的控制权.但是C++提供了两种选择.
2.
出于多种原因,C/C++比Java更适用于桌面.可能其中一些是历史的(它们已被使用了更长时间),可能其中一些是"外观和感觉"的问题,这基本上意味着Java程序往往看起来像Java程序,而不是像大多数程序一样用户的机器(有解决方案,但过去几乎所有的Java程序都是如此,这使得程序员远离它们).
但是,我认为最重要的是,C和C++现在用于GUI的次数要少得多.显然它们仍在使用,但很多程序员正在转向其他语言,比如C#和其他语言.
3.
如果你在谈论着名的桌面应用程序,我认为最着名的(当然是程序员)是Eclipse.它也是一个非常棒的应用程序,当然看起来很棒,这只是向您展示Java 可以用于良好的自然外观桌面应用程序.
我真的不知道其他任何人.