In reply to Chip Bennett.

I see what you're getting at here Chip, but Java is not PHP, and fundamentally there is a difference in the language that matters here.

For Java, that "file structure" actually does matter, at the deepest level of the code. That "java.lang.Math.max" you refer to is actually both a file structure inherent in the format and layout of Java code and in the code itself. You cannot actually implement a "java.lang.Math.max" and be compatible without using the file structure of "/java/lang/Math.class" to do it.

While other languages have a less strict file structure and organizational structure, Java was built from the ground up in a way that the layout of the *.java and *.class files matter to the actual names of namespaces and classes and functions in the language itself. By ruling those copyrightable, the court is saying that the function names and prototypes are essentially copyrightable, because in Java, there is no difference between the two.

It is not possible to build a compatible version of Java without this inherent file structure and function/object naming interaction. Java is a special case, and by not recognizing that case as special, the court has made an error here. This case is absolutely not a win for "free software" or for anybody else who wants to write their own versions of systems while also maintaining fundamental low level compatibility.

IMO, that which is absolutely and arguably necessary to create a new work that is compatible with an existing system should not also be copyrightable by the owners of that system. The ability to make compatible works should be preserved and not subject to copyright restrictions.