Remix.run Logo
stavros 19 hours ago

> Programs can be very close to 100% reliable when made well.

This is a tautology.

> I've never seen a calculator come up with the wrong answer when adding two numbers.

https://imgz.org/i6XLg7Fz.png

> And technically, most bugs are predictable in theory, they just aren't known ahead of time.

When we're talking about reliability, it doesn't matter whether a thing can be reliable in theory, it matters whether it's reliable in practice. Software is unreliable, humans are unreliable, LLMs are unreliable. To claim otherwise is just wishful thinking.

jakelazaroff 18 hours ago | parent | next [-]

That's not a tautology. You said "programs are the most reliable, though far from 100%"; they're just telling you that your upper bound for well-made programs is too low.

faeyanpiraat 18 hours ago | parent | prev | next [-]

You mixed up correctness and reliability.

The ios calculator will make the same incorrect calculation, but reliably, every time.

stavros 18 hours ago | parent [-]

Don't move the goalposts. The claim was:

> I've never seen a calculator come up with the wrong answer when adding two numbers.

1.00000001 + 1 doesn't equal 2, therefore the claim is false.

17 hours ago | parent | next [-]
[deleted]
samus 17 hours ago | parent | prev | next [-]

That's a known limitation of floating point numbers. Nothing buggy about that.

Muskwalker 14 hours ago | parent [-]

In fact in this case, it's not the known limitation of floating point numbers to blame: this Calculator application gives you the ability (submenu under View > Decimal Places) to choose a precision between 0 to 15 decimal places, and it will do rounding beyond that point. I think the default is 8.

The original screenshot shows a number with 13 decimal places, and if you set it at or above 13, then the calculation will come out correct.

The application doesn't really go out of its way to communicate this to the user. For the most part maybe it doesn't matter, but "user entering more decimal places than they'll get back" might be one thing an application might usefully highlight.

1718627440 15 hours ago | parent | prev | next [-]

1.00000001f + 1u does equal 2f.

wat10000 17 hours ago | parent | prev [-]

Sorry, but this annoys me. The claim might be false if I had made it after seeing your screenshot. But you don't know what I've seen in my life up to that point. The claim that all calculators are infallible would be false, but that's not the claim I made.

When a personal experience is cited, a valid counterargument would be "your experience is not representative," not "you are incorrect about your own experience."

stavros 14 hours ago | parent [-]

Well if you haven't seen enough calculators to see one that can't add, a very common issue with floating point arithmetic on computers, you shouldn't offer your experience as an argument for anything other than that you haven't seen enough calculators.

wat10000 12 hours ago | parent [-]

How many calculators do I need to have seen in order to make the claim that there are many calculators which are essentially 100% reliable?

Note that I am referring to actual physical calculators, not calculator apps on computers.

stavros 11 hours ago | parent [-]

Well, to make the claim you actually made, which is that you haven't seen a single calculator that was wrong, anywhere from zero to all of them. It's just that the "zero" end of that spectrum doesn't really tell us anything about calculators.

sjsdaiuasgdia 18 hours ago | parent | prev | next [-]

RE: the calculator screenshot - it's still reliable because the same answer will be produced for the same inputs every time. And the behavior, though possibly confusing to the end user at times, is based on choices made in the design of the system (floating point vs integer representations, rounding/truncating behavior, etc). It's reliable deterministic logic all the way down.

stavros 18 hours ago | parent [-]

> I've never seen a calculator come up with the wrong answer when adding two numbers.

1.00000001 + 1 doesn't equal 2, therefore the claim is false.

sjsdaiuasgdia 17 hours ago | parent [-]

Sure it does, if you have made a system design decision about the precision of the outputs.

At the precision the system is designed to operate at, the answer is 2.

wat10000 17 hours ago | parent | prev [-]

> > Programs can be very close to 100% reliable when made well. > This is a tautology.

No it's not. There are plenty of things that can't be 100% reliable no matter how well they're made. A perfect bridge is still going to break down and eventually fall apart. The best possible motion-activated light is going to have false positives and false negatives because the real world is messy. Light bulbs will burn out no matter how much care and effort goes into them.

In any case, unless you assert that programs are never made well, then your own statement disproves your previous statement that the reliability of programs is "far from 100%."

Plenty of software is extremely reliable in practice. It's just easy to forget about it because good, reliable software tends to be invisible.

samus 16 hours ago | parent [-]

> No it's not. There are plenty of things that can't be 100% reliable no matter how well they're made. A perfect bridge is still going to break down and eventually fall apart. The best possible motion-activated light is going to have false positives and false negatives because the real world is messy. Light bulbs will burn out no matter how much care and effort goes into them.

All these failure modes are known and predicable, at least statistically

wat10000 12 hours ago | parent [-]

If you're willing to consider things in aggregate then software is perfectly predictable too.