Author|Compiled by Keith Pitt
|Produced by Yifeng
|51CTO Technology Stack (WeChat ID: blog51cto)
The author of this article, Keith Pitt, is the founder and CEO of Buildkite, a software development company. In 2013, he founded the company with another software engineer, Tim Lucas, to provide a continuous integration and continuous delivery (CI/CD) platform for the technology industry. It recently received support from OneVentures and AirTree co-led $21 million in Series B financing.
A 20-year programming veteran and CEO of a company that serves software developers, Keith Pitt has an early take on the idea of producing intelligent artificial intelligence, AI programming tools and ultimately This brings an inherent level of skepticism to most software development skills in timing predictions.
He said in the article: "While I still have some doubts, my experience interacting with generative AI in my daily development work has prompted me to broaden my horizons and start thinking about what I think is possible. AI will be used in some ways Changing software development in a relatively basic way has both positive and negative sides.”
Developers spend too much time on details like grammar and punctuation can (and should) disappear. Developers no longer need to dig through manuals or piece together code snippets from code exchanges, but instead get perfectly formatted code answers by describing a desired result. Large language models (LLMs) can also inspect existing code for typos, punctuation errors, and other details that can cause headaches for developers.
When developing using software frameworks such as Spring, Express.js and Django, AI programming tools abstract common parts of software development and set consistent settings Guidelines, as well as pre-written code that provides common functionality, can greatly improve productivity. The generated AI will demonstrate the value of their tools by creating boilerplate code, automating repetitive tasks, and suggesting code optimizations.
AI can also help customize framework components for specific projects.
Many developers’ expertise lies in their proficiency in a specific programming language. When AI can generate code in any language, being proficient in Python or Ruby will no longer be so important. Likewise, tasks related to professional back-end skills like testing and code optimization will quickly be transferred to generative AI models.
The most valuable skills will be those that AI is not good at, such as building engaging user interfaces, translating user needs into documentation, and inventing new ways to support customers. Software "poets," or those who dream up the great ideas that code can make possible, will take center stage.
Generative AI is naturally suitable for software testing. Developers write the code, and the AI can create any number of test scripts you want. A recent IDC survey found that software quality assurance and security testing are the most anticipated benefits of AI programming, far outpacing other options. This will disrupt DevOps continuous integration/deployment practices and push many testing experts to find new areas of work.
The current low-code/no-code development tools are already very good, and generative AI will push them to new heights. While low-code/no-code tools are highly automated, it still requires people to piece together a workflow on a whiteboard and then turn it into software.
In the future, they will be able to give the model a hand-drawn workflow sketch and get the necessary code in seconds.
Although AI is full of promise, it should not be regarded as omnipotent.
Because the model can generate tests quickly, we may run more tests than we need. Over-testing is a common problem in software development, especially in organizations that measure performance by the number of tests a team generates. Running too many duplicate or unnecessary tests can slow down a project and create bottlenecks later in the process.
However, when AI can recommend when to remove tests, we will see great liberation for developers-this vision of generative AI makes me excited for the future.
"I always choose a lazy person to do a hard job because he will find an easy way to do it," this sentence Often mistakenly attributed to Bill Gates. Although the origin of this sentence is unclear, the sentence itself has a certain truth: lazy people are always looking for shortcuts to avoid hard work, and AI provides an excellent solution.
Generative AI is addictive to lazy developers and can lead to the creation of bloated, inefficient and poorly performing code. What’s even more frightening is that AI programming tools may stifle the innovations that excellent developers are proud of. Because generative AI is coded based on existing patterns and data, this may further limit the innovation potential of developers who are unwilling to step out of their “comfort zone.”
Generative AI is only as good as the data used to train the model.
Poor quality data, training shortcuts, and poor hint engineering can result in AI-generated code that doesn’t meet quality standards, is buggy, or doesn’t get the job done. This can cause organizations to lose trust in the quality of AI programming tools and miss out on their potential benefits.
Although some attention-seeking experts have made similar claims, there is no historical precedent to support such a conclusion. Technological advances—from high-level languages to object-oriented to frameworks—have steadily increased developer productivity, but demand is only increasing.
Generative AI may undercut the market for low-end basic coding skills, but the larger impact will be to push the industry higher up the value chain to do what LLMs are currently not good at: innovate.
Remember that generative AI models are trained based on what is known, not what is unknown and waiting to be created. I don't expect machines to design a revolutionary user interface or come up with an Uber anytime soon.
However, it may be difficult for developers to encounter such bursts of productivity in their careers. Rather than trying to fight the machine like I did when I was younger, developers should just go with the flow and ride the wave. AI programming will free people from many tedious tasks, which should be exciting for everyone. The risk that certain work tasks may disappear should be turned into an incentive to learn and take action - quality developers who can translate business requirements into elegant and performant software will always be in high demand.
To learn more about AIGC, please visit:
51CTO AI.x Community
https://www.51cto.com/aigc/
The above is the detailed content of The 'Devin AI era' of programming, the joys and worries of software developers. For more information, please follow other related articles on the PHP Chinese website!