In the early days of my career as a software designer, standard fair was to have a workstation on your desk. These were pretty big machines specially built to get as much power as it could out of hardware that we had at the time. They were pretty expensive, but they were the only thing that could run the tools that we needed to run. HP and Sun where the big players there, with Sun’s SPARCstations being the cat’s meow.
Then a major shift happened. Desktop PCs, driven by consumer needs and economies of scale, got to be as fast as these machines at a fraction of the cost. Yeah, you had to deal with Windows NT, but the economics of it really left us with little choice. And that left very few people still using workstations and it pretty much killed that industry, or at least left it to small niches and conservative companies that still fear Windows.
In the last five years, you see laptops starting to eat away at the desktop. There’s nothing more liberating than sitting on you couch coding up a storm while the hockey game is playing in the background. Lots of software developers are using laptops as their main machine, yours truly included. The desktop machine is now only needed when I have big builds to do that require fast disks and 8 threads of CPU. Mind you if I could get that in a laptop that doesn’t set my pants on fire, I would.
So all along it seems, we’ve been following the consumer as they paved the way to cheap and powerful computing devices. And as we’ve seen at recent Apple events and last week’s CES, it’s pretty clear the consumer is heading somewhere new, to the ultra-mobile with superphones and tablets. The question is, can we software engineers follow?
I think in the past we were able to follow because there were always high end versions of the consumer devices that could meet our needs. And it left in place one very critical tool for the software guy, the keyboard. Until we stop coding in text, we can’t give up our keyboards. But aside from that, I don’t see the high end version of these devices that could do a massive build or run a big IDE like Eclipse. They really are a new class that I don’t think will cut it, at least not on their own.
So where does this leave us? Well, one answer jumps to mind which I’m not sure I like yet. There’s growing discussions about cloud computing and doing software development in the cloud. I’ve investigated it myself in the past and it is a very plausible future. Though, I’m not sure we’re ready to sit for a 10 hour day typing code into a tablet or superphone but I can imagine there being some use to being ultra-mobile for the software developer and not being too far away from his code. Tools like Hudson would show just fine viewed from a web browser on a tablet or from a smartphone app (which already exists BTW).
It’s going to take some time to figure out how to leverage these devices, but you can count on one thing. We’re all gadget junkies and we’ll figure it out somehow.