There are some confusion here between java interfaces which are just
pure abstract classes and the application programming interfaces.
API in
fact refers to a list of types/classes/interfaces which can be reused in by
others. It provides interoperability and faster development (because of reuse!).
The API defines which types/classes/interfaces you have and how there
are working (how you should use them) - for example how a set is working and
which methods you have. In brief the public Java standard API is all what is
described by the Java Platform API Specification.
All the problem
is: can Oracle prohibit other firms or organizations to implement and distribute
software which mimic what is described in the Java Platform API
Specification ?
Sun's rule was: if you want to say that you have
developed a java VM or a JEE server or a JME, you have to pass (and pay)
the corresponding TCK (Technology Compatibility Kit) which defines which part of
the API you should provide and how you you verify if they work well. If you
didn't say it was java, you didn't have any problems (e.g. GNU Classpath).
Now Oracle says, it doesn't matter if you say it's Java/JEE/JME or not.
If you defines something named Set which could replace the Oracle Java
Set, you have to buy Java license (and probably follow the Java standards).
[ Reply to This | Parent | # ]
|