Google engineers defend source code, email in Oracle lawsuit over Java

13

Comments

  • Reply 41 of 70
    anonymouseanonymouse Posts: 6,860member
    <p>  </p><div class="quote-container"> <span>Quote:</span> <div class="quote-block"> Originally Posted by <strong>Gatorguy</strong> <a href="/t/149435/google-engineers-defend-source-code-email-in-oracle-lawsuit-over-java#post_2098693"><img alt="View Post" class="inlineimg" src="/img/forum/go_quote.gif" /></a><br /> <br /> <p> By the way, since the AI article doesn't mention it, the "damning" Lindholm email isn't from when Google was developing Android. It was <strong>written in 2010 </strong>after Oracle made known it's intent to bring suit. The judge got the impression <em>from Oracle</em> that it was written in the early development years for Android and thus his comment. According to the same Florian Mueller the judge no longer has the same opinion of the "Lindholm email". </p> </div></div><p>  </p><p> Nice try.</p><p>  </p><p> <strong><span style="font-size:22px;">Here's another one from Lindholm - July 26 2005 (Slide 21):</span></strong></p><p>  </p><p> <strong>“Must take license from Sun”</strong></p><p>  </p><p>  </p><div> <strong>“Google/Android, with support from </strong></div><div> <strong>Tim Lindholm, negotiates the first </strong></div><div> <strong>OSS J2ME JVM license with Sun”</strong></div><p>  </p><p> <span style="font-size:22px;"><strong>Here's a second one from Andy Rubin - October 11, 2005 (Slide 42)</strong></span></p><p>  </p><p>  </p><div> “My proposal is that we <strong>take a license</strong> that specifically </div><div> grants the right for us to Open Source our product.  </div><div> <strong>We’ll pay Sun for the license and the TCK</strong>.”</div><p>  </p><p>  </p><p> Oracle Slides:</p><p>  </p><p> <a href="http://www.oracle.com/us/corporate/features/opening-slides-1592541.pdf">http://www.oracle.com/us/corporate/features/opening-slides-1592541.pdf</a></p><p>  </p>

    Typical Gatorguy.
  • Reply 42 of 70
    gatorguygatorguy Posts: 24,213member


    A fairly major piece of news from the Judge. Instead of the jury deciding if API's are copyrightable in the first place, Judge Alsup is going to make that call himself. Sounds much more fair than an ill-informed or confused set of jurors trying to make that decision.


     


    http://www.groklaw.net/article.php?story=20120421131810380

  • Reply 43 of 70
    majjomajjo Posts: 574member


     


    Quote:

    Originally Posted by Gatorguy View Post


    A fairly major piece of news from the Judge. Instead of the jury deciding if API's are copyrightable in the first place, Judge Alsup is going to make that call himself. Sounds much more fair than an ill-informed or confused set of jurors trying to make that decision.


     


    http://www.groklaw.net/article.php?story=20120421131810380



     


    A judge can still be ill-informed or confused. I'm actually surprised that he has the power to do that

  • Reply 44 of 70
    lightknightlightknight Posts: 2,312member


    Agreed. It also ties in to the "don't fix code that already works" rule. If you already solved a problem at some employer, trying to fix it in another way, and possibly create subtle bugs, is dumb, and might even qualify as a professionnal fault, as in "letting your ego (I'm zo good I can solve this in many wayz) be bigger than your duty to your company". Not to mention the fact that there are not that many ways to write a concise, clean, maintainable version of an algorithm, while retaining your own personal coding habits, your company's coding rules, etc.


    For example, since we're talking Java here, I expect that two engineers solving a classic problem (say Fibonacci for the sake of example) using SUN's editing rules using the classic algorithm will write pretty much the same code.


     


    Unless you actually invent something revolutionary, such as a new algorithm, you're mainly using simple rules, blocks and recipes. That's because rocket science or programming aren't_complicated, they are _complex_, which is very different, and doesn't mean either that they are easy. Rewriting these blocks again and again in asimilar fashion, but vonluntarily different introduces useless risks. Moreover, I can't help but find that writing code that does the same thing as code you wrote previously but is slightly different (say write two lines in a different order if it doesn't impact the algorithm, or use x=x+1 instead of x++, or whatever stupid trick...) is exactly like changing a few words/lines in an essay.(Yes, obviously, the person who wrote the essay would then be someone else, but it's just to make the point that if you end up rewriting code that's identical to code you already wrote and then have to "alter" it to avoid "intellectual property issues", you're deep in kafkaian territory). I'd even argue that code that's semantically/logically equivalent to another code IS that code... which then means that either, due to your better experience and further years of programming, you now wrote a better version of the code, you wrote the same code in a "disguised" way, you have identical code, or you PURPOSEDLY wrote worse code.


     


    Since it seems to me that the first situation will actually rarely happen, the last situation seems like a professionnal fault and the two other solutions  seem to be illegal if I read the case right... what happens then? Should programmers stop working anytime they are askedto do something that has already been done? Looks like web development would stop instantly, among many other things :D


     


    So, what should be done? It's a complicated world where you solve real problems using "virtual" tools, such as "Law". The good thing is, real people called judges (and sometimes extremely competent ones) are designated to arbitrate these real problems :D


     


    -----


     


    Talking about fixing things that worked... CAN I HAVE THE PREVIOUS COMMENT SYSTEM THAT LOADED FAST AND WAS EASY TO READ BACK PLEASE? Or maybe thereis a toggle I don't see?

  • Reply 45 of 70
    nhtnht Posts: 4,522member


     


    Quote:

    Originally Posted by lightknight View Post


    Agreed. It also ties in to the "don't fix code that already works" rule. If you already solved a problem at some employer, trying to fix it in another way, and possibly create subtle bugs, is dumb, and might even qualify as a professionnal fault, as in "letting your ego (I'm zo good I can solve this in many wayz) be bigger than your duty to your company". Not to mention the fact that there are not that many ways to write a concise, clean, maintainable version of an algorithm, while retaining your own personal coding habits, your company's coding rules, etc.



     


    Except in a work for hire situation it's NOT your code.  It belongs to the company you worked for.  Which is why I typically rely on open source code for many of the reusable components and typically try to contribute enhancements back with my company's permission.  Or I blog the snippets and code examples and make sure my old employer is aware and okay that I'm doing that.  There's a lot of older code I wish I still had access to but meh...there's lots of newer code examples on the net these days to build from.


     


    Besides, most code isn't directly reusable anyway or of such poor quality that a rewrite doesn't introduce more bugs or have been superseded by newer ways of doing things.


     


    That last is ESPECIALLY true for Java.  I've seen a lot of coders use the old constructs from Java 1.1 that have been largely replaced by newer ways of doing things.  For example enumerators vs iterators, vectors vs current collection classes, etc.  I can understand for legacy code but for new programs it drives me batty when they do that.  If you choose enumerators because they are faster than iterators, that's one thing but 99% of the time its because either they are used to the old way or their old crufty "toolbox" is full of crufty old code from the 90s they are still reusing.

  • Reply 46 of 70
    stelligentstelligent Posts: 2,680member


     


    Quote:

    Originally Posted by nht View Post


     


     


    Except in a work for hire situation it's NOT your code.  It belongs to the company you worked for. 



     


    I also explained how some (most?) programmers deal with this.


     


    Quote:

    Originally Posted by nht View Post


     


    Besides, most code isn't directly reusable anyway or of such poor quality that a rewrite doesn't introduce more bugs or have been superseded by newer ways of doing things.


     



     


    I am confounded by such a statement coming from a (self-professed) professional programmer.  Even before the days of object-oriented programming, code reuse (templates, libraries, functions, procedures, etc.) was a common and necessary practice.  It is all the more the case now.  And please don't tell me you're superior to the Google programmers.


     


    For Chrissakes, they even teach comp sci students how to write reusable code. You are not a programmer if you don't do it. Simple as that.

  • Reply 47 of 70
    stelligentstelligent Posts: 2,680member


     


    Quote:

    Originally Posted by lightknight View Post


    Agreed. It also ties in to the "don't fix code that already works" rule. If you already solved a problem at some employer, trying to fix it in another way, and possibly create subtle bugs, is dumb, and might even qualify as a professionnal fault, as in "letting your ego (I'm zo good I can solve this in many wayz) be bigger than your duty to your company". Not to mention the fact that there are not that many ways to write a concise, clean, maintainable version of an algorithm, while retaining your own personal coding habits, your company's coding rules, etc.


    For example, since we're talking Java here, I expect that two engineers solving a classic problem (say Fibonacci for the sake of example) using SUN's editing rules using the classic algorithm will write pretty much the same code.


     



     


    Sort of agree. But it's neither about not fixing working code nor about ego-feeding. It's a matter of practicality. We just cannot write code fast enough to keep up if we don't reuse. Anyone who denies this is not a programmer.

  • Reply 48 of 70
    maestro64maestro64 Posts: 5,043member


     


    Quote:

    Originally Posted by stelligent View Post


     


     


    If you truly program for a living and have worked for more than one company, you reuse/recycle code as a matter of course. There are different ways of doing it. Never met a true programmer who does not recycle code in some ways.  Copying and pasting is VERY common but it is wise to modify it after you are close to a deadline. My point was that, sometimes, we just forget to *fix* everything.



     




    Here is the problem with what you just said, it means that programers when the walk out the door of a company they left with code in their pockets which is not really theirs for the taking. I know in the software world this is pretty easy and innocent to do, however, as much as most programmers would like to believe the code belongs to them, it does not they were paid by an employer for that work therefore they do not own it. In the hardware world this generally does not happen as much, people do walk out with designs but it much hard to do.


     


    In this case if they copies specific code from another source they are sitting on shaky ground, I do not care if it is open source or not or even if it was copyrighted or not. This is a problem in the programmer world most see no value in the code and they tend to treat it that way all the time.

  • Reply 49 of 70
    maestro64maestro64 Posts: 5,043member


     


    Quote:

    Originally Posted by stelligent View Post


     


     


    There are two fundamental misunderstandings in your perspective.  First of all, we are talking about reusing one's own code, not plagiarizing (although plagiarism is rampant too).  Now, arguably, that's still illegal (well, perhaps there is no argument about that) if you develop code on someone's payroll.  


     


    Second, programmers do not need any lesson here.  It's a matter of practicality.  Reality is that the software industry simply CANNOT function with code recycling. It's an unspoken but universal practice.  Some try to as ethical as possible and take care to reuse an algorithm but not the code.  Some change the variable names, etc.  Sometimes, when you have to deliver something functional in 24 hrs, you just copy and paste, and fix the copyright problem later.  


     


    Do you honestly believe there are that many people who can produce 1000 lines of original code day in day out?


     


    Do you honestly believe that there are an infinite number of ways to code certain fundamental functions?


     


    How do you think full-featured apps and websites can be developed so fast?


     


    Many experienced programmers have code catalogues.  There are even programs that recycle code automatically (with basic changes). 


     


     


     


     



    Here is the issue as I pointed out before, if you work for company, you do not own the code, you never did and never will, it is the sole property of your employer, unless they turn it over to you.


     


    Your correct they is not an infinite way of writes code to do the exact same thing. However, if you can show you wrote it yourself and have no exposure to code write by others they it will be mute point. This is why many companies will do what they call a clean room development. They do not hire people form a competitors or hire anyone with a particular background. They take these "clean people" have them go offer an develop a competing product. If they get challenge they can show they did it all on there own with no influence from a competitor.


     


    This actually happen to apple back in the early 90, they developed a clean room mac clone and when Apple went after them they lost, because they showed they did without copying anything from Apple including the ROMs.


     

  • Reply 50 of 70
    nhtnht Posts: 4,522member


     


    Quote:

    Originally Posted by stelligent View Post


     


    I am confounded by such a statement coming from a (self-professed) professional programmer.  Even before the days of object-oriented programming, code reuse (templates, libraries, functions, procedures, etc.) was a common and necessary practice.  It is all the more the case now.  And please don't tell me you're superior to the Google programmers.


     


    For Chrissakes, they even teach comp sci students how to write reusable code. You are not a programmer if you don't do it. Simple as that.



     


    Your code catalog:  code you've saved from old projects...


     


    My code catalog:  Apache, github, java.net, java2s, stackoverflow, sourceforge, codeproject, google code...


     


    Your reuse:  Need a REST interface?  Lift it from an old project.  Need DB scaffolding?  Lift it from an old project.  Etc.


     


    My reuse:  Need a REST interface?  Use Restlet, Jersey or RestSharp.  Need DB scaffolding?  Use Hibernate or nHibernate.  Etc.


     


    Who likely has more code to reuse?  


     


    Which code catalog is likely to contain better code?  Which code catalog is likely to contain UP TO DATE code?


     


    I've seen a lot of "sub-optimal" code being "reused".  Code you look at and think "this was not very good practice in 2002.  It sure as hell isn't good practice in 2012".  Code you look at and think "Jesus, WTF didn't they just use XXX from Apache like any other sane person and not some private library of their own that has no documentation, works like ass because its using constructs from 10 years ago, isn't thread safe and just plain sucks overall.  This damn code is older than my kid and he can probably write "Hello World" now."


     


    I used to have a "code catalog"...back when I coded C and FORTRAN. 


     


    Today, I have the internet.  Maybe you've heard of it?


     


    Anything generic enough to be part of your personal toolbox/catalog is out there.  Anything NOT generic enough is valuable IP owned by your employer that they paid you to produce.  If you ask to open source it (either as a code snippet on your blog, an article/answer on stackoverflow/ or as a formal part of a FOSS project) and they agree then great.  Then it's not just part of your toolbox but everyone's.  If not and you want to use it on your next job...that's up to you.  It's just like piracy.  Call it what you want, justify it how you like, I don't really care. What you do is not my concern. I simply choose not to and I don't suffer not doing so given the amount of code out there today.


     


    Besides, code reuse is nothing compared to pattern reuse in time savings.


     


    Knowing how to solve problems is what makes a craftsman.  Not that whether or not he is "reusing" his previous employer's tools for the next job. 

  • Reply 51 of 70
    lightknightlightknight Posts: 2,312member


     


    Quote:

    Originally Posted by maestro64 View Post


     


    This is why many companies will do what they call a clean room development. They do not hire people form a competitors or hire anyone with a particular background. They take these "clean people" have them go offer an develop a competing product. If they get challenge they can show they did it all on there own with no influence from a competitor.



     


    From my understanding, we were basically arguing that people who rewrite code that does the same thing may end up with identical code than they had before. Are you saying that programmers should not be allowed to switch jobs ever, since they may "rewrite the same code"? 


     


    After a stint at Apple/Microsoft/Google/IBM/Bank of America, you go and be a sailorman?


     


    While it would vastly increase the amount of sailormen, I doubt this is what you meant...

  • Reply 52 of 70
    nhtnht Posts: 4,522member


     


    Quote:

    Originally Posted by lightknight View Post


     


    From my understanding, we were basically arguing that people who rewrite code that does the same thing may end up with identical code than they had before. Are you saying that programmers should not be allowed to switch jobs ever, since they may "rewrite the same code"? 


     


    After a stint at Apple/Microsoft/Google/IBM/Bank of America, you go and be a sailorman?


     


    While it would vastly increase the amount of sailormen, I doubt this is what you meant...



     


    Rewriting is one thing.  Copying is another.  Seems like Bloch knows it's not a good thing to do:


     


    Quote:


    "I don't recall," Bloch testified. However, he suggested in a deposition from 2011 that the fact that the code is in the same order and has the same name is "a strong indicator that it is likely" that he did copy the code. Bloch went on to say that he doesn't remember accessing copyrighted code, but that it might have happened.


     


    "Under the circumstances I wrote the code, yes, I'm perfectly willing to believe it," he said. "If I did, it was a mistake, and I'm sorry I did it." 




     


    9 lines isn't a lot but you don't accidentally cut and paste just 9 lines.  Who does that without doing more?

  • Reply 53 of 70
    maestro64maestro64 Posts: 5,043member


     


    Quote:

    Originally Posted by lightknight View Post


    From my understanding, we were basically arguing that people who rewrite code that does the same thing may end up with identical code than they had before. Are you saying that programmers should not be allowed to switch jobs ever, since they may "rewrite the same code"? 


     


    After a stint at Apple/Microsoft/Google/IBM/Bank of America, you go and be a sailorman?


     


    While it would vastly increase the amount of sailormen, I doubt this is what you meant...



     




    Actually what I am saying is your not allowed to walk out the door with a CD/DVD filled with a copy or source code, library and the such that you developred as part of being paid for working for a company. The problem is many companies are lacks in their protection of their code. However, I know some companies as soon as you tell the company you are leaving they will locked you out of your system and the company network so you can not take anything with you.

  • Reply 54 of 70
    gatorguygatorguy Posts: 24,213member


    Somewhat related, Oracle has lost the GSA's business after a $200M False-Claims Act settlement where they were accused of billing the government for 10's of millions in falsified charges.


     


    http://legaltimes.typepad.com/blt/2012/04/six-months-after-suit-between-them-settles-gsa-ends-contract-with-oracle.html

  • Reply 55 of 70
    gatorguygatorguy Posts: 24,213member


    An interesting fact that I hadn't seen mentioned. There's been a lot of talk that Google copied numerous complete files and who knows how many lines of code belonging to Oracle. Not said was that Oracle designed a program to ferret out all that copying and gosh by golly, it didn't exist. The only thing they were able to find were 9 lines in a single file (rangeCheck) out of millions. Oracle isn't claiming Google copied Java code any longer. They're not even saying the 37 API's frequently mentioned are copies. It's more to the effect Google used the organization of those API's when they created the ones for Android. Oracle's IP arguments have changed significantly from the original claims suggesting multi-billions in damages.


     


    From Ars:


    Oracle is "not even in the ballpark" when it comes to proving similarities between the 37 Java APIs it claims ownership of, and Android's own APIs. And, he emphasized, Oracle isn't accusing Google of copying code—because it can't. After designing a computer program to analyze Android's millions of lines of code, Oracle found only nine lines of copied code in a function called rangeCheck(). That code, accidentally inserted by a Google engineer who testified last week, has been removed from all current versions of Android. "Other than the nine lines of code in rangecheck, everything in Android is original," said Van Nest—created entirely by Google engineers, or with Apache open source code.

     


    In a few days we'll know how the jury views it. Microsoft, Amazon and several others are interested in finding whether coding language is copyrightable. The results will affect a whole lot of companies other than Google and Oracle.

  • Reply 56 of 70
    gatorguygatorguy Posts: 24,213member


    The jury in the Google/Oracle spat may be close to reaching a decision, with questions for the Judge on fair use. Oracle objected to the jury considering all the evidence presented including that which showed other uses of Java for which no license was required nor asked. According to Oracle the jury should only be concerned with Google's use, not evidence of permission granted to others sans licensing. That's an interesting objection: Don't allow the jury to consider all the evidence, instead only certain parts.


     


    "Oracle attorney Michael Jacobs insisted that the jury not consider other companies' use of Java code, while Google's lead attorney Robert Van Nest countered that the jury should be allowed to consider "any and all evidence in record."




    "There are two ways to look at copyright infringement - copy and substantial similarity," Van Nest (Google) said. "Apache's code was open source. Since the code is different in Android, it's clear it didn't come from Sun's source but from Apache. License or public dedication is for the judge to decide. Availability in regard to deciding whether infringement took place is for the jury to decide."

         


    Jacobs fired back: "If they copied through Apache, that doesn't excuse their copying. So it's not proper to look at all evidence in the record."

      


    Van Nest countered: "It's wrong to tell the jury they can't consider that Google copied from open source. All Oracle proved was similarity. The standard is comparing 37 to 166 [APIs]. It's wrong to tell the jury that can't look at all the evidence to determine infringement."


     


    http://www.courthousenews.com/2012/05/01/46138.htm

     

  • Reply 57 of 70
    gatorguygatorguy Posts: 24,213member


    This is a ruling handed down from the High Court (EU) yesterday on software and whether it can be copyrighted:


     


    Article 1(2) of Council Directive 91/250/EEC of 14 May 1991 on the legal protection of computer programs must be interpreted as meaning that neither the functionality of a computer program nor the programming language and the format of data files used in a computer program in order to exploit certain of its functions constitute a form of expression of that program and, as such, are not protected by copyright in computer programs for the purposes of that directive.


    http://curia.europa.eu/juris/document/document.jsf?text=&docid=122362&pageIndex=0&doclang=EN&mode=lst&dir=&occ=first&part=1&cid=130587


     


    It went on to say:


    "To accept that the functionality of a computer program can be protected by copyright would amount to making it possible to monopolise ideas, to the detriment of technological progress and industrial development."


    "In this respect, the Court takes the view that, in the present case, the keywords, syntax, commands and combinations of commands, options, defaults and iterations consist of words, figures or mathematical concepts, considered in isolation, are not, as such, an intellectual creation of the author of that program."


     


    In other words had Oracle filed copyright claims in Europe it would have been dead on arrival. Proof again that North America and Europe have different standards on software protections.


     


    EDIT: A link to the easier to read press release is here:


    http://curia.europa.eu/jcms/upload/docs/application/pdf/2012-05/cp120053en.pdf

  • Reply 58 of 70
    gatorguygatorguy Posts: 24,213member


    Based purely on a question asked by the jury, they may rule (at least in part) in favor of Oracle.

  • Reply 59 of 70
    gatorguygatorguy Posts: 24,213member


    It now appears the jury may be unable to render a verdict. "Deadlocked " is the latest rumor. In the meantime Judge Alsop has asked both Google and Apple to submit answers to some questions he has put forth after having time to read the opinion of the EU High court from yesterday that API's are not copyrightable in the first place. 

     


    This certainly isn't the slam dunk case that some prognosticators predicted. Mr Mueller may end up disappointed. FWIW he told me today that Google's use of JAVA was reckless infringement, and apparently he's no fan of the EU High Court's opinion on software copyrights going by today's blog. A safe guess he's no longer a FOSS advocate.


     


    Ars also has a good synopsis of where things stand as of tonight.


    http://arstechnica.com/tech-policy/news/2012/05/oracle-google-judge-asks-for-comment-on-eu-court-ruling.ars


     


    Google may well come out on the losing end when all is done, but it's clearly not easy and obvious that Google is in the wrong. 


     


    EDIT: Hill60, the Johnson Controls case I see you copy from FOSSPatents doesn't say what you (or he) thinks it does. It makes no ruling on whether API's can be copyrighted, and in addition was super-ceded by a case between Feist Publications and Rural Telephone Service. Florian just forgot to mention that one.


    http://www.law.cornell.edu/copyright/cases/499_US_340.htm


     


    In any case whether API can be copyrighted to begin with is just what Judge Alsop may have to rule on, something that hasn't ever been determined in a US court AFAIK.

  • Reply 60 of 70
    enourenour Posts: 1member


    How can he not remember?

Sign In or Register to comment.