On Computing Tomorrow

I’ve been thinking more about my defense of the Mac as a long-term computing platform, and I’m slowly coming around to understanding that at the base of my ideas is a type of willful ignorance that I should know better than to indulge in. The world is changing, computers are changing, and how we work and interact with them is changing drastically. To get to the root of this, let’s follow the five “whys” of why I need a Mac to work.

I need a Mac to get my work done. Why?

Because the Mac is a Unix based computer that includes the standard set of tools I use day to day, and it’s solid and reliable enough for me to depend on to work well when I need it.

Why do I need a Unix computer to work?

Because I’m a devops engineer, or automation engineer, or advanced sysadmin, whatever you’d care to call this job at the moment. I work primarily with AWS, and the best tools for building the automation systems for deploying our applications use the command line. Not to mention I often need to ssh into a server to troubleshoot it.

Why does the AWS environment use the command line?

Well, technically the command line is just one of the tools available, the awscli tools talk back to the AWS API, and AWS has SDKs available for popular languages. I could, and often do, write python code to accomplish what I need done. I suppose the real answer to this question is that there is currently no better interface for doing what I do.

Why is there no better interface for doing what you need to do?

Because designing human interfaces that make sense is difficult, especially with complex concepts. We need to be able to express logically that one bit of code needs to pull data from another bit of code which is pulling data from a database, all the while ensuring that the customer is getting the information they need quickly and easily.

Why are the systems you work with so complicated?

That’s a good question. Maybe they don’t need to be, or maybe in the near future they won’t be anymore. My work involves manipulating data, building websites that allow people access to upload and download data, and ensuring that the infrastructure these systems run on remains fast and available. How much of this is now being built into platforms like AWS, Azure, and Google Cloud Platform? How much of what I do each day could soon be accomplished by machine learning?

What if you could ask your phone to generate a graph of Apple’s annual profit and loss, and be sure that the visuals it returned were accurate and reliable? What if I could tell an iPad to build a highly available, auto-scaling infrastructure for hosting the Python code in my git repository, and the iPad would just go out and build everything I needed? How far are we from AI being able to tell from looking at a git repo the details of the infrastructure it needs? In that scenario, what use is “devops” when the engineer is AWS? For that matter, how far away are we from telling the computer the logic of what we need and having it develop the code for us?

Possibly not far. A recent article in Wiredexplores this very possibility:

Traditional coding won’t disappear completely—indeed, O’Reilly predicts that we’ll still need coders for a long time yet—but there will likely be less of it, and it will become a meta skill, a way of creating what Oren Etzioni, CEO of the Allen Institute for Artificial Intelligence, calls the “scaffolding” within which machine learning can operate.

That scaffolding is where I’ve been aiming my career for quite a while now, but, it may not be enough.

In the long run, Thrun says, machine learning will have a democratizing influence. In the same way that you don’t need to know HTML to build a website these days, you eventually won’t need a PhD to tap into the insane power of deep learning. Programming won’t be the sole domain of trained coders who have learned a series of arcane languages. It’ll be accessible to anyone who has ever taught a dog to roll over. “For me, it’s the coolest thing ever in programming,” Thrun says, “because now anyone can program.”

Basic economics says that scarcity creates value, in a world where anyone can program the skill currently required would be drastically devalued. This predicts a move from “infrastructure as code” to “infrastructure as algorithmically determined”.

I need a Mac for what I do now, but if current trends continue I might not need a Mac for much longer to do my job. In fact, as the tech industry continues to evolve, it’s entirely possible that it will evolve to the point where it no longer needs me. When that happens, maybe I’ll finally open up that coffee shop I’ve been dreaming about for decades.