8 ms·
Changing my relationship with GitHub Copilot
- topkai22 3y agoThis mimics my experience with copilot (although not other coding tools like syntax highlighting.) Copilot can be extremely noisy and disruptive. It works best for me then I have it set up to only prompt on demand.
- deleted 3y ago[deleted]
- tomelders 3y agoGood to hear it’s not just me. Syntax highlighting and old fashioned code completion are essential for me, but CoPilot is a distraction. I think “reading” code is my least favourite part of the job, and CoPilot means I have to spend a lot more time reading the code it generates, trying to figure out what it’s trying to do, then realising it’s wrong and I still have to write it myself. It’s rapid fire context switching. But turning it on only when I need a second opinion seems like a better way to use it.
- low_tech_punk 3y agoIntermittent fasting applied to IDE can be rather refreshing. It's similar to drinking a strong shot of espresso after daily drinking over-sweetened latte.
- civilitty 3y agoWhen studies control for total calories consumed, IDEs are all the same.
- low_tech_punk 3y agoNot true! vim prevents calorie burn off because those lazy fingers barely leave the home row!
- dools 3y agoHa, I thought I was the only person in the world who disliked syntax highlighting. I only use :syntax on when I can't find a parse error! My only real exposure to an IDE like development experience is the Google Apps Script editor and I really dislike it. Auto completion, auto indenting, it's all such a pain. I use ChatGPT-4 all the time for coding, but I just copy and paste between 2 interfaces. I might just be an old man yelling at a cloud but having things pop up and code jump around on the screen while I'm typing just annoys the shit out of me. Also since I code in a relatively basic vim environment I'm able to work from any SSH terminal without having to worry about setting things up in a particular way which seems like a bonus to me (except in cases where vim comes with all sorts of auto-junk enabled in which case I find myself looking for how to disable everything which I guess is the same as setting things up in a particular way ... )
- jweir 3y agoHardly alone. I use no color except for comments and errors. Rob Pike has no color - he thinks it is juvenile. https://groups.google.com/g/golang-nuts/c/hJHCAaiL0so/m/kG3BHV6QFfIJ https://groups.google.com/g/golang-nuts/c/hJHCAaiL0so/m/kG3B... I just don’t see the utility in having a bunch of colors.
- phito 3y agoHahaha juvenile... Some people are so arrogant. Syntax highlighting adds more visual information to the code to help your brain navigating it. Some people probably don't need it, but personally it helps me tremendously and I would have to have to program without it. It's like eye shortcuts.
- vidarh 3y agoYeah, it seems pretty arrogant. If anything I want more cues, not fewer. While color for syntax highlighting is relatively new, it does date to the 1980's, , and so if it was a person it'd be middle aged by now... Even long before that the syntactic conventions of many languages were designed to achieve much the same (e.g. different casing patterns), some of which have survived into modern languages, along with a long string of "pretty printing" tools that to format things with bold, underline, italics etc. The only reason I didn't rely on color for highlighting much in the early 90's was that e.g. at university I often still worked on monochrome terminals.
- abledon 3y agoyadda yadda, human brain can only make "X" decisions everyday before fatiguing.... everytime copilot 'suggests' something, its a mini slice of your 'decision' energy, to ignore it and keep typing
- zogrodea 3y agoThere have been criticisms of decision fatigue which you are referring to. You might have already been aware, but it might be worth mentioning since those who disbelieve in it have been reported as better at decision-making than those who believe in it. https://en.wikipedia.org/wiki/Decision_fatigue https://en.wikipedia.org/wiki/Decision_fatigue
- vikramkr 3y agoI wonder how many programmers get their primary satisfaction from writing code versus creating the end result. I can't imagine ever gaining satisfaction from reducing productivity since the process of programming isn't that interesting to me. It's what I can do with it that motivates me. The faster and easier I get to the state of having built the thing the better. Though there are other areas where I couldn't care less about the end result and just find the process fun. I mean don't get me wrong - I can get motivated by pretty much any end result, from a big fix to a new app, but I'm always indexing on what I'm trying to do.
- yjftsjthsd-h 3y agoAs a hobby, I could see some people treating programming like solving a puzzle, in which case tools that skip over the middle bit would be unwanted. I say that as someone who does enjoy the feeling of solving problems but who prefers to get to the solution, though:)
- marginalia_nu 3y agoEven professionally there is something for craftsmanship. Rushing to the finish and not caring how you get there rarely makes a solid product.
- satvikpendem 3y agoI feel both sides of it. I really do want to create a well designed end product, but I also often succumb to shiny object syndrome, because, well, I want it to be well made inside and out. I'm reminded of Steve Jobs having his employees sign the inside of the motherboard because even though no one will see it, it feels good to know that you did your best, even where no one will see it.
- osigurdson 3y agoI feel the same but the work also has to be high quality. I want the end result - fast... but if it is a hairy mess then it doesn't really feel like anything real has been accomplished (other than learnings perhaps).
- gdcbe 3y agoI find it equally refreshing to sometimes not use vscode and use instead helix (similar to vim). Or for projects that I’m not often contributing to, even just the IDE of gitlab/github directly.
- javajosh 3y agoOP resonates. I was also using Copilot in March and it got me through some important parts of my project, the bash scripts I needed to write for setup. But it didn't do a great job on the application itself, apart from writing pretty decent comments after I wrote the code. (Which is funny, because it seems most people go the opposite direction...). Yeah it's hard to be creative in this space because of the noise, even without AI. Everyone has so many ideas and there is so much code in so many libraries and tools and it's like trying to play music that's similar to, but not the same, as something someone is playing on trumpet right beside you. Discovering your control over this cacaphony is an extremely satisfying experience. And, after some time, you realize that silence is the default, and that cacaphony is life and it's good that it's there, but it's also nice to leave it in the distance, a tinny-sounding speck you leave behind while you hike in the wilderness.
- ilrwbwrkhv 3y agoAnd that's why I have kept using Sublime Text. It just does the right level of everything.
- latenightcoding 3y agoWith sublime I can have 5-10 projects open without even noticing (LSP plugin and everything). vscode can barely handle one.
- zdragnar 3y agoWhat type of programming do you do / what languages? I've got three open 24/7 in different windows, sometimes more, and vscode behaves no differently than if I've got just the one. Total RAM usage is not exactly minimal, but still small enough I can have multiple servers running along with postgres, two chrome profiles and assorted terminals, and still have a comfortable amount of RAM left on my 16gb laptop. In fact, the only time I ran into trouble was when a funky install caused one particular webpack dev server to leak and eventually force me to close every chrome process that was running (vscode + chrome windows) to let the system recover the memory.
- ilrwbwrkhv 3y agoDefinitely that but also vs code is too busy. Just the window chrome is too garish.
- bitwize 3y ago> But last week, a friend at RC noted that she doesn't use syntax highlighting and doesn't use other noisy editor plugins. I've been curious about stopping using syntax highlighting, and her reasoning really spoke to me, so I tried it. > I went and found a grayscale color scheme (since I do like a small amount of visual distinction for comments) and installed it. Immediately, I felt some relief. I disabled my LSP plugin in vim, disabled rust-analyzer. More relief. Ah, two other people who've "switched off the targeting computer". After reading so many comments on Hackernews (and hearing similar from colleagues) to the effect of "I can't live without syntax highlight/autocomplete/refactoring tools/other", I was beginning to think I was some sort of weirdo/grognard for not bothering with many of those features and becoming frustratingly distracted when working in an IDE where autocomplete is enabled.
- WaxProlix 3y agoI must be completely in the minority. I enjoy side projects and like the feeling of accomplishment from making something as much as anyone, but AI tools have been a real godsend. I feel reinvigorated, trying out new frameworks, building stuff I'd only sort of considered before. Maybe this is still honeymoon phase but it's been months and I'm still digging it. Bring on the version that can support my coworker's 7 year sideproject 80k line rathole of python metaprogramming and tell me how to make a small change there, bring on the version that can understand version conflicts between react, react native, and expo libraries - or even fix their shit documentation in real time. Even if the core product of these LLMs doesn't get any better, I'm stoked to see the wrappers and fine-tunes that they produce over the next few years. Maybe I'll get to be a super TPM with a legion of little AI agents to do the things I want and I'll only have to write code when I feel like it.
- runnerup 3y agoYeah the only thing I don’t like about GPT-4 powered CoPilot is that its context window is too small. Same feelings here. I’m a product engineer at heart. I love getting products off the ground and love tackling the “hard science” kernels of value which GPT can’t help with. Everything else is just implementation and while I agree it’s necessary to know programming and databases and networking or else you’re doomed following the pied piper of LLMs, I don’t find the rote implementation to be the fun parts of what I do - I’m happy to use GPT to ease the burden.
- deleted 3y ago[deleted]
- noduerme 3y agoOne of my favorite aspects of coding a project from the ground up is designing the database schema, anticipating how things will need to scale. To me it's something better done first with paper and pencil. Then I'm constantly discovering the ways in which I need to reconsider parts of the data structure as I begin writing and tuning queries, figuring out where bottlenecks will be. I don't consider it "just implementation" in the way I do, like, writing UI components or user action trees. My concern is that if I didn't go through that process, mentally and on paper, but took GPT's suggestions at some turns, I would never really have the handle on the strengths and weakness of the underlying model that I have from knowing every nut and bolt. Which would likely lead to all the software I wrote on top of it being less robust than it could be.
- r00tanon 3y agoPair programming can be a productive, even fun, activity in limited situations. Now that we have the option of our pairing partner being human or AI, it sort of highlights a lot of the situations where pair programming is NOT productive, or even fun.
- sbjs 3y agoFor me, writing code is always easier than reading it, regardless of who wrote it.
- MAGZine 3y agoThe biggest thing copilot needs is the ability to toggle it off in VSCode with a keyboard shortcut. You can trigger a 'disable copilot' popup from a command, but not a full-fledged toggle. Maybe I'm missing sometime this author is using? If I could just toggle the whole thing on and off with the press of a button, it would be more useful. Sometimes I just need to write code undisrupted.
- PeterStuer 3y agoComparing syntactic highlighting to 'office noise' feels not right. While the latter is intrusive to the process as it is both uncontrolled, disruptive and without benefit, the former provides contextualized information in support of the process under control of the user.
- jmauritz 3y agoThe author also mentions that spellchecks ruined his concentration. I thought I had problems concentrating but this is on a different level.
- AtNightWeCode 3y agoI quit using GC since it adds cognitive load and because it lures one into incorrect solutions. I always try to have a single focus when I work. I don't even like having multiple screens for the same reason. I do use AI for coding sometimes but then that tool is my main focus.
- ulizzle 3y agoFun is a subjective metric. You can turn around the argument by saying it brings one joy to find new solutions to old problems with GH Copilot. And so on. Personally, when in a flow state, I can't be interrupted. Eventually, it goes away, and I return from my trance to many unanswered messages and unread emails. Hopefully, it is nothing important, but life is cruel. Some people need quiet to focus, and some like music or the TV playing in the background. I think the need is privacy. That's why working from home is so productive. But for large, complex projects, an IDE is indispensable. Life's too short.
- berkes 3y agoFor me, Copilot is a tool to keep in the flow. It handles the plumbing while I can keep my focus entirely on the larger flow. No longer get pulled out of the flow because I have to look up the difference between, say, unwrap_or and map_or (rust), or how to map/reduce over a NodeList (TS, Js) or how to open a file only if it exists (python). I don't care, at this point, how it is done, I just want a "if_file_exists_open_it" or I just want to sum the numbers in the subtotal column of that HTML table. Or I just want to provide a default "free" string when shipping.cost is None etc. For me, flow isn't writing these very language specific algorithms, it's cruising along on a stable altitude.
- ulizzle 3y agoThat sounds right to me. I actually think I enjoy coding more now than in the past, writing function names and letting the IDE write the code itself.
- soultrees 3y agoCopilot is generally pretty awesome. Copilot chat gives me the most frustrating experience, and seems to be following the OpenAI path of “make the models worse, so we can get more reasoning data when the user has to clarify the question 5 times”. I find I have to ask it multiple times in a row now just to get the help I needed. I would be severely at a loss without these AI tools in my day to day but I’m tired of being a Guinea pig.
- specproc 3y agoI'm also on the Copilot Chat trial and I agree it's pretty weak at the moment. Good for asking random programming (or even general computer) questions, but lousy at understanding and working with my code -- which is basically what it's supposed to be there for. Where I have found it helpful is in the forays into front-end LLMs more generally have enabled. I can give it a HTML template and say stuff like "can you put the menu bar on the right?" or "I'd like this in bootstrap/tailwind" and it does a pretty magical job there.
- tra3 3y agoComparing slack notifications and copilot is interesting, there are certainly some parallels. To me, it’s more like a horizon indicator when flying drones. I can manage without, but gonna have a hell of a time not crashing. I was thinking about comparing it to a vehicle tach, but engine sound is a pretty clear indicator of when a shift needs to happen.
- pavlov 3y agoI mostly try to program in “flight mode”, mentally if not always literally. I try to maintain a buffer of work that I can do for several hours without an Internet connection. I keep local copies of language and API references. I try to make a self-contained local environment for the module I’m working on. This mode of working isn’t really compatible with cloud-only tools like Copilot, of course. So far I haven’t seen enough of a reason to start changing my habits, but the day will probably come. I’m hopeful local models like Code Llama will catch up and let me keep my flight mode.
- satvikpendem 3y agoInteresting article, as I feel the exact opposite. The more time I have to parse out what code does and fix bugs along with that, the less time I actually get to code. The lack of syntax highlighting is an exercise in frustration for me, it takes me 10x longer to read and therefore understand. So too with Copilot, I can now write side projects twice as fast, if not faster. That, to me, is where the real fun occurs. I do understand where the author is coming from though as I have friends who have similar setups, monochrome editors with no LSP. Talking to them, I believe they are ADHD or neurotic adjacent, where if the red squiggle is not dealt with immediately, they stress about or have anxiety over it, so the author must be similar. I think they can't relate to others because most others simply don't care. Hell, I'm the same way as the author about phone notifications, as I turn most off and those I don't turn off, I feel like I must deal with immediately as well lest I be anxiously thinking about them, and yet I see so many that have dozens of notifications active. But I simply don't feel the same way about code and writing, while the author does. Anecdotally, I've been having a blast with ChatGPT Plus with GPT 4. I can ask it interesting programming questions and it provides novel insights. The other day I was thinking of how one could make a better GraphQL type interface, and ChatGPT suggested that the query language also handle local state, ie, there is no local or server side state, it's all just state. I was curious about that and asked it more, going down the rabbit hole as to how the syntax and semantics would look. Best of all, I could do it all on my phone through their app, while I was walking or doing other things. It felt like having another senior engineer who would endlessly trade ideas with you, never tiring.
- konschubert 3y agoI am fully with you. Coding is the act of solving a problem, figuring out an application design and iterating on it. I am satisfied if I fixed a bug, removed a bottleneck or have a new feature to show for at the end of the day. And if AI automates that one day, I will move on. The world has enough problems to solve, so far I see no need to work on those that can be solved by machines.
- firebaze 3y agoInteresting, I'm on the same page regarding the first paragraph of yours. And exactly because of this I dislike using Copilot, since most of the time it will provide a completion which has issues. Not necessarily bugs, but the completion does something slightly off or doesn't (or does) consider an edge case different to what is intended. This detracts me quite a bit from writing code. I don't want to supervise my junior co-developer, I want to get something done - this is why I also, like the author, enable CoPilot only selectively. On the other hand, using ChatGPT-4 (as in chat.openai.com) for creating large-ish chunks of code after discussing the general idea and refining it for a while is a god-send. YMMV, as always.
- cpctheman 3y agoI cannot imagine programming without an LSP. For simple things like editing config files or yaml, sure, but anything more complex and the LSP is an essential tool. Syntax highlighting similar. That said, I don’t think AI companions are advanced enough to be on the same level of utility. Maybe some day, but not soon.
- yumraj 3y agoSlightly off topic, but I seriously wonder if copilot/other AI coding tools are going to end up a one way street, in the sense that one would be able to write the v1 of the product, but will end up being maintenance nightmare since no one, not even the original author/ copilot-driver , would have an idea how things work and fit together.
- ulizzle 3y agoI've never seen GH Copilot use "tmpVar1" and "tmpVar2" as variable names or "ijk" for-loops. That is a step above the average human programmer as-is. The dream is that you write the method names and the A.I writes the code for you.
- 9dev 3y agoI doubt you’ve ever really worked with Copilot on your own. It doesn’t write the entire application for you, but mostly completes the line you were about to write anyway. It’s not a tool ideal for beginners; but then again, an app written by a junior will end up a maintenance nightmare whether they have Copilot or not. The fear of this thing is so much overblown, it’s ridiculous.
- yumraj 3y agoYes, you're right that I have not worked with Copilot. But, I'm not afraid of it and am currently trying to run Code Llama locally. Am definitely looking forward to learn more. Having said that, I have seen contradictory statements on how people are using these, or see themselves using these. One is the way you mentioned, completing line or perhaps writing complete functions given a prompt. However, people, including in this thread, have talked about working in new frameworks etc. which implies to me that they are probably using copilot to generate much of the code. I have had conversation with non-Engineers (read Product Manager types), who are using it to generate code and write applications. And, that is the situation I was referring to becoming a maintenance nightmare. The way I see it, it's just a tool. It can be great in the hands of an experienced programmer, but might become a deadly weapon in the hands of a novice.
- rcme 3y agoI didn’t find Copilot all that useful. The only time I got any use from it was using a new library. It kind of worked for sketching out an initial attempt at using the library, at least good enough for me to get started. The code it generated was still wrong, however. For this reason, it’s actually harmful if I know what I’m doing. I’ve had more luck with ChatGPT for programming help, again in situations where I was working on something unfamiliar but needed more context than provided by Copilot. Prompts like “write a Vulkan compute shader to find the max of a list of numbers” definitely got me started faster than I would be able to do on my own. Still, it’s not something I would consider fundamentally game changing.
- deleted 3y ago[deleted]
- _xivi 3y agoYeah, I found Copilot depends on how mainstream is your environment. It's like commuting by train, it count on the fact that many people share the destination. But if you start deviating and using niche languages or tasks, it's no longer viable.
- natch 3y agoThe author never mentions the alternative ChatGPT. It’s an article about Copilot, yet people are commenting as if it’s an article about coding with AI tools generally. Copilot is very intrusive and is just one of the available options.
- alin23 3y agoSome people like the process of writing code, more than the end result. I had a few months of that feeling, but nowadays it’s rarely about writing for me. Just the other day I used Copilot to explain the disassembly of macOS KeyboardBacklight code, so that I can turn off the keyboard lights when using Lunar’s Blackout (https://lunar.fyi/#blackout https://lunar.fyi/#blackout) It even helped me generate the ObjC function signatures from assembly and use the right calling convention in Swift afterwards. It really feels like magic. I would have no joy in writing that code, it’s mostly bridging and translation anyway. I just need it to do this thing so that people can take advantage of it.
- marginalia_nu 3y agoI feel it's incredible good at boilerplate. Mapping SQL to object fields, that sort of thing. But anything deviating from trivial boilerplate it tends to get subtly wrong more often than not, and the code is bad too. Always end up rewriting half of it. Been keeping it off lately, feels like in most cases I'm more productive with dumb autocomplete, because then I already know what it will suggest, saves a lot of mental bandwidth over constantly parsing irrelevant copilot noise.
- personjerry 3y agoDo you guys get enjoyment from writing the boilerplate, integration code? I feel like the most interesting stuff is like the design of the system itself; I usually debate with ChatGPT4 on architecture, models, processes, and their tradeoffs, and then I wish all the implementation details could be filled in (by interns or copilot, which I haven't tried yet)
- user432678 3y agoI do enjoy writing boilerplate code. It’s like a form of meditation for me. It allows me to think about big picture things without being distracted by running thoughts.
- patrulek 3y agoCopilot and AI assistance tools are godsend for quick prototyping and experimenting, especially in a language i'm not so proficient.
- cheema33 3y agoBefore ChatGPT-4, I thought GitHub Copilot was very good. After, I think GC is brain-dead. Suggestions offered by ChatGPT-4 are far far superior. For me, GC has been more annoying than helpful lately. I may need to look into canceling the service. I do wish ChatGPT-4 had access to more recent data. Being stuck in 2021 is bad when you are using libraries and frameworks that move very fast.
- swader999 3y agoInteresting article. I don't think there's one size fits all in regard to syntax highlighting and code completion tools. A lot of what's optimal might just come down to how individual brains work.
- deleted 3y ago[deleted]