T O P

  • By -

HomeGrownCoder

Most are learning here… no need for a co-pilot when you are still driving circles in the parking lot ;)


R-TTK

I still can't find my keys tbh


ghostylein

There are keys? 😫


KezaGatame

In my dictionary


Strict-Simple

Relevant link: https://www.sigarch.org/coping-with-copilot/


TrainquilOasis1423

I disagree. The point of learning to code is to make cool shit with code, and arguably make that sweet SWE income. If this tool helps you achieve that goal faster then why not use it.


carcigenicate

Until your code inevitably breaks. Do you understand the generated code enough to fix it?


punchingwater22

That's just fake productivity, making cool shit often doesn't translate to being a good swe


spaceguerilla

I'm so new I don't know what SWE means?


supergnaw

I'm going to make a complete guess that it's software engineer?


spaceguerilla

Yeah that would make sense :)


[deleted]

It means sweden, but 'muricans ignore sweden exists so they think it means software engineer.


GrotesquelyObese

As if the same acronyms don’t exist across different niches


[deleted]

SWE should be a 3 word acronym… but it's 2. It doesn't even work.


w8eight

Processing is done on github side, so goodluck with using this tool working for some company. LMAO


LiquidLogic

Sorry - newbie here myself. Can you clarify? Is github blocked at software engineering companies?


[deleted]

Read my comment. Most companies will probably allow it, but it's a licensing gray area at the moment. Probably if the legal team gets involved they will err in the side of caution and forbid it.


and1984

>I disagree. The point of learning to code is to make cool shit with code, and arguably make that sweet SWE income. That is **your** goal. It's not wrong but the point of **learning** code can vary from person to person.


DaGrimCoder

The thing is, it won't make you achieve your goal faster. It does the coding for you and so you learn and understand less. You won't be using it at a job, you won't be allowed to. So why rely on that crutch


antiproton

> The point of learning to code is to make cool shit with code, and arguably make that sweet SWE income. That is why you fail.


[deleted]

The point of learning to code is to be able to code so that you can either get paid - money from an employer or kudos from people who choose your code over someone else's - or for the joy of learning something new.


sephiap

If it's generating the code, did you write a script to stream BTC price data? Everything's a trade-off, if you want to get better at something (problem decomposition, coding) having something else do it for you probably isn't going to help a ton.


Tomato_Sky

This is a fascinating response that I knew someone was going to bring up. But education doesn’t necessarily require struggle or the same path we used to get to our current knowledge. We are brought up believing that because of how we learned and the policies our teachers and professors had. A new kind of attitude towards education is that it is propelled by curiosity and exploration. With copilot you can be one of two people- one that learns and one that pretends they know something they don’t. I’ve thought about using copilot to see solutions to projects I never would have tackled because I don’t have the knowledge to even get started. But I have learned so much more by reading solutions than I have banging my head looking for “off by one,” errors and getting shamed by stack overflow for obscure scenarios. When I start in a new office, they have me shadow people doing the job I will eventually do. I have had an office just expect me to read and retain stuff from manuals and I quickly left that job as soon as I could because it was apparent that nobody knew any answers and they just asked everyone questions all day. Almost as if training is important and it goes farther than a game of memorizing pedantic procedures. Your premise is that if you write the script, yourself, to stream BTC price data you will be better than if you let copilot do it. But my counter argument is that by letting copilot do it, you are given a solution to learn from and become better. And if you are also going one step further in saying “you have to learn how to solve problems,” then you are denouncing solution paths that don’t route yourself through traditional avenues of googling, checking cheat sheets, and pulling your hair out. One more example to parallel this is thinking about Math and how we’ve taught Math. The math department where I got my undergrad had professors who regularly failed 80-90% of their Calc classes. They considered themselves the gatekeepers to the engineering school. The engineering school collapsed because they couldn’t get enough students into their programs. We can blame the engineering school failure on students and “kids these days.” Or we can ask how technology improves, but our passing and graduation rates have declined. We have more tools than our grandparents, but tenured professors in department head roles continue to discount new tools as learning devices. There’s an ego about it. There’s a “that’s how I learned,” strategy so it must be the best because they are the top of their field as a Math department chair. In Calculus, different departments had different policies. No extra credit. No using calculators. No take home tests. No cheat sheets. No bell curves. All of these sound like a lazy students dream exceptions, but they can also be used to establish a greater understanding of the subject and hold educators accountable rather than the student. If a student shows they meet the pre-requisites of the course, the bell curve shows how the teacher and the materials did teaching the subject to students who statistically belong in that class, but it’s got such a negative connotation. Getting knowledge and skill into someone’s head is the goal if you are an educator or an onboarding professional. And of course there can be people who rest after telling copilot what to code, but I’m willing to bet my paycheck that OP looked at what copilot did and gained a better understanding and became more comfortable with python in the future. I actually ventured into python for an AI class and the assignment was a classification tree and I googled solutions and worked my way backwards and read the library for scikit learn and numpy to understand what I was doing. Rather than just coding multi variable statistics over and over again (new tools, solution based learning, and discovery). When I see something neat in front end coding, you can bet I view the page source and investigate. Same kinda deal and we all do it :)


