He who sacrifices clarity for correctness deserves neither
-
-
Replying to @wycats
In cases where correctness matters, though, correctness is often *really hard to achieve*. As an extreme example, avionics software is unclear because they have to guarantee *every single line of code* matches a requirement. Should they sacrifice correctness for clarity?
1 reply 0 retweets 1 like -
Replying to @Hillelogram
In that case, it would be unclear to leave out those mission-critical requirements. The domain matters a lot -- be as clear as your domain of discourse requires.
2 replies 0 retweets 2 likes -
Replying to @wycats @Hillelogram
An example: For mission-critical software, Ruby/Python/JS are very *unclear* about critical aspects of the design. However, C sacrifices clarity for correctness and achieves neither. Rust is an attempt to be as clear as the requirements necessitate in those domains.
2 replies 0 retweets 2 likes -
Replying to @wycats
Most mission critical software is written in C, though, because it's one of the only languages that can guarantee hard realtime bounds. Rust may eventually supercede it, but reliability software is intentionally slow moving and conservative.
1 reply 0 retweets 0 likes -
Replying to @Hillelogram
I think C was an improvement along the correctness/clarity axis when it came out (asm has the same guarantees), but we should strive to continue to do better. C is decades old and we've learned a lot in the meantime.
1 reply 0 retweets 0 likes
But for web software, there is a different correctness/clarity tradeoff. The main point is that it's domain-specific and you should make clear code a priority, even when it, at first, seems to conflict with correctness goals.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.