plcholder

plcholder

I think alot of people just use it to get boiler plates off, as of right now tokens aren’t cheap enough to iterate over and over again. I cannot recall where i read this from about how some programmers are like sculptures chiselling down imperfection with pretty much unlimited granite that you can rollback if you dont like the result

for me rn, I only use it to do frontend stuff I dont think you can go wrong with it for generating css & html, things i found really tideous to write, but i can easily read and make changes if need be

1
Post #11
sodapopcan

sodapopcan

I mostly wish that that the term “vibe coding” would die—in my ~35 years of using a computer it’s the cringiest term I’ve ever heard. I’m probably just old, though. But like, I can’t be that old because I used “cringiest”… right? :upside_down_face: But it really gives me a visceral reaction every time I hear it and it doesn’t seem to be getting any better.

To add to what’s been said, I’m honestly not sure that inheriting a “vibe coded” codebase is going to be any worse than inheriting a prototype-turned-production application from a tech savvy entrepreneur whose sole focus was to ship Ship SHIP. So I’m not too worried about this.

I still haven’t used an agent and only just started using Copilot a few weeks ago (lol?) It’s been very good and sometimes a little bad. A lot of what @egze says resonates which are the times it’s good: it’s written 20-line handle_events with just a few chars input and just 10 mins ago it inferred a Calendar date format for me which was just the bees knees. The times it’s bad have been what @D4no0 touched on… in just a couple of weeks I’ve gotten lazy and just hit “accept” for a problem I didn’t quite understand (because it was there) only to later realize it wrote a 15 line function that could have been 3. I’m already working on training myself out of that. I’ve gone back and forth between auto-suggest v needing to manually request suggestions.

I’ve also had the experience of writing a simple algorithm-y function and asked if it could improve it and it couldn’t so I felt good, lol. I then asked it to improve a slightly more complex one and it choked. Among other similar things it said: “I removed the Enum.reverses because it doesn’t seem like they are needed, but if they are just put them back” which is pretty funny (they were most certainly needed).

EDIT: It also often writes tests pretty much exactly as I would have written them (which is just great).

8
Post #12
dimitarvp

dimitarvp

Same, by the way! To the point that I have lately – rather shamefully – almost completely gave control to the LLM to write me the tests. Mind you I am still inspecting them closely but I find myself surprised that there are very few critical remarks I can give it. One example: needlessly using _error_code_ignored_here in an error tuple. I told it “Nope, the underlying API we use is quite stable and makes it a point to never break backwards compatibility, please pattern-match directly on the raw value, it is safe for us, the test will not become brittle and we’ll be stricter” which it happily obliged. But not many such occurrences. Just 2-3 for several days of work.

1
Post #13
sodapopcan

sodapopcan

Ya same. I really do mean exactly what I was planning on typing out (with a typo or two but I was bound to make those myself).

1
Post #14
TimButterfield

TimButterfield

They can save a great deal of time, but only if used with a tight leash. You have to know what you are doing in order to give it the instructions and not let it either make guesses or get out of control. For the first part of that, I wrote about it here. In short, flip the script and have it let you know about any ambiguities. As for the control aspect, it can easily lose track of context and revert to default behavior, which is often not what you want. So, you have to constrain it. For example, you may want to add this to a prompt: “Perform analysis only. Do not make any changes yet.” Hopefully, this can let you review and correct what it may be planning to do before it does it. Once you’re ready, add a bit more to the prompt: “Proceed with just this set of changes. Do not add, change, or delete any other code.” Further, as the set of changes grows in complexity, break it down and have it work on and track each set of changes as it goes.

Another critical aspect, keep your repo commits up to date. Update the repo at each small point of stability. Then, when the agent does lose control, it is easier to revert and start that set of changes over again. Some may recall the Dilbert cartoon about ‘Write a minivan’. Sometimes, the agent may want to do this also. You may pay it to write something and, after ignoring it for a while, pay it again to fix what it just did. So, when you run agent prompt instructions, keep and eye on it and abort it if it gets off track.

I wrote about using AI/agents for greenfield work here. In this initial Elixir/Phoenix/LiveView project, more than 90% of the codebase was generated. It has since been through two AI/agent assisted refactors, one for adding full Stripe product catalog synch and another for adding user usage metrics and cost tracking. The current state of the project is a mostly working app. But, as a solo-preneur, generating code is the easy part. Not all tests can be automated. You still have have to manually test functionality to ensure it is working correctly and not just passing tests, which may or may not be correct. That human time is still one of the slow parts of any sufficiently complex project.

To the flow in the post, I have since added use of Cursor for smaller sets of refinements. Those 500 premium requests per month helps to reduce the Claude Code costs.

1
Post #15
FlyingNoodle

FlyingNoodle OP

But the thing is, in the time it would take me to engineer the perfect prompt to hopefully get it to do what I want I would probably have already written it myself already I think

1
Post #16
D4no0

D4no0

The big question is: is it cheaper and more reliable than hiring a professional (or more) to develop the product? Because at the end of the day, cutting the cost and time is just one part of the equation and not always the solution to successful products.

In the case you are describing your time and focus is tied to the development process (and subsequently the money, as you are paying for the service), it might be the case that your time is better spent on solving other problems.

0
Post #17
TimButterfield

TimButterfield

That could be true. There is another benefit, though. Here is a different scenario to illustrate: When we have an issue, we may tell it to a friend and, before the friend can even reply, our act of telling it helped us figured it out. My working with ChatGPT was similar. Working through the process helped me to figure out what I wanted it to do, which was not fully fleshed out at the start. Of course, anything will take time, whether you figure lots of it out up front or as you implement. In my example, I had two refactors for things I had not yet considered until after the initial implementation.

0
Post #18
TimButterfield

TimButterfield

The answer to your big question is: It depends.

As an example, it may cost the same to hire either of two consultants, but equal cost does not guarantee equal results.

Whoever is using the agent needs the ability to interact with it in a way to get the most out of it. Professional ability differs whether using an agent or not. This is one of the reasons I suggest the agent be used as the pair partner to the professional. Even if I’m the one making all of the changes, it can often be faster to ask the agent, “Where do I find the code that does X?” than me doing that research myself. This can be especially true if you are not yet familiar with the codebase. I appreciate that time savings. As a further example of that, take a look at deepwiki.com and what it has done documenting some public repos.

How time and/or money are spent is, of course, a personal choice whether for an individual or a business. My usage was two-fold. I wanted to learn more about AI, agents, and the use of them. So far, I’ve gotten a good start on that. The output of that learning was also the time savings of starting my side project. This was not something I would hire a team to create. Perhaps a startup might. But, it did help me learn how to use both AI and agents more effectively. Whether that potential improved efficiency matters is up to the person or company paying for it. My only regret so far is not making that one extra commit before an agent went off the rails. (See the ‘write a minivan’ comment from before.). Overall, I like the results I have achieved so far and will continue to use it.

2
Post #19
FlyingNoodle

FlyingNoodle OP

This is called “rubber ducking” and you are right, I have used AI for this and it’s useful.

0
Post #20