Ever since Ada Lovelace, a polymath often considered the first computer programmer, proposed in 1843 using holes punched into cards to solve mathematical equations on a never-built mechanical computer, software developers have been translating their solutions to problems into step-by-step instructions that computers can understand.
That’s now changing, according to Kevin Scott, Microsoft’s chief technology officer.
Today, AI-powered software development tools are allowing people to build software solutions using the same language that they use when they talk to other people. These AI-powered tools translate natural language into the programming languages that computers understand.
“That allows you, as a developer, to have an intent to accomplish something in your head that you can express in natural language and this technology translates it into code that achieves the intent you have,” Scott said. “That’s a fundamentally different way of thinking about development than we’ve had since the beginning of software.”
This paradigm shift is driven by Codex, a machine learning model from AI research and development company OpenAI that can translate natural language commands into code in more than a dozen programming languages.
Codex descended from GPT-3, OpenAI’s natural language model that was trained on petabytes of language data from the internet. Codex was trained on this language data as well as code from GitHub software repositories and other public sources.
“It makes coding more productive in terms of removing not-so-fun work and also helping you remember things you might have forgotten and helping you with the approach to solve problems,” Peter Welinder, vice president of products and partnerships for OpenAI, said of Codex.
The increase in productivity that Codex brings to software development is a game changer, according to Scott. It allows developers to accomplish many tasks in two minutes that previously took two hours.
“And oftentimes, the things that the tools are doing is they are helping you to very quickly go through the least interesting parts of your job so that you can get to the most interesting parts of your job, which makes the qualitative experience of creating much more pleasant and stimulating and fun,” he said.
Microsoft and OpenAI formed a partnership in 2019 to accelerate breakthroughs in AI – including jointly developing some of the world’s most powerful AI supercomputers – and deliver them to developers to build the next generation of AI applications through Azure OpenAI Service.
Microsoft subsidiary GitHub also worked with OpenAI to integrate Codex into GitHub Copilot, a downloadable extension for software development programs such as Visual Studio Code. The tool uses Codex to draw context from a developer’s existing code to suggest additional lines of code and functions. Developers can also describe what they want to accomplish in natural language, and Copilot will draw on its knowledge base and current context to surface an approach or solution.
GitHub Copilot, released in a technical preview in June 2021, today suggests about 35% of the code in popular languages like Java and Python generated by the tens of thousands of developers in the technical preview who regularly use GitHub Copilot. GitHub Copilot will move to general availability this summer, bringing this AI-assisted coding capability to millions of professional developers, Microsoft announced today at its Microsoft Build developer’s conference.
“A lot of software has common frameworks and pieces of scaffolding. Copilot does such an awesome job of doing all that for you so you can focus your energy and your creativity on the things that you’re trying to solve uniquely,” said Julia Liuson, president of the developer division at Microsoft, which includes GitHub.
Julia Liuson, president of the developer division at Microsoft, which includes GitHub, expects that today’s tools will be the first wave of AI-assisted development. Photo courtesy of Microsoft.
As more developers experiment with Codex and GitHub Copilot, more clues to the potential of AI-assisted development are emerging, according to Welinder. For example, natural language documentation inside most software programs is sparse. Users of GitHub Copilot create this documentation by default as they use the tool.
“You get a bunch of comments in the code just from the nature of telling Copilot what to do,” he said. “You’re documenting the code as you go, which is mind-blowing.”
These comments, in turn, serve as a teaching tool for other developers, who often study other programs to learn how to solve specific problems in their own programs. The ability of Codex to translate from code to natural language is another way developers can learn as they program, which will lower the barrier of entry to coding, Welinder added.
Meanwhile, AI-powered low code and no code tools, such as those available through Microsoft Power Platform, aim to enable billions of people to develop the software applications that they need to solve their unique problems, from an audiologist digitizing simple paper forms to transform hearing loss prevention in Australia to a tool that relieves the burden of manual data-entry work from employees of a family owned business and an enterprise grade solution that processes billions of dollars of COVID-19 loan forgiveness claims for small businesses.
Today, the hundreds of millions of people who are comfortable working with formulas in Microsoft Excel, a spreadsheet program, could easily bring these skills into Power Platform where they can build these types of software applications, according to Charles Lamanna, Microsoft corporate vice president of business applications and platform.
Charles Lamanna, Microsoft corporate vice president of business applications and platform, believes AI-powered tools will enable billions of people to develop software. Photo by Dan DeLong for Microsoft.
“One of the big pushes we’ve been doing is to go to the next level, to go from hundreds of millions of people that can use these tools to billions of people that can use these tools,” he said. “And the only way we think we can actually do that is to go from low code to no code by using AI-powered development.”
To do this, Lamanna’s team first integrated GPT-3 with Microsoft Power Apps for a feature called Power App Ideas, which allows people to create applications using conversational language in Power Fx, an open-source programming language for low code development with its origins in Microsoft Excel. The next step, announced at Build, is a feature called Power Apps express design, which leverages AI models from Azure Cognitive Services to turn drawings, images, PDFs and Figma design files into software applications.
“We’ve made it so that we can do image recognition and map it to the constructs that exist within an application. We understand what’s a button, what’s a grouping, what’s a text box and generate an application automatically based on those drawings without you having to understand and wire up all these different components,” Lamanna said.
A new AI-powered feature called Power Apps express design helps turn sketches and other images into the bones of an app, helping people with little or no coding experience develop software.
This transition from low code to no code on the back of AI follows a general trend of computing becoming more accessible over time, he added. Personal computers were rare 40 years ago, spreadsheets were uncommon 30 years ago, internet access was limited 20 years ago, for example. Until recently, video and photo editing were reserved for experts.
Software development should also become more accessible, Lamanna said.
“If we want everybody to be a developer, we can’t plan on teaching everyone how to write Python code or JavaScript. That’s not possible. But it is possible if we create the right experiences and get them in front of enough people who can click and drag and drop and use concepts that are familiar to create amazing solutions,” he said.
GitHub Copilot as well as the low code and no code offerings available via the Power Platform are the first phase of AI-powered development, according to Liuson. She envisions AI-powered models and tools that will help developers of all ability levels clean data, check code for errors, debug programs and explain what blocks of code mean in natural language.
These features are part of a larger vision of AI-powered tools that could serve as assistants that help developers more quickly find solutions to their problems and help anyone who wants to build an application go from an idea in their head to a piece of software that works.
“As a developer, we all have days that we have pulled out our hair, saying, ‘Why is this thing not working?’ And we consult with a more senior developer who points us in the right direction,” Liuson said. “When Copilot can go, ‘Hey here are the four different things that are common with this pattern of problem,’ that will be huge.”
This new era of AI-assisted software development can lead to greater developer productivity, satisfaction and efficiency and make software development more natural and accessible to more people, according to Scott.
For example, a gamer could use natural language to program non-player characters in Minecraft to accomplish tasks such as build structures, freeing the gamer to attend to other, more pressing tasks. Graphic designers can use natural language to build 3D scenes in the graphics rendering engine Babylon.js. Teachers can use 3D creation and collaboration tools like FrameVR to speak into existence a metaverse world such as a moonscape with rovers and an American flag.
“You can describe to the AI system what you want to accomplish,” Scott said. “It can try to figure out what it is you meant and show you part of the solution and then you can refine what the model is showing you. It’s this iterative cycle that’s free flowing and natural.”
These tools, Scott added, will also swell the ranks of developers in a world that will be increasingly powered by software.
“Because the future is so dependent on software, we want a broad and inclusive set of people participating in its creation,” he said. “We want people from all sorts of backgrounds and points of view to be able to use the most powerful technology they can lay their hands on to solve the problems that they have, to help them build their businesses and create prosperity for their families and their communities.”
Related:
Top photo: Kevin Scott, Microsoft chief technology officer, said AI-powered tools help developers get from thoughts in their heads to code. Photo courtesy of Microsoft.
John Roach writes about Microsoft research and innovation. Follow him on Twitter.
Leave a Reply