← Back to context

Comment by imiric

11 hours ago

[flagged]

I have never read a snide comment on this site that i've been more repulsed by.

I think because it's so specifically sharpened to stab at the software developer, my compatriot, one of the foremost primary populations here, rather than just an overall shitty human insult -- and timed to do so when the person opens up in an honest dialogue about what they're doing.

But good news: every large software house i've talked to in the past two years is touching AI. As tragic as that is for a multitude of good reasons surrounding the workforce/copyright/ip/human-laziness/loss-of-skill/etc, that means imric is going to be outside of software , by their own rules, in totality in just a few short years!

Happy days!

We have the quietest on-call rotation of any company I've ever worked at.

We have a high standard for code review, static verification, and tests.

The fact that the code isn't hand-rolled artisanal code, and is generated by AI now, has so far turned out to have no impact on product quality or bugs reported.

Tbf, as long as you really know what you're doing and have the sense to avoid falling into a spaghetti code trap, generating bigger chunks of code absolutely works and should be done. The pitfall happens when

(a) the dev has no idea what the agent is doing (b) the dev gives overtly-broad instructions.

If you give it specific enough tasks (not to the point where it's writing singular functions) but a general class description, you're on a good track.

Why? Because writing code is the only measure of quality when producing tools? What about Unit and Integration Tests, UX research, and Performance tests.

  • I agree that for many applications the code written by an LLM can be good enough, as proven by the many commercial applications that contain even worse code.

    However, anyone who uses an LLM must remain aware of the limitations of this method.

    There are many features of a program that cannot be tested exhaustively and which must be guaranteed by its design. When you do not understand very well the structure of a program it may be difficult to decide what must be tested.

    With performance, the confidence in what an LLM produces is even lower, because it is unlikely to know if you have really reached a performance limited by hardware. Obtaining a performance better than a previously existing program does not prove anything, because most existing programs are likely to have a performance much lower than possible.

    In many cases you just want a performance good enough, not the best attainable, so you can be content with your LLM-generated program. But you must not fool yourself by believing that this is really the best that can be done.