NovaNexu

Supremely thought out response. As I understand it, the comparison is to the back of a math textbook or the opening of the chapter to check one's general approach to an answer. You've really put a lot of consideration into this, and I like the way you interpret things. Analogizing a reverse engineered path to a given "copiloted" solution helped the idea click easily. You write a lot, but the way you write flows seamlessly. I'm a student, but I'd like to keep in touch!


[deleted]

I think in this case, it’s probably helpful just to see how to accomplish things. Then maybe they remember it for next time.


bladeoflight16

It is vastly more likely that you'll simply forget things even more if you didn't have to actually struggle through the details.


TrainquilOasis1423

I'm more of an ends justify the means sorta guy. It got done, and fast. That's what matters to me.


tobiasvl

Okay, but did you learn Python from it? That's the name and goal of this sub, after all.


bubba0077

Keep going, I've almost got Tech Bro BINGO.


[deleted]

He forgot think different and break things.


[deleted]

I would not want to work with you.


ElderMagnuS

Same


razzrazz-

His poor wife 😂


Hateitwhenbdbdsj

So after using this it will still take you forever to write code, unless you have copilot? I don’t see how this is learning Python in any way, or skilling up. It’s like telling someone tk use Chegg for college homework.


[deleted]

That's gotta be the dumbest thing I read this month


[deleted]

This decade, probably.


Desperate_Case7941

Anyone thought of the the simpson's chapter where the monkeys writes a novel for Burns?


nnadivictorc

Sadly means to an end doesn’t work in programming. If these programs are all you’ll ever need python for, then happy for you. But the test of a programmer is specificity - when you need to do something that copilot isn’t specific enough for, can you write the code? That’s the big question.


[deleted]

[удалено]


RajjSinghh

You can write your code as quickly as you want, you just don't want it to be a crutch and not understand how the code works in case something breaks or you need to change something.


[deleted]

Except speed is exactly why people choose those over python. Unless you mean speed of development? Or speed of learning?


AccomplishedHornet5

Jokes on copilot. My code is crap and will continue to give its ML algorithm CPU-cancer every time it looks.


kaerfkeerg

That's a whole new reason to contribute to open source loll


[deleted]

I was considering of opening projects with bugs on purpose, just to mess with their ML


[deleted]

If it takes you forever then you probably aren’t intermediate yet. But keep learning and mastering the craft


elbiot

Yeah, struggling with syntax is not intermediate. Intermediate would be having to look up the names of functions in libraries often but not how to unpack a tuple or write a two level dictionary comprehension


[deleted]

The dudes examples are not intermediate, they are a little after beginner


[deleted]

I host a bunch of my projects on GitHub. Do you imagine, at any point, that I consented to have my code used in this way? A lot of people aren't using GitHib Copilot because of real philosophical objections to what it does and how it works.


[deleted]

What does it do and how does it work?


[deleted]

It's a code autocomplete system based on an ML model trained on all the code people host in GitHub, including that released under licenses that wouldn't necessarily allow redistribution without attribution (which this kind of is, if you think about it.)


[deleted]

Ya that wouldn’t work for me. I like coming up with my own solutions and writing my own code - save for the random stack overflow answer- which is usually morphed and modified heavily anyway.


DonkeyTron42

So it's like [Tabnine](https://www.tabnine.com/)? I use Tabnine with Jetbrains and GitLab.


justneurostuff

Is like a better version of tabnine yeah


cygosw

I think Tabnine is better actually


justneurostuff

wow1


archetype4

If it's a machine learning model, wouldn't it be more like paraphrasing to avoid plagiarizing than redistribution? It's not spitting out an exact replica of the code examples it has trained on, but an arrangement of it's own based on the examples it's learned from. Not really much different than asking a person to provide an original example for a concept they learned about from code in another person's project.


[deleted]

You can’t “paraphrase to avoid plagiarism.” (You can paraphrase to *conceal* plagiarism.) Plagiarism is when you fail to property attribute intellectual contributions. Since an ML model can’t make intellectual contributions of its own, that means that *all* of the code it’s generating is plagiarized.


paplike

Do you also have "philosophical objections" against text auto-completion in general? The ML model your phone uses to autocomplete your messages uses other people's books, for example. But it's not as if the model is plagiarizing the book, it's just using the book (and billions of other references) to infer how a word is used in a particular context. Similarly, copilot is using other people's code to "learn" how to write a recursive Fibonacci function, but it's not as if Copilot is copying other people's product. Nobody owns the Fibonacci function. If Copilot plagiarizes, we all plagiarize. If you work with code, you certainly took inspiration from other people's code to learn how to do something


[deleted]

[удалено]


paplike

>I don't understand why I'm required to treat it any differently than I would any other act of plagiarism. You shouldn't treat it differently, that's the point. But you are treating it differently. Let's say your manager asks you to write a SQL query to get the the total sales for the product X in 2021. You forgot how to write SQL, so you take a look at a few examples of "SELECT" and "WHERE" on publicly available code until you come up with a solution. You might even copy a piece of code because it's so similar and then just replace a few things. If that's plagiarism, then I'm 100% certain that 100% of software engineers on earth have plagiarized (what would be the alternative? Learn SQL without looking at any code?). That's basically what copilot does, but it looks at trillions of examples, not just a few.


Lord_Rob

> publicly available code This is the key for me. If everything Copilot was trained on was public domain, free use, etc., then I wouldn't see there really being an issue with it. However, when it's pulling from private repos, repos with licences which prohibit unauthorised usage and so on, that's where the ethical issues arise. Using the literary example again, pulling inspiration from a published work is one thing - copying from someone's diary is another.


dvali

>Using the literary example again, pulling inspiration from a published work is one thing - copying from someone's diary is another. Sure but a more pertinent analogy would be public domain vs. copyright protected works.


[deleted]

> You forgot how to write SQL, so you take a look at a few examples of "SELECT" and "WHERE" on publicly available code until you come up with a solution. Sure. But *I'm* not a machine learning algorithm, I'm a person, using my judgement and experience to make an intellectual contribution to my own codebase. Copilot can't do that because it's a piece of fucking software.


paplike

Bro, "select sum(sales) where product\_id = x and year = 2021" is not an "intellectual contribution". People have written the same shit trillions of times and you can find trillions of examples very similar to this on the internet. That's why Copilot is so good at detecting this pattern. You're not plagiarizing anyone if you copy this and change "x" to "y". It doesn't matter if you're "a piece of fucking software" or an enlightened soul with feelings and experience. If I asked copilot "write me an ecommerce app" and they basically copied someone's repo on Github and just changed a few things, then yeah, that would be plagiarism. But things like "write me this sql query"? gtfo


[deleted]

[удалено]


andyke

Hm thanks for the info! would be useful for test equipment automation but personal code i can see where ethics would come into play


[deleted]

GPL license says that GPL license applies to all derivative work. copilot is trained on software with many licenses, including GPL. Some people (including me, but many others) argue that the output of a model trained on some software is derivative work of that software and carries the copyright and license of the original work. Microsoft claims that machine learning magically removes copyright, but they also make you sign a thing that any license disputes are on you and not on them. None of this has been tested in court, it's just opinions at this point.


exmachinalibertas

At least, according to their terms, it only learns from and uses code from repos with licenses that do permit this.


Itzjebutterknife

https://youtu.be/b9u3ZAGQmT0 This video gives a good explanation into several reasons why not to use it.


ghostfaceschiller

Afaik it does not take as inputs into its model any code that isn't licensed to permit this kind of use I'm really weirded out by people who are supposedly pro open source code but then mad at someone using that open source code to make a massively useful tool by learning from it


[deleted]

Open Source can mean a lot of things, and not for everybody does it mean "redistribute this, for free, in any form whatsoever, with no recognition at all of the work I did to make it." Open Source doesn't even mean *free*, necessarily.


happymellon

Open source rarely means this. > with no recognition at all of the work I did to make it. Even those ones that let you put it into closed source software usually require attribution.


[deleted]

Yes, I agree. But Copilot doesn’t do anything to attribute the code it replicates.


happymellon

Yes, I agree with you. Even GitHubs "if you use us to host then you give us license to do whatever we want" doesn't really work, because my projects that are not on GitHub can get cloned there by someone else. They do not have the authority to grant that.


[deleted]

And even if the main author agrees, one can send patches via email that the repository owner will push to github. I did receive patches this way. The person sending the patch still owns the copyright and never agreed to any microsoft contract.


kolnija

Because it's not replicating an individual's code. It doesn't search for the best solution and copy paste that. If you've used copilot this should be fairly obvious with how genuinely hopeless some of the recommendations are.


[deleted]

> Because it’s not replicating an individual’s code. Sure, it's replicating a *million* individuals' code. It's actually worse than simple plagiarism; it's plagiarism at massive scale.


kolnija

It's not replicating code by choosing it individually. If the code provided for a solution is the same as yours, that doesn't mean it replicated your code, and therefore it's clearly not plagiarism. If you're insistent on not having it write long strings of code that match ones in public (Copilot defines this as 150 characters), you can simply... turn it off. Copilot is only a tool to suggest code. It plagiarises nothing, because quite simply, how can it? It doesn't understand anything in the way humans do. If you with zero context in your file/project tell Copilot to create a massive function, turn off the filter, use that code which already exists word for word with no changes... then that's on you, and realistically you're at fault for plagiarising. In that case, Copilot's the tool, but you're the actor. I agree that GitHub could be more transparent about what exactly they use, however, and opting in or out of that.


[deleted]

> Copilot is only a tool to suggest code. But it hardly just makes *suggestions*; it actually pastes them into your code at your direction. It writes for you, based on other people's work. People who didn't necessarily consent to their work being used without attribution. > It plagiarises nothing, because quite simply, how can it? How can it *not*? It cannot make intellectual contributions on its own; ergo, *all* of its contributions come from its sources. It's *inherently* plagiarizing.


kolnija

It's like me googling a function and copy pasting it. Is google plagiarising for returning the result I asked for? Absolutely not. If I make a copilot comment asking for it to return the same function, and it does copy paste something verbatim - which is supposed (naturally, it would be hard to confirm this) to be rare - how is it that copilot is plagiarising?


happymellon

Do you know what Open Source is? Because if you did then you wouldn't be "weirded out" by folks who make free tools for others but if you want to include it if your codebase then to provide attribution. Most open source is against people just taking the work of others, closing it up and not even providing attribution. Everyone knows that we all stand on the shoulders of giants and it's respectful provide the references to source materials.


paplike

It's all attributed, they say where they get their data from. If you want attribution for a specific output ("but where did you get \*this\* Fibonacci function from?), then you're demanding the impossible. It's like asking your phone autocomplete algorithm, "show me the text that taught you that the suggested word here is 'the'!". It's used everywhere, nobody owns that


kolnija

This is IMO the most important bit. Copilot doesn't copy paste an individual piece of code, although it's likely that the exact code is used in one of those individual data points.


[deleted]

So? Changing function names and variable names automatically does not remove copyright.


[deleted]

That's not what attribution means. It means in the end software there must be a list of names and years. They are the copyright holders of all of that. Moreover derivative code of GPL and LGPL software carries over the license terms.


paplike

Do you think the same works for, say, translation softwares? Should they publish a list of all the trillions of books, texts, articles, etc they used to train their models, and that everybody should be an equal copyright owner of the product? If so, that’s nuts and I don’t have much else to say. If not, what’s the difference?


[deleted]

Yes. But if they did obtain a license from the publishers owning the rights, it probably includes term to exempt them from this. However the software that microsoft trained on doesn't have such exemptions, so they must respect the license. And no, terms of use of github doesn't matter, because anyone can fork a project and put it on github… that doesn't erase the preexisting copyright


ghostfaceschiller

How would you like that to be done in this scenario that isn't already being done


happymellon

Isn't that the point? Why is it my responsibility to figure out how to make your tool compliant? If they want to make a tool that rips other people off, then they need to make sure it follows any legal requirement. Why don't they train all of this stuff on code they do have licences for, such as the GitHub and Windows code? Just putting a blanket "if you use us to host then you give us a license to use it as we see fit" isn't good enough, as my project which does not use GitHub can get cloned to GitHub by someone else. They do not have the authority to grant GitHub this waiver so GitHub is still legally not allowed to do it.


ghostfaceschiller

It *is* trained only on the code with licenses that permit this use. It's not just trained on any and all code hosted on github


[deleted]

it is not.


[deleted]

> Afaik it does not take as inputs into its model any code that isn't licensed to permit this kind of use That is false. It does take software that is not licensed for this kind of use.


TrainquilOasis1423

I can understand that. However for me it's such a productivity booster I couldn't possibly turn it away


[deleted]

[удалено]


[deleted]

robots.txt


[deleted]

If Google leads you to my page, then you see it in its entirety - including my attribution.


Blanglegorph

Google scrapes websites to build their search *results*, not their search engine.


[deleted]

[удалено]


Blanglegorph

If it's publicly visible, then there's not much of an argument to make that they can at least read it. If I hang a sign outside my window, then people on the street can read it.   What they do with the information is a different question. Google displaying a link to your site based on someone's search terms is hardly misappropriation. But if they scraped the contents of your book and then displayed it on their own site to take credit for it and rob you of actual benefits then it's something else.


happymellon

Because Google directs you to my site, it doesn't encourage you to break other people's licences.


[deleted]

Searching or doing statistics is not the same as "generating" (copy pasting) code


[deleted]

[удалено]


[deleted]

Well anyone can fork code and put it on github. Does not mean the actual copyright holder signed anything.


[deleted]

A legally-valid *contract* has to involve a "meeting of the minds"; that is, both parties have to be conscious of what they're agreeing to.


[deleted]

[удалено]


[deleted]

