Developers in a Post-PC world

Army of Me 5.25" floppy

So, last week I tweeted about the “Post-PC” world and sounded like a bit of an arrogant tosser.

Post-PC is the shift from devices built for personal creation to devices for consumption. I need to create.!/craignicol/status/166969581137707008

Today, I’m going to try and explain myself by sounding like an old fart.

My first computer was an 8-bit Toshiba MSX (yep, powered by Microsoft – still waiting for by MSX Basic MVP 😉 ), which wasn’t as popular as the other 8-bit platforms, but it shared one important feature : it booted into a programmable console. Anyone who wanted to use one of these machines had to start by learning a few lines of code, and it was the same code that a lot of the available software (well, games) were written in, so the user immediately started learning how to create new software. And that became important to me on each new platform, because I wanted to understand how they worked and what I could do with them.

I then moved on to Amstrad CP/M and then DOS machines. Still condole based, but there was a division between developing for the devices and interacting with them. I could easily load up QBasic in MSDOS and start writing graphical games (and then later port those to Borland C++), but there wasn’t a need to learn code to use the machines. Definitely an advantage for the average user, but at least the development tools were still one step away. That philosophy is one reason why I run Ubuntu on my home machine – it comes installed with Python 😀

And then came Windows 95 and development became an add-on. The computer grew up and divided those who wrote software into a special class apart from the normal users.

And then we get the Post-PC era, where not only do the devices not come with development tools, there are no add-ons available for those devices to develop on. The development has moved not only to another machine, but to another OS. So, we now need 2 devices, and the world of development becomes more disjoint from the world of users. I can see the benefits of it, I can see the different optimisations that need to be made for different use cases (and I understand why a lot of developers have a string reaction against Ubuntu Unity for a similar reason), but it leaves me with a nagging question of where the next generation of developers will come from. When your primary device is for consuming software that others have developed, the jump to developing your own software isn’t just a leap to learn a new package, it’s a leap to a new platform, which is a much bigger, scarier and more expensive step.

Unless the web wins, and all the Post-PC devices have a decent Javascript editor (or can run Cloud9 IDE or similar in their browser).

But maybe I’m just old and have a skewed view of the world.

For those in the audience who started developing in the Windows 95 era when development meant downloading something new, and taking a bigger step, what inspired you?

And what will inspire the next generation of developers to step up from their Post-PC device to a development PC?