Hacker News new | ask | show | jobs
by whoisjuan 1064 days ago
Why is nobody in this space making good gains on UX?

I have tried almost every co-pilot solution, including GitHub Co-Pilot with Chat and Labs, Cody, and a few random extensions.

And for some reason, I still default to using ChatGPT, even with the massive drawback of copying and pasting.

I haven’t seen any breakthroughs with these developer experiences. Every still feels suboptimal.

4 comments

Check out the Rubberduck Extension [1] for VS Code. It's not super well publicized but I've actually found it basically hits a perfect middle ground between copilot and copy/pasting into ChatGPT. You can give it a prompt to edit code and it will stream the answer from GPT-4 into VS Code and show you a live diff with your current code. It's actually pretty well done, I use it dozens of times a day for even super minor things (I'm lazy).

Actually, it looks like this project is fairly similar in some ways. A little more full featured.

[1] https://marketplace.visualstudio.com/items?itemName=Rubberdu...

Author here - thanks for the mention! Re publicizing: I can never get any attention for my projects, no matter where I post them. Sites like this one (where I tried posting the project multiple times) feel very gamed to me at this point.
Sorry! I didn't mean to imply you had done a bad job publicizing it, I know marketing this kind of stuff is a whole separate job. I'm honestly just surprised the project hasn't gotten more attention organically since it's awesome. Your extension is at least as good as the OP here, if not better now that I've had time to try them both out. I tried probably a dozen half baked VS Code GPT integrations and yours is by far the most polished and usable. Way, way too good to only have 17k downloads on the marketplace. I've been recommending it to my coworkers and friends non-stop.

My one suggestion: I hate to say it but the name RubberDuck and the icon you've used kind of undersell the seriousness of the project. I think the whole "hacker" branding thing is kind of lame but it could be worth some tweaks to make it seem more "cool" :/. Also your website seems to be down!

Oh yeah, never thought that - was just frustrated at the lack of success in my marketing efforts.

Thanks for the feedback, good points!

I'm trying your extension. I have held the same suspicions for over a decade. Practically given up on trying to get notice for my projects, the situation feels so random and/or pay to play.
Thanks! I’ll give this a try for sure.
I'm one of the people building Cody (https://cody.dev), which you mentioned. Re: suboptimal, yeah, these are all very early and there is so much room for improvement. Do you have a sense at least of what would be less suboptimal/more optimal for you?
I think there are several problems with these co-pilot solutions, but the most obvious ones are the context switching problem and the lack of steer-ability.

Let's say I want to build a complex React component that does a lot of stuff under the hood. Perhaps it needs to handle multiple inputs, it needs to show certain children UI conditionally based on the state and it also needs to push the state to a global redux store.

Perhaps the component also depends on some utils and other root components that pass props to it.

None of these solutions seem to acknowledge that what would improve my productivity is to have a proper way to model the problem for the AI the same way I'm understanding it. Allowing me to build the blast radius of the problem, instead of expecting the AI to infer it.

In the case of the React Component what I want is:

1) bootstrap the component

2) modify it to address requirements that emerge as I explore the needs.

3) look at dependencies such as schema files or root components and suggest modifications that align with the desired functionality or allow me to point out at required changes in dependencies.

When I say that these solutions are suboptimal, what I mean is that there's no straight-forward way for me to engage in these code generation tasks in a way that doesn't feel fragmented.

What I literally want is go to a file, tell the AI to consume all the context of that file and its dependencies and then modify it to add features, fix bugs, improve code or extend functionality. I then want to have the ability to accept those changes as a reviewer or suggest changes. And I want to do without forking away from my current context.

Nobody has gotten this experience right because what most players in this space are doing is building these restrictive form factors or atomized features like text brushes, global chats or in-line prompt to code generation.

I appreciate having these, but ultimately what I want is to have an AI system that accepts a context (a file or set of files) and a prompt and then generates the requested code modifications.

None of these extension allow me to do this effectively and if they do then it seems that ability is being diminished by a poor user-facing abstraction.

In my opinion, this is a design problem.

I think CodeAssist ( https://codeassist.tech ) is a tool that would let you do that (I'm the creator). It has a chat, can execute actions (write code), puts context from other files into the prompt and has some long-term memory.

The problem is that at the moment it's slightly buggy and the UI is not so polished. I would recommend to submit your email to the newsletter on the website. Once I feel it's good enough, I'll send an email to everyone. Don't worry that I'll spam your inbox, I haven't sent any email yet to people who subscribed. I'll just send it when I feel the tool is good enough.

We very much agree, and are aiming to tackle exactly this problem with Continue. Curious to know more about what you've tried and learned. What are the limitations that cause you to return to ChatGPT?

On another note: we purposefully refer to ourselves as an "autopilot" rather than "co-pilot". While at first glance pedantic, we think there is real value behind the idea that developers should be in control. We want to get out of their way, rather than injecting AI everywhere. An autopilot should feel like less of a separate entity (a pair-programmer) and more of an extension of yourself, a part of your own brain that you can call on to more easily complete particular tasks.

> more of an extension of yourself, a part of your own brain that you can call on to more easily complete particular tasks.

I like this idea but I gotta say when I think "autopilot" I think "does it for you" and imagine ceding control rather than retaining it. I definitely assumed after reading the name that it was going to be a tool to minimize developer involvement as much as possible, similar to how AutoGPT is supposed to require less supervision.

I agree with this; a copilot steps in to assist you, while an autopilot assumes your duties entirely.
I'm very interested to hear this. We are definitely looking to evoke the former.
Hey. I gave it a try to Continue and I think this is going in the right direction at least for me. I guess opinions on how this should work are subjective.

But I do really like that functionality of attaching context to the query! Love that. I replied to the founder of Sourcegraph in this thread and I think that should answer your question as well.

I'm excited about your approach and even more about the fact that you made it open source! Thanks for that. If this sticks for me I can see myself contributing to it.

Excited to hear all of this! (and appreciate the extensive thinking) Please don't be shy about asking questions in our Discord if you end up wanting to contribute or have more feedback :)
You have tried Control+I (Cmd+I in Mac) with Visual Studio Code + GitHub Copilot? I didn't knew of it until yesterday and it is much better than the chat or wait for autocomplete approach.
Nice! I didn't know about this! Thanks.