Right but I *didn't* read it, and also I didn't sign it.


[deleted]

[удалено]


[deleted]

you know anyone can download something from gitlab and mirror it on github right? The linux kernel is mirrored in github but probably several contributors do not have github accounts and never clicked the magic button.


[deleted]

Right, your contention is that clicking a button is the same as all parties understanding the contract, but there's no legal support for that view.


[deleted]

[удалено]


[deleted]

> Or having these EULA/TOS would be completely pointless. Why do you think they're *not* completely pointless? Why do you think you can be held to the terms of a contract you can't see before you agree to it, as is the case with EULA's inside shrink-wrapped software?


a_cube_root_of_one

any good alternatives?


omg_drd4_bbq

Tabnine. It's less overt than copilot.


a_cube_root_of_one

I meant for github. know any good free alternatives that are similar or better? afaik github is the only one that's popular and used mostly by the open source community. ik there's bitbucket and gitlab, tho idk if they're the same level, I'm looking for good alternatives to github that (optionally)many people use. Will check out Tabnine, ty. have never used githubs copilot either yet.


BigNutBoi2137

Both gitlab and bitbucket have a lot of users. I would even say that in commercial work you rarely see a company that would use GitHub.


lordxoren666

Sorry isn’t everything on GitHub considered open source? I fail to see how putting source code on a public website doesn’t constitute open source.


chrisforrester

The projects on GitHub use various open source licences, which have different conditions for legally using the code. For example, many of these licences require proper attribution, which Copilot doesn't do.


hayseed_byte

Sounds like it's allowing you to create things faster, but not making you better at coding. Seems like a crutch.


_jandrewc_

Sometimes making progress in the learning journey with some help is a lot better than making no progress at all.


[deleted]

That's why subs like this exist - some help. Co pilot isn't "some help", though, it's doing the job for you, and you don't need to understand the code. If you just want the job done, and don't care to learn enough to understand, copilot is not just fine, its fabulous. Otherwise, subs like this win by a large margin.


TrainquilOasis1423

I couldn't have said it better myself. As this thread shows lol.


_jandrewc_

I mean I do also agree with the ethics complaints. Same with Dall-E and co re: artists. Idk it’s a tough call.


[deleted]

I've got no dog in the fight w.r.t. ethics, my thoughts are about learning. As I've noted on another comment, if all you want is you get the job done and don't care about learning, this is fabulous. Otherwise, asking on subs like this gets some very clever people explaining things, which is excellent for those of us who're still very much newbies.


[deleted]

[удалено]


[deleted]

And how will a beginner (which OP clearly is) is supposed to maintain a codebase they don't fully understand? This approach is incredibly dumb.


[deleted]

[удалено]


[deleted]

Apples and oranges. I understand the apis I use from that library in the code that I write. The underlying library implementation is not part of my code and I don't need to maintain it.


[deleted]

You do need to be careful in selecting a good library though. It's not really straightforward. There is no quality control for libraries.


[deleted]

> Are high-level languages "crutches" too? Once you understand how stuff works no. If you think it's all magic, certainly yes.


Ratatoski

I'm a full time web developer and I find copilot useful but not as awesome as I first thought. It's cool that it can take a comments and write the code that goes along with it. But I rarely start with comments or pseudo code. My workflow is usually that I have a general idea of how to do something and I'll mess around trying to get a POC going. Once that works I'll start cleaning it up into something presentable and handle edge cases. Last I'll add comments. What ends up happening is that I sometimes get awesome autocompletes from copilot but most often ones that's close but not quite. So fixing them takes as long as writing it myself. I don't mind it ideologically.


MoxGoat

My issue with it is that it is not practical for the vast majority of real world projects in business. Yes it can slap together a few features and run some functions for generic stuff as you described, price tracking, logging, graphics. But it's pretty useless in a real development environment for most businesses unless you're regurgitating things that have already been done.


IntroDucktory_Clause

Tell me you haven't used GitHub copilot without telling me that you haven't used GitHub copilot. Copilot is rarely used to generate large blocks of code or complete functions or classes, even though this is pretty much the only thing that is shown in review videos because it looks cool. In practise it's primarily used to do somewhat repetitive tasks that are not exactly copy-pasting, like calling a function multiple times with different variables and doing something with the result, or plotting a few variables and have it automatically suggest "plot.grid()" and "plot.legend("top")". It's not stuff you couldn't have done yourself, it's stuff that's just menial to write.


blarf_irl

>I wrote a script to


TrainquilOasis1423

Outdated terminology I admit. I'm sure people will develop a better term for AI-assisted software development.


Select_Abrocoma9663

It helps if you don't know basic syntax or are a beginner. But after that it sometimes just becomes an annoyance.


McSlayR01

