Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Android Google Java Oracle Patents Software Sun Microsystems The Courts

Schmidt Testifies Android Did Not Use Sun's IP 239

CWmike writes "Google built a 'clean room' version of Java and did not use Sun's intellectual property, Google's executive chairman, Eric Schmidt, testified in court Tuesday. Schmidt said its use of Java in Android was 'legally correct.' On this day seven of the trial, Schmidt gave the jury a brief history of Java, describing its release as 'an almost religious moment.' He told the jury that Google had once hoped to partner with Sun to develop Android using Java, but that negotiations broke off because Google wanted Android to be open source, and Sun was unwilling to give up that much control over Java. Instead, Schmidt said, Google created the 'clean room' version of Java that didn't use Sun's protected code. Its engineers invented 'a completely different approach' to the way Java worked internally, Schmidt testified."
This discussion has been archived. No new comments can be posted.

Schmidt Testifies Android Did Not Use Sun's IP

Comments Filter:
  • by girlintraining ( 1395911 ) on Tuesday April 24, 2012 @09:17PM (#39790665)
    We really need better names in this industry. I read the headline and immediately imagined a robot falling over and convulsing while saying "IP conflict.. conffflict... unaaaable to.. reboot," while a self-satisfied and positively glowing Sun glanced over the top of his laptop and started giggling quietly to himself. But it could just be the caffeine withdrawl too.
    • But it could just be the caffeine withdrawal too.

      So, you're testifying that you also did not use Sun's IP?

  • fragmentation? (Score:3, Insightful)

    by Anonymous Coward on Tuesday April 24, 2012 @09:44PM (#39790811)

    If Oracle is so worried about the "Fragmentation of Java", why would they want to force Google to write a completely different API?

    • Re:fragmentation? (Score:5, Informative)

      by julesh ( 229690 ) on Wednesday April 25, 2012 @12:53AM (#39791747)

      Google were going to use a completely different API anyway (the android application framework, rather than J2ME which Sunacle would have preferred). By "worried about fragmentation" what they really mean is "worried that people won't pay to license the patented parts of Java".

  • by willoughby ( 1367773 ) on Tuesday April 24, 2012 @09:51PM (#39790869)

    If what he says is true, there should be lots of evidence including a big stack of affidavits signed by the reverse-engineers swearing that they have never seen the original code. If he can't pull these out of his pocket, along with the Attorney who oversaw the project, I'd be.. erm... skeptical.

    • There are some fairly large differences between Dalvik (the vm in android) and the JVM from sun/oracle/whoever. Namely the Dalvik instruction set is register based whereas java is stack based. You can easily have any engineer look at the code for the Dalvik vm itself and see there is quite a difference. Then the libraries that aren't android specific are based on the Apache harmony project so affidavits from Google engineers would be quite useless there. Now the question to me wouldn't be in Android itself but is the Android SDK truly clean room. There's a static re-compiler to recompile JVM bytecode to Dalvik bytecode. My guess is the SDK is clean room itself but Schmidt being honest about android being clean room isn't so unlikely but it is quite possible this is doublespeak and the SDK itself (hey it's not "Android") could very well be based on Sun IP. The relevant stuff I've seen in this court case hasn't related to so much lifted code as it was patents which is quite difficult to avoid infringing just by not seeing code.
      • There is a lot more to Java than the runtime engine and it's bytecode format -- like a few million lines of library code. Did they develop a clean room version of that as well?

        While the source for those libraries was eventually released by Sun, it's not clear to me what license applies to the library source, and it's definitely not clear that the source was released before Google's work on Android. The issue may be water under the bridge as Sun did open source the vast majority of Java, but it kind of

    • Re: (Score:3, Interesting)

      by phantomfive ( 622387 )
      This is exactly true. If it were truly a clean room implementation, they couldn't have possibly ended up with parts of Sun's Java in their code, even a single line. But they did. Not only that, Google engineers have said that they were looking at Sun documentation while they were writing Dalvik.

      So Schmidt might be right. It could have been 'legally correct.' But it sure wasn't a clean room implementation.
      • by Anonymous Coward on Tuesday April 24, 2012 @10:42PM (#39791119)

        If you look at docs, specifically java docs you will get variable names and description what it does. This is still clean room implementation.

        • by phantomfive ( 622387 ) on Tuesday April 24, 2012 @10:51PM (#39791169) Journal
          It seems some people here are a little unclear of what a clean room implementation is. Here, from the wiki:

          Typically, a clean room design is done by having someone examine the system to be reimplemented and having this person write a specification. This specification is then reviewed by a lawyer to ensure that no copyrighted material is included. The specification is then implemented by a team with no connection to the original examiners.

          That's the proper way to do a clean room implementation. Once you start looking at copyrighted materials of the person you are copying, then it's no longer clean room. And yes, Javadocs are copyrighted.

          Now, what you have done might still be legal. That's what I'm hoping for in this case. However, it certainly isn't clean room.

          • I am sure that the process you describe could be automated, except for the lawyers who has, as we all know, a magical ability to understand how to make the difference between two copyrightable work and decide they are different (a process that, as far as I know, is non-computable for a lack of coherent definitions)

            function foo(int * buf) {
            for(int i=0;i<10;i++) {
            buf[i]++;
            }
            }

            The function foo increments the first ten arguments of the integer buffer passed in argument, without checking bounds or overfl

            • The value of the code is not in its precise wording, it is in the function it accomplishes. Protecting the first is useless, protecting the second would stall the whole software industry.

              Copyright doesn't protect functionality. Copyright only protects expression.

              • by Yvanhoe ( 564877 )
                Which is just silly as expression is the least thing we are concerned about in a code. Can I take the binary syntax tree of your program and escape copyright ? If no, why not ?
          • by DarkOx ( 621550 )

            Yes! Finding the people with the required skill sets and background across the many disciplines withing the larger umbrellas of Computer Science and Computer Engineering needed to implement something like Davlik in reasonable is no small feat. It certainly can be done if you have Google's money for payroll but searching successfully for the above who have also never seen a Java doc? The may be beyond the power of even the Google the search king!

      • by Anaerin ( 905998 )
        The problem with your statement is that they are implementing an SDK, so the code they produce has to have the same behaviour as the original. For instance, making a sandwich - without having the original recipe and reverse-engineering it, it'll end up being (virtually) identical, as you're trying to produce the same output. And even if this wasn't the case, there are some functions that need to be the same - if they're not, breakage happens.
        • The problem with your statement is that they are implementing an SDK, so the code they produce has to have the same behaviour as the original. For instance, making a sandwich - without having the original recipe and reverse-engineering it, it'll end up being (virtually) identical, as you're trying to produce the same output. And even if this wasn't the case, there are some functions that need to be the same - if they're not, breakage happens.

          It's not clear to me you understand what a clean room implementation is. It is perfectly possible to make a clean-room implementation of an SDK, or a chip, that implements the behavior accurately, without looking at the original code. There is no reason to believe Google did this (except for the sketchy testimony by their CEO).

          • by julesh ( 229690 ) on Wednesday April 25, 2012 @01:11AM (#39791835)

            It's not clear to me you understand what a clean room implementation is. It is perfectly possible to make a clean-room implementation of an SDK, or a chip, that implements the behavior accurately, without looking at the original code. There is no reason to believe Google did this (except for the sketchy testimony by their CEO).

            And the fact that a very large majority of the non-trivial portions of the code clearly do what they do in different ways to Oracle's implementation. And the fact that the developers of the code (in this case Apache, not Google) have stated several times that it is clean room. And that it was an open source project where the practice was to obtain a signed statement from developers providing complete details of exposure to Sun's IP prior to accepting patches from them (see http://harmony.apache.org/auth_cont_quest.html [apache.org] ), so it seems to be pretty clear that either it was clean room, or there is a developer who lied to them in a written warranty and therefore *that developer should be liable*, not Google.

            • And the fact that a very large majority of the non-trivial portions of the code clearly do what they do in different ways to Oracle's implementation.

              That's nice, but it's not evidence of a clean-room implementation. It is a good way to avoid copyright infringement.

              And that it was an open source project where the practice was to obtain a signed statement from developers providing complete details of exposure to Sun's IP prior to accepting patches from them (see http://harmony.apache.org/auth_cont_quest.html [apache.org] [apache.org] ),

              OK, that is evidence of a clean room implementation. How did Sun code end up in Android then?

              Also, what was this guy doing working on Android? [electronista.com] Having one of the original developers work on Android is certainly not a clean room implementation.

              • by julesh ( 229690 )

                OK, that is evidence of a clean room implementation. How did Sun code end up in Android then?

                I see no clear evidence that it did. All the code examples I've seen that are supposedly copied code seem trivial, and likely to be accidental duplication.

                Also, what was this guy doing working on Android?

                He wasn't. http://www.zdnet.com.au/google-oracle-get-technical-in-court-339336340.htm [zdnet.com.au]

                He was working for Google in an entirely different capacity, and wrote the code as a translation of a Python implementation. The code was then copied into Android by a second Google employee, who was possibly unaware of its source. But as the code in question is trivi

                • Humm... If the purpose of that function is to check that the interval fromIndex:toIndex is valid within an array on length arrayLen then there is another sensible way to implement that function.... without a bug:

                      This code does not throw ArrayIndexOutOfBoundsException if toIndex == arrayLen

                  • If this is intended for Java String operations, the toIndex is one more than you'd expect. From the String.substring() javadocs, emphasis mine:

                    "public String substring(int beginIndex, int endIndex)
                    Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex."

                • Awww, you posted it! You goin to jail!

            • And the fact that a very large majority of the non-trivial portions of the code clearly do what they do in different ways to Oracle's implementation. And the fact that the developers of the code (in this case Apache, not Google) have stated several times that it is clean room. And that it was an open source project where the practice was to obtain a signed statement from developers providing complete details of exposure to Sun's IP prior to accepting patches from them (see http://harmony.apache.org/auth_con [apache.org]

      • by Talisein ( 65839 ) on Tuesday April 24, 2012 @10:59PM (#39791199) Homepage

        That's the weird part of this trial, there doesn't seem to be a formal decision paper/memorandum saying "Okay, we are doing a clean room, and these are the measures we need to be sure we enforce, here is the manager in charge." [Cravat: Maybe there is and Oracle simply didn't want to present it. But that seems unlikely] It seems more like Andy Rubin was shooting the shit over email and some engineer said that he could write his own byte-code interpreter, and some others piped up that maybe rewriting everything would be fun. And then 2 years later they had it done and Rubin was just like, "Oh, cool, let's build our business on this then."

        But really this entire phase of the "trial" is bizarre. Oracle spent hours and hours and hours proving.... Google implemented the methods in java.lang et al. And Google is saying.... they implemented those methods. What exactly is the jury supposed to decide? Isn't whether or not Google can implement those methods be a matter of law? if the jury is supposed to say its fair use or not, why wasn't Oracle's presentation filled with examples of what things are fair use and what things aren't?

        Oracle's lawyers are so focused on saying that Google should have got a TCK license, but they never presented WHY Google should have gotten that license. They just asked the Google people, "Hey, did you know you should have got a TCK license?" Then they ask the Sun people, "Hey, should they have gotten a TCK license?" But they never seemed to explain why the TCK was needed beyond avoiding fragmentation of the language. Fragmentation of the language isn't against the law AFAIK.

        I guess things will become clear when the judge gives his instructions to the jury, but I am completely puzzled.

        • by wrook ( 134116 )

          I'm equally puzzled. They may actually have a case if they say that the API is copyrighted. Yes, it is a collection of facts, but I think there's a strong argument that it is a creative collection. The API was actually designed with an asthetic purpose. Like you say, whether or not reimplementing the API is fair use would seem to be the key issue (I hope to hell that it is, or even better that APIs can't be copyrighted).

          But they are confusing the issue with this TCK stuff which seems blantantly obvious

          • by ppanon ( 16583 )
            Berkeley vs. AT&T seems to have pretty well established that APIs cannot be copyrighted, although it's possible that a specific API include file layout can be.
            • by wrook ( 134116 )

              I don't see anything that supports this claim. Hopefully you know better than I do. If so, please post something. The Berkeley vs. AT&T case clearly established that *those* APIs could be implemented. I have been unable to find references, but based on my memory of the time (which is likely faulty), I think there was an explicit statement before the split that the API would be open. This may actually have been before source code was considered copyrightable so they would not have really referenced

              • Copyright doesn't protect functionality.

                Since an API is all about functionality, it's pretty hard to see how it can be protected by copyright.

                • by dzfoo ( 772245 )

                  Because the copyright does not apply to the functionality of the API, it applies to the format and organization of the function calls.

                  You can't copyright a number, and you can't copyright the idea of looking someone's phone number in a list. But you can copyright an ordered collection of numbers as an artful expression of of such a list.

                  An API is more than "all about functionality"; it is an artful expression of the collection of function calls, and their parameter signatures, needed to implement such func

          • In other words, they don't expect to win, but just want to confuse stuff as much as possible for as long as possible. I'd be looking for a money trail from MS in that case, though...

            Normally I'd be with you on that, but this is Oracle we're talking about. It's fairly reasonable to assume that MS's hands are clean on this one, only because there's no value in trying to convince an entity to do something they would do anyway.

        • by phantomfive ( 622387 ) on Tuesday April 24, 2012 @11:58PM (#39791443) Journal
          Oracle has two goals. The first is to prove that Google copied them. They've already established this, though they might need to deal with a fair-use defense, or any other defense Google uses.

          Their second, and to them very important, goal is to prove that Google willfully infringed, and benefited a lot from it. They want a big payment as a result of this.

          I believe the focus on the TCK license is an attempt to get bigger damages.
          • by GryMor ( 88799 ) on Wednesday April 25, 2012 @12:46AM (#39791707)

            Everything Google 'copied' (really, re-implemented) was released under the Apache license as project Harmony.

        • [Cravat: Maybe there is and Oracle simply didn't want to present it. But that seems unlikely]

          Note that "cravat" is a form of necktie.

          Perhaps you meant "caveat"?

    • As I understand tje JAVA lic, and perhaps I'm mistaken, but it seems pretty clear that Sun lic the programming language for free but retained the lic and copyright on the implementation of the language itself. That copyright would clearly include the interface and methods needed to implement any java compatible compiler or interpreter. As long as one agrees that SUN had the right to copyright that then I don't understand why google has a case on this. maybe someone can explain?

      • by Fjandr ( 66656 )

        My take on the case:

        Sun requires licensing to ship their JVM and SDK with a commercial product.
        Google claims their wrote their own without using any Sun code.

        If that is true, there's Google's case: they're not using the parts requiring licensing.

      • I'm not sure there is any precedent that copying APIs are illegal. Reverse engineering is legal, and that is basically Schmidt is claiming was done here.
        • reverse engineering from the language itself might be reasonable but as I understand it Dalvic actually implements all the java VM header profiles. You can't specify those without passing along copyrighted information. So how does one explain that? it's not a clean room and it is something that I beleive their lic forbids. maybe I'm wrong.

          • "... as I understand it Dalvic actually implements all the java VM header profiles. You can't specify those without passing along copyrighted information."

            For those of us who are not familiar with Java's internals, what are Java's VM header profiles and how are they subject to copyright protection?

          • by julesh ( 229690 )

            I'm not sure what you mean by "header profile", but would you also consider Wine [wikipedia.org] to not be allowed? I'm not sure you understand what clean room means -- simply that a specification is built by one person examining an existing system, and passed to another for implementation. You certainly can produce an API this way, and Apache has documentation that they claim supports the notion that Harmony (the API implementation Google used) was produced this way.

          • by ppanon ( 16583 )
            And yet somehow, Berkeley managed to convince a judge to let them do exactly that with BSD. So there seems to be established precedent that this is actually possible without conpyright infringement, and it would be surprising if Google weren't to bring that up at some point in this trial. The relative newbies posting here who have only been in the industry 10 years or less may not know about this precedent, but it's doubtful that Google's lawyers won't have come up with it at some point in searching out rel
            • Trouble is BSD didn't establish any case law. It was eventually settled out of court. Settlements don't establish precedent.
              So while indeed it's a relevant case, and the decision may be of interest it is only possible for Google to refer to it as evidence that these kinds of practices are common in the industry and can be resolved with agreements between the parties - it does not give them any legal maneuvering beyond that since there was no judgement made about the case.
              An out of court settlement is basica

  • Like Linux? (Score:5, Interesting)

    by ukemike ( 956477 ) on Tuesday April 24, 2012 @10:00PM (#39790915) Homepage
    Isn't this basically what Linus Torvalds did with Linux? If it can be done with an OS couldn't you do it with a compiler or an interpreter? I'm not a programmer, so the likeliness of this story being true is beyond my ability to judge.
    • by ukemike ( 956477 )
      Also, if this is true, shouldn't the evidence of it be bloody obvious to any sufficiently skilled programer who could examine both sets of code? It seems like a totally testable hypothesis to me. Someone should test it.

      "Stand back I'm going to try SCIENCE!"
    • by jd ( 1658 )

      Kaffe was a clean-room Java, so yes it can be done.

    • Re:Like Linux? (Score:4, Interesting)

      by wrook ( 134116 ) on Tuesday April 24, 2012 @11:59PM (#39791451) Homepage

      Linux is written to the POSIX standard. The POSIX standard is copyright IEEE and the Open Group. They have been clear that they won't sue people for implementing the standard (though, they also own a trademark which is a separate issue...). Additionally, the ability to implement this was pretty much covered by the BSD lawsuits in the 80s, which said that *this* API could be implemented (not that *all* APIs could be implemented).

      I don't know for sure, but I don't think that the issue of blocking the implementation of APIs has been tested. POSIX is a special case. SCO was *clearly* full of shit. It is much less clear wrt to Oracle and Java from my position. The strange thing is (as others have mentioned) that Oracle seems not to be pushing the API copyright issue and are instead claiming that Google needed a TCK license. Things may change later, though.

      • Re:Like Linux? (Score:4, Insightful)

        by Adrian Lopez ( 2615 ) on Wednesday April 25, 2012 @01:01AM (#39791797) Homepage

        Linux is written to the POSIX standard. The POSIX standard is copyright IEEE and the Open Group.

        IEEE holds the copyright to the documents describing the POSIX standard. It doesn't necessarily apply to the particular items being standardized (APIs, utilities, etc.).

      • by gl4ss ( 559668 )

        . The strange thing is (as others have mentioned) that Oracle seems not to be pushing the API copyright issue and are instead claiming that Google needed a TCK license. Things may change later, though.

        it's not that strange. isn't that after all the license they require from all j2me and mobile implementors? you got any idea how many hundreds of millions of those devices have been sold under license?

        crappy part is that because of that same stranglehold on j2me, j2me is dying.

    • by Ruie ( 30480 )

      Isn't this basically what Linus Torvalds did with Linux? If it can be done with an OS couldn't you do it with a compiler or an interpreter? I'm not a programmer, so the likeliness of this story being true is beyond my ability to judge.

      Both general GNU and Linux developers were very careful to avoid infringing copyrights and a lot of work started after the original Unix patents expired.

    • by julesh ( 229690 )

      Isn't this basically what Linus Torvalds did with Linux?

      Yes & no. Torvalds was implementing POSIX. There are two advantages he had here:

      1. POSIX is defined in a document that is separate from any implementation of it and is published by a group that is not a single copyright holder of a particular implementation. It was specifically intended to be a vendor-neutral standard that anyone could implement.
      2. There were already free implementations available (BSD, and the out-of-copyright-due-to-error older versions of System V) that he could use as the basis f

    • Isn't this basically what Linus Torvalds did with Linux? If it can be done with an OS couldn't you do it with a compiler or an interpreter? I'm not a programmer, so the likeliness of this story being true is beyond my ability to judge.

      He had Posix to guide him.

  • by G3ckoG33k ( 647276 ) on Wednesday April 25, 2012 @12:12AM (#39791529)

    "Google wanted Android to be open source, and Sun was unwilling to give up that much control over Java."

    What?! Java already was open source, GPLv2. Since 2006. http://en.wikipedia.org/wiki/Free_Java_implementations#Sun.27s_November_2006_announcement [wikipedia.org]

    It must be something else then, or what am I missing here?

    • by zbobet2012 ( 1025836 ) on Wednesday April 25, 2012 @12:52AM (#39791745)
      Google wanted the [i]actual virtual machine[/i] to be open source. Java the [i]language[/i] was open sourced. This trial resides around whether or not that open source license extended to the api's of the language.
    • Java ME (a version of Java for mobile phones) doesn't include the classpath exception, so ALL Android software would have had to be GPLv2.

    • Yeah, that statement doesn't really capture it very well. Google wanted (actually, needed) Java to be open source under a permissive license, not GPL. This trial is in an interesting way, an examination of the difference between the GPL and Apache licenses and how incredibly important they are. However both of them certainly qualify as open source.

    • by julesh ( 229690 ) on Wednesday April 25, 2012 @01:38AM (#39791957)

      In 2006, only javac, the java compiler, was open source. Android doesn't even use this compiler, so this was irrelevant to them. It took until 2007 for a GPL release of the class library, and Android was basically finished by this point in time. The first android phone launched only weeks after Java's GPL release. The decision to pursue an open source Java implementation was taken in 2005, shortly after Google acquired Android, and long before Sun began open-sourcing anything.

    • by Anonymous Coward on Wednesday April 25, 2012 @02:51AM (#39792197)

      You are mixing things.

      OpenJDK is the GPLv2 licensed reference implementation for Java SE. This is important because it includes crap like Swing and AWT that have no place on a modern mobile phone or tablet, amongst countless of other fat that's not needing. The virtual machine itself is way to heavy, doing optimizations that can be afforded on a desktop, but that are too expensive on a mobile phone.

      But Java ME (mobile edition) is an entirely different matter. It does not have an open-source implementation, so you have to license it from Sun/Oracle. And if you do that, you cannot modify it to suit your needs, unless Sun/Oracle agrees, which is very unlikely because historically they've been quite religios about their TCK.

      So the thing left to do, if you want to use "open-source Java" is to fork OpenJDK. But the problem here is that the patents grant in GPLv2 is implicit and this means for derivate works it does not hold in Europe (for example) as the "implicit patents grant" is an artifact strictly related to the US patents office only.

      Apache begged Sun for years to license them the TCK for Apache Harmony (the most complete third-party open-source implementation), but the license of the TCK says that distribution of the implementation for mobile devices is subject to licensing, a clause which is incompatible with Harmony's APL license, therefore Sun disagreed ... but at least people assumed that a clean-room implementation is fine, even if it does not pass the TCK, as long as you don't use the Java trademark. And now Oracle wants to prove otherwise.

      So no, for mobile devices Java is closed, unless you go with a clean-room implementation, which Google did.

      Dalvik is a virtual machine optimized for mobile phones. The latest version is pretty good too. Android has its flaws, but it's overall pretty good and this is in part because Google went the extra mile with their own VM implementation, which wouldn't have been possible otherwise.

"The vast majority of successful major crimes against property are perpetrated by individuals abusing positions of trust." -- Lawrence Dalzell

Working...