考虑到
- 商业背景
- 社区支持
- 可用的扩展
- 默认功能集
- 使用简单
- 和可靠性
为什么你更喜欢一个而不是另一个?
考虑到
为什么你更喜欢一个而不是另一个?
我会尝试添加我的信息。
据我了解,Google Closure 不仅是另一个 JS 库,它还是一组工具,可以让您优化 JS 代码。使用 jQuery 为您提供了很好的工具和轻量级库,但它不会缩小您自己的代码。闭包编译器会。闭包检查器也可能很有用,因为有时缩小的代码与原始代码的行为不同,调试起来很痛苦。它与Firebug集成并支持单元测试,这两者都是当今开发人员最好的朋友。
我猜想,作为任何新库 VS 一个完善的库,它都将缺乏 jQuery 所拥有的大量扩展和教程的可用性。然而,被谷歌推动应该确保支持和可靠性都很好。当前的文档和教程看起来也都非常好。
不过,Closure 的功能看起来不错,而且它的模块化架构也很有前途。我猜 Google 已经在内部使用它很长时间了,这意味着您可以期望所有基本功能(以及更多)都可以实现,并且可能以一种非常优化和可扩展的方式实现。他们试图将其呈现为 JavaScript 的 STL,因此他们应该对其进行优化。
在仔细研究了这些特性之后,与现有的 jQuery 库相比,这似乎是 Web 应用程序开发向前迈出的一步。它猜测它有利于 Google 的内部开发,但诸如检测在线状态(请参阅goog.events.OnlineHandler)、在浏览器历史记录中轻松集成 AJAX 请求和 JS 操作(请参阅goog.History)或大量出色的小部件之类的事情他们提供(参见goog.ui 包)可以帮助我们所有人构建更棒的 web 应用程序;)!
它带有与 Java 集成的模板功能(谁说GWT?),所以这也可能是 Closure 的另一个优点。
最后,它看起来非常易于使用。语法可能比简短的 $ jQuery 函数更冗长,但使用 IDE 和自动完成,这不是一个真正的问题。此外,我想说我们可以期待与来自 Google 的 Eclipse 等 IDE 的良好集成。
编辑:根据要求,让我对 GWT 参考说几句话。Google Web Toolkit 是一个 Java 库,允许创建支持 AJAX 的 Web 界面并生成(和优化)所需的 JavaScript 代码。由于 Google Closure 允许创建可以在客户端和服务器端(使用 JavaScript 和 Java)使用的模板,我的猜测是很快就可以联合使用它们(如果还没有的话)。
在我对 API 的简要介绍中,我发现 jQuery 和 Closure 之间的差异非常显着。
jQuery 基本上只是一种以跨浏览器的方式进行许多频繁操作的简化方式。
Closure 是一个非常新的框架,因为它们提供了一种跨浏览器的方式来使用<canvas>
标签,例如,它们添加了新的事件。
所以,这增加了我们通常用 javascript 做的事情,他们正在接受人们想做的许多操作并将它们放入 API。
例如,他们有一个事件来判断在线状态是否发生了变化。这样您就可以判断系统是否在线。
他们拥有使用 Google Gears 等工具的 javascript 函数,这延续了他们扩展了可以使用 Javascript 完成的功能的事实。
我需要几天的时间来消化所有的变化,但我可以看到这可能会对可以开发的 Web 应用程序产生很大的影响。
Closure Library 的最大优点是专为 Closure Compiler 设计的。这为 JavaScript 开发开辟了全新的可能性……
编译器有几个很酷的特性:
有关详细信息,请查看: http ://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html
编辑:看看这个 youtube 视频,它可能会更好地回答一些关于 Google Closure 的问题。
关于 google 关闭的最佳信息来源可能是项目讨论组、wiki、文档页面、演示和Michael Bolin 尚未完成的书,现在可从 safari 图书网站获得。
一件事我可以马上告诉 - closure
vs有一个更陡峭的学习曲线,jQuery
但由于库的庞大、清晰的组织以及与编译器和模板工具一起使用它的好处,它可能非常值得。
closure
根据迈克尔·博林的说法,图书馆在这方面更像是dojo
,jQuery
而且一些概念是从 那里借来的。dojo
google 闭包编译器使用JSDoc
文档系统,该系统同时(如果由程序员正确创建)提供文档并能够在编译时捕获许多错误。
虽然函数名称比jQuery
's 更冗长,但编译器会缩减代码(使用各种优化策略),并且类型检查将节省大量调试代码的时间,因此输入较长名称的时间可能不是问题。同时,较长的名称增加了可读性。
库支持在 quirks 模式下运行的浏览器,以便其他站点可以使用“quirky”html 嵌入脚本
库使用(但不依赖于)一个名为的 javascript 模板系统soy
,该系统简化了用内容填充文档的过程。
像jQuery
google一样closure
,允许使用库的专用组件通过基于字符串的查询来遍历 dom 结构。
closure
库更依赖于点分隔的命名空间Java
——一个非常强大的组织特性。
使用这样的命名空间会在未编译的代码中产生开销,但在编译的代码中,这些东西会被短变量名替换。
我刚刚发布了一篇关于 Google Closure 的非常详尽的文章,它在insideRIA上回答了这个问题。
...关闭规则!^_^
我感谢 Google 对开源社区的大部分贡献,我确信它有一些很酷的东西,但总的来说,我发现 Closure 笨重、过度劳累和不优雅。如果你必须把所有东西都变成 Java,我想它是彻头彻尾的漂亮。
编辑:
很公平。我真的没有比较。Closure 就像一个巨大的仓库,里面有你可能想要的所有可能的工具……某个地方。有点像 .NET 或大型 Java 库。一旦你找到了你需要的东西,你就可以找到高度具体的东西来完成高度具体的工作。然后在生产中,您可以去除所有的杂物。
另一方面,JQuery 更像是一种易于修改的声波螺丝刀。
Google Closure Library 允许您编译和优化您的 JavaScript。它不是像 jQuery 那样的库。jQuery 为您提供了可以让您更快地编写自己的 javascript 的功能。
Google Closure 将帮助您将自己的 javascript 代码最小化,以便通过 Internet 更快地交付。
长话短说,Google Closure 是一个工具,而 jQuery 是一个类似于 Prototype 的库。