Wednesday, July 8th, 2009
Ouh, shiny! BBC’s Glow is finally out
After being rumoured and showcased at @media Ajax 2008 by Jake Archibald in a pretty epic presentation (audio) the BBC now finally went through all the red tape needed and Glow is available as open source.
Glow is the BBC’s own JavaScript library and in use on their sites. The reason to build an own library instead of using YUIjQueryan existing one was the BBC’s user base and guidelines:
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.
This was quite a cause for discussion at @media Ajax and felt a bit backwards-facing. Later this year the same problem came up at the Ajax Experience libraries panel – it is a hard question to answer when it is time for libraries to stop supporting old browsers when support means hacking the experience instead of progressively enhancing it.
One thing is for sure though: Glow has a great benefit – the Beep is dependent on it, which means maintenance and improvement is a given. Have a go:
My hat is off to the team and the BBC for going down this route and embracing the open source community and the idea of sharing the internal goodies with the world to make them better.













I’ve got a blog post ready about some of the technical details, but BBC rules (or something) mean it can’t go out just yet. They’re probably vetting it.
.
I’d like 1.5 to be viewed as a “here’s what we have already, how should we improve it” release, 2.0 is the next release where we can break backwards compatibility so we’re wanting to gather enough opinion to make Glow 2.0 really brilliant.
.
Jake Archibald
Looks like a great js library.
Love the documentation.
But did we really need another one? The others are open source why not spend the time working with/on them making them more compatible if you really need to support such old browsers.
Plus if you’re making it degrade gracefully then I don’t see any problem in using something like jQuery which supports a good 98% of the browser share.
@jdempster
There are legal reasons the BBC needs to support certain browsers, especially if the user has to pay to upgrade, which was the case with using on osx 10.3 using Safari 1.3. Although thankfully Safari 1.3 numbers are insignificant now.
Our library has to contain code that jQuery doesn’t to deal with these browsers. If jQuery had it, it would be (to some extent) slower and larger, and I’m sure they don’t want that.
Basically, if everyone wanted the kind of browser support & accessibility that we aim to have, then I’m sure jQuery and YUI would have it too. So Glow is the option for people who have similar requirements to the BBC.
The BBC just won the game.
Nice Safari 4 denial-of-service demo on the “Forms with Widgets” page.
@spyke – We’re investigating that at the moment. It’s not very consistent in failing. We’ll probably take down that demo page shortly while we look into it. Say sorry to your Safari 4 from me.
Well I am glad to see where my licence fee money has gone /sarcasms. Just listened to the audio and can’t help but disagree. The reason they have not used say jquery is as mentioned lack of support for Safari1.3. The general idea is that if such a user navigates to the bbc and something does not work correctly they blame the bbc.
Can’t help but think this approach is all wrong. Surely apple should not be charging for a browser update and even if they do Firefox is free and works on macs.
While developers continue to jump through hoops to support every none standard browser out there then there will never be a true crossover to everyone using standard compliment browsers.
Also there are plenty of places on the bbc site that use flash when it could of been avoided (especially radio1 site) and this does seem to be a problem to them.
Bravo for making it available, but for me this javascript library is coming way to late to be particularly exiting.
The Safari denial of service is neat. Could be caused by the confused JS includes:
“gloader.0.1.0.js” is loaded twice (gzipped) and another file “gloader.js” is also loaded. (not gzipped)
They all seem to contain the same code… Maybe Glow requires to be initialized 3 times? :)
@McDaid Asking people to change their browser to Firefox is a breach of impartiality, the BBC must be impartial.
Instead of creating a library, you could just made your page degrade gracefully on the unsupported browsers.
But what percentage of users still use Safari 1.3 or IE 5.5? I’m guessing it’s minuscule.
That’s about the dumbest reason to create a javascript library. First off, you should never create a page that “relies” on javascript. Client-side scripting support should be seen as a luxury and/or enhancement to be layered on top of an existing document (HTML) and presentation (CSS). Otherwise, you are putting requirements on a user’s experience that will eventually disappoint those who cannot support it.
Shame on the executives at the BBC stand by this reasoning.
@jaffathecake
Good point, but then listening to the audio I wonder just how impartial the bbc is anyway.
About 30mins into the audio the guy talks about optimising code and using the node.contains? an IE proprietary function, this is checked first because the “bbc has more IE users”. Further browser sniffing is then needed because of a problem with Safari2.
So the code is being optimised for IE which is hardly impartial and I personally don’t like the philosophy. Jquery has now done away with browser sniffing and seems to be better geared for future proofing.
The library looks nice, but I agree with the sentiment expressed by other commenters regarding graceful degradation.
When I’m designing an app, old browsers with less than 2% market share are served plain HTML. If someone is using a browser that old, they don’t need anything fancy, and I don’t need to spend trying to come up with hacks.
I had to chuckle when after reading the reasons for creating such a library I visited the editor page: (http://www.bbc.co.uk/glow/docs/1.5/furtherinfo/widgets/editor/) only to see a list of known issues as to why it doesnt work on a range of browsers!
Dont get me wrong im all for frameworks that enhance users experience but I do feel that the extra effort and resource that the BBC have, maybe working with an existing library would have been a bigger benefit… but then I guess you have have been seen as impartial!
I think a bigger problem than old browsers are mobile browsers. Web sites often work better with old broken desktop browsers than with new shiny mobile browsers. Is there any BBC discussion about this growing (rather than shrinking) problem?
Glow suggests that I check out the API documentation and gives me a link to this stylish 404. http://www.bbc.co.uk/glow/docs/articles/glow/docs/1.5
great effort. but seems to me 1 step forward, 2 steps back.
Well, I like it. All of you can just shove off. :P
This is the correct url for the API docs: http://www.bbc.co.uk/glow/docs/1.5/
It’s found right on the main Glow page.
@TheJase
Urm, we’re not suggesting making pages require javascript, quite the opposite. The whole library is built to support progressive enhancement of content on the page.
Building a page that required javascript would require an exemption from BBC standards & guidelines.
@McDaid
I’m the guy in the audio, you can have fun counting how many times I say “urm”.
Serving the browsers our users use isn’t what I mean by being impartial. If being impartial meant not catering for the quirks of browsers we wouldn’t be helping users of our library much.
Code is optimised for the browsers our users use. If making it 50ms faster in IE makes it 1ms slower in Chrome (which is bloody fast anyway), I’d be happy with that, considering the market share of both browsers.
@WillPeavy
2% may be proportionally small, but that’s still a large number of licence fee paying users for the BBC.
@jaffathecake
Thanks for the feedback.
Despite the urms it was a good talk, I liked the Northern Humour!
“It’s found right on the main Glow page.” Yes, I found it. Just thought it was amusing that they had the link wrong on their own site.
If the BBC are saying they’re happy to support whichever technologies the licence fee payers wish to use, when can I expect support for Ogg Theora and Ogg Vorbis in the iPlayer? Considering how popular Firefox is, this must surely be a top-priority feature.
@randomrandom
I assume you’re joking, but just in case you’re not…
There’s a big difference between using something because you wish to, and using something because you have to.
I couldn’t, for instance, download NN3 and start demanding that the BBC should support it.
When it comes to browser support the BBC give more weight to users who cannot upgrade their browser. So, we could end up supporting browser A but not B, if many users of A cannot upgrade, even if there are a greater number of users using browser B.
With your Ogg Theora example, we’d be benefiting users of very modern browsers without Flash. However, this number is extremely small and I’m not aware of a case when users may be ’stuck’ in this configuration.
Also, I’m sure our DRM overlords would spontainiously combust at the thought (I don’t work on iplayer so my opinion is personal here).
I’d say that iPhone users have a very modern browser stuck without Flash. I’m a bit surprised that you would use Flash movies. Do you serve something other than Flash to iPhone users?
Good example. Yes, iphone gets special treatment. MPEG4 I believe.
Well, BBC wanted their own framework for whatever reasons, they built one, used it, thought it would help others and open sourced it. Now, it is up to the developer community to see if it is any useful. I am not particularly excited about anything about Glow that I can’t find in jQuery, Dojo or MooTools, all of which are being used in one or the other project I am working on. So, IMHO, the discussions should be, “What’s good in Glow” v/s “Why did BBC develop Glow?”
jaffa: no, I’m serious. You said earlier that “Asking people to change their browser to Firefox is a breach of impartiality”, yet you (the BBC) are happy to ask me to install Flash, which is really no different. In fact it’s worse as Flash is proprietary and closed, whereas Firefox isn’t. By the way, almost all of my clients (public sector and military) are not allowed to use Flash or other plugins, so I know for a fact many users are ’stuck’ without it – at least as much as anyone can be considered stuck with IE6.
The DRM argument makes no sense to me. All of this stuff is broadcast for free over the airwaves, loads of non-geeks now use digital recorders, and the iPlayer isn’t in any way secure as it stands (I use the get_iplayer script which pretends to be an iPhone and lets me have any TV/radio off it for keeps, though sadly the TV comes as .mov).
Anyway, sorry to have a go at you and feel free to ignore as I realise this is nothing to do with you. Glow looks like a great technical achievement and I think it’s great that the BBC are willing to open source stuff like this and Dirac.
Congratulations on the framework release…
Just out of curiosity – “Yes, iphone gets special treatment. MPEG4 I believe.”
.
Interesting… is this also consumer-dictated? I have a HTC Touch pro / WM6 with Opera and a prototype version of flash installed. Yet I get no MPEG4 and no degradation – just no videos at all–it does not like the flash version either…
.
how does policy get set on mobile platform and browser support? I realise I am the equivalent Safari 1.3 user here but still–is there a way to feed this back to the powers that be?
Kudo one shot for BBC. Bringing back the ideals in open source. Probably will be a great library, but that is yet to be seen.
Btw, in the article it says “the Beep is dependent on it” when it should say “the Beeb is dependent on it”
Hmm, a wider support of browsers versions is always good.
Though creating 1 framework to rule all is madness, code will constantly break each time the browsers go up a generation.
Instead… Look at dynamic loading of js libraries.
create 1 library for crappy old browsers and 1 compliant library for modern browsers. If the dynamic loading is handled properly, you will NEVER ever have to update the crappy browser library (unless adding new functionatlity ofc).
Nay, whilst the effort is admirable and deserves a serious pat on the back, glow isn’t really the best decision, it will be maintenance hell.
SPLIT IT UP before you get into a real mess!
@BenGerrissen I agree and disagree. If they use feature detection then maintenance is less of a mess. Also I have noticed that bugs from older browsers seem to present themselves in fresh ways on newer browsers so what I initially thought of as added bloat has turned out to solve problems in more than just old browsers.
My theory on JavaScript libraries and browsers is that the tables have turned. The defacto huge JS libraries (especially jQuery) are so heavily used (including by Microsoft), that new browsers and new browser versions will accommodate how jQuery works, not the other way around. If a nightly breaks jQuery some way, the browser maker hears about it.
I’ve never seen feature detection as anything more that a slightly-more-clever browser detection that is still likely to break somewhere along the way. The real solution here is already happening–jQuery (and Prototype, Dojo, MooTools) have a small enough code base and are used in so many places they they are future-proofing themselves just by becoming nearly ubiquitous.
Take Chrome as an example. Chrome made a huge effort to “work with the web as it existing,” testing against real-world web sites. A lot of them have jQuery. So if I use jQuery, or if code the way jQuery is coded, I’m more safe than if I make an effort to follow “standards.” And that’s simply because if a browser breaks on jQuery, the browser, not jQuery, looks broken and unstable.
@jaffathecake – thank you for taking the time to reply.
“2% may be proportionally small, but that’s still a large number of licence fee paying users for the BBC.”
When you get into the “under 2% old browser” category, we’re talking about browsers like IE 5.5 and Fx 1.5. My point is that I doubt most users running a browser that old even want something beyond a basic HTML site, anything more is probably too expensive for their system.
The BBC is known as the “Beeb”. Not the “Beep”. Think about it.
DOA. Broadcasters should stick to broadcasting. There are enough worthless JS libraries to begin with (e.g. virtually every one mentioned here.)
@Nosredna:
Browser developers do not bend for JS libraries. They break them. The idea that jQuery is future-proof because lots of clueless developers use it is ridiculous. As we have seen, it doesn’t even work in the present.
And your users will not blame their browsers. They don’t know anything except your site doesn’t work (and they sure don’t know what jQuery is!)
It’s just a lot of yank posters not understanding what the BBC’s remit is. Don’t worry about it.
Anyway. ITV used jQuery and really screwed it up.
This: http://www.itv.com/TVGuide/ is horrible.
using jquery and gracefully degrading for old browsers makes much more sense than creating a new library.
where can i vote with 0 stars? :>
Another point of the library from my time on the BBC iPlayer was to raise the level of in house JavaScript expertise, to help build the next generation media platforms and sites.
It worked. The knowledge these guys passed on accelerated what the BBC can offer which will continue to trickle down to the developers and most importantly, the users of the sites.
Awesome work Jake & co.
With the changing trend of the world, wedding apart from white,Princess Strapless Satin Evening Dress ivory, beige and other traditional colors,are also increasingly popular in recent years, ghetto prom dressespink wedding package,gothic prom dresses such as pink, pink orange, baby blue, purple night, light green and light silver-gray, very soft and pleasing to wedding hair accessoriesthe eye; if you have the courage to try, dark green, purplish red, deep purple, decorated in pink wedding dress, the formation of rich colors,the dress, the effect is very special;Sash Lace Satin Flower Girl Dress, laden with flour colored silk flowers, butterflies, in order to add color.wedding dressIn fact, the wedding is the color of lesser importance, the most important prerequisite is to match the bride’s complexion. Oriental deep and yellowish color, wearing white Mermaid Satin Organdie Wedding Dress,will appear dull, wearing ivory would be more harmonious and natural, baby blue, wedding accessoriespurple night can not be coordinated with the yellow, but pink orange, light green with yellowish color match. As for the skin and rosy, or bronze skin, wearing white will look great, wedding dress
The principal concern whenever lifting heavy objects on an uneven
surface is to ensure stability. The basic wedding dresses esign premise of
a cantilever hoist is to include a heavy counter weight that opposes
the load and ensures longitudinal seostability in use.
This use of a counterweight is backed up by a relatively wide chassis
on fully lockable 8 inches by 2 Electric hoist inches phenolic
casters.Whenever you need to be able to electric hoist or lift a
weighty object from the floor onto a higher level, having a lifting
system chain hoist that you
can rely on is essential. Unfortunately, there are always situations
where it is simply not possible to use conventional chain block lifting gear such as
jibs or fork lifts, and under these situations, when it is Snatch Block necessary to be able to raise a
weight quickly, then a cantilever hoist is often the best choice.
A wedding dresses is always
expensive. Every couple will agree on this.When you are planning for
your wedding, you will probably find that every item can be very
expensive. This is especially true when it comes to the wedding dress.
You may think that there is no way for you to get a Wedding gown dresswhich is
elegant and at the same time cheap. However, I can tell you that there
are some ways to save money on this item.
So, the question here is how to make your white wedding dressinexpensive.
In fact, one thing you need to understand is that it is totally
possible for you to find a cheap
wedding dress which is also elegant and beautiful. You do not need
to sacrifice the quality just because you will need to search for cheap wedding gowns items.
As a matter of fact, one of the ways to get a bridal gowns is to wear the one
your mother wore when she got married. The point here is that you will
be wearing a bridal dresses
item and it will certainly be very stylish.
Glow has a great benefit – the Beep is dependent on it, which means maintenance and improvement is a given. –> This is the most cheap wedding dresses.
My hat is off to the team and the BBC for going down this route and embracing the open source community and the idea of sharing the internal goodies with the world to make them better. Wedding dress.
plus size wedding dresses