Microsoft

Microsoft DeepCoder: Will machines write their own code?

There is a lot of optimism and fear recently about how artificial intelligence will augment the human experience. Recent efforts for machines to write their own software could accelerate innovation on multiple fronts where software development is absent or poorly embraced. 

I am personally not afraid of a machine writing code based on descriptions of a desired program. Frankly the actual typing of the code and conforming to various syntaxes is the least enjoyable part of the job. 

What I enjoy most in software development is identifying how a program might:

•    Solve a problem
•    Positively help the users
•    Negatively impact users or existing processes
•    Function in terms of aesthetics and user experience
•    Be priced and sold in the market
•    Be maintained in the future 

I enjoy the product development and architecture of software projects more than the actual coding itself. After a decade and a half of writing code I have mastery over the computer and can compel it to do whatever I want. The more challenging problem is making sure your vision for the program and the task to be completed is delightful and productive for the human user.

In the future, there will be a great deal more machines operating under rules designed to protect and enhance our lives. I believe that no artificial intelligence will every truly empathize with the human experience. As such while the job of software developer may disappear a new one will appear: software illustrator. 

With broad strokes and very specific details we will describe to the machine the task that needs to be completed. We will illustrate through conversation, charts, graphics, pictures, and video the workflow of any automated task. Whether it be driving you to the store or doing your laundry the machine will understand a set of rules and aspire for your desired outcomes. 

My bet is our craft will be as complex as writing code is today. Software illustration will come with many different architectures, styles, syntaxes, and licenses. Much like lawyers are hired to describe and interpret the law we software illustrators will describe and interpret the world around us and how we want the machine to change it.