3 ms·
The term "blind faith" works, but may be a bit harsh.
by infogulch 12y ago
The term "blind faith" works, but may be a bit harsh.
- tjradcliffe 12y agoExcept that it's not blind and it's not faith. We generally have some idea of what's in the black boxes we use, and we are always open to change our beliefs based on new evidence ("faith" is a belief that will stay the same no matter what evidence is presented: in Bayesian terms it is a belief with a prior of 0 or 1, neither of which can be changed by any evidence.) "Hopeful" or "optimistic" programming might be better.
- Someone 12y agoCall it "trust", and it looks different. Do I trust my OS to have a memory allocator that works and to protect processes from reading and writing each other's memory? Yes, but not totally. Do I trust its more modern and complex APIs? Less so. Do I trust code I copied from stackoverflow that has 100+ points? Yes, but even less so than I trust the complex or new corners of my OS. So, I read every line I copy. On the other hand, I am lazy, so if this gets to 1000+ lines, chances are I won't read every line. I will think a bit more about the trust issue, though. Do I trust the documentation of the libraries shipping with my OS? More than stack overflow answers with 20-ish points, but certainly not completely. Do I make assumptions about APIs? I try not to, but it is hard. There is lots of documentation where it is hard or impossible to find out what the code claims to do in edge conditions. For example, in https://msdn.microsoft.com/en-us/library/352y4sff(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/352y4sff(v=vs.110)...., can one pass a null transaction? I wouldn't know, and the page doesn't tell me, so this afternoon, I wrote a conditional operator calling another constructor if transaction is null. I did consider a "let's try it and assume it always works if it works once" approach, though. I also think many people do that ('if it compiles and runs, it must be valid C')