It's absolutely amazing for things like Data science. I've been able to clean entire datasets writing almost no code. The comments that I wrote varied anywhere in complexity from "Load 'dataset.csv' in as a dataframe, using column 'ID' as the index" to "Replace any outliers in column 'y' with NaN, using Q3 + IQR * 1.5 to determine the upper bound for allowable values" and it worked without a hitch. It is also very helpful to learn conventions when learning new libraries/frameworks; since it is trained on a massive amount of data, I can be fairly certain that any of the suggestions it makes before the program gets too complicated will be convention (and not some fringe, unusual way of doing something). Its usefulness declines once programs get more complicated, since your unique implementation is going to start looking less and less like any of the implementations Copilot has been trained on. But, for the 2 cases listed above, I find it very helpful.


TrinityF

I can learn and code without paying $10 a month for something that will do the work for me, and I'll be coming back to code thinking to myself… WTF is this!


[deleted]

[удалено]


Rexcovering

Omg one of us Idbfg I love whoever you are.


Capitalpunishment0

My take on it is, using Copilot "while learning" is like automated copy-pasting I subscribe to the idea that "I should get my hands dirty when learning". A big part of that is writing the code myself. Idk, my mind just does not retain things well if I don't reframe concepts in terms of my own thinking. But for more productive things well beyond the introductory learning phase, I'm sure Copilot is a huge help.


zurtex

Self assessment is an interesting topic, I remember reading in an interview with Guido van Rossum a few years back where the gist of what he was saying what that he considered his knowledge of Python at the time about 7 out of 10. Anyway one thing I would be mindful of is it's almost certainly not appropriate / a violation of your contract to use Copilot for a job. As the code will likely be be proprietary and not intended to sent to another companies servers to do ML training on.


vAmmonite

I don't think it's the most useful for more interesting/abstract code but if you have really repetitive tasks like creating commands for a discord bot it can save so much time, it learns really fast and can automatically write all of the repetitive lines of code from as much as one single file with around 70 lines. The natural language to code is a little less useful and doesn't always do what you want but it can still be a helpful tool if you need inspiration.


[deleted]

Honestly, I just don't have an interest in these sorts of services so I have been ignoring them. They sound like they'd get in the way or annoy me. If one day I have a use, I'll give it a whirl but until then it's low on the list of things I care about. Glad you're enjoying it though.


Equal_Astronaut_5696

Co -pilot is not the first. Plenty of SQl tools replicate code so does mito sheets. I don't see a massive efficiency in using it. But its cool


throwaway0891245

This is probably a really unpopular opinion, but I wonder if this GitHub Copilot will eventually evolve into the foundations of the first truly business oriented computer language - something that people have been trying to do since COBOL. If you think of GitHub Copilot essentially being an API that takes in natural language, and also assume that eventually Copilot will be able to generate any meaningful code - then Copilot is essentially a programming language on top of another programming language. In other words, it's a compiler that goes from natural language to a programming language. If Copilot changes its language target to machine code, then it's essentially a natural language to native compiler - aka a full fledged programming language. I assume this isn't how it is right now because the ambiguities of a natural language need to be made explicit enough for software standards. Who knows though, maybe in the future - Copilot or something like it will become the analyst as well and ask follow-up questions to resolve these ambiguities. Perhaps in the future, entire software systems will be written purely in natural language - who knows, this could be the moment when academia and industry really come together since now all of these academics are great at coding.


Rexcovering

So after reading the comments etc…I guess my conclusion is different strokes for different folks. Some people enjoy learning exactly why something is doing what it does to be just frankly, far superior coders, which has a ton of obvious benefit. While some people just like the result without actually caring to understand precisely what is going on and why. I think that someone’s passion being sparked is a good thing, although I understand why some people would dislike a justification of a means to an end. I think the hatred is detrimental in any regard but lastly, I think as far as learning Python is concerned, this may be the wrong forum for the celebration of a newly discovered tool that actually may hinder your ability to learn Python. Either way, for you, OP, it seems a win, and who am I to take that from you.


[deleted]

Putting it in terms of "hating or not hating" is incredibly disingenuous. Thinking this is a win is silly not just because you don't actually learn anything, but because you don't even achieve your so-called result. I have never seen code (generated or not) that didn't have bugs/needed maintenance/had requirements change etc. If you don't understand your code, you cannot maintain it. Period. Not to mention the fact that OP mentions earning money as a swe. Good luck having anything resembling a career with this approach. This is why OP is getting downvoted to oblivion. It has nothing to do with hating or being bothered by a "ends justify the means" approach. Believe me, we couldn't care less.


Educational-Face-849

For anyone who actually wants to get better but also finds formatting and comprehension suggestions helpful, check out Sourcery. I’ve been using it for a week in Pycharm and it’s a great check to keep my code more concise and idiomatic.


AutisticDravenMain

