上周五和六参加了Sun公司在北京举办的TechDays,具体听了JavaSE6u10和JavaFX的部分,还参加了一个lab handson,主要信息还是从前两部分获得的。当天很巧,2个session都是Sun中国的Evangelist Joey Shen来讲解的,首先就是从Joey本身的讲解来看,已经很有水平,能够面向程序开发人员将两个部分的内容都非常清晰明确的表示出来,这个就已经看出Joey的功底了。接着来说说JavaFX的部分,因为这个新技术是我最关心的。JavaFX的部分我听完了后,有以下的感想。
先来说优势部分:
1. JavaFX Powered by Java,这个是FX得天独厚的优势。有着这个优势,意味着开发人员基于最新的j2se sdk就可以使用FX的相关类库来开发FX应用了。
2. JavaFX比Swing和AWT更加易于学习。这个不仅仅是我看到的,也是Sun推出FX时的初衷,因为Swing和AWT构造一个UI简直是...
3. JavaFX依托于“无限多”的Java开发程序员。Sun推出JavaFX(powered by Java),就是看重可以通过Java大量的程序员来快速将JavaFX升空,这条策略从本身而言是正确的,换做任何一个公司的决策层都会这么定策略
4. IDE的支持,Sun推出了新的中文版本的NetBeans6.5,这是利好之一。利好之二,是其中可以构建FX的项目进行开发。有一个优秀IDE支持,是语言得以流行的重要原因之一。
上面说的是优势,下面来谈谈看我认为FX的劣势或者说是还有待要完善的道路:
1.JavaFX Powered by Java是不假,但是我看到FX的语法既不是Java,也不是JavaScript,而是一种全新的脚本编写方式。这给想接触FX技术的Java开发人员和团队造成了不便。
2.JavaFX还没有完全将表现和UI的逻辑部分分离开来,从当天的程序示例来看,FX的结构还停留在比较初级的表现层构造方式之上,希望这个部分以后Sun可以有效的进行结构化的调整。UI Comp的展现和样式完全可以和Event体系的驱动逻辑分离开来。
3.JavaFX,Java的程序员都觉的新鲜。当天Joey的演示是一个卷轴打开显示图形和播放音乐的动画(从他的说法是学习张艺谋的奥运开幕式),博得了在场部分Java开发人员的赞赏。但是,换个角度来看,这包含着另外几个方面的信息。第一,Java程序员对于JavaFX的认识处于全新的认知程度,这是肯定的,因为据Joey的讲法是FX1.0出来后,还会跟他讲解的部分在API层面上有变动。这个“新”对于现今的RIA领域来说意味着相当的难度,Java程序员尚且如此,更何况Web UI Designer和Interactive Producer呢?第二,说明我们国内大部分的Java程序员对于RIA表现层的认知程度相当低,因为看到Joey演示的范例,就已经有一部分人发出小声的喝彩了,从这个层面上而言,很多Java程序员并没有真正意义上见过RIA的表现层技术,比如Flex和Silverlight,这两者已经远比FX成熟,而且制作出来的RIA UI,简直是FX所不能比较的。尤其是Flex,同样按照当天FX演讲部分的演示,Flex可以用更好的更容易的代码来完成。如果这些程序员看到的不是一个FX范例,而是Flex和FP10的特效集成的UI展现效果,估计会从喝彩变成目瞪口呆。当然,这也说明了另外一个问题,就是RIA整体技术距离中国程序员群体还很遥远,这些技术在中国要走的路仍然很长。
4.IDE的支持,虽说NetBeans的简体中文对于FX开发已经支持是一大利好,但是FX仍然面临很大的劣势在IDE层面上。比如对于Flex,基于Eclipse的FB和面对设计师的CS4构成了一个完整的工作流环境,加上第三方众多优秀的code IDE的参与,Flex现在的IDE环境可以说是已经单纯的脱离了写代码,标高亮的需求阶段,而是整体融入了非常强的设计师和开发人员的工作流理念,况且JavaFX最快年底才有1.0,而NetBeans的正式支持也在1.0推出后才会趋于稳定,可是再过几个月,Flex的设计师开发工具Flash Catalyst(Thermo)都要beta了。这个差距至少要2-3年才能追上,要知道,Adobe目前是重推Flash Platform,而且Adobe还借助了25年在图形图像和字体上的功力,这个对于表现层来说是相当重要的。因此,Sun在这方面的投入和积累的经验决定了FX能走多远,付出和别人一样的努力可能都不够。
5.FX推出的时间,RIA的最初理念由Macromedia于2003年提出,后来由Adobe和其他众多的公司加以强化和改善。马上就要2009年了,Sun才推出JavaFX,这6年的差距和市场份额可想而知,所以等待FX的挑战将是前所未有的。祝FX好运,祝Sun好运。
说了这么多,仅代表我个人观点,完全允许发表不同建议,百家争鸣。