Are tablets the new laptops? Not yet.
It makes no sense at all for programming to be stuck on laptops, but that's where we are.
Walt Mossberg writes in The Verge that the PC is being redefined and becoming the tablet. Apple is the apparent winner, even if they’re not saying anything. They never do, anyway. Granted, tablet sales are slumping, and there needs to be a “tablet revival” for them to go anywhere interesting.
I’m OK with Mossberg’s vision, as such. It’s certainly not a new idea.
I wouldn’t mind doing my work on a tablet; really, I wouldn’t. I have both Android and iOS tablets (granted, the iPad is pretty old…should do something about that). I’m a fairly serious classical pianist, and I’m jealous of the musicians who carry libraries of musical scores on their iPad Pros—with a footswitch to turn the pages, no less.
But here’s the problem. I’m not a professional programmer, nor do I do all that much programming. Still, the other day I needed to do some experiments with KWIC indexes. I grabbed a few lines of Python from a gist on GitHub, fixed a few bugs, modified a few things, and played around making indexes.
Likewise, I hate spreadsheets. I have to deal with them reasonably often, but if I need to do anything remotely sophisticated, I’m likely to start up Emacs, import a spreadsheet library, and pick the spreadsheet apart with a Python or Ruby script. Much nicer than playing with nasty pivot tables. And I occasionally do much more ambitious things, like playing around with machine learning libraries or implementing some algorithm just to see if I can. Could I do all of this on a tablet? It’s a nice idea, but I’ve yet to see a tablet with a decent software development environment: Emacs or Vim (not even going to think about asking for Eclipse or some fancy IDE), Python, Java, Ruby, gcc, build tools, and all that other stuff.
There’s no reason that all this software couldn’t run on a tablet. They’re incredibly powerful machines. But it doesn’t. And I don’t know when it will. If Apple is in the lead here—well, at the moment they’re still trying to protect me from running any unauthorized code. (“It looks like you downloaded this program from the internet. Shall we send the black helicopters to pick you up for re-education?”) Sorry, no thanks.
Google’s heart is closer to being in the right place, but I still don’t see a good bash shell for Android (hey, if you know of one, tell me; I’ve tried them all), let alone the other bits and pieces. I see that there’s a poorly rated Emacs for Android. There’s apparently a decent Vim, but well, I’m still recovering from writing a Ph.D. dissertation with vi. Worse, remember when we used to talk about the internet becoming a “walled garden”? Each of these tools is its own micro-garden. The Python I just installed on my Android phone comes with its own editor (almost completely unlike Emacs or Vim), stores your code in inscrutable places, and git? What’s that?
I can hear the screams already: WHAT? YOU WANT A DEVELOPMENT ENVIRONMENT AS GOOD AS THE ONE ON YOUR LAPTOP? Yes, that’s sort of the point, isn’t it? I mean, I already have a laptop.
The problem isn’t limited to writing code. I do write a lot of words (that is my job, or at least a significant part of it), and a lot of that writing takes place in coffeeshops, libraries, hotels, airports, and on jets. If you’re like me, I’m sure you’ve experienced “WoeFi.” The hotel Wi-Fi is great until the other 3,000 conference attendees show up…the coffeshop Wi-Fi is great until something happens and nobody there knows how to fix it (I tell them, “just hit the power switch, it’ll be OK,” but they don’t listen). Don’t even talk to me about the WoeFi on the airlines. You can write in the cloud; Google Docs is a great tool. But Google Docs offline underwhelms, and frankly, I’d rather just have Emacs or Vim and a plain text file. I don’t like fancy markup when I’m trying to get my thoughts straight.
I don’t have any problem with the tablet vision. I’m not sitting here saying “you’ll have to pry my MacBook Pro out of my cold, dead fingers.” If you’ve got a tablet that can do what I need, bring it on. I see no reason why an iPad or Android tablet can’t let me start a shell, run Emacs, and do whatever I want, whether it’s some strange Elixir experiment or a simple text file, like the one I’m writing now. It makes no sense at all for programming to be stuck on laptops because of software. I mean, really.
But that’s where we are. The current tablets don’t have the tools I need, and worse, I don’t think that’s a problem Apple or Google or Microsoft are terribly interested in solving. I’d love to be proven wrong.