What is Glow?
API Quick Reference
Why did we build Glow?
Previous libraries built by BBC for internal use had been around since 1999, and offered fairly primitive features compared to the range of modern libraries available today. Some were built to support Internet Explorer 3 and Netscape Navigator 3, which gives an indication of their vintage.
In 2007 it was clear that these libraries were in need of attention. The BBC was beginning work to modernise its page layout templates, refresh the design and user experience of the site, and update its browser support standards.
Why not use an existing library?
However, on reviewing the major libraries we found that none met our standards and guidelines, with browser support in particular being a major issue.
Our support standards are based on many factors including usage stats and the upgrade paths available to users. For instance, when we had a significant number of users on Safari 1.3, we refrained from asking them to upgrade to Safari 2 as that would require them to buy a new operating system (OSX 10.4).
At the time we were still fully supporting IE5.5 and Safari 1.3, among others, and we continue to support Safari 2. On top of this, we actively avoid causing errors in our “Level 2” browsers. No major libraries were compatible with these requirements, and there was no guarantee that even if they were, they would not change their policies.
How about contributing to a library?
Perhaps we could have contributed code to an existing library to add support for the older browsers our users had? Many of the libraries had previously supported some of our "problem" browsers, and actively chosen to drop that support. We felt it was unlikely they would be enthused about bringing back old browsers they were probably glad to see the back of!
Forking an existing library to add the necessary browser support was another option, and one that might have had short term benefits. However, as our fork inevitably drifted apart from the parent project we would be left with increasing work to maintain feature parity, or risk confusing developers using our library. We quickly dismissed this idea.
Also, as many BBC pages are built by separate development teams, we needed a library that could work alongside different versions of itself, without encountering namespace issues or CSS clashes. None of the major libraries were capable of doing this.
Why open source Glow?
The BBC has a strong tradition of supporting open source software, we use it widely across many of our platforms and it performs a vital role in our day to day business.
We chose to release Glow now, at version 1.5, as we think it's quite stable and reasonably useful for a variety of users. More importantly, we are beginning to plan what changes to make for version 2.0. We have always sought the opinions and suggestions of our users, the talented developers around the BBC.
Building a wider community to seek their feedback and help us shape the next generation of Glow was an opportunity we couldn't miss.