HackerTrans
TopNewTrendsCommentsPastAskShowJobs

natefinch

no profile record

comments

natefinch
·4 yıl önce·discuss
Copilot is software, it can't be the author, just like the OS isn't the author when you copy and paste. Authors have to be humans.
natefinch
·4 yıl önce·discuss
Presumably because you don't have the right to grant github those permissions, only the copyright owner does.
natefinch
·4 yıl önce·discuss
AI can code low level stuff. This one function. This small piece of logic. What it can't do is conceive of how to take a bunch of different functions and put them together to produce an actual product. It can't tell you if you should use postges or mongo. Programmers will always be needed, we'll just move up the stack, and we'll produce more value per hour of our work, justifying our high salaries.

Compare the visible output of someone writing in assembly vs someone writing on top of a modern web framework. Is assembly harder? Yeah. But the web framework is going to give you a usable product in a fraction of the time with way more features. And that's worth more money to the company you work for.

It's always going to be a knowledge worker's job. It's always going to reward experience and creativity and attention to detail. A lot of programming is looking at the world, seeing a gap in what exists, and figuring out what best fits that gap. An AI can't do that. Programming is making 1000 tiny decisions that can't possibly be specified completely by a product manager and need a human to weigh the tradeoffs.
natefinch
·4 yıl önce·discuss
Well, if the entire thing was generated, then no (according to the first link I posted above), since it was not produced by a human. However, no useful program is going to be entirely written by an AI, so any real program would have quite a lot of user input (I regularly will take what copilot suggests and then tweak it to what I specifically want). And then, yeah, it's copyrightable.

Also, there's no way for anyone to know what portion of code that I commit was hand written vs. generated, so you kind of have to treat it all as written by the committer anyway.

Though this does bring up interesting questions about what happens with things like automated PRs that fix bugs / update dependencies... are those then non-copyrightable? ¯\_(ツ)_/¯
natefinch
·4 yıl önce·discuss
That's still 100% true of the examples I mentioned. There's always a higher level to consider. When we moved to C, we could stop worrying about what registers we were using. When we moved to python/Java we could stop worrying about managing memory. When we moved to web frameworks we stoping writing the guts of our servers. And if anything, programmers have become even better paid, despite so many more people in the industry.
natefinch
·4 yıl önce·discuss
Anyone can already generate proprietary code that is identical to your GitHub project's code just using copy and paste.

For people that care to respect copyright, there's a copilot setting to block exact copies of code in the training set (which only happens a tiny percentage of the time, unless you're actually trying to make it happen).

For people that don't care to respect copyright, git clone is a way more efficient way to violate your license.
natefinch
·4 yıl önce·discuss
Some interesting reading:

https://felixreda.eu/2021/07/github-copilot-is-not-infringin...

https://fossa.com/blog/analyzing-legal-implications-github-c...
natefinch
·4 yıl önce·discuss
I'm sure that's what people said when they went from punch cards to assembly, and from assembly to C, and from C to Java.... and yet, here we are. Tools that let us write higher level code faster, just allow us to create more complicated software in a reasonable amount of time.
natefinch
·4 yıl önce·discuss
There's a big difference between reverse engineering (i.e. intentionally writing software that behaves identically to another piece of software), and writing your own code to solve your own problem that may superficially contain small portions of the similar logic as some other project. Copyrighted code has to be sufficiently creative and unique to qualify, otherwise after the first person wrote code to parse json from a web request, no one else would be able to do the same thing.
natefinch
·4 yıl önce·discuss
Familiarity with the UX and conventions on that platform. Almost everyone knows how to make a PR against a GitHub repo. But some random other code hosting site? It would be a lot less familiar, and people would have to spend time making an account and figuring out how to contribute.

Even low barriers of entry can cause a big drop in user engagement.
natefinch
·4 yıl önce·discuss
There's a setting on GitHub that blocks any suggestions that exactly match code in the training set. I doubt you'd ever get in trouble for code that was similar in structure but different variables etc from existing licensed code (especially since most small snippets of code are not terribly unique to begin with).
natefinch
·4 yıl önce·discuss
I definitely never contributed to open source before github was around.
natefinch
·4 yıl önce·discuss
I think it's like any social network. It grows in value with how many people use it. Yes, you can host your own public git repo or even your own gitlab, but then there's a barrier of entry to contribute to your code, and it's a lot harder for others to discover it.

disclosure: I work for github
natefinch
·4 yıl önce·discuss
FWIW, there are some (admittedly fairly naive) checks to prevent PII and other sensitive info from being suggested to users. Copilot looks for things like ssh keys, social security numbers, email addresses, etc, and removes them from the suggestions that get sent down to the client.

There's also a setting at https://github.com/settings/copilot (link only works if you've signed up for copilot) that will check any suggestion on the server against hashes of the training set, and block anything that exactly duplicates code in the training set (with a minimum length, so very common code doesn't get completely blocked). Users must choose the value for this setting when they sign up for copilot.

source: I work on copilot at github
natefinch
·4 yıl önce·discuss
It's still free with no payment for existing (beta/technical preview) customers. There was a github bug with some auth token nonsense that was causing problems, but all technical preview users should still be free for 60 days.
natefinch
·4 yıl önce·discuss
CI runs on CPUs, Copilot runs on GPUs. Waaaay different. Especially in this age of cryptocurrencies and chip shortages.
natefinch
·4 yıl önce·discuss
If you teach someone about music theory by listening to Stairway to Heaven, and then they write their own song that starts with an A minor chord... are they violating copyright of Stairway to Heaven?

Copilot isn't sampling. Sampling is literally copying snippets of someone else's music and putting it into your music. Copilot doesn't do that. There's no giant database of text that it just slurps suggestions out of.
natefinch
·4 yıl önce·discuss
I mean, it was informed by both, but basically everyone thinks it's a good idea.
natefinch
·4 yıl önce·discuss
It's not copying open source code. If you learn an algorithm to balance a binary tree from reading GPL code, and then go use that algorithm in your own closed-source project, with your own variables and types and context, are you breaking GPL? You're not copying the code. Just because you learned about it from reading GPL code doesn't mean that whenever you write tree balancing code from now until the end of time, all that code has to be GPL'd.

Copilot learns the "shape" of code. Common patterns and algorithms, etc. You can't copyright an algorithm.
natefinch
·4 yıl önce·discuss
I very often will let it suggest its thing and then tweak it to work how I want. It's like super auto-complete for me. If I can't remember how a specific pattern goes for some library, I'll let it write it for me, and then double check it to make sure it's doing what I want. That's still faster than me going to check the API and writing it all out by hand.

Most projects are 90% BS glue code and 10% actually interesting code. I don't mind only having help with the 90%.