3 ms·
> In short, in software engineering, we acknowledge that failures happen and we measure them, characterize them, and compensate for them. We don't aim for perfe
by nyanpasu64 4y ago
> In short, in software engineering, we acknowledge that failures happen and we measure them, characterize them, and compensate for them. We don't aim for perfection.
If software engineering revolves around writing software complex enough to have bugs not understood, or accepting memory safety errors as a natural byproduct of programming (rather than programming mistakes to be exterminated on sight, and made impossible by design unless it prevents writing useful programs), I'd be more effective and happier practicing applied math than engineering.
- skybrian 4y agoIt's also accepting that performance is variable, that the network is not reliable, that machines can fail at any time, and that memory corruption happens. When you build systems at scale you need to worry about these things. Programming language API boundaries don't make real-time performance guarantees, not even in Rust. We hope to get typical performance. In a mathematical context (for example, proving programs correct), you often ignore these things and worry only about whether the program will give you the right answer, eventually, when the hardware works.