JavaFx看起来似乎不是要吸引已有的开发者,还要包括Flash的开发者,去抢占Flash的地盘。
JFX从语言上看:
- 简单,抛弃了无聊的get/set和基本类型
- 集成了数据绑定,看看例子就知道多强大
- 简单的数组操作,select /delete/insert都用上了
- 方法作为对象(一级方法?)
- 带有语法的字符串
- 继承了Java既有的对象特性、垃圾回收等
- 在UI上,不仅仅是包装,更加新增了动画、变形等特效,并且从语言上支持
JFX优势:
- 已有的庞大类库资源
- 虚拟机级别上的统一,jfx和jsp一样,只是脚本,不妨碍java自家调用
- c/s,b/s的优势,自家打交道
- 语言的简单和灵活。不像xml的冗长。不需要分离
本来想jfx设计工具至少一年半载才能出来,没想到已经有相当不错的产品。至少用它生成界面代码很好。http://www.reportmill.com/jfx/, 运行webstart可以看到类似flash的设计工具。注意在右边有时间轴面板。 在它的Gallery我们可以以applet方式看到一些演示。
jfx可以用自己的瘦身虚拟机,也可以用jre5,所以用applet一样可以运行,当然web start也是一种方式。
关心fx和java区别的朋友可以去看看openjfx compiler, 用svn下载代码编译出一个jar。这个编译工具可以输出fx对应的java代码,供好事者比较~
jfx一些疑惑:
- 类的方法体和成员变量初始化跑到了类的外面。难道是为了GUI设计器?
- 关键字的引用方式<<java.lang.system></java.lang.system>>, jfx将来作为js嵌入的时候会有困难
- jnlp demo每次启动似乎需要2~3秒左右,cpu偏高,难道象jsp一样在编译?如果这样不如象java一样直接提供class,毕竟用户是没有多少耐心的。
- 安全和版本问题,会不会象applet一样绑住自己手脚?还是象symbian一样不停的询问用户?
- 视频和其它媒体格式的支持,这一直是java的弱项,如果要攻打桌面市场,要尽快努力。
- 现有手机上怎么去支持jfx? 现有的手机淘汰?编译成j2me?
jfx作为脚本语言,简单安全易用,肯定会吸引很多已有的java开发者,但是在大型项目中又不宜用。java应该在另辟蹊径的同时尽快自我完善。
jfx凭借免费、丰富的资源、庞大的开源社区支持,完全有理由成为穷人的劳斯莱斯。