13

我想知道你们对这两个框架的看法,包括:

  • 鲁棒性,
  • 代码质量,
  • 核心开发人员正在推进新功能,
  • 跨浏览器问题,
  • 模块组件,
  • 最容易学习和整合

我已经知道并使用 jQuery,我最近发现它在大型 Web 应用程序的“企业就绪”组件方面缺乏。

现在我不想开始辩论 jquery,或者为什么没有 mootools,我想知道你们对这两个框架的具体看法。

谢谢!

4

4 回答 4

24

免责声明:我是 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.4 支持以下浏览器

  • Firefox 2 支持下降。支持 Firefox V3 和 V3.5。
  • 支持最新的 Safari (Safari v4) 和最新的 Chrome (Chrome v3),但不支持以前的版本。
  • IE6、IE7、IE8都支持。
  • 最新的 Opera (Opera v10)(仅限 Dojo 核心)。

即将发布的 Dojo 1.5(将在几天后发布)已使用以下浏览器进行了广泛测试:

  • 火狐 3.5/3.6
  • Safari 4/Safari 5 和 Chrome 5
  • IE6、IE7、IE8
  • Opera 10.53 及更高版本(仅限 Dojo 核心)

突出显示与 YUI 的 A 级浏览器的不同之处:

  • 除了 Windows 和 Mac,Dojo 还支持 Linux。
  • Dojo 在所有受支持的操作系统上都支持 Google Chrome。
  • Dojo 在所有受支持的操作系统上都支持 Firefox。
  • Dojo Core 在所有受支持的操作系统上都支持 Opera。

就我个人而言,我可以补充一点,我仍然在 Firefox 2 上测试 dojox.gfx(跨平台图形包)——它涉及 Dojo Core,它可以按预期工作。我在几个异国情调的浏览器上测试 Dojo Core,比如Midori

另一个区别是 Dojo 可以在桌面和服务器环境中使用(并且它被使用)。显然,这些环境不使用特定于浏览器的组件。

模块组件

从第一天开始,Dojo 就提供了类、模块和包(模块集合)。Dijit 提供小部件:打包的 HTML + JavaScript 具有统一的界面。

所有构建块都向用户公开,因此他们可以创建自己的组件,这将是一等公民:它们可以像任何其他模块一样被加载,由构建器处理(依赖项跟踪、缩小、CSS 预处理等) ,即使是奇特的 CDN 构建也可以由用户完成。您可以使用现有的 Dojo 组件进行的任何操作都可以使用您自己的组件进行。

Dojo 本身分为 3 个子项目,可以单独使用:

  • Dojo(包括 Dojo Base 作为单个文件)
  • Dijit:小部件的集合
  • DojoX:更多小部件和约 50 个包,涵盖从跨平台图表到加密的所有内容。

最容易学习和整合

Dojo 只是 JavaScript 和常规 HTML/DOM(用于小部件)。它不会伪装成别的东西,它不是一个由元首掌舵的邪教,它不是一个“框架”,它控制你的应用程序并强迫你做一些奇怪的事情,Dojo 不想”改进”“不完美”的 JavaScript,Dojo 不想将浏览器伪装成其他东西。相反,Dojo 提供了实用工具来提高程序员的工作效率、促进 RAD、解决常见问题并支持有用的技术和方法。

每个有经验的程序员通常都有一个小型库,其中包含在以前的项目中对他/她很有效的东西。他或她知道要避免什么和使用什么。当我意识到 Dojo 是这个类固醇图书馆时,它在我脑海中“咔哒”一声响起——就像几位专家聚在一起并仔细组合了他们的个人图书馆一样。当然,它有很多不同的模块,但我只能为我的特定项目使用我想要的东西——我不会被迫使用所有东西,而且我不会为我不使用的东西付费。甚至没有抽象惩罚。

如果您了解 JavaScript 并熟悉 HTML、CSS 和 DOM,那么您将轻松自如。

于 2010-07-16T06:35:52.170 回答
9

我认为您拒绝 jquery 的理由听起来很可疑,并且在我的书中推荐一个框架作为“企业就绪”是一种间接的恭维。

但是,我对 YUI(2 和 3)有很多经验,我认为它可能适合您的用例。

  • 健壮 - YUI 由 Yahoo 内部使用,因此应该提供一些关于其健壮性的线索。
  • 代码质量——我是项目的贡献者,代码质量非常好。因为它是开源的,你可以自己看看
  • 前进 - 它由雅虎支持(但也包含社区贡献),因此前进非常安全。同样,您可以自己跟踪开发和社区参与
  • 跨浏览器 - 它支持所有雅虎 A 级浏览器
  • 模块 - 有很多,而且(尤其是在 YUI 3 中)很容易只包含您需要的部分。如果您主要需要 GUI 模块,您仍然需要混合一些 YUI 2(这很容易做到)。不过,YUI3 中的小部件即将推出。
  • 易于学习和集成 - YUI 可能是我见过的任何 JS 库中最好的文档。然而,YUI 3 对你如何编写你的 javascript 非常固执己见。它以一种很好的方式自以为是,并为您带来了很大的收益,但是仅仅“加入”现有项目 YUI 2 可能会更容易。
于 2010-07-09T17:05:50.943 回答
1

YUI 有一个很棒的测试工具包并且不会污染全局命名空间。此外,JUnit 可以读取 YUI 测试结果,这在我的书中是一个加分项。我没有使用过Dojo,所以我无法详细评论它,但它与DOM 集成的方式值得记下。

于 2010-10-24T04:07:09.633 回答
1

知道 JQuery 是最容易使用且广受欢迎的,Dojo 具有集成在 Zend Framework 中的优势。此外,作为库或框架的差异也很重要。- 库是关于可重用的功能,但框架是关于可重用的行为 - 库是您从代码中调用/继承的东西,但框架是调用您的代码或为您的代码提供服务的东西 - 库是组件的集合和类,其中框架是抽象类和组件如何相互交互。

于 2013-09-04T05:38:11.437 回答