summaryrefslogtreecommitdiff
path: root/published/post-pc-programming.txt
diff options
context:
space:
mode:
Diffstat (limited to 'published/post-pc-programming.txt')
-rw-r--r--published/post-pc-programming.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/published/post-pc-programming.txt b/published/post-pc-programming.txt
new file mode 100644
index 0000000..61f71a9
--- /dev/null
+++ b/published/post-pc-programming.txt
@@ -0,0 +1,43 @@
+PC sales have flatlined. Even laptops aren't such a hot market anymore (Samsung has all but abandoned the once lucrative laptop market in favor of mobile). The future, it seems, belongs to the mobile device.
+
+That's not to say that there will not be laptops available anymore, just that far fewer people will buy them. 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. Anyone who's ever used an iPad knows it's 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? More specifically, what does it mean for developers?
+
+There's a common trope in articles that tablets like the iPad can't replace whatever it is that the author does. 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 favor 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 <a href="http://yieldthought.com/post/12239282034/swapped-my-macbook-for-an-ipad">iPad-to-server setup</a> in which your iPad becomes a mythical thin client.
+
+If, however, you're working with scripting languages like Python and Ruby or building web-based applications, the iPad is tantalizingly close to being a great development environment.
+
+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.
+
+Now, for the software. What started me down the road to 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.
+
+Working Copy 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.
+
+Working Copy developer Anders Borum intended Working Copy to be the first step in a workflow, not an all-in-one solution. In an ideal workflow you'd open Working Copy, check out your code and then open the file you wanted to edit in the external editor of your choice -- small pieces loosely joined.
+
+The secret sauce behind that workflow is the new iOS 8 feature Apple calls "Extensions" (akin to intents on Android). With Extensions, apps are aware of each other and can exchange data. For example, while in Working Copy you could click the share button and any text editors you have installed would offer to open the file.
+
+This way Working Copy can focus on being a Git application and your favorite text editor can focus on being a great text editor.
+
+The potential usefulness isn't limited to text editors either. Suppose you're a Python programmer, you probably have a Python runtime installed on your iPad. If the Python app were updated to work with iOS 8 Extensions you could pass your files from Working Copy on to the Python app and actually run them right on you iPad.
+
+IOS 8 Extensions are, in short, awesome and powerful. Except that precious few apps have updated to support these features yet.
+
+As Borum put it when I asked about connecting outside apps, "iOS 8 Extension support is a little like having a telephone... If you are the only one there is not much value, but once a friend gets one it becomes more interesting and when most of your friends have a phone it will really change the way you interact."
+
+In other words, the future is still unevenly distributed.
+
+Working Copy isn't the only app that would benefit from Extensions support. Another key tool in my post-PC programming arsenal is Transmit for iOS. Transmit is an SFTP client, but so far it hasn't been updated to support iOS 8 Extensions either.
+
+Then there's SSH clients like Prompt and iSSH, both of which make it easy to login to your remote server. SSH access means you can live the "thin client" dream, though for many this is more a nightmare than dream. Still, if you need to compile code this will, given iOS's App Store restrictions, mostly likely always be a necessity. The situation is much better in the Android world, but so far there hasn't been an Android tablet with hardware to match the iPad. If Ubuntu can bring a tablet to the market it would likely offer the best possibility of being a truly developer-friendly machine.
+
+Right now though there are a lot of ifs to the iOS-based, post-PC programming world. Too many in fact to make working on your iPad more enjoyable than a laptop. Indeed, I doubt that I'll be swapping my laptop for a tablet any time soon.
+
+That said, I actually find myself grabbing my iPad on my way out the door more than I used to. It's lighter, the battery life is better and thanks to Working Copy, iSSH and Transmit for iOS I know I can at least get most of my work done.