The Ajax Experience at Boston会议中,John Resig和jQuery大放异彩。John Resig做了《JavaScript Libraries》的演讲,这引发了Ajaxian和不少Blog上关于js库的又一次讨论。Aaron Newton写了一篇长文,提出Programming to the Pattern, 指出jQuery无法很好的做到这一点,而MooTools则非常适合。Aaron的这个论点,和我目前的感觉一致。jQuery易用的同时也宠坏了用户,Everyone Is a Noob At Something, But We All Learn Eventually. 刚开始使用jQuery,会感觉非常容易同时很有成就感,成就感能进一步激发兴趣(对于js的推广普及,John Resig劳苦功高,非常值得敬佩)。但随着代码的增多和编程经验的提升,一个好的程序员会开始想resuable, flexible, refactor等概念。这时,面对用jQuery快速开发出来的一堆代码就会有点头疼了。
当然,并不是用jQuery就写不出易扩展和可复用性高的代码。对于一个熟练的经验丰富的优秀程序员来说,即便用原生的js, 也能写出味道非常好的代码。这里想讨论的问题是,MooTools的框架设计和内蕴的编程风格,可能更能引诱程序员朝着味道好的方向去编写代码,而jQuery的哲理是Write less, do more, 快速便捷的同时,可能会使得大部分初级程序员写出短小很有成就感但味道却并不怎么好的代码来。
有一个值得思考的问题是,前端开发中,js脚本或许简简单单就已经够用了?以我的经验,对于web page来说,大部分js都是针对特定页面,是一次性的,而且也没有复杂到必须用oo思想来编写的地步。按照ppk的说法,js的作用仅仅是给页面增加一层可访问性,js最终将归结到瘦应用上。如果ppk的感觉是对的,那jQuery就已经足够用了。从另一方面讲,简简单单的针对特定页面编写的js代码,可维护性上其实比可复用性高的widgets更好一些。因为一个页面出问题了,只需修改这个页面的js即可。用widgets的话,修改一个widget后,得检查所有引用这个widget的页面。随着需求的变动,一个widget还可能演化出多个版本。这些维护成本不低,可复用性和可扩展性在web page应用中,除非一开始就设计得很好,否则后期的修改会让人发疯的。可复用性等传统的好思想,碰上web page, 可能并不是那么重要。
说到这里,不得不提web app. 比如GMail等应用场景。这些应用中,ppk的说法是不妥的。对于用AJAX构建的web app来说,js是一种最基本的语言,如果不支持js, 这个app就是不可用的,不需要过多考虑没有js时的可访问性(除GMail有一个HTML基本版,Google的其它应用,在没有js时,也仅仅给了个提示罢了)。这就如电影院,没有买票你就站在门外吧,老板不会考虑另建一个免票版影院。在web app的应用中,页面的复杂性很高,js是当java来用的。这时一个好的js框架,可以让复杂代码的搭建变得容易,维护性也更好。这种应用中,感觉才是MooTools和Ext等框架的真正用武之地。而jQuery在这种应用就会有点难受。
对于MooTools, 它的代码的确很漂亮。以至于有人这么评论:“用mootools的code, 写jquery的api, 开发ext那么多widgets”. 这个评论很俏皮但也很地道。MooTools的代码风格很好,但最近读它的源代码,发现MooTools对原生js做了非常多的扩展(官方的解释是这样能提高性能),走的是Prototype的路子,这种侵入性让我感觉很不舒服。MooTools的字面意义就是 My OO Tools, 里面的OO思想的确很彻底,这也是MooTools代码漂亮的一个主要因素。但MooTools目前的社区有点封闭,以后会不会流行起来,现在还很难说。
各个框架的关注点不同,适用的场景也不同。也许本就不存在竞争,争论孰优孰劣实在有点无聊。在《大胆预测下几个JavaScript框架的走势》一文中,我可能伤了部分jQuery fans的感情,在此表示歉意,以后我不会再参与这种话题的讨论。凭借John Resig的能力(John Resig这次被人取了个外号叫Mr. Rockstar JS),我相信jQuery近两三年是不会没落的。在web page的应用中,jQuery会继续红火。期待jQuery UI的质量能上一个档次,等到那时,再来和YUI、Ext比较,可能会更有意思一些。
相关推荐
对JavaScript框架的再思考 本文讨论了JavaScript框架的再思考,云计算概念的影响,云计算的定义、特点和应用场景,以及JavaScript框架在前端开发中的思考。 云计算概念的影响 云计算是一个热门的概念,它给企业...
TypeScript 已经被许多大型项目和框架采用,如 Angular、Vue.js(部分支持)和 VSCode。在这些项目中,TypeScript 的优势得到了充分体现,例如在 Angular 中,类型系统与依赖注入相结合,提高了组件间的解耦和可测试...
通过将文学的元素融入到编程中,Angus Croll提供了对JavaScript的深刻见解,同时展示了编程语言在表达思想和情感方面的能力。他鼓励读者不仅要编写能运行的代码,还要编写出能与人沟通的代码,让代码本身成为一种...
通过这样的学习过程,你不仅可以提升JavaScript技能,还能培养解决问题和独立思考的能力。记住,学习编程最重要的是动手实践,所以不要害怕犯错,每次错误都是向成功迈进的一步。希望这些“js例子”能成为你精通...
JavaScript 象棋是一种利用JavaScript编程语言开发的在线游戏,它允许用户在网页上进行象棋对弈。作为一款Web象棋,它充分...通过这个项目,开发者可以深化对Web开发的理解,同时也能锻炼解决问题和逻辑思考的能力。
【标题】:“一个实例引发的思考.ppt(sql2000)”和【描述】:“一个实例引发的思考.ppt(sql2000)sql200的应用的一个实例详细的分析”虽然提及的是SQL2000,但提供的【部分内容】却与JavaScript框架有关,特别是...
### ZK Ajax无Javascript框架详解 #### 一、引言 在Web开发领域,Ajax(Asynchronous JavaScript and XML)技术自推出以来便受到广泛关注。它允许网页在不重新加载整个页面的情况下更新部分数据,极大地提升了用户...
它鼓励读者跳出面向对象的思维框架,回归数据与代码的本原,用最简单、最直观的方式理解JavaScript。通过李战的引导,读者不仅能掌握JavaScript的技术细节,还能领悟到编程背后更深层次的思考和哲学意涵。这种回归...
如React、Vue.js、Angular等JavaScript框架提供了更高级别的抽象,简化了开发过程。jQuery是一个常用的JavaScript库,简化DOM操作和事件处理。 9. **教程内容** "JAVASCRIPT教程.chm"和"JAVASCRIPT语言教程.chm...
设计模式是在软件工程中,针对常见问题的可复用解决方案,它们并不直接解决具体问题,而是提供一种通用的思考框架。在JavaScript中,由于其动态特性和灵活性,设计模式的应用显得尤为重要,能够帮助开发者在复杂的...
《学用JavaScript设计模式》不仅是一本技术手册,更是一本启发思考的书籍。通过对这些设计模式的学习和实践,开发者不仅能够提高自己的编程技能,还能够在团队协作中更好地表达自己的想法。无论你是初学者还是经验...
内容概要: 本教程详细介绍了JavaScript的基础语法、DOM操作、事件处理和... 建议按章节循序渐进地学习,结合动手实验进行实践,尤其是对项目部分,尽量独立思考并编写代码,这样能更好地掌握JavaScript的核心技术。
尤其,思考一下当状态经常发生改变的时候,这些框架是如何做的,这是很一件有意义的事情,在这些框架中,他们各自都用什么方法来反应用户界面的变化?管理应用的状态和用户界面的一致在很长的时间里都是一个引发UI...
综上所述,《Beautiful JavaScript》不仅仅是一本技术手册,更是一部关于JavaScript哲学思考和实践经验的合集。通过不同领域专家的视角,读者可以全方位地了解这门语言的独特魅力及其在现实世界中的广泛应用。无论是...
"领透JavaScript"可能还会探讨JavaScript在实际项目中的应用,比如前端框架(如React、Vue、Angular)、Node.js后端开发、Web API交互、DOM操作等。此外,性能优化、调试技巧、代码组织和测试策略也是书中可能涉及的...
9. **JavaScript库和框架**:可能还会涉及像jQuery、React、Vue或Angular这样的JavaScript库或框架,它们简化了开发流程,提高了开发效率。 10. **调试技巧**:了解如何使用浏览器的开发者工具进行错误排查和性能...