Have you ever wanted to design your own software application but then remembered that you're not a seasoned developer? If so, prepare to get excited about the future of software development: a future where half of the application is developed for you.
Now, we might be jumping to conclusions on that one, but that is the dream. Researchers at Microsoft and the University of Cambridge jointly produced a system called "DeepCoder", which as the name suggests leverages deep-learning (and AI) to help enhance the coding process.
It sounds outlandish, but the promise in time is to actually give inexperienced users the ability to design applications with minimal knowledge of development. In effect, a user could describe an application or function to a development tool, and because of deep-learning efforts, the concept would be understood, and then acted upon.
The execution works because through deep-learning, and smart AI to make sense of it, pieces of code are taken from existing software, letting the system learn how everything comes together. If someone needs a certain function, for example, DeepCoder could figure out the code that's needed, and then implement it into the new software project.
It's hard to imagine this kind of technique would be feasible in the near-future, but the use of deep-learning is only ramping up, and the things that can be accomplished with it are becoming more impressive. So it stands to reason that as our hardware continues to get better, deep-learning will only become more effective, in time bringing us to the point where something that once seemed far-fetched is becomes a reality.
An awesome example of how this could be used is to improve security of existing applications by replacing sensitive lines of code with good code from other applications. Again, this is a very "out there" idea, but the researchers are confident it will be used in the future.
Will this technology ultimately put many coders out of work? Not likely, as the researchers believe that developers will simply be able to focus on more sophisticated work. So don't fret, someone with no programming knowledge is not going to automagically create an AAA application.