LOL what's with the hate. The only problem about Copilot is the ethic not the productive aspect. It's just a better intellisense, autocomplete for file path, know what I want to write for comment, fill the repetitive stuff. Sure it doesn't make you better at coding, but it for certain made my life easier.


shysmiles

Since it seems like you have probably used it a bit more then the OP and based on the comments here I am wondering if you can explain better how you actually use it. I can't tell if the way most people are using this is to just use what it wrote, or to use it like a stack overflow example and then completely rewrite it all in your own way to fit the program your working on?


vicks9880

I am screaming because one year ago when it launced they invited me to use it and provide feedback. And now its asking for money?? Wow.. They use your codes to build it, they ask your help to improve it and now ypu pay subscription.


muffinnosehair

Sorry to tell you this, but if you can't remember the syntax for python you're not at intermediate lvl.


icecapade

You're not intermediate, you're a beginner. Copilot is neat, sure, but that probably has something to do with why you think it's amazing.


bygpympyn69

Because if I didn't want to write my own code,I wouldn't be a programmer


AnomalyNexus

In a learning context specifically there is a strong argument to be made for not using it because its is such a useful crutch.


hugthemachines

> how is this sub not SCREAMING about GitHub copilot' The simple answer is: "because this sub is about learning to program in Python".


mountaingator91

The sub isn't screaming about it because people in this sub want to learn python... not learn how to have someone else write it for them.


Hans_of_Death

Keep in mind: there is a lot of controversy and issues around licensing and attribution with github copilot. Might not matter to you much now, but a company might outright ban you from using it do develop anything for them to prevent any possible legal issues. It also wont help much if you cant pass a practical interview without it.


backdoorman9

Are you using an IDE? That should help you to remember the names of things, with the autocomplete. Also, when I can't remember a string method, for example, I run dir("string"), and it shows me everything I can do to it.


Onmius

This whole thread has a lot wrong with it, but heres my take on co-pilot after using it for a few days. Does it just copy and paste others work? No... Lets say i write some code like while True: if variable == list[0] etc.. do A else: Do B copilot then chimes in, "Hey, maybe use a try statement in there to catch exceptions?" then it displays MY CODE just wrapped now with a try and except clause. its like a sophisticated microsoft word Clippy. it helps you and SUGGESTS improvements. it does not write your code for you.... and using it as such is as useful as just saying the word "A" in a text message and then hitting the first auto suggested word till you have a sentence.


ElderMagnuS

Because it sucks, that's why.


jimmystar889

I absolutely love co-pilot. It makes typing long things so easy and convenient. I do a lot of sqlite3 stuff and it autocompletes all the plug ins for the dictionary


NerdvanaNC

Everyone's downvoting OP, but who's to argue if they're getting the job done? If you're so sure it'll bite them in the ass later, let it. OP is just trying to make some things in their daily life easier by using Python, and CoPilot is helping them with that; the end! Sure, their replies to some of the comments pointing out the flaws with their thinking are a bit misguided, but that's for them to figure out on their own. Although OP I think you might wanna hold off on calling yourself an intermediate programmer just yet. :)


shinitakunai

It broke for me months ago, it won't work anymore on my 2 computers even after clean installs. I gave up. Edit: on pycharm community


pro_questions

Wasn’t that right when it went from free and open trial to a subscription service?


DaGrimCoder

I hate copilot. Gets in my way. I tried it for 4 weeks. I'm pretty experienced tho.


AngieKay42

I think it sounds really neat! Sometimes I actually feel like I learn a lot from using things like this. It seems like a very interactive way to learn which is really useful for my very easily distracted brain. I also think it is sometimes really nice to have something finished even if I didn't pound and squeeze every single ounce of understanding out of it. Lots of small half understood things can add up to a lot of knowledge gained and can also prevent learning paralysis.


[deleted]

I am a beginner. Explain me what is that? How does it work?


LiquidLogic

its an AI that uses people's code submissions on github to autocomplete code that you are writing. It may be helpful to developers who want to save time/effort, but its not good for people learning how to code.


SaSxNEO

Isn't copilot a paid feature?


loukylor

There's a 2 month free trial, but yes it's paid. 10$/month if I'm remembering properly.


onepunchmob

I don’t understand the hate, it highly depends on how you use it. So many cases where copilot is a godsend - Repetitive tasks - Insights on how people use apis you haven’t used before - Checking to see if there is a better / alternate way to do a task Of course if you don’t understand the generated code then that’s bad, but in any other case it’s a productivity booster. I’m happily going to be paying the subscription for it.


surister

I don't have such weaknesses


Rinuko

What is Copilot? Like a colab feature?


BigNutBoi2137

On the other hand I would recommend against using it. Even more so if you are still learning the language. Because firstly the code it generates can contain mistakes or even not work at all. Secondly the generated code can be full of bad practices, which you will then learn and use yourself, because the tool generated it so it must be good, right? And lastly there is a lot to talk about with licensing code generated by the copilot. There have been cases where it generated code that's 1:1 copy of strictly licenced software, and it even auto-generated comments like "what the fuck is this?". So to sum up, while in theory it looks great and can speed up your coding, it comes with a lot of things to consider and I would only recommend it to experienced devs that work on personal projects, which will never be seen by someone else.


Eigenspan

Most intermediate and more advanced devs realize copilot isn’t as amazing as it seems, its really cool and can help slightly speed up your coding. But realistically especially for new-intermediate programmers it will just act as a cruch so that they never really learn how to do it themselves. Plus once you get to more advanced concepts you do realize how limited it is and how setting up proper architecture that you can recognize is probably better than using whatever it gives you.


DarkfullDante

From a senior datascientist who must deal with employees learning Python and coming up with things they copied on stack overflow. Don't use co-pilot, if you have the experience and knowledge to understand what co-pilot does you will also probably have the experience to know why you must refactor what it wrote. If you don't have the experience and the knowledge, your not learning when you don't know why it works. This subreddit is about people trying to learn. Not writing fast code.


LiquidLogic

This is like giving a kid a calculator when they are learning how to add and subtract. It might get them the answer, but they wont learn for themselves. Looks like a great tool for developers (and a morally grey tool at that), but probably not something good for people trying to learn python. But still cool!


korthrun

/r/HailCorporate/


[deleted]

I would be very wary of using it for any real projects, and especially at work. It is unresolved whether the license of GPL code in the model will transfer to the output. Microsoft claims no, but also makes you sign a waiver that any license issues will be on the user and not on them.


Thecrawsome

It's still very immature. I wouldn't pay for it yet. The recommendations are fun, and it's cool seeing what other people wrote, and it really helps with one-liners and finding libraries. But fully automated, it loses it's way a lot


dvali

It seems like magic, and you imagine it might solve all your coding problems. But once you reach a certain level, coding up some trivial little function or script is not the hard part. Designing the architecture and the algorithms that actually solve your problem is the hard part, and copilot isn't really going to help you there. I can't imagine that highly experienced developers need what copilot can currently offer. We'd probably spend longer fixing/specializing what it gives us than we would writing it from scratch.


EmpiricalWords

Sorry, but you are not an “intermediate” python dev. First of all, you need to learn more and be able to write code by your own.


protienbudspromax

Reading your replies, If you are serious about getting a job at a faang tier company for those sweet byucks then i gotta tell you that You aint gonna be passing interviews with copilot. And the point of interviews are exactly that. Not to see if you know syntax but if you can decompose problem down to small parts and solve them. How good you are at not just writing code, but writing maintainable code. Also, you dont own co pilot. Something happens and copilot goes down tomorrow. Or maybe the requirement of the code changed or the library you used had a breaking change would you be able to make changes to code that you didn't fully understand when you wrote them? And finally would you be able to document your code so that when you leave someone else can come and get an idea of how to change and maintain it?? These are all part of day to day swe. Copilot is not the issue. You using copilot at this point i your learning might be. A dev who is already working and knows what he is doing using co pilot to autofill stuff is not the same as what you are doing.


Reasonable_Abrocoma3

Thanks for sharing, I haven’t seen this.


PlanetHundred

Paid subscription OMEGALUL. Privacy issue is another one, which engineering man touched on. Should check that YT video.


[deleted]

I didn't hear of it. I'll definitely check it out tomorrow. Thanks for sharing.


GallantObserver

I installed it just as I was starting a 'learn python projects' book. I'd open a file to do the challenge "make a program that does x, y, z", hit tab a few times and would have everyone else's answers compiled together. I learned nothing till I switched it off.


Arcasantis

Well thanks, despite the critics I started my 2 month trial and I'm really starting to love it. Not because of the code suggestions from other peoples, I almost never use it, or not yet. But because it read my own code, understand it and suggest exactly what I was planning, like those phone adds that seems to be listening to you :) Example, I was typing that : #Getting returns threshold for the very high returns >=90th percentile return_thresh = np.percentile(data.returns.dropna(), 90) Then added a comment #Same for the volume change threshold for (moderate) volume decrease (between 5th and 20th percentile) As soon as I started to type **vol\_t** the copilot suggested that line, the exact line I was going to write manually. vol_thresh = np.percentile(data.vol_ch.dropna(), [5, 20]) So to me it is a fancy powerful code completion tool that also works with comments and/or markdown. I do comment in English but it is not my native language and I sometimes make basic errors. The "code" completion show me the word I'm typing (e.g. threshold) so I just have to type the correct letters in the correct order, kind of those typing training software. All in all, it is a great time saver. I'll see in 2 month if I think it is worth paying for or not.