4 ms·
This is some kind of anti-resilience philosophy. If you assume things work correctly all the time, you are going to have disasters and downtime, long debugging
by zzzcpan 9y ago
This is some kind of anti-resilience philosophy. If you assume things work correctly all the time, you are going to have disasters and downtime, long debugging sessions and hard to find bugs when things break, because the system is not architected to survive incorrect assumptions.
- josephg 9y agoHow resilient is your software against, say, malloc returning invalid ranges? Against compiler bugs? I’m saying that when there are compiler bugs the right solution isn’t to blame the user for not having resilient enough code. The right answer is to fix the bug in the compiler. Likewise when basically everybody uses your API incorrectly, don't blame all the users. Instead fix the actual problem in the kernel. Or if you want, consider it as simple math - we get better returns on time spent solving the problem in the kernel than we do solving the problem in user space of every application. I've heard some facebook devs talk about the concept of DX: developer experience. DX is something we should be optimizing for when writing APIs. Currently the DX of writing correct file handling code is awful. The functions don't do what you want, they're implemented inconsistently and they're poorly documented. If the only place you're allowed to write code is your application, then you're right. Make it as robust as you can. But we're programmers and linux is opensource. We should just fix the problem.