Oracle Claims Google 'Directly Copied' Our Java Code 675
itwbennett writes "On Wednesday, Oracle amended the lawsuit it filed against Google in August, saying that 'approximately one third of Android's Application Programmer Interface (API) packages' are 'derivative of Oracle's copyrighted Java API packages' and related documents. In particular, 'the infringed elements of Oracle America's copyrighted work include Java method and class names, definitions, organization, and parameters; the structure, organization and content of Java class libraries; and the content and organization of Java's documentation,' Oracle says. 'In at least several instances, Android computer program code also was directly copied from copyrighted Oracle America code,' Oracle alleges."
History Repeating (Score:1, Informative)
I seem to remember that the SCO Group used the same arguments against Linux distributors and users. Perhaps Larry should check the performance of SCO stock before he makes another move.
You don't know what the fuck you are talking about (Score:5, Informative)
The JDK that ships with Android is just a subset of Harmony, which is released under the Apache license. All improvements made by Google have been folded back into the project. The additional non-standard libraries they ship with android, are also opens source.
Only if they are certified Java (Score:5, Informative)
I want to start by saying I'm not making any commentary here on the validity of Oracle's claims regarding direct copying (I suspect they are making that claim just because class names and methods are the same for some classes, for compatibility purposes).
The thing is, Google doesn't claim Dalvik is "Java". They aren't using a Java license. Yes, you can create a free/open-source implementation of Java, as long as you are licensing from Sun/Oracle under the terms of the Java license.
Google created something very similar to Java, but they are not calling it Java, and do not claim to have licensed Java from Sun/Oracle. I believe they claim copyright over the entire Dalvik VM and API. That makes a world of difference, legally, and so they can't use the defense the parent is suggesting.
Re:Java GPL? (Score:4, Informative)
J2se is. J2me is not. That's three problem that Google faces.
Re:Here we go again (SCO) (Score:4, Informative)
Uh.. what?
C# has absolutely nothing windows oriented to it. It's a completely platform agnostic language.
Now, if you're talking about .NET, that's a slightly different story, although much of it, especially the CLI is also platform neutral. The only parts that are windows specific are things that can be replaced, such as the GUI framework.
Re:Here we go again (SCO) (Score:1, Informative)
Look at the summary:
the infringed elements of Oracle America's copyrighted work include Java method and class names, definitions, organization, and parameters; the structure, organization and content of Java class libraries; and the content and organization of Java's documentation
It's talking about header files and auto-generated (or at least function-derived) documentation. Copyright covers creative expression. Function is not copyrightable. The fact is that if you want something substantially compatible with Java, the class names, definitions and parameters must be the same. Even the "organization" (the order of functions appearing in the code etc.) has to be the same if you want to have certain types of binary compatibility, because it determines the layout of data members in memory, which is functionally significant.
Re:The code is obviously ripped (Score:2, Informative)
Re:Here we go again (SCO) (Score:5, Informative)
Re:Here we go again (SCO) (Score:2, Informative)
So you give up order of magnitudes in performance over the life of the running application
[citation needed]
In order for the citation to count, it has to be significant enough that, using modern hardware, it would be easily noticeable and detrimental to non-mission-critical applications and/or not intended for a realtime OS (which is to say, ordinary, common-use applications).
I'll give you the benefit of the doubt and simplify the need to prove magnitudes in performance to just one magnitude if need be, as multiple magnitudes of order seems to either be logically unsound, magically turning, for instance, a O(n) function into O(n!); or semantically unsound, as "magnitudes" would imply a horrifying execution time increase which would have stymied the development of ANY higher-than-C-level language, a situation which is provably untrue due to the proliferation of languages that are, in fact, higher-level than C and are very frequently used in the modern world.
And because you appear to be arguing C over any other language, please provide citations for as many not-C languages as possible (Java, C#, Obj-C, etc, etc). As I have used many not-C languages in my life and have not noticed execution time and performance decrease by magnitudes except in the most extreme of cases, "everyone knows this" does not count as a citation.
Re:Here we go again (SCO) (Score:2, Informative)
Only if you have A CPU that directly executes C code. You can, however, write portable C code that can be compiled without altering the code.
Source portability is not the same thing as binary portability.
Here's Oracle's Example (Score:5, Informative)
Here are the examples Oracle is using:
http://www.zdnet.com/blog/btl/oracle-says-google-directly-copied-java-code-heres-the-line-by-line-comparison/41025&usg=AFQjCNF1GNdD5_oXwawU7akdBGHETrf57w [zdnet.com]
http://www.google.com/url?sa=D&q=http://www.scribd.com/doc/40316099/orclgoogcode&usg=AFQjCNFFdZkReVLuVJIS7Xshk1X997VTIA [google.com]
And a link to the original Sun implementation:
http://www.docjar.com/html/api/sun/security/provider/certpath/PolicyNodeImpl.java.html [docjar.com]
We don't know all the facts... but it smells funny.
Re:Um, isn't java code GPL? (Score:4, Informative)
GPL'ed code will save Google from copyright claims, not patent claims. This is the case for pre-GPLv3 license which Java is under.
Re:Here we go again (SCO) (Score:5, Informative)
I thought most of us saw the obvious reasons already. Sun was rather like a gift wrapped fruit basket.
Re:Here we go again (SCO) (Score:4, Informative)
The main difference is that SCO didn't own the copyrights (and we all knew they didn't) but it took a long, protracted court case to work that out. Once that was settled, SCO didn't have any legal standing to sue IBM for copyright infringement. It is clear that Oracle owns the Java copyrights. The code will probably be similar; it's a matter of how much quibbling Oracle is willing to do. Unlike SCO, Oracle has lots of their own money to battle this out.
Re:Here's Oracle's Example (Score:3, Informative)
Harmony is not GPL [wikipedia.org].
Small nit-pick (Score:5, Informative)
Not all of Sun's Java code went into Harmony et. al. So, maybe.
The point of the project was that NONE of Sun's Java code would go into the project. They started with a clean slate and implemented all of the methods with their own code. They also had processes in place with the intention of keeping out the original Java code in contributions.
Oracle is basically stating that by using the same package names, class names, and parameters that Android is an infringing derivative. This is the same argument as the SCO ABI argument. That was laughed out of court IIRC.
Re:Here we go again (SCO) (Score:3, Informative)
IANAL, YMMV, etc.
Re:Here we go again (SCO) (Score:5, Informative)
In Baystate v. Bentley Systems (1997), a district court held that technical interfaces including programmer APIs are not copyrightable under the scenes a faire and other copyright doctrines. If this logic is followed by the court in the Oracle case, Google will be held harmless from any claims of copyright infringement.
This all despite the creativity that went into the API design in the first place. The practical benefit of not proscribing the copying of technical interfaces should be obvious. If such copying was proscribed, no one could make compatible software without permission of the original manufacturer anymore. File formats themselves might be protected to the degree that in the absence of any patent, it might be illegal to write code that reads and writes your own data.
Re:Here's Oracle's Example (Score:3, Informative)
The two implementations are identical.
No, they aren't. There frequent minor differences - the Android code, for instance tends to prefer "for" over "while" loops, some of the Sun methods have a single return statement where the Android code has multiple returns, and a few other things. Given how straightforward the functionality of the class in question is, these kinds of differences are strong evidence that the implementation was made independently.
Re:Dangerous claim (Score:3, Informative)
That's the proprietary JDK. You're looking for OpenJDK [java.net], which is under the GPLv2.
Re:Here we go again (SCO) (Score:3, Informative)
C is must more portable than Java. If I write something in Java, it will work on exactly one platform: the Java platform. The C will actually work on hundreds of platforms. If I want. Or just one, if I want.
In C, you're programming any machine, using a portable syntax. You can write C code that doesn't require any library or operating system at all, just some way to to be loaded and invoked.
You can write C code that efficiently uses the native types of the machine, more or less. If the machine has 36 bit integers, you can use all 36 bits (while still remaining portable to where there are only 32 bits).
C can be made ROM-able.
Let's see, random project out of the air. Could, say, Etherboot be easily redeveloped in Java? Sure, if your system boot firmware can cough up a Java environment.
Re:Here we go again (SCO) (Score:3, Informative)
Dalvik was not part of the original android project. Google went ahead and built a clean room implementation after talks with Sun over Java licensing broke down. Dalvik was certainly programmed in house by Google.
Re:PostgreKill (Score:3, Informative)
I think he's talking about EnterpriseDB [enterprisedb.com]. They don't own PostgreSQL in any way, but Bruce Momjian and Dave Page, two of the top developers aside from Tom Lane, both work there. Ironically, their schtick is Oracle compatibility, complete with a compatible implementation of PL/SQL they call edbspl, date-format, data types, you name it. They've also contributed several modules and projects to the PostgreSQL project (GridSQL, several admin tools, etc).
Re:Here's Oracle's Example (Score:2, Informative)
Upshot: Decompile the code with JAD and it's identical. It looks like someone screwed up pretty badly in this instance.