引:昨天吐了一大篇出来,今天没什么力气,捡要点写。
首先我是Ruby on Rails fan。其次RoR出来之后,很多人都在抄它这事实就不说了。因此考虑如今的web应用和客户端应用已经是同构的了——web应用的架构其实是客户端的MVC的一个简化,所以咱为啥不搞个客户端应用的RoR出来?不偶然的是,现在这世道只要你想得到的就有人做,比如人家JavascriptMVC都tm出到2.0了。这玩意我原来试过,还行。
不过今天又发现之前在feeds被略过(信息过载要命呀)的另一个玩意,SproutCore。1.0RC,亮点是Apple开源出来的,Demo上看性能不错。一句话来说就是一个客户端应用的RoR,framework+building tools,架构就是纯正MVC(包含observer)。
SproutCore这类东西和YUI、Extjs这类的区别,基本上就是PHP和RoR的区别。用SproutCore能做的是YUI完全能做。但我的观点是YUI、PHP这个层次的框架(PHP+一堆包也算个框架了)最大的问题在于不能帮助开发人员构建应用的整体架构。虽然它们的能力完全没有问题,但如果你是一新手,那就很容易在一开始直接晕菜,而老手则经常要在一开始做很多Copy&Paste的dirty work。相反RoR、SproutCore都提供一个强制但合理的完整应用架构。你用这框架就直接得到一个骨架,在上面直接添加具体的应用内容就行了。这类框架同时提供一系列building tool来帮助你跟随这个架构来构建应用,所以构建应用本身也就成了应用架构学习的过程——特别是针对新手。(RoR在开发时的优点其实真不用我废话了。)
当然客户端用到MVC这么重载的架构,一定得是很rich很rich的客户端了。不过我是觉得在未来几年里,客户端一定会变得现在想不到的重载,这个观点不算激进。如果你坚信页面用HTML+jQuery就完事了,那咱就不相与谋了,但如果你有一天你考虑要用到YUI、Extjs这级别的东西,不妨关注下SproutCore的发展。不要小看漂亮架构的力量,现在YUI这玩意ms基本的东西已经做绝了,新加的多是些稀奇古怪的功能。但是看看SproutCore的DataSource实现,这是我现在看到最漂亮的客户端Data Access实现了。
你看我的技术讨论好像有点又大又空,一点实例都没有。告诉你,其实我现在特别讨厌技术,写这些字,耽误我多少看书的时间!所以有兴趣你就自己看SproutCore这项目的wiki去!最后再顺便愤青地表示一下这项目wiki被墙的愤怒,mlgbd!睡觉去,完。