Some years back, when Microsoft was mired in Windows Vista and open source issues, and web developers were on an accelerating trajectory, a quiet revolution took place.
In the corridors and anterooms of tech conferences, scrunched deep into beanbags and huddled next to power outlets developers were at work, nose down, in PowerBooks. It was one of those changes that one day you suddenly just became aware of.
Apple laptops had replaced Windows laptops as the code jockey’s steed of choice, with the very act of programming itself having become decoupled from the client's operating system. It was said, and it was written, how Microsoft had lost a generation of developers.
Today, a new revolution is taking place. PC sales, and even laptops, are down, and manufacturers are pulling out of the market. The future is all about the device.
For most, the "PC" will become a thing that fits in your palm - or, in the case of the iPad, your comically oversized jacket pocket.
That's fine for consuming information. An iPad is a great way to browse the web, check email, stay in touch with friends, and so on. But what does a post-PC world mean for creating things? What does programming in a post-PC world look like?
Received wisdom is tablets such as the iPad can't replace whatever it is that the author does - creatives must switch back to a laptop or desktop with a keyboard. In many cases that's true, but is it true for programming?
The answer is: it depends. It depends what you do and how willing you are to give up your old tools in favour of something new.
If you're writing platform-specific mobile apps in Objective C or Java then no, the iPad alone is not going to cut it. You'll need some kind of iPad-to-server setup in which your iPad becomes a mythical thin client.
If, however, you're working with scripting languages such as Python and Ruby or building web-based applications, the iPad is tantalizingly close to being a great development environment.
You’ll need a real keyboard to any serious programming on one of these
Before I dive into the specifics of my setup, I should note that to really get any development done on an iPad you'll need a real keyboard. Tapping glass is fine for short emails, but will quickly drive you nuts trying to write code. I used an Apple wireless keyboard because I had one, but there are some much slicker options out there that can also act as screen covers and protect your iPad when it's bouncing around in your bag.
Code and go
Now for the software. What started me on the road of trying to work solely on an iPad was a brand new iOS 8 application, Working Copy, which became the cornerstone to the development environment I managed to create on the iPad.
Working Copy is a Git client with support for just about every Git operation you need on a regular basis - cloning, editing, committing and pushing. The app is free to download, so you can test it out, but to push back to the server you'll need to buy the $9.99 in-app purchase.
It lets me check out my code, view recent changes, browse through old revisions and edit the files. The actual editing of files is not Working Copy's strong suit, though. The included editor, while perfectly functional, lacks syntax highlighting and other niceties. Part of the reason is that the editor was not intended to be a full-fledged text editor.