Will GitHub Copilot replace developers?

Debunking Myths about GitHub Copilot replacing developers !

Will GitHub Copilot replace developers?

One might argue that code is no longer the issue since AI like Github Copilot will take over and that we should be concerned about models and requirements instead. Indeed some have suggested that we are close to the end of the code. That soon all the code will be generated instead of written. That programmers simply won’t be needed because business people will generate programs from specifications.

According to the writer of the revolutionary book Clean code by Robert C. Martin, this is a myth and yes nonsense too!

We will never be rid of code because code represents the details of the requirements. At some level those details cannot be ignored or abstracted, they have to be specified. And specifying requirements in such details that a machine can execute them is programming. Such a specification is code.

The level of abstraction of our language will continue to increase and that the number of domain-specific languages will continue to grow. This will be a good thing.

But it will not eliminate code. Indeed, all the specifications are written in these higher level and domain-specific languages will be code!. It will still need to be rigorous, accurate, and so formal and detailed that a machine can understand and execute it.

The folks who think that code will one day disappear are like mathematicians who hope one day to discover a mathematics that does not have to be formal. They are hoping that one day we will discover a way to create machines that can do what we want rather than what we say. These machines will have to be able to understand us so well that they can translate vaguely specified needs into perfectly executing programs that precisely meet those needs.

This will never happen.

Not even humans, with all their intuition and creativity, have been able to create successful systems from the vague feelings of their customers. Indeed, if the discipline of requirements specifications has taught us anything, it is that well-specified requirements are as formal as code and can act as executable tests of that code!

Remember that code is really the language in which we ultimately express the requirements.

We may create languages that are closer to the requirements. We may create tools that help us parse and assemble those requirements into formal structures. But we will never eliminate necessary precision.

So there will always be code and there will always be developers !

--

--

--

Hi, I’m Omprakash, currently working as a Full Stack Software Engineer 🧑‍💻 Always in search of interesting open-source projects for collaboration.

Love podcasts or audiobooks? Learn on the go with our new app.

Cyber Security Association Newsletter-January 2022

100 Days of Programming Day 002

Angular 2+ and Ruby on Rails user authentication

Profiling CPU in Python

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Omprakash Gautam

Omprakash Gautam

Hi, I’m Omprakash, currently working as a Full Stack Software Engineer 🧑‍💻 Always in search of interesting open-source projects for collaboration.

More from Medium

Two Heads Are Better Than One: A Pair Programming Conversation

The 5 Most Popular Backend Frameworks of 2021–0707 Inc.

Popular Resources to Learn TypeScript!

How to Upload Your Code to GitHub Using GitHub Desktop