Hacker News new | past | comments | ask | show | jobs | submit login

> 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.

I find it too verbose. How about this alternative: "Every undocumented behavior of a system eventually becomes a contract."




Ah, so I can stop people from depending on internal details by documenting it! /s

I'd use the word "observable" rather than "undocumented"


> Ah, so I can stop people from depending on internal details by documenting it! /s

That actually makes sense. If some behavior is not to be relied upon, document it explicitly as such. With scary warning if necessary.

At least this will provide you with more ammunition when your update inevitably breaks someone's workflow.


I mean documented features are observable too; I wanted to narrow the scope.


Honestly I needed to read your phrasing to understand the original phrasing of the law.

Thank you.


Someone depending on it does not mean it becomes the contract.

Someone depending on implicit behavior means https://xkcd.com/1172/ and you shrug and break them anyway because the contract never required you to uphold the property. It's called contract after all, there's a mutual relationship, not a one-sided one. Otherwise specifications would be meaningless and we would just tell people to read the source.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: