Re:Sequoia-PGP – A new OpenPGP implementation in Rust
by Nae3Au5x on Thursday August 02, 2018 @06:04AM
(#17670348)
Some people may depend on them, but the difference between API guarantees and implementation details is that developers are far less reluctant to break your legs... I mean your application if you depend on the latter.
For example in java the iteration order of hash maps or the behavior of sorts in presence of non-reflexive comparators changed and people did depend on that. Sun was able to change it because it was not part of the API contract.
Re:Sequoia-PGP – A new OpenPGP implementation in Rust
by pure-awesome on Thursday August 02, 2018 @06:24AM
(#17670409)
Man, depending on sort order with a non-reflexive comparator is a TERRIBLE idea. Almost on the level of https://xkcd.com/1172/
With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.
http://www.hyrumslaw.com/
I'm in a team where all the consumers are only other internal teams and yet this still happens. I've found that it doesn't matter if you explicitly state to not rely on a particular behavior in your documentation, clients still will. It's always your fault if you break it because "it was your change that broke this client" and "it was working fine yesterday".