In my experience, Copilot does a fairly good job when you already know what you’re doing, but can’t be bothered to write the code yourself.
For example, basic stuff like read data from that file, use dplyr, remove these columns, do these calculations, plot the result using ggplot2, label the axes this way, use those colors etc. Copilot gives you the code that does roughly what you want, but you usually need to tweak it a bit it to suit your preferences. Copilot also makes absurd mistakes, but fixing them is fairly easy. If this is the sort of stuff you’re doing, copilot can indeed boost your productivity.
However, if you don’t know how to do something a bit more exotic like principal component analysis, and you ask copilot to do the job for you, expect plenty of trouble. You may end up on a wild goose chase, using the wrong tools, doing unnecessary calculations and all sorts of crazy nonsense. When you know what you’re doing, you can ask a very specific thing. When you don’t, you may end up being too ambiguous in your prompt, which will result copilot leading you down the wrong path.
You can do it this way too, but before implementing a single line of that garbage code, you absolutely have to ask copilot a bunch of questions just to make sure you really understand what you’re doing, what the new functions do, where do you really want to go etc. You’re probably going to have to tweak the code before running it, and that’s why you need to know what you’re doing. That’s the one big area you can’t outsource to copilot just yet.
But is it still faster than reading the documentation and building your own experimental tests? If you spend an hour and get a pile of broken garbage, then certainly not. If you spend a bit more, ask plenty of questions, make sure you know what you’re doing, then maybe it is worth it.
I 100% agree. I especially love when copilot literally just starts making up shit that doesn’t work or doesn’t exist. Like it can’t be wrong. It just freaking guesses… God forbid it can’t admit it doesn’t have enough data to answer the question.
Best part is when you say “that command doesn’t exist” it’s like “I apologize. Here is a real command to accomplish your task”
SMH
Again, to your point, I agree that copilot is amazing if you already know how to write the code you want. We’re smart enough to know that the suggestions will work for our task. It’s definitely not smart enough to replace you
Yeah, I was lucky that I snuck into my company’s pilot program for it.
I’m impressed at how often it predicts what I’m about to do. The code almost always needs a slight bit of editing, but it almost always at least shaves a bit of time off of whatever task I was doing.
I no longer go straight to stackoverflow, I always ask the copilot first. Sometimes even just phrasing the question in natural language, something I wouldn’t do it trying to find it via search or stackoverflow, is kind of like rubber duck debugging, and I’ll come up with the answer while writing it out.
It reuses MY OWN CODE STYLE. So if I ignore a suggestion and setup a try catch in my own quriky way it’ll actually reuse it later on when I’m scripting. This works best when you add comments for the sections you write FIRST. So you comment # create array for x data it’ll do that or try catch for query it’ll give you a suggestion for the next block right away.
DEBUGGING. github copilot can see your terminal and script so it’ll give you a detailed breakdown and suggestions. Blew my mind the first time.
The axis aren’t labeled properly. That’s likely why we can’t make sense of the diagrams.
Everyone elses life oscillates over time between positive and negative… OP’s life’s Y is X cubed. And it somehow contains big blue dots on the whole numbers… They consider that odd. And I’d agree.
Honestly I think the burden of context rests with the user. This is unfriendly, of course, but this is one of the times you are reminded the world doesn’t care. Nothing is “nice”. Security/privacy/ad intrusion is the individual’s burden.
I’d even argue that most platforms are directly adversarial to a users individual privacy. User data is such a hot commodity these days that it’s even beyond planning your own privacy, but you’re essentially farming out your data for free.
Disclosure: I use Discord and plenty of similar apps, but it’s important to protect yourself.
Pick a library you already use with many sub-dependencies. Make a new library with your evil code. Name it in line with the step 1 library. Oh hi there “Framework.Microsoft.Extensions.DB.Net.Compatibility” you couldn’t possibly have anything bad going on in you, plus you sound really boring to review, I’m sure it’s fine.
The C standard library function int rand(void) returns a pseudo random integer between 0 and RAND_MAX (which should be at least 2^15, depending on the actual implementation).
Depending on the distribution of the pseudo random numbers, it will be true for over > 99% of its applications.
That reminds me of an old paper about how to create a compilable C program out of old game ROMs. Decompile to assembly. Implement a bunch of #define statements that implement all the ASM statements. Now compile it to a native binary on whatever platform.
Won’t likely be faster or more accurate than regular emulation methods, but it’s a neat idea considering that the source code on all this stuff was lost a long time ago.
Yeah, I’m chalking that up to Python’s untypedness. I was going to write “integers”, but technically that function takes a “num”, whatever that is.
For all we know, it could be a string, asking ChatGPT to hack the government. Is that even? Probably no. Or None. Or T-Rex. Without reading the entire function, we don’t know that it’s not returning T-Rex.
Thankfully, it doesn’t matter. Just stick the result into an if-else, then False and None will land you in the else-branch. And both True and our Truthiness-Rex will land you in the if-branch. Just as Guido intended.
programmer_humor
Top
This magazine is from a federated server and may be incomplete. Browse more on the original instance.