In this era of “Internet of Code”, data and metadata around open source projects are abundantly available.
Here’s an interesting talk by Microsoft Research on AI developing software itself.
While research in program synthesis is not new, deep learning systems that take advantage of large scale code as data is starting to show new promise in improving developer productivity. The availability of GPU machines and cloud-based distributed systems help build deeper networks and scale them to production systems. In addition to passive input from open repos, crowdsourcing software expertise and integrating this with software systems has shown positive results. AI promises assistance and automation in every aspect of software development from edit and build stage to test and deploy stage. What traditional compiler and run time systems did with rules and analyzers can be replaced with AI-driven algorithmic systems. The concept of Software 2.0 is being discussed where code appears as data and where traditional software development processes give way to AI-based systems. In this panel, we explore opportunities for research and technology to improve productivity in software engineering and how AI plays a role in it.