Artificial intelligence (AI) is constantly evolving. Developers are now using AI to automatically generate software code, autonomously detect code errors, and convert code from one programming language to another. Each of these AI-powered solutions brings a number of developer benefits. They also bring some potential pitfalls.
Let’s take a high-level look at these different AI solutions and address AI’s pros and cons.
Artificial intelligence and software development tools
Developers are in a unique position. They are the creator of solutions, working hard to solve problems for their customers. They also benefit from their solutions. It’s an exciting position, and AI adds to the excitement by throwing the doors of innovation wide open.
Case in point, Intel’s ControlFlag, introduced in December 2020. According to an Intel Newsroom article, ControlFlag is “a machine programming research system that can autonomously detect errors in code.” With studies showing that developers are spending much of their time debugging instead of coding, Intel believes their still-new debugging tool will help eliminate this time-intensive aspect of development.
Says Justin Gottschlich, principal scientist and director/founder of Machine Programming Research at Intel Labs, “With ControlFlag, and systems like it, I imagine a world where programmers spend notably less time debugging and more time on what I believe human programmers do best — expressing creative, new ideas to machines.”
Not to be outdone, Facebook’s developers have developed and open sourced a new system that migrates code from one programming language to another. As described in this Facebook AI article, TransCoder is “an entirely self-supervised neural transcompiler system that can make code migration far easier and more efficient.” They say it’s the first AI system to do this without needing parallel data for training and benefits any business or government entity by helping them easily update their legacy codebase to modern programming languages.
And then there’s SourceAI, a team of developers that created a stand-alone system based on the GPT-3 language model. SourceAI is a tool that can “generate code for you in any language from a plain text description. Just describe what your application needs to do in plain text (English, French, German, Spanish, and other languages) and start using it in a few seconds.”
In addition to generating code in any programming language, SourceAI can also “simplify, find errors and fix them and debug your code,” according to their introduction (which also describes how it works).
The SourceAI team understands that software development isn’t just about writing code. It involves many phases and much human interaction, but their goal is reducing development time and making programming accessible.
These three companies are not alone in using AI for software development purposes, and with so many companies providing such amazing AI innovations, there are bound to be both benefits (some of which have already been discussed) and challenges. Let’s take a look at the pros and cons through the lens of Intuit’s artificial intelligence initiatives.
Pros and cons of artificial intelligence
Here at Intuit, our mission is to power prosperity, especially for small businesses that make up 99% of all businesses in the United States and the European Union. To make our mission successful, we have employed four artificial intelligence initiatives, which the Intuit Blog Team broke down in Using AI to Power the Backbone of Communities.
The initiatives include:
- Providing access to capital through QuickBooks® Capital, which uses advanced machine learning techniques and rich data sets to identify small business owners that would otherwise be passed over by traditional banks.
- Using AI/ML (predictive intelligence, time series modeling, transfer learning, and deep learning, for example) to identify patterns to help small businesses make better financial decisions.
- Helping make tax returns and estimated payments (through TurboTax®) more precise and accurate via rules-based AI and machine learning, thereby eliminating the guesswork.
- Using computer vision and machine learning to make data entry obsolete, and saving time and energy for other important tasks.
These are great examples of the benefits of AI. Intuit’s Shir Meir Lador also discusses efficiency benefits in How AI can help companies improve efficiency, writing, “According to IDC’s 2019 Spending Guide, AI system spending will reach $97.9 billion in 2023. Why? Because businesses are finding that AI technology provides a myriad of benefits for their customers as well as to the business itself, including improving their efficiency by performing data-driven tasks faster and better than humans.”
What are the cons of artificial intelligence? Depending on whom you ask, the risks of AI include lack of privacy, security, and safety; concerns of inequality; replacement of human workers; the amount of energy it uses; the fear of weaponization; and more. More specific to software development tools, the cons of AI include lack of labeled data, unreliability, inaccuracy, and sensitivity to small errors.
Developers have a lot to consider when utilizing AI to build their apps, but utilize it they will.
For more on artificial intelligence, check out these articles:
- Getting AI service in maintenance mode
- How to avoid conflicts and delays in the AI development process (Part I and Part II)