AI-assisted development is more than 180 times faster than manual coding. Are programmers happy or worried?

The programmer sits down, and AI is starting to grab your "rice bowl".

Today, the barriers to entry for developers are higher than ever. Repetitive tasks occupy most of the software development time and are prone to errors. There is a shortage of software development talents in the market, and teams are overworked. Many companies can neither fully grasp the existing increasingly complex codes nor keep up with the rapid pace of development of new programs.

For artificial intelligence enthusiasts, it is exciting to speculate on how artificial intelligence can improve software development. Can artificial intelligence create a prototype framework within a few days without taking months or even years? Will it teach human developers how to write code better? The research scope of artificial intelligence is very wide, and the flexibility of computer programming is basically borderless, so it is difficult to imagine what software development will look like when intelligent programs can help humans interact with code.

But what many developers and technical managers don’t realize is that in the past few years, the importance of artificial intelligence to development teams has taken a qualitative leap . In fact, we have now reached the initial stage of artificial intelligence-assisted software development.

AI is indispensable in the field of automation

All software development organizations pursue efficient and agile development, and automation technology has been able to achieve large-scale agile development. In the past ten years, during automated testing, once the code changes, developers can immediately give feedback and make corresponding adjustments, so software quality has been greatly improved. The automated software pipeline uses robot assistants to generate Pull Request requests to ensure the continuous delivery of updates.

But many companies that have already used this technology have found that automation alone is not enough. There are still bottlenecks in the automation process, and most problems occur in the creation of new code. For example, automation can quickly complete hundreds of unit tests. If the development team writes these tests themselves, it will take hours or even weeks. But if these submissions are not tested and verified, then the automated pipeline will generate garbage. Although it will break the original automated process, it still requires manual operations when adding new code (and new tests).

Artificial intelligence coding technology

The good news is that by automatically writing test codes that verify the rest of the automated pipeline, the existing artificial intelligence code technology can solve these two problems at once. Such tasks used to take developers a lot of time and prevented them from doing more valuable tasks such as creating new features. Using artificial intelligence in unit testing makes automation more complete, although the process is not easy.

As expected, there are differences between tests created by artificial intelligence and those written by humans. But these tests can be generated in a short time, and the functions are considered qualified. If you can't do better than human-written code, you must ensure that the code can be easily fixed when something goes wrong. As Martin Fowler summarized in his 2006 "On Continuous Integration" article: "It is much better to run imperfect tests frequently than not to write perfect tests at all."

Use artificial intelligence to help developers Write code so that developers and IT managers are no longer bothered by the unbalanced problems of time, cost, and work quality. Many developers were very creative when they first started software development, but a lot of repetitive work consumed their original creativity. AI-assisted development not only allows developers to create new products faster and more economically without sacrificing quality, but also helps them complete repetitive tasks quickly, return their attention to creative tasks, and let them work More sense of gain in it.

Landing is the key

Industries that attach great importance to code quality, such as the financial industry, have also begun to use artificial intelligence to assist software development. For example, in order to improve the efficiency of software development, Goldman Sachs has recently begun to use artificial intelligenceWrite code. They used AI tools to write more than 3,000 unit tests and more than 15,000 lines of code for a legacy application, and created a complete test suite within a few hours. Compared with the average time each test takes 30 minutes to write manually, AI tools can write tests more than 180 times faster. Overall, the bank used this technology to save more than a year of development time.

Microsoft has also open sourced Sketch2Code, using artificial intelligence assisted technology to help designers and engineers convert hand-drawn user interface sketches into usable HTML code. After the designers and engineers reached an agreement on the design, they would take the sketches, and then manually translate the sketches into HTML code. This translation process was time-consuming and labor-intensive and slowed down the entire design process. Therefore, the developers envisioned what would happen if these hand-drawn design sketches on white paper were immediately reflected in the browser? As a result, designers can immediately have a ready-made prototype that has been verified by designers, developers and even customers after the brainstorming is over, which can save a lot of time for website and application development, so there is Sketch2Code. Birth.

The operation process of using Sketch2Code to convert hand-drawn sketches into code

Facebook is not far behind in this regard. As early as last year, the company developed a model called Getafix's tool can automatically find bug fixes and provide them to engineers for approval. This greatly improves the engineer’s work efficiency and overall code quality. Getafix not only provides engineers with intuitive fixes, but also uses more powerful poly Class algorithm, analyze the context of the problem code to find a more suitable repair plan. This AI-assisted bug fixing software, Getafix, has been deployed to the production environment of Facebook, which has billions of users, greatly improving the stability of the application.

Artificial intelligence-assisted development can be expected in the future

It is worth mentioning that the current artificial intelligence-assisted development is still at a very preliminary stage and can only assist developers in coding And for automatic testing, large-scale industrial applications cannot be achieved, and complex and difficult programming must rely on human developers. But we still need such AI-assisted technology to help developers resist those basic "hard work", so that they have more time and energy to complete more complex development.

With the continuous progress of artificial intelligence technology and its successful application in more cases, various industries will increase investment in artificial intelligence in software development in the future. Global technology giants are eager to open source various AI-assisted development tools. It can be seen that their ambition to get a share of this technology field is clear. In order to maintain an advantage in the competition and expand the scale, market players also need to integrate new tools that improve efficiency into the development process. At the same time, artificial intelligence-assisted software development technology is completing its first iterative update, which also gives us a preliminary understanding of how coding technology will develop in the future.