1

Are You Going to be Replaced by Code-Generating AI?

 2 years ago
source link: https://blog.bitsrc.io/are-you-going-to-be-replaced-by-code-generating-ai-adb182686bfe
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Are You Going to be Replaced by Code-Generating AI?

Why you should learn to think like a software architect

Image by Erik Stein from Pixabay

Github has been shaping the way software developers work for a while already, focused mainly on the way they do version control of their code, and how they share their work with others.

Tools to simplify the way we work together, the way we review each other’s work, they’ve made the concept of code repository evolve up to a point where they’ve become a standard in our industry.

Recently Github announced their latest piece of innovation to help move the industry forward: Copilot a code generation tool that learned from all of our publicly available code.

The question now is: will it actually help?

The code-generation trend

The first thing we need to understand is that code generation isn’t new. In fact, multiple tools have been working on different approaches, some of them like Genexus try to remove the need for writing code altogether and others, like Copilot are trying to help developers write code faster.

Now, this is once again, not a new idea, other companies have been trying to achieve the same through different means, you have Codata, Tabnine, Kite, Augmented Coding, and many others.

Have you heard of any of these before? And most importantly, have you tried any of them so far? The basic idea is the same: an IDE plugin, it’s the underlying tech that changes.

But the main question to ask is: Do you really trust AI to write code for you?

Given the current state of AI and how contextual and unique the task of writing code feels to us, the idea that a Machine Learning model can write code for us feels like a sci-fi story. Are we really ready for it?

How good is it?

Code-autocomplete is far from being a reliable tool, which is why it is just a suggestion that may help save you some time. None of the products I mentioned above are designed to leave you out of a job — no yet anyway.

I know, that sounds a lot less appealing than thinking a bot can write all your code for you. However, it’s still a very interesting step forward and it had to be taken.

Right now, Github’s Copilot, trained using the entire set of open-source code repositories publicly available on their platform, is capable of producing actually relevant and correct suggestions around 57% of the time.

This is still a major step forward, consider that the AI is capable of understanding the context of your code, the natural language inside your code comments, and returns a piece of logic using the same programming language that you’re using. And mind you, that code might need a tweak here and there to make it 100% compatible with your overall logic, but it’s still a major help, especially if it’s doing something you’ve never done before.

Consider the difference between IntelliSense and text-based auto-complete. While the latter uses other files to try and guess what you’re writing and give you a basic suggestion, the second one will take into consideration your context. So if you’re writing a . after the name of a variable that is an object, it’ll only suggest valid public instance methods or public properties.

Now code completion, like the one provided by Copilot is the next logical step.

But where is it leading to?

Are we seeing the end of the road for developers?

Not trying to scare you here, but I always like to think about how technology can evolve, and what kind of effect that might have on society.

In our case, the smarter our AI’s get, the better code they’ll write. And while you might argue that as humans, we still have that uniqueness that turns writing code into a work of art, the question remains: how important is that going to be for companies vs having the ability to buy a product that delivers 99% of the required code 10x faster — at least — than any human developer? And of course, with no errors, missing colons or any classic silly bug.

And how ironic is it that this revolution can only be achieved by using the code we so eagerly shared publicly?

With the evolution of these types of technologies, we’re slowly becoming the assembly line worker of the software development industry. That job is almost entirely doable by robots right now and give it 5 to 10 years, and it’ll disappear as a valid option for humans.

Realistically speaking, we all know that in general AI is far from the dreaded T-800 Terminator or the good old HAL that refuses to open the bay doors for us. Right now it’s at a level that it can act as an assistant to its humans counterparts. Even the most sophisticated solutions, such as IBM’s Watson, with its amazing Jeopardy skills, is being conceived as a glorified assistant for highly skilled professionals.

We’re safe for now, we still have a few years to learn how to co-exist with bots that can write code for us. But we’re not safe forever, because while there might be industries where new algorithms are needed every day, there are others where we’re copy&pasting code for a living.

Let’s be honest for a second: in how many actual different ways can you write a contact form? Or how many different log-in algorithms have you seen in your career? What about when it’s time to write a Web application, don’t you already have some design patterns that are perfect for it? And when you have to save data to your database? Are you really writing that complex of a logic? Or are you just copy&pasting old code and updating some bits here and there?

I can keep going, the reason why we’re seeing these bots right now, is because a lot of companies are seeing these trends as well and they’re identifying ways to optimize them. Right now that translates to helping developers code faster, tomorrow? It’ll be by replacing them with something faster and more accurate than them.

So are we really out of a job?

Well, if the T-800 is coming and your name is Sarah Connor, then you’re really out of luck, aren’t you?

AI will leave us out of our jobs, that is, if we don’t change our names (err roles). Like many other professions in the past, automation — and now AI — tends to replace the repetitive human activity for a machine that never gets tired and can keep working even during sick days.

So what are humans to do then? Do we bend over and welcome our new AI overlord?

Not yet.

AI is great for very narrow use cases, like moving boxes around, driving cars (this one is still debatable) and having sub-par conversations with us (hello customer service chatbots, I’m looking at you). All we need to do then is move away from those uses cases and adapt by turning our eyes into the activities that still require human involvement.

In our industry that translates to requirement gathering, algorithm, architecture and platform design, and the like. Essentially anything that requires real-world understanding, business knowledge and common sense. If we leave coding to computers, then we still need to tell them what to code, and how to code it. The human factor can still be part of the design of a piece of software, it just won’t be part of the code.

Software architects, for example, need to understand business requirements, match them with their domain-specific knowledge and create the blueprints for a solution that tackles every use case proposed and requested by the client. And while certain patterns can be used to tackle certain types of problems, a full architecture normally marries multiple patterns together in a way that only a human can.

Don’t get me wrong, this is not a battle against AI, that was never the question. We need AI in our lives because it shows us the kind of tasks that are not meant for humans. It gives us the ability to move on to the next best thing without losing what we were doing before. AI is our ally, not our enemy, and while it might seem scary that we’re slowly but surely seeing the end of the software developer as we know it, it’s also an opportunity to start thinking about the next step in our career, to look up and away from the code and into higher levels of abstraction. It’s showing you the next role you’ll have to play, so start preparing for it right now.

Developers aren’t going away, not today nor tomorrow. But they will eventually, and that is thanks to AI and initiatives like Github’s Copilot.

Is that a bad thing? Not really, but it’s very scary though.

What can you do about it? Start paying more attention to other areas of our industry, start getting involved with architecture design, learn how to tackle software projects from a higher level of abstraction. Mind you, don’t stop coding, we still need that and we will for a while. But start looking elsewhere as well.

Bit: A tool for human architects

Repetitive jobs are not meant for humans. They are time-stealers and fun-killers. Don’t wait for AI to rescue you — start building your apps with a component-driven approach.

Use Bit to:

★ Create independent components with well-defined APIs

★ Build and version each of them (independently)

★ Push them to a remote component hosting

★ Compose them together to create multiple frontend and backend applications


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK