Bad News for Everybody• Copyrighting the Idea of something rather than its Expression• Copyrighting every possible implementation of that thing• Makes • Building almost any new language or API hard • Integrating systems impossible
Copyright Gridlock API 2 Bad news even if you API 3 are the original copyright claimantAPI 1 API 1.1 ? Even worse if the APIs / Fragments are generic API 5 Leads to widespread paralysis API 4
US VerdictSo long as the specific code used toimplement a method is different, anyone isfree under the Copyright Act to write his orher own code to carry out exactly the samefunction or specification of any methodsused in the Java API. It does not matterthat the declaration or method header linesare identical.
European Verdict[... the Court holds that neither thefunctionality of a computer program nor theprogramming language and the format ofdata files used in a computer program inorder to exploit certain of its functionsconstitute a form of expression.Accordingly, they do not enjoy copyrightprotection.]
Not so Fast! • There is still uncertainty (EFF Appeal) • “Copyright” is still everywhere • Reuse can still be Plagiarism • There may be patents...https://www.eff.org/deeplinks/2012/11/no-copyrights-apis- help-us-make-case
E.g. Bad BehaviourCopy/Paste? -> Copyright still applies to some things + can still be plaigiarism
So What to do?• What should we do when designing APIs?• Should we be sharing rather than copyrighting?• What if you actually want to protect something?
If you publish APIs• Think about how you feel about re-use• If you’re cool with sharing, find a way to signal it• If you think the technology is genuinely unique and worthy of protection: patent rather than copyright
If you want to “Re-use” APIs• Ask!• Attribute!• Contribute!• Get clarification on status of re-use• Figure out who the original Author is
As a Community• Think about how to better share interfaces• Consider an “interface commons” (or an creative commons for interfaces)• Play nice when re-using, attributing and sharing• Encourage clarity• Encourage convergence in interfaces
Ready to Share Creative Commons Public Github WADL / Swagger etc.
It’s Worth it• Start building a culture of open / reusable interfaces [100’s, 1000’s, ...]• Make API design better• Speed up pretty much everything Interested in people thoughts on how to get there!
Thank You & Discussion Contact: Steven Willmott firstname.lastname@example.org://www.3scale.net @njyx