开发人员都讨厌XML的语法 (连JavaFX团队的人都这么认为,具体参考:http://www.infoq.com/cn/articles/jfx_preview)
这种语法方式增加了学习成本,学习它的同时还要学习Actionscript
我的看法是MXML就是ActionScript,不过是通过XML标签式的方式将UI Layout构造出来。对于JavaFX团队说的“开发人员都讨厌XML”,我实在不敢苟同,以前我作为web开发人员的时候,我非常喜欢Tag式的语言,从HTML到DHTML到XHTML,后来又喜欢上了ColdFusion,无一不是高效明确的Tag式表现方法。现在Flex也使用这种方式,为的是能够更加有效,直观,而且快速的构建一个RIA的Application Layout出来,恰恰这是弥合设计师和开发人员最有效的途径,设计师能够非常容易理解开发人员使用这种MXML构造Layout布局的方式,尤其是Web UI designer和producer,而开发人员也能够轻易接受设计师和互动人员对于他们构造的MXML template的修改和整理。由MXML构造UI Layout,由AS3构造UI Interactive Logic,我认为绝对是经过深思熟虑后的决定。上面那篇文章说出了开发人员都讨厌XML标签式语法,恰恰反应出了JavaFX团队在理解设计师和开发人员工作流上的经验欠缺,一个RIA,如果只考虑满足开发人员的需求,而忽略UI设计师的工作方式的话,损失将是非常巨大的。
从技术角度而言,MXML=Actionscript更加成立
<mx:Button id="coolbutton"/>
import mx.controls.Button;
var coolbutton:Button=new Button();
addChild(coolbutton);
从上面两段代码来看,你是希望你团队里的设计师可以看懂第一行代码呢?还是需要设计师去读懂第二段代码呢?如果说你一个人既是设计师,又是开发人员,呵呵,抱歉我这篇文章浪费了你的时间让你看到了最后。