5 ms·
This is spot on, and I've found myself making the same argument recently about GitHub's Copilot. It's changing the way I write code in a way that I can already
by burke 5y ago
This is spot on, and I've found myself making the same argument recently about GitHub's Copilot. It's changing the way I write code in a way that I can already tell is allowing me to be much lazier than I've previously been about learning various details of languages and libraries. There's an obvious tendency to play Thamus and judge that as a bad thing, but I think the reality is that Copilot and future generations of tools inspired by it will completely change the operation of programming in ways we can't even imagine yet, allowing us to build software more quickly than we currently suspect.
It's a train of thought that spans the arc of history: the New Thing, which allows young people to get by without developing deep skills in an area that was previously critical to success, is inherently bad because it enable laziness. In reality, it provides the leverage necessary to do things faster, or sometimes to do previously-unimaginable things.
- omnicognate 5y agoThat's a straw man. I've not seen anybody argue copilot is a bad thing because it makes developers lazy. I haven't tried it (I'm registered, no joy) but I'm skeptical of its utility, to me at least, because it replaces writing code with reviewing code to identify whether it does what it should and fixing it if it doesn't, and I find the latter vastly more time consuming and mentally taxing than the former.
- cercatrova 5y agoI have it, and it's quite good. I believe you'll change your opinion once you actually get a chance to use it in a real project. For example, I was able to have it write a bunch of boilerplate for me for converting a database query into their proper TypeScript types. I could have done that manually but it's, well, called boilerplate for a reason. It also helped me learn new features or ways to do certain actions. One such case was how it used immutable data structures to represent a change rather than mutating. Think `arr = [...arr, newElement]` rather than `arr.append(newElement)` which is not exactly the code I was writing but simply an example.
- omnicognate 5y agoI have an open mind, and if I find it a useful tool I'll adopt it enthusiastically. However I remain skeptical for the reason I said. The positive comments I read from people who've tried it give examples of things it's done right, effort saved, things learned, but make no mention of the effort taken to verify what it produces. I don't know if that's because they're uncritically accepting what it produces (which would be bad), because it's only usefully producing trivial bits of code (which would put it in a race against how fast I can type, handicapped by whatever percentage of the time it gets it wrong and the time taken for me to check) or because I am somehow unusual in finding reading code much, much harder than writing it. I'm getting pretty frustrated with the limited access. I signed up months ago. Just release it already.
- burke 5y agoIt's not a straw man; I'm articulating one of several thoughts I personally have about the tool after using it for some time. I'd be surprised if I'm the only one it's occurred to and I'll be _extremely_ surprised if we don't hear a whole lot of it once Copilot is more widely available. At any rate, I was also initially somewhat skeptical but it is hard to overstate how effectively it predicts exactly the code I was about to write, or suggests the code I don't know I want. It is, for me at least, significantly faster in the languages I know well, and monumentally faster in the languages I don't know well.
- omnicognate 5y agoAh, I misunderstood your comment then. Apologies. I'm keen to try it out just as soon as they let me.
- bluishgreen 5y agoCopilot is open to public. No waiting list. (AFAIK)
- mechanical_bear 5y agoFive second Google search shows otherwise: https://github.com/features/copilot/signup https://github.com/features/copilot/signup