I trialed GitHub Copilot and used ChatGPT for a bit, but recently I found myself using them less and less.
I’ve found them valuable when doing something new(at least to me), but for most of my day-to-day it seems to have lost it’s luster.
They’re very useful for the boilerplate stuff and it’s somewhat rewarding to type out 3-4 letters, hit tab and wind up with half a dozen lines in a bash script or config file.
They tend to get in the way more for complicated tasks, but I have learned to use them as a psychology trick: if I have writer’s block, I just let them pump out something wrong since it’s easier to critique a blob of text than a blank page.
if I have writer’s block, I just let them pump out something wrong since it’s easier to critique a blob of text than a blank page.
Yeah I mentioned this before while taking to a friend about it. Humans are much better at editing than coming up with stuff from scratch, so seeing the suggestion sometimes is helpful even if it’s wrong.
I just don’t trust these tools to write code as efficiently as I can, knowing they are just backed by LLMs. If I have to spend my time vetting what they spit out to ensure correctness, efficiency, security, etc, then I might as well just do it myself from the beginning. I’m sure some find these tools useful and timesaving, but they’re not for me.
I was skeptical at first, but after using phind.com it partially changed my opinion on using AI for development assistance.
It massively helps me to filter out information and leads me to the right answer.
Like the other day, I searched on how to write some Latex symbols or how to use Java Stream API, it spit out the result immediately that saved my precious time on searching the Internet.
I don’t use CoPilot though.
Is it entirely free? Could not find an answer on their website.
I’ve been using ChatGPT4, through the phind.com web site because it allows one to include web links which phind.com pulls information from and then includes within the context info delivered to ChatGPT4. This has proved to be invaluable when trying to figure out new libraries - I just include a link to their documentation and start asking my specific integration/usage questions.
I’ve also been learning how to write my own Stable Diffusion implementation, and Phind.com’s context packing functionality has been extremely helpful explaining and describing how components work, how they integrate, and explaining the aspects of the papers this work is based I am not confident I completely understand. It’s a tireless explainer, which never gets bored and always responds with a chipper attitude.
I use ChatGPT (with GPT-4) all the time for coding. I’ve developed a feel for the maximum complexity it can handle and I break down bigger problems into smaller subtasks and ask it to write code for them (usually one function at a time, after a detailed explanation of the context in the beginning). I need to review and test everything it produces thoroughly but it’s worth it. Sometimes it helps me complete tasks that would have otherwise taken a day to complete in 1-2 hours.
I also have Copilot installed but it isn’t as useful as ChatGPT. It’s nice to get a smart completion sometimes. I’m even in the Copilot Chat beta which uses GPT-4 and I find it inferior to ChatGPT with GPT-4.
I never touch GPT-3.5 anymore. It hallucinates too much and the quality of the output is very unpredictable. I guess most people who say AI is useless for coding haven’t tried GPT-4 yet.
Oh, and something else. In my experience, the quality of the output depends a LOT on the prompt. If you give a clear, detailed description of the problem, and try to express your intent instead of the specifics of the implementation, it usually performs very well. I’ve seen some people at work write the worst, sloppiest prompts and then complain how useless ChatGPT was.
This is really useful info, can you recommend a tutorial that you feel shows how to effectively use these tools along with traditional style coding? Or would you say it’s just a try and see approach/learn as you go. Personally, I think your comment best demonstrates where we are right now with AI assisted development.
Unfortunately the tutorials out there are mostly terrible. I’ve learnt it by experimenting a lot and seeing what worked for me. Some general advice:
- Subscribe to both Copilot and ChatGPT Plus and try using them as much as possible for at least a month. Some people prefer the former, others the latter, and you can’t know in advance which.
- Always use the GPT-4 model in ChatGPT but keep in mind that there is a 25 answers/3 hours rate limit. So try to squeeze as many questions and information into your messages as possible. GPT-4 is miles ahead of any other publicly available LLM, including GPT-3.5.
- Tips for ChatGPT:
- Give detailed, well-written prompts. Try to describe the problem the same way you would to a coworker.
- After describing the problem, ask ChatGPT if it needs any additional information to implement the code well. It usually asks very insightful questions.
- Answer the questions and then ask it to break down the problem into individual functions and then, in separate messages, ask it to implement them one by one.
- Remember that the context window is limited, after some time it won’t remember the beginning of the conversation so it’s worth repeating parts of the specification later.
- Tips for Copilot:
- Write the method signature and have Copilot implement it for you
- Write a comment and have Copilot implement the corresponding code
- Paste the code as a comment in a different language, write “the same logic in $lang2” in a comment, and it will translate it from $lang1 into $lang2.