比较YUI和Ext JS

6

我已经使用了一段时间的Ext JS作为我的富文本工具包,但是我正在考虑转向YUI,部分原因是它更加自由的许可证。

YUI中使用的组件导向模型似乎与我在Ext JS中喜欢的模型非常相似,但我对这些相似之处的深度很感兴趣。因此我想听取那些同时使用过Ext JS和YUI的人的反馈。什么相同,什么不同?如果转向YUI,我会失去什么,我会得到什么?

7个回答

10

我认为这两个库实际上解决了不同的需求。

YUI旨在满足雅虎公司的需求。它非常擅长构建公共界面应用程序,其中优雅降级、干净的标记和可访问性非常重要。

ExtJS是一个非常好的、设计良好的全面RIA框架,专门针对线下业务应用程序。它具有非常强大的网格组件、稳健的布局和良好的专业外观和感觉。

我使用过这两个库,尽管只使用过YUI 2.7.0,并使用这些框架构建了多个全面RIA。

将现有应用程序从一个库更改到另一个库会相当困难,因为尽管它们有一个共同的祖先(ExtJS曾经是YUIext),但这些框架现在已经非常不同了。


关于面向公众和工作应用程序的有趣观点。到目前为止,我们一直在使用ExtJS进行内部开发,但是我们正在考虑将其用于面向公众的应用程序 - 看起来我们可能需要选择YUI。 - Spike Williams
1
这就是我所谓的底线,它不必像那样(我相信ExtJS的人会这么说),但是像YUI和jQuery这样的框架似乎更适合公共界面。 - Gareth Davis
1
这是一个非常有趣的观点,我完全同意。现在我已经更多地使用ExtJS,我记得曾经尝试在我们的业务应用程序中使用YUI的日子,我认为它很好而且相当成熟,但是很难让它处理你可能想要在业务应用程序中的所有小事情。 YUI相当成熟,但他们并不完全针对同一群人。 - SBUJOLD

3
一个主要区别是YUI采用非常宽松的BSD许可证进行分发,而ExtJS采用非常有争议的GPL许可证进行分发。例如,根据Sencha对GPL的解释,如果您编写了一个SOAP或REST接口专门与ExtJS前端交互,则您的服务器代码必须是GPL,并且您必须提供源代码,因为您通过授予Web访问权限而“分发”了它。Sencha确实为其代码提供商业许可证,但如果您仔细阅读他们的文档,您会发现当您切换到商业版本时,他们不允许您将针对GPL Sencha编写的代码转换为另一种许可证。(http://www.sencha.com/legal/license-overview)
简而言之,如果您的代码需要与专有业务逻辑或商业许可系统集成,则必须从一开始就使用Sencha的商业版本进行开发。

2

对于我来说,YUI非常轻巧灵活,而ExtJS则更加沉重,足迹更大,并且使用方式更为死板。如果你在JavaScript中知道自己在做什么,想要扩展自己的能力,那么YUI非常适合你;但如果你想要一个不用太多麻烦就可以使用的UI抽象层,那么ExtJS是个不错的选择......但如果你确实想让它做一些它没有被设计去做的事情,那么这可能会是一件真正的苦差事。


Ext非常灵活和强大,如果您知道如何使用它,它绝对不是“死板”的。我认为更公正的说法可能是它有一个更陡峭的学习曲线,但在我看来,它是同样强大的框架。 - Brian Moeskau

2

在构建最近的应用程序时,我也面临了选择YUI或Ext JS的决定。

最终我选择了YUI,原因如下: YUI 3对于简单任务来说非常轻量化和快速,并且惰性加载使事情变得更加快速。

优雅降级对于这个应用程序非常重要。

在YUI 3中使用YUI 2小部件相当容易,而3.1版本即将发布,这将使事情变得更加容易。

YUI文档令人难以置信,IRC聊天和论坛非常有帮助,实际上有来自YUI开发团队的人员。


2
在所有应用程序都迁移到Web的时代,Gareth在公共面向和业务应用之间划清界限对我来说已经没有意义了。我更喜欢其他答案,比如Robusto的答案,并从技术和财务角度比较两种框架。
YUI优点:
- 免费 - 轻量级(HTML + JavaScript) - 更高效 - 更易学易懂 - 更好的文档和示例 - 更大的社区
Ext优点:
- 更丰富的功能和组件 - 一些(未记录的)服务器端驱动程序(如.NET)(尽管在服务器上使用这样的库似乎是不好的设计)
结论: 如果您的网站不需要Ext提供的额外功能,请选择YUI。

在YUI中,“免费”是第一个优点,而在ExtJs中,“未记录”的部分也有一个优点(但我只能投一票) :) - Radu Maris

1

我还没有使用过ExtJS,仍处于学习阶段,但就我所能做的而言,我相信即使是一年前我在做很多YUI开发时,使用ExtJS也会更具挑战性,结果也不会像现在这样流畅。

这并不是说你不应该使用它,但我的建议是要进行一些严肃的研究和良好的原型设计,以查看您拥有的某些现有功能是否适合YUI。不要仅仅基于示例和“看起来可以”的感觉。


1

在GPLv3中,它规定只要您的用户都属于同一法律实体,您就不需要共享源代码。技术上的措辞是这样说的,如果他们不属于同一法律实体,则需要提供源代码。但这并不意味着Sencha以后不会更改许可证。这也不意味着他们会这样做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接