我认为这两个库实际上解决了不同的需求。
YUI旨在满足雅虎公司的需求。它非常擅长构建公共界面应用程序,其中优雅降级、干净的标记和可访问性非常重要。
ExtJS是一个非常好的、设计良好的全面RIA框架,专门针对线下业务应用程序。它具有非常强大的网格组件、稳健的布局和良好的专业外观和感觉。
我使用过这两个库,尽管只使用过YUI 2.7.0,并使用这些框架构建了多个全面RIA。
将现有应用程序从一个库更改到另一个库会相当困难,因为尽管它们有一个共同的祖先(ExtJS曾经是YUIext),但这些框架现在已经非常不同了。
对于我来说,YUI非常轻巧灵活,而ExtJS则更加沉重,足迹更大,并且使用方式更为死板。如果你在JavaScript中知道自己在做什么,想要扩展自己的能力,那么YUI非常适合你;但如果你想要一个不用太多麻烦就可以使用的UI抽象层,那么ExtJS是个不错的选择......但如果你确实想让它做一些它没有被设计去做的事情,那么这可能会是一件真正的苦差事。
在构建最近的应用程序时,我也面临了选择YUI或Ext JS的决定。
最终我选择了YUI,原因如下: YUI 3对于简单任务来说非常轻量化和快速,并且惰性加载使事情变得更加快速。
优雅降级对于这个应用程序非常重要。
在YUI 3中使用YUI 2小部件相当容易,而3.1版本即将发布,这将使事情变得更加容易。
YUI文档令人难以置信,IRC聊天和论坛非常有帮助,实际上有来自YUI开发团队的人员。
我还没有使用过ExtJS,仍处于学习阶段,但就我所能做的而言,我相信即使是一年前我在做很多YUI开发时,使用ExtJS也会更具挑战性,结果也不会像现在这样流畅。
这并不是说你不应该使用它,但我的建议是要进行一些严肃的研究和良好的原型设计,以查看您拥有的某些现有功能是否适合YUI。不要仅仅基于示例和“看起来可以”的感觉。
在GPLv3中,它规定只要您的用户都属于同一法律实体,您就不需要共享源代码。技术上的措辞是这样说的,如果他们不属于同一法律实体,则需要提供源代码。但这并不意味着Sencha以后不会更改许可证。这也不意味着他们会这样做。