DEV Community

Cover image for AI is a fad and programming is dead
Andrew Schmelyun
Andrew Schmelyun

Posted on • Originally published at aschmelyun.com

AI is a fad and programming is dead

These are the two prevailing point of views that I’ve seen spread the most on social media.

On one hand, you have people saying that programming as a future career is essentially dead, and it’ll be a couple of years before humans writing code is made obsolete. Then there are those who think that LLMs like ChatGPT and LLaMA are party tricks, nothing more than a fun little experiment that provides minimal value to those building software.

I think the reality is more nuanced than that, and both points above can be harmful or anxiety-inducing to people who just started in the software engineering field or are interested in it as a career path. I’d like to take a little time and go over what I think AI will change in this landscape over the coming years.

If you’d like a quick breakdown or tl;dr of what’s going to be in this article, the main points are:

  • AI will continue to improve, probably in an S-curve fashion, but we don’t know where on the curve we currently sit.
  • LLMs are unlikely to take jobs away from software engineers, but they will enable teams and individual contributors to be more efficient, and get more done with less time and resources.
  • Tools like ChatGPT usually require you to give detailed instructions in a logical format to yield good code results, this is essentially the role of a programmer just in a new, esoteric language.
  • If AI improves to the point that humans are removed completely from the software process then we have made it pretty much to AGI, at which point we have much bigger problems to worry about based on our current societal structure.

Still interested? Let’s continue!

AI improvement and the S-Curve

AI has improved drastically over the course of the last year or so. We’ve gone from some basic sketches and drawings to full-fledged generated movies based on images, text, and speech a la Midjourney and others. OpenAI’s improvements to the GPT model has shown incredible promise in generating text and code. There are AutoGPT experiments, where talented developers have been running processes that spawn LLM entities and have them loop over and perform actions to finish complex multi-step assignments.

All of these might make it seem like we are advancing at an exponential pace in this field, but that might not be the case.

Technological advancements have historically been shown to happen on something called successive S-curves. A technology will slowly advance and then rapidly take off, before slowly plateauing out for a while. A new iteration happens that starts the same cycle over again, but this time at an overall higher level. Zooming out, the graph appears linear but is instead made up of multiple iterations of these curves.

It’s not a bold assumption that AI might follow the same path (at least for now), so the question becomes “where are we on the current curve?”. Maybe toward the bottom, right before accelerating exponentially up, or towards the top with little room to advance at the moment.

If I had to bet on a particular point in the line, I’d say that we’re right before the plateau.

I think we have a small amount of advancement to go with LLMs and the technology that currently surrounds them and AI in general, but I think that we’re missing something that will take time to fully provide.

As more and more AI generated content comes out (video, speech, code, images), more and more people can recognize it for its uncanny-valley-ness. Like most projects, I believe that the missing 10% will take 90% of the time and effort to perfect.

How long until we hit that next curve though, and exponential improvement begins again? That’s difficult to say, and no one person should be able to answer that.

LLMs are the next step in IDE advancement

Getting back on track about programming though, we have seen a drastic improvement and adaptation of models like OpenAI’s GPT in the coding world. Tools like ChatGPT, GitHub Copilot, and now Copilot X have improved the efficiency of developers around the globe.

But, they’re not replacing programmers, they’re tools in a utility belt enabling programmers to work better.

The first time I went from a text editor like Sublime to a full-fledged JetBrains IDE was insane. My productivity skyrocketed as I suddenly had access to auto-completion, automated refactoring, integrated testing, and deeper connections to my project’s dependencies. I was able to produce cleaner code at a dramatically faster rate.

These AI tools are just the next logical step in that same improvement process.

I’ve been using Copilot and ChatGPT in my personal projects since the start of the year, and I have noticed a similar efficiency improvement.

A lot of work done in new projects are tasks I don’t have to put a lot of thought or effort into, but that take up time. Creating automated tests, frontend templates, new classes, or formatting data outputs, I can complete these items 10x faster now that I have the help of these tools. They just understand what I’m trying to do, and scaffold out the code necessary in my project to accomplish it.

Going deeper, there have been times where I need to create a complicated function body or work with a library that I’m not super familiar with. I can type in a basic comment for what I’m trying to build in that instant, and the AI spits out a code block that’s usually helpful in satisfying the requirements I’m after.

For an example, I was recently in a PHP application and wanted to work with a popular FFMpeg library with pretty complicated documentation. Instead, I just wrote the following:

public function formatVideo($video)
{
    // use ffmpeg to convert the video to a gif
}
Enter fullscreen mode Exit fullscreen mode

Hitting enter after I made that comment produced succinct code that I could use in the rest of the project, with a few minor tweaks.

But the fact of the matter is that it saved me a ton of time. If I had known the exact details of the library, sure, a minute or two might have been shaved off. But because I was in this realm between knowing the language but not a particular library, I knew exactly what I could ask and could use the code given to me immediately. All without having to take time poring over documentation, Stack Overflow questions, or trial and error.

This is where these tools and AI for programming really shine, it enables you to work better.

Two things though.

  1. It’s over-confident. There have been multiple times where the AI has hallucinated arguments or functions that don’t exist in my project or a library I’m using. I might be able to nudge it in the right direction after a few retries, but sometimes it goes completely off the rails and writes code that straight up does not accomplish what I wanted it to. This has been pretty rare, though.
  2. It’s not connected. ChatGPT and Copilot are great at creating snippets of code that perform a specific function from given input. An entire application is still a bit out of reach. First, there’s a barrier for the amount of text, as even GPT-4 is limited by 8K tokens (around ~6k words). Second, even with the use of vector databases and AutoGPT, the models have a hard time sticking to a single development style or accomplishing an overall directive in a program that’s just above moderately complex. Ask them to create a todo app and it’s likely to be fully functional. Ask for something like a CRM to handle leads for a barbershop and it’s more likely to start on the right track, but end up with missing functionality or ineffectual code.

That last part in particular brings us squarely to our next section.

Programmers are translators for a logic language

If you ask a lot of people what their definition of a programmer is, you’ll likely get a lot of responses that boil down to “someone who writes code”. And while this isn’t incorrect, it’s also missing a huge part. A programmer, software engineer, developer, or whatever title you choose, is a translator for a language that deals in logic.

Your goal as a programmer is to take a concept, an idea, or a workflow in a language that you can understand, and translate that to a language that a computer can understand. This programming language is designed to prevent ambiguous statements and deal in pure logic.

Let’s take the sentence “When the button is pressed, change the background to red”.

If you’re a person in a meeting with other people from your team, you all might intuitively know exactly what is meant by that.

But if you’re a computer, you have a ton of missing information. What button? What background? What shade of red? What if it’s pressed again?

We can redefine our sentence again to try to remove ambiguity. “When the button with the ID of ‘clicky’ is pressed, change the background of that same button to a color with the hex value #FF0000”

Written in JavaScript it looks like this:

document.getElementById('clicky').addEventListener('click', function() {
    this.style.backgroundColor = "#FF0000"
})
Enter fullscreen mode Exit fullscreen mode

If you’re familiar with this programming language, and you were given the code above and asked to explain what it does, you might produce a sentence similar to the second one above.

You’ve translated JavaScript into your native language.

This is the heart and essence of programming, and is one of the biggest reasons I believe that the profession will be around for quite a while, even in the face of advancing AI tools.

There’s hundreds and thousands of threads online where people ask “Why isn’t ChatGPT producing the code I want it to?” and inevitably the answer comes down to:

“You need to know how to talk to it.”

Well, if I need to use a specific language to talk to this tool and get back accurate data every time, then I’m just programming with a natural language. This isn’t a new concept, it’s just that with the breadth and complexity that LLMs offer, the barrier for entry is lower.

Even if building an application has been reduced down to typing in prompts in a tool like ChatGPT, if you have to use a specific language to get it to create a reliable output that works every time, you’re in essence still programming.

Looking at the present, trying to build an application with an LLM with the current limitations of the models means that you’re likely going to have to put some of the pieces together yourself. This still constitutes programming, and you’ll need to know some basics about what the language is that it produced code for you in and where to put the pieces it gave you.

But let’s say that things advance to the point where that’s trivial or useless, because the AI will do it for you anyway. You say “Alright, compile these assets and publish them on example.com”. At that point, why even have a programming language? Let the AI be the layer between your data and your result, skipping the middle step entirely.

Well at that point, we’re basically at AGI.

AGI replaces everything

Let’s say that everything above has been perfected and there needs to be almost zero human intervention needed. You can simply have a prompt attached to a database (also managed by an AI) where you can simply ask for any dashboard, result set, or functionality that you could from a program. What then?

If AI is powerful enough to remove human intervention and oversight from the programming realm, then it has gotten to the point that it can replace almost every creative and knowledge worker profession in existence. This would likely lead to a worldwide economic downturn as more than 60% of the labor force is no longer required.

At the very least, we’d need UBI, or taken to an extreme, FALC.

This of course implies that every business, everywhere, would hop on this technology immediately. While most companies are always looking to maximize profits and increase efficiency, a lot of the business world turns at a slower pace than the technology realm likes to believe.

I know teams that are just now picking up tools like Docker, or working with frameworks like React. The enterprise world moves at a very slow pace, and even if a tool was provided that could perform 90% of a team’s job developing new products, maintaining legacy software and complex inter-dependent systems will still need to be done during, or even after, an adaptation of an AI system.

The software engineering profession has some ~100k open positions in the US alone, even if complete automation was made available today, there would be a large amount of time before full adaptation was reached.

Wrapping up

This piece was mostly written as a way of getting a bunch of different thoughts I’ve had about AI and the programming profession out of my brain. It’s not a secret that I’m a very anxious person, and I won’t lie and say that I’m not nervous about my future as a software engineer.

However, I’m excited for the tools that are being created to increase my productivity and allow me to be a better programmer. I encourage anyone out there interested in this career, or just starting out, to keep learning and utilizing the tools and techniques available to you.

I think that we’re going to see a lot of interesting advancements in both AI and the software development world over the next few years, and it’s an exciting time to be in the field. I also believe that given the current trejectory, this profession is not a dead end.

Developers may become a lot more efficient over time, leading to smaller team sizes and available company roles. However, startups and smaller enterprises can utilize the same technology and low barrier of entry to launch new products and services that before, would have taken more time and effort.

If I’m completely wrong about the above and programming is obsolete in a few years, well then it’s been a fun ride and you can catch me in a cabin in the woods gardening and making cabinetry.

Latest comments (42)

Collapse
 
raypat profile image
Ray Patrick

While its nice to quickly get an answer from ChatGPT about a given programming topic, pouring over Stack Overflow has significant side benefits. There have been many times when I've been researching a specific topic, and end up learning new things that are (semi) unrelated. I grow as a developer because of this.
I wonder if these new AI tools will end up causing us to inadvertently silo ourselves.

Collapse
 
carlosridg profile image
carlosridg

While the advent of Artificial Intelligence (AI) has undoubtedly revolutionized many aspects of technology and automation, it does not render coding dead. In fact, AI heavily relies on coding and programming to function effectively. Coding is the language through which developers instruct AI systems, design algorithms, and build intelligent models. AI algorithms and frameworks are themselves created and maintained through coding practices. While AI may automate certain repetitive or rule-based coding tasks, it simultaneously opens up new avenues and challenges for programmers. As AI becomes more sophisticated, coding skills will continue to be in demand to create, optimize, and maintain Artificial Intelligence systems. The role of coding may evolve, with a greater focus on developing AI models, integrating different technologies, and ensuring ethical and responsible AI implementations. Therefore, rather than replacing coding, AI serves as a powerful tool that empowers coders to explore new possibilities and advance the frontiers of technology.

Collapse
 
malikshehzad952 profile image
Shahzad malik

I appreciate the perspective presented in this article, although I respectfully disagree with the notion that AI is a fad and programming is dead. While it's true that AI has garnered significant attention and hype in recent years, dismissing it as a passing trend overlooks the transformative impact it has had and continues to have across various industries.

Programming, as a skill, remains as vital as ever, even in the era of AI. While AI may automate certain aspects of coding and streamline certain processes, human developers still play a crucial role in designing, implementing, and maintaining these AI systems. Furthermore, programming extends far beyond just AI, with applications in web development, software engineering, data science, and more.

To gain a more comprehensive understanding of the evolving relationship between AI and programming, I invite readers to explore another insightful article at readmorr.com/is-it-worth-learning-.... It provides a balanced perspective on the value of coding skills and how they intersect with emerging technologies like AI.

Rather than viewing AI as a threat to programming, I believe it offers exciting opportunities for developers to leverage its capabilities and push the boundaries of what's possible. By embracing new technologies and continuously honing our skills, we can adapt and thrive in this ever-changing technological landscape.

Collapse
 
lebinhan profile image
Lê Bình An

From my POV, this is how I see this going: many people from business-side believe that their job are much more important than developer's one, so that their job will be staying around forever and developer will one day disappeared from the product development. My answer to them is just simply like this: "If an AI is capability to replace such complexity work as programming itself, what make you think it will not replace your job first before mine?". This is just a simple fact for anyone who believe they will survive the AI replacement when it really happened.

Everybody think their are the main character in their own story, that their work is the most important, most value contribution, irreplaceable,... Especially when someone does not fully understand the true capability of the tools, they might overrate what it can do. That why so many businessmen believe AI will end the programmer's career - which is not true at all.

While AI - up to this point - can not yet fully replace the whole programming world (or any other jobs) at all, it can replace several fields of each jobs. Take our for example, maybe it will be replace developer who only able of doing general outsourcing tasks like: building basic UIs, coding the very basic CRUD operations,... Other more complex task that required more analysis, optimization,... will remain human required. Programming is easy, anyone can code, just open a console in your console and type: console.log("Hello, World") and waa-lah. But build an application that suit customer's requirement, comfortable for users to use, fast and reliable is completely different story, it is extremely hard, and up to this moment and to the near future, it is not what AI is capable to do, not mentioning all the version control, deployment and scaling stuffs.

Actually, the same thing happened before when not-that-AI-smart tools were born, take Excels for example: back in the early day, many people (especially those business-manage-related one) believe they will no longer need accountant, as the machine has do the work for them."I can do accounting myself, let just fire all accountant and save a lot of money" they might think, but as we have already know, this opinion is completely incorrect, the accountant is still needed till today, no company can operate sufficiently without them, just not as much as they used to, and their job is not as simple as they used to either. Back in the past, many parts of the accountant's work are done by hand writing, manual calculation, manual illustration and so on, therefore a company would need a lot of accountants to complete the work. Since the Excels is introduced, most of those mentioned would be done by computer, therefore not that much accountant will be needed anymore, those who can not work with Excels will be eliminated and those who can work with Excels will stay and get more salary, in the other words: the accountants has adapted with the change of time. Compare to engineering stuff, accounting is probably not as hard to do, but if a person - without proper accounting training - is unable to perform the work themself by using new technology as claimed, why does he/she think that she/he would be able to do programming?

So what do we learned from this? We, the developers, need to adapt too. AI may not be able to replace all of our job completely at the moment, but it is getting better and better everyday, and one day it will be able to complete what it can not right now. So if someone wanted to stay in this industry, they will need to adapt to work with AI. Programmers now will have to know how to work fast and efficiently with AI and they will have to be able to do hard work as all the easy-to-immediate things will be done by AI, those who can not full fill those criteria will be rejected.

Furthermore, as AI growing, it will bring new type of technology, new tech field will be born with little to zero data to pre-train the AI and perhaps, new type of programmer will be born too. The cycle will repeat again and again: a technology is born and the most simple task still required human interaction => new technology appear to optimize the task => new technology is born.... All we should do, and also all we can do, is to improve our knowledge everyday, so we will be able to adapt with new technology when it come.

Collapse
 
malikshehzad952 profile image
Shahzad malik

I appreciate the perspective presented in this article, although I respectfully disagree with the notion that AI is a fad and programming is dead. While it's true that AI has garnered significant attention and hype in recent years, dismissing it as a passing trend overlooks the transformative impact it has had and continues to have across various industries.

Programming, as a skill, remains as vital as ever, even in the era of AI. While AI may automate certain aspects of coding and streamline certain processes, human developers still play a crucial role in designing, implementing, and maintaining these AI systems. Furthermore, programming extends far beyond just AI, with applications in web development, software engineering, data science, and more.

To gain a more comprehensive understanding of the evolving relationship between AI and programming, I invite readers to explore another insightful article at readmorr.com/is-it-worth-learning-.... It provides a balanced perspective on the value of coding skills and how they intersect with emerging technologies like AI.

Rather than viewing AI as a threat to programming, I believe it offers exciting opportunities for developers to leverage its capabilities and push the boundaries of what's possible. By embracing new technologies and continuously honing our skills, we can adapt and thrive in this ever-changing technological landscape.

Collapse
 
ernst_zero profile image
Ernst03

Well, A.I. isn't going away.
I await my I.F. (imaginary friend) who will be my constant companion.
I haven't had that much luck with humans.

Collapse
 
wadecodez profile image
Wade Zimmerman

My strategy has been to use ChatGPT as a code companion. Like instead of making it write all the code for me, I use it to learn a new library or get to the bottom of a pesky bug.

Collapse
 
dennisdupont profile image
Dennis Dupont

LLMs are unlikely to take jobs away from software engineers, but they will enable teams and individual contributors to be more efficient, and get more done with less time and resources.

This is exactly what will lead to layoffs of software engineers. The position may not be dead, but anytime big tech sees "greater efficiency" it means doing more with less employees.

Collapse
 
kyleljohnson profile image
Kyle Johnson

Good article. Well thought out. My only issue is this statement "improved the efficiency of developers"

That is where my struggle is. The real questions are by how much do these tools improve efficiency? Is it worth it? Will it get better?

I have yet to see a dramatic improvement. Call me when I'm able to have two day sprints instead of two weeks.

Collapse
 
shayes profile image
Shayes

Nice post! Your analysis is quite clear and I think you make many reasonable points. I'd like to add a couple of thoughts on this portion:

If you ask a lot of people what their definition of a programmer is, you’ll likely get a lot of responses that boil down to “someone who writes code”.

This is definitely a common misconception. It's useful to make the connection that this is actually closer to the definition of a coder, which is where the confusion comes from.

I think we can generally consider coding to be a subset of programming, which can be considered a subset of computer science. In my experience, programming usually has a lot more problem solving than coding and it's a much broader concept, as you discuss in your post. To put it in numbers, I'd estimate roughly only 30-40% of programming has to do with writing code, while the rest has to do with determining what code (and the structure of the code) to write to achieve the result we want, through a plethora of methodologies.

Collapse
 
jwilliams profile image
Jessica williams

The idea that AI is a fad and programming is dead is a misguided one. AI is not a fad, but a rapidly growing field with enormous potential for solving complex problems and improving efficiency in various industries. However, it is true that AI technologies are rapidly evolving and the skills required to develop and maintain them are changing. This means that traditional programming skills are not sufficient, and developers must adapt to new tools and techniques. However, this does not mean that programming is dead. In fact, programming remains a crucial component of AI development and will continue to be important in creating new technologies and applications.