Code completion on Steroids?

Sri Harsha Nitesh
4 min readDec 24, 2021

Preface

When I used to be in engineering when I first started programming(2011), I started with the C language. At that point in time, We used to write code in some C compilers that will not have any advanced features. The only shortcuts we have are basically to compile the code and execute code. even the mouse will have limited power in that application.

Later when I started Java, started writing java programs I started using windows notepad. I have to compile and execute on my own with javac, java commands. later I moved to notepad++ for syntax highlighting. Initially, our faculty won't allow us to use any advanced ID either because it will give us suggestions and it will basically complete our code so they don't want it. They want us to write the code instead of any ID or any editor, so we have to. Write on a simple editor like Notepad or notepad++.

Later we moved to Eclipse and. Started using those codes suggestions. Once we are familiar with the Java methods and all so after moving to a professional job I have started using Eclipse and then slowly adapted. Intelligence, which is by far the most advanced idea I have ever used. It has lot of extensions are we can say plugins. So which are basically useful for productivity. So it makes our work faster. I used to use this plugin called Kadota which will increase our productivity. So much so it basically suggests more relevant suggestions instead of just some random suggestion or first solution that every time your ID keeps so it basically gives you a relevant suggestion. So there are some other plugins that are doing the same thing, giving you relevant suggestions like kite AI and TABNINE, etc. So when I was going through these plugins recently I found there is a new plugin. called GitHub copilot.

Magic starts here with GitHub copilot

GitHub copilot is by far the most advanced IDE code completion plugin I've ever seen. It won't suggest to you some lines of the code. But instead, it just writes code for you based on comment or method name. It gets code from a stack overflow or GitHub public repositories or wherever it can. So let's say you want to have a prime number program you can simply mention in comments, like a method to find whether the number is prime or not, so it understands from your comment or method name and it gets the relevant code (it will get full function since the requirement is simple and already available widely on the internet). Also, it gives you multiple options you can select any of the implementations of your logic. Watch the below video to see it in action. Also, it supports many popular languages.

How to get it?

For now, it is still in technical preview. so you need to go to the GitHub copilot site and sign-up. Once you're signed up and you need to open your IDE and log in to the plugin with a GitHub account. then you're ready to go. You can start writing comments or method names and it gives you the relevant solutions.

Is it useful to you? Should you care about it?

Usually, requirements in the IT field are not as straightforward as writing a prime number or factorial program. So developers need to put in a lot of effort to get what they exactly want the code to do. Most of the stuff is there on the internet, we just need to put things together and solve our own problems. That’s what experience teaches you. That’s what makes you faster in your work. That’s what makes you get paid more. The ability to understand the problem and provide a solution to a particular use case. So this plugin is sometimes useful for experienced developers, to complete parts of their code like a method to read an excel file or make API call with 5 seconds delay, etc. It is the developer who needs to write the specific logic based on the reqriment. For freshers don't use it. I repeat don't use it. You will not learn the basics if you start using this. Use a less intelligent IDE.

“The dumber the auto-complete is,

the better programmer you’ll become”

--

--

Sri Harsha Nitesh

Full Stack Developer with experience in Java, Spring-Boot, Angular. Loves Photography, Badminton, Technology and Travel.