I swear that half the web is built on jury rigged silliness. Every so often we get a technology shift that comes along that has a profound effect on how we use computers or the Internet. Blogging software like Movable Type or Radio simply write out HTML files based on what you type in a web form. They focused on working with the simplest kind of web space given by ISPs. Because of them and dozens of similar packages, we have blogs. Blogs are trivial; I could’ve written this in college. The result, however, has been a new wave of media that may finally realize the dream of citizen journalism.

RSS, something I’ve been hot on for over a year now, is similarly simple. The aggregator keeps asking the site “give me your RSS feed.” It then checks if something has changed and alerts the user. It does that over and over and over again. It doesn’t actually “know” if something is new, it just keeps asking for the whole feed. Yet, this simple principle (ask, check, pause, repeat) is enabling some pretty cool ideas. It’s also making content sites rethink their core businesses.

What’s even more fascinating to me is the cascade effect of simplicity. The proliferation of blogs (and their frequent and arbitrary publishing schedules) drove (and is driving) the adoption of RSS. Two really simple ideas that taste better together. :)

What makes me feel like an idiot more often than not is that these same simple technologies are often lame for the same reasons they succeed. The simplicity of both blogs and RSS make it easy for people to understand the model. It makes it easier for the creative types and the entrepreneurs to say “eureka!” and put the pieces together. If they understand the pieces, they can use them.

As a software guy, though, these same technologies often seem painful. RSS wastes bandwidth by the truckload. Some sites that feature RSS spend more than half their bandwidth feeding RSS readers constantly asking for the feed, even though the feed doesn’t update. Heck, just imagine the bandwidth wasted overnight if your RSS reader is running. Sites in the U.S. will most likely not update between say, 2 AM local time and 6 AM local time, yet the reader is still going to ask for a file every 30 or 60 minutes.

RSS is also verbose (it’s XML, after all), but we’ll leave that alone for now.

The bottom line is that it works and that the best ideas often focus on enabling the user activity, not worrying over the best or the ideal implementation. It is something I struggle with. The software guy in me says make the most efficient solution. Reality says, make the solution the most people can understand and work with. Not that there’s no place for great code and good software design, just that it shouldn’t be the goal. The goal is a great product which often is facilitated by good code.

I often wonder what my brilliant idea will be (and I will have one, dammit). As I search for that idea, I keep having to remind myself of these principles. Often lame becomes perfection.