Useful resources for learning GitHub Copilot and AI coding tools. I will continuously update this list.

GitHub Copilot and Alternatives#

LLMs#

  • Codex by OpenAI
  • SantaCoder by HuggingFace [HN: https://news.ycombinator.com/item?id=34097642]
    • “Is anyone else here building AI programming services based on models like this? I see a lot of comments saying the models can’t do much programming. But I just suspect there must be a silent contingent that is also working on services like that. And maybe less likely to promote the abilities of these models because it encourages competition.”
      • “We’re building tools like this at Grit: https://www.grit.io/ These kinds of models are particularly good at repetitive, boring work like refactoring legacy code and completing framework migrations. Unlike Copilot, we’ve specialized specifically in these areas and completing them end-to-end (instead of just sitting in the IDE, we open already-verified PRs).”
      • “There’s replit. Constantly announcing new features around such models. They’d introduced “ghostwriter” a while back and yesterday or so they announced ghostwriter chat.“
    • “There are a bunch of really good ideas used to train this model - multi query attention, infilling, near deduplication and dataset cleaning.”

ChatGPT-like#

Experimental#

  • Copilot Labs: https://cs.github.com , GitHub Next (We are a team of researchers and engineers at GitHub who investigate the future of software development.)
  • GitHub Copilot CLI (2023) by GitHub Next team. They investigates the future of software development.

Tweets#

Examples and things I learned from various Tweets:

Articles and Blog Posts#

HN#

Papers#

Opinions#

  • FauxPilot

    • FauxPilot: It’s like GitHub Copilot but doesn’t phone home to Microsoft

      Not a perfect world

      FauxPilot doesn’t use Codex. It relies on Salesforce’s CodeGen model. However, that’s unlikely to appease FOSS advocates because CodeGen was also trained using public open-source code without regard to the nuances of different licenses.

      the primary goal of FauxPilot is to provide a way to run the AI assistance software on-premises.

      GitHub, in its description of what data Copilot collects, describes an option to disable the collection of Code Snippets Data, which includes “source code that you are editing, related files and other files open in the same IDE or editor, URLs of repositories and files paths.”

      Dolan-Gavitt said he sees FauxPilot as a research platform.

      “My personal feeling on this is I’ve had Copilot turned on basically since it came out last summer,” he explained. “I do find it really useful. That said, I do kind of have to double check its work. But often, it’s often easier for me at least to start with something that it gives me and then edit it into correctness than to try to create it from scratch.”

      Updated to add

      Dolan-Gavitt has warned us that if you use FauxPilot with the official Visual Studio Code Copilot extension, the latter will still send telemetry, though not code completion requests, to GitHub and Microsoft.

  • Amazon Codewhisperer

    AWS developer tools like CodeCommit are just horrible. Seems like they crank out something with just the minimal amount of features to say they are competitive.

    The reason they announced this is specifically to capitalise on GitHub CoPilot becoming paid.

    Seems much more limited than copilot regarding supported languages.

    This at least seems directly in response to code copyright/licensing concerns raised with CoPilot.

    • At least this will tell you the code it generates is close to something in its training set and tell you the license that code is under. So it’s got that going for it.

    Classic AWS…ripping off GitHub CoPilot.

Hacks#

  • charliermarsh/autobot - An automated code refactoring tool powered by GPT-3. Like GitHub Copilot, for your existing codebase.
  • copilot-hijacks - A collection of prompt-scripts that can make Copilot suggest fonts, translate languages, debug errors, and more.
  • prompt_builder_for_copilot - An assistant to walk you through crafting your perfect, explicit prompt for GitHub Copilot.
  • Code-Pile by Carper.AI - This repository contains all the code for collecting large scale amounts of code from GitHub.

Awesome Copilot#

Copilot vs ChatGPT#

  • Is ChatGPT3 an alternative to Github Copilot?

    Been surprised to see that ChatGPT3 is not only able to generate code, but also explain it.

  • How does ChatGPT compare to GitHub Copilot for programming?

    ChatGPT (which I also didn’t use extensively yet) for me adds a very different quality. You can ask it to debug, explain why a certain error occurs, and keep asking it until the code actually works. And it not only debugs or writes code, it actually explains it. It explains why errors occur, what might be an issue, gives you alternatives.

    I would love to have this functionality from within programming environment; I really hope that Copilot gets updated with some of this functionality. At the very least, I hope that ChatGPT will receive a subscription-based API, so that I can access it programmatically at some sensible price.

  • How does ChatGPT compare to GitHub Copilot for coding?

    ChatGPT is good to get broad architectural outlines while Copilot is excellent for short snippets. Both do reasonably well but copilot is better integrated into vscode and it’s a nicer UX.

    Copilot uses the codex model while ChatGPT uses the bigger, more generic gpt3 davinci model

  • ChatGPT vs Github Copilot

    I have been using copilot every day professionally for a couple of months now, and ChatGPT this week.

    1. For asking general questions, ChatGPT is generally easier to work with. E.g. ‘This code I wrote isn’t working, I’d like it to do X, but it fails at Y, can you tell me why it is failing?’

    2. For one-off utilities and functions in languages I don’t regularly use, they’re both excellent. For ChatGPT, I would write it a prompt asking what I want it to do, and for Copilot I would open a new file and describe the desired behavior in comments.

    3. Once it your Copilot ‘gets the hang of’ your codebase, it is invaluable. It learns your style conventions and will adapt to your suggestions. It really speeds up the amount of characters you can get on to the page, and makes refactoring easier as well.

    4. When I want some inspiration for a way to approach a given problem, I find copilot’s suggestions are all a bit samey, with minor variations. It is easier to use ChatGPT for inspiration / exploratory work because you can tell it what parts you don’t like and how you’d like to change it, and even get it to give you its opinion on whether that’s a good idea.

    I any event I think both are very useful tools to have in your toolbox and I recommend them to my teammates.

    I am using github copilot for almost an year and recently came across chatgpt here are couple of key points on how to use one of them in a given scenario.

    • GithubCopilot works very well if you are using it from the start of the project it can quickly fill up functions, assign variable names , pick up algorithms for sorting and selecting and have a general idea of how you code, this is a key point because most of its suggestions are based on your style of programming, using copilot at the middle of the project it seems to provide solutions that needs to re write the existing solution that i have.

    • Chatgpt is more like a AI assistant where you can provide it a piece of code and ask it to optimize it it surprisingly comes up with a great and easy solution which is code when you want to refactor your code. Chatgpt is also nice in asking for suggestion like for example when to use Action and Func and use cases of anonymous functions a/c to your project for safety and security purposes.

    Summary: Both works in different way and provides optimal solution if you ask we how to define them i would say. GithubCopilot works with you and makes you work faster and effective where Chatgpt provides you improvements and alternative methods to do your work efficiently.

    i was using Tabnine for a long time and switched recently to GitHub Copilot. I feel tabnine is less annoying and more predictable than Copilot. Regarding ChatGPT vs Github Copilot vs TabNine I’ve tried to combine my experience in an article, but i think i will go back to tabnine.

    Both ChatGPT as well as Copilot use a modified version of the GPT 3 model so technically they’re rather equal. The difference is in the models that these two AIs have been trained on. Copilot uses all the endless resources found on Github and is clearly geared towards writing code while ChatGPT is trained with a model that is aiming to resemble natural language. I guess that’s probably the key difference.

  • Writing Code with Github Copilot and ChatGPT Together — I

  • ChatGPT is significantly superior to copilot, when will it get upgraded?

    • General consensus from the comments:
      • ChatGpt is far superior to Copilot.
      • You should not “affirm” your beliefs so strongly without actually informing yourself properly on a subject.
  • Battle of the Giants: GitHub Copilot vs ChatGPT ⚔️⚔️

References#

I referenced the following stuffs while creating my learning resources: