Last 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.
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.
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:
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
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.
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.