
Backbone.js以其强大的社区和强劲的发展势头著称,但其抽象程度较低,一些关键功能仍有待完善。SproutCore则因其强大的绑定支持和庞大的特性集而受到青睐,但其规范过于严格,难以与不必要的特性分离,这可能对开发人员造成困扰。Sammy.js易于上手,能很好地与现有的后端应用程序结合使用,然而它过于简洁,不适用于大型项目。Spine.js体积小巧,文档详尽,但它采用了异步用户界面的核心概念,这可能导致用户界面不会发生堵塞,尽管该概念本身存在缺陷。
Cappuccino是一款经过深思熟虑的框架,拥有良好的社区支持和出色的继承模型,但它是由iOS开发者创建的,使用JavaScript模拟Objective-C,这可能对非iOS开发者来说不够友好。Knockout.js在绑定支持和详尽的文档方面表现出色,但其绑定语法略显粗糙,且缺乏统一的视图组件层级关系。JavaScript MVC拥有稳健的社区,但其基于字符串的继承模型较差,控制器与视图之间的关系过于紧密,缺少绑定支持。
GWT(Google Web Toolkit)是一款全面的框架,拥有良好的社区和可靠的基于Java的组件继承模型,但可能无法经受时间的考验,而且Java在客户端上的抽象可能显得有些笨拙。Google Closure则提供了出色的基于组件的UI组合系统,但缺乏UI绑定支持。Ember.js具有丰富的模板系统,支持复合视图和UI绑定,但它相对较新,文档尚不完善。Angular.js考虑了模板范围和控制器的设计,拥有依赖注入系统,并支持丰富的UI绑定语法,但其代码的模块性和视图的模块化程度仍有改进空间。
Batman.js的代码结构清晰,绑定和持久化方法简便,但使用了单例控制器,这可能会影响代码的灵活性。