我想知道你们对这两个框架的看法,包括:
- 鲁棒性,
- 代码质量,
- 核心开发人员正在推进新功能,
- 跨浏览器问题,
- 模块组件,
- 最容易学习和整合
我已经知道并使用 jQuery,我最近发现它在大型 Web 应用程序的“企业就绪”组件方面缺乏。
现在我不想开始辩论 jquery,或者为什么没有 mootools,我想知道你们对这两个框架的具体看法。
谢谢!
我想知道你们对这两个框架的看法,包括:
我已经知道并使用 jQuery,我最近发现它在大型 Web 应用程序的“企业就绪”组件方面缺乏。
现在我不想开始辩论 jquery,或者为什么没有 mootools,我想知道你们对这两个框架的具体看法。
谢谢!
免责声明:我是 Dojo 提交者。
不知何故,在这个比较中没有人展示道场的一面——这不是没有人的比较,是吗?让我回顾一下你的观点。
鲁棒性
Dojo 被大型国际公司用于许多 IT 项目。我个人参与了 VMware、IBM、Cisco、Reuters Thomson 等的项目。我可以向您显示贡献者的实际列表,而不是将您转发到“营销文献”:http: //docs.dojocampus.org/developer/contributors — 向下滚动以查看贡献(和使用)Dojo 的公司。
我们保留个人和公司贡献者的列表,以便我们的用户可以确保 Dojo 代码的 IP 沿袭是干净的——每个贡献者都签署一份CLA,声明他/她/它编写了贡献的代码和/或有权贡献它在双 AFL/BSD 许可下。到目前为止,我们对此没有任何问题。
据我所知,YUI 主要由一家公司开发:Yahoo!YUI 仅在两年前才开始接受外部贡献,自 2005 年以来一直在开发中,现在也需要 CLA。
我不是股票市场专家,但雅虎总是出事:有一天它试图与谷歌结盟,第二天它会扼杀搜索业务并与微软合作,甚至将整个公司卖给微软也被讨论过2008 年——谁能预测明天会发生什么。现在是 2010 年,股价自 2008 年以来下跌——它会再次发售吗?OTOH 有人说,如果微软决定保留它,它将成为 YUI 的更好母亲。再说一次,微软有自己的软件属性,并不完全是开源 JavaScript 项目的支持者。
与 YUI Dojo 不同的是,它得到了几家公司的支持,其中 IBM 是最有影响力的一家——这家公司雇佣了几位杰出的提交者。虽然 Dojo 有强大的企业支持,但它仍然是一个由社区、个人驱动的项目。如果任何一家公司甚至几家公司遇到市场困难,我们仍然会继续前进。
Dojo 在双 AFL/BSD 许可下分发,所有用途均免费。所有正式发布的 Dojo 版本均由 AOL 和 Google CDN 提供服务。
代码质量
我有偏见:-) 我认为代码质量非常好。由于 Dojo 是一个开源项目,您可以随时自行判断并改进它,如果您愿意的话。
源代码保存在Subversion中,官方镜像保存在Github (git)和Bitbucket (hg)上。为方便起见, Launchpad (bzr)上有一面镜子。
核心开发人员使用新功能向前发展
Dojo 有一个活跃的充满活力的社区,可以说它让车轮不断前进。作为核心开发人员之一,我个人向您保证,我们将继续向前推进,进一步推动众所周知的发展。
Dojo 在创新方面有着良好的记录,我们不会停止。
跨浏览器问题
即将发布的 Dojo 1.5(将在几天后发布)已使用以下浏览器进行了广泛测试:
突出显示与 YUI 的 A 级浏览器的不同之处:
就我个人而言,我可以补充一点,我仍然在 Firefox 2 上测试 dojox.gfx(跨平台图形包)——它涉及 Dojo Core,它可以按预期工作。我在几个异国情调的浏览器上测试 Dojo Core,比如Midori。
另一个区别是 Dojo 可以在桌面和服务器环境中使用(并且它被使用)。显然,这些环境不使用特定于浏览器的组件。
模块组件
从第一天开始,Dojo 就提供了类、模块和包(模块集合)。Dijit 提供小部件:打包的 HTML + JavaScript 具有统一的界面。
所有构建块都向用户公开,因此他们可以创建自己的组件,这将是一等公民:它们可以像任何其他模块一样被加载,由构建器处理(依赖项跟踪、缩小、CSS 预处理等) ,即使是奇特的 CDN 构建也可以由用户完成。您可以使用现有的 Dojo 组件进行的任何操作都可以使用您自己的组件进行。
Dojo 本身分为 3 个子项目,可以单独使用:
最容易学习和整合
Dojo 只是 JavaScript 和常规 HTML/DOM(用于小部件)。它不会伪装成别的东西,它不是一个由元首掌舵的邪教,它不是一个“框架”,它控制你的应用程序并强迫你做一些奇怪的事情,Dojo 不想”改进”“不完美”的 JavaScript,Dojo 不想将浏览器伪装成其他东西。相反,Dojo 提供了实用工具来提高程序员的工作效率、促进 RAD、解决常见问题并支持有用的技术和方法。
每个有经验的程序员通常都有一个小型库,其中包含在以前的项目中对他/她很有效的东西。他或她知道要避免什么和使用什么。当我意识到 Dojo 是这个类固醇图书馆时,它在我脑海中“咔哒”一声响起——就像几位专家聚在一起并仔细组合了他们的个人图书馆一样。当然,它有很多不同的模块,但我只能为我的特定项目使用我想要的东西——我不会被迫使用所有东西,而且我不会为我不使用的东西付费。甚至没有抽象惩罚。
如果您了解 JavaScript 并熟悉 HTML、CSS 和 DOM,那么您将轻松自如。
我认为您拒绝 jquery 的理由听起来很可疑,并且在我的书中推荐一个框架作为“企业就绪”是一种间接的恭维。
但是,我对 YUI(2 和 3)有很多经验,我认为它可能适合您的用例。
YUI 有一个很棒的测试工具包并且不会污染全局命名空间。此外,JUnit 可以读取 YUI 测试结果,这在我的书中是一个加分项。我没有使用过Dojo,所以我无法详细评论它,但它与DOM 集成的方式值得记下。
知道 JQuery 是最容易使用且广受欢迎的,Dojo 具有集成在 Zend Framework 中的优势。此外,作为库或框架的差异也很重要。- 库是关于可重用的功能,但框架是关于可重用的行为 - 库是您从代码中调用/继承的东西,但框架是调用您的代码或为您的代码提供服务的东西 - 库是组件的集合和类,其中框架是抽象类和组件如何相互交互。