Its a long weekend here (the office is basically dead until Tuesday), so instead of doing anything productive with the extra day I sat down and actually wrote up my notes on GitHub Copilot, which Ive been using more or less daily since it came out of the technical preview and went fully available a couple weeks back. $10 a month, or $100 if you pay for the year up front, free if youre a student or you maintain a popular enough open source repo. I paid the $10 out of pocket because I wanted to see if it was worth expensing, and honestly Im still not 100% sure.
First the good part, because there is a genuinely good part. If youre writing boilerplate, Copilot is kind of magic. I was hacking on a little script to parse some CSV exports from a project tracker at like 11pm on a Wednesday, half paying attention to a rerun of some show in the background, and I typed a comment that just said # read csv and group by status and it spat out something that basically worked. Not perfect, but close enough that fixing it took thirty seconds instead of writing it from scratch. That happens constantly. Function signatures, test scaffolding, the fifteenth time youve written a try/except around a requests.get call this month — it just knows. Its trained on an unbelievable amount of public code and it shows.
Now the part where I get annoyed. It writes regex like it learned regex from a StackOverflow answer with two upvotes and a comment underneath saying "this doesnt handle edge cases." I asked it to help validate an email field once and it gave me something that would have happily accepted a@a as valid. Fine for a throwaway script, not fine if you paste it somewhere without reading it, and Ive already caught myself almost doing exactly that twice. Theres a specific kind of confidence to the suggestions: they show up gray and tempting and already indented correctly, and that makes you want to just hit Tab and move on. Thats the actual risk here, not that its bad at code, its that its good enough to make you stop reading carefully.
I also dont love how often it tries to write comments that arent true. Ill have a function that does one thing and it'll suggest a docstring claiming it does something slightly different, presumably because that pattern showed up more often in training. Small thing, but it means you cant trust the comments Copilot writes any more than you'd trust comments from a junior dev who's optimizing for looking done rather than being right. Which, fair, most junior devs pick that up from somewhere too.
Setup-wise its just a VS Code extension, sign in with GitHub, done. Took maybe four minutes including the part where I had to remember my GitHub password because I hadnt typed it manually since 2019 (1Password does the rest, as it should). I tried it in a couple other languages besides Python (some Go, some embarrassingly rusty CSS) and it's noticeably weaker outside the languages that dominate GitHub. Which makes sense given how the thing is trained, but its worth knowing before you get your hopes up for whatever niche language your job makes you write in.
Would I recommend paying for it? For someone doing a lot of repetitive scripting or working in a well-trodden language, yeah, probably, ten bucks a month is nothing compared to what an hour of your time is worth. For someone doing more unusual or security-sensitive work I'd be a lot more careful, and I'd turn it off for anything touching auth, payments, or crypto (the encryption kind, not the currency kind, though I guess also that kind). I've actually started toggling it off entirely when Im working on anything where a subtly wrong suggestion could be expensive to miss, which defeats some of the point but also feels like the responsible way to use it right now.
Anyway. Long weekend, mediocre weather, decent excuse to finally write this down instead of leaving it as a half-finished note in Obsidian since the middle of June. Back to actual work tomorrow, or Tuesday realistically, lets be honest with ourselves.