“Good code generators will be the most helpful and useful tools for coding by 2040”
© Shutterstock / Ajgul
A team of researchers at Oak Ridge National Laboratory wrote a paper in which they argue that machines will write most of their own code by 2040. Does this mean that humans won’t be writing code at all? How will coding in 2040 look like? We talked with Jay Jay Billings, one of the authors about their ideas and the future of machine learning.
JAXenter: In your paper, you state that machines (with the help of ML, AI, natural language processing, and code generation technologies) will write most of their own code by 2040. Does this mean humans won’t be writing code at all? How will coding in 2040 look like?
Jay Jay Billings: I think humans will still write code in 2040. I think humans will write sophisticated code that addresses very specific problems that cannot be addressed easily by machine-generated code (MGC). The argument in the paper is that most code that we write now — what we might consider “everyday code” — will be written with code generators that are fed by machine learning, AI, and natural language processing.
So, using the Starbucks coffee example in the paper, we imagine that the heat conduction code could be auto-generated and things such as material properties pulled from databases or regression-based models. Or maybe by 2040, there will be a large database of the way coffee cools in different cups! ;-) However, if someone wanted to do something specific like test out new ways of solving the heat equation, then they would just write the code as usual or maybe do some pair programming with a really smart code generator.
I have two views on the way writing code will look in 2040.
- The first is that from the paper: I’ll just tell my computer what to write. This could be very interesting from a “pair-programming with my computer” sort of way.
- On the other hand, I also think that we will still have plenty of handwritten code by 2040 where people are using languages like C and Fortran, either for maintenance or new development. Although, if the numbers in your previous article are to believed, Java will be dead in 2039! ;-) My hope is that in any case humans will be doing programming at a higher conceptual level than we are today.
JAXenter: In this context, is machine learning a help to coding or is it a threat?
Most code that we write now — what we might consider “everyday code” — will be written with code generators that are fed by machine learning, AI, and natural language processing.
Jay Jay Billings: MGC would be a huge help, in my opinion. Right now we can’t meet the demand for skilled programmers. There’s just too much code to write.
I think machine learning is helpful because it will essentially learn what should be written and determine the best way(s) of writing it. If you think of the Design Patterns book by the Gang of Four, they went out and discovered all those patterns manually and, in my opinion, completely changed the discussion in software engineering. There are numerous efforts right now to apply machine learning to doing the same thing and if that lets us write more code, then it is very helpful.
I think the most helpful thing though—and this doesn’t exactly come out in the paper—is that code generators are becoming increasingly more sophisticated. The more good code I can generate the better because it lets me focus on writing the parts of the code that MGC can’t help with. I think good code generators will be the most helpful and useful tools for coding by 2040.
JAXenter: Machine learning can do all sorts of things; it can even help discover new exoplanets. What’s next?
Jay Jay Billings: I think the one that is really, really going to make people think is machine learning as applied
to medicine. Something you often see in the news these days is talk about personal genomics and personalized medicine, which means that in the next few years there will be so much data about you as a patient that very specific, personal treatments can be developed, for example, based on your DNA or the microbiome in your gut.
I think machine learning is going to be huge in this area because there’s simply no way that doctors can analyze that data on their own, but large medical companies could easily develop models based on our genetic information and use machine learning to greatly improve our care.
JAXenter: What should one take into consideration when planning to use machine learning? What are the dos and don’ts?
Jay Jay Billings: I think the biggest misconception is that it is magic or otherwise so automatic that virtually no work is required. Those new to the field should be prepared to do some of the hardest work of their lives to get the data they need, clean and treat it appropriately so that good features can be extracted, and then spend the time necessary to build and train the model without overfitting it.
JAXenter: The CERT Division of Carnegie Mellon University’s Software Engineering Institute has published an updated list of technologies that might give us headaches in the security department and machine learning is on it. Are we ready to bear the brunt of machine learning’s risks?
Jay Jay Billings: We’ve certainly already made a step in the right direction by recognizing that there are risks.
JAXenter: Gartner estimates that machine learning is within 2–5 years of mainstream adoption and the CERT/CC expects this to be “one of the most aggressive and quickly adopted technology trends over the next several years.” What do you think? How will we know when machine learning has gone mainstream? What signs should we look for?
Jay Jay Billings: Oh, I think it is already mainstream. It is in our mapping tools, our streaming media services, all the personal tracking used by companies on the internet. The big thing for me is whether or not the uninitiated can use it to their advantage, and the number of children ordering things with their parent’s Echoes and Alexas from Amazon certainly suggests that’s true.
We asked Jay Jay Billings to finish the following sentences:
In 50 years’ time, machine learning will be old news in that everyone will take it for granted, but still an area where people can make good careers.
If machines become more intelligent than humans, then I’ll be surprised and look forward to a cozy retirement.
Compared to a human being, a machine will never be limited to functioning on what the Star Trek universe describes as a Type-M planet.
Without the help of machine learning, mankind would never have made it into the modern era. The simplest form of machine learning is something called regression and we used it from the earliest days of computing to create new models of all sorts of important things.