On the 29th of June 2021, the software engineering ecosystem was awash with the flavour of frenetic anticipation usually associated with gadget enthusiasts on the eve of a new iPhone launch: Microsoft and Open AI had just announced the launch of Github copilot, an artificial intelligent pair programmer for software engineers.
In the days following the launch, blogs sprung up providing opinionated critiques, lengthy synopses and general social commentary; redditors, in their inimitably combative style, went toe to toe against each other's views on seemingly never-ending threads; and Twitter... well maybe let's not talk about Twitter.
Understandably, as with any disruptive innovation with sci-fi-esque ambitions, reactions were polarised. Half of the software engineering world can see the potential for Copilot to be their over-eager but helpful robot coding companion, while the other half view it as a charlatan promising to replace a complex job that it couldn't possibly. I'm with the first half, but I also understand the feelings of the second.
More importantly though, the frenzy that has surrounded the launch of Github Copilot triggered a much needed conversation about the role of machine learning and artificial intelligence in engineering. Will the AI assistant really augment software engineering? and can AI assistants also transform electronic, mechanical and civil engineering design?
Artificial Intelligence will augment software engineering
For those who haven't heard about it, Github Copilot is an artificial intelligent software which claims to help software engineers write code more efficiently. More concretely, it suggests lines of code, entire functions and potential alternatives to software engineers as they program.
Of course, Github Copilot is not the first code completion tool in circulation. For years now, tools like Kite, Tabnine and Jedi have helped software engineers to autocomplete their code. So why is there so much fanfare about copilot ? I think there are three reasons:
- Copilot is being created by respected industry giants: When Microsoft and OpenAI partner to build something this potentially disruptive, people take it seriously because they know that enormous budgets and brilliant engineers will be committed to its successful implementation.
- Copilot's capabilities are more advanced: Github Copilot claims to be capable of automatically writing multiple lines of code and entire functions just by parsing the meaning of a comment written in plain English, the name of a function or previous lines of code. Existing autocomplete software is limited to suggesting potential options for statements and single lines of code.
- The raging debate about the ethical use of the training data: Github Copilot ****was developed with a deep learning model that was trained on billions of lines of code written by software engineers on public Github repositories. Many are uncomfortable with the potential copyright issues, bugs which reveal secret keys, and the general distasteful feeling about Microsoft's commercial use of open source work without explicitly asking for permission.
While the tool has its detractors, many optimistic software engineers who have tested Github copilot have said that while it's still buggy, it's a stunning tool that can help:
- Professional engineers build faster and more efficiently
- Beginners learn how to program faster
- Experienced engineers get started writing in a different programming language
- Lazy programmers avoid basic syntax, indentation and similar issues.
So this is big, very big. In fact I see it as a clarion call for a new era where engineers of all kinds can be consumers of the very kind of futuristic technology that we create for the world.
How will Artificial Intelligence affect traditional engineering disciplines?
Tools for software engineers have always advanced more rapidly than the tools available for engineers in more traditional disciplines like civil, mechanical and electronics engineering. However, I believe that by riding on the coat-tails of Github copilot, traditional engineering design can benefit from its own machine learning and artificial intelligent assistants. In fact, this movement has already begun.
In architecture and civil engineering design, there is Spacemaker, which got acquired by Autodesk for $240 million in 2021. The Nordic startup developed AI-driven software for urban development. The platform enables architects, urban designers and real estate developers to quickly generate, optimise and iterate on real estate design alternatives taking into account design criteria and data like terrain, maps, wind, lighting, traffic and zoning, etc.
In mechanical engineering, generative design is maturing rapidly. Most of the existing tools like Creo and AutoCAD have contained generative design tools for years. However, newcomers with a different approach, such as nTopology, Monolith AI and The Engineering Company are taking the industry by storm. For instance nTopology, which has raised up to $70 million to date, has developed a suite of advanced tools with design generation and optimisation at their core, for advanced mechanical engineering and manufacturing applications.
In the electronic chip design world, AI and advanced algorithms have been rife in synthesis and place and route engines since the 90s. Recently, Google made a breakthrough in using deep reinforcement learning to perform placement and routing as well as human designers but much faster. In addition, Julia computing, the creators of the popular scientific library, was awarded a grant by DARPA to use machine learning to accelerate analog and mixed signal design by 1000x.
In the electronic system design world, autorouters for PCB design have been largely avoided by many engineers due to the lack of reliability. DeepPCB is taking on the autorouting problem by applying deep reinforcement learning to it. However, today, we are moving beyond autorouters to more advanced workflows where everything from component selection, schematic design, placement, routing and even procurement are supported by intelligent algorithms. Companies like Circuit Mind (which I cofounded), JITX and Celus are starting to build these new electronic design workflows for system level electronics engineers and PCB design engineers. Who would mind a Github copilot for electronics engineers?
Looking to the future
Will AI replace design engineers? No, not anytime soon. Will engineers benefit from intelligent assistants that help us work more efficiently and make more informed decisions? Absolutely, and the time is now.
In the decades to come, the greatest engineers will have personal trusted AI assistants that they'll nurture, train and work with in order to massively multiply their life's work and their impact on the world.