Earlier quoted context omitted.
Few days back, Sam Altman tweeted this "Prediction: AI will cause the price of work that can happen in front of a computer to decrease much faster than the price of work that happens in the physical world. This is the opposite of what most people (including me) expected, and will have strange effects" And I was like yeah I gotta start preparing for next decade.
I think this will result in classic Jevons paradox: https://en.wikipedia.org/wiki/Jevons_paradox . As the price of writing any individual function/feature goes down, the demand for software will go up exponentially. Think of how many smallish projects are just never started these days because "software engineers are too expensive". I don't think software engineers will get much cheaper, they'll just do a lot more.
GitHub Copilot
461–470 of 1001 posts
Re: GitHub Copilot
#462Earlier quoted context omitted.
What do you think about this being overall detrimental to code quality as it allows people to just blindly accept completions without really understanding the generated code. Similar to copy-and-paste coding. The first example parse_expenses.py uses a float for currency - that seems to be a pretty big error that's being overlooked along with other minor issues around no error handling. I would say the quality of the…
Why would you say it's an error to use a float for currency? I would imagine it's better to use a float for calculations then round when you need to report a value rather than accumulate a bunch of rounding errors while doing computations.
Re: GitHub Copilot
#463I'm amazed to see how positive the overall response is to this idea. Almost as if programmers think that writing programs is the worst part of the job and ready to be automated away. As someone more aligned with the Dijkstra perspective, this seems to me like one of the single worst ideas I've ever seen in this domain. We already have IDEs and other tools leading to an increase in boilerplate and the acceptance of it…
I mean you say this, but you and most likely the majority of programmers rely on dozens of repositories, packages and libraries with likely zero deep understanding of it (and at the very least haven't read the source code of ) so I don't really understand the difference here. The advantage of something like this is that instead of having to go to stack overflow or any number of reference sites and copy pasta it can j…
Re: GitHub Copilot
#464Earlier quoted context omitted.
> Almost as if programmers think that writing programs is the worst part of the job and ready to be automated away. writing the programs is definitely boring garbage work. Typing is so slow and annoying - hence autocomplete being a standard tool. This is, to me, just fancy autocomplete. > to an increase in boilerplate and the acceptance of it because they make it easier to manage. Boilerplate optimizes for the right…
Boilerplate is only easier to read and analyze if you can be sure it is consistent, so you can tune it out. Usually though, there is this one getter method that is not quite like the others and you literally will not see the difference until it bites you. We'll need more IDE enhancements, to highlight interesting pieces and desaturate standard boilerplate...
The context almost always exists in the writers head. We all have a specification of our program based on our expectations, and we type out code to turn that model into an implementation. We only spend so much time conveying that model though - most of us don't write formal proofs, but many of us will write out type annotations or doc comments.
The cost is usually as simple as expressing and typing out the model in our head as code. Languages that are famous for boilerplate, like Java, enforce this - and it makes writing Java slower, but can also make Java code quite explicit (I'm sure someone will respond talking about confusing Java code, that's not the point).
Reducing the cost of conveying context from writer to reader means we can convey more of that context in more places. That's a huge win, in my opinion, because I've personally found that so much implicit context gets lost over time, but it can be hard to always take the time to convey it.
Think about how many programs you've read with single character variable names, or no type annotations, or no comments. The more of that we can fix, the better, imo.
Tools like this do that. TabNine autocompletes full method type signatures for me in rust, meaning that the cost of actually writing out the types is gone. That's one less cost to pay for having clearer, faster code.
Re: GitHub Copilot
#465I'm amazed to see how positive the overall response is to this idea. Almost as if programmers think that writing programs is the worst part of the job and ready to be automated away. As someone more aligned with the Dijkstra perspective, this seems to me like one of the single worst ideas I've ever seen in this domain. We already have IDEs and other tools leading to an increase in boilerplate and the acceptance of it…
I mean you say this, but you and most likely the majority of programmers rely on dozens of repositories, packages and libraries with likely zero deep understanding of it (and at the very least haven't read the source code of ) so I don't really understand the difference here. The advantage of something like this is that instead of having to go to stack overflow or any number of reference sites and copy pasta it can j…
Check out the memoize example. That fails as soon as you pass anything non-primitive but there’s no one documenting that.
Re: GitHub Copilot
#466Earlier quoted context omitted.
It shouldn't do that, and we are taking steps to avoid reciting training data in the output: https://copilot.github.com/#faq-does-github-copilot-recite-c... https://docs.github.com/en/early-access/github/copilot/resea... In terms of the permissibility of training on public code, the jurisprudence here – broadly relied upon by the machine learning community – is that training ML models is fair use. We are certain this…
> ...the jurisprudence here – broadly relied upon by the machine learning community – is that training ML models is fair use. If you train az ML model on GPL code, and then make it output some code, would that not make the result a derivative of the GPL licensed inputs? But I guess this could be similar to musical composition. If the output doesn't resemble any of the inputs, or contains significant continous portion…
In this particular case, the output resembles the inputs, or there is no reason to use Github Copilot.
Re: GitHub Copilot
#467Re: GitHub Copilot
#468I'm amazed to see how positive the overall response is to this idea. Almost as if programmers think that writing programs is the worst part of the job and ready to be automated away. As someone more aligned with the Dijkstra perspective, this seems to me like one of the single worst ideas I've ever seen in this domain. We already have IDEs and other tools leading to an increase in boilerplate and the acceptance of it…
I mean you say this, but you and most likely the majority of programmers rely on dozens of repositories, packages and libraries with likely zero deep understanding of it (and at the very least haven't read the source code of ) so I don't really understand the difference here. The advantage of something like this is that instead of having to go to stack overflow or any number of reference sites and copy pasta it can j…
There will still be plenty of low level systems programming work. The field is growing, not shrinking.
One impact this may have is that it may make tasks easier and more accessible, which could bring lots of new talent and could also apply downward force on wages. But the counter to that is that there is so much more work to be done.
I'm all for new tools.
Re: GitHub Copilot
#469Earlier quoted context omitted.
I visited https://copilot.github.com/ , and I don't know how to feel. Obviously it's a nice achievement, not gonna lie. But I have a feeling it will end up causing more work. e.g. the `averageRuntimeInSeconds` example, I had to spend a bit of time to see if it was actually correct. It has to be, since it's on the front page, but then I realized I'd need to spend time reviewing the AI's code. It's cool as a toy, but I…
It has the ability to generate unit tests as well, which will help cut down some on the verification side if you feed it enough cases.
Re: GitHub Copilot
#470I'm amazed to see how positive the overall response is to this idea. Almost as if programmers think that writing programs is the worst part of the job and ready to be automated away. As someone more aligned with the Dijkstra perspective, this seems to me like one of the single worst ideas I've ever seen in this domain. We already have IDEs and other tools leading to an increase in boilerplate and the acceptance of it…
Sure there will be some codebases out there that are plastered together using this tool, but when it comes to delivering software that is well written, performant and maintainable over the course of several years, you're still going to need a lot of skilled engineers to pull that off.