Live data from Hacker News

Coping with Copilot

sigarch.org

351–360 of 463 posts

Re: Coping with Copilot

#351

Earlier quoted context omitted.

> I wonder if they should make a special open source license, that disallows use of the source code for the purpose of training something like Copilot. Since Microsoft uses material for copilot outside of licensing on the basis that it is Fair Use, that would probably have no effect in practice on whether or not the material is used in training something like Copilot. For that to matter, you’d first have to win a law…

> Since Microsoft uses material for copilot outside of licensing on the basis that it is Fair Use, that would probably have no effect in practice i think that any formal violation of an open source license would be very bad in terms of public relations - even if they can claim fair use.

Of note, a non-human cannot hold a copyright.

Anything generated by copilot, which if it is a derivative work, is not something that copilot can hold the copyright on.

From the auditor's perspective it doesn't matter if you copied it out of stack overflow, from some GitHub search, or copilot. You, the human, didn't check the license / plagiarism detecter. It is you, the human, claiming copyright on the work you are creating which may incorporate material from other sources.

Copilot isn't claiming fair use.

You could argue that the model that copilot runs from is a derivative work (and this is going to be interesting when it gets to the courts, because, frankly no one will come out the 'winner' on this when trying to explain it to a judge) - but that's not the code that a human is claiming to be their creative work and is ultimately the license violation.

Personally, I (not a lawyer), believe that copilot is on ok ground - but anyone using it needs to do their due diligence in verifying that the code that they've incorporated is licensed appropriately - just as if they've copied something from Stack Overflow - who knows where that copied was copied from.

I have less concerns with identifiable code from copilot than humans not caring about the licenses of their source material in creating human generated content.

Re: Coping with Copilot

#352
post #248

Earlier quoted context omitted.

> I find this a very puzzling reply, and it may be that I misunderstood to what you are referring with the "they're" in "They're, for the most part, things we tried to put in libraries (or more ideally language standard libraries for a lot of things.)" It might refer to "the things Copilot does for you" or alternatively "the things you need to know yourself to be in industry." I do see how that could be ambiguous. Th…

To be clear, I take it that you are saying that a) everything Copilot is currently capable of can be found in libraries, and consequently b) learning how to do those things oneself is a waste of time, so c) it does not matter if people entering industry as software developers cannot do that themselves. My point is that even if this is the case for a majority of such people, we still need the people who make all the l…

> To be clear, I take it that you are saying that...

I'm going to answer these individually because the answers are all different.

> a) everything Copilot is currently capable of can be found in libraries,

The vast majority, perhaps not 100%.

> b) learning how to do those things oneself is a waste of time

It's a waste of time if the pupil doesn't actually want to do it. If they do want to do it, there's probably quite a bit of value to be had. It's personal value for the student, not as a field.

Sort of like how I got quite a bit of value out of reading the old ITS documentation I found on github once, but I don't think I'd recommend it as part of the standard CS curriculum.

> c) it does not matter if people entering industry as software developers cannot do that themselves.

Correct. Assuming cannot means "without googling".

> My point is that even if this is the case for a majority of such people, we still need the people who make all the library contents that are beyond Coplilot's capabilities, and we both seem to agree that its capabilities are limited.

Sure, but that's a relatively small number of people. My point is that if using these tasks to measure aptitude is causing you problems because copilot exists, it's perfectly fine to just use something else.

> The thing is, a world in which a lot of people can be productive software developers, without even being capable of writing the sort of algorithms Copilot is capable of, is highly dependent on the people who design and write the libraries that implement not only those algorithms, but also a great deal else that is beyond Copilot's capabilities. The industry may not need everyone to be able to do that, but then it is entirely dependent on those who can.

Fair, but that's already the situation we're in with programming languages. We're entirely dependent on those as a field, and the vast majority of practitioners wouldn't be able to create a compiler or be anywhere near competent in language design. I would put the large frameworks (e.g. spring) in the same category.

These trivial algorithms become like the opcodes for a particular processor. Someone has to know them, but basically everybody not working on a compiler can ignore it (unless it particularly tickles your fancy).

I do have one small issue with your wording, however. Specifically the use of the word "capable" in this bit:

> without even being capable of writing the sort of algorithms Copilot is capable of

The people going into the field definitely need to be capable of implementing these sorts of algorithms. You're going to fail at so much of software if you aren't capable of something that trivial. It just doesn't need to be taught. These algorithms can be looked up if they're ever required. The ones that come up frequently will be naturally memorized and the others won't. This is a field where you have to learn new things, often without any sort of available expert in the subject, likely this will happen with an entire language or how to use a particular library.

I'm comfortable with copilot the same way I am comfortable with a calculator. Sure, if you have to, you should be able to do a logarithm with a slide rule, but I'm ok with not teaching university students how to use a slide rule. And if a professor assigned a bunch of homework under the assumption that students were going to use a sliderule, and the students all used calculators, I'd tell them to just drop that particular lesson.

Re: Coping with Copilot

#353
post #126

I understand the problem here and I sympathize with professors in these circumstances. Learning the fundamentals will remain important. But as others have pointed out: if students are unwilling to learn, or are taking shortcuts, it will ultimately hurt them in the long run. One thing tho is that things like Copilot put the lie to the hypothesis (propagated mostly by the Google-style job interview) that intensely codi…

> if students are unwilling to learn, or are taking shortcuts, it will ultimately hurt them in the long run That's a very limited, and dismissive view. If you allow students to use copilot, you're handing out certificates or diplomas to people who can't code. That will very quickly erode the value of your institute's certification, and with it, that of the other students. Otherwise, why not give everyone an MSc in CS…

> If you allow students to use copilot, you're handing out certificates or diplomas to people who can't code.

I've given a couple hundred technical interviews over the last 10 years. This has been the case for a long, long time—even from fancy colleges.

Re: Coping with Copilot

#354
post #328

Earlier quoted context omitted.

Yes. It's especially amusing given that much of the other things you note are actually intended for commercial use (i.e. sales) from the start, unlike open source software. I just don't understand the OSS community sometimes. "Software should be open and free (libre) for me to study and modify" includes what Github did for copilot. If you don't want your software to be free (in either sense), don't host it on an open…

Your argument fails to distinguish between "open source" and "free software". Copyleft, free software, GPL style licenses do not have their source open purely for the purpose of studying and modifying. Their licenses also require that derivative works also be free and that such modifications be distributed. Copilot does not comply with this. And so violates the spirit of those licenses, and probably also the letter o…

I literally use “libre” and “gratis” to make that precise distinction.

And it’s at best questionable whether copilot is derivative of the code it is trained on.

Re: Coping with Copilot

#355
post #328

Earlier quoted context omitted.

Yes. It's especially amusing given that much of the other things you note are actually intended for commercial use (i.e. sales) from the start, unlike open source software. I just don't understand the OSS community sometimes. "Software should be open and free (libre) for me to study and modify" includes what Github did for copilot. If you don't want your software to be free (in either sense), don't host it on an open…

Your argument fails to distinguish between "open source" and "free software". Copyleft, free software, GPL style licenses do not have their source open purely for the purpose of studying and modifying. Their licenses also require that derivative works also be free and that such modifications be distributed. Copilot does not comply with this. And so violates the spirit of those licenses, and probably also the letter o…

Open source is usually referring to the OSI definition which is essentially identical to the FSF “free software” term.

And by that logic, gpt3 and dall-e are also copyright violations. Except this has never been proven to be the case.

Re: Coping with Copilot

#356
post #233

Earlier quoted context omitted.

I might have missed it today in your articles or comments here--it's been a hectic day--but has there been some study of just how different code would be given that the students are using the same text from questions? Is there randomization intrinsic to Copilot, or is it just because minor variations in textual input causes code to be so different? My wife taught CS, she did catch cheaters pre-Copilot, and my first t…

I haven't seen a study yet, but yes, Copilot deliberately (AFAICT) incorporates randomness. For longer code fragments, I believe this would thwart most plagiarism detectors. I'll note that defeating plagiarism detectors is easier than many people think. I and one of my students wrote a paper on an automatic technique to defeat plagiarism detectors, and it was highly effective: "Mossad: Defeating Software Plagiarism D…

From the OOPSLA paper abstract:

> techniques inspired by genetic programming with domain-specific knowledge to effectively undermine plagiarism detectors.

My creaky memory of CS Theory makes me suspect that, ultimately, Mr. Turing's halting problem may make resistance to cheating futile. [1] It's interesting that the paper is in OOPSLA, I used to follow the work from it more, especially when I listened to IEEE's Software Engineering Radio.

Thanks for your work in this area and your reply. DieHard and DieHarder are funny, creative names for fault tolerant memory managers. It's also nice to see a fellow humorist. At least we can rest assured that cheaters get what they deserve, like my classmate at Columbia. [2]

Regards.

[1] > He, for one, welcomes our new AI overlords.

Yes, let's suggest a Borg-like partnership with them. I'd be willing to drive "self-driving-car" tow truck--if they haven't invented a self-driving one yet.

[2] https://news.ycombinator.com/item?id=32532896

Re: Coping with Copilot

#357
post #330

Earlier quoted context omitted.

I’ve used copilot to turn an rfc into code. It wasn’t perfect the code did need to be changed a bit but it was surprisingly close. And I ended only rewriting 4-5 lines that were totally wrong and 3-4 just for clarity. Out of like 40 lines of generated code.

Great. If an undergrad can find and rewrite those 10% of lines that are wrong, this is exactly what I care about to be an effective programmer. Especially since a good chunk of programming is reading code by former programmer (including self()) and interpreting and debugging. If they can use copilot with confidence to be more productive in getting to that point even more bonus points if I were a manager.

tbf I dropped out of a CE degree (and college) because I couldn't pass discrete math so I might not be the best logic programmer... I doubt I could pass leetcode interviews, I mostly work on the fringes of software dev.

Re: Coping with Copilot

#358
post #55

Guess how I learned query/replace in Emacs in 1985? My friend who copied my Pascal programming assignment is now a director at a $1B hedge fund. I'm the founder of a series of scrappy, ramen noodle startups. I guess it's the "Senator Blutarsky" effect: https://en.wikipedia.org/wiki/John_%22Bluto%22_Blutarsky

The skill of getting others to do work for you is highly valued in the Director and C-suites.

I think my friend might have known that in 1985. I just figured it out this morning, and by now all the good hedge fund manager jobs are taken.

Re: Coping with Copilot

#360
post #357

Earlier quoted context omitted.

Great. If an undergrad can find and rewrite those 10% of lines that are wrong, this is exactly what I care about to be an effective programmer. Especially since a good chunk of programming is reading code by former programmer (including self()) and interpreting and debugging. If they can use copilot with confidence to be more productive in getting to that point even more bonus points if I were a manager.

tbf I dropped out of a CE degree (and college) because I couldn't pass discrete math so I might not be the best logic programmer... I doubt I could pass leetcode interviews, I mostly work on the fringes of software dev.

I have never taken a job where I had to do a leetcode interview. My best job experience was one where I had no technical interview at all.
Post reply on HN