DEV Community

Discussion on: Why Use GitHub Copilot And Copilot Labs: Practical Use Cases for the AI Pair Programmer

Collapse
 
klausdonnert profile image
Klaus Donnert

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.

Collapse
 
blackgirlbytes profile image
Rizèl Scarlett

Interesting! I never heard this perspective before. Let me know how it goes!

Collapse
 
klausdonnert profile image
Klaus Donnert • Edited

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

    public function init( required cfg config ){ 
        /*some code*/ 
        return this; 
    }
Enter fullscreen mode Exit fullscreen mode

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.

Thread Thread
 
blackgirlbytes profile image
Rizèl Scarlett

Love this feedback. Thank you!!! I too think both Tabine and Copilot will mature with time.