9 ms·
With all these AI tools requiring a prompt, does it really simplify/speed up things? From the example: I have to write "add a name param to the 'greeting' funct
by vander_elst 3y ago
With all these AI tools requiring a prompt, does it really simplify/speed up things? From the example: I have to write "add a name param to the 'greeting' function, add all types", then wait for the result to be generated, read it carefully to be sure that it does what I want, probably reiterate if the result does not match the expectation.
This seems to me more time consuming than actually do the work myself. Does anyone has examples where promoting and double checking is faster than doing it on your own? Is it faster when exploring new solutions and "unknown territory" and in this case, are the answers accurate (from what I tried so far they were far off)? In that case how do you compare it with "regular search" via Google/Bing/...? Sorry for the silly question but I'm genuinely trying to understand
- djleni 3y agoCan’t speak for everyone else but I almost exclusively use it for what you mentioned: > when exploring new solutions and "unknown territory" If it’s something I have no idea how to do I might describe the problem and just look at the code it spits out; not even copy pasting but just reading for a basic idea. > how do you compare it with "regular search" via Google/Bing Much worse if there’s a blog post or example in documentation that’s exactly what I’m looking for, but, if it’s something novel, much better. An example: Recently asked how I could convert pressure and temperature data to “skew T” coordinates for a meteorological plot. Not something easy to Google, and the answers the AI gave were slightly wrong, but it gave me a foot in the door.
- jamil7 3y agoThis is also where I've kind of ended up with it, I've also noticed that when I was at one point using it everyday, I'm opening it less and less, maybe a few times a week and recently cancelled my subscription. It's still pretty useful for exploritory stuff, boilerplate and sometimes it can give you a hint on debugging. Everything else I can write faster and more correctly myself.
- rolisz 3y agoWell, regular search means switching to a different application, with an implied context switch. It definitely takes longer for many things than just using GitHub copilot.
- pocketarc 3y agoPersonally the use for me has been in writing boilerplate. As an example, one of my ongoing goals has been to port all the view code of a project to another framework, following its idioms. Using an LLM, I can process a file in a couple of seconds, and checking that everything is right takes just a few seconds as well. It’d take me hours to go through every file manually, and it’d be prone to human error. It’s not technically challenging stuff, just tedious and mind-numbing, which is perfect for an LLM. I do agree though, these basic examples do seem quite pointless, if you already know what you’re doing. It’s just as pointless as telling another developer to “add a name param to ‘greeting’ function, add all types”, which you’d then have to review. I think it comes down to your level of experience though. If you have years and years of experience and have honed your search skills and are perfectly comfortable, then I suspect there isn’t a lot that an LLM is going to do when it comes to writing chunks of code. That’s how I’ve felt about all these “write a chunk of code” tools. In my case, apart from automating the kind of repetitive, mindless work I mentioned, it’s just been a glorified autocomplete. It works -really- well for that, especially with comments. Oftentimes I find myself adding a little comment that explains what I’m about to do, and then boop, I’ve got the next few lines autocompleted with no surprises. I had to work without an internet connection a few days ago and it really, really hit me how much I’ve come to use that autocomplete - I barely ever type anything to completion anymore, it was jarring, having to type everything by hand. I didn’t realise how lazy my typing had become.
- nox101 3y ago> Using an LLM, I can process a file in a couple of seconds, and checking that everything is right takes just a few seconds as well. It’d take me hours to go through every file manually Can you explain more how "checking everything is right takes just a few seconds as well? A code review can't happen in "just a few seconds" so maybe I don't understand what the process your describing really is
- pocketarc 3y agoIn the example I gave, it was just porting the same view code from one framework's way of writing view code to another. It's a one-off task involving hundreds of different views. There's zero technical challenge, almost no logic, super tedious for a human to do, not quite automatable since there could be any kind of code in those views, and it's very very unlikely that the LLM gets it wrong. I give it a quick look over, it looks right, the tests pass, it's not really a big deal. And one nice thing I did as well was ask it to "move all logic to the top of the file", which makes it -very- easy to clean up all the "quick fix" cruft that's built up over years that needs to be cleaned up or refactored out. In those cases the file might indeed need more time dedicated to it, but it would've needed it either way.
- ithkuil 3y agoFor me a useful coding assistant would be one that looks at what I'm _doing_ and helps me complete the boring parts of the task. The current wave of coding assistants target junior programmers who don't know how to even start approaching a task. LLMs are quite good at spitting out code that will create a widget or instantiate a client for a given API, figuring out all the parameters and all the incantations that you'd otherwise need to copy paste from a documentation. In a way they are documentation "search and digest" tools. While that's also useful for senior developers when they need to work outside of their particular focus area, it's not that useful to help you work on a mature codebase where you have your own abstractions and all sorts of custom things that have good reasons to be there but are project specific. Sure, we could eventually have LLMs that can be fine tuned to your specific projects, company or personal style. But there is also another area where we can use intelligent assistants: editors. Right now editors offer powerful tools to move around and replace text, often in ways that respects the syntax of the language. But it's cumbersome to use and learn, relying on key bindings or complicated "refactoring" commands. I wish there was a way for me to have a smarter editor. Something that understands the syntax and a bit the semantics of the code but also the general intent of the local change in working on and the wider context so it can help me apply the right edits. For example right now I'm factoring out a part of a larger function into it's own function so it can be called independently. I know there are editor features that predate AI that can do this work but for various reasons I can't us it. For example, you may have started to do it manually because it seemed simple and then you realize you have to factor out 5 parameters and it becomes a boring exercise of copy paste. Another example is that the function extraction refactoring tool of your IDE just can't handle that case, for example: func A(a Foo) { b := a.GetBar(); Baz(b.X, b.Y, c, d) } you'd want to extract a function func _A(b Bar) { Baz(b.X.... and have A call that. In some simple cases the IDE can do that. In other you need to do it manually. I want an editor extension that can help me with the boring parts of shuffling parameters around, moving them in structures etc etc all the while I'm in control of the shape of the code but I don't have to remember the advanced editor commands but instead augment my actions with some natural language comments (written or even spoken!)
- liampulles 3y agoGenerally, I agree. I have found it useful for writing SQL, mapping structs, converting from JSON to CSV, etc. i.e. repetitive stuff.
- tossandthrow 3y agoI use it as a glorified search engine and to read through bad documentation (arhm, AWS). but this only works for well documented solutions. core programming hasn't really changed over the past years with good reason: you need. to. understand what you do. this is the bottleneck. not writing it.
- adhamsalama 3y agoExactly. It's almost useless to me.
- mikrotikker 3y agoYea that's where I've landed. Telling it what to do is time consuming. Telling it what I want to do in a broader term and asking for code examples is a lot better., especially for something I don't know how to do. Otherwise the autocomplete/suggestions in the editor is great for the minutia and tedious crap and utility functions. Probably saves me about 20% typing which is great on hands that have typing for 20 odd years. It's also good for finding tools and libraries (when it doesn't hallucinate) since https://libs.garden https://libs.garden disappeared inexplicably (dunno what to do on Friday nights now that I can't browse through that wonderful site till 2am)
- swah 3y agoI feel only a bit bad when deploying a billion dollar machine model to ask "how to rename a git a branch" every other week. Its the easiest way (https://github.com/tbckr/sgpt https://github.com/tbckr/sgpt) compared to reading the manual, but reading the manual is the right way.
- nomoreipg 3y agoNot sure if you're talking about chatgpt or google
- dagw 3y agoDoes anyone has examples where promoting and double checking is faster than doing it on your own? I find it is faster in lots of cases where the solution is 'simple' but long and and a bit fiddly. As a concrete example from earlier today, I needed a function that took a polygon and returned a list of its internal angles. Can I write it myself, sure. Did copilot generate the code (and unit tests) for me in a fraction of the time it would have taken me to do it, absolutely.
- navane 3y agoSorry I'm not in your domain at all, but shouldn't that be a library function? Properties of polygons seem pretty universal to me. Will AI replace carefully curated libraries with repeated boilerplate? Thus reducing reusabilty of human efforts?
- SkyBelow 3y agoIf there is a good library for it within the domain, ideally at some point the AI will suggest it. Can't wait until the AI writes it own library it will reference in future answers.
- dagw 3y agoshouldn't that be a library function It's a balance. Sometimes it's better to just to write a 10 line function and get on with your work, rather than dragging in a huge extra dependency to your project.
- anotherpaulg 3y agoThanks for checking out aider. That demo GIF is just showing a toy example. To see what it's like to work with aider on more complex changes you can check out the examples page [0]. The demo GIF was just intended to convey the general workflow that aider provides: you ask for some changes and aider shares your existing code base with the LLM, collects back the suggested code edits, applies them to your code and git commits with a sensible commit message. This workflow is generally a big improvement over manually cutting and pasting bits of code back and forth between the ChatGPT UI and your IDE. Beyond just sending the code that needs to be edited, aider also sends GPT a "repository map" [1] that gives it the overall context of your codebase. This makes aider more effective when working in larger code bases. [0] https://aider.chat/examples/ https://aider.chat/examples/ [1] https://aider.chat/docs/repomap.html https://aider.chat/docs/repomap.html
- wongarsu 3y agoOne example where I successfully used an AI tool (plain ChatGPT) went a bit like this: Me: Can you give me code for a simple image viewer in python? It should be able to open images via a file open dialog as well as show the previous and next image in the folder GPT: [code doing that with tkinter] Me: That code has a bug because the path handling is wrong on windows GPT: [tries to convince me that the code isn't broken, fixes it regardless] Me: Can you add keyboard shortcuts for the previous and next buttons GPT: [adds keyboard shortcuts] After that I did all development the old fashioned way, but that alone saved me a good chunk of time. Since it was just internal tooling for myself code quality didn't matter, and I wasn't too upset about the questionable error handling choices
- deleted 3y ago[deleted]