This post was originally published at A Fond Farewell to YUI

Farewell to YUILast week, Yahoo announced they are immediately stopping all new development on their Yahoo User Interface (YUI) library. There are tens of thousands of YUI developers that have written millions of lines of code that are probably sad to have read this, but I am sure they also understand the rapidly evolving web development environment that led to this decision. The Sencha Ext JS framework and YUI have a kinship and a long history together, so we wanted to take this opportunity to reflect on our past and discuss what the future holds.

A Brief History of YUI and Ext JS

In the early-to-mid 2000s, the world of web development looked very different than it does today. Internet Explorer 6.0 ruled most desktop computers, but early versions of Firefox, Safari, and other web browsers were emerging and becoming more and more popular. Internet connections were relatively slow, websites very basic and few people thought about interactive ”web applications.“ HTML5, Google Chrome and the iPhone didn’t yet exist.

With the birth of JavaScript libraries like Prototype and jQuery in 2005-2006, web developers could spend less time worrying about the many cross-browser quirks and began to embrace JavaScript for more than simple web form validation and image rollovers.

YUI was first conceived in 2005 and made public in early 2006. YUI became very popular very quickly, not only because it was attached to the name ”Yahoo“ (giving it immediate credibility) but also because it was among the very first JavaScript widget libraries. Developers now had the power to create customizable widgets that worked consistently across browsers — allowing web applications to duplicate much of the functionality of ”native desktop“ applications.

Not long after YUI was released, yui-ext was created, a library of extensions which became the precursor to Sencha’s Ext JS 1.0.

Ext JS Has YUI Roots, But We Took a Different Path

Ext JS 1.0 was first released as a standalone framework in 2007, removing its YUI dependencies. However, wanting to remain true to our YUI roots while offering the most robust development framework to our customers, Sencha continued to ship optional ”adapters“ for YUI with Ext JS as late as version 3.x.

The programming paradigms still used today in Ext JS and Sencha Touch are directly influenced by our history with YUI. YUI was revolutionary when it was first released, being one of the only JavaScript libraries to embrace an object-oriented focus for building applications. The Sencha class system in both Ext JS and Sencha Touch directly reflects this history. Other areas of the Ext JS framework such as our drag-and-drop capabilities, still bear YUI’s influence.

But while Ext JS and YUI have a shared history and similar paradigms, Sencha firmly believed then, and still believes today, that our destinies were and are very different. Our strategy at Sencha is to continuously modernize our framework and update our platforms with the latest features and functionality to improve the productivity of large enterprise development teams.

The Future of Enterprise Web Applications

Yahoo’s recent announcement explained their rationale for decommissioning YUI:

…it has become clear to us that the industry is now headed in a new direction… JavaScript is now more ubiquitous than ever. The emergence of Node.JS has allowed JavaScript to be used on the server side… New package managers (npm, bower) have spurred the rise of an ecosystem of third party, open source, single-purpose tools… New application frameworks (Backbone, React, Ember, Polymer, Angular, etc.) have helped architect web applications in a more scalable and maintainable way…

The consequence of this evolution in web technologies is that large JavaScript libraries, such as YUI, have been receiving less attention from the community. Many developers today look at large JavaScript libraries as walled gardens they don’t want to be locked into.

Most of these things are true, and in many ways they’re great for the Web. JavaScript is being used everywhere, and every day we see new and exciting projects being created. HTML5 is more powerful and promising than ever before.

However, the simple fact that so many new, disparate and unconnected libraries have emerged recently is very telling. The pendulum in web development might be swinging towards lightweight libraries as good starting points, but clearly there is disagreement about even a minimum set of critical/necessary end-to-end development features and the ”best“ way to implement them.

The Modern Web Stack

When we talk to many of our customers and partners, we consistently hear that the third party JavaScript stack is problematic in the enterprise. For certain kinds of application experiences (e.g. a pure content application that targets modern browsers, written and maintained by a solo developer) the answer may be that no framework is needed at all. On the other hand, for a portfolio of complex and interdependent enterprise apps developed by large, dynamic and geographically dispersed teams, the answer may be to adopt a single, standards-based framework across the organization.

AngularJS is beginning to emerge as one of the most popular JavaScript libraries today — and while it is a great library, you must keep in mind that it is relatively incomplete if you are trying to deliver a large portfolio of enterprise-grade applications (see chart below). Its own website boasts that ”AngularJS is a toolset for building the framework most suited to your application development,“ so enterprise developers must assemble the rest of the required functionality from various third parties.

image

While this certainly provides the most customized solution, there are also a number of significant short-term and long-term issues with this strategy. Without a common architecture or coding style, testing and maintaining the stack becomes difficult as the homegrown ”framework“ grows over time. Each independent library can bring a subtly different interpretation of ostensibly similar functionality. And most importantly, the development team will face multiple release cycles that are unsynchronized with each other — not to mention the risk that a vital piece of the stack will be abandoned by its maintainer.

These are the significant (and clearly known) business risks for enterprise development managers and CIOs to consider when selecting a provider with fickle interests. Or, when assessing the myriad of new micro-frameworks that might attract the attention of individual developers who may not be aware of downstream maintenance costs.

As an alternative, Sencha provides a much more comprehensive framework (see chart below). The Sencha Ext JS framework offers a very broad selection of basic and compound widgets (over 150), a high-level visualization package as well as a lower-level drawing API; a rich package of containers and themes, and a well-thought-out view system. Our framework also offers an architectural package for MVVM and MVC, ARIA support, RTL support and more, all with a single coding style.

All of these capabilities are engineered and tested to work together, professionally maintained and updated in a synchronized fashion. In addition, the Sencha offerings are backed by a flexible set of Training packages, a dedicated Tech Support team and a deeply experienced Professional Services organization.

image

Sencha believes that the cohesiveness of unified frameworks like Ext JS provide greater value to enterprise development teams than an aggregation of disparate multiple third party libraries — but we also acknowledge that no framework or library is perfect for every project or every organization. For a more thorough analysis of challenges faced by web application developers, please download our whitepaper: The Modern Web Stack: A taxonomy of front-end technologies as an aid to decision making.

Looking into the Future

Given our long history with YUI, we are certainly sad to see an old friend go. We remain more convinced than ever that feature-rich, enterprise-focused frameworks, such as Ext JS and Sencha Touch, are the best tools to help enterprises effectively and efficiently deliver powerful, long-lived web applications that extend across desktop, tablet and smartphone platforms.

Sencha is fully committed to HTML5, and we are more excited than ever about the future of the Web. Ext JS 5 was a huge step forward for our framework, and we continue to see significant growth in our user community and customer base. More than 60% of the Fortune 100 now use our products, solidifying Sencha as the top choice for building business-focused enterprise applications with web technology. If you’re new to Sencha, you can download a 45-day free trial of Ext JS.

Looking towards the future, Sencha has many more ideas that will dramatically enhance how organizations design, develop, test, deploy, and manage their critical business applications. Sencha Space, our application deployment and management solution is an advanced platform for securely deploying mobile apps and delivering a consistent user experience. Users can launch any mobile web app or HTML5 app in a secure, managed environment. We look forward to presenting all of these ideas to you and more at our upcoming SenchaCon in April 2015.

So, a fond and final farewell to our good friend YUI — we understand and will not forget the significant role played in accelerating the capabilities of Web-based application development technologies.

.right, .alignright float: right; margin: 0 0 10px 10px;
.left, .alignleft float: left; margin: 0 10px 10px 0;

Jump to original: 

This post was originally published at A Fond Farewell to YUI