Saturday, August 12, 2006

Mac OS versus Windows and their relevance to WS-* versus REST

Before I start I have to make it clear that computer illiteracy is not a bad thing. Some people just don't take to using computers very easily. Nature endows everyone with the ability to learn, but some subjects (not just computing) are just too difficult for the brain to grasp. Some people can't drive cars, some people can't learn foreign languages (I fall into this category: for some reason, I don't have a problem with computer languages, but basic French and German from 20 years ago is my limit for human languages), etc. etc.

There are a couple of computer illiterate people in my family (names withheld!). Over the years I've helped them get to grips with The Internet on various ranges of PCs. The operating system has always been Windows variants: starting with 95, then 98, then 2000 (I skipped NT because it was never intended for end-users!) and finally XP. Over the years (probably 10 years now), there have always been questions from my family about the way things work in Windows. For example: "where'd it save my attachments?", "what's a virus?", "why won't it recognise my digital camera?" and the perennial "why did they change that?" The interesting thing is that I got less questions concerning how to accomplish the easy tasks (such as email and browsing) back in the 95/98 days than I did in the 2000/XP days. I didn't look forward to Vista for these people!

So when the time came for a change (old machines, too many viruses etc.) I opted to move these people to Mac OS X. I've been using it successfully for a few years and I really like it. It's got a nice look-and-feel and runs everything I need. Plus it's Unix! But the one reason I wanted to move my computer-phobic family members across was simply manageability: I wouldn't have to worry (so much) that they'd remember to update their virus checker or run Windows-update (auto-update is fine if you're sure it's not going to screw with some other piece of software you've installed). Plus one thing I should have mentioned: I don't live close by, so fixing problems often requires a special trip elsewhere in the country. So manageability, and the confidence that things are going to remain operational for long stretches of time, is paramount for the computer "challenged".

Now you may ask why did I go with Windows in the first place for my family? I don't think anyone could honestly say that it's ever been in the "install once and never have to touch it for years" category. (What operating system is? But relatively speaking it doesn't score high.) However, it is convenient. Plus most of the software you'd want to run probably runs on Windows first.

For hardened computer scientists I think Windows is fine (well, almost). These days it offers far more powerful tools and capabilities than it used to and there's a lot of flexibility there too. As I said in another post, my move to Windows from Unix was because of convenience and despite its short-comings IMO it did the job. I know the rules: update frequently and be defensive. But computer illiterate people don't. Where else in someone's life does this kind of thing happen? When was the last time you contacted your car manufacturer to see if there was a problem with your make and model? Such things do happen in the auto-trade, but they're so infrequent as to not be the norm. Plus if there is a problem (for example with the axle) it's unlikely to affect the car stereo system!

Alright I may be over exaggerating slightly, but it can seem this bad for people who only want to use a computer for convenience and don't know how (or why) to manage it. So the move to Mac OS X seemed like a good idea for purely that reason. However, it turned out that there was an added bonus: simplicity. Both people took to the Mac interface a lot quicker than Windows. To paraphrase "it's more natural" and "more integrated". Now it's difficult for me to be objective on this aspect. I think that's because when I started using computers they were "raw" and I'm used to all of their "qwerks". But trying to see beyond this, I think I understand what they mean and agree with them. The Mac seems to have found that sweet spot between usability and power.

Now it's true that the Mac is a niche player and my 2 family members don't allow for a good statistical distribution, particularly when you consider how many Windows users there are out there. Surely Windows must have hit the 80/20 mark or 98/02 mark, right? I don't really know and I'm not sure anyone has the right demographic information. Maybe computer illiterate people using Windows just put up with it because they don't know any better or have on-call "system administrators" (aka family members) to help them.

By now you're probably wondering what this has to do with WS-* or REST. Well there's been a debate for many years about one versus the other. I first came across it back in 2002 when I was on the W3C WS-Architecture working group. It seemed to come up every year, with the help of the likes of Mark and Eric. It has continued and can sometimes be an almost religious war on the scale of Macs versus PCs. Apparently you've got to be either pro REST (and against WS-*) or vice versa. Sitting on the fence is seen as a cop-out!

However, I'm one of the fence sitters for the following reasons: I've never believed in the one-size fits all argument; REST has simplicity/manageability to offer in certain circumstances and WS-* works better in others. As far as distributed internet-based computing is concerned, REST is probably closer to Mac OS X and that makes WS-* the Windows. For what people want to do today I think REST is at the sweet spot I mentioned earlier. But as application requirements get more complex, WS-* takes over. We shouldn't lose sight of the fact that they can compliment each other: it need not be a case of eiher one or the other.

Taking my analogy of Mac OS X/REST and Windows/WS-* further, my only concern is that we don't lose sight of who will be using these systems: they're not necessarily going to be computer experts and may very well be the next generation equivalents of computer illiterates. The Web has been successful so far because its protocols are relatively simple (there are 80 year old ladies in Florida running their own web sites and writing HTML!) As I've said before, complexity can't be simple! But we need to hit the 80/20 mark! And that also includes the fact that once deployed, people shouldn't need to worry about continually updating these systems.

3 comments: