Saturday, May 5, 2012

Computing as a commodity

The market for personal computing has been evolving rapidly in the last decade.  The modern era really began in the 70's with computers like the Apple ][ or the Commodore Pet.  Well the Altair as well but that was true hobbyist level stuff.  The Apple pretty much anyone who was a little geeky could do neat things with.

My first computer was a TI-99/4A which was kind of a weird hybrid game console / PC.  It had a lot of expansion possibilities but mine was bare bones.  You could buy game cartridges for it but I was poor and only had a few, fairly lame, games.  Some kind of math asteroid blaster thing, a MASH game and their Pac-Man clone called Munch Man.

Anyway not to digress too much but I bring this up for a reason.  If you look at the computers of that era, including the PC when it arrived, you pretty much had to type things at a prompt to do anything.  In the case of the TI it booted up to a BASIC prompt.  If you weren't interested in programming these machines would probably be kind of boring.  But, if you could program the machine you could do utterly astounding things!  It opened up an entire new world to me at the time.  But realistically only a small portion of the population is going to want to deal with that kind of thing.  It wasn't accessible in the way that something like an iPad is.

The reason I bring this up is to point out that nowadays grandma and grandpa are using computers.  They have very specific needs like browsing the web and of course playing games.  Now when you think about the form factor of a computer there are different tradeoffs in an iPad than a regular PC.  For example there is no hard keyboard on the iPad.  For someone who is a hunt and peck typist they may actually increase typing speed on the iPad vs a keyboard.  For most of the population a real keyboard may simply be a waste of time, especially if they don't have a reason to type much.  Dictation, for example, has gotten a lot better and will improve more in the future making typing redundant for twitter updates and email.

Now consider the professional programmer like myself.  I often use command line tools and write small applications in python for processing data.  I can type 100 wpm on a "real" keyboard.  I can't imagine trying to get serious programming work done on an iPad.  I would type a lot more slowly and I also need a lot of screen real estate when coding and debugging.  The usage case for coding is just insanely different than what 99% of people need to do on their computer.  Even for me I could get away with an ipad for almost everything.

So what are the implications here?  To me it seems simple.   We are going to see a split between consumers of content and creators in terms of what kind of computers we use.  Most content consumption will happen on something like an iPad.  Lot's of content creation will also happen because you can create neat stuff on them.  But for hardcore application development you will see niche operating system environments that most people don't use.  It's entirely possible that the open desktop version of windows eventually withers and programmers move over mostly to linux.  Hell at places look Google you have to look hard to find a windows box.

I think there are some other interesting implications as well.  For a long time I thought that the generation after mine was going to have so many brilliant programmers that all of us vets would be out of a job and outdated.  Well we surely do have some brilliant young talent around but not in anywhere near the numbers I would expect.  I don't think it's lack of actual talent, I think it's that the computing environment we have now isn't as conducive to easing into programming as it was back in the day.   Kids learn how to use windows and browse the web but finding a way to program something is kind of daunting.  BASIC programs that ran at a command line were easy to learn and experiment with.  Of course this stuff still exists but you have to seek it out. There are simply so many things to waste time on (reddit) that why would anyone get around to programming unless they really cared about it?  You could spend your entire life playing games that are free!  Or get sucked into WoW...

Anyway I guess the conclusion here is that we are going to see a further separation of development tools and general computing.  Desktop type power user computing will become more niche as most people use tablets or their cable box to get at the content they want.  Hopefully we will find ways to expose young people to programming so that we can have future generation of software creators. 

One other thing I would like to point out is that all of this could change quickly.  For example there are several projects now underway that are pushing wearable computing.  It's possible that new input methods, being connected to the net 24/7 and the ability to overlay AR type stuff might allow programming environments significantly more powerful than we have now.   I fully expect within a decade for eye goggles capable of AR to be as commonplace as an iPhone is now.

I'm not claiming any crystal ball, just calling it as I see it, like usual..


  1. John Resig was designing the upcoming Khan Academy Computer Science section when he came across Brett Victor's great video 'Inventing on Principle' quote - 'After watching that video I couldn't shake the feeling that what he presented was a fundamentally different way of approaching how to interact with, and learn how to, code.' I think this is what you were dancing around when talking about the Apple ][. I love what it became and Khan Academy Computer Science is super fun and interactive. Check out this lesson for example ->

  2. Hopefully stuff like this will educate a whole new generation of coders.

    1. Well I'm using it to educate my kids. Scratch (MIT) was great to start but this will really actually teach them programming.