Live data from Hacker News

How I program with agents

crawshaw.io

211–220 of 308 posts

Re: How I program with agents

#211
post #13

Maybe it's because I only code for my own tools, but I still don't understand the benefit of relying on someone/something else to write your code and then reading it, understand it, fixing it, etc. Although asking an LLM to extract and find the thing I'm looking for in an API Doc is super useful and time saving. To me, it's not even about how good these LLMs get in the future. I just don't like reading other people's…

Here are the cases where it helps me (I promise this isn't ai generated even though im using a list...) - Formulaic code. It basically obviates the need for macros / code gen. The downside is that they are slower and you can't just update the macro and re-generate. The upside is it works for code that is slightly formulaic but has some slight differences across implementations that make macros impossible to use. - Us…

Planning is indeed a very underrated use case.

One of my most productive uses of LLMs was when designing a pipeline from server-side data to the user-facing UI that displays it.

I was able to define the JSON structure and content, the parsing, the internal representation, and the UI that the user sees, simultaneously. It was very powerful to tweak something at either end and see that change propagate forwards and backwards. I was able to hone in on a good solution much faster that it would have been the case otherwise.

Re: How I program with agents

#212

Earlier quoted context omitted.

If you keep asking an LLM to generate the same repetitive implementations, why not just have a basic project already set up that you can modify as needed?

Yeah, I don't really get this Most boilerplate I write has a template that I can copy and paste then run a couple of "find and replace" on and get going right away This is not a substantial blocker or time investment that an AI can save me imo

It is though, because it can do a pretty good job of every template.

I remember what I revelation it was a million years ago or so when rails came along with its "scaffold". That was a huge productivity boost. But it just did one specific thing, crud MVC.

Now we have a pretty decent "scaffold" capability, but not just for crud MVC, but for anything you can describe or point to examples of.

Re: How I program with agents

#213

Earlier quoted context omitted.

As a senior developer you already spend a significant amount of time planning new feature implementations and reviewing other people's code (PRs). I find that this skill transitions quite nicely to working with coding agents.

I don't disagree but... wouldn't you rather be working with actual people? Spending the whole day chatting with AI agents sounds like a worst-of-both-worlds scenarios. I have to bring all of my complex, subtle soft skills into play which are difficult and tiring to use, and in the end none of that went towards actually fostering real relationships with real people. At the end of the day, are you gonna have a beer wit…

My employer can't go out and get me three actual people to work under me for $30 a month.

EDIT: You can quibble on the exact rate of people's worth of work versus the cost of these tools, but look at what a single seat on Copilot or Cursor or Windsurf gets you, and you can see that if they are only barely more productive than you working without them, the economics are it's cheaper to "hire" virtual juniors than real juniors. And the virtual juniors are getting better by the month, go look at the Aider leaderboards and compare recent models to older ones.

Re: How I program with agents

#214
post #28

Earlier quoted context omitted.

The downside for formulaic code kinda makes the whole thing useless from my perspective, I can't imagining a case where that works. Maybe a good case, that i've used a lot, is using "spreadsheet inputs" and teaching the LLM to produce test cases/code based on the spreadsheet data (that I received from elsewhere). The data doesn't change and the tests won't change either so the LLM definitely helps, but this isn't cod…

There is a lot of formulaic code that llms get right 90% of the time that are impossible to build macros for. One example that I've had to deal with is language bridge code for an embedded scripting language. Every function I want available in the scripting environment requires what is essentially a boiler plate function to be written and I had to write a lot of them.

I get that reference! Having done this with Lua and C++, it’s easy to do, but just tedious repetition. Something that Swig could handle, but it adds so much extra code, plumbing and overall surface area for what amounts to just a few lines of glue code per function that it feels like overkill. I can definitely see the use for a bespoke code generator for something like that.

Re: How I program with agents

#215
post #88

Earlier quoted context omitted.

These are the kinds of things I tend to write a library for over time, that takes care of the details that remain the same between use cases. Designing those is one interesting and fulfilling part of the work.

That's all fine and good, but there is always boilerplate that you can't design away. Even the most succinct cli command definition and argument parsing library you could devise is going to require a bunch of option name definition. It's just a fool's errand to think you can stamp out everything that is tedious. It's great that we now have tools that can generate arbitrary code to bridge that gap.

There are diminishing returns for sure, and this wasn't an argument against using LLMs for the tedious parts. It was an argument that most of the existing work isn't necessarily tedious to start with.

Re: How I program with agents

#216
post #83

Earlier quoted context omitted.

> Solving a problem you already know exactly how to solve isn't interesting and isn't even intellectual exercise. That isn't typically what my programming tasks at work consist of. A large part of the work is coming up with what exactly needs to be done, given the existing code and constraints imposed by technical and domain circumstances , and iterating over that. Meaning, this intellectual work isn't detached from…

Yeah but this is exactly why using LLMs doesn't actually preclude problem solving. You still have to do all these things. You just don't have to physically type out as much code.

To make a limping analogy, writing a novel actually requires the writing process. You can instruct an LLM to write prose, but the result won't be the same. I do a lot of thinking by coding, by looking up existing parts of the code base, library documentation and such, to decide how to best combine things, to determine what edge cases have to be solved and implementation decisions to be made. Once I know how things fit, I'm already halfway done. And it's usually more fun to do the rest myself than to instruct the LLM about all the details of the solution I have in mind. There are cases where using the LLM makes sense for truly tedious parts, of course, but it's not the majority of the work.

Re: How I program with agents

#217

Finally some serious writing about LLMs that doesn’t follow the hype and it faces reality of what can and can’t be useful with these tools. Really interesting read, although I can’t stand the word “agent” for a for-loop that call recursively an LLM, but this industry is not famous for being sharp with naming things, so here we are. edit: grammar

I actually take some minor issue with OP's definition of an agent. IMO an agent isn't just a LLM on a loop. IMO the defining feature of an agent is that the LLM's behavior is being constrained or steered by some other logical component. Some of these things are deterministic while others are also ML-powered (including LLMs). Which is to say, the LLM is being programmed in some way. For example, prompting the LLM to b…

> prompting the LLM to build and run tests after code edits

Isn't that done by passing function definitions or "tools" to the llm?

Re: How I program with agents

#218
Reading code has always been as important as writing it. Now it's becoming more important. This is my nightmare. Writing code can be joy at times; reading it is always work.

Re: How I program with agents

#219

Earlier quoted context omitted.

Retina Display means nothing. Just because Apple pushed hard to make it common to everyone it doesn’t mean it’s a good technical name.

You can argue that Apple haven't achieved it, but it has a very clear technical meaning - a sufficiently high dpi such that pixels become imperceptible to the average healthy human eye from a typical viewing distance.

> [retina] it has a very clear technical meaning

Retina does not mean that, not even slightly or in connotation

Even today, no other meanings are listed: https://www.merriam-webster.com/dictionary/retina

It comes from something that means "net-like tunic" (if you want to stretch possible things someone might understand from it): https://en.m.wiktionary.org/wiki/retina

They could have named it rods and cones, cells, eye, eyecandy, iris, ultra max, infinite, or just about anything else that isn't negative and you can still make this comment of "clearly this adjective before »screen« means it's high definition". Anything else is believing Apple marketing "on their blue eyes" as we say in Dutch

> imperceptible to the average healthy human eye from a typical viewing distance

That's most non-CRT (aquarium) displays. What's different about high DPI (why we need display scaling now) is that they're imperceptible even if you put your nose onto them: there's so many pixels that you can't see any of them at any distance, at least not with >100% vision or a water droplet or other magnifier on the screen

Re: How I program with agents

#220
post #214
post #28

Earlier quoted context omitted.

There is a lot of formulaic code that llms get right 90% of the time that are impossible to build macros for. One example that I've had to deal with is language bridge code for an embedded scripting language. Every function I want available in the scripting environment requires what is essentially a boiler plate function to be written and I had to write a lot of them.

I get that reference! Having done this with Lua and C++, it’s easy to do, but just tedious repetition. Something that Swig could handle, but it adds so much extra code, plumbing and overall surface area for what amounts to just a few lines of glue code per function that it feels like overkill. I can definitely see the use for a bespoke code generator for something like that.

To be pedantic, OP wasn't referencing anything in the usual sense that we use it in (movie, comic, games references). They were more speaking from personal experience. In that sense, there's nothing to "reference" as such.
Post reply on HN