COLUMN
2024年04月25日
Summary of AI-assisted development fields and representative services.
Categories:Technology
Tags:AI,Generative AI
In recent years, the way development is done has drastically changed due to AI. Those who have actually incorporated generative AI into their development process may have noticed a significant reduction in coding volume compared to before.
The CEO of GitHub predicts that eventually 80% of coding will be done by AI. Indeed, many people may feel that this is becoming a reality. Therefore, in this article, I will introduce how AI is being used in various development fields.
Coding Assistance
Coding assistance is perhaps the area where AI is most widely used. Companies like GitHub are investing heavily in this field, with services like GitHub Copilot leading the way.
Code Completion
Traditional code completion involved static analysis of classes and libraries to suggest method names and properties. In the era of AI, that level of assistance is long gone.
AI-powered suggestions now understand the context of surrounding code and can generate entire code blocks based on commented content. What makes such completion useful is that it automatically generates output without developers having to explicitly request it, making them feel like they are collaborating with AI during development.
Chat
GitHub Copilot has introduced a chat feature as an advanced service. Initially, I didn't find it particularly appealing personally, as compared to the automatic code completion, chat requires opening a dedicated UI to interact.
However, once you realize you can select a portion of code and directly send it to the chat UI, the convenience completely changes. Additionally, the chat includes the currently open file or tab, providing answers tailored to your ongoing tasks.
For beginners, this is akin to having a reliable mentor always available. It's very convenient to ask AI for suggestions on unfamiliar parts, get optimal code suggestions, and understand their significance.
Testing
System testing is divided into several areas, ranging from programmer-level unit tests and integration tests to tests that automatically manipulate browsers or apps.
For unit tests like GitHub Copilot, existing code can be selected, and test code can be generated accordingly. Cloud services like mabl, MagicPod, and Playable! offer AI-driven testing for browser tests and more.
During development, testing effort (quality) is often the first to be reduced when resources are scarce. AI-driven test automation is an area worth focusing on to maintain high quality even with limited resources.
Design
UI Generation
Services have emerged that generate UI prototypes. V0 by Vercel generates Next.js/React UI based on specified prompts. What's interesting is that you can further instruct it to make modifications after generating UI. Of course, each modification is version-controlled and reversible.
UIs often require additional modifications after creation, and it's often difficult to instruct without seeing the actual result. V0 understands such workflows.
Logo and Image
AI for generating logos or images is not widely used due to copyright issues. However, in gaming apps in countries like China, AI-generated images for items are abundant, and designers only need to make minor modifications.
Even without such extreme cases, Photoshop already includes AI-based photo retouching features, and there are AI-powered image generation services like Adobe Firefly that address copyright issues. In a few years, using these might become commonplace.
Review
Code review requires a certain level of technical expertise. Understanding intent from code or being able to ask questions requires a certain skill level. There are AI-driven services to automate such code reviews.
CodeRabbit is one of them. It automates code reviews based on PRs from platforms like GitHub. People may find it less stressful to accept feedback from a computer compared to from another person. With AI-based reviews, it might be easier to accept feedback and make corrections.