Live data from Hacker News

Programmers should never trust anyone, not even themselves

carbon-steel.github.io

21–30 of 163 posts

Re: Programmers should never trust anyone, not even themselves

#21
post #13
post #8

Earlier quoted context omitted.

To me, it's rather a postcondition instead of precondition. Trust that a person will do the right thing, but verify that the right thing has actually been done.

Which is a contradiction, because trusting someone means not needing to verify what they say or do.

To the contrary, trust arises from being able to verify. Otherwise, you never know whether a failure is because of ill intentions or errors. That's why I very much dislike “trust, but verify”. I prefer “trust, and verify”.

Re: Programmers should never trust anyone, not even themselves

#22

> In reality, the bank does not just store the money we deposit. It loans away/invests most of the money that people deposit. Our money does not sit idle in a large pile in a vault. Nope. In reality the money doesn't exist. Amazing how many people think that somewhere a cartload of money is physically moving every month when they get paid. When was the last time you deposited anything in a bank? The abstraction is ev…

This is going to sound weird but even if it was actual coins (say) would that make the whole thing any more "real"?

Either way it's a symbolic system and it doesn't really matter if you execute it on an abacus, or in a digital computer, or by writing in a book and carting bags of coins around.

I think the parts that are missing from most people's mental model are things like the role of the central bank, and the fact that lending limits are influenced but not determined by deposits.

Re: Programmers should never trust anyone, not even themselves

#24
post #13

Earlier quoted context omitted.

Which is a contradiction, because trusting someone means not needing to verify what they say or do.

To the contrary, trust arises from being able to verify. Otherwise, you never know whether a failure is because of ill intentions or errors. That's why I very much dislike “trust, but verify”. I prefer “trust, and verify”.

What's the meaning of "I trust you that the amount of cash you've given me is correct" when you then proceed to count it? If you're verifying, why do you need to say "I trust you"? A trustworthy and an untrustworthy person will get equally verified.

Re: Programmers should never trust anyone, not even themselves

#26

> In reality, the bank does not just store the money we deposit. It loans away/invests most of the money that people deposit. Our money does not sit idle in a large pile in a vault. Nope. In reality the money doesn't exist. Amazing how many people think that somewhere a cartload of money is physically moving every month when they get paid. When was the last time you deposited anything in a bank? The abstraction is ev…

Indeed banks don't loan/invest deposits. Banks conjure money out of thin air when a loan is made. Some amount of deposits (a small fraction of the loans) is sometimes needed, although e.g. USA has scrapped fractional reserve demands.

I guess people have hard time accepting this because it seems too absurd to be true. Also it's common to confuse money to be a scarce resource/commodity because that's how it looks like for most individuals (and that's the story usually pushed for us plebs).

Re: Programmers should never trust anyone, not even themselves

#27
Also from 8 days ago https://news.ycombinator.com/item?id=40764826 and 9 days ago https://news.ycombinator.com/item?id=40760885.

The "A Python script should be able to run on any machine with a Python interpreter." remark is amusing. Recently ended up installing a whole new distribution version just to get Python 3.11 and the new library versions that the script I was running depended upon.

Giving a program finish and polish does have this kind of unlimited depth, but it is critical to remember that comes after the initial coding which is always rough with many gaps since that is always where things start. And then we make many choices. Hearing people commit to strong typing because docs are always out of date is another chuckle. Maybe if the docs were kept right from the start, maybe with some use of automatically generated reference pages, then there wouldn't be such frequent problems getting types right in the first place? To each their own, but strong typing hype is just another currently popular method among many. Strong typing has its value, but like every other methodology cannot be absolutely trusted to save programmers from error.

Re: Programmers should never trust anyone, not even themselves

#28
post #25

This is a really useful mindset as a programmer, but backfires in real-life as it makes you an anxious person.

I guess you need to compartmentalise into different kinds of 'trust'. The not 'trusting' you do with a computer is different from the trusting you do with fellow humans in daily life. They just happen to use the same word in English.

Re: Programmers should never trust anyone, not even themselves

#29
post #12
post #11

Earlier quoted context omitted.

Or even worse, tests that test implementation details that doesn't matter for the actual outcome.

If I had a dollar for each frontend test that actually don't actually test anything I would be able to retire by now!

Cargo cult testing. Some people don't understand the point of testing so they just go thru the motions and end up with something that makes no sense.

Re: Programmers should never trust anyone, not even themselves

#30

> In reality, the bank does not just store the money we deposit. It loans away/invests most of the money that people deposit. Our money does not sit idle in a large pile in a vault. Nope. In reality the money doesn't exist. Amazing how many people think that somewhere a cartload of money is physically moving every month when they get paid. When was the last time you deposited anything in a bank? The abstraction is ev…

Fractional reserve backing is old school, zero reserve banking is where it's at.
Post reply on HN