Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • This isn't entirely new. I can't be the only one who has built throwaway UIs to test backend APIs instead of writing proper tests...
  • I just reduced our AI-in-CI bill this month (while keeping or improving our KPIs), but now we have new and exciting ways to spend tokens right around the corner!
    by CBLT
  • I had good results with a similar technique this summer.

    I was designing a DSL to help make a colleague’s work easier, and I tested it by having a coding agent re-implement some of their notebooks using a draft of the DSL. The LLM output was a decent enough approximation of “typical” use, and it uncovered some warts I didn’t catch by testing it myself. As its designer, I simply wouldn’t have thought to try using it in some of the ways the LLM-generated code did.

  • This is an application of the rule of three: you need at least three clients to write a good library, protocol, or other underlying abstraction. Except it proposes using a large language model to write the three clients and then throwing them away.
  • One idea I've had for a while which feels similar:

    - We haven't really solved software engineering yet, it's hard to tell upfront whether a design adapts well to future needs. The community has a collection of heuristics which are sometimes at odds with each other.

    - Therefore: write all designs, each simulated against a random tree of future needs.

    - Pick whichever minimises the average future diff.

    In other words, monte carlo simulation for software design. This scheme obviously assumes the price of code production goes even closer to zero.

  • Unless I'm missing something, this doesn't help with preventing regressions. In the end, as the author already puts it, it's an integration test in the end, why not just write the integration tests directly?
  • I've been using this pattern quite a bit recently for API design, and I really like it.

    The big challenge with designing an API is that the only way to be confident in the design is to build a bunch of different things on top of it. But why invest all that effort in an API that you don't think is ready yet?

    With coding agents the cost of building those prototypes drops to almost nothing. I can exercise a proposed API design five different ways before I commit to the shape.

  • This is an interesting idea. It's effectively what a good software engineer already does in their head, except it's doing it with a real compiler.

    Richard Gabriel wrote something that has really stuck with me:

    > Abstractions must be carefully and expertly designed, especially when reuse or compression is intended. However, because abstractions are designed in a particular context and for a particular purpose, it is hard to design them while anticipating all purposes and forgetting all purposes, which is the hallmark of the well-designed abstractions.

    This is one of my favourite quotes on abstraction, because “anticipating all purposes and forgetting all purposes” is such a good summary of what goes into abstraction design.

    A language model in an agentic harness cannot (yet) do this at the same level as a good software engineer, but the advantage they have is speed of token generation, so they can actually build the things the engineer tries to imagine, and verifying those is easier. Very cool!

    by kqr

Explore Birbla archives