Unless I misunderstand something, its not yet for businesses right?
It also produces a ton of horrible, nonsense code. I totally agree that if github's corpus starts to fill with that stuff, the overall quality of github will tank and I wonder how they'll continue to train the model.
Now I have to gate declining quality marketed as a time saver. It really just moves the cost elsewhere.
# Print an error message in red and exit if this program returns an error
and have it print out if ! some_program
then
echo -e "\e[31msome_program failed\e[0m"
exit 1
fi
makes it so much quicker to cobble together something that works without having to context switch and go Google something. That being said, I've found when writing more complex code it has a real tendency to introduce subtle bugs that can really catch you out if you're not paying attention.Purely from the amount of time I've saved I'd say it's well worth the $10/mo for my employer (it only has to save a few minutes a day to be worthwhile). Very excited to see how they improve it in the future!
Yea, that is basically my experience as well. On balance I feel I wasted about as much time debugging broken copilot code as I've saved from using it.
It's for the hobbyists that it's painful. Adding another 10 usd subscriptions might be too much for your budget, especially if you only code occasionally.
It would have been nice of them to introduce a free tier where you could use copilot for a few hours a month for free.
Yeah, it makes mistakes, sometimes it shows you i.e. the most common way to do something, even if that way has a bug in it.
Yes, sometimes it writes a complete blunder.
And yes again, sometimes there are very subtle logical mistakes in the code it proposes.
But overall? It's been great! Definitely worth the 10 bucks a month (especially with a developer salary). :insert shut up and take my money gif:
It's excellent for quickly writing slightly repetitive test cases; it's great as an autocomplete on steroids that completes entire lines + fills in all arguments, instead of just a single identifier; it's great for quickly writing nice contextual error messages (especially useful for Go developers and the constant errors.Wrap, Copilot is really good at writing meaningful error messages there); and it's also great for technical documentation, as it's able to autocomplete markdown (and it does it surprisingly well).
Overall, I definitely wouldn't want to go back to writing code without it. It just takes care of most of the mundane and obvious code for you, so you can take care of the interesting bits. It's like having the stereotypical "intern" as an associate built-in to your editor.
And sometimes, fairly rarely, but it happens, it's just surprising how good of a suggestion it can make.
It's also ridiculously flexible. When I start writing graphs in ASCII (cause I'm just quickly writing something down in a scratch file) it'll actually understand what I'm doing and start autocompleting textual nodes in that ASCII graph.
I was skeptical going in, but ... wow. There were a lot of jaw-drop "how the hell did that just happen?" moments.
The systems ability to quickly learn form local code is especially impressive.
I had to implement a non-trivial Rust trait for about 20 types, which is not just copy-pastable between types or I would have used a macro. On the first one Copilot didn't have a clue what I wanted. The second one was halfway auto-completed. The other 18 were mostly just generated correctly, with some minor fixes required.
It literally was 5x faster than without Copilot.
And that's for a rather niche language with not that much code to learn from... I didn't even try it out with something like Java or Typescript.
Even in this early iteration the productivity boost would easily be worth 100+ for me, even though I'm not working all that much on repetitive code like REST endpoints or UI components.
The productivity benefits are worth more than $10/month easily, but somehow I still don't want to pay for it... maybe it's because they're using public domain code to train the model.
$10 a month for this is an unbelievably good deal!
If you value your time, this is a ridiculously good deal.
I found it fun to play with for smaller projects, but during my day to day work I found that it always seemed to get in the way. You're trying to type out a function and Copilot is always there going "do you mean this", eventually you just turn it off.
I'm sure there are some good use cases for it, but in my line of work I found it to only really be useful for small things and toy projects where you are trying to demo the capabilities of Copilot more than you are trying to actually build an app.
That said, was highly disappointed with the switch to non-free. Maybe they never did say it would remain free, but they certainly didn't advertise it wouldn't be later. I feel bait-and-switched.
Yes, $10/mo. isn't a lot if you're getting paid to work, but if you're developing on side projects that aren't (yet?) making any revenue, it's kinda a dealbreaker.
# Print an error message in red and exit if this program returns an error
rm -rf /I don't need help parsing a string or iterating over a list.
Unless you want to pay for your IDE + Copilot with JetBrains, this will still benefit only Visual Studio Code, which Microsoft knows that you cannot beat free. So this a great resurgence of 'Embrace' with free developer tools.
On the other hand, Co-pilot is going to probably ruin the Leetcode, Hackerrank, Codility candidate as a candidate can Co-pilot the solution if not checked properly.
To use a famous example: if an AI were taught to perform heart surgery by viewing footage of skilled surgeons ... would it not be fair that those surgeons earn an on-going amount for their input? An input that is essential to the AIs function.
I worry this is the pointed end of the data hoarding big Co Internet. Our data is used to train models that (potentially, in future) degrade _our_ value while giving nothing back despite being used, unwillingly, to train their models.
That's clearly a remix of the work of others
And yes, MS is now monetising the work of others.
If I use a ii V I progression in my music, who gets compensated? I find most of co-pilots suggestions are similarly basic. Any lawsuit about whether an artist used a few of the same chords or a snippet of melody has been totally asinine IMO, like how all the money from "the thong song" went to ricky martin just because he was quoted for one measure.
when I write a few lines of code myself, should I search GitHub to make sure no one else has included the same algorithm in their codebase before slapping my own license on it?
By its very structure it's output always looks credible, and it's not always right-- it wouldn't be a sign of foul play if copilot suggested some code that looked just right but happened to backdoor your cryptosystem or protocol.
Maybe it would be a little tricky to get it to produce NOBUS vulnerabilities that were credible mistakes, but if the target isn't OSS then nobus isn't really that important.
I found it actually worse than useless in those cases. Often I will type a function name it will populate my function body with code that at a quick glance looks like exactly what I want, but at closer inspection is actually complete nonsense. Trying understand if the code it suggests actually does what I want or not is often slower than just writing the code.
>the Office will not register works “produced by a machine or mere mechanical process” that operates “without any creative input or intervention from a human author” because, under the statute, “a work must be created by a human being
https://www.copyright.gov/rulings-filings/review-board/docs/...
I suppose that something similar is at play here.
Poor show Microsoft - should've just been free as goodwill and to help people build software that can be deployed to Azure for the real money.
I still constantly get surprised by how good it is. Just now I had a function I was procrastinating and thought would take a long time to write. When I finally sat down to actually do it I typed the function name and Copilot just autocompleted the whole thing for me. I didn't have to modify it at all. I wonder what other things I am unnecessarily procrastinating.
I cannot share the code here, but to explain in simple terms I was able to write around 100 lines of code in say 10 seconds. I had a switch statement, around 7 variables with around 5 if conditions inside each case. I retrieve data from end point. Do JSON serialization. Convert JSON to a data class. Use the data . Loop over the data and then work with the elements.
Copilot, understood the first two conditions of what I was doing and just completed the rest for me. Replaced it with right variables, type annotations, etc.
I would definitely recommend this to any one at this price point. Sure, I was so happy using it for free since the launch of the product and did not expect it to be coming so soon out of waitlist. But it is ok to pay for it.
I use it on both VSCode and Neovim and it works beautifully with both editors.
PS: I was early adopter of TabNine too, have used it for quite some time, however Copilot would be my preference.
The thing ive most enjoyed is that it forces me to write out what I want to do in english before getting stuck in the weeds of how the code ought to work.
I've found if I explain the whole program ahead of time (the other day I wrote some python that converted the local time to display on a 13x13 grid of LEDs) co-pilot can write 90% of the code without me, just translating my explanation into python.
I thinking knowing how to express yourself to AI will be a unique skillset akin to being "good at googling"
I fear copilot may encourage these type of pseudo-code comments. The most valuable thing the AI doesn't know is WHY the code should do what it does.
Months later, we'll get to debug code that "nobody" wrote and find no hints of why it should behave that way, only comments stating what the code also says.
Seems we're replacing programming for reverse engineering generated code.
Ever considered parameterization?
This includes a lot of code under copyleft licenses, and possibly even more code under no license at all (implicitly All Rights Reserved). It's not obvious to me that it's ethical (or possibly even legal) to sell a model derived from code not in the public domain.
(I think those cases would be mostly full lines that I know exist on other files in the project - but I don't want to go there, copy and paste if I can avoid it..)
Copilot clearly cost money to run, so it couldn't be given away forever. By putting a business model on it, it means it's less likely to be rugpulled in the future.
Are the productivity benefits worth more than $10/month?
Let's be on a more conservative end and say that an engineer gets paid $60/hour (i know that most engineers are salaried, so you will need to divide the monthly pay number pre-tax by 160 hours to get that hourly number). If copilot saved more than 10 minutes of your time a month, then yeah, it is worth more than $10/mo.
Do the math on this one yourself, based on how many hours you work in a month on average + your compensation for that time period.
I’ve been trailing the beta for the past few months and plan to recommend a corporate account to our leadership once it becomes available.
The calculus is $10 for a pizza or something for myself, or copilot.
Given that copilot has saved me too many hours to count, i.e. the 1 thing that truly matters, then it's a no-brainer.
You don’t need backcraft some moral argument. It’s trivial to see that a large amount of creativity went into developing the system, it’s not just a repackaging of public domain works.
I don’t care about getting a discount, just dislike being billed on two different billing cycles and it seems like a missed opportunity for them to get more devs on their paid tier.
Do you also consider it ethically questionable to look up oublic domain code on for inspiration (like on StackOverflow) while being paid $20,000/month?
Because I certainly do that plenty. I think most of us do
That being said, my biggest issue with CoPilot is that it's a ML system trained from open source and public repositories. Also straight from the website, "By using GitHub Copilot [...] you help to improve GitHub Copilot." I'm now paying for the privilege of handing over my data to GitHub so they can combine it with open source code to make more money off of people who are convinced it's somehow saving their company money.
Maybe people who used it didn't find enough value in it? Is that their fault?
I haven't used it, but it's certainly not immediately clear to me that there is enough value there to justify $10/mo.
5 minutes in my IDE and I'm already sold on trying it for the next month.
I'm also still skeptical about the legal aspects of it. Microsoft says that training the model is fair use. Good for them, but that's not applicable to me in any way.
(Shhhh don’t tell GitHub!)
Can you give an example of tests that would be better with repetition than parameterization?
It’s the poorest of craftsmen who blames their tools. Rise above.
Also, note that simply accessing an online service does not constitute a distribution of software, and thus does not fall under GPL's domain. And "derivative" appears nowhere in the GPL.
It might be a good idea to have something in the open as well. But I agree, this has its disadvantages. Also chances of a small non-profit team coming close to Microsoft/Google's effort are near-zero. The amount of resources and time is incomparable.
That dev could have done the exact same thing with stack over flow snippets. And create the same situation.
Sure its easier to make mistakes when copilot suggestions are so readily available, but its just a tool that needs to be wielded properly as any other.
It feels like an evolution of your typical IDE niceties that modify characters as you type.
I still remember when people were worried autocomplete would lead to code mistakes and variable mix-ups.
Now the one argument against this is if we become shielded from the full input and outputs of a tool.
It would work bad, but you could have a "copilot(code_fragment, args, ...)" that makes an executes a snippet blindly, hoping it's correct. That's when it stops being a hammer and starts being a boss looking over your shoulder and telling you what to do.
Fortunately, I think we have a while before AI can reliably spit out useful AST programs. But it could happen eventually.
on the other hand, if an improved AI comes out in a couple of years, we can feed it the same pseudo-code and enjoy an improved output.
I would rather have a docstring explaining what the code should be doing
I've had co-pilot write its own comments too, my favorite one was, "this is a kind of a hack but it works", very professional indeed!
Africa is saying hello
A lot of code is of mediocre quality. An ML service that learns from huge amounts of code without an ability to tell "good" code from "bad" code will only ever be able to produce mediocre code, at best.
I've never heard it before but i'll be using it now :)
Some code is like a giant pile of dirt; you need someone to pile it up and then you can go in and clean up the edges and make it "good" whereas other code is entirely delicate all the way through.
The big question is how much is each one and can it help. I suspect it helps for many, but those who know enough to recognize where it can flaw will have an advantage.
But newer programmers may never really "learn" the code the way the older ones do, as they'll just let the computer do the basics.
Now, if they are paid per job and it makes them more productive... That's different.
Personally, I'm not a in a coding position anymore and only code occasionally on stacks I'm mostly unfamiliar with: copilot is a godsend as it saves me from googling every other lines of code to figure out which api calls I'm suppose to do to accomplish the task at end.
I see it as a stackoverflow on steroids.
Even if I don't use it much, I guess I'll have to pony up the 10 usd because I would not want to go back to googling basic syntax for everything when I'm coding something.
Is the act of finding a help for learning?
Do you retain as much? Do you need to? Is that important?
I hope this whole thing ends up like a space saving tool like Google did. I don't need to memorise that API because I can Google the docs. Now maybe that goes a level higher.
The idea of learning via copilot, producing poor code and having copilot learn from that code ... the whole feedback loop ... Is worrisome.
Ignorance is bliss.
I think the biggest thing is that when working in tech I'm unfamiliar with it's extremely helpful to get some sort of skeleton in place, even if it's wrong in some way. I'm going to have to go slowly and evaluate it either way, so doesn't really matter if it's got problems or is less than ideal. What I would do otherwise is just go copy something from StackOveflow and then comb over it to adapt to my needs. Copilot is more or less just doing the same thing, but faster.
When I'm working in a stack I know well, I can quickly put down the code I need and it will generally be pretty good. Copilot can do it faster, but it gets things wrong a lot more often than I do. Since fixing something wrong is a LOT slower than me getting it right the first time, it ends up being more trouble than it's worth.
We're also creating more complex things, that costs more money.
The market for simple SMB websites is a great example. This went from custom HTML+webservices, to Wordpress, and now to WIX/shopify/square. I'd bet the market for SMB marketing will similarly move to near plug+play google/FB offerings.
However if you started out making websites in 1993, then there are a vast array of products and services one could move into over the last 3 decades.
It's the same with doctors, lawyers, everything.
In this context automation could be a tool that a law firm uses to enhance the quality of their product. Personally, I would pay more for a tech-savvy law firm that embraces automation, not less.
Code isn't flexible enough to work for laymen. It feels like you need to be a developer and a lawyer to make a smart contract work as intended.
Maybe that works against my earlier premise, but I don't think that this is the way we want to go.
His rationale: why put wear and tear on his expensive tools if it’s just going to reduce his income in the end? Needless to say he prefers piecework because he likes to move from one job to the next as quickly as he can. He makes a lot more money that way.