Java用于开发桌面应用的优劣你知道吗?新手小白看过来!

我承认即使在JavaFX出现之前Java已经在桌面领域做出了一些重大的提升,比如Swing中的提升;我们现在也有了很棒的OpenGL;DirectX也有了很大的提升;启动时间也显着提升了。是的,Java去年做了很多***有效的工作。
但是,不得不说的是,除此之外还有混乱。例如,Javasound实际上不容易使用,被遗弃的Java3D怎么样?**近JOGL也被Sun抛弃,包括很久以前的SwingLab在内的JAI(作为照片处理使用)多年没有真正升级过,看起来没有在任何地方利用,为了适应性能上的大幅度提高,需要适应多核GPU时代应用于桌面领域的Java产品
而且,重要的是,尽管可以使用Java制作桌面应用程序,但是如果想开发真正的丰富的桌面应用程序的话,就不能使用Java,也不能使用JNI、C/C台依赖的libraries等。
使用Java构建桌面的应用更加困难和麻烦。例如,在Java应用程序中创建高效***的网络浏览器也很困难。此外,没有Java写的图像处理应用程序,没有纯Javaweb浏览器,没有数字音频应用程序,没有3D建模器,没有矢量图形编辑器,没有先进的格栅编辑器。Java***到达桌面的高度只能满足那些服务器开发者。因为他们只需要在远程服务中使用计算机桌面的简单界面。
过去我们一直说,这是因为Java太慢,无法在慢平台上开发出如此复杂的应用程序。但是我们这样说是错误的。原因有两点。一、Java从来没有迟到过。即使有些部分迟到了,也没有人怀疑需要使用服务器时会迅速提高。例如JITS、GCs等。这也是Java语言***的地方。二、由于Java平台的天然特性,Java应用始终是***个利用市场上新的硬件和新的操作系统的应用。JVM配置在新系统中,几乎不需要编辑和调整,Java应用程序可以全速运行。例如,在Windows7或Solaris的64个JVM上开发了32位操作系统的应用程序。所以Java太慢,Java不能成为桌子上平凡的借口。
而且,如果你是终端用户,你甚至不需要从网站上重新下载应用程序,这意味着终端用户和开发者不仅提高了速度,还提高了应用程序的执行性能。***,JIT在runtime为本地操作优化代码做得很精彩,意味着你可以挖掘出你运行的硬件的全部能力,这是一种静态编译语言永远无法竞争的表现,只是这种表现能够运用到桌面和游戏领域就好了。
由于Sun总是服务器方面的公司,Java在桌面方面没有真正的机会。Oracle的收购不会改变这种情况。希望不要再继续下去了。为了Sun、Oracle和Java本身的利益,Oracle内部的着名人士应该注意公司,如果桌面方面的能力和效率不足,就会影响Java的普及率,也会影响服务方面的占有率。
我们一直习惯于Sun主要提供服务器方面的服务,所以想象将来更多的处理能力出现在服务器方面,而客户端只是连接服务器的简单服务。这种情况证明是***错误的。因为未来的桌面APP将服务、APP和硬件的所有运算能力结合起来,大量的数据和解码、语音、图片、视频都会被开发商处理,而且通过并行编程的方式来实现,既保证了丰富的性能,又保证了速度。对于开发者来说,未来的服务需要在客户端处理和服务器端处理:复杂的搜索、图像、视频和虚拟3D环境需要服务器端技术,远程服务需要医学分析、远程教育和远程会议等客户端技能。
只是让我们失望的是历史再次重复,因为到目前为止Java还没有什么大动作。
arminehrenreich在回答中说:说得好,我完全同意。
的确迫切需要跨平台的桌面应用技术,而且我不认为C、C、C和Qt的结合是个好选择。你说的问题没有引起很多共鸣,我认为这是一个文化问题。很多Java社区的人包括Sun内部的负责人不能理解你说的话,所以我断言Oracle也不会对Java发生很大的变化。
客户现在基本上被微软和苹果包围。在Cocoa论坛上,我们的论坛可以看出GUI的可用性、应答性、终端用户如何处理桌面应用等,很多人认为应用的未来在服务器方面。这就是文化上的差异。
但是,桌面技术需要很多工作,Swing慢慢进化,Netbeans平台、Java3D、JOGL等应用几乎成为桌面方面的选择。但是,Sun无视这种情况,模仿Flash发表了新的脚本语言,API只能使用JavaFX。
JeffMartin回答说:正确的观点,但我有点不同。Sun真正的问题是他应该吃自己的饭,用自己的力量用Java写实际的桌面应用程序,可以证明Java在桌面上的约定,可以写应用程序,提高框架和工具。我不认为另一个框架会帮助Java。
JamesSugrue回答说:我同意作者的意见,我也支持桌面开发。让我们来看看现在正在开发的Eclipse.e4中的一些项目,为桌面和浏览器提供了解决方案,所以我认为还是有希望的。但是,我认为没有必要把焦点放在桌面上。JavaFX是正确方向的前进,只是在Swing和Java3D/JOGL中看不到应用的提高。
Osvaldodederlein回答说:我认为JOGL的支持并不那么差。结果,JavaFXDesktopRuntime的依赖。事实上,我们可以写一个非JavaFX的小程序,不需要本地代码的许可就可以安排。
非本网作品均来自互联网,转载目的在于传递更多信息,并不**本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其他问题,请及时与本网联系,我们将及时删除内容。