The increasing popularity of AI is undeniable, but it raises the question of how significant and relevant AI is to a developer's workflow. To shed light on this topic, Stack Overflow surveyed over 90,000 developers, seeking their views on AI. The survey yielded several noteworthy conclusions, as shown below.
Overall Sentiments of Developers Towards AI
As mentioned, AI is growing in popularity among developers. According to the Stack Overflow 2023 survey, 70% are already using or plan to use AI tools in their development process with 44% already using the tools now and 26% planning to.
The views on AI differ based on the profession and the level of experience of the developer.
SREs, security professionals, and game developers have unfavorable views on AI. This is possible because of security concerns brought about by feeding code or sensitive information to AI systems.
Developers focused on hardware, backend systems, or applications are less likely to be using AI tools. This is because the applications are too complex, and AI tools are not able to help them.
Frontend developers, data scientists, and cloud developers are among the developer who are more likely to use AI tools. For frontend developers and backend developers, AI tools can assist by providing code snippets or scripts for certain functions.
Data scientists can leverage AI to automate data processing, model optimizations, and feature selections.
For cloud developers, AI can help optimize infrastructure management by automating processes such as resource allocation, load balancing, monitoring, and performance tuning.
Developers earlier in their careers and those learning to code are more likely to use AI tools possibly because it improves the speed of learning.
On the other hand, 42.2% of developers with more than 21+ years of experience are less favorable to AI. This may be because they want to see whether the hype surrounding AI will die down before committing to a certain tool.
Professional developers from India (83%), Brazil (78%), and Poland (70%) are among the developers using or planning to use AI tools in the future. This is probably because of the high growth of young developers from these countries. Developers from the United Kingdom, France, and Germany are less likely to use AI tools.
What Are the Tasks Developers Are Using AI For?
Developers are using AI for different tasks and these tasks vary between developers learning to code and professional developers.
Developers learning to code are mostly using AI to learn about the code base and write code.
The survey revealed that 86% of professional developers are using AI tools to write code and 54% are using them to debug their code. They are also interested in using AI tools to test, commit and review code, deploy and monitor applications, and document code.
It’s worth noting that only a few developers are interested in using AI to collaborate with teammates.
Benefits of AI for Developers
AI is beneficial to professional developers as well as those learning to code. Overall 33% see an increase in productivity as the most important benefit of using AI. Tools such as GitHub Copilot offer features like code suggestions, auto-completion, and error detection, which can significantly speed up the coding process.
Professional developers saw improved productivity (37.4%) as the main benefit with greater efficiency (27.9%) and speed of learning (27.4%) being secondary.
For developers learning to code, increased speed of learning (42.4%) and increased productivity (41.4%) are the main benefits of AI while greater efficiency (33.7%) when writing code is a secondary benefit.
Only a small percentage of developers see increased accuracy as a benefit to AI tools. Experienced professional developers are more skeptical as only 14.1% consider improved accuracy as a benefit of AI compared to 23.8% of those learning to code.
The survey further categorized these benefits across different developer types. Increased productivity was a constant among all developer types.
Popular AI Tools That Developers Are Using in 2023
Stack Overflow surveyed the popularity of various AI tools grouped between AI search tools and AI developer tools. From the data, developers are primarily using two tools, ChatGPT and GitHub Copilot.
Among the AI search tools, ChatGPT is the most popular tool. 79% of developers who use it want to use it again next year. Following closely behind in popularity were Bing AI and Google Bard AI.
Google has been vocal about Bard's coding abilities, but when compared to ChatGPT, Bard still lags behind.
Some of the other AI search tools developers reported using are WolframAlpha, Phind, and You.com.
GitHub Copilot is the most popular AI coding assistant. 70% + respondents who worked with GitHub Copilot want to work with it again. Additionally, 59%+ of Tabnine users and 50% of AWS Code Whisperer users want to use GitHub Copilot.
This slow adoption of a wide variety of AI tools can be attributed to skepticism about AI accuracy with only 2.85% of developers highly trusting AI output. This distrust can be attributed to tools like ChatGPT providing incorrect output sometimes. This output, when used, can cause significant damage to an application. When using these tools, it's always a good idea to first verify the output.
How to Get Started With AI in Software Development
As a software developer, you can get started with AI by incorporating code generation and editing tools in your development process. Tools like GitHub Copilot and Tabnine suggest code snippets based on the context as you type which can significantly cut down on development time. Additionally, ChatGPT is very useful for generating utility functions, UI components, and debugging code. With the right prompts, you can even use ChatGPT to create web apps.
The Future of AI-Assisted Software Development
Although many developers agree AI is a beneficial tool in their workflow, only a few are ready to fully trust AI tools to code their entire application. However, AI is certainly changing how developers build applications. By leveraging AI tools, developers can streamline different stages of development including writing code, testing, debugging, and code review. As a result, they can significantly optimize the development life cycle.