Imagine an Array class. How many names can you come up with for: "number of elements in an array"? Count(), Size(), Len(), Length(). Those are 4 common names.
Now imagine a system where you can copyright those names. The first 4 people who use those obvious, functional names get a monopoly on their use because that's what copyright is: a government granted monopoly.
We have hundreds of languages, and many languages have multiple Array classes.
Can you see how such system would destroy our ability to write understandable code?
An API is a very small part of the overall code.
If you want to compare this to writers: code is the novel and it does get copyright protection, just like a novel.
API name is like a chapter name and just like Melville doesn't get copyright (i.e. exclusive use) of "Loomings", a programmer shouldn't get a an exclusive use of Array.Count().
Just as I can copyright a work such as a novel that contains the word "Count" even though I might not be able to copyright an isolated sentence containing it, I think there's a good argument that something like the Java standard library API hangs together and should be subject to copyright even if a single method signature would not.
Copyright covers only the expression. For example, in a C program, the header files can be copyrighted. I think it's pretty fair to argue that Sun can copyright their expression of an API. However, you cannot copyright facts. I would argue that the array class having a sort method is a fact. And therefore I should be able to create my own expression of that fact.
Imagine an Array class. How many names can you come up with for: "number of elements in an array"? Count(), Size(), Len(), Length(). Those are 4 common names.
Now imagine a system where you can copyright those names. The first 4 people who use those obvious, functional names get a monopoly on their use because that's what copyright is: a government granted monopoly.
We have hundreds of languages, and many languages have multiple Array classes.
Can you see how such system would destroy our ability to write understandable code?
An API is a very small part of the overall code.
If you want to compare this to writers: code is the novel and it does get copyright protection, just like a novel.
API name is like a chapter name and just like Melville doesn't get copyright (i.e. exclusive use) of "Loomings", a programmer shouldn't get a an exclusive use of Array.Count().