Table of Contents
Computer programming is becoming more intelligent and automated
Home Technology peripherals AI Is it an achievement or a weakening? The dispute between AI code generation tools and programmers

Is it an achievement or a weakening? The dispute between AI code generation tools and programmers

Apr 08, 2023 pm 09:11 PM
programming ai

Are programmers destined to be replaced? The computer programming community has been gripped by this question ever since OpenAI's large-scale language model GPT-3 demonstrated its stunning ability to create HTML websites based on simple written instructions.

In the months since, it has emerged that simple but complete computer programs can be written based on natural language descriptions (spoken or written human language) and the programmer's work process can be accelerated. Automatic programming assistant. To what extent will AI replace or enhance the work of programmers?

IEEE Spectrum asked some experts about this, and the bad news is that programming may be destined to be replaced. But the good news is that it looks like computer programming and software development will remain a highly human-involved job for the foreseeable future. At the same time, AI-powered automatic code generation is increasingly accelerating software development by allowing more code to be written in less time.

Vasi Philomin, Vice President of Amazon AI Services, said, “I do not believe that AI will completely replace human developers. AI tools can free programmers from daily tasks, but computer programming Creative jobs are here to stay."

If someone wants to be a developer in 10 years, they don't necessarily need to learn a programming language. Instead, they need to understand the semantics, concepts, and logical sequences of creating computer programs, which will open software development to a wider population.

Computer programming is becoming more intelligent and automated

When electronic computer programming began in the 1940s, programmers wrote using digital machine code. It was not until the mid-1950s that Grace Hopper, a distinguished American female computer scientist, and her team at the Remington Rand Company developed FLOW-MATIC, which allowed programmers to write programs using a limited English vocabulary.

Since then, programming languages ​​have become more and more efficient, and programmers have become more efficient in their work.

AI-written code is at the forefront of a broader change that allows people to write software without coding at all. There are now no-code AI development platforms like Akkio that allow people to build machine learning models with simple drag-and-drop and click-of-button functionality. Microsoft's Power Platform includes a series of low-code products that allow users to generate simple applications simply by describing them.

Is it an achievement or a weakening? The dispute between AI code generation tools and programmers

In June this year, Amazon launched a preview version of CodeWhisperer, a machine learning-based programming assistant similar to Copilot for GitHub. Both tools are based on large language models (LLMs), which have been trained on massive code bases. As programmers write code, both CodeWhisperer and Copilot provide autocompletion suggestions and suggest executable instructions based on simple natural language phrases.

Is it an achievement or a weakening? The dispute between AI code generation tools and programmers

## A few days ago, GitHub conducted a survey among 2,000 developers and found that Copilot Task time is cut in half and developers’ overall satisfaction with their jobs increases.

Beyond code auto-completion is not easy

But if you want to transcend auto-completion, the problem lies in teaching intent to the computer. Software requirements are often vague, and natural language is notoriously inaccurate.

British artificial intelligence startup Diffblue is committed to using AI to check and correct code. Peter Schrammel, one of its co-founders, said that it wants to solve the ambiguities in English writing standards. Then some incremental improvements are needed, some dialogue between humans and machines.

To address these issues, Microsoft researchers recently proposed adding a feedback mechanism to LLM-based code generation so that the computer would ask the programmer to clarify any ambiguities before generating code. Microsoft's interactive system, called TiCoder, refines and formalizes user intent by generating what it calls "test-driven user intent formalization" (TDUIF).

TDUIF attempts to use iterative feedback to determine the programmer's algorithmic intent and then generate code that is consistent with the programmer's expressed intent. The figure below shows the workflow of TDUIF.

Is it an achievement or a weakening? The dispute between AI code generation tools and programmers

##Paper address: https://arxiv.org/abs/2208.05950

According to related papers, TiCoder improved the accuracy of automatically generated code from 48% to 85% when evaluated on the Mostly Basic Programming Problems (MBPP) benchmark. Designed to evaluate machine-generated code, MBPP consists of approximately 1,000 crowdsourced Python programming problems to be solved by entry-level programmers.

A unit of code can be hundreds of lines long and is the smallest part of a program that can be independently maintained and executed. A suite of unit tests typically consists of dozens of unit tests, each containing 10 to 20 lines of code, that check that the unit performs as expected, so that when you stack the units on top of each other, the program works as expected.

Unit tests are useful for debugging individual functions and detecting errors when manually changing code. Additionally, a unit test serves as a specification for a unit of code and serves to guide programmers in writing clean, bug-free code. Although not many programmers pursue true test-driven development, where unit tests are written first, unit tests are often written together with units.

Experts believe: Human programmers will not lose their jobs due to AI code generation

According to the results of the 2019 Diffblue developer survey, developers spend approximately 35% of their time using to write quality control tests instead of writing code for production use, so automating this part of the work can significantly improve productivity.

At the same time, Copilot, CodeWhisperer and other AI programming assistant packages can be used as interactive auto-completion tools for writing unit tests. Programmers get coding suggestions and choose the ones that work best.

In February this year, DeepMind further used AlphaCode for fully automated code production. AlphaCode is a large-scale language model that can write simple computer programs based on natural language instructions. It uses an encoder-decoder Transformer architecture that first encodes a natural language description of the problem and then decodes the resulting vector into the code required for the solution.

Is it an achievement or a weakening? The dispute between AI code generation tools and programmers

AlphaCode Overview. Image source: https://arxiv.org/pdf/2203.07814.pdf

The model is first trained on the GitHub code repository until it can generate views Code that looks reasonable. To fine-tune the model, DeepMind used 15,000 pairs of natural language problem descriptions and successful code solutions from previous programming competitions to create a dedicated dataset of input-output examples.

Once AlphaCode has been trained and fine-tuned, it can be tested on problems it has not seen before. The final step is to generate a large number of solutions and then use a filtering algorithm to select the best one. Oriol Vinyals, head of the deep learning team at DeepMind, believes that they created many different programs by sampling the language model nearly 1 million times.

To optimize the sample selection process, DeepMind uses a clustering algorithm to group solutions. The clustering process tends to group together workable solutions, making it easier to find a small subset of candidates that are likely to work as programmers wrote them.

To test the system, DeepMind submitted 10 programs written by AlphaCode to a human programming competition on the popular Codeforces platform, with solutions placing in the top 54%.

In a recent interview, Oriol Vinyals asked rhetorically, “In order to generate a program, do you just write it in natural language without coding, and then the solution will be in What about coming out the other side?" Vinyals and others are cautious, saying it will take time, possibly decades, to get there.

Landing AI founder and CEO Andrew Ng, a well-known AI scholar, said that we are still far away from a person being able to tell a computer the requirements to write an arbitrarily complex computer program and automatically complete the coding.

But given how quickly AI code generation has advanced in just a few years, it seems inevitable that AI systems will eventually be able to write code based on natural language instructions. And hand-programming software programs will become more and more like hand-knitting sweaters.

In order to provide natural language instructions to computers, developers still need to understand some logical and functional concepts and how to structure things. Even if a developer doesn't learn a specific programming language or write computer code, they still need to learn the basics of programming. In turn, this will allow more programmers to create increasingly diverse software.

Vasi Philomin says he doesn’t believe AI will replace human developers. AI can eliminate the menial, routine work that developers have to do, allowing them to focus on higher value things.

Peter Schrammel also agrees that AI automatic code generation allows software developers to focus on more difficult and challenging tasks. However, he added, it is necessary to at least confirm whether what the machine understands is human intention.

He also said that software developers will not lose their jobs because automated coding tools replace them, and there will always be more software to be written.

The above is the detailed content of Is it an achievement or a weakening? The dispute between AI code generation tools and programmers. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to solve SQL parsing problem? Use greenlion/php-sql-parser! How to solve SQL parsing problem? Use greenlion/php-sql-parser! Apr 17, 2025 pm 09:15 PM

When developing a project that requires parsing SQL statements, I encountered a tricky problem: how to efficiently parse MySQL's SQL statements and extract the key information. After trying many methods, I found that the greenlion/php-sql-parser library can perfectly solve my needs.

How to solve the complexity of WordPress installation and update using Composer How to solve the complexity of WordPress installation and update using Composer Apr 17, 2025 pm 10:54 PM

When managing WordPress websites, you often encounter complex operations such as installation, update, and multi-site conversion. These operations are not only time-consuming, but also prone to errors, causing the website to be paralyzed. Combining the WP-CLI core command with Composer can greatly simplify these tasks, improve efficiency and reliability. This article will introduce how to use Composer to solve these problems and improve the convenience of WordPress management.

How to solve complex BelongsToThrough relationship problem in Laravel? Use Composer! How to solve complex BelongsToThrough relationship problem in Laravel? Use Composer! Apr 17, 2025 pm 09:54 PM

In Laravel development, dealing with complex model relationships has always been a challenge, especially when it comes to multi-level BelongsToThrough relationships. Recently, I encountered this problem in a project dealing with a multi-level model relationship, where traditional HasManyThrough relationships fail to meet the needs, resulting in data queries becoming complex and inefficient. After some exploration, I found the library staudenmeir/belongs-to-through, which easily installed and solved my troubles through Composer.

How to solve the complex problem of PHP geodata processing? Use Composer and GeoPHP! How to solve the complex problem of PHP geodata processing? Use Composer and GeoPHP! Apr 17, 2025 pm 08:30 PM

When developing a Geographic Information System (GIS), I encountered a difficult problem: how to efficiently handle various geographic data formats such as WKT, WKB, GeoJSON, etc. in PHP. I've tried multiple methods, but none of them can effectively solve the conversion and operational issues between these formats. Finally, I found the GeoPHP library, which easily integrates through Composer, and it completely solved my troubles.

git software installation tutorial git software installation tutorial Apr 17, 2025 pm 12:06 PM

Git Software Installation Guide: Visit the official Git website to download the installer for Windows, MacOS, or Linux. Run the installer and follow the prompts. Configure Git: Set username, email, and select a text editor. For Windows users, configure the Git Bash environment.

How to solve the problem of PHP project code coverage reporting? Using php-coveralls is OK! How to solve the problem of PHP project code coverage reporting? Using php-coveralls is OK! Apr 17, 2025 pm 08:03 PM

When developing PHP projects, ensuring code coverage is an important part of ensuring code quality. However, when I was using TravisCI for continuous integration, I encountered a problem: the test coverage report was not uploaded to the Coveralls platform, resulting in the inability to monitor and improve code coverage. After some exploration, I found the tool php-coveralls, which not only solved my problem, but also greatly simplified the configuration process.

How to solve the problem of virtual columns in Laravel model? Use stancl/virtualcolumn! How to solve the problem of virtual columns in Laravel model? Use stancl/virtualcolumn! Apr 17, 2025 pm 09:48 PM

During Laravel development, it is often necessary to add virtual columns to the model to handle complex data logic. However, adding virtual columns directly into the model can lead to complexity of database migration and maintenance. After I encountered this problem in my project, I successfully solved this problem by using the stancl/virtualcolumn library. This library not only simplifies the management of virtual columns, but also improves the maintainability and efficiency of the code.

Solve CSS prefix problem using Composer: Practice of padaliyajay/php-autoprefixer library Solve CSS prefix problem using Composer: Practice of padaliyajay/php-autoprefixer library Apr 17, 2025 pm 11:27 PM

I'm having a tricky problem when developing a front-end project: I need to manually add a browser prefix to the CSS properties to ensure compatibility. This is not only time consuming, but also error-prone. After some exploration, I discovered the padaliyajay/php-autoprefixer library, which easily solved my troubles with Composer.

See all articles