If I modify them I know what I have to do, but Co-pilot is somewhere in-between the two, it's abstracting knowledge from these codebases. We don't yet know how to deal with it properly, but this will change with time, that's why having these conversations are important.
I think that AI models will gain a new legal state, whatever they learn will be considered original work if it's not repeating non-trivial work 1:1.
But that's basically all copilot does? It's just a fancy compression system with a search function.
https://twitter.com/ayourtch/status/1539928018138931200 is my experiment. The code in question has a very specific format - it’s C with a lot macro sauce. I described the intent in the comment and pasted the includes lines. Then I started the #define of a unique looking token, and it added the lines with the correct boilerplate. What you see in gray is more boilerplate that it suggests when prompted.
I would dare to assert that “xxxayourtchtestxxx” is not going to be in anyone else’s code than mine.
So you can see the example of copilot generating completely new code.
Not saying it’s 100% of what it does - but this side looks very useful.
I also did a test with Rust: described a function canonicalizing MAC address, and then when it saw ![test] prompts, it started to make very passable unit tests for the function which was not even written yet - it was only the comment of what it would do.
Also a massively useful lever to have, if it can do so consistently.
My attempts to make it generate a bug-free canonicalization function didn’t work - but it was interesting to see it try different approaches based on the existing test code (and no, they didn’t always satisfy the tests, unlike one would expect :)
So this angle is “pair programming with a creative novice”, which also can be useful - it can give ideas to explore that you didn’t think of.
Of course this was all fairly trivial code, I do not know yet how it will behave in a more tricky situation.
Even if it changes the var names and formatting a bit, it's still at best highly derivative. And at worst it spits out the exact code verbatim.
That makes all the difference IMHO, its complexity makes it much more than "just a DB". The synthesis part takes into account the context also, so it does intelligent things automatically, a smart SQL query does not.
My brain also works kinda like this. My knowledge is encoded in an incomprehensible format and I convert my knowledge into code based on the problem at hand.
This is where some modest taxation comes in. To reallocate a slice of the output of value creation to its actual source in a rough kind of way wherever more direct compensation isn't feasible.
You clearly don't know how copyright around sampling works. Yes rappers are paying shitloads to previous generation musicians for samples they use.
And you can bet that SpaceX using physics knowledge and cumulative rocket engineering knowledge are very careful to either license the tech they use or be very explicit about documenting their own.
That you can't see the difference is entirely on you, going 'against the flow' of society sometimes leads to change but more often it simply results in friction and a lack of comprehension.
Keep in mind that open source is based on copyright law, and without copyright law the protections that open source offers would be gone.
To give an extreme example: if you had a chunk of software that was constructed in such a way that it would spit out a complete copy of 'the Gimp' without the license file if you started to write an image processing program that would be a very clear case of copyright violation.
If you then start breaking the Gimp down into smaller and smaller re-usable fractions at some point you might be able to argue that such a generic and oft used snippet should be free of copyright. But that only works as long as you then don't string together a whole pile of pieces that you each copied somewhere else, the whole idea is that your creation is an original one.
Medical research (which quite often leads to patents, which I don't believe should be possible, especially if that research was publicly funded) and physics knowledge are of a different kind than copyrighted program code. The latter would be better compared to universally present language constructs and constraints, such as 'memory management', 'data manipulation' etc. Once you make those explicit in an implementation copyright applies.
Or, to make another analogy: it's like comparing the skill of writing to the product of that skill. The skill isn't protected, but the output of the act of writing is.
They are all in compliance with intellectual property laws? Seriously, that's a bloody big difference.
Co-pilot is not in compliance with many of the source code it is using!
Whether you like it or not, compliance with the law is necessary.
Humans use reasoning. Copilot just guesses the likeliest next word.
See the Quake's fast inverse sqrt code incident: https://twitter.com/mitsuhiko/status/1410886329924194309
I was with you until this statement. The vast majority of society consumes, but doesn't create something new in the process. I'm bewildered as to why you think taxation is a solution rather than a disincentive towards creating. As far as compensating the giants upon whose shoulders most stand, there are plenty of vehicles for that: royalties, patents, copyrights, pensions, awards and prizes, paid fellowships, etc. These are relatively easy to calculate and write a contract for.
People don’t have a problem that AI is being used in some form to provide the service.
The complaint is pretty clearly that code is being lifted from repositories without attribution or compensation, and being redistributed into other applications.
How impressive the work behind copilot is or is not really isn’t relevant.