被我抛弃的开源框架
1.GWT,它是个javascript的编译器,生成的是浏览器端的HTML和js,但他和服务器端的交互让人痛苦,他有自己的调试器,但集合到服务器端代码一起发布调试,真是让人痛苦。生成垃圾文件多,执行速度慢,总之,它带来了多少快感,就带来了多少痛苦。(补充:他可以ajax,但它生成的只是静态html+js页面,是静态的,想让它接受参数是不可能的。当然我曾试过把他的html再变成jsp接受参数,将接受到的信息放到html的headmeta中,然后再用GWT的DOM在meta中取信息,再用RPC到服务器上取信息填入各个元素,上帝饶恕我的SB吧。)
2.Tapestry5,我试用了两周。帮了不少忙,把GWT的残局收拾了,把当初用GWT写的东西彻底重写了一遍。但渐渐也发现了它的不爽。还真是不太好表达,总体感觉,它太霸道了,封装了一切。事实上它对静态资源(html,js)的支持并不够好。对页面跳转,支持也不够好,ActionLink和PageLink只能跳到他自己的页面,必须自己写个组件实现动态的asdfa,。国际化的解决办法是自动根据request头分析出来源地,自动选择匹配的语言,乍看很cool,事实上又是霸道的表现,如果用户想自定义语言,无法做到。就连中国的开发者想看看自己开发出的英文版页面是什么样子都会很麻烦。他的角色不再是助手,而是Boss,我想大家都不希望助手成为Boss。
3.Struts1.x,说她被抛弃,并不适合,因为我从未选择过她。曾N次下决心与她亲近,但她太麻烦了,磨磨唧唧,但始终无法了解她的心,最终与她的缘分还没有开始就结束了。
4.Grails,我没有完整的玩过Grails,我只是稍稍了解了一下,但我已经可以断言,它不会有太大的灵活性。基于脚本语言,我一直认为脚本语言的用处应该是热修改,而不是写源代码。所谓热修改,比如魔兽争霸3的RPG地图,不可能让玩家用C语言写地图,但也不可能让开发者用lua来开发WAR3。用户的需求中有个经常变动的公式,这时可以用脚本。用脚本语言写源代码!!!我不想多说。
5.ROR。RoR开发的javaeye,很不错啊,为什么抛弃RoR。也许是成见吧,理由同上。但RoR确是给快速开发开辟出一条新的模式。它的优点是他的开发模式,而不是Ruby或Rails。仅仅因为他模式的优秀,而选择一项建立在脚本语言上的框架,颇有委曲求全的感觉。
寻求一条优秀的开发模式,真是不简单。
接下来打算了解webwork2和velocity,希望不要让我失望。