我承认即便在JavaFX发生以前Java早已在桌面上行业作出了一些重特大的提高,例如Swing中的提高;大家如今也拥有非常好的OpenGL;DirectX也拥有非常大的提高;开机时间也显着提高了。没有错,Java在上年干了许多明显而合理的工作中。
殊不知不得不承认的是,此外别的的仍是一塌糊涂。例如Java sound事实上并不太好用,被抛弃的Java3D又怎样呢?近期乃至JOGL也被Sun丢弃,包含好长时间以前的SwingLab;JAI(作为照片处理)很多年未真真正正升級过,看上去都没有在哪儿获得运用,它急需解决特性上的极大提高以融入到来的多核GPU时期全部这种运用于桌面上行业的Java商品并不是被抛弃便是变成可有可无。
并且很重要一点是,虽然大家可以用Java建立出桌面应用,但只需大家想开发设计真真正正的富桌面应用大家就没法真真正正应用Java而应用JNI、C/C 和服务平台依靠的libraries等。
应用Java搭建桌面应用大量的是艰难和不便,例如就算要想在Java运用内建立一个高效率的优质的web电脑浏览器全是一件难题。并且没有用Java撰写的照片处理运用,没有一个单纯的Java web电脑浏览器,沒有视频信号运用,沒有3D模型器,沒有矢量图格式在线编辑器,沒有优秀的光栅尺在线编辑器。Java今日在桌面上端所抵达的高宽比只有达到这些网络服务器开发人员,由于她们只*须在远程服务时应用电脑屏幕上的简易页面。
以往大家一直说这是由于Java很慢,没法在一个慢的服务平台上开发设计出这般繁杂的运用。但大家那样说成错的。缘故有二点:一,Java几乎就沒有慢过,就算有一些一部分以前慢过,但没人猜疑当它*须被采用服务端时它会快速地获得提高,例如JITs,GCs等。这一点也恰好是Java语言非凡的地区。二,因为Java服务平台的纯天然特点,Java运用一直**个运用销售市场上架硬件配置和新电脑操作系统的运用。一旦JVM被配备到一个新系统中,基本上不用一切编写和调节,Java运用就可以在上面飞速运作。例如你一直在32位的电脑操作系统上开发设计了一个运用,它就可以飞速运作在Windows 7 或是Solaris的64位JVM上。因此说白了的Java很慢压根不可以变成Java在桌面上端无所作为的托词。
并且,如果你是一个终端产品用户,你乃至不用从网址上再次下载软件,这代表着不但终端产品用户和开发人员获得了速率提高,乃至运用的实行特性的前面也获得了速率提高。今日,JIT在runtime为当地实际操作提升编码早已做得非常好了,这代表着你能发掘出你运作的硬件配置的所有的工作能力,这是一个静态数据编程语言始终也没法市场竞争过的特性,仅仅这一特性假如能应用到桌面上端游戏行业就好了
大家一直说:因为Sun一直一个服务端企业的缘故,Java在桌面上端一直沒有真真正正的机遇。而Oracle的回收让这类状况看上去不容易有哪些更改。期待这千万别坚持下去,为了更好地Sun、Oracle和Java本身的权益,Oracle內部的知名人物应当提示企业来让她们了解:假如欠缺了在桌面上端工作能力和高效率,终将危害Java的覆盖率乃至它在服务端的市场占有率。
大家一直以来习惯性着Sun关键给予服务端服务项目,因此想像着将来大量的解决工作能力或是发生在服务端,而手机客户端*是连接网络的简易服务项目。这类状况已被证实是肯定不正确的。由于将来的桌面应用将服务项目、运用与硬件配置全部的计算工作能力紧密结合,很多的数据信息和编解码、响声、图象、视頻被开发人员解决,并且用并行处理程序编写的方法来完成,既*了丰富多彩的特性又确保了速率。对开发人员而言,将来的服务项目既*须她们在手机客户端解决也*须在服务端解决:实行繁杂的检索、图象、视頻及其虚似3D自然环境*须服务端的技术性,而远程服务如医药学剖析、现代远程教育和远程视频会议等则*须手机客户端工作能力。
仅仅令大家觉得心寒的是历史时间又一次地反复了,由于迄今Java中都还没什么大的姿势。
armin Ehrenreich 在回应中讲到:说的好,我彻底认可。
的确急需解决混合开发的桌面应用技术性,并且我不会觉得C 融合Qt是个好的挑选。你觉得论述的难题往往沒有造成许多的共鸣点,我觉得是文化艺术上的难题。很多Java社区的大家包含Sun內部的责任人没法了解你常说的,所以我肯定Oracle也不会对Java作出什么大的更改。
手机客户端如今大部分被微软公司和Apple斩获。到Cocoa社区论坛中会发觉她们讨论的是GUI的易用性、回应性、终端设备户如何处理桌面应用等而大家的社区论坛呢,绝大多数人觉得运用的将来在服务端。这就是文化艺术上的差别。
可是桌面上技术性*须做许多工作中,Swing比较慢比较慢地演变,连着Netbeans平台、Java3D, JOGL等运用凑合变成了桌面上端一个挑选。但Sun置此境况于不管不顾,仅仅效仿Flash公布了一款新的开发语言,可是这些API仅有应用JavaFX才可以用
Jeff Martin回应道:恰当的见解,但是我一点不一样。Sun真真正正的难题是他应当吃自身的饭,用自身的能量再用Java写一些确实的桌面应用,这能够证实她们有关Java在桌面上端服务承诺,证实她们能够写下运用、提高架构和专用工具。我不会觉得另一个架构会协助Java。
James Sugrue回应道:同意创作者见解,因为我很适用桌面上端开发设计。看一下如今处在开发设计中的Eclipse. e4中的一些新项目,他们为桌面上和电脑浏览器给予了一个解决方法,因此我觉得或是有一些期待的。但我觉得大家不用太过对焦于桌面上端,JavaFX是前进方向上的一个迈入,仅仅没法在Swing和Java3D/JOGL中见到运用提高。
Osvaldo Doederlein回应道:我觉得JOGL的适用沒有那麼槽糕,终究它是JavaFX Desktop Runtime的一个依靠。事实上,我们可以写一个非JavaFX的微信小程序,并且不用要求当地编码的批准性就可以配备。