Eric Leach's Weblog

Thursday May 18, 2006

Today's lesson: Bike 2.0 presages Web 2.0

About ten years ago, I built my first bike from the ground up. I selected a cool Kona frame that I liked and ordered it through our distributor. One of the reasons I chose the frame I did was because I wanted a single speed bike. No gears, 10 speed cassettes, derailleurs, shifters - in short, way less moving parts.

I picked out wheels, fork, stem, saddle, brakes - and everything else I needed to complete the bike. When the frame arrived, I slipped the seatopst in and put the frame up in the stand, "chased and faced" it, threaded in the bottom bracket, bolted on the cranks, and spun 'em hard. It already looked like a bike.

Building it went faster than I expected. I bolted the front and rear brakes onto the mounts, pressed in the headset, cut and filed the fork's stearer tube to fit, bolted on stem and handle bars and mounted the brake levers. About a half hour later I snapped the pin back into the chain, pulled the rear wheel tight and cranked down on the rear skewer, tightened the pedals onto the cranks and hefted the biked down out of the work stand. The whole process, from box to bike, took about an hour. Bike 2.0.

That bike road great, that first time and just about every time after that, too. I built a bunch of other bikes after that, but none of them as easily or as fast.

So, to the lesson. Simple technology is better.

Lighter, easier things attract more people and get used longer than heavy, complex things. They break less. When they do break it's easier to fix them. Less moving parts. It is so tempting to want the bells and whistles, all the functionality and the latest cool gadgets. It is so tempting to want to solve the whole problem with one big package of things.

If you look around the software world now, you can see a definite trend toward using simpler, lighter weight technologies. I think this is what most people are referring to when they bandy about the term "Web 2.0", which I had begun to believe was simply a marketing buzzword, sort of like "scalable", "interoperable", "out-of-the-box", and (my personal favorite) "performant". I was very wrong.

Yesterday at Java One, I went to a session on JRuby, which began with a demonstration of how much less code is required when building something with Ruby than with, say, Java. Now, I don't write code, but even I could see the advantages of using less stuff to do simple, commonplace tasks. Sure, you give up some functionality, but at what cost?

It's actually the same with bikes - most people think they want ump-teen gears, even if they only use a few. When they bring in their 20-something speed mountain bikes for maintenance, they've usually managed to use the heck out of only about 4 or 5 of those gears. When you scrape through the gunk, most of the cogs and chainring teeth are relatively untouched, but a small few are ground down to sharp points. I think the same principal holds with software - that rarified breed of software which actually manages to get deployed in the first place rarely uses more than a small subset of its intended functionality.

There is another force at work here - utility (another marketing co-opted word), which is what you achieve when you put functionality where it is needed, when it is needed. Why leave simple stuff on the server when you can put it on the client? The web is becoming a place ripe with interactive, 3-D experiences, a place of visually compelling and artfully crafted user interactions. Some of this has to do with attracting an increasingly jaded and difficult to please online community. But some of it is there because new technologies have made tricky things simpler to create and, perhaps most importantly, made it possible to distribute workloads and functionality in new ways without breaking important stuff or creating needless complexity.

You can tell people are fed up with complex things because they will pay hundreds for a 60GB hardrive with a shiny white shell and a click wheel and a 1" color screen and which they happily fill up with songs using what might be the world's least functional "digital jukebox".

I will probably eat these words, but it seems harder to write crappy code, and subsequently applications that break, using things like Ruby, Ajax, Dojo, and the like. Software applications will gradually get simpler, easier to maintain- more fun to write, more fun to use. I know I spent far less time tinkering with that single speed than with any other bike I owned. I miss that bike...

Comments:

[Trackback] Buy cialis.

Posted by Buy cialis. on April 23, 2007 at 08:06 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed

Calendar

Feeds

Search

Links

Navigation

Referrers