Skip to content

ChatGPT is not coming for your coding work




The Evolution of Coding: Why Software Engineers Remain Essential in the Age of AI

Technology has always been evolving, promising to revolutionize various industries and potentially replace human workers with automation. Software engineering is no exception to this trend. With the rise of Generative AI, there is a fear among software engineers that their jobs may become obsolete. However, history has shown that new technologies often make these workers even more essential. In this article, we will explore the evolution of coding and computing, highlighting the indispensable role of software engineers and why claims of their imminent replacement by AI may be overblown.

The Humble Beginnings of Software Engineering

When computers were first developed, software was not given much importance compared to hardware and system architecture. Early pioneers of computing considered programming to be a menial task, and many even viewed the work of early programmers, who were predominantly women, as secretarial. However, programming was essential as it saved these pioneers from having to engage in routine tasks like programming, debugging, and testing.

Despite their vital contribution, software engineers often struggled to fit into traditional company hierarchies. They were often self-taught and worked on self-devised programs, which made it difficult to manage them within existing departments. As a result, various innovations were introduced to simplify interactions with coders. FORTRAN and COBOL aimed to allow non-programmers to write their own programs without relying on software engineers. However, these innovations did not replace programmers but introduced new complexities that increased demand for their skills.

  • FORTRAN and COBOL made programming accessible to non-programmers but did not eliminate the need for software engineers.
  • The introduction of new methodologies like Waterfall added bureaucratic processes that complicated software development.
  • Object-oriented programming aimed to simplify software engineering for all computer users but did not replace professional developers.

The Crisis in Software Engineering

The introduction of new complexities in computing led to a crisis in software engineering. During a NATO-sponsored conference in 1968, it was declared that there were too few people to handle the work, causing large software projects to be paralyzed or experience delays. This crisis highlighted the indispensability of software engineers and the limitations of attempts to reduce their presence or simplify their roles.

The Rise of Generative AI: Threat or Opportunity?

The recent emergence of Generative AI, exemplified by technologies like ChatGPT, has reignited concerns about the future of software engineers. However, it is important to differentiate between the automation of routine tasks and the complete replacement of human developers. While large language models (LLMs) can assist with autocomplete suggestions and data sorting, they cannot fully understand the requirements and complexities of software development. LLMs can speed up certain aspects of coding but cannot replace the collaborative problem-solving and innovative thinking that software engineers bring to the table.

Furthermore, the introduction of Generative AI is more likely to disrupt the job market through increased productivity expectations. By automating routine tasks, managers may demand more from their software engineers. However, history has shown that attempts to reduce the presence of developers or simplify their roles often add complexity to the work and make these workers even more necessary.

Unlocking the Full Potential of Software Engineering

Computer scientist Edsger Dijkstra once said, “As long as there were no machines, programming was no problem; when we had a few weak computers, programming had become a slight problem, and now we have gigantic computers, programming had become an equally gigantic problem.” The complexity of modern computing has been driven by the desire to make computers simpler to use, but this has resulted in greater complexity and the continued need for skilled software engineers.

While there is ongoing progress in AI and automation, the essence of software engineering lies in the ability to understand the unique requirements of each project, navigate complex codebases, and innovate to solve problems creatively. Software engineers possess specialized knowledge and expertise that cannot be easily replaced or replicated by machines. LLMs and other generative technologies can enhance their work by removing mundane tasks, but they cannot fully substitute the human element in software development.

The Future of Software Engineering

In conclusion, the evolution of coding and computing has demonstrated that software engineers are integral to the development of technology. While there may be concerns about AI replacing certain aspects of their work, the history of innovation suggests that these fears are often unfounded. Instead of focusing on the potential threats, it is crucial to harness the possibilities that AI and automation offer in enhancing the work of software engineers. By embracing new technologies while recognizing the unique skills and expertise of developers, we can unlock the full potential of software engineering in the age of AI.


Software engineers have long been essential to the development of technology, despite fears that new innovations may replace their roles. Generative AI, such as ChatGPT, has raised concerns about the future of software engineering, but history has shown that previous attempts at automation only increased the demand for human developers. While large language models can assist with certain coding tasks, they cannot fully replace the collaborative problem-solving and innovative thinking that software engineers bring to the table. The future of software engineering lies in harnessing AI and automation to enhance the work of developers, recognizing their unique skills and expertise.


—————————————————-

Article Link
UK Artful Impressions Premiere Etsy Store
Sponsored Content View
90’s Rock Band Review View
Ted Lasso’s MacBook Guide View
Nature’s Secret to More Energy View
Ancient Recipe for Weight Loss View
MacBook Air i3 vs i5 View
You Need a VPN in 2023 – Liberty Shield View

Software engineers have joined the ranks of proofreaders, translators and others who fear they are on the verge of be replaced by Generative AI. But it might be surprising to learn that coders have been under threat before. New technologies have long promised to “revolutionize” engineering, and these innovations have never succeeded in eliminating the need for human software developers. In any case, they often made these workers much more essential.

To understand where the concern about the end of programmers comes from (and why it is overblown), we must look back at the evolution of coding and computing. Software was an afterthought to many of the early pioneers of computing, who considered hardware and systems architecture to be the true intellectual activities within the field. For computer scientist John Backus, for example, calling programmers “programmers” or “engineers” was like relabeling janitors as “custodians,” an attempt to pretend that their menial work was more important than it was. What’s more, many of the early programmers were women, and sexist colleagues often saw their work as secretarial. But while programmers might have occupied a humble position in the eyes of someone like Backus, they were also indispensable: they saved people like him from having to bother with the routine business of programming, debugging, and testing.

Although they played a vital (if underappreciated) role, software engineers often do not fit well into company hierarchies. In the early days of computing, they were often self-taught and worked on programs that they had devised themselves, which meant that they did not have a clear place within pre-existing departments and that managing them could be complicated. As a result, many modern software development features were developed to simplify, and even eliminate, interactions with coders. FORTRAN was supposed to allow scientists and others to write programs without the support of a programmer. COBOL’s English syntax was intended to be so simple that administrators could bypass developers entirely. Waterfall-based development was invented to standardize and routine the development of new software. Object-oriented programming was supposed to be so simple that eventually all computer users would be able to do their own software engineering.

In some cases, programmers resisted these changes, fearing that programs such as compilers could put them out of work. However, in the end his concerns were unfounded. FORTRAN and COBOL, for example, proved to be durable and long-lived languages, but they did not replace computer programmers. If anything, these innovations introduced new complexity to the world of computing that created even greater demand for coders. Other changes, like Waterfall, made things worse, creating more complicated bureaucratic processes that made it difficult to deliver large features. At a NATO-sponsored conference in 1968, organizers declared that there was a “crisis” in software engineering. There were too few people to do the work and large projects remained paralyzed or suffered delays.

Given this history, claims that ChatGPT will replace all software engineers seem almost certainly misplaced. Firing engineers and throwing AI into locked feature development would likely result in a disaster, followed by those engineers being rehired in short order. More reasonable suggestions show that large language models (LLMs) can replace some of the most boring work in engineering. They may offer autocomplete suggestions or methods for sorting data, if requested correctly. As an engineer, I can imagine using an LLM to “get around” a problem, giving you pointers on possible solutions that I can review. It wouldn’t replace consulting with another engineer, because LLMs don’t yet understand the actual requirements of a feature or the interconnections within a codebase, but it would speed up those conversations by getting rid of the heavy lifting.

ChatGPT could still disrupt the tech job market due to expectations of higher productivity. By eliminating some of the more routine tasks in development (and putting Stack Overflow out of business), managers will be able to demand more from the engineers who work for them. But the history of computing has already shown that attempts to reduce the presence of developers or simplify their role only end up adding complexity to the work and making those workers even more necessary. In any case, ChatGPT faces eliminate the most boring work to code in the same way that compilers ended the monotony of having to work in binary, making it easier for developers to focus more on building the actual architecture of their creations.

Computer scientist Edsger Dijkstra once observed: “As long as there were no machines, programming was no problem; when we had a few weak computers, programming had become a slight problem, and now we have gigantic computers, programming had become an equally gigantic problem.” We have introduced more and more complexity into computers in the hopes of making them so simple that they don’t need to be programmed at all. Unsurprisingly, adding complexity after complexity has only made things worse, and we are no closer to allowing managers to eliminate software engineers. If LLMs can deliver on the promises of their creators, we may very well make it accelerate even further.


WIRED Opinion publishes articles from external contributors representing a wide range of points of view. Read more opinions here. Submit an opinion piece at ideas@wired.com.

—————————————————-