iP* devices versus Open Source

Cory Doctrow wrote a great post on Boing Boing on why he won’t buy an iPad. I think it’s an interesting argument – this point really resonated with me:

Buying an iPad for your kids isn’t a means of jump-starting the realization that the world is yours to take apart and reassemble; it’s a way of telling your offspring that even changing the batteries is something you have to leave to the professionals.

But I think what me misses is that an iPad is not a computer. There are a lot of people that don’t want a computer! They want the functionality of a computer without having to learn to reassemble.

Since the 1970’s – perhaps even the 60’s with Alan Kay’s DynaBook concept, there has been this idea that programmers could help children and other people learn by teaching everyone to program. The latest incarnation of this was the OLPC which initially eschewed Mac OS X and Windows because they aren’t as reconfigurable an open source OS. And really if you buy Cory’s arguments, you need to either go build your own Linux box or get an OLPC.

I used to like this myth. It’s attractive as a programmer to think that the world would be a better place if everyone thought like I did. And learning to program is probably the single biggest influence on my thought process.

But the world is a better place because not everyone thinks the same way. Some people don’t apply the rigour of programming to all their thoughts – people like my wife and my father in-law. But that lack of rigour allows them to think differently – to be creative in other dimensions than I.

If I hand them a computing device and expect them to figure it out, it’s never happen. The device will sit in a corner and collect dust. But my wife loves her iPhone. It has a core set of functionality that she desires in a package she can understand and not worry about breaking such that it doesn’t work when she needs it. And I’ve learned a lot by watching her attitude.

Constantly reassembling everything is wasteful. There is too much important stuff to get done in this world to spend time reprogramming something someone else has already done. That’s time spent looking at code or hardware that I could have spent with a child, showing interest in them. Time I could have spent serving others.

That doesn’t mean I don’t enjoy programming or tearing something apart – but I’m not going to tear everything apart and reassemble it just because I can. That’s wasteful! I tear things apart that will help me learn and grow.

So that’s the part I disagree with. The part I agree with is what might be the eventual conclusion of this shift in the industry. I think iPhone and iPad devices bring the power of computing to people that had no interest in disassembling and reassembling software just so they could get a reminder for a soccer practice or make a phone call. But if in reaching out to these people we destroy the market for devices that allow programmers to learn we’re burning ourselves, biting the hand that feeds us. I think that’s where open source software has a very legitimate point and place in society. I thinking making everything open source is one extreme and everything closed source is another extreme – with neither benefiting society in the long run. I believe we need both – open source to keep the great ideas in computing coming and closed source to allow the economics that create devices that work well for people that just want to get their job done. Closed source doesn’t work for the former; open source has consistently proven to me incapable of the latter.