←back to thread

416 points floverfelt | 1 comments | | HN request time: 0.198s | source
Show context
ares623 ◴[] No.45056350[source]
> Other forms of engineering have to take into account the variability of the world.

> Maybe LLMs mark the point where we join our engineering peers in a world on non-determinism.

Those other forms of engineering have no choice due to the nature of what they are engineering.

Software engineers already have a way to introduce determinism into the systems they build! We’re going backwards!

replies(6): >>45056412 #>>45056449 #>>45056511 #>>45056669 #>>45056797 #>>45059375 #
tptacek ◴[] No.45056669[source]
'potatolicious says we're going forwards: https://news.ycombinator.com/item?id=44978319
replies(3): >>45056747 #>>45056812 #>>45057894 #
ants_everywhere ◴[] No.45056747[source]
adding to this, software deals with non-determinism all the time.

For example, web requests are non-deterministic. They depend, among other things, on the state of the network. They also depend on the load of the machine serving the request.

One way to think about this is: how easy is it for you to produce byte-for-byte deterministic builds of the software you're working on? If it's not trivial there's more non-determinism than is obvious.

replies(2): >>45056820 #>>45057213 #
anthem2025 ◴[] No.45057213[source]
It’s not trivial largely because we didn’t bother to design deterministic builds because it didn’t seem to matter. There is not much about the actual problem that makes it difficult.
replies(1): >>45058001 #
ants_everywhere ◴[] No.45058001[source]
if you don't have deterministic builds then you can't tell whether the executable you're running comes from the source code you can see.

It is definitely non-trivial and large organizations spend money to try to make it happen.

replies(1): >>45060327 #
1. anthem2025 ◴[] No.45060327[source]
Yes, I spent years working on exactly that. I personally was working with a compiler team to validate changes to eliminate non-determinism. That’s why I felt qualified to make the statement I did.

It’s non trivial because you have to back through decades of tools and fix all of them to remove non determinism because they weren’t designed with that in mind.

The hardest part was ensuring build environment uniformity but that’s a lot easier with docker and similar tooling.