What it was like to spend a month using GitHub Copilot and why I plan to not use it (next month)

I spent a month working on a real project using Elm and Clojure and trying out GitHub Copilot.

It was a fun and interesting experience with a few twists.

Read my thoughts at: What it was like to spend a month using GitHub Copilot and why I plan to not use it (next month) - DEV Community

Would love to read about other Elm developer’s experiences with Copilot! Cheers.

1 Like

I’ve been using Copilot at work and home for a few months now, mostly with Elm. I also spent a week without any internet access (i.e. no Copilot access). For me it’s just an improved/extended autocomplete and I’m happy to have it. Refactoring code at work is so much easier because it can autocomplete many lines of code instead of just 1 word at a time like traditional autocomplete.

For the 1 week I couldn’t use it, I was disappointed. I could still code perfectly fine, but it was a similar feeling to using Notepad++ instead of an IDE.

I’ll also add that I enjoy doing code reviews, so reviewing Copilot code feels normal for me.

Tying the 2 previous thoughts together, I like Elm’s boilerplate because I find it easy to read. It requires little effort for me to understand what’s going on because the language is so explicit compared to compared to most other languages. And since I enjoy reading code, it kinda matches with my not minding “reviewing” Copilots suggestions.


Along similar lines, I did use GPT-4 for a while through a separate tool. That beta recently went to v1.0 and is no-longer free. I thought for a good day about whether I’d pay for it and decided not to because I rarely found it useful. Nine times out of ten it was easier/faster for me to just search the internet myself. Copilot on the other hand is very much worth the cost for me, and I’d happily pay for it.

2 Likes

I really liked this input. Makes a lot of sense. In the place I’ve been working for the past 14 years, we (unfortunately) don’t have a code review culture (nor pair/mob programming :face_in_clouds:).

I guess it might be a nice skill to have when using Copilot indeed.

Thanks for your reply!

I should clarify that a little I suppose. I don’t think of doing code reviews strictly in the sense of work. I enjoy reading other peoples’ code outside of work because it gives me a different perspective on writing/reading code. Similar to how an author might read a variety of books to learn how other people tell stories.

2 Likes

Very interesting, thanks for sharing. I haven’t tried Copilot, but have tried using chatGPT to put together shell scripts (since bash is not my strong suit). When I tried to get it to generate entire scripts or functions, I found it frustrating and annoying since there were so many subtle misunderstandings. Where I found it actually useful was as an interactive cheat sheet: Asking it how to check if a string is empty, how to pass all command line arguments on to another function, etc.

Generating code with AI might be the same kind of “deal with the devil” as mutability and side effects.

One thing I love about using Elm is that you can always continue to progress at a slow and steady rate over time. I feel like this is a competitive advantage that Elm gives you. Writing the same app in Javascript, you can move much faster at start BUT things often slow down exponentially as your program grows. You can’t trust your changes, it becomes too easy to introduce errors, etc. The same thing that allowed you to move fast earlier is now your Achilles heel.

Working with tools like copilot might make some things quicker and easier, but maybe the price you pay over time is that you understand your code less, you introduce subtle bugs like the author mentioned, and even when you do understand what you need, you have to now fight with your own AI assistant.

1 Like

I had good experience using a copilot. I could move fast and didn’t check docs pretty often on how to write some basic stuff. For example, I finished my toy project by the weekend. Before that I managed to complete only ¼ of the project for the weekend.
For complex stuff I used the ChatGPT 4 model. It’s smarter than copilot and can help to refactor blocks of code and suggest more idiomatic code. To learn more of ELM I suggest switching off copilot and writing simple stuff from memory. But since ChatGPT is a great teacher so I would learn Elm right at the ChatGPT, it would be more fun and easy.

2 Likes

I’m sold on Copilot, but it’s a different style of programming. This is what works for me:

Golden Rule of Copilot:
Copilot is ONLY for writing code that you already KNOW how to write.

I think the author figured that one out.

Silver Rule of Copilot:
You are no longer “writing code to do X”. You are now “writing code to do X, in a way that will enable Copilot to generate useful code”.

That probably means your code has to be clearer than usual. Better variable names, function names, comments, organization, etc.

In short: it takes up-front effort to get Copilot to do your work, and it won’t always work. Focus on using it to gain a net increase in productivity.

1 Like

A random thought - I read that people are now creating personal AIs using GPTs, that they train on the data (documents?) on their PC and use to mine their own information.

Is there some way we can do this for our own code? I’d like an AI that I train to write code like I write code.

4 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.