要做RIA,目前从编程上也就3个主要选项:AJAX,Flex,Silverlight。
选择AJAX的最多,主要理由就一个:基于Web标准。Google的Gmail和地图很棒,不是吗?没错,如果是做网站,我同意。但是对于应用系统,基于HTML的界面不论怎么装饰,连Windows 1.0都不如。
HTML的天生缺陷是很难弥补的——类似X国的法律,含糊不清,头痛医头,脚痛医脚,昨天给馒头定个标准,今天养老金变个算法,明天打网游抢了小鬼的虚拟财产要交税——没有统一的法理基础。每个浏览器干脆自己说了算,想怎么执行就怎么执行,W3C吵了10年都没有多大进展,出个Web标准又怎样,用老浏览器的客户也不能忽略不是。CSS的描述能力实在白痴,搞个圆角的按钮比包饺子都难,全指望Javascript续命。Javascript虽然中规中矩,但你得捏着鼻子用,实在谈不上什么优雅。做个大型程序?除非给我Google的工资。各种AJAX库算是一种拯救,不过高级一点的控件真的不好找,要么浏览器兼容性不好,要么个头太大,要么风格不协调,要么得花钱买。自己做吧,就好像用C语言写数据库,都什么时代了。微软的ASP.NET倒是容易用,但只能用在Windows上,不是每个客户都欢迎。
Silverlight?技术上可以说是最牛的。可惜装机量还不足,IT的人谁愿意挨着个在每台电脑上部署呀。
最后就剩下Flex。不过Flex真的很好用。本人大概学了一个星期,包括用ActionScript做了一个小的应用程序框架,动态加载功能模块,这样首次访问下载的时间就不会次于HTML。以前AJAX搞了一年也搞不定的动态视图管理简直就不值一提。浏览器兼容性问题不存在,只有一个Flash。装机量即使没有100%,也有95%以上,好像没有遇到显示不了新浪广告的机器。界面效果嘛,有个老板居然说我们有赶超Google的可能,呵呵。