For a long time now I've been meaning to write about the seemingly ubiquitous JavaScript Badges/Widgets/Thingies that you see on blogs and web sites everywhere. Heck, I even have one on my site right now (over there--on the right).

But you'll notice that I have only one (MyBlogLog). It's one more than I'd like to have, but it's quite compelling. These JavaScript and, to a lesser degree, Flash droppings have annoyed me for a long time.

Why?

They're a hack. With all the talk of how the web has "become writable" with advent of blogs and self-publishing tools, you'd think that we'd have a better way of getting third party content on to our sites. Given that an overwhelming number of sites that are likely running PHP or some other "dynamic" hosting setup, these least common denominator solutions just feel wrong. (This could easily be followed by a rant on problems with the spread of web services and RSS.) Search engines. Unlike most other forms of on-line publishing, these little gems convey little if any information to search engines. In the old days (meaning "just a few years ago"), we used to actually link to things we found interesting. Search engines were able to mine that aggregate data to help make decisions about popularity and importance. But when it comes to search, these JavaScript and/or Flash creations might as well be invisible. They benefit individual readers but really don't contribute to the web in general. They're little data islands. Site performance. Look no further than Mike Arrington's TechCrunch Down. I�m Pissed. to get a sense of what can happen. "...we have a lot of third party widgets, ads and analytics apps running on the site. They are often the cause for slow load times." Hard to skin. Seriously. The vast majority of people using them can't figure out how (or don't even realize it's possible) to modify their appearance. The result is that those who use lots of them end up with sites that look reminiscent of MySpace. I'm not saying that I don't enjoy Fred Wilson's blog (note also its loading time), but let's just say I'm glad I read it in an RSS aggregator most of the time. (No offense, Fred. I know you like to experiment a lot with these things. I get that.) They're not secure. Every time you drop a new JavaScript include on your site, you're giving a third party access to a wealth of information about your site visitors, your content, their clicks, and so on. They can modify the page, snoop on your users, re-write your links, and do all sorts of nasty stuff. Granted, this is rare in practice, but how do you really know that? Don't work everywhere. People love the simplicity of "paste this in and you're done" but the reality is that these things don't work everywhere. Larger sites, MySpace being the canonical example, recognize the security and performance problems associated with these things and have banned them outright.

If it's not obvious by now, I use them very sparingly on my site. I think long and hard about whether it's really worth it before I get yet another party involved in the performance and security of my site.

Anyway, I just waned to get that off my chest and have something I could point to when I object to these in the future. But at the same time, I also realize that these things are here to stay and they're an increasingly important part of Yahoo's business. That doesn't mean I can't object on semi-elitist technical grounds, right?

What I'd really like to see is this: For every badge/widget/gadget out there, I'd like to see a discoverable API that allows me to get the same data via a simple REST based API that emits RSS (with extensions where it makes sense). The link to get that data should be rendered on the badge. Think of it as a "View Source" for badges.

Then we could plug the data into Pipes to do all sorts of intersting things.

Now it's your turn to call me an idiot. Or a hypocrite for using a JavaScript based advertising system (or embedding YouTube videos) that could be considered a JavaScript widget (using a somewhat liberal notion of "widget"). You have my permission. :-)

Posted by jzawodn at February 12, 2007 07:54 AM