How To Design A Good API and Why it Matters (2007) [video]
youtube.com
youtube.com
IMHO almost every Android API i use violates some principle in this presentation.
iOS and Windows APIs are so much better.
I think it's fair to assume that most people share the same experience.
More seriously, every sufficiently complex, real-life design I have ever seen has been a set of compromises to best meet a set of competing constraints. The most that I hope that a book or a lecture can do is provide a general set of principles that an engineer should consider, and be mindful of they are going to violate them. I can't think of any very complex platform that hasn't run into this issue, and Android is no different, and probably fares better than most. Do you have any examples that you would prefer instead?
I think the difference is that Apple had decades of institutional GUI expertise. Android engineers were more like hardware/OS guys as far as I can tell, and perhaps less experienced with the abstractions conducive to easily creating nice GUIs.
For everyone else, we have to provide good experiences with stable products.
You misunderstand.
It's not that functional things are covered by patents, "creative" things are covered by copyright. First, functional things can of course be creative; that's in the very definition of invention. Second, copyright is limited by law to the expression of an idea, not the idea itself.
US law is very clear about this:
> In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work.
Source code is indisputably copyrightable, but the question of law is if the functional aspect of an API, the way you interoperate with it, is protected by copyright. I believe Judge Alsup decided correctly that an API is a "system or method of operation", avoiding "the danger of conferring a monopoly by copyright over what Congress expressly warned should be conferred only by patent". I'm hopeful that the other circuit courts will agree.
https://hn.algolia.com/?query=How%20To%20Design%20A%20Good%2...