|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,这一个月以来,在Java社区最抢手的词应当是Java7了。从2006年12月JavaSE6公布到往年7月28号JavaSE7公布,这个中经由了差未几5年的工夫。在这过程当中产生了太多的事变,乃至连最后开辟Java的Sun公司也被Oracle收买了。Oracle的JavaTCK的受权协定的成绩,终极招致Apache基金会加入了JCP。而JavaSE7对应的JSR336的表决了局也充斥了戏剧性:Google间接投了否决票,而有6个成员固然投了同意票,可是都增加了相干申明,声明本人投同意票的目标只是基于手艺上的思索和为了推进Java的开展。不论怎样说,只管JCP中冲突良多,Java总算是迎来了它的一个主要的版本。Oracle也入手下手动手对JCP的流程举行更新,以增添流程的通明性。这个被称为JCP.next的新的运作体例,固然没有举措办理中心冲突地点的受权协定的成绩,可是也能够进步JCP的事情效力。在另外一方面,OpenJDK的开展一向都不错,SAP也在上个月到场了OpenJDK项目,IBM和Apple则在客岁就已到场了个中。
一帆风顺,JavaSE7在它公布之日(切实地说,是在公布之前5天),就爆出了HotSpot假造机在轮回优化上的严重bug,大概招致JVM溃散或是呈现盘算毛病。关于这类情形,有的网站乃至给出了“在任何情形下都不要利用Java7”如许题目的文章。不外也不必过于忧虑,Oracle已在动手修复这个成绩了,最迟在JavaSE7Update2中就能够被修复。Java7的公布也在社区内里掀起了不小的会商,有歌颂的,有品评的。笔者很认同BruceEckel的概念:Java7的公布,总得来讲是一件很好的事变。关于像Java如许一种利用这么普遍的言语来讲,它的开展会形成很年夜的影响。可是受限于Java言语自己计划上的缺点和向后兼容性的成绩,Java的每次更新都显得十分坚苦。这并非Java自己的毛病,任何有着较长汗青的言语都存在相似的成绩。Java7中真正对Java平台形成严重影响的改善太少,而之前在社区中会商得很强烈热闹的增添闭包撑持的ProjectLambda和加强模块化的ProjectJigsaw都被推延到了Java8。能够预期的是,JVM上的静态言语,如Scala、JRuby和Groovy等都将失掉加倍长足的开展。
跟着Java7的公布,良多开辟工具也做了响应的更新来撑持Java7。个中的好动静莫过于Eclipse3.8M1版本正式撑持了Java7,而一向对Java7有着很好撑持的NetBeans也公布了最新的7.0.1版本。Eclipse的举措对照慢一些的缘故原由是由于Eclipse接纳的是本人的JDT中的Java编译器,而Java7中的一些新特征是在编译器这个条理来完成的。在使用服务器方面,GlassFish也公布其撑持Java7的3.1.1版本。
上面先容一个呈现较早可是比来有严重更新的手艺:JavaFX2.0。
JavaFX2.0
如今做Web使用开辟,提得最多的观点就是RIA,即所谓的富互联网使用程序。在RIA开辟的手艺选择中,基础上是两年夜家数:一个是不依附插件的开放尺度派,依托Ajax和比来十分炽热的HTML5,其头脑是把扫瞄器作为独一的运转平台;别的一个家数则是插件派,依托的是扫瞄器上的插件来支持RIA使用的运转。插件派内里对照主要的介入者是Adobe的Flex、微软的Silverlight和Oracle的JavaFX。两种家数的做法各有益弊:在HTML5没有被普遍撑持之前,扫瞄器自己的才能一直无限;而依附插件的做法无疑会带来部署相干的成绩,一般用户大概会被插件的安装历程熬煎得保持利用这个使用了。从部署的角度来讲,Adobe和微软的处境要好很多:Flash如今基础上是扫瞄器的尺度插件,很少有扫瞄器不装的,除iPhone和iPad上以外。微软有操纵体系平台和扫瞄器的上风。而Oracle的JavaFX则对照为难,受限于JRE的部署情况。
JavaFX从它2007年公布以来,体现一向差强者意。Oracle收买了Sun以后,在JavaFX中投进了大批的精神举行推行和更新。JavaFX比来对照着名的使用应当是在2010年温哥华冬奥会上。在调剂了JavaFX中的良多观点,和从头计划和完成了良多主要组件以后,失掉的就是如今的JavaFX2.0。JavaFX2.0的beta版已公布,正式版则定于往年第3季度公布。在最早的时分,笔者也研讨过JavaFX。不外在事先来讲,JavaFX可用的中央其实不多。JavaFX2.0的新特征使得开辟职员应当必要从头审阅它在RIA开辟范畴中的地位。在良多情形下,JavaFX2.0也会是不错的选择。
JavaFX2.0的一个最主要的改善是保持了JavaFXScript。JavaFXScript原本的目标是为开辟职员供应一种简便的剧本言语,用于创立RIA使用。可是,JavaFXScript并没有到达它的预期目标。其缘故原由在于JVM之上已有良多不错的剧本言语可供利用,JavaFXScript自己的吸引力不年夜。开辟职员也不肯意进修新的剧本言语。保持JavaFXScript以后,JavaFX的功效全体经由过程Java言语来会见。这是一种很明智的做法,能够使用宽大的Java开辟者群体和社区上风,也有益于复用已有的资产。
JavaFX2.0完成了本人的一套图形用户界面库,分歧于Java平台上已有的AWT和Swing。从合用性下去说,AWT和Swing对照合适传统的之内容为主的交互性较弱的桌面使用。这点从AWT和Swing中包括的组件就能够看得出来,只是一些罕见的内容驱动组件,乃至没有图表的撑持,只能依托JFreeChart如许的第三方库。假如必要创立内容丰厚的界面,则必要使用Java2D和Java3DAPI来自行绘制。对多媒体的撑持也不敷无限。JavaFX2.0新的图形用户界面库把基础图形元素和用户界面组件两类元素一致在一同。不论是矩形、椭圆、按钮仍是表格,都是用户界面上的节点,能够用类似的体例来处置。JavaFX2.0在JVM之上,完成了新的相似AWT的窗口工具箱GlassWindowingToolkit,能够间接使用操纵体系的原惹事件行列。今后不再必要当心注重AWT和Swing中事务分发线程的利用成绩了。JavaFX2.0中的图形衬着引擎Prism能够借助底层操纵体系上的DirectX和OpenGL供应的硬件减速撑持,因而功能优于传统的利用Java2D举行软件衬着的做法。在用户界面组件方面,除基础的经常使用组件以外,还供应了图表绘制的撑持。在多媒体撑持方面,除基础的图片以外,JavaFX2.0的媒体引擎撑持MP3、AIFF和WAV等音频格局和FLV视频格局。
在组件的表面方面,JavaFX2.0也接纳了加倍盛行的做法,即用CSS来界说使用的表面。别的,JavaFX2.0也引进了界面形貌言语FXML。FXML在功效上相似微软的XAML,是一种用户界面形貌言语。FXML+CSS+Java如许的组合,很有些Web使用开辟中HTML+CSS+JavaScript组合的滋味。
值得重点先容的是JavaFX2.0中的Web引擎组件。这是一个基于Webkit内核的内嵌扫瞄器。在JavaFX使用中能够会见内嵌扫瞄器中网页的DOM布局和实行JavaScript代码。基于Webkit意味着这个内嵌扫瞄器撑持HTML5的新特征。这个内嵌扫瞄器能够在良多场景下都失掉使用,好比Web使用的主动化测试。别的一种用法是把内嵌扫瞄器作为Web使用运转时候的情况,以一种Java+HTML的体例来出现。
JavaFX2.0最少把Java平台酿成了一个开辟富客户端使用(RCP)的优秀平台。在今后的开辟中,AWT和Swing应当会渐渐淡出桌面使用开辟的视野。JavaFX将成为Java平台上支流的图形用户界面开辟库。而在RIA方面,JavaFX的远景仍没法意料。究竟,依附插件的RIA开辟体例都遭到来自HTML5的伟大打击,JavaFX天然也不破例。JavaFX能发扬感化的一个中央应当是在企业外部体系中。关于企业外部的体系,部署上的成绩对照好办理,同时也有益于复用外部的Java相干的资产。
Vaadin框架
关于Vaadin这个框架,很早之前就有传闻过,可是并没有往详细存眷它,究竟如今的RIA开辟框架其实太多了。不外在OReilly举行的OSCON2011年夜会上见到了有Vaadin的主题,就细心的存眷了一下这个框架。Vaadin是一个服务器端完成的RIA框架,这与一样平常的客户端完成的RIA有很年夜的分歧。一样平常的客户端RIA完成中,服务器端基础上只卖力处置数据,并表露REST作风的接口;而客户端则依托JavaScript框架或扫瞄器插件来完成庞大的界面逻辑。服务器端RIA的优点在于客户真个逻辑变复杂了,可是交互性却没有遭到影响。这是依托Vaadin的界面组件来完成的。Vaadin中的界面组件包含服务器真个Java完成和该组件在客户真个对等体(peer)。组件对等体之间的通讯由框架完整卖力。Vaadin的客户端组件是经由过程Google的GWT转换出来的,可是Vaadin相对GWT来讲的一个主要上风在于Vaadin只包括服务器真个Java完成,能够完整疏忽客户真个存在。客户真个处置完整由框架来完成。
Vaadin框架十分合适产物的疾速原型开辟。由于它只要服务器真个Java完成,在原型开辟中要思索的要素很少,能够疾速完成。而在实践的项目中,假如是传统的数据库驱动的信息办理体系,Vaadin也对照符合。假如对Vaadin感乐趣,能够检察它的演示站点和与其他RIA框架的对照。
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。 |
|