The Yahoo User Interface (YUI) library has been abandoned. In a brief announcement made on August 29, 2014, Director of Engineering Julien Lecomte stated that all development would cease with immediate effect.
What is YUI?
yuilibrary.com describes the library as:
- DOM and event handling;
- MVC application frameworks;
- Data structures;
- Helper utilities and functions;
- Developer tools;
- And HTML widgets such as auto-complete fields, calendars, charts, data tables, sliders, tab controls and more.
The library is supported by a considerable volume of documentation and community forums.
YUI was founded by Thomas Sha of Yahoo in 2005 and formed the basis of Yahoo’s new Ajax-ified webmail application. The free, open source library was made available to the public in February 2006.
YUI 3.0 was released in 2009. The new version was largely rebuilt to modernize the library, introduce jQuery-like CSS DOM selectors and modularize the components.
YUI Pros and Cons
On the plus side, YUI is a complete solution for building cross-browser web applications which (mostly) work in IE6 and above. It has also given us some great side projects such as the YUI Compressor.
However, the library possibly became too big and too complex. YUI locked you in and functionality was abstracted from the programmer. That’s fine when everything works but a development nightmare when it doesn’t.
Finally, there were complaints about Yahoo’s willingness to accept pull requests from contributors outside the company. I’m not wholly surprised given the number of critical Yahoo applications which depended on YUI.
Why has YUI Been Dropped?
Julien Lecomte admits the industry is headed in a new direction:
- Build tools such as Grunt, Gulp and Broccoli allow us to assemble smaller modules into larger applications.
- Frameworks such as Angular, Backbone and Ember approach application development in a more scalable and maintainable way.
- Vendors and standards bodies are working together; there’s less need for custom widgets on legacy browsers when HTML5 can be used.
Developers rarely require a single, catch-all library. YUI interest waned and usage dropped accordingly.
I also suspect there were internal pressures in Yahoo. The company’s focus has changed: there’s less emphasis on cool developer projects and more on profitability and survival.
But I Depend on YUI!
Yahoo’s announcement gave no warning but there’s little need to panic. YUI is still available and will continue to work for the immediate future — presuming your application has been successfully completed.
The situation is less clear for partially-finished projects. Should you continue to develop an application based on a defunct library? It will probably depend on the size of the task, how much work has been completed and your reliance on YUI. You should certainly be discussing the options and, fortunately, there are numerous alternatives to choose from. Just don’t expect to find a simple drop-in replacement.
A Lesson for Us All?
It doesn’t matter which third-party library or framework you use: it will be discontinued at some point. Yes, even jQuery and Angular. That’s not necessarily an argument for developing your own system — even your own code will eventually be superseded.
IT moves rapidly and the web is one of the fastest evolving technologies. It’s increasingly difficult to keep up with advances but doing something is infinitely better than doing nothing. Pick a technology stack and stick with it while it’s practical to do so.
So goodbye YUI. The web has lost one of it’s more innovative endeavors but, like many, I wasn’t using it anyway.
Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.