I was thinking back to APIs I've run into, some today:
- APPC (Fixed length messaging) on mainframes
- Text parameters over COM
- Complicated XML over SOAP request-response combinations
- URL-like REST services
- public classes in various libraries
- protocol implementations based on a RFC
- Feedback brings in discipline. We remove stuff we don't use. We clear up the names. We're more specific about the changes we communicate outside.
- We talk more of why than just the how. We go back to the sources of requirements to question things we take for granted. I suspect we keep learning again and again that thinking of the purposes of use we will end up with simpler solutions.