Professor of Computer Science at University of Oxford
View Author ProfileCoding isn't what it used to be - and fewer people are attracted to certain jobs in the sector. Time for AI to step up?
Coding isn't what it used to be - and fewer people are attracted to certain jobs in the sector. Time for AI to step up?
It was just a matter of time until the vintage trend would reach the world of computer programming. Over the last year or so we’ve seen something of a renaissance in 90s web design, with developers feeling a sense of nostalgia for the glory days of GeoCities and pixelated imagery.
Supposedly harking back to simpler times, there’s a whole online community dedicated to creating sites featuring a distinct vintage look including awkward fonts, flashing banners and repetitive midi soundtracks.
Even Windows 93, or Windows 3.11, to give it its historically correct name, hasn’t escaped a pseudo-nostalgic makeover (or would that be makeunder?) complete with vintage error messages.
With the benefit of hindsight it’s easy to see where the nostalgia comes from - coding undoubtedly used to be a simpler, perhaps more rewarding task.
No need to worry about website personalisation, complex APIs or, most importantly, endless testing. You coded and set live. If you made a mistake it was (mostly) easy to see where the error was. How times have changed.
"Human brain power and ingenuity could be spent on web design and fine tuning the user experience"
Fast forward to 2017 and software engineering is almost immeasurably more complex, with testing in particular having become the most time-consuming and, arguably, the most hated of all developers’ tasks.
Testing makes coding tedious. It sucks the fun out of what used to be a popular pastime. For businesses, finding a skilled tester has become increasingly difficult (few programmers want to test for a living) and companies are finding themselves spending more and more money on what has become the holy grail of computer science.
So what if we could strip out the boredom of testing and teach code to fix itself? Would removing this burden mean more time to focus on the creative side of the job? What are the benefits for employers beyond obvious cost savings? Perhaps most importantly, would removing the burden of testing mean we can bring the fun back to coding?
It’s time to create tools and solutions that can truly understand what a program is trying to achieve, and fix it accordingly. A form of ‘self-coding code’ which means, in theory, anyone could program a computer.
If that were possible, you technically wouldn’t even need to be able to read or write - can you imagine that? Coding could eventually be as easy as describing to a computer what you want to create, and allowing the computer to do the heavy lifting.
Human brain power and ingenuity could then be spent on the actual web design and fine tuning the user experience.
But what could we use to achieve this? The answer is AI. It’s easier than you think. Let’s put it this way - computer scientists have until now generated neural networks, which attempt to function in a similar way to the human brain.
To teach a neural network to recognise a dog, you don’t tell it to look for ears, fur and eyes. Instead, you teach it to learn the general category of ‘dog’ by showing it repeated photos of dogs, allowing it to define and understand the category.
If it keeps misclassifying foxes as dogs, you don’t rewrite the code, you just keep showing it more photos. By doing things this way, it eventually learns.
Of course there’s work to do before we get there, and that work is centred on teaching computers to learn in the same way that humans do, but if we get there we can teach them to fix themselves and, eventually, create programs from scratch.
Which brings me back to the trend for 90s websites. Born perhaps out of a frustration for overly complex code on the commercial web of 2017, developers have looked backwards to a simpler time.
The good news is that there’s a way of reversing the trend. Using artificial intelligence to take on the complex, tedious tasks means we can make coding simpler. It may not bring back the trend for a MIDI music soundtrack to your web page, but it will mean more time spent on the creative and less time testing.
Daniel Kroening, Professor of Computer Science at the University of Oxford and CEO at Diffblue.
Thanks for signing up to Minutehack alerts.
Brilliant editorials heading your way soon.
Okay, Thanks!