Live data from Hacker News

C –> Java != Java –> LLM

observationalhazard.com

41–50 of 50 posts

Re: C –> Java != Java –> LLM

#41
Any time someone posts that LLMs are just the next abstraction level to get used to, they instantly reveal themselves to be an impostor.

All abstraction layers are predictable and repeatable when used correctly.

You specify something in the language of the abstraction, and get a result that is precisely understood by the rules and requirements of the abstraction.

Only those who programmed by trial and error before AI do not see a difference. That's because they treated their compilers as mysterious AI, and must massaged their programs into working. In other words, they were already accustomed to a kind of prompt engineering.

Re: C –> Java != Java –> LLM

#42

Any time someone posts that LLMs are just the next abstraction level to get used to, they instantly reveal themselves to be an impostor. All abstraction layers are predictable and repeatable when used correctly. You specify something in the language of the abstraction, and get a result that is precisely understood by the rules and requirements of the abstraction. Only those who programmed by trial and error before AI…

Thank you. I think that's a good explanation for much of the phenomena and your insight would have strengthened my post. I think you're probably right about where many of the people who see it that way are coming from. But not all of them...

Re: C –> Java != Java –> LLM

#43
post #13

Earlier quoted context omitted.

Laws being unreadable is largely an Enlish-language problem zo. I have no problem reading them in my native language. Not requiring massive context size of case law makes things easier still. Big part of being a lawyer is having the same context with all the other lawyers and knowing what was already decided and what possible new interpretation is likely to be accepted by everyone else.

> Big part of being a lawyer is having the same context with all the other lawyers and knowing what was already decided and what possible new interpretation is likely to be accepted by everyone else. And to create software specifications with language, the same thing will need to happen. You’ll need shared terminology and context that the LLM will correctly and consistently interpret, and that other engineers will un…

[deleted]

Re: C –> Java != Java –> LLM

#44
post #32

Earlier quoted context omitted.

>How is that different from how it worked without LLMs? The only difference is that we can now get a failing product faster and iterate. The difference is that there is an engineer in the middle who can judge if the important information is provided or not as input. 1. for a LLM "the button must be blue" has the same level of importance as "the formula to calculate X is..." 2. failing faster and iterating is good thi…

> 1. for a LLM "the button must be blue" has the same level of importance as "the formula to calculate X is..." You can divide those into two prompts though, there is no point for the LLM to work on both features at the same time. This is why iterative is so useful (oh, the button should be blue, ... and later, the formula should be X). > 2. failing faster and iterating is good thing if the parameters of failing are…

> LLMs can read and write change logs just as well as humans can (LLMs need change logs to do updates, you can't just give it a changed dependency and expect the LLM to pick up on the change, it isn't a code generator). Actually, this is my current project, since a Dev AI pipeline needs to read and write change logs to be effective (when something changes, you can't just transmit the changed artifact, you need to transmit a summary of the change as well). And again, this is serious software engineering, not vibecoding.

This is the important part of the post to which you replied and remains unaddressed:

  The difference is that there is an engineer in the middle 
  who can judge if the important information is provided or 
  not as input.

Re: C –> Java != Java –> LLM

#45

Earlier quoted context omitted.

> 1. for a LLM "the button must be blue" has the same level of importance as "the formula to calculate X is..." You can divide those into two prompts though, there is no point for the LLM to work on both features at the same time. This is why iterative is so useful (oh, the button should be blue, ... and later, the formula should be X). > 2. failing faster and iterating is good thing if the parameters of failing are…

> LLMs can read and write change logs just as well as humans can (LLMs need change logs to do updates, you can't just give it a changed dependency and expect the LLM to pick up on the change, it isn't a code generator). Actually, this is my current project, since a Dev AI pipeline needs to read and write change logs to be effective (when something changes, you can't just transmit the changed artifact, you need to tra…

The engineer decide what information to use as input to the update prompt. They don’t need to be in the middle of anything, it’s basically the level they are coding at.

Re: C –> Java != Java –> LLM

#46

Earlier quoted context omitted.

> LLMs can read and write change logs just as well as humans can (LLMs need change logs to do updates, you can't just give it a changed dependency and expect the LLM to pick up on the change, it isn't a code generator). Actually, this is my current project, since a Dev AI pipeline needs to read and write change logs to be effective (when something changes, you can't just transmit the changed artifact, you need to tra…

The engineer decide what information to use as input to the update prompt. They don’t need to be in the middle of anything, it’s basically the level they are coding at.

> The engineer decide what information to use as input to the update prompt. They don’t need to be in the middle of anything, it’s basically the level they are coding at.

LLMs do not possess the ability to "judge if the important information is provided or not as input" as it pertains to the question originally posed:

  How is that different from how it worked without LLMs?
Working without LLMs involves people communicating, hence the existence of "an engineer in the middle", where middle is defined as between stakeholder requirement definition and asset creation.

Re: C –> Java != Java –> LLM

#47
post #37

>The intermediate product of LLMs is still the Java or C or Rust or Python that came before them. English is not the intermediate product, as much as some may say it is. You don’t go prompt->binary. You still go prompt->source code->changes to source code from hand editing or further prompts->binary. It’s a distinction that matters. Funny enough, that wasn't the case for me recently. I was working with an old databas…

> After about 30 minutes of futzing with prompts, it was clearly stuck trying to create the proper regex and I just went back to pasting alter tables and getting deletes back until the job was done. If you're copying and pasting SQL statements, then SQL statements are the intermediate product. The fact that you didn't carefully review them and just ran them immediately is no different than an LLM producing Java sourc…

There's no reason to be assmad. I know how to produce the sql statements in question. Being able to give the AI an example of what I wanted was part of the process. But doing hundreds of them is prone to typos. And cranking them out by hand is just slower. Especially when there are compound keys. Giving it to the AI just made the process faster.

But the AI could not, absolutely not, generate a program that could do what the AI was doing. Which would be really nice, because I'm probably going to go back through those hundreds of statements again in the future. The database is evolving, and my task is to migrate it to a whole new one. I would really rather have it give me a program. But it could NOT do that.

Re: C –> Java != Java –> LLM

#48

Earlier quoted context omitted.

The engineer decide what information to use as input to the update prompt. They don’t need to be in the middle of anything, it’s basically the level they are coding at.

> The engineer decide what information to use as input to the update prompt. They don’t need to be in the middle of anything, it’s basically the level they are coding at. LLMs do not possess the ability to "judge if the important information is provided or not as input" as it pertains to the question originally posed: How is that different from how it worked without LLMs? Working without LLMs involves people communic…

So you engineer the prompt. I’m still confused what the problem is, I’ve already stated that I’m not talking about vibe coding where the LLM somehow magically figures out relevant information on their own.

Re: C –> Java != Java –> LLM

#49
post #40
post #31

Earlier quoted context omitted.

>And to create software specifications with language, the same thing will need to happen. You’ll need shared terminology and context that the LLM will correctly and consistently interpret, and that other engineers will understand. That sounds awfully similar to... software development.

Yeah many programming languages have been advertised to fulfil precisely this goal, that people can program computers via natural language instead of having to think hard and too much about details. Usually programming languages intend to make editing as easy as possible, but also understanding what the program does, as well as reasoning about performance, with different languages putting different emphasis on the va…

It's the induced demand or river length/flow/sediment kind of situation. Doesn't matter what level of abstraction the language provides, we always write the code that reaches the threshold of our own mental capacity to reason about it.

Smart people know how to cap this metric in a sweet spot somewhere below the threshold.

Re: C –> Java != Java –> LLM

#50

Earlier quoted context omitted.

> The engineer decide what information to use as input to the update prompt. They don’t need to be in the middle of anything, it’s basically the level they are coding at. LLMs do not possess the ability to "judge if the important information is provided or not as input" as it pertains to the question originally posed: How is that different from how it worked without LLMs? Working without LLMs involves people communic…

So you engineer the prompt. I’m still confused what the problem is, I’ve already stated that I’m not talking about vibe coding where the LLM somehow magically figures out relevant information on their own.

> So you engineer the prompt. I’m still confused what the problem is ...

The problem is stakeholders are people and they define what problems are needed to be solved. For those tasked to do so requires understanding of the given problems. Tooling (such as LLMs) does not possess this type of understanding as it is intrinsic to the stakeholders (people) whom have defined it. Tools can contribute to delivering a solution, sure, but have no capability to autonomously do so.

For example, consider commercial dish washing machines many restaurants use.

They sanitize faster and with greater cleanliness than manual dish washing once did. Still, there is no dish washing machine which understands why it must be used instead of not. Of course, restaurant stakeholders such as health inspectors and proprietors understand why they must be used.

As far as the commercial dish washer is concerned, it could just as easily be tasked with cleaning dining utensils as it could recycled car parts.

Post reply on HN