Hacker News new | ask | show | jobs
by _zoltan_ 4 days ago
The code is not meant to be read anymore. That's the mistake.

Do you look at generated assembly that comes out of your compiler? You don't. So why are you looking at this code?

We have pushed up the abstraction layer.

4 comments

> So why are you looking at this code?

Because I am getting the call to fix it when it breaks. I don't have to fix assembly by hand because compilers are deterministic and I have maybe encountered a single real compiler bug in my whole career. Compilers have earned my trust. LLMs are eroding that trust more and more every day I work with them. I encounter LLM-created problems in basically every single diff they surface for me, just over the months the diffs are getting bigger and harder to review and uncover the problems.

LLMs are not an abstraction(not even a bad one) because by design what they are doing is disambiguation. Compilers are not doing that, what you put IN the compiler has to be unambiguous in the first place.

Disambiguation is not a functionality of an abstraction layer. A good abstraction layer is the one I don't have to understand and can trust, if I have to understand its inner workings to use it it ceases to be an abstraction. Except with LLMs you can't even do that, they are a black box you can have no hope of understanding.

And it is not to say LLMs and agentic coding tools are not useful, they are absolutely very useful. They are just not an abstraction layer.

> We have pushed up the abstraction layer.

That's not what "abstraction" means. You wouldn't hire a designer and then call their work an "abstraction", would you?

It's something, but "abstraction" it aint.

Good engineers should understand what goes on underneath them in the stack (at decreasing accuracy probably the more layers away it is) if they care about their craft and the quality of it, even if not in perfect detail, if you're just acknowledging that you've never even tried, then perfect! The AI "revolution" is just right for you.
your two statements can be true at the same time: I do not need to look at the code because I know exactly what it does.

do I care for every snippet? every call's signature? no I do not.

do I understand what it does 100%? yes, because I directed it to be built like that.

I don't get people like you. "care about their craft" - what craft? my job is to make ideas into reality, how I get there is irrelevant. this is what I get paid for and this is what gets me satisfaction.

I've always disliked spending weeks arguing with people about every little detail and having an ideaological war. From the end output most of the decisions that people who "care about their craft" care about are utterly irrelevant.

I catch so much shit when I read the code. I’ll take this into consideration when I’m no longer catching poorly made slop all the time.
that's not the LLM's fault. I iterate and give very specific instructions and my code is really good.