Introduction
Even though I didn't work at GitHub when they announced Copilot, I remember it piqued my interest. Perhaps, I was mostly ex...
For further actions, you may consider blocking this person and/or reporting abuse
If Copilot is good enough, I will be glad to pay for it.
Tabnine is billed as AI code completion. I know Tabnine does not compare to Copilot. I haven't used Copilot yet - I can't wait to try it.
I have tried the paid Tabnine but it's to wonky. For instance, I use a specific pattern for new function declarations. The first parameter is always (99.9%) preceded with the "required" keyword. Tabnine does not predict required until I get to the i so that it actually slows me down. Jetbrains built-in predictions work better without Tabnine.
Tabnine actually seems to get worse the more I use it. Not surprisingly, I've disabled it.
Interesting! I never heard this perspective before. Let me know how it goes!
Now after a month of using it, Copilot gets some things right. Let me stress that, Copilot gets some things right.
But it doesn't seem to learn about what I do. For instance, when I start a new class my first function is always
Copilot never suggests this method so I type out by hand. Then at the return statement it always suggests return true; - slowing me down.
At other times when I start to declare a method by typing the letter f it will suggest the entire method body including the name but also a function body consisting of maybe 20 or 30 lines of code, all of it, unrelated to what I'm doing. Some of those times it gets the first line including the name correct, but I can't just keep that line. It's all or nothing. Of course, this slows me down.
It also frequently misspells variable names, in sql it misspells table and column names.
Meanwhile Tabnine has improved. Running both Copilot and Tabnine together is not hard because I can put Tabnine in single line mode. The enter key selects the Tabnine suggestion and tab accepts the copilot suggestion.
One of the things I like about Tabnine is in the situation where I need a new variable at the current place in the code block I'm writing. After I finish writing the current statement, including the undeclared variable, I move my cursor to the top to make the declaration - Tabnine correctly predicts the variable name. No other code completion tool that I've used does this. I use long variable names - this helps.
I expect both to get better over time.
Love this feedback. Thank you!!! I too think both Tabine and Copilot will mature with time.
This was a very well discussion, I have found a lot of useful tricks and some I am already aware of!
Well done mate!
GitHub Copilot certainly has its strengths and weaknesses. Here’s a roundup of key takeaways:
Fewer browser searches: Common functional solutions are available after a few words + Tab, and established patterns used in the most used frameworks/libraries are there, too. It’s a great time-saver.
Context matters: “Context” is key here. The AI considers factors like the frameworks or libraries in use, the variables in the current file, and related files and scope in order to produce better suggestions. Patterns are also considered in part of the answer as well.
It's best for experienced developers: Although AI assistance might look like a good learning tool, it’s not. Code suggestions are just that: suggestions. The developer needs to be able to evaluate these suggestions and choose to accept, skip, or ignore them. In order to use the tool properly, it’s necessary to know the context, logic, and expected output to make a smart (and fast) decision. Otherwise, the suggestion can create errors.
If you would like to learn a bit more about GitHub Copilot, I'd suggest checking out this article written by my colleague, Rafael: scalablepath.com/full-stack/ai-pai...
I agree with fewer browser searches and context matters..These are both very true, but I think it's also great for new developers. I actually find that it's a great learning tool, but it does depend on the way you learn. I say this as someone who works at GitHub and has years of experience teaching new developers. There's a skill and learning curve to using Copilot well, so I believe both experienced and newer developers will face similar problems.
That's a great article by your colleague. I will share it with the Copilot team. They will be interested in this.
I wrote this blog post months ago, so some of my thoughts that I wrote in this post have evolved. Check out a newer blog post that I wrote on the GitHub Blog: github.blog/2022-09-14-8-things-yo...
Co-Pilot is good for developers until it becomes advanced and matured (now it's at a very early stage but performing really good) and shrinks down developer job market.
All of my experience so far with AI is that there is no real intelligence in it. It's pretty dumb. It should be ASI, Artificially Simulated Intelligence.
Yeah agreed. But, that simulated intelligence can process and convert natural language into code. It will remove the barrier between people who knows natural language and who knows technical/programming language, which will not ever take away developers jobs fully but will shrink down the market and also devalue the developer's role in a team.
Not shrinking anytime soon.
Thanks! I want to use it but I didn't because it's going to be paid after the test period. Do you know if is it going to have a free plan?
I'm not sure, but I have the technical preview and it would definitely be worth paying for. However, GitHub won't auto-charge you so don't worry about that if you want to use it. If/When it becomes paid, it'll probably just stop working until you purchase the plan.
This was a very well discussion, I have found useful. Thanks
Interesting!