decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Oracle v. Google Trial Transcript - Day Three, April 18, 2012, Larry Page on the Stand ~pj
Friday, September 28 2012 @ 11:46 AM EDT

We have the transcript of day three [PDF] of the Oracle v. Google trial done as text for you. The day opens with the judge, the Hon. William Alsup, explaining to the lawyers, before the jury enters, that he's heard from his clerk that somebody is saying he won't allow people to walk in and out of the courtroom. He explains that he's not that strict, but he doesn't want it happening a lot, because it's a distraction for the jury, and in explaining all this, he says something that probably gives us some insight into how he was already viewing the trial:
It's a big distraction and the jury will look over there and lose track of the excellent cross-examination that the lawyers are trying to do, or for that matter the direct examination.
At that point in the trial, the cross-examination was being done by Google's lawyers. So I think Judge Alsup, like me, was very impressed by Google's Robert Van Nest, who on day two cross-examined Larry Ellison until Mr. Ellison looked like a whupped puppy. This judge used to be a trial lawyer, so he would have an expert eye. All the lawyers before him were skillful, without a doubt. This is not to diminish them at all. But Van Nest is in a category all his own.

As the introductory discussion continues, we get a clue as to exactly why red flags went off when we read that the foreman in the Apple v. Samsung case persuaded the rest of the jury to rule for Apple when he took some source code and showed it to them as "proof" that Samsung's prior art was invalid.

Here's the discussion, and see if you can pick it out:

THE COURT: What's next?

MR. JACOBS: We would like to move into evidence some exhibits that are undisputed, but would rather not take jury time to do this.

THE COURT: How many do you have?

MR. JACOBS: There are a fair number. They are of a type. So we have the copyright registrations and we have the source code for various versions of Java. And I could --

THE COURT: All right. Is there going to be a problem here?

MR. VAN NEST: Yes, there will be.

THE COURT: Give me a heads-up on the problem.

MR. VAN NEST: The heads-up is that we had agreed that most of the copyright registrations could come in.

We were objecting on the source code because that's really not self-explanatory. They should come in with a witness.

Do you see the issue? Source code is not self-explanatory. You need a witness to explain it. But a juror is not a witness. Did he say anything that was different from, contradictory to, or extraneous to the evidence that was provided during the trial? If so, there is a problem, because then he would be setting himself up as an expert witness, and that's not the role of a juror. He did tell the media that he knew how to read source code, so he showed it to the jury and used it to "prove" that the prior art was invalid, based on the belief that because you couldn't run the prior art on Apple's products, or vice versa, it wasn't valid prior art. That's certainly not what any witness said at trial, I'm sure, since that isn't how you determine prior art. But the jury, he said, accepted it as conclusive.

Now, we don't have the transcripts yet from the Apple v. Samsung trial, but when they arrive in December, we'll be able to look at the testimony about the source code and compare it with what the foreman says he told the jury about it. I expect a mismatch, in that he describes it as his "aha" moment, meaning he *thought* of it, not *remembered* it. Yes, jurors can bring their skill and experience into the deliberations; but they can't introduce new evidence into the jury room. That's the no-no that may be in this picture, or more precisely one of them.

Here's something else I wanted to highlight, where we see that this judge didn't just fall off a turnip truck. Oracle's lead attorney, Michael Jacobs, is going down a list of exhibits it wants to submit into evidence based on some earlier depositions, but one of them, exhibit 3, is a surprise to Google's Van Nest. Watch how the judge sorts it out:

MR. JACOBS: Trial Exhibit 3.

THE COURT: Any objection?

MR. VAN NEST: I'm not even sure what it is, your Honor. This is not something I understood was asked for, requested or even mentioned until right now.

MR. JACOBS: That's not correct, your Honor. We emailed this over two days ago and then we reminded Mr. Van Nest's colleagues of this yesterday. There may be an internal communication problem.

THE COURT: So show counsel No. 3. Any objection to No. 3?

MR. VAN NEST: This is a trial exhibit that hasn't been shown to a witness yet.

THE COURT: That's not -- that's not necessarily a basis for -- you have an evidentiary objection?

MR. VAN NEST: I object, your Honor.

THE COURT: It's not in. It's not in. That's enough. If you object, it's going to being done the hard way, through a witness.

Now, I hope you're not doing that just so they will burn up their time.

MR. VAN NEST: I'm absolutely not, your Honor. This was handed me now for the first time. I'm not sure why we're even engaging in this.

THE COURT: We're not going to do it this way, Mr. Jacobs.

I think you and Mr. Van Nest should have a conference on this and not somebody way down, down the totem pole. Something has gotten lost in translation. So we're not going to do it this way. You're going to have to do it through a witness.

All right. What else do you have?

He's more or less indicating to Oracle's lawyer that he figures that Jacobs told the truth -- they did contact somebody on Google's team, but not Van Nest or anybody who would have told Van Nest. That way Oracle could say it should go in without challenge, and when Google would be left flat-footed claiming never to have known about it earlier, Oracle could say truthfully that they did tell somebody on the Google team. But when Van Nest tells the judge that he never heard about it, the judge believed him (which is why credibility does matter in a courtroom -- that is Van Nest's secret sauce), and the judge tells Jacobs in shorthand something like this: "I think what you did is call an underling lawyer or a paralegal or somebody you figured would not give Van Nest any advance warning. Then you could later use the exhibit in a way that would totally surprise Google in a context they were not expecting, and they'd be unable to counter. And you won't get away with such tricks in the Alsup courtroom." I'm just guessing here, and it's not literally what is said, and I don't know if the judge was right or off-base on what he thought happened, but that's what I understand when I read this.

And then we see exactly when the parties should have realized that this judge, unlike most judges, knew a lot about software and how to code:

MR. JACOBS: Then you asked for a definition of a method declaration.

THE COURT: I think I know that now, but you go ahead and tell me.

Can I say it in my own words and then you correct it?

MR. JACOBS: Sure.

THE COURT: All right. I'm going to be more generic and not in Java per se, but then you can correct it.

In any programming language the program needs to know when a subroutine is being called out or identified. So if you have a subroutine, for example, that will return the greater of one or two things, you need to have a -- you need to declare that it exists so that the program will be on the look-out for that, or the computer will be on the look-out for that subroutine.

But in addition, you need to say where it starts and stops so that when the subroutine is called up, it will -- the computer goes to that point, does the routine. It says end sub. Then it goes back to where it was in the program. And so the declaring of the subroutine is what we're talking about.

Now, that is a concept I understand. It may not be exactly -- it may not even be close to what you're talking about, but tell me how close or far off that is?

MR. JACOBS: I think it's a different use of the term perhaps. In the world of this dispute, a method declaration is a statement that defines an API element. So the declarations for the different kinds of elements, packages, classes, interfaces, fields and methods are done differently, but they all include the name of the element and define many of the relationships the element has to other API elements.

The method declaration includes the name of the method, the type returned by the method, the parameters of the method, if any, each of which have a type and a name. And optionally a method declaration can begin with a modifier, like public or static, and may be followed by the exceptions that the method shows. And then in the implementation the declaration is followed by the Java code that carries out the function of the method, even if the function is literally to do nothing.

I think that's a different meaning of declaration than your Honor is --

THE COURT: That's a more -- okay. I don't think it's necessarily different from what I said, but it's better than what I said....

b>THE COURT: Okay.

Mr. Van Nest, did you want to weigh in on any of these issues?

MR. VAN NEST: Yes, your Honor. Mr. Kwun will do so.

THE COURT: Very well.

MR.KWUN: Good morning, your Honor.

THE COURT: Good morning.

MR. KWUN: So I think, first of all, when they were talking about a method declaration and they said that it defines the elements of the API, a method declaration defines a method. That's why it's called a method declaration. I've never heard the term used with other elements, but -- or at least not often, but I suppose you could have an interface declaration, which would be a declaration for an interface or --

THE COURT: You could define an array, couldn't you.

MR. KWUN: You could have an array -- I don't know that I've ever heard it referred to as an array declaration, but I suppose that usage would probably be understood.

But if it's a method declaration, then it has to be a method because that's why it's called a method declaration.

On this last point, were the Court to conclude that the structure of the APIs is copyrightable, there is still a question of whether or not there is infringement and at that point there would need to be a comparison of the works; not just the material taken, but the works. And depending on what the Court said was copyrightable, and there were what was allegedly copied, that comparison would be different.

If the Court said that almost nothing was copyrightable, but something was, then there would be a very tightly constrained range of protectable expression, which under Apple v Microsoft would require a virtual identity test as opposed to more substantial similarities.

So I think it overstates things to say that there would be no jury question in that instance.

If the Court were to find that the material is not protectable, then there would be no jury question because there would be nothing protectable that was copied.

THE COURT: Any other comments?

MR. KWUN: No other comments.

THE COURT: Do you agree with the 4500 number?

MR. KWUN: I think that number is in the ballpark.

THE COURT: So have a seat. Thank you.

One possibility here. Let me preface this by beginning, I do not know the answer and I'm going to listen carefully to the evidence because I think the evidence will be highly illuminating on this, but I don't know whether at the end of the evidence the Court is going to say the SSO is -- by Structure Sequence Organization is protectable or not protectable.

Now, one possibility is to defer that decision and let the jury answer the question; go to the jury as if it is protectable, reserving on that issue so that even if I were to say later it was not protectable, at least we would have a record that could go up to the Court of Appeals and give the Court of Appeals the options to -- you know, both options as opposed to having to retry the case.

So I want you to know I'm thinking about that, that possibility, but right now I haven't learned enough evidence here to give you a decision on whether or not the SSO is in and of itself copyrightable.

And in the end, that is pretty much what he did, and he determined that the Java APIs' SSO was not protectable. But don't you think if you were in the classroom that day that you would have been saying to yourself, "I suspect this judge can code"? I would, just by his expressions.

So it should not have come as a total surprise to the lawyers later when he revealed it. But I'll bet it did to some of them, the ones that are not so technically inclined. I'm sure it was not a surprise to Mr. Kwun, who Van Nest was wise enough to have in the room and to ask to speak for the team on the technical matter.

And I wanted to highlight something that the judge tells the jury about why lawyers don't talk to them during the trial even if they bump into each other in the hallways, because if you attend the trials for Groklaw, you need to act just like the lawyers, and here is the judge's explanation:

THE COURT: Good. Let me go over a few things and then we're going to pick right up with the witness that we had on the stand, but I want to first say that the -- to apologize for something that is not really an apology, but an explanation.

In the course of a trial you will undoubtedly -- especially one this long -- run into the lawyers in the elevator maybe some day or at the coffee stand on the second floor, or maybe the 10th floor. And you will note probably that they are -- they don't say much. They say maybe "good morning" and that's it. Period. And you might think, "Boy, that's such a rude lawyer. That guy, he wouldn't even talk to me about the weather."

Well, actually they are not being rude. They are being very respectful of you and the important job that you have and showing you respect by making it clear that they're not trying to curry any favor with you by chatting you up. You understand that? So if you do run into them, which they -- they actually go out of their way to try to avoid you.

But they do it out of reasons of professionalism and respect for the process. And I say this to all juries so that they understand there is no rudeness involved at all. It's exactly the opposite. It's respect for you and the job you've got to do. So that's point number one.

It's important to follow those instructions, because if the jury is seen talking with anyone other than the person escorting them back and forth, it can raise a serious problem for the trial.

Finally, I wanted to show you something on the topic of the squishiness of the law, as Eben Moglen called it once. He explained to a group at a conference, working from membery here, that the law isn't precise, like writing software. Software is precise, where even one missing semi-colon can throw everything off. So coders become super precise and detail-oriented, and there are reliable rules that software follows and you have to stick to those rules or at least some determined rules for it to work.

The law is more squishy, and here's an example:

MR. BOIES: Your Honor, with respect to what Mr. Van Nest is talking about, there is one exhibit that I think it judicious just to raise with the Court in terms of impeachment, and that is Exhibit 10.

THE COURT: Show it to counsel and then show it to me. Is this to be used with Mr. Page?

MR. BOIES: Yes, your Honor.

(Whereupon, document was tendered to the Court.)

MR. BOIES: This is the famous Lindholm email that is not signed by Mr. Page, but it is a party admission and it does directly contradict what Mr. Page said on the witness stand yesterday.

THE COURT: Which part contradicts it?

MR. BOIES: Where he says that he didn't know Mr. Lindholm and didn't give him any instructions.

What Mr. Page says is what we have been actually asked to do by Larry and Sergei, which obviously refers to --

THE COURT: Remind me. Yesterday he said he did not know who Mr. Lindholm was.

MR. BOIES: Yes.

THE COURT: So what's the problem with -- this document is clearly going to come into evidence eventually.

What's the problem with letting him show this to him now? And, "This email says that Larry asked him to do this, and is that true or not." What's wrong with that?

MR. VAN NEST: Two things, your Honor. It doesn't meet your criteria for impeachment. It's not a statement by Mr. Page or adopted by him, so it falls outside that.

I think it also possibly launches into some privileged areas, but I'm not sure what the question would be.

I have no problem with Mr. Boies asking Mr. Page whether he remembers giving Mr. Lindholm any instructions, but obviously Mr. Page didn't author this. He's not a recipient of it. I think this would be far outside what you would normally allow for impeachment, certainly.

Again, it was disclosed after, after he was on the stand. Not just late, but after he was on the stand.

THE COURT: Here is the ruling. Look. I'm going to let Mr. Boies use this as follows. This document is clearly going to come into evidence. The Court of Appeals for the Federal Circuit has said it's not privileged and every judge that's ever looked at it says it's not privileged. So it's going to come into evidence in due course.

It does refer to the witness on the stand and it's a fair question, whether or not he will stand by what somebody else in the company says he did. So I'm going to let him -- I'm going to let Mr. Boies ask that question. Now, what I don't want you to do is to get into an argumentative mode over it. If he says, "No, I don't know who Mr. Lindholm is. I never heard of him. This is a forgery. He doesn't even work for the company," whatever. Whatever the answer is. Let's not get into an argument with him over it.

You have a limited latitude to bring this up, but the problem is it isn't real impeachment because he didn't sign this document. But since it refers to him, and somebody else in the company is probably going to come in and say he did, in fact, ask us to do this -- we don't know even that really for sure, but we -- there is enough good faith evidence here in this email to say that that probably happened that I'm going to let you ask a limited number of questions on the subject of did he ask Mr. Lindholm to do this. I think that's -- that's a legitimate thing.

So you can show No. 10 to the jury, but it is not actually in evidence yet because he's -- he presumably never saw this.

All right?

MR. VAN NEST: Your Honor --

MR. BOIES: Your Honor, I just want to clarify one thing. We did not give these documents specifically for Mr. Page, but this was one of our 10 documents that we gave to the Court. And we did notify them that we were going to use these documents, and we had a misunderstanding on our side as to whether or not those documents carried forward witness-to-witness. It was our intention to use these 10 documents with every one of the witnesses. And there was a miscommunication --

THE COURT: I think you've got to tell them witness-by-witness.

MR. BOIES: Yes, yes.

THE COURT: But this document is the -- it's one of the top 10 documents in the whole case. There can't be any prejudice.

I know Mr. Van Nest has been thinking about this document. There is no -- there's no prejudice to using it in the limited way that I've said.

Yes, Mr. Van Nest. What were you going to say?

MR. VAN NEST: My only request, your Honor, is, again, if you're going to allow the examination, that's fine; but I really don't think this should be published to the jury with the witness if the witness says, "I've not seen it. I don't know it."

What he said yesterday is he thinks Mr. Lindholm works for the company, but he doesn't have a clear recollection of him.

THE COURT: The thing is Mr. Lindholm is going to come in and put this into evidence. Then we have to bring back Mr. Page to go over it all over again. And I have the discretion to order the method of proof, and that's a cumbersome method of proof. There is no doubt this is going to come in.

I'm going to be let it be shown to the jury. But when Mr. Lindholm comes or somebody else comes, you need to -- you need to get it into evidence then.

All right?

MR. BOIES: Yes.

I know exactly what you are thinking. Why didn't Van Nest prevail? The judge defined the rules, and then he seemingly broke them. What's up with that?

Actually, the judge is relying on another rule, and he has discretion to decide certain things, like the method of proof. And here, when he says that he knows Mr. Lindholm is going to come in and put this into evidence, he means that at that point the exhibit is definitely going to be accepted as evidence. So rather than have Larry Page testify and then bring him back after Mr. Lindholm testifies, then scheduled for after Page, to again put the exhibit into evidence for use with Page, the judge says he has discretion to order the method of proof, and since the exhibit was surely going to come in, he decided that it could be shown to the jury with Page, but later Oracle would have to get it into evidence with Lindholm.

The reason all this matters is that there are different rules for different types of use. You can use a document to impeach a witness, for example, if you think he lied, and there are rules for what you can and can't do in that context. In a different context, in direct examination, for example, there are different rules. Here, the judge tells Boies that he can ask Page about the exhibit, but in a very limited way. He can ask, and whatever the answer is, that's as far as he can take it. You may think this is all a little silly, but note this part, where the judge says to Boies, "You have a limited latitude to bring this up, but the problem is it isn't real impeachment because he didn't sign this document", he means this: in a trial you can't just walk in with a document without proving some things about it. With Mr. Page, he had said in his deposition that he didn't know Lindholm, didn't remember him, and he didn't sign this document that says Larry and Sergei asked that Lindholm do such and such, so it doesn't prove that Page really did know him. That is what the judge is pointing out, even though he's allowing the exhibit to be used. And he says, "So you can show No. 10 to the jury, but it is not actually in evidence yet because he's -- he presumably never saw this."

Later in the transcript, Larry Page takes the stand, and indeed Boies shows Exhibit 10 to him and asks him about it, and let's see how it goes:

Q. Right. And do you remember telling me yesterday that you didn't recall Mr. Tim Lindholm?

A. I said I -- you know, I believed based on this that it's somebody who works for us, but I didn't recall him particularly, no.

Q. And that you did not recall giving him any directions; do you recall that?

A. Yeah. No, I didn't recall that.

Q. Now, the "Tim" that is referenced here in this email that you received in 2005, that was Mr. Tim Lindholm, correct?

A. I mean, I'm not sure which Tim it would be.

Q. Did you know at the time you received this email?

A. I mean, I don't know that I read this carefully. I don't recall.

Q. Let me ask you to look at Trial Exhibit 6.

MR. BOIES: May I approach, your Honor?

THE COURT: You may.

(Whereupon, document was tendered to the witness.)

BY PLAINTIFF'S ATTORNEY:

Q. Is this a document that you have seen before, sir?

(Brief pause.)

A. I think so.

MR. BOIES: Your Honor, I would offer Trial Exhibit 6.

THE COURT: Any objection?

MR. VAN NEST: No objection, your Honor.

THE COURT: 6 is received.

(Trial Exhibit 6 received in evidence)

MR. BOIES: May I publish the first page?

THE COURT: Yes.

(Document displayed)

BY MR. BOIES:

Q. This is dated September 6, 2005; correct sir? And it's from Mr. Rubin to the EMG. That includes you; correct, sir?

A. That's the email here.

Q. And a copy to Mr. Tim Lindholm, correct?

A. That's on the email, yeah.

Q. And if you turn to Page 4 of 25 of the exhibit...

(Document displayed)

Q. ...this shows that this is a report on project Android as of August of 2005; correct, sir?

A. Which page? Page 5, you said?

Q. August of 2005.

THE COURT: How far into the document?

MR. BOIES: Page 4 of 25. The pages are numbered at the bottom left-hand corner.

A. On the first page it says August 2005, Page 4 -- oh, I see. I'm looking at different numbers. There are two sets of page numbers.

BY MR. BOIES:

Q. Are we on the same page now?

A. Yes.

Q. Good. Now, if you turn to Page 7 of 25...

(Document displayed)

Q. ...you see Mr. Lindholm listed there as one of the project advisors?

A. Yeah, I see that.

Q. Let me now ask you to look at Trial Exhibit 10, which is not in evidence.

(Whereupon, document was tendered to the witness.)

MR. BOIES: Pursuant to the discussion with counsel, I would ask to publish to the jury at this time.

THE COURT: This exhibit is not yet in evidence, but because the witness who will sponsor this is not yet here and the Court and counsel have gone over this, we will allow this document to be shown to the jury, subject to it being connected up.

By that I mean that Oracle gets it into evidence through some other witness, but for now the jury will be allowed to see it so that they can follow the testimony. So Exhibit No. 10 not yet in evidence, but it will be shown to the jury.

(Document displayed)

BY MR. BOIES:

Q. Now, this is an email from Mr. Lindholm to Mr. Rubin with a copy to Mr. Grove dated August 6, 2010. Have you ever seen this document before, sir?

A. I don't recall.

Q. Now, I would like to direct your attention to the second paragraph that says:

"What we've actually been asked to do (by Larry and Sergei)..."
Do you see that?

A. Yeah.

Q. That's a reference to you as Larry, and to Sergey as the other cofounder of Google; correct, sir?

A. Yeah. Sergey is misspelled but, yeah.

(Laughter)

Q. It says.

"What we've been asked to do by Larry and Sergey is investigate what technical alternatives exist to Java for Android Android and Chrome."
Do you see that?

A. I can read the document, yes.

Q. Does that refresh your recollection that you knew who Mr. Lindholm was and, in fact, asked him to investigate what technical alternatives exited to Java for Android in or about August of 2010?

A. No. I mean, it doesn't refresh my recollection. Sounds like Tim was somebody who was assigned to do this, probably by Mr. Rubin, I would guess.

And that was the end of that. Page doesn't know every employee at Google, and Rubin handled it. And did you notice that Page points out that Sergei's name is misspelled? That's significant, and it was important, and in a way predictable, that Page would notice that, being a geek. But the significance is that Page knows how to spell his friend and partner's name. He obviously didn't send this email.

Yes, software is more predictable than the law, and in that sense the law is more squishy, but there are still rules to the law. A lot of them. But it's more like chess, where there are rules but a lot of different ways to play them out. That's why I always say the law is like chess, but with people.

And judge's have wide lattitude to make pragmatic decisions. And of course, sometimes those decisions end up being challenged on appeal, as we're now watching play out in the Apple v. Samsung case, where Samsung is challenging some of the decisions that the court made about which exhibits could and could not be used.

One other thing that Mark Webbink noticed in the cross examination of Oracle's expert, Mr. Scriven, by Google lawyer Daniel Purcell:

Q. And if you're taking an application that was written for Java SE, you wouldn't be able to run it on a smart phone that's running Java ME; would you?

A. You would not. However, today smart phones actually are capable of running Java SE, and so phone manufacturers and customers are not interested in Java ME on smart phones anymore.

Oracle's own expert witness and employee says no one is using ME anymore because the phones are powerful enough to support SE, and so customers aren't interested in a JavaME phone.

And with that, enjoy the transcript, and if you notice anything of interest I failed to highlight, please do so in your comments, because your comments are incredibly helpful, in that you do notice fine points and details that nongeeks might miss:

Pages 430 - 647

UNITED STATES DISTRICT COURT
NORTHERN DISTRICT OF CALIFORNIA
BEFORE THE HONORABLE WILLIAM H. ALSUP

ORACLE AMERICA, INC.,
Plaintiff,
VS.
GOOGLE, INC.,
Defendant.

No. C 10-3561 WHA

San Francisco, California
April 18, 2012

TRANSCRIPT OF JURY TRIAL PROCEEDINGS

APPEARANCES:

For Plaintiff:
MORRISON & FOERSTER
[address]
BY: MICHAEL A. JACOBS, ESQUIRE
KENNETH A. KUWAYTI, ESQUIRE
MARC DAVID PETERS, ESQUIRE
DANIEL P. MUINO, ESQUIRE

BOIES, SCHILLER & FLEXNER
[address]
BY: DAVID BOIES, ESQUIRE
ALANNA RUTHERFORD, ESQUIRE

(Appearances continued on next page)

Reported By: Katherine Powell Sullivan, RPR, CRR, CSR #5812
Debra L. Pas, RMR, CRR, CSR #11916
Official Reporters - U.S. District Court

430


APPEARANCES (CONTINUED):

For Plaintiff:
BOIES, SCHILLER & FLEXNER
[address]
BY: WILLIAM FRED NORTON, ESQUIRE
STEVEN C. HOLTZMAN, ESQUIRE

ORACLE AMERICA, INC.
[address]
BY: ANDREW C. TEMKIN, CORPORATE COUNSEL
DORIAN DALEY, GENERAL COUNSEL

For Defendant:
KEKER & VAN NEST
[address]
BY: ROBERT ADDY VAN NEST, ESQUIRE
CHRISTA MARTINE ANDERSON, ESQUIRE
DANIEL PURCELL, ESQUIRE
MICHAEL S. KWUN, ESQUIRE

KING & SPALDING LLP
[address]
BY: BRUCE W. BABER, ESQUIRE

GOOGLE, INC.
[address]
BY: RENNY HWANG, LITIGATION COUNSEL

For Dr. Kearl:
FARELLA BRAUN & MARTEL LLP
[address]
BY: JOHN L. COOPER, ESQUIRE

Also Present:
SAFRA CATZ, President and CFO
Oracle Corporate Representative

CATHERINE LACAVERA
Google Corporate Representative

_ _ _

431


P R O C E E D I N G S

2 APRIL 18, 2012

7:28 a.m.

(Proceedings held in open court, outside the presence and hearing of the jury.)

THE COURT: Shall we start?

MR. VAN NEST: Good morning, your Honor.

THE COURT: How is everybody?

MR. VAN NEST: Just fine.

THE COURT: Getting plenty of sleep?

(Laughter.)

MR. JACOBS: As long as I stay on New York time.

THE COURT: I know trial is brute work. I don't think the press understands how hard it is to try a case if you're the lawyer. You probably get about three hours of sleep a night, maybe not even that much.

So I may not seem like it, but as an old trial lawyer myself I'm sympathetic.

All right. For the benefit of the press, somebody yesterday thought that I was saying that you can't come in and out of the courtroom. At least that's what my excellent Clerk told me. I don't go quite that far. I don't like it when members of the press or the public are going in and out of that door a lot, because think about it. It's a big distraction and the jury will look over there and lose track of the excellent

432


cross-examination that the lawyers are trying to do, or for that matter the direct examination.

So I discourage you from doing it, but I'm not going to say you can't. If you want to go in and out okay. We'll try it and see how it goes, but if it gets out of control, then we'll have to deal with it. So please be mindful of the need for everyone in the public seating to be courteous with these lawyers and not distract from their opportunity to make points with witnesses and so forth.

So the CSO's will please understand that I'm not saying people can't come in and out. I like to see it happen at the breaks, natural breaks, like at the end of a direct examination or at the end of a cross, but I won't say you can't come in in the middle. However, if it becomes a problem, I'm going to adjust that.

With respect to the key pads, it is important that it be absolutely silent and no noise out there. I think -- my own observation is that, with one exception, all of you are doing a great job on that and I appreciate it. And I know the lawyers do, too. All right. So there we are on that piece.

Any issues the lawyers want to bring up today?

MR. JACOBS: A few items, your Honor.

First of all, just to note, we have provided I believe, your staff has a copy of our deposition designations of Larry Page, as the Court has requested, along with a DVD of

433


the video.

THE COURT: I haven't seen that yet. Show me what you're talking about.

(Whereupon, document was tendered to the Court.)

THE COURT: So there is nothing highlighted here, so that indicates that there is no complaints, right?

MR. JACOBS: This is what was actually played in court.

THE COURT: Oh, oh. I'm sorry. I thought you wanted me -- okay. So then this is Trial Exhibit 1041? Is that it? That's what it says here.

MR. JACOBS: That's what it says, yes, sir.

THE COURT: So that will just be made part of the record. Excellent. Thank you for doing it.

(Trial Exhibit 1041 received in evidence)

THE COURT: Dawn, I'll give it back to you.

THE CLERK: Thank you.

(Whereupon, document was tendered to the Clerk.)

THE COURT: What's next?

MR. JACOBS: We would like to move into evidence some exhibits that are undisputed, but would rather not take jury time to do this.

THE COURT: How many do you have?

434


MR. JACOBS: There are a fair number. They are of a type. So we have the copyright registrations and we have the source code for various versions of Java. And I could --

THE COURT: All right. Is there going to be a problem here?

MR. VAN NEST: Yes, there will be.

THE COURT: Give me a heads-up on the problem.

MR. VAN NEST: The heads-up is that we had agreed that most of the copyright registrations could come in.

We were objecting on the source code because that's really not self-explanatory. They should come in with a witness.

There are some numbers listed on the copyright registration list that were inaccurate or is messed up. I thought we were in the process of putting an agreed list together to give to your Honor. I'm happy to meet-and-confer with Mr. Jacobs on it, but the meet-and-confer wasn't complete, as far as I understood.

MR. JACOBS: Just a moment, your Honor. I have a different understanding.

THE COURT: All right.

(Discussion held off the record amongst plaintiff's counsel.)

MR. JACOBS: We will do this offline, your Honor.

THE COURT: If there is an objection, you have to do

435


it the hard way. There is no point in offering a stipulation until it's ready. So that will just have to be done later.

Okay. What else?

MR. JACOBS: There was one exhibit used with Mr. Page's video deposition yesterday that did not come into evidence, was not received into evidence, and that's Exhibit 2.

THE COURT: Well, on the thing that you gave me, that was the translation, it shows that it was -- it did come in.

MR. JACOBS: It was shown in court and then your Honor reminded us of the importance of formally moving them into evidence, and we checked and understood that 2 was in.

THE COURT: All right. Exhibit 1, 2, 7 and 401, correct?

MR. JACOBS: Yes.

THE COURT: All of those I'm going to receive in evidence unless I hear an objection.

MR. VAN NEST: I'm sorry. What's the list, your Honor?

THE COURT: 1, 2, 7 and 401. Those are the ones shown during the deposition of Larry Page.

Any objection? One is already in independently.

MR. VAN NEST: No objection, your Honor.

THE COURT: All of those are received.

(Trial Exhibits 2, 7 and 401 received in evidence)

THE COURT: Now let's do this in the future. Before

436


you show a videotaped deposition, you need to -- and if anything in there is going to be shown to the jury from a document, you need to move it into evidence first. This not after the fact. Okay? That way we will sort this out ahead of time.

Okay. What's next?

MR. JACOBS: There are other documents we would like to move into evidence. They represented party admissions.

THE COURT: How many much those are there?

MR. JACOBS: 17, your Honor.

THE COURT: Let's try the first one, just by exhibit number.

MR. JACOBS: Trial Exhibit 3.

THE COURT: Any objection?

MR. VAN NEST: I'm not even sure what it is, your Honor. This is not something I understood was asked for, requested or even mentioned until right now.

MR. JACOBS: That's not correct, your Honor. We emailed this over two days ago and then we reminded Mr. Van Nest's colleagues of this yesterday. There may be an internal communication problem.

THE COURT: So show counsel No. 3. Any objection to No. 3?

MR. VAN NEST: This is a trial exhibit that hasn't been shown to a witness yet.

437


THE COURT: That's not -- that's not necessarily a basis for -- you have an evidentiary objection?

MR. VAN NEST: I object, your Honor.

THE COURT: It's not in. It's not in. That's enough. If you object, it's going to being done the hard way, through a witness.

Now, I hope you're not doing that just so they will burn up their time.

MR. VAN NEST: I'm absolutely not, your Honor. This was handed me now for the first time. I'm not sure why we're even engaging in this.

THE COURT: We're not going to do it this way, Mr. Jacobs.

I think you and Mr. Van Nest should have a conference on this and not somebody way down, down the totem pole. Something has gotten lost in translation. So we're not going to do it this way. You're going to have to do it through a witness.

All right. What else do you have?

MR. JACOBS: You raised four questions yesterday and have answers or a process for answers, if you would like to go over that now or you would like to defer that.

THE COURT: Go ahead, please. I'm interested in the answers.

MR. JACOBS: So we did a count of the number of

438


methods in the 37 API packages that are copied in Android and it's -- plus or minuses around 4500.

THE COURT: But these are not copied word-for-word, are they?

MR. JACOBS: Yes, they are copied word-for-word.

THE COURT: Word-for-word?

MR. JACOBS: Yes.

THE COURT: I thought they used different source codes.

MR. JACOBS: You asked for the number of methods that are -- I understood that the API elements of the methods are what you were asking about and that's what was copied word-for-word.

THE COURT: You mean, like a declaration?

MR. JACOBS: Correct.

THE COURT: But not the source code that implements it?

MR. JACOBS: Not copied word-for-word, your Honor. We do believe the structure of the source code is reflective of the copying of the method declarations that will be illustrated in the testimony that comes today or tomorrow.

THE COURT: All right, 4500. Okay. Thank you.

MR. JACOBS: Then when Dr. Reinhold testifies, he will explain how these API specifications are developed that will help answer your question about contributions from third

439


parties.

THE COURT: Are there any contributions for third parties or is it all done in-house by Sun?

MR. JACOBS: There are contributions from third parties.

THE COURT: For now that's enough to note.

Okay. What's next.

MR. JACOBS: Then you asked for a definition of a method declaration.

THE COURT: I think I know that now, but you go ahead and tell me.

Can I say it in my own words and then you correct it?

MR. JACOBS: Sure.

THE COURT: All right. I'm going to be more generic and not in Java per se, but then you can correct it.

In any programming language the program needs to know when a subroutine is being called out or identified. So if you have a subroutine, for example, that will return the greater of one or two things, you need to have a -- you need to declare that it exists so that the program will be on the look-out for that, or the computer will be on the look-out for that subroutine.

But in addition, you need to say where it starts and stops so that when the subroutine is called up, it will -- the computer goes to that point, does the routine. It says end

440


sub. Then it goes back to where it was in the program. And so the declaring of the subroutine is what we're talking about.

Now, that is a concept I understand. It may not be exactly -- it may not even be close to what you're talking about, but tell me how close or far off that is?

MR. JACOBS: I think it's a different use of the term perhaps. In the world of this dispute, a method declaration is a statement that defines an API element. So the declarations for the different kinds of elements, packages, classes, interfaces, fields and methods are done differently, but they all include the name of the element and define many of the relationships the element has to other API elements.

The method declaration includes the name of the method, the type returned by the method, the parameters of the method, if any, each of which have a type and a name. And optionally a method declaration can begin with a modifier, like public or static, and may be followed by the exceptions that the method shows. And then in the implementation the declaration is followed by the Java code that carries out the function of the method, even if the function is literally to do nothing.

I think that's a different meaning of declaration than your Honor is --

THE COURT: That's a more -- okay. I don't think it's necessarily different from what I said, but it's better

441


than what I said.

All right. Let's hear from the other side. Do you have any --

MR. JACOBS: There was one more question. You asked about derivative works and whether it's a fact issue.

THE COURT: Correct.

MR. JACOBS: I think we know this -- I don't think we truly know the answer to this question yet because the testimony hasn't come in and the instruction hasn't been given.

So one could imagine a world in this lawsuit still in which there are fact issues about whether the code is a derivative work of the specification.

I don't expect that. And I think that was the thrust of Google's counsel's comments also.

If the instruction is that the selection, structure, arrangement, organization of the application programming interfaces is protectable by copyright because Google is not likely to contest that that -- that that material is copied into the Android class libraries, then there should not be a fact issue whether the class libraries are a derivative work of the specification.

THE COURT: Well, in the ordinary case -- in the ordinary case, let's say, where somebody has a movie script and then the movie company comes out with a similar movie but it's not quite the same, is the issue of derivative work something

442


for the jury or is it for the judge?

MR. JACOBS: It probably starts out with the judge, and then moves to the jury if the judge doesn't resolve it at the level of the extrinsic test. But if -- but so the short answer to your question is: It could well be a question for the jury where the defendant is disputing substantial similarity of the protectable element of the work.

THE COURT: Okay.

Mr. Van Nest, did you want to weigh in on any of these issues?

MR. VAN NEST: Yes, your Honor. Mr. Kwun will do so.

THE COURT: Very well.

MR.KWUN: Good morning, your Honor.

THE COURT: Good morning.

MR. KWUN: So I think, first of all, when they were talking about a method declaration and they said that it defines the elements of the API, a method declaration defines a method. That's why it's called a method declaration. I've never heard the term used with other elements, but -- or at least not often, but I suppose you could have an interface declaration, which would be a declaration for an interface or --

THE COURT: You could define an array, couldn't you.

MR. KWUN: You could have an array -- I don't know that I've ever heard it referred to as an array declaration,

443


but I suppose that usage would probably be understood.

But if it's a method declaration, then it has to be a method because that's why it's called a method declaration.

On this last point, were the Court to conclude that the structure of the APIs is copyrightable, there is still a question of whether or not there is infringement and at that point there would need to be a comparison of the works; not just the material taken, but the works. And depending on what the Court said was copyrightable, and there were what was allegedly copied, that comparison would be different.

If the Court said that almost nothing was copyrightable, but something was, then there would be a very tightly constrained range of protectable expression, which under Apple v Microsoft would require a virtual identity test as opposed to more substantial similarities.

So I think it overstates things to say that there would be no jury question in that instance.

If the Court were to find that the material is not protectable, then there would be no jury question because there would be nothing protectable that was copied.

THE COURT: Any other comments?

MR. KWUN: No other comments.

THE COURT: Do you agree with the 4500 number?

MR. KWUN: I think that number is in the ballpark.

THE COURT: So have a seat. Thank you.

444


One possibility here. Let me preface this by beginning, I do not know the answer and I'm going to listen carefully to the evidence because I think the evidence will be highly illuminating on this, but I don't know whether at the end of the evidence the Court is going to say the SSO is -- by Structure Sequence Organization is protectable or not protectable.

Now, one possibility is to defer that decision and let the jury answer the question; go to the jury as if it is protectable, reserving on that issue so that even if I were to say later it was not protectable, at least we would have a record that could go up to the Court of Appeals and give the Court of Appeals the options to -- you know, both options as opposed to having to retry the case.

So I want you to know I'm thinking about that, that possibility, but right now I haven't learned enough evidence here to give you a decision on whether or not the SSO is in and of itself copyrightable.

I want to come back to something practical for the jury. Would you please come up with a list, I hope it can be one page, of the deposition exhibit numbers. This is too long. This shows you the -- one of the problems with modern computers. You see how big that document is? There are really only four lines on there that make any difference. And what I want you to do is come up with a one-page simple document that

445


has every single translation needed for the entire case where you did not follow my guidelines and you nonetheless marked deposition exhibits out of order.

And so it would say -- I don't know, do it anyway you want. Say, Trial Exhibit 1, Deposition 517, but you can get it all onto one page instead of having this (indicating). particularly confusing document.

You have don't have to give it to them today, but sometime in the next week or so let's come up with a comprehensive omnibus, one-page-fits-all for both sides. Both sides probably have the same problem and we'll give them a handy-dandy cheat sheet that tells them what deposition exhibit is a trial exhibit.

All right. The other thing to do is maybe a Who's Who, a one-page Who's Who of -- they know who the famous people are, but they may not know who the not-so-famous people are and what their position is. And I think that would be a nifty document to give to the jury so they will have that. And I ask you to meet-and-confer and give to the -- come up with an agreed-upon one page, like 10 names from each side, 12 names from each side, something like that.

All right. Anything more before we get started?

MR. BOIES: I have one thing, but go ahead, please.

MR. VAN NEST: We just had two things, your Honor, on witnesses and exhibits. One is just a heads-up.

446


Mr. Boies and I, I think, have worked this out, but we received from the plaintiff last night a list of additional exhibits they wanted to use with Mr. Page. Obviously, they recognized that's late. They agreed to withdraw those. Mr. Boies told me if he intends to use one of those, he'll bring it over and I can see it. We'll confer first.

So there may be a little bit of that if we get into that. I just want to alert the Court to that possible issue.

THE COURT: You can always use it for impeachment, but I do regard impeachment as narrow.

MR. VAN NEST: Right.

THE COURT: It has to be a document authored by or signed by something -- it's not just a broad statement that contradicts the general themes of your case.

MR. VAN NEST: Right.

THE COURT: It has to be a prior inconsistent statement by that witness or close to it. So you could use it for that, but it wouldn't necessarily come into evidence. It would just -- you would just have to do it in the impeachment way.

But if you want to get it into evidence as part of your case-in-chief, then -- now, here is the thing, Mr. Van Nest. You're going to have the same problem in due course. You lawyers ought to cooperate with each other and if you're not really prejudiced, you ought to agree to what Mr. Boies

447


wants to do.

On the other hand, if you were prejudiced, you ought to stand on your rights and insist on the -- so forth. But I know before this trial is over, you're going to be begging me to do exactly what he wants to do and I will remember this moment.

MR. VAN NEST: I'm sure you will, believe me. I think we have worked it out in this instance and I just wanted to alert the Court so that you weren't surprised by whatever meeting-and-conferring pursued.

Mr. Purcell has a comment on Mr. Screven.

MR. PURCELL: Yesterday afternoon they disclosed a demonstrative that they want to use with Mr. Screven today and it's late. They needed to disclose those two days before the witness examination.

THE COURT: Does that mean for the rest of the trial if you're late, you're going to be out of luck?

MR. PURCELL: The rule as I understand it is --

THE COURT: That is the rule.

MR. PURCELL: (Continuing) -- if you want cross exhibits, you have to disclose all the direct exhibits two days before. They did disclose the other direct exhibits. We did give them cross exhibits.

We think there is prejudice and we would object to them using it in the demonstrative.

448


THE COURT: Can I see the demonstrative?

MR. NORTON: We will not use the demonstrative.

MR. BOIES: Your Honor, with respect to what Mr. Van Nest is talking about, there is one exhibit that I think it judicious just to raise with the Court in terms of impeachment, and that is Exhibit 10.

THE COURT: Show it to counsel and then show it to me. Is this to be used with Mr. Page?

MR. BOIES: Yes, your Honor.

(Whereupon, document was tendered to the Court.)

MR. BOIES: This is the famous Lindholm email that is not signed by Mr. Page, but it is a party admission and it does directly contradict what Mr. Page said on the witness stand yesterday.

THE COURT: Which part contradicts it?

MR. BOIES: Where he says that he didn't know Mr. Lindholm and didn't give him any instructions.

What Mr. Page says is what we have been actually asked to do by Larry and Sergei, which obviously refers to --

THE COURT: Remind me. Yesterday he said he did not know who Mr. Lindholm was.

MR. BOIES: Yes.

THE COURT: So what's the problem with -- this document is clearly going to come into evidence eventually.

449


What's the problem with letting him show this to him now? And, "This email says that Larry asked him to do this, and is that true or not." What's wrong with that?

MR. VAN NEST: Two things, your Honor. It doesn't meet your criteria for impeachment. It's not a statement by Mr. Page or adopted by him, so it falls outside that.

I think it also possibly launches into some privileged areas, but I'm not sure what the question would be.

I have no problem with Mr. Boies asking Mr. Page whether he remembers giving Mr. Lindholm any instructions, but obviously Mr. Page didn't author this. He's not a recipient of it. I think this would be far outside what you would normally allow for impeachment, certainly.

Again, it was disclosed after, after he was on the stand. Not just late, but after he was on the stand.

THE COURT: Here is the ruling. Look. I'm going to let Mr. Boies use this as follows. This document is clearly going to come into evidence. The Court of Appeals for the Federal Circuit has said it's not privileged and every judge that's ever looked at it says it's not privileged. So it's going to come into evidence in due course.

It does refer to the witness on the stand and it's a fair question, whether or not he will stand by what somebody else in the company says he did. So I'm going to let him -- I'm going to let Mr. Boies ask that question.

450


Now, what I don't want you to do is to get into an argumentative mode over it. If he says, "No, I don't know who Mr. Lindholm is. I never heard of him. This is a forgery. He doesn't even work for the company," whatever. Whatever the answer is. Let's not get into an argument with him over it.

You have a limited latitude to bring this up, but the problem is it isn't real impeachment because he didn't sign this document. But since it refers to him, and somebody else in the company is probably going to come in and say he did, in fact, ask us to do this -- we don't know even that really for sure, but we -- there is enough good faith evidence here in this email to say that that probably happened that I'm going to let you ask a limited number of questions on the subject of did he ask Mr. Lindholm to do this. I think that's -- that's a legitimate thing.

So you can show No. 10 to the jury, but it is not actually in evidence yet because he's -- he presumably never saw this.

All right?

MR. VAN NEST: Your Honor --

MR. BOIES: Your Honor, I just want to clarify one thing. We did not give these documents specifically for Mr. Page, but this was one of our 10 documents that we gave to the Court. And we did notify them that we were going to use these documents, and we had a misunderstanding on our side as

451


to whether or not those documents carried forward witness-to-witness. It was our intention to use these 10 documents with every one of the witnesses. And there was a miscommunication --

THE COURT: I think you've got to tell them witness-by-witness.

MR. BOIES: Yes, yes.

THE COURT: But this document is the -- it's one of the top 10 documents in the whole case. There can't be any prejudice.

I know Mr. Van Nest has been thinking about this document. There is no -- there's no prejudice to using it in the limited way that I've said.

Yes, Mr. Van Nest. What were you going to say?

MR. VAN NEST: My only request, your Honor, is, again, if you're going to allow the examination, that's fine; but I really don't think this should be published to the jury with the witness if the witness says, "I've not seen it. I don't know it."

What he said yesterday is he thinks Mr. Lindholm works for the company, but he doesn't have a clear recollection of him.

THE COURT: The thing is Mr. Lindholm is going to come in and put this into evidence. Then we have to bring back Mr. Page to go over it all over again. And I have the

452


discretion to order the method of proof, and that's a cumbersome method of proof. There is no doubt this is going to come in.

I'm going to be let it be shown to the jury. But when Mr. Lindholm comes or somebody else comes, you need to -- you need to get it into evidence then.

All right?

MR. BOIES: Yes.

THE COURT: All right. I'm going to hand it back to Mr. Boies.

(Whereupon document was tendered to counsel.)

THE COURT: Here is the amount of time. 131 minutes has been used by Oracle. 62 minutes has been used by Google; 131, 62. Okay? I'm keeping track of your time.

Let's bring back the jury and, but don't bring back the witness quite yet. I have a few things I want to take up with the jury. And then we will bring back the witness so he should be in the ready position to come back.

(Jury enters courtroom at 8:00 a.m.)

THE COURT: Welcome back. Have a seat, please. Okay this morning?

(Jury nodding affirmatively.)

THE COURT: Have your notepads? The Federal donuts and coffee still working out?

453


(Jury nodding affirmatively.)

THE COURT: Good. Let me go over a few things and then we're going to pick right up with the witness that we had on the stand, but I want to first say that the -- to apologize for something that is not really an apology, but an explanation.

In the course of a trial you will undoubtedly -- especially one this long -- run into the lawyers in the elevator maybe some day or at the coffee stand on the second floor, or maybe the 10th floor. And you will note probably that they are -- they don't say much. They say maybe "good morning" and that's it. Period. And you might think, "Boy, that's such a rude lawyer. That guy, he wouldn't even talk to me about the weather."

Well, actually they are not being rude. They are being very respectful of you and the important job that you have and showing you respect by making it clear that they're not trying to curry any favor with you by chatting you up. You understand that? So if you do run into them, which they -- they actually go out of their way to try to avoid you.

But they do it out of reasons of professionalism and respect for the process. And I say this to all juries so that they understand there is no rudeness involved at all. It's exactly the opposite. It's respect for you and the job you've got to do. So that's point number one.

454


Point two. You have seen some of these depositions now and I want you to understand that the testimony given in a deposition is evidence in the case. So even though the lawyer may be reading to you the deposition -- you know, I told you what the lawyers what they say is never evidence -- that is an exception. If they actually read it out loud, "Question," "Answer," "Question," "Answer," verbatim, then that is evidence in the case that you may consider. So I want you to be aware of that.

Deposition testimony counts just as much as testimony here in the courtroom unless for some special reason, which I might tell you, and every now and then it has a limited use, but that's rare. So basic rule, deposition testimony counts just as much as trial testimony.

Now, I have one other thing which is a -- I wanted to try to describe very briefly some of the things that -- as a heads-up that you might want to be listening for because at the end of this part of the trial, I will be asking you to make certain specific decisions about them. Of course, you need to be paying attention to everything. There are many issues going on here.

But putting myself in your position, you may be sitting over there saying, "My God, what am I going to have to decide?" You know, you're hearing all about high finance and computers and, you know, brilliant people who know how to

455


program these gigantic machines. And you're saying, "What am I supposed to decide at the end of this case?"

So let me give you a very brief summary and I will give you details on this later. But this is kind of a just an introduction, is the word I would use.

So first of all: What is a copyright? A copyright is a right under federal law to exclude somebody else from reproducing some copyrighted work. A copyrighted work can be a book, a musical work, a literary work, dramatic work. There are a quite a number of things, a photograph even, motion picture, sound recording, architectural work. And it can be a computer program.

Now, some things cannot be copyrighted. Those are things like facts or ideas, procedures, processes, systems, methods of operation, concepts, principles or discoveries cannot themselves be copyrighted. So if somebody were to write a book about Einstein and e=mc squared, then that doesn't mean that they get a copyright on the book. That doesn't mean they get the exclusive right to use those ideas. E=mc squared is part of science, right? So that doesn't mean that just because you get a copyright. But what it does mean is that you have the right to that -- the words in that book, the way you set out the book and the copy, so to speak, that belongs to you.

Now, to prove infringement the owner of the copyright has got to show copying of the original elements of the

456


copyrighted work. And to prove copying what the plaintiff needs to show is that the defendant had access to the copyrighted work, access to, and that there are substantial similarities between the defendant's work and the copyrighted work.

Now, I have one last thing to say which may be of some use to you as a framework for you to be thinking about this case, because you've heard a lot about Java. You have heard a lot about Android. And you may be wondering over there, what is it that's actually in contention?

So first I want to say what's not in contention. And the parties have been pretty good about helping me identify this. I will tell you what's not in contention.

So Oracle does not accuse copyright infringement of the following, does not: Android's use of the Java programming language. That's not challenged, nor is any particular name of an API -- by now you know what that stands for. It stands for Application Programming Interface. The particular name of an API element including names for the packages, the classes, the exceptions, the fields, the methods, the parameter names. Those names themselves are not challenged.

Next is not challenged is the Android source code

457


implementing the APIs in these 37 packages, and this is at the line-by-line level.

Now, I'm going to give you an important exception to that in a minute, but in this case, as I understand it, Oracle is not challenging the line-by-line of the millions of lines of code, except in a few instances. Nor is Oracle challenging the idea, the idea of an API.

You've heard about a virtual machine that will translate to different types of computers, like Apple versus IBM. The Dalvik is one of the names you've heard. The Dalvik virtual machine is not challenged in this case. That is not something that Oracle is accusing of having been part of any infringement.

And, finally, what is not being challenged is Android's API packages and their contents, except for the 37. There are 37 API packages that are challenged. There are a lot more than 37 involved, but 37 is the number that's being challenged.

All right. So now what is being challenged? All right. So now I'm going to try to help you on that. And I think the lawyers did a pretty good job of laying this out for you in their opening statements, and they will eventually correct me if I get it wrong. This is, of course, subject to me, myself, possibly misunderstanding here, but I think I've got this right.

458


What is being challenged? Now, the part that is being accused of infringement are these 37 Application Program Interfaces.

Now, there are two files that -- in the 37 Application Program Interfaces. Two files. Not two Application Program Interfaces, but two files somewhere inside all those subparts that contain nine lines of the range check code and it is accused here by Oracle of being symbol-by-symbol, line-by-line exactly the same. And that's accused of being copied.

In addition, there are two files within the 37 where there are some comments in the file that are accused. Now, what is a comment? I think what you will find, and this is subject to the evidence, is a comment is something that is actually listed there in the listing of the program, but it is not part that gets compiled by the computer; but is a plain English statement for the reader so that the reader comes along later and looks at it and tries to figure out, you know, what was this meant to do? What does this line of code do? And the comment says, this is the one that, you know, picks the greater of A versus B or whatever. Whatever the comment wants to say. The programmer is trying to keep track of -- be kind of like recipe maybe. You put a little side note out there saying what is the point of this step in the recipe. The comment is trying to say: What is the point of this line of code?

459


Anyway, those don't get compiled by it computer, but they are in plain English that are read to the -- that the user can look at. All right. So that is the comments.

So to back up. Two files are accused of having identical comments.

Okay. In addition, in these 37 Application Program Interfaces accused are declarations. I'm not going to try really to explain what a declaration is. I'll just say the evidence will tell you, but the declarations are something that -- it's like a title in some ways. A title of a method.

Or a title of a routine. And it's specific language with dots and parentheses and so forth that the computer will recognize and the program will recognize to call up a particular method. A declaration.

And accused here in this system is a -- it is said that the declarations are identical word-for-word, symbol-by-symbol.

460


the same file organization; that the files, the subfiles, the subsubfiles, everything is organized exactly the same way or very close to it according to Oracle. And so that while the line-by-line code wasn't copied, the overall architecture, according to Oracle, was copied.

So that's another item that you should be listening for, is Sequence Structure Organization. One last item on the 37 Application Program Interfaces. You know how when you buy a car or anything really, you get a user manual, tells you how to use it? And, well, there is documentation that is pretty thick in this case that explains what the various methods and classes and fields, you know, what they do for a living. And it's precise statements of what a particular method would do so that a programmer, you know, who wants to do an application can look at that and say, "This is the one I do need to use. This is the one I don't need to use," and it tells the programmer who is doing the application what that item does. It might specify more than that. It might even say what inputs are needed, what outputs are going to be returned. It's a detailed booklet.

That's written, though, in plain English. That's not something the computer reads. That's written so that the user can understand what's going on. In this case, Oracle accuses Google of having plagiarized the documentation.

Okay. So just to put a point on it. I'm going to go back in reverse order.

461


Sort of the user manual documentation, that's in issue. That you should be listening for.

Structure, Sequence and Organization. Not at the line-by-line level, but the overall architecture, that's in issue.

So that's the story on the 37 Application Program Interfaces. Those are things that you should be paying a little extra attention to, though you must pay attention to everything in the case.

Now, beyond the 37 I will just say one last sentence.

I believe there are eight additional files that Oracle claims that are word-for-word copied from its copyrighted materials.

Now, this is not the final word. What I have just told you is subject to changing events, the way the evidence comes in. And nothing that I have said to you is evidence. Nothing.

What I have said to you is simply a heads-up to try to help you, you being brand new to this whole case. And I know you're over there doing your best to try to understand it.

What I'm trying to do is give you the benefit of what I have learned are the issues between these two sides.

I'm in no way suggesting to you which way you ought to come out. That would be entirely up to you. I'm not saying

462


who is right and I'm not saying who is wrong. I'm just trying to help you understand the issues that you will have to look at when we get a couple weeks down the road.

All right? Now, one thing that you can do over there if you -- as you go along, if you are confused about something, I encourage you to write out a note and at the next break you give it to Dawn, and Dawn will give it to me, and I'll give it to the lawyers. Then the lawyers might be able to work -- answer your question through one of the witnesses. So you're free to do that. I want you to know you are -- you're not only free, I encourage it. If it's something you feel would help you understand the case better, just write it out and then the lawyers will address it in due course.

All right. So the lawyers want to add or subtract anything from my summary?

MR. BOIES: No, your Honor.

MR. VAN NEST: No, your Honor.

THE COURT: All right. Good. Thank you.

We can bring the witness back in.

(Brief pause.)

THE COURT: Mr. Boies, while we're waiting, can you give us a heads-up of how much longer you have on direct?

MR. BOIES: I would think 30 to 40 minutes, something like that.

THE COURT: Any stipulations you want to read to the

463


jury while we're waiting?

MR. BOIES: I don't think we have those ready, your Honor.

(Mr. Larry Page enters the courtroom.)

THE COURT: So, Mr. Page, welcome. Please have a seat. Make yourself comfortable. The microphone needs to be about this close. Please have a seat. You can move it back.

It moves all around.

And I remind you that you're still under oath. All right?

THE WITNESS: Yes.

THE COURT: Mr. Boies?

LARRY PAGE,

CROSS-EXAMINATION RESUMED

BY MR. BOIES:

Q. Good morning, Mr. Page.

A. Good morning.

Q. Yesterday we were talking about the issue of certain claims that Oracle has made that Google had engaged in the literal copying of certain copyrightable material from Sun and Oracle.

Do you recall that subject generally?

464


A. Yes, of course.

Q. All right. Now, let me ask it this way: Would it have been a violation of Google policy for Google engineers to copy the copyrighted material of other companies?

A. Again, as I said yesterday, I think we -- we did nothing wrong and we really looked carefully. I imagine that whatever process would be used for clean room implementation we were very careful about what information we used and did not use, which is the definition of what a clean room is.

Q. My question, I think is a "yes" or "no" question. Is whether it is a violation of Google policy for Google engineers to copy the copyrighted material of other companies?

A. I already told you I wasn't familiar with the details of how we would operate a clean room.

THE COURT: He's not asking that.

Does Google have a policy about whether or not it's okay to copy somebody else's copyrighted materials?

THE WITNESS: I think that -- I'm not aware of any such policy. I think we do a lot to respect intellectual property. And in our core business on search and other things, obviously, we search lots of copyrighted material and we provide snippets and other things. So that seems like a pretty complex question.

THE COURT: All right. So that's the answer. I think the witness has answered the question.

465


MR. BOIES: Thank you, your Honor.

BY MR. BOIES:

Q. Did you ever ask anyone to investigate whether or not Google engineers had copied Sun or Oracle copyrighted materials?

A. I don't recall any such asking of people.

Q. Okay. Was anyone at Google ever disciplined in any way for copying any Sun or Oracle copyrighted materials?

A. I'm not aware of any, any such action.

Q. Let me --

MR. BOIES: May I approach the witness, your Honor?

THE COURT: Yes.

(Whereupon, document was tendered to the witness.)

MR. BOIES: Let me hand had you Trial Exhibits 1 and 2.

MR. VAN NEST: Excuse me. What's the number?

MR. BOIES: 1 and 2.

MR. BOIES: Exhibit 1 -- and perhaps we can publish that -- was admitted in evidence.

(Document displayed)

Q. This was a document that you previously identified that as a document that had been presented in July of 2005. And it was presented to the top executives of Google; correct, sir?

A. Yeah, that's what I believe.

466


Q. And if you look at the next to last page, Page 9 of 10 of the exhibit?

(Witness complied.)

Q. There was the statement: "Must take license from Sun." Do you see that?

A. Yes, I see that.

Q. Now, this was in July of 2005. And subsequent to July of 2005 Google attempted to negotiate a license from Sun, correct?

A. I don't remember the details of when we were not or not negotiating with Sun. It seemed like it went on a long time.

MR. BOIES: May I approach the witness, your Honor?

THE COURT: Yes.

(Whereupon, document was tendered to the witness.)

MR. BOIES: I'm handing the witness Exhibit 7, which I would offer as a party admission.

THE COURT: Any objection to 7?

MR. VAN NEST: It's in evidence, your Honor.

THE COURT: 7 is already in evidence. All right.

MR. BOIES: Thank you.

MR. BOIES: And if we could publish the email from Mr. Rubin to Mr. Page?

(Document displayed)

BY MR. BOIES:

Q. This is an October 11, 2005 email to you from Mr. Rubin,

467


correct?

A. Yeah. There's a thread of emails here, but the bottom of it is an email to me, yes.

Q. And the second paragraph Mr. Rubin writes:

"My proposal is that we take a license" --
And that's a license from Sun, correct?

A. That's what's written here, yes.

Q. (As read)

"My proposal is that we take a license from Sun that specifically grants the right to us to Open Source our product. We'll pay Sun for the license" -- do you see that -- "and the TCK."
And you know what a TCK is, do you not, sir?

A. That's some sort of Java testing thing, I think.

Q. And that is a Test Compatibility Kit that is designed to assure that what you prepared or what Google prepared or what somebody prepared is compatible with standard Java, correct?

A. My understanding is it does that and, also, generally collects revenue for Sun. So it does many things, but -- yeah, I think this is in the context of us negotiating with Sun for their technology. The TCK is part of their technology.

Q. I agree that TCK is our way that Sun and Oracle make money, but they are also a way in which they assure the compatibility of versions of Java that are developed; correct,

468


sir?

A. That's correct.

Q. Okay. And the next sentence says:

"Before we release our product, the Open Source community will make sure our JVM passes all TCK certification tests so that we don't create fragmentation."
Do you see that?

A. I see that.

Q. And you knew in 2005 that Sun wanted to avoid fragmentation of Java, correct?

A. It's hard for me to speculate what Sun -- what Sun's priorities were or what was important to them. It wouldn't surprise me.

Q. Well, is it your testimony that you would have to speculate to know whether Sun wanted to avoid fragmentation of Java?

A. I think there are different editions of Java. There are mobile editions or whatever.

I think that Java is a complex thing involving many, many different things. So it's hard for me to speculate, again, on what Sun -- what Sun's priorities were.

Q. Is it your testimony that you can't tell me without speculating whether Sun wanted to avoid fragmentation of Java? Is that your testimony?

469


A. No. I'm stating that we, obviously, were working on a mobile edition of Java which, as I testified previously, was causing a lot of problems. Like, we couldn't develop software for the Java that existed. We had a closet full of 100 phones that all worked different.

And I think Sun, and now Oracle, you know, needed something that was -- actually worked. And so, obviously, that's not the same thing. So that's fragmentation in a sense, but actually it's something that needs to work. So it's kind of hard to answer that question.

Q. Let me try to ask it this way. And this is a "yes" or "no" question, Mr. Page.

Do you, from your own personal knowledge and your experience in the industry, know that Sun wanted to avoid fragmentation of the Java Platform?

A. I think that they wanted to control the Java Platform.

THE COURT: No. You can answer that question "yes" or "no," please. You can say either "yes" or "no" and then give your explanation, or you can say "I don't know." But you've got to say "yes," "no," or "I don't know" and then you can have one sentence of explanation.

THE WITNESS: All right. Sorry.

A. Repeat the exact question?

BY MR. BOIES:

Q. I'll try to.

470


p> Do you know, sir, from your own personal experience in the industry that Sun wanted to avoid fragmentation of the Java Platform.

A. Now or previously?

Q. Let me break it up.

Did you know from your own personal experience in the industry, in 2005, that Sun wanted to avoid fragmentation of the Java Platform?

A. Yeah. I mean, yes. Subject to the control and the other things I mentioned.

Q. And did you know that in 2006 as well, sir?

A. I don't remember any difference between 2005 and '06, seven years ago.

Q. Do you know that that was true in 2006, 2007, 2008, 2009, 2010, 2011, and today in each of those years, and including today, Sun wanted to avoid fragmentation of the Java Platform?

Do you know that, sir?

A. I'm sure, yes. You know --

Q. A. Periodically I feel like I was informed by somebody.

Q. And you played a particular role with respect to Android; did you not, sir?

A. I think I was a big proponent of doing the Android

471


acquisition.

Q. And, indeed, you were the -- what is called within Google the "executive champion" of the Android acquisition; correct, sir?

A. Yeah. We require an acquisition to have a supporter, and I was listed as that supporter.

MR. BOIES: May I approach the witness, your Honor?

THE COURT: Yes.

MR. BOIES: Handing the witness Trial Exhibits 431 10 and 432.

(Whereupon, documents were tendered to the witness.)

MR. BOIES: Each of which I would offer as party admissions.

THE COURT: Any objection?

MR. VAN NEST: Objection, your Honor. 403.

THE COURT: May I see copies?

(Whereupon, documents were tendered to the Court.)

THE COURT: Well, the 403 objection is denied as to 431.

MR. VAN NEST: Your Honor?

THE COURT: Yes.

MR. VAN NEST: May I be heard briefly on that?

THE COURT: Yes.

472


MR. VAN NEST: It's a -- 431 is really a Phase 3 issue not a Phase 1 issue. And it relates to some of our earlier objections about numbers being thrown around. I note he's not even on the exhibit.

MR. BOIES: I believe he is, if you look at the bottom. But --

THE COURT: Is that the point of this document, is to put big numbers out there?

MR. BOIES: No, your Honor. This document was talked about specifically. This document was raised by counsel to the Court. The Court denied the objection. This is exactly the same document.

THE COURT: I'm going to let you use the document, but if it goes where it should not go, then I will interrupt you.

But the witness may not know anything about the document. You've still got to lay foundation.

So subject to foundation being laid, I'll let you use the documents.

MR. BOIES: Thank you, your Honor.

THE COURT: But the 403 objection is overruled, but the foundation objection has not been ruled on. So you've got to lay a foundation.

MR. BOIES: Okay.

473


MR. BOIES: And do I understand that 432 is admitted?

THE COURT: Neither are admitted yet. You still have to lay the foundation, but the objection based on 403 is overruled.

BY MR. BOIES:

Q. Let me ask you to look at Exhibit 432 first.

(Witness complied.)

Q. Exhibit 432 is --

MR. VAN NEST: Excuse me, your Honor. This should not be published to the jury at this point.

MR. BOIES: It's not being published. Counsel is entitled to establish what the document is. That much can be done.

Go ahead.

BY MR. BOIES:

Q. This was a presentation in April of 2005 to the EMG; correct, sir?

A. Sorry. Let me read it for a minute.

(Brief pause.)

THE COURT: It's not coming -- I don't want it to be in the jury box yet. Dawn, is it just court and counsel?

THE CLERK: Correct.

THE COURT: Okay. Mr. Page, do you know what the document is or not?

THE WITNESS: It's something about -- the email chain

474


seems somewhat random. The --

THE COURT: Do you know what it is or not?

THE WITNESS: I mean, I -- I don't recall it. It looks like a presentation that would have been given to the executive group, but this doesn't look necessarily like the right version of it.

THE COURT: There is not enough foundation for it to be admitted at this time.

MR. BOIES: May I be heard, your Honor, on that just briefly or not?

THE COURT: Yes. Go ahead.

MR. BOIES: There is no question of the authenticity of this document. The authenticity is not objected to.

This is directed to the EMG. He's on the EMG. It's the executive management group. It's the very top executives of Google.

THE COURT: Is there an objection or not?

MR. VAN NEST: There is.

THE COURT: What is the objection?

MR. VAN NEST: Lack of foundation.

THE COURT: I'm sustaining that. You've got to get it in through a witness who can tell us what it is, unless you want to put a young lawyer from your law firm on the stand that says where this document came from, that the other side produced it and so forth.

475


But right now I'm not going to suspend the Rules of Evidence just because you believe it was produced by Google. Maybe it was, but that's not been proven yet.

MR. BOIES: Your Honor, could I have --

THE COURT: The witness says it looks like a goofed-up document.

MR. BOIES: Your Honor, they don't object that it was produced by Google. That's not their objection.

THE COURT: The objection is being made that there is no foundation.

MR. BOIES: Okay.

THE COURT: I'm sustaining that. We're going to do it the right way.

The right way is if this witness can't identify it we will bring this witness back after some other witness has identified it and then you can ask your questions of Mr. Page about the document since he's unable to identify it.

MR. BOIES: Thank you, your Honor. We will proceed that way.

BY MR. BOIES:

Q. Let me ask you to look at Exhibit 431.

(Witness complied.)

Q. And I would direct your attention particularly to the bottom of the page, of the first page of the document where there is an email of October 11th, 2010.

476


Do you see that?

A. Yes.

Q. And it says it is copying "theoc." Do you see that?

A. Yes.

Q. And what is "theoc"?

A. Theoc is sort of the major executive management group at Google.

Q. And it is being copied in preparation for the board meeting. Do you see that?

A. Yeah. I can read the document.

Q. And the board meeting is the Board of Directors meeting; correct, sir?

A. I think that's -- I think that's what they mean, why.

Q. And if you look at the next two pages.

(Witness complied.)

Q. These were pages that were produced and presented to the Board of Directors of Google, of which you are a member; correct, sir?

A. I don't recall it, but I assume so.

MR. BOIES: Your Honor, I would offer Exhibit 431.

THE COURT: Any objection?

MR. VAN NEST: Objection, your Honor. Still lacks foundation. The witness says he doesn't recall.

THE COURT: All right. From the -- whether you recall or not, from the form of the document, just from the way

477


it looks, does it look like something that was produced by Google?

THE WITNESS: Yeah. No, it was definitely produced by Google.

Let me read the email thread a little bit and try to understand whether it was the right version and such.

THE COURT: Take your time.

(Brief pause.)

A. I don't think it's clear from this this was used. I mean, it says:

"I had not gotten any response from Andy on the Android talking points I sent to him. (You said you had talked to him in Dublin and gotten a good set of remarks), so this slide may be useful for that."
I mean, that's -- that's --

THE COURT: All right. There is not sufficient foundation to allow this document into evidence yet. So the objection is sustained.

BY MR. BOIES:

Q. You believe that Android was a critical asset for Google; correct, sir?

A. I believe Google -- or Android was a very important thing for Google. I wouldn't say it's critical.

Q. You would not say it was critical?

478


A. I feel like we're splitting hairs here, but in general I would say that we work hard to get our products out to our users and get distribution for those products. We have had challenges in getting people products on wireless, on their phones, and so we look for ways to solve that problem. And I think it's important, very important for us to solve that problem. There are very many different ways we can do that.

Q. You're a member of the Google Board of Directors, are you not, sir?

A. Absolutely.

Q. Was the Google Board of Directors told that Android was a critical asset for Google?

A. I mean, that wouldn't surprise me, but I'm not sure, like I said, I would agree with that.

Q. Let me ask you now. You have Exhibit 2 in front of you, do you not?

A. Sorry. Which one was 2?

Q. It's in the manila folder that has Trial Exhibit 2 on it.

THE COURT: Why don't you go up and help the witness?

A. I have got it. I've got it. Thank you.

BY MR. BOIES:

Q. Now, this is a document that you personally received, correct?

A. That's correct.

MR. BOIES: And I would offer that exhibit?

479


THE COURT: 2 is already in evidence.

MR. BOIES: Thank you, your Honor.

THE COURT: It may be shown to the jury.

(Document displayed)

BY MR. BOIES:

Q. Now this is dated July 26, 2005; correct sir?

A. That's what it looks like, yeah.

Q. And at the very bottom it talks about the Sun negotiations concerning Java. Do you see that?

A. That says --

Q. The very bottom line.

A. Very bottom line says:

"Action to follow up with Sun negotiations regarding open sourcing Java."
Q. Right. And do you remember telling me yesterday that you didn't recall Mr. Tim Lindholm?

A. I said I -- you know, I believed based on this that it's somebody who works for us, but I didn't recall him particularly, no.

Q. And that you did not recall giving him any directions; do you recall that?

A. Yeah. No, I didn't recall that.

Q. Now, the "Tim" that is referenced here in this email that you received in 2005, that was Mr. Tim Lindholm, correct?

A. I mean, I'm not sure which Tim it would be.

480


Q. Did you know at the time you received this email?

A. I mean, I don't know that I read this carefully. I don't recall.

Q. Let me ask you to look at Trial Exhibit 6.

MR. BOIES: May I approach, your Honor?

THE COURT: You may.

(Whereupon, document was tendered to the witness.)

BY PLAINTIFF'S ATTORNEY:

Q. Is this a document that you have seen before, sir?

(Brief pause.)

A. I think so.

MR. BOIES: Your Honor, I would offer Trial Exhibit 6.

THE COURT: Any objection?

MR. VAN NEST: No objection, your Honor.

THE COURT: 6 is received.

(Trial Exhibit 6 received in evidence)

MR. BOIES: May I publish the first page?

THE COURT: Yes.

(Document displayed)

BY MR. BOIES:

Q. This is dated September 6, 2005; correct sir? And it's from Mr. Rubin to the EMG. That includes you; correct, sir?

481


A. That's the email here.

Q. And a copy to Mr. Tim Lindholm, correct?

A. That's on the email, yeah.

Q. And if you turn to Page 4 of 25 of the exhibit...

(Document displayed)

Q. ...this shows that this is a report on project Android as of August of 2005; correct, sir?

A. Which page? Page 5, you said?

Q. August of 2005.

THE COURT: How far into the document?

MR. BOIES: Page 4 of 25. The pages are numbered at the bottom left-hand corner.

A. On the first page it says August 2005, Page 4 -- oh, I see. I'm looking at different numbers. There are two sets of page numbers.

BY MR. BOIES:

Q. Are we on the same page now?

A. Yes.

Q. Good. Now, if you turn to Page 7 of 25...

(Document displayed)

Q. ...you see Mr. Lindholm listed there as one of the project advisors?

A. Yeah, I see that.

Q. Let me now ask you to look at Trial Exhibit 10, which is not in evidence.

482


(Whereupon, document was tendered to the witness.)

MR. BOIES: Pursuant to the discussion with counsel, I would ask to publish to the jury at this time.

THE COURT: This exhibit is not yet in evidence, but because the witness who will sponsor this is not yet here and the Court and counsel have gone over this, we will allow this document to be shown to the jury, subject to it being connected up.

By that I mean that Oracle gets it into evidence through some other witness, but for now the jury will be allowed to see it so that they can follow the testimony. So Exhibit No. 10 not yet in evidence, but it will be shown to the jury.

(Document displayed)

BY MR. BOIES:

Q. Now, this is an email from Mr. Lindholm to Mr. Rubin with a copy to Mr. Grove dated August 6, 2010. Have you ever seen this document before, sir?

A. I don't recall.

Q. Now, I would like to direct your attention to the second paragraph that says:

"What we've actually been asked to do (by Larry and Sergei)..."
Do you see that?

483


A. Yeah.

Q. That's a reference to you as Larry, and to Sergey as the other cofounder of Google; correct, sir?

A. Yeah. Sergey is misspelled but, yeah.

(Laughter)

Q. It says.

"What we've been asked to do by Larry and Sergey is investigate what technical alternatives exist to Java for Android Android and Chrome."
Do you see that?

A. I can read the document, yes.

Q. Does that refresh your recollection that you knew who Mr. Lindholm was and, in fact, asked him to investigate what technical alternatives exited to Java for Android in or about August of 2010?

A. No. I mean, it doesn't refresh my recollection. Sounds like Tim was somebody who was assigned to do this, probably by Mr. Rubin, I would guess.

Q. And at the end of that he says:

"We conclude that we need to negotiate a license for Java under the terms we need."
Do you see that?

A. Yeah, I can read that.

Q. And were you told in or about August of 2010 that

484


Mr. Lindholm or other people had concluded that Google needed to negotiate a license for Java?

A. I think there's free Java, and there's the Java that's Sun's technology. I think the reason we negotiated with Sun for so long was to try to get a license to their technology.

MR. BOIES: Your Honor, may I ask the Court to ask the witness to be responsive to the question.

THE COURT: The question was:

"Were you told in or about August of 2010 that Mr. Lindholm or other people had concluded that Google needed to negotiate a license for Java?"
That's either yes, no, or, I don't remember.

THE WITNESS: Uhm, I don't recall, uhm, at that time.

Q. You do know that Google never got a license from Sun or Oracle for Java; correct, sir?

A. Uhm, I know that we worked hard to negotiate a business partnership what Java.

MR. BOIES: May I ask that the witness be asked just to respond to the question.

THE COURT: It is important that you try to -- most of the questions are yes or no. And you should try to answer it in that spirit. And so you must do that.

So that's a yes or no. Is it true that you never got

485


a license?

THE WITNESS: Uhm, I'm not sure whether we got no license to anything or ...

THE COURT: Ask the question again. I didn't do a good job on the question.

BY MR. BOIES:

Q. Did Sun ever get a license -- excuse me.

Did Google ever get a license from Sun or Oracle for Java?

A. Uhm, I don't -- I don't think that we did, no.

Q. Now, you are aware that Google uses certain Sun or Oracle APIs in Android, correct?

A. Yeah, I'm aware that we use APIs, Java APIs, in Android.

Q. And you are aware that Sun includes those APIs, or some of them, in what it copyrights; correct, sir?

A. I have no idea what Sun copyrights or not.

Q. Did you ever ask anyone whether the APIs that you're using in Android for Java were copyrighted by Sun?

A. I don't recall.

Q. Google copyrights its APIs; correct, sir?

A. I'm not sure whether we do or not.

Q. Are you sure whether or not Google copyrights its Android APIs?

A. Uhm, I'm not sure. I think that things are copyrighted by default. I think everything you write is copyrighted by

486


default, but I'm not a lawyer.

Q. Does Google tell the public that its intellectual property and its copyrights are very valuable to it?

A. Uhm, I mean, Google's a company based on intellectual property.

Q. And the way you protect intellectual property is, at least in significant part, through copyrights; correct, sir?

A. Uhm, that's one of the, you know, major intellectual property protections.

Q. You are aware that many companies take licenses from Sun and now Oracle to use Java, correct?

A. Uhm, yes.

Q. And are you aware of any company, other than Google, that uses Java APIs, that does not take a license from Sun or Oracle?

A. I mean, I'm not an expert on that. I know that IBM has had a long and tortious relationship with Sun over Java. And I'm not sure what the status of their, you know, API use, or whatever, is over time.

Q. Is it your testimony that you think IBM does not have a license from Oracle or Sun?

A. Sorry. Apache Harmony, I don't know, has some relationship with IBM, was developed with them. I don't know the history of it very accurately. But it was developed as an open source project. I don't know what their license is, but

487


it wouldn't surprise me if they didn't.

Q. Let me ask the question as directly as I can.

Can you name a single company that uses Java APIs that has not taken a license from Sun or Oracle, except for Google?

A. As I said, I'm not an expert on that, and I already said that I didn't.

MR. BOIES: Your Honor, I have no more questions.

THE COURT: Cross-examination -- or at least examination by Mr. Van Nest.

MR. VAN NEST: May I proceed, Your Honor?

THE COURT: You may.

REDIRECT EXAMINATION

BY MR. VAN NEST:

Q. Good morning, Mr. Page. How are you?

A. Good.

Q. Welcome back.

You were asked a series of questions about various e-mails in the process of your consideration of the Android project, and I want to try to give the jury a little context for those, so back up a little bit.

What was it -- why was Google setting out, in the first place, to create a smart phone platform? What was the goal?

A. I think we had been really frustrated in getting our

488


technology out to people. We had very basic software, like showing photos and things, and it was almost impossible to make it work. We had a closet full of other phones, a lot of which ran Java. But it was almost impossible to develop for those phones and to get meaningful/good software out to people. It's hard to think back that seven years, but it was pretty awful.

Q. What were the benefits of having such a platform available to consumers?

A. I think we primarily looked at it as just providing a great way to get software out to people and have it work. And, you know, existing services, search and so on, and Gmail and things like that. It was very, very hard in the environment that existed -- which included a lot of things we are talking about, Java ME, and so on -- to get that stuff to work. Just didn't work.

Q. Mr. Page, were you one of the people that was an advocate of acquiring the Android company and bringing Mr. Rubin on board?

A. Yeah, I was really excited about having solutions to that problem that would get our software and other people's software really out to people, and have it work well.

Q. Now, back in the early days, back in 2005 and 2006, can you tell the jury, what was Google seeking in terms of a relationship with Sun?

489


A. I think that we really wanted to be able to use Sun's technology. They had all sorts of software that had been developed and, you know, as what mentioned, carrier certifications and all these kinds of things.

And it would have really saved us a lot of time and trouble to be able to use their technology, to use their -- you know, all the code that they developed, and so on.

And when we weren't able to come to terms on having that business partnership, which would involve a lot of complicated things, we went down our own path and we took the free Java, the Java language, and we reimplemented it carefully, as was mentioned, in a clean room, and provided that.

It certainly would have been our preference to have a real deep business partnership and relationship with Sun, but we were unable to really come to terms on that. And I think we tried long and hard to negotiate that. We spent a lot of time on it. It slowed us down a lot.

And, ultimately, we had to then make a big investment in developing our own technology, which we think is really good and works well. And the market has shown that.

Q. How would a partnership with Sun have benefited Google?

490


Obviously, those didn't matter because things like the iPhone didn't have Java at all, so somehow magically got into consumers' hands.

So I don't think that the issue of Java carrier certifications is very significant in the end, but it would have been a help in getting things out. It's kind of irrelevant now, I think.

Q. So can you tell the jury, from your perspective, Mr. Page, why were Google and Sun unable to reach agreement back in that period of time?

A. Uhm, I think there are a lot of --

MR. BOIES: Objection. Foundation.

THE COURT: Sustained until foundation is shown.

BY MR. VAN NEST:

Q. Were you kept advised by your team as to the negotiations between Sun and Google?

MR. BOIES: Objection.

THE COURT: Mr. Van Nest, he has to have been personally present and actually remember it. Earlier in the direct examination he did not have -- he didn't remember quite a lot of things. So you need to show he has actual memory.

BY MR. VAN NEST:

Q. Do you remember being briefed by the Android team from time to time -- I think you've testified to this the other day -- on status of negotiations with Sun?

491


A. Yes.

Q. Was -- did that happen on a regular basis?

A. Uhm, I remember being appraised from time to time on it, yes.

Q. Were you appraised when the deal failed to come together? Were you updated as to the reasons why?

A. I remember being updated after the deal failed to come together, many times.

Q. All right. And what -- based on your understanding -- just from Google's perspective, why were the parties unable to reach a deal?

MR. BOIES: Objection still, Your Honor.

THE COURT: Sustained. No foundation. If he wasn't in the room, he doesn't know. Unless he made the decision to terminate the discussions, then he would know why he did it.

MR. VAN NEST: Well, let me ask him that question.

BY MR. VAN NEST:

Q. Were you one of the people that participated in deciding to break off efforts to reach agreement with Sun?

A. I definitely participated in that, from my memory. But I also say I'm not sure they've ever broken off. Continue to have discussions to this day.

Q. Well, why don't you tell the jury from your perspective, from your perspective, why, why were you satisfied in moving forward in a different path back in that '05-'06 time period?

492


A. Uhm, I think, you know -- I don't remember exactly how long stuff went on, but we tried, like I said, very, very hard to negotiate with Sun over the terms of Java.

And I think that, ultimately, the kind of business models and things we had in mind for Android, which is a very open source system, were in conflict with the things I mentioned. Like the TCK, where they charge money, for example, just to test that you maintain compatibility, which seemed kind of uhm, uhm, not a good way of proceeding, in our mind. And we were unable to convince them of that and, I think, a whole bunch of other issues.

Q. So once the parties failed to reach agreement, how did Google proceed to develop its own platform?

A. Well, you know, we took the free part of Java and we --

MR. BOIES: Objection, Your Honor. Foundation.

THE COURT: That is true. Sustained.

BY MR. VAN NEST:

Q. Mr. Page, were you involved in discussions concerning how Google would move forward in the absence of an agreement with Sun?

A. I definitely remember being updated on that, yes.

Q. And was EMG, the executive committee, updated on a regular basis about that?

A. I don't recall specifically, but I'm sure that they were.

Q. Tell the jury what you know about the reasons that you

493


went forward on your own, without a license or without a partnership from Sun.

MR. BOIES: Objection, Your Honor.

THE COURT: Well, let me ask this question.

Did you make the decision to go forward on your own without a license or without a partnership from Sun?

THE WITNESS: I remember that we discussed that point, and that we decided to go forward.

THE COURT: No, no. Did you make the decision?

THE WITNESS: I don't recall if I specifically made that decision. I think, uhm --

THE COURT: Were you -- all right. Were you present in a group where a group made the decision?

THE WITNESS: I mean, I was -- I was definitely aware of such decision. I don't remember the process used for it, but I'm sure if I had objected I would have been part of it.

THE COURT: I don't think the foundation is sufficient for him to answer the question.

MR. VAN NEST: Fair enough, Your Honor.

BY MR. VAN NEST:

Q. You were asked on cross-examination, Mr. Page, about APIs and whether they were copyrighted. Did you ever ask anybody whether APIs are copyrighted?

A. I don't recall ever asking anybody that.

Q. What understanding did you have back in 2005 and 2006,

494


about APIs?

A. I don't think the subject really ever came up, in my recollection.

Q. Has anyone ever discussed with you back in that period of time the structure, selection or organization of APIs?

A. I can't remember anything like that until very recently.

Q. Mr. Page, how many employees does Google have today?

A. I think we've got over 33,000.

Q. And I take it you attend many meetings every week?

A. Too many, yes.

Q. And meet with many employees?

A. Yes. Pretty much what I do.

Q. Can you give the jury any estimate of how many employees you speak with on a weekly basis?

A. I don't know. I think during this time that was represented here, we would have many meetings a week with, you know, many kinds of people, not all of which I would know.

MR. VAN NEST: I have no further questions, Your Honor.

THE COURT: Thank you.

Recross.

RECROSS EXAMINATION

BY MR. BOIES:

Q. Mr. Page, did I understand you to just tell Mr. Van Nest that back in 2005 and 2006 the subject of APIs never came up?

495


A. Yeah, I don't recall that.

Q. You still have trial Exhibit 6 in front of you?

MR. BOIES: May I approach, Your Honor?

THE COURT: You may.

MR. BOIES: This has already been admitted. Now, if we could put the first page of the presentation up, just to remind the jury what this is.

(Document displayed.)

BY MR. BOIES:

Q. This is a Project Android GPS presentation, August 2005.

Do you recall that, Mr. Page?

A. Yes.

Q. And let me ask you to look at page 8 of 25 of the exhibit. And Mr. Van Nest asked you how Google benefited from Android. Do you recall that?

A. I think he asked me how Google would have benefited from a Sun partnership.

Q. Yes. And -- well, perhaps he did. I thought he asked the other one, but let me ask you.

Was the benefit that Google was looking for from Android to have more control of the user experience in built-in Google apps?

A. I think you're referring to the slide here that says:

"Google benefits by having more control of the user experience in built-in Google apps."

496


Q. Yes.

A. I think -- trying -- look at the date of when this was.

It's 2005. And that was pretty early on.

I think that was definitely one of the benefits the team speculated about that they would get. And I don't disagree with that as a potential benefit.

Q. And one of the ways that you were going to get that benefit was -- if we go to the next page -- through, at the bottom, where it talks about:

"Eventually build a community force around Google handset APIs and applications."
Do you see that, sir?

A. Yeah, I see that. I don't think that refers to Java, though.

Q. This certainly refers to APIs, correct?

A. Yeah, but not Java APIs.

Q. So is it your testimony that APIs came up, but just not Java APIs?

A. We talk about APIs, you know, every day, yeah. We didn't talk about Java APIs specifically.

Q. Okay. So we're on common ground, did you talk about APIs every day?

A. Maybe not every day, but --

Q. A lot?

A. Yeah.

497


Q. Okay.

A. We talked a lot about Java, but not specifically the API part of Java, in my recollection.

Q. Well, sir, let me ask you, do you still have Exhibit 2 in front of you?

A. Yes.

Q. Okay. And this is also in evidence, so we can perhaps display that.

And let me ask you just to look at the very first line here, where it says.

"Sergey: Application delivery part of APIs?"
A. Yeah.

Q. And then it says:

"Yes, but actual delivery is a negotiation."
Do you see that?

A. Yeah.

Q. Now, that's clearly Sun APIs; correct, sir?

A. Sorry, some?

Q. Sun. Sun. S-u-n. Sun's APIs?

A. Sorry, that's not clear to me from this -- let me look at the document.

It's not obvious to me what that's about. It seems that most of the points here are about some sort of negotiation, but I have no idea if application delivery is part of -- was part of their current APIs or not, or what the issues

498


around -- I mean, this looks like one of the hundred issues, probably, that were discussed.

Q. Let's take it one step at a time.

First, this clearly has to do with Android, correct?

A. Yes.

Q. And it clearly has to do with Java, correct?

A. Yes.

Q. And it clearly has to do with negotiations with Sun, correct?

A. Yes.

Q. And when they talk about actual delivery of the APIs being a negotiation, that's a negotiation with Sun; correct, sir?

A. Sorry. Not actual delivery of the APIs, but application delivery, and the actual delivery of those. Sorry.

Q. That is delivery by Sun; correct, sir?

A. Uhm, that's not clear to me.

Q. The negotiation that's referred to, that's clearly Sun, correct? That's who you were negotiating with in July of 2005, correct?

A. Yeah, I'm just not really sure what that means. I mean, I think it's not obvious.

Q. Let's see if we can get some agreement.

When it talks about "negotiation," that's a negotiation with Sun, correct?

A. It could be a technical negotiation, too.

499


Q. But --

A. I assume that it means negotiation with Sun, yes.

Q. Yes. And it's a negotiation with Sun about APIs, correct?

A. Yeah, but I'm not sure that has to do -- sorry. I think my previous testimony I was saying that the API -- you know, what's part of the APIs or not with regards to the Java language was not something that we discussed.

I'm not suggesting we never negotiated with Sun over a myriad of different components of Java and how that would work and how the partnership would work. That's not what I was trying to say.

Q. This is a negotiation with Sun about APIs; correct, sir?

A. I'm not even sure these APIs were part of Java. I don't know if application delivery was or was not. I'm not an expert on that.

Q. You got a copy of this in July of 2005, correct?

A. Not disputing that.

Q. What?

A. I'm not disputing that.

Q. And, indeed, these are notes of a conversation in which you participated, correct?

A. Yeah.

Q. Okay. And in that conversation that you participated in and is memorialized in this e-mail that you got a copy of in 2005, what Sergey was talking about was a negotiation with Sun

500


about APIs. That's clear; isn't it, sir?

A. Yeah.

Q. Okay.

MR. BOIES: No more questions, Your Honor.

THE COURT: Any more?

MR. VAN NEST: I have nothing further, Your Honor.

THE COURT: All right. Then may the witness -- does anyone want the witness on recall, or not?

MR. BOIES: Yes, Your Honor. After we get the document that --

THE COURT: Mr. Page, you'll have to come back in due course, after other witnesses get those documents into evidence. But counsel will give you a reasonable notice as to when that will be. But for now you're free to go. Thank you for coming.

(Witness steps down.)

THE COURT: I think it's time for a short, 15-minute break for the jury before we go to the next witness. Remember the admonition. No talking about the case. And we'll see you back here in a few minutes.

THE CLERK: All rise.

(Jury out at 9:19 a.m.)

THE COURT: Please be seated. Any issues for the Court?

MR. BOIES: No, Your Honor.

501


MR. VAN NEST: No, Your Honor.

THE COURT: All right. We'll take our 15 minutes, as well.

(Recess taken from 9:20 to 9:39 a.m.)

THE COURT: Back to work. Bring in the next witness.

Bring in the jury and then the next witness. All right. Let's do that. Please, be seated.

(Jury enters at 9:40 a.m.)

THE COURT: Welcome. Please be seated.

Mr. Norton, who will your next witness be?

MR. NORTON: The plaintiff calls Edward Screven.

THE COURT: Please come forward. Welcome.

THE WITNESS: Thank you.

THE COURT: Raise your right hand, please.

EDWARD SCREVEN,

called as a witness for the Plaintiff herein, having been first duly sworn, was examined and testified as follows:

THE WITNESS: I do.

THE COURT: Thank you. Have a seat. See how this moves around?

THE WITNESS: Okay.

THE COURT: You've got to move it so that it's that close.

THE WITNESS: Is that good?

THE COURT: That's fine. What's your name?

502


THE WITNESS: My name is Edward Screven.

THE COURT: How do you spell that?

THE WITNESS: S-c-r-e-v, as in Victor, -e-n.

THE COURT: Screven?

THE WITNESS: Yes, sir.

THE COURT: All right. Welcome. Again, your voice is soft so pull it a little closer.

THE WITNESS: All right. Is that good?

THE COURT: That's good. Thank you.

Go ahead, Mr. Norton.

DIRECT EXAMINATION

BY MR. NORTON:

Q. Good morning, Mr. Screven.

Where do you currently work?

A. I work for Oracle.

Q. And when did you start working at Oracle?

A. In 1986.

Q. Before you joined Oracle, what did you do?

A. I was a student at Carnegie Mellon University.

Q. And did you graduate from Carnegie Mellon before you joined Oracle?

A. No. I studied there for four years, and then took a job at Oracle.

Q. What did you study at Carnegie Mellon?

A. I studied math and computer science.

503


Q. When you first joined Oracle in 1986, what was your job there?

A. I was a programmer in what was the very beginnings of the applications division.

Q. How long did you continue to work as a programmer at Oracle?

A. I worked as a programmer until the early 1990s.

Q. Did you have any experience as a programmer before you joined Oracle?

A. Yes, I did. I started writing programs when I was 13, actually, and had my first job writing programs when I was 16.

Q. About how many years of your professional career was your primary responsibility to be a programmer?

A. Uhm, I guess that would be not counting -- actually, even a time in college I worked as a programmer, so I guess that would be ten years, 12 years, 13 years.

Q. And do you still program now?

A. I do.

Q. At some point, did your job at Oracle involve different responsibilities from just programming?

A. Yes. In the early 1990s, I had started working for one of our founders in an advanced development group. And when he became ill and had to leave the company, I started working for our CEO, Larry Ellison, basically as his technical staff.

That job eventually evolved into what I do now, which

504


is being Oracle's chief corporate architect.

Q. And what are your responsibilities as Oracle's chief corporate architect?

A. As chief architect, my responsibility is to provide technical direction across all of Oracle's product lines. And that also means being involved in our mergers and acquisitions, doing technical due diligence, making recommendations, you know, to Mr. Ellison about technology.

Q. So as -- in your capacity as chief corporate architect, are you familiar with the various technologies that Oracle uses in its businesses?

A. Yes, I am.

Q. And is Java one of those technologies that you're familiar with?

A. Yes. Java is one of the most important technologies that we use in our business.

Q. Can you explain a little bit more how it is that you are familiar with the Java technology?

A. Well, as you asked before, I program still, and so one of the important ways I'm familiar with Java is, of course, I write a lot of Java programs.

Now, beyond that, various business units within Oracle report to me. So I'm responsible for our MySQL business and our Linux business and virtualization businesses.

And, you know, those groups all use Java, in part, to

505


create their products. So I program in Java, and I manage people who also program in Java.

Q. Now, the virtualization in MySQL business, the Linux business, are those significant businesses to Oracle?

A. Yes, yes, they are.

Q. Now, the middleware business in particular, were you involved -- could you describe for a moment what the middleware business is and how it uses Java.

A. So middleware, generally, is sophisticated software that helps enterprise -- that means companies and governments and other organizations -- create applications that run on servers and that often have Web user interfaces used by users, and then often interact with databases to store data.

Now, Oracle's middleware is based almost entirely on Java.

Q. So is the middleware business, is it written in the Java language?

A. Yes. Almost every bit of our middleware is written in Java.

Q. And does it use the Java APIs?

A. Yes, it uses the Java APIs extensively.

Q. And do Java applications written by other persons or other companies, do those run on top of Oracle's middleware?

A. Yes. There are many customer applications and third-party applications that use Oracle's middleware. And that means, of

506


course, they themselves are also written in Java.

A. Yes, I was.

Q. What was your involvement in that decision?

A. Well, we had had an earlier attempt at creating middleware that was not based on Java, that was based on C and C++. And that proved to be awkward. And so as we looked around for other technologies to use to -- instead of that, Java seemed like a very natural choice.

Q. And were there particular reasons why Oracle decided to base its middleware business on Java?

A. Yes. So Java has some very interesting characteristics.

For one thing, Java is a very productive programming 15 environment.

So the language coupled with, you know, the APIs are -- make it easy to write sophisticated programs with large numbers of people involved.

So that would mean something like I could run it on Windows, I could run it an Mac OS. Also, I could run that program on implementations of the Java runtime environment

507


provided by different vendors. So I could run my program in Java provided by Oracle, or I could run my program in Java provided by IBM.

So as a software creator, Java means that I can write my program once and use it, sell it, deploy it on lots of different platforms and lots of different places.

Q. With respect to the Java language itself, was one of the reasons that Oracle decided to base its middleware business on Java, did that have anything to do with the benefits of the Java language itself?

A. Yes. Java is a very well-specified language. And part of the way it's well specified is, you know, being very specific about the way Java behaves independent of the platform it's running on.

Now, that's very different than some other programming languages, especially programming languages we were using at the time.

So, for example, the C programming language back then was not as well specified. So, for example, if I had an integer, a number in my program, I couldn't be sure exactly how large that integer would be, how many bits. You know, to use a technical term, you know, a particular integer value may be comprised of. So what that meant was that I, as a programmer, had to often write specialized code by platform in order to have my program be able to run on different platforms.

508


In Java, I didn't have to do that. Java was very well specified, and it had a set of language features which -- which enabled me to quickly and easily write programs.

Q. Let me just make sure I have this right. When you say the language is well specified, can you just explain what "specified" means in this context.

A. So there is a -- there is a document called the Java language specification. It's, you know, a few hundred pages long. And it describes what is the syntax of the language.

In other words, you know, what are the key words I use when I write a Java program. What order I have to put them in. You know, what are the basic operations that are part of the language.

And that document is very -- it's very precise, right. And doesn't leave a lot of wiggle room for implementations.

So that characteristic of being precise and not compromising on a platform basis means that programs written in Java will run the same on every platform or in every implementation, as long as those implementations are compatible implementations.

Q. So is the use of the Java language alone sufficient to have write once, run anywhere?

A. No, it's not, actually.

So, it's a necessary part of write once, run

509


anywhere, but you also need APIs. So you need prebuilt Java programs to provide additional functionality to the application. Things like, you know, being able to talk to other computers over a network, or being able to store data on a disk drive.

You need those other prebuilt programs to run the same on every platform for your application that relies on those facilities to have write once, run anywhere.

Q. If I could pause here and ask you to define or explain what an API is in the sense you're using it here.

A. So an API is a part of a program. So when -- if you -- if you -- if you look at the prebuilt programs that are shipped by Oracle with Java, and shipped by other vendors who license Java, you know, they -- they -- those programs have two parts to them.

One part is an -- is the definition of the -- of the structure of the programs and the ways in which -- the ways in which programmers can use those prebuilt programs.

The other part are a sequence of statements that carry out the facilities that are part of the program.

So in -- I think, for example, I think if you were doing something like manipulating a list, there are -- there are methods of lists that say, you know, add an entry, remove an entry. Right.

So the fact that there is such a thing as a list, the

510


fact that there is add entry and remove entry, you know, those are all part of the API, you know, that is part of the Java prebuilt program list.

Q. So is there any relationship between the API itself and the -- the -- start over with that.

What is the relationship between the prewritten programs, the class libraries, and the API specification itself?

A. Well, the APIs in Java are actually directly embedded within those prebuilt programs.

In Java, there is no distinction between -- between creating the API and creating the code that actually implements the API.

A Java program is described as -- by a set of text files called Java files, .java files. And those .java files contain a structure and key words and other kind of Java language elements.

And some of those Java language elements are -- would be deemed part of an API, and some of those Java language elements would be procedural statements implementing the API. But in Java, they are commingled. There is no separation between them.

Q. So there's a separate thing or a thing called the API specification; is that correct?

A. Well, what there is is, there is human readable documents

511


that are created, actually, by processing those Java source files and extracting out, you know, that human readable form. The source of truth about what the API is and what it does, that is actually part of those Java source files that define the Java programs.

Q. So does -- is the API specification, in fact, part of the -- the Java program?

A. Yes. The API specifications are part of the Java program.

MR. PURCELL: Objection. Leading, Your Honor.

THE COURT: Well, it was leading. I'll allow it in this instance.

Be careful not to lead. Go ahead.

MR. NORTON: Thank you, Your Honor.

BY MR. NORTON:

Q. Can you see from the stand this file cabinet (indicating)?

A. I can.

Q. Is this, is this an API?

A. No, that is not an API.

Q. Is this like an API?

A. No, that's not like an API.

Q. Is there any similarity between this file cabinet and an API?

A. No, there's no similarity.

So, look, an API is Java language program text which does two things. It gives form and shape to -- to the rest of

512


the Java program, those procedural statements. And it's -- informs programmers on how to use those prebuilt Java programs.

You know, that is a metal box. You know. It -- it can -- you can put things in it. You can put folders in it.

You can put books in it. You could put old shoes in it.

Right? But it has a big difference between an API.

An API is part of the program. The file cabinet is in no way part of what you are putting into it. It doesn't affect them. It doesn't define them.

An API defines the programs. It gives the program structure.

Q. Now, are you yourself -- do you design APIs?

A. Yes.

Q. Do you consider the designing of APIs to be a creative process?

A. It is a very creative process. It's one that requires insight and thought. Compared to other programming tasks, I would say it is the most creative.

Q. Can you explain what it is about the process of designing APIs that is creative?

A. There are two -- there are two significant aspects that a person has to consider when they're designing an API. You know, one is -- is what is the functionality that is required by the potentially thousands and thousands of users of that API. In the case of some of those Java APIs, it's millions of

513


users. Right.

So it's -- it takes a lot of thought to consider what -- what is the vast range of programs that are going to be using it? You know, what should I include within that API?

You know, what -- what -- how should I structure the API?

You know, in Java, API is not just a simple list of program entry points. It's a complex web of classes that you lay out and design. Right.

You also have to consider what is the implication for the underlying implementation. Because in many ways the implementation of the API is going to be very strongly affected by the layout and structure of the API.

Q. Can I interrupt you for just one moment.

Can you explain, when you use the word "implementation of the API" what you're referring to.

A. Yes. I'm referring to the additional Java program language statements that appear in Java source files that are not the API.

So, for example, I think I mentioned an example of, you know, add to a list. Right. So if you looked into a Java language source file that was implementing a list, and then you would find -- you would find a point in that file where the add to list entry point is declared. You know, that's part of the API. You'd see a small number of Java language statements following it which actually describe how to add it to the list.

514


So that how to add it to the list, that's the implementation part. The fact that there is an add to list function and what kind of information must be provided when you add to the list, and what kind of information is returned when you add to the list, that is all part of the API.

Q. And are those choices that are made during the designing of the API, or choices that are made during the implementation of the API?

A. Well, the choices of exactly what information must be presented when you add to the list, whether or not there is going to be a way to add to the list, what gets returned when you do add to a list, that is all part of the API design process.

The subtle thing about the API design process is that, you know, you also must reflect upon what you're going to do to implement that API entry point.

So as I'm designing an API, I have to understand that even though I may not actually be providing the code to implement that API entry point right away, I need to understand at least what is going to be required to implement it.

Because, otherwise, I could create an API which is unimplementable that no person could actually cause to exist, or perhaps would be very slow or cumbersome to build.

So that is why it is so critical to think carefully, you know, when you design APIs, because you have implications

515


both on hundreds, thousands, or millions of users in the future, and also on programmers who are going to actually provide an implementation of the API later.

Q. When an API is designed well, does that have any implications for the productivity of the programmers who will then use those specifications?

A. Yes. I mean, if an API is designed well, that means it provides very useful functionality and it -- it's easy for programmers to use.

And that means that programmers who then use the API have to write less code themselves, and they get to take advantage of useful functionality.

Q. Now, are you familiar with the 37 API packages that Oracle asserts Google infringes?

A. I am.

Q. And how is it that you're familiar with those 37 in particular?

A. Well, I'm generally familiar with all of the APIs that are part of the Java Standard Edition. And I've seen a list that was provided to me of the particular APIs for which there's an assertion.

Q. Now, what you've described about APIs in general -- let me ask specifically.

The design of the 37 APIs that Oracle asserts are infringed, does that reflect creative design?

516


A. Yes.

Q. Are those APIs well designed?

A. Yes.

Q. Do you -- when you program in Java, do you use those 37 API packages?

A. Definitely.

Q. And do you find them to be practical?

A. I find --

MR. PURCELL: Objection, Your Honor. This is expert testimony.

THE COURT: It is.

MR. NORTON: I think the question was when he programs.

THE COURT: No more so than everything we've heard so far from this witness. I mean, the entire thing is specialized, specialized testimony, isn't it?

MR. PURCELL: I think so, Your Honor.

THE COURT: Well, are you going to cross-examine on these points?

MR. PURCELL: I will.

THE COURT: Well, then, I'm going to let him go ahead because you're going to be asking the same character of questions.

But I am going to sustain the objection as leading.

You are leading this witness up and down. You must stop

517


leading your own witness, Mr. Norton.

MR. NORTON: I understand, Your Honor.

BY MR. NORTON:

Q. In order to use the Java language, must you also use APIs?

A. Well, okay. So the APIs that come standard with Java, they're very useful and very productive. And I think Java programmers using a compliant implementation invariably use those APIs.

You do not, however, have to actually use the APIs that come with Java. The APIs are defined independently of the Java programming language. And, you know, so you could create your own independent APIs, if you wish.

In fact, for some aspects of the standard APIs, I mean, there are parties out there who have created alternate implementations, you know, or totally different APIs that accomplish many similar things.

So, for example, there are different ways to log.

And logging here means the program writes out information about what it's doing so that system administrators can understand what's happening behind the scenes.

There are different -- there are different APIs, alternate APIs for doing mathematics. So there's built-in mathematical functions within -- within the standard Java APIs, but there's alternatives out there produced by -- by other folks.

518


There are encryption libraries that are part of the Java Standard libraries. There are alternate APIs for doing encryption.

So, yes, it's very, very common for Java programmers who use the standard APIs because they are very good. But it's also possible to not use any of them.

Very few, very, very few of the classes that are part of the Java Standard libraries are actually mentioned at all within the Java language specification. And even of the ones that are mentioned, almost no methods, almost no parts of the actual entry points for those classes is defined.

So someone who is starting from the Java language specification could go out and create an alternate set of APIs that is totally different and totally independent of the standard APIs that Oracle ships.

Q. Now, has Oracle ever redesigned the 37 APIs that are in suit?

A. No, no, we have not.

Q. Is there any reason why Oracle has not done so?

A. Well, I mean, for one thing, there's no reason for us to.

I mean, the APIs are well designed and they're well specified. They are proven over time. Millions of Java programmers use them.

To redesign and re-create them would be a lot of work. I mean, there's a lot of creativity that went into

519


designing them in the first place. Why redo all of that?

Right? It really makes no sense.

If we did redo it all then, of course, that means, you know, there would be millions of Java programmers out there who are -- know how to use the standard APIs as they currently exist, and would have to be reeducated to use these new APIs. So there's just -- there's just no reason and too much expense.

Q. Is there any technical reason why Oracle would be unable to come up with alternate API specifications for those 37 --

A. No, no. We definitely could come up with alternate APIs than the standard ones.

Q. Were you involved in Oracle's decision in 2009 to acquire Sun Microsystems?

A. Yes, I was.

Q. And can you just describe, briefly, what that involvement was.

A. Well, we -- we -- the opportunity to acquire Sun came upon us, and we needed to make a decision as to whether or not to proceed.

So myself and a small number of other Oracle executives performed a quick investigation by talking to Sun employees and reading some of the material to try to -- try to evaluate the company. My particular focus was on the products and the technology.

520


And did you have a position either for or against Oracle's acquisition of Sun?

A. Yes, I was very much in favor of acquiring Sun. And for me the primary reason was because of Java.

Q. And why was Java the reason that you were in favor? What in particular about Java was the reason you were in favor of the acquisition?

A. Oracle had very large businesses that depended on Java, so, our middleware business and our applications business. And so being able to acquire Sun and add Java to that -- to that set of products made a huge amount of sense.

Java was a very valuable asset. It still is a very valuable asset. I mean, to me, if all we did was get Java by buying Sun, it was easily worth whatever we had to pay.

Q. Relative to the rest of what Oracle acquired when it bought Sun, did you have a view as to how much Java was worth? Without using numbers but just relative to the rest of it, how important was Java in the acquisition of Sun?

A. Well, like I said, I mean, we picked up compelling technologies when we acquired Sun. But if the only technology that we were able to acquire was Java, then the purchase price was worth it.

I mean, even if we had to throw away every other part of Sun and only keep Java, it was worth paying that $7.4 billion.

521


MR. PURCELL: Objection, Your Honor.

THE COURT: Sustained.

Ladies and gentlemen, the $7.4 billion number has nothing to do with this case. Disregard it.

Mr. Norton, we talked about this before.

MR. NORTON: I understand, Your Honor.

THE COURT: All right. Continue.

BY MR. NORTON:

Q. Have you ever heard of the Apache Software Foundation?

A. I have. It's a nonprofit organization that is largely -- largely backed by IBM, that creates open source components or products or projects licensed out under their Apache license.

Q. Have you ever heard of an Apache project called Harmony?

A. I have.

Q. What is or what was Harmony?

A. Harmony was an effort to create a clone of Java.

Q. Any particular version of Java?

A. I think they were based on Java version 5.

Q. And is that SE?

A. Yes. You mean the edition. Yes, it was what we call Java SE, Standard Edition.

Q. Now, at some point in time did Sun itself release Java SE under an open source license?

A. Yes, it did. It released something called the OpenJDK, which was Java SE released under the GPL, the GNU Public

522


License, a different open source license.

Q. A different open source license from what, please?

A. I'm sorry. A different open source license than the Apache license.

Q. When you refer to the Apache license, is that a standardized form license?

MR. PURCELL: Objection. Leading.

THE COURT: Sustained.

BY MR. NORTON:

Q. What is the Apache license?

A. The Apache license is an open source license that was created by the Apache Foundation. And all of the -- of the products or components that are produced by the Apache Foundation are licensed out to others under the Apache license.

Q. You referred, also, to the GPL license?

A. Yes. The GPL -- that stands for GNU Public License. That is G-N-U. And that is a different open source license created many years ago by the Free Software Foundation.

Q. Was the GPL created by Sun?

A. No. The GPL was not created by Sun.

Q. Now, after Sun released Java SE under an open source license, did the Apache Harmony project continue or stop, or did anything change?

A. It continued for some time afterwards.

Q. Now, at some point in time was there a disagreement

523


between Sun and Apache with respect to Harmony?

A. Yes.

So, the Apache Foundation, in order to release Harmony, sought licenses from Sun. They sought a specification license in order to release Harmony. And Sun did not want to provide one to them.

Q. Do you know -- strike that.

When you say that Apache wanted a specification license, can you explain what you mean in this context by the "specification."

MR. PURCELL: Objection, Your Honor. Foundation.

THE COURT: Do you know the answer to the question?

THE WITNESS: Yes.

THE COURT: Overruled.

Please answer.

THE WITNESS: So, Apache sought a Java specification license, basically covering what they were producing in Apache.

BY MR. NORTON:

Q. And did Sun have a position with respect to Apache's request?

A. Sun was willing to grant Apache a specification license and also what's called a test kit license, which is used to ensure compatibility, as long as the Apache Harmony product or component was -- was only available for use on desktop machines or servers, not mobile devices.

524


Q. Is there a term that's used to describe that type of restriction?

A. Yes. It's called a field of use restriction.

Q. At some point, did Oracle become involved in the dispute between Sun and Apache?

A. Yes. At one point Oracle cosigned a letter that we -- that was sent to Sun, Jonathan Schwartz, the Sun CEO specifically, encouraging Sun to grant an unencumbered license to Apache.

MR. NORTON: May I approach the witness?

THE COURT: Yes, you may.

MR. NORTON: I'm handing the witness 2347.

BY MR. NORTON:

Q. Do you recognize Exhibit 2347, Mr. Screven?

A. Yes, I do.

Q. Can you say what it is?

A. It is the letter I just mentioned. It's the letter that Oracle and others, other companies, sent to Sun to encourage Sun to grant an unencumbered license to Apache?

MR. NORTON: I offer 2347.

MR. PURCELL: No objection.

THE COURT: 23 --

MR. NORTON: -- 47.

THE COURT: Is now in evidence. Go ahead.

(Trial Exhibit 2347 received in evidence.)

525


(Document displayed.)

BY MR. NORTON:

Q. Now, Mr. Screven, if we can see the second page of the letter, do you see your name there?

A. Yes, yes, I do.

Q. And there's no formal signature, hand signature, but did you effectively sign this document?

A. Yes.

Q. And did other companies sign this document, as well?

A. Yes, they did.

Q. Was one of the other companies that signed onto this document Google?

A. Yes. Yes, it was.

Q. And on the document it says, Bill Coughran, vice president of engineering, Google.

A. Yes, that's right.

Q. Are all of the companies that appear on this letter, as signatories to this letter, did they have any involvement with Java?

A. Yes, they were all very involved in Java.

I think most, if not all, of them were part of the Java Community Process, which is a -- which is Sun, and now Oracle -- organized consortium to help advance Java.

Q. Now, what did you sign this letter?

A. I think there's multiple reasons. I mean, one, one reason

526


is that even back then Sun as a company was not doing well.

And, you know, there was general concern that if Sun began to fail as a company, then, you know, their behavior with respect to Java in terms of investment or licensing could become very difficult.

So Oracle, of course, we were wholly dependent on Java. We had very large businesses that were -- that were dependent on Java. And so, you know, faced with having to at some point in the future negotiate with Sun on renewing our Java license at a time when Sun the company may be in serious jeopardy, that was something that was, frankly, frightening to us.

And so having -- having Sun grant unencumbered licenses to Apache would mean that we would have an alternate source of Java technology. So we would be in a better negotiating position with Sun, and certainly in a better position with respect to our dependence, in general, on Java.

Q. Now, did Sun ever agree to Apache's request for a specification license with an unencumbered TCK?

A. They did not.

Q. Did Oracle continue to pay Sun for specification licenses?

A. Yes, we did.

Q. Now, at the time that you signed this letter, did you have any concerns about whether an open source Apache Harmony implementation would have -- would harm Java?

527


A. I didn't because, you know, all of the parties who were co-signers of this were very involved in Java. And, I mean, at the time it seemed, you know -- frankly, it seemed inconceivable that any of the parties involved in signing this letter would want to do anything to harm Java or fragment Java.

Now, that turned out not to be the case.

Q. Just so we're clear -- refer to the timeline here -- what is the date on the letter that we're discussing, Exhibit 2347?

A. It is June 22nd, 2007.

Q. All right.

MR. NORTON: May I read from the timeline, Your Honor?

THE COURT: You may.

BY MR. NORTON:

Q. So November 2007, Google released the Android software development kit?

A. Yes.

Q. And the date of the letter is how many months before?

A. Roughly five months before.

Q. Now, was it of any relevance to you in signing this letter that Apache had asked for a TCK?

A. Yes. So Apache clearly wanted their implementation to be compatible with the standard implementation of Java because that's why they're asking for test kits.

I mean, what a test kit does is it provides a way for

528


an independent implementation of Java, to ensure that, in fact, it is compatible with the standard implementation.

So it's a whole bunch of, basically, little programs that exercise the -- the Java implementations and make sure it has the correct behavior.

So the fact that Apache wanted test kits means they wanted their Java implementation to be compatible with all the other standard Java implementations.

Q. Now, at the time you signed the letter in June 2007, did you have any knowledge that Google was developing a platform that used the Java language and some but not all of the Java SE APIs?

A. No, definitely not.

Q. Had you known that, would that have had any bearing on your decision to sign the letter?

A. There's no way we would have pursued this course if we had known that Google intended to fragment and fracture and fork Java.

To be perfectly fair to Sun, they always resisted granting these licenses to Apache. And, frankly, they were right because they foresaw, I imagine, that granting Apache licenses would lead to fragmented/forked Java implementations.

We did not envision that because we couldn't imagine anyone who depended on Java like we did could think that that would possibly be in their best interests. Apparently, Google

529


did.

Q. What is the status of Apache Harmony now?

A. It's basically shut down. It's in what Apache Foundation called the attic. It just means a project that is no longer being developed.

Q. Now, given your -- do you have any role with respect to the Java Community Process as a result of your position at Oracle?

A. Yes. The Oracle employees who are responsible for the Java Community Process work for me.

Q. And as a result of your responsibilities in -- as chief corporate architect and overseeing Oracle's role in the Java Community Process, would you expect to be aware of any implementations, commercial implementations of Apache Harmony?

A. Yes, because Apache Harmony never received a license and is not compatible, they never ran the compatibility tests, then any -- any meaningful implementation of Apache Harmony, any meaningful use of Apache Harmony would naturally come to the attention of the -- of the individuals and companies that are part of the Java Community Process; and, therefore, I would be aware of it.

Q. Are you aware of any commercial implementations of Apache Harmony in the world today?

A. Only Android.

Q. What is GNU Classpath?

530


A. GNU Classpath was an effort to create a GPL-licensed version of the Java class libraries that are part of J2SE.

Q. Did Oracle ever take a license for the GNU Classpath?

A. No, no. As a project, GNU Classpath was always incomplete. They never implemented the whole API. They never --

Q. I'm sorry. That was a little quick.

A. Too fast. I'm sorry. I'll repeat.

It was always incomplete. They've never fully implemented the full J2SE API. They did not have a license from Sun. They did not ever run the test kit. So it's of absolutely no interest to Oracle as a -- as a company licensing Java.

Q. And are you aware of any commercial implementations of GNU Classpath?

A. No, I'm not aware of any commercial use of GNU Classpath.

The reason for its existence simply disappeared when Sun released OpenJDK under GPL.

So once Sun released OpenJDK under GPL, then open source programmers had a GPL version they could use.

Q. Now, prior to Oracle's acquisition of Sun, did Oracle have any experience building applications for mobile handheld devices?

A. Yes. Yes, we did. So we built -- we built handheld applications for managing warehouses. We built handheld

531


applications for salespeople in the field. We built handheld applications for service people in the field. So repairmen visiting a data center to repair a computer. We built mobile applications for things like e-mail.

Q. Prior to the acquisition of Sun, did Oracle have the technical -- have any experience building a smart phone platform?

A. We built smart phone applications and mobile device applications, but we didn't have smart phone platform software.

Q. Now, once Oracle made the decision to acquire Sun, were you involved in any efforts to investigate building a smart phone platform with Java technology?

A. Yes. After we -- after we acquired Sun, we considered whether or not we should enter the smart phone platform market because we had acquired Sun, and Sun had Java. And Java was, seemed to us, an excellent base for building a smart phone platform.

Q. And were you involved in these --

A. Yes, yes, I was involved in discussions with our CEO Larry Ellison and other -- other senior Oracle executives about the prospect of entering that market.

Q. Did you reach any conclusion as to whether -- purely as a technical matter, whether it would be possible for Oracle, with Sun's Java technology, to build a smart phone platform?

A. Yes. We were confident that from a technology basis we

532


could build a compelling smart phone platform. However, we concluded from a business perspective that it would not be a profitable venture for us.

Q. What were the reasons -- when you say "we concluded," were you part of that decision, as well?

A. Yes, yes.

Q. And what were the reasons for your decision not to go forward with a Java-based smart phone?

A. Well, you know, when you enter a market, especially a competitive market like smart phone platforms, it's important to be first with a compelling advantage.

Our compelling advantage would have been Java. But Android had already been released. Android was already out on millions of devices. So Google's Android-Java clone had basically foreclosed the market from us.

MR. NORTON: Nothing further.

THE COURT: Thank you. Cross-examination.

CROSS EXAMINATION

BY MR. PURCELL:

Q. Good morning, Mr. Screven.

A. Good morning.

Q. On direct examination you mentioned that there were various, different editions of the Java platform, correct?

A. Yes.

Q. There is Java SE, which is Java Standard Edition, correct?

533


A. Correct.

Q. And Java Standard Edition, Java SE, that was the original Java platform, correct?

A. Uhm, yeah. It grew out of what was the original Java platform.

Q. And Java SE is designed to run on desktop computers, correct?

A. No, I wouldn't say so. It's designed to run on any platform that has sufficient computing power. And today that includes servers, desktops, laptops and smart phones.

Q. Java SE is primarily used in desktop computers and laptop computers, isn't it?

A. I wouldn't characterize it that way.

Q. Isn't there another platform called Java EE?

A. There is something called Java EE.

Q. And that other edition of Java, Java EE, that stands for Java Enterprise Edition, correct?

A. Yes.

Q. And Java Enterprise Edition is primarily focused on larger computing devices like servers, correct?

A. No, that's a mischaracterization.

Q. Why is that a mischaracterization?

A. So Java Enterprise Edition is actually additional functionality. It's not a different version of Java at all.

Q. All right.

534


A. I'm not finished with my answer.

(Reporter interrupts.)

A. So Enterprise Edition is additional functionality. It's not a different version of Java at all.

And that additional functionality in Enterprise Edition is implemented on top of J2SE, which is wholly and completely embedded it Enterprise Edition.

Q. By additional functionality in Java EE, you mean there are additional APIs and class libraries available in JAVA EE?

A. Yes, there are additional APIs.

Q. And there are applications written for Java EE devices that depend on those additional APIs that are present in EE but not SE. Correct?

A. That is true.

Q. And that means that an application that is written for EE and depends on those additional applications that aren't in SE would not run on a device that's a Java SE device. Correct?

A. It would only run on that device if you put the Java EE classes on that device.

Q. So unless the Java EE classes were put on the SE device, the EE application wouldn't run on the SE device, correct?

A. But that's true of every computer. If I don't put the Java EE classes on a server, the application won't run there either.

Q. And there's also something, I think you mentioned, called

535


Java ME, correct, Java Micro Edition?

A. That's correct.

Q. And that is a Java edition that is designed primarily for smaller devices, correct?

A. So the Java Micro Edition was a version of Java that was designed to run on devices that did not have the computing capacity to run full Java.

Q. Right. And because Java ME was designed for smaller devices with less computing capacity, it uses a stripped-down version of the APIs and class libraries, as compared to SE, correct?

A. I wouldn't call it stripped down. I would call it reduced.

Q. It has fewer APIs and class libraries, ME, as compared to SE. Correct?

A. Yes, because those additional entry points require essentially too much memory or too much CPU power --

(Reporter interrupts.)

A. CPU. Central processing unit.

-- and too much memory to run on very, very small devices.

Q. And so that means that an application that's written for Java SE and depends on the Java SE APIs won't necessarily run on a Java ME device that doesn't have some of the Java SE APIs. Correct?

536


A. That's correct.

Q. And then there's yet another platform, a Java platform called Java Card, correct?

(Reporter interrupts.)

MR. PURCELL: Platform called Java Card.

THE WITNESS: C-a-r-d.

MR. PURCELL: I'll try to slow down.

BY MR. PURCELL: Q. So, Mr. Screven, the question is, there's yet another Java platform called Java Card, correct?

A. Yes.

Q. And that runs on yet simpler devices as compared to ME, like smart cards, correct?

A. That's right.

Q. And that has yet fewer APIs and class libraries than JAVA ME. Doesn't it?

A. That's right.

Q. So that means that an application written for Java Card wouldn't necessarily run on a Java ME device because it wouldn't have the same APIs and class libraries, correct?

A. I'm sorry. Could you ask that question again. I got mixed up between which direction you're talking about.

Q. I may have gotten it backwards.

That means that an application written for Java ME, that depends on the Java ME APIs and class libraries, wouldn't

537


necessarily run on a Java Card device because it doesn't have all those APIs and class libraries. Correct?

A. That's right.

Q. So, essentially, whether an application runs on a particular Java device depends on which edition of Java that application is written for, correct?

A. I would say whether or not a given application runs in a given Java environment depends on the APIs that are present.

Q. And there are APIs -- strike that.

There are different APIs and class libraries present in each of the different four environments we just discussed. Correct?

A. That's right.

Q. Differences in APIs between Java EE, Java SE, Java ME, and Java Card. Correct?

A. I think the difference between Java EE and Java SE is different than the difference between Java SE and Java ME.

In the case of Java EE and Java SE, all of the Java SE --

Q. Mr. Screven, my question was just, there are differences --

A. Your question doesn't make sense.

Q. Mr. Screven, my question -- and you can say it doesn't make sense, if you want -- there are differences in the APIs between Java EE, Java SE, Java ME, and Java Card, correct?

538


A. There are differences, but those difference are not the same depending on which particular pair of editions you're talking about.

Q. Fair enough. But, nonetheless, despite the fact that the differences may not be the same, there are differences in the APIs among all four of those platforms. Correct?

A. So for in the case of Java SE and Java EE, for, let's say, the list API that we've talked about now, the list API is the same on Java SE and Java EE. It's exactly the same. There is no difference at all.

Now, it is true that there's additional libraries, additional APIs that are part of Java EE. But there are no differences between what a list is on SE and a list is on EE.

Now, I don't know, actually, a particular list, but there are some Java SE APIs that have -- that are simpler. You know, the same classes exist on Java ME, but they have some entry points that have been removed. And that is because --

Q. Mr. Screven --

A. -- the computer environments have less power.

Q. Mr. Screven, whether or not an application will run on a particular Java device depends on which version of Java it is written for. Correct?

A. Well, yes, that's right.

Q. So that's not write once, run anywhere; is it?

A. Actually, I think it is write once, run anywhere.

539


Q. How can it be write once, run anywhere, Mr. Screven, if a particular application written for Java EE won't run on a Java ME device?

A. Yes, but an application that's written to work against Java EE runs on every computer that runs Java EE, whether or not it's provided by Oracle or another vendor.

An application that's designed to run on Java SE runs on every computer running Java SE, whether the Java implementation was provided by Oracle or not.

An application that was written to run on Java ME runs on every device that runs the Java ME, whether it was written by Oracle or not.

An application that's written to run on Java Card runs on every device running Java Card, whether that implementation was created by Oracle or not.

So write once, run anywhere exists across every one of those editions because exactly the same processes are followed across every one of those editions.

Q. But write once, run anywhere doesn't work across the different Java platforms; does it?

A. It works upwardly. So if I take an application that I wrote against Java SE, I can run it directly in Java EE. But if I depend on Java EE APIs, that's right, it doesn't work unless the Java EE APIs are there.

Q. And if you're taking an application that was written for

540


Java SE, you wouldn't be able to run it on a smart phone that's running Java ME; would you?

A. You would not. However, today smart phones actually are capable of running Java SE, and so phone manufacturers and customers are not interested in Java ME on smart phones anymore.

Q. Mr. Screven, during your direct examination I think you testified that there's no separation between the English language specifications in the APIs and the underlying computer program --

A. That's right.

Q. -- APIs, correct?

They're together in the same file?

A. Yes.

Q. The specification is part of the source code file. That was your testimony, correct?

A. Yes. When -- people often create additional language artifacts. But what Java programmers look at day-to-day, when they're trying to understand the API, what's called the Javadoc, that is directly embedded within the source file.

Q. All right. And those English language comments are then extracted from that file and used as the basis for Java documentation. Correct?

A. Well, it's more than the English language comments. It's also the associated Java language elements which form the class

541


declaration, method declaration, constant declarations, and other components which comprise the API, along with the comments.

Q. So it includes the Java language elements, like the declaration and the API name?

A. Yes.

Q. So the JAVA API name and the language declarations, those are Java language elements. Correct? That's what you just said?

A. Yes.

Q. Now, even though the plain language descriptions might be in the source code file, they're not actually part of the source code. Are they?

A. To me, they're part of the source code. They are in the file. If I look at -- if I go and I look at the Java API source files for, you know, the class files in question here or any Java source file, right, it's -- you see a very structured set of comments specifically tied to syntactic elements of the Java programming language, which will then be extracted out as part of the Java documentation.

Q. The English language comments in the source code file, they don't actually get compiled into bytecode that tells the device what to do; do they?

A. No, they do not.

Q. The plain language descriptions don't actually serve any

542


purpose at all, as far as telling the device how to run the program. Correct?

A. Yeah, the purpose of the English language text is to tell the programmer who's using the API how to use it, but, also, the programmer who's implementing those API entry points what to code.

Q. So if the English language specifications were stripped out of the source code file, the source code would run exactly the same on the device. Correct?

A. Yes. But, of course, if you stripped out the API, the file wouldn't compile. So, you know, the Java language program elements which are the API, independent of the English language comments, right, are absolutely essential to the Java source file.

Q. But as far as, actually, the source code that tells the computer what to do, the English language specifications don't provide any instructions to the computer. Correct?

A. That's right. It's the part of the API which is Java language which tells the compiler what to do with the rest of the statements and is part of that source file and is essential to the program.

Q. And it's part of the Java language that tells the programmer what to do. Right?

A. The part of that source file which is the steps the computer should take to implement the API, that is written in

543


Java programming language, along with the API elements, right, which also become extracted into the Javadoc.

Q. I think you said that some APIs come standard with the Java language. On direct, didn't you say that?

A. I say it comes standard it Java. Java is an umbrella term that refers to many things. It refers to Java virtual machines which actually execute Java at runtime. When you go to run the program, it actually is the thing which is causing the program to run. It is the Java language itself and associated tools like the compiler. And then it is libraries.

Right now, the Java language itself is separate from the Java virtual machine, and it's separate from the libraries.

Q. So some of the Java language APIs are required by the Java language specification. Correct?

A. Very, very little of it.

Q. Okay. But some of the 37 APIs at issue in this case are, in fact, required by the Java language specification. Correct?

A. I think that there are thousands of classes that are part of this case, and there's probably two dozen which are mentioned in the Java language specification.

Q. You testified on direct that programmers are used to using these particular Java language APIs, correct?

A. Yes. They are very common. They are very popular.

Q. The programmers depend on them. Correct?

A. Well, programmers depend on all kinds of programming

544


libraries. So --

Q. Including the Java language APIs?

A. Well, let's -- let's -- a programmer writing a program in Java, a modern programmer probably depends on -- if they're writing Java from Oracle, they almost certainly and definitely are using those Java APIs that Oracle provides. They are very likely to be using totally different APIs also provided by, let's say, the Apache Foundation. Right. They are very likely to be using APIs created by these other vendors who provide other interesting functionality.

Q. I think you testified that if the Java language APIs at issue in this case were stripped out of Java by Oracle, millions of programmers who work in Java would have to learn the new APIs. Correct?

A. What I was testifying about is, it made no sense for Oracle to create a different, alternate set of APIs because the ones we have are good and they're known by millions of programmers. We have no incentive to try to replace them.

Now, from the technical standpoint, we definitely could replace them. Right. But why would we? We have no incentive to do so.

Q. It wouldn't be very popular with the community of Java programmers if Oracle were to strip out the current APIs and replace them with new ones. They would have to learn new APIs. Correct?

545


A. Actually, what would happen is, they just wouldn't use our Java implementation. They would use IBM's Java implementation instead.

Q. Mr. Screven, you testified that you participated in the due diligence process when Oracle was deciding whether to buy Sun?

A. Yes.

Q. After analyzing Sun's business, you provided; a recommendation that Oracle ought to buy Sun. Correct?

A. Yes.

Q. And that entire due diligence process took two or three days?

A. That's right.

Q. And your role in that two or three day process was to evaluate all of Sun's products and technologies. Correct?

A. Well, you know, of course, we -- we briefly surveyed their technologies. But, of course, we had very little time, and so we had to focus on, you know, a small number of things we thought were key.

Q. And during the due diligence process, you didn't evaluate a single specific piece of Sun intellectual property; did you?

A. That's not right. I mean, we talked to Sun engineers about specific products and technologies that they had, were working on.

Q. You didn't evaluate any specific Sun copyrighted material.

546


Did you?

A. Can you please define what you mean by "evaluate."

Q. Did you calculate the market value of a single piece of Sun copyrighted material during this two to three day due diligence process?

A. Well, we -- our goal during the technical due diligence is to understand, you know, is there a reason not to buy the company? Is there some problem with the underlying technology we are not aware of from general public information?

Now, with respect to Java, Oracle was deeply involved in Java before --

MR. PURCELL: Your Honor, the witness is not answering the question.

THE COURT: That's true. He asked you whether or not you calculated the value of any copyrighted material during the two to three day due diligence. Either you did or you didn't.

You can tell us yes or no.

THE WITNESS: So what do you mean by "calculate"?

BY MR. PURCELL:

Q. Did you look at a single piece of Sun copyrighted material during the two to three day due diligence period and assign a value?

A. Yes. I personally assigned a value greater than or equal to the amount of money I'm not allowed to mention, right, for Java technology. That is the amount of money --

547


Q. That's not my question, Mr. Screven.

My question is, did you look at a single, individual Sun copyrighted material and assign a value to it during the due diligence period?

A. You mean like one single file out of Java? Is that what you mean? Or you mean all of Java?

Q. I don't mean all of Java, Mr. Screven. I mean a single piece of Sun copyrighted material.

A. The value of Sun technology is not in some individual autonomic piece.

So our job and what I did was say, how much is Java worth to Oracle? Is it worth at least the amount of money that we're paying? The answer is yes.

So I calculated, based on my expertise, based on my experience, that to Oracle Java as worth at least what we were paying for all of Sun.

Q. There's a lot of components to Java other than the 37 APIs at issue here. Correct?

A. Yes.

Q. Sun had a hardware business, right; they sell servers?

A. Yes.

Q. And Sun had other businesses, as well, where they sold other pieces of hardware. Correct?

A. Yes.

Q. And Sun had other software businesses, apart from Java.

548


Correct?

A. Yes.

Q. You mentioned the MySQL line of software.

A. Yes.

Q. That's a separate Sun software business that's not Java. Correct?

A. That's correct.

Q. And there is many other items of value under the Java umbrella apart from the 37 API packages at issue in this case, correct?

A. Yes.

Q. There were thousands of patents that Sun had related to Java, correct?

A. Yes.

Q. There is the Java trademark, correct?

A. Yes.

Q. And that's pretty valuable. Sun made sure that people were complying with compatibility requirements before they got to use the Java trademark, right?

A. Yes.

Q. You couldn't use the Java coffee cup unless you certified that you were compatible with Sun's Java TCK, correct?

A. Well, I don't know about the coffee cup.

Q. In any event, all of these different components were items of value related to Java, correct, at the time you bought Sun,

549


Oracle bought Sun?

A. They were all part of the value of Java.

Q. And then in addition to Java, there were the other hardware and software businesses that Sun had that I discussed, correct?

A. Yes.

Q. Now, during the due diligence process, you never prepared any document contemporaneous at that time that put any value on Sun's Java business, correct?

A. That's right.

Q. You never actually put in writing at the time, your testimony here today, that the value of Java to Oracle was greater than the value that Sun paid for the entire -- or, Oracle paid for the entire company, correct?

A. That's right.

Q. Talking a little bit about Sun's business, you mentioned that in 2009 when Oracle decided to buy Sun, that Sun was having some financial struggles, correct?

A. Yes.

Q. It's your opinion that Sun had a very strong focus on engineering, correct?

A. They did.

Q. And you would agree that Sun created some very good terminology, correct?

A. Yes.

550


Q. But despite its technology, you also think that Sun just wasn't very good at running a profitable business, correct?

MR. NORTON: Objection. Beyond the scope of direct, your Honor.

THE COURT: I'm sorry?

MR. NORTON: Beyond the scope.

MR. PURCELL: The direct was all about the value of Sun to Oracle.

THE COURT: Well, there was testimony about Sun might go out of business and what would that mean to Oracle and it was already failing. This is close enough to being within the scope. I will allow the question.

Please ask the question again.

BY MR. PURCELL:

Q. Despite Sun's good engineering practices, it was your impression that Sun just wasn't just very good at running a profitable business, correct?

A. That's right.

Q. You believe that Sun had lost its way in terms of its business strategy, correct?

A. Yes.

Q. Sun was never particularly good at bringing technologies to market in your opinion, correct?

A. I would not agree with that part. I think they had gotten to a point where they were particularly good at bringing

551


technology to market. I mean, there were times in the past when they were very good at it.

Q. All right. But in the few years before the Oracle acquisition, whatever skill Sun might have had at bringing technologies to the market had waned and Sun in that time period was no longer very good at bringing technologies to market, correct?

A. I would say overall they were -- they had lost their way.

Q. In fact, talking about the Java product line specifically, under Sun's direction the momentum for Java products had stalled, correct?

A. I think the external progress, the apparent progress of Java had definitely stalled.

MR. PURCELL: May I approach the witness, your Honor?

THE COURT: Yes.

(Whereupon, document was tendered to the witness.)

BY MR. NORTON:

Q. Mr. Screven, I've handed you Trial Exhibit 2237. Do you recognize this document, sir?

A. Yes, I do.

Q. And is this is a report that Oracle prepared about the acquisition of Sun to submit to the European community?

A. Yes.

MR. PURCELL: Your Honor, I would like to move 2237

552


into evidence.

MR. NORTON: No objection.

THE COURT: 2237 in evidence. You may show it to the jury.

(Trial Exhibit 2237 received in evidence)

(Document displayed)

BY MR. PURCELL:

Q. Mr. Screven, just for the jury's edification, the European Commission is the body, among other things, that regulates commerce throughout various European nations, correct?

A. Yeah. I'm not expert on exactly what they do in total. You know, they are they have some purview over mergers and acquisitions in Europe.

Q. They are a regulatory authority in Europe?

A. Yes.

Q. And they are a regulatory authority that has authority to approve or disprove mergers and acquisitions?

Excuse me. Let me say that again.

They are a regulatory authority in Europe that has the power to approve or disapprove mergers and acquisitions, correct?

A. Yes, I believe so.

Q. All right. So in submitting information to the European community about the Sun acquisition, Oracle would be sure that

553


everything in its submission was true and accurate, correct?

A. Yes.

Q. If you could turn to Paragraph 15 of the submission. This is on Page 13.

A. Turn to Page 15 or 13?

Q. Page 13, Paragraph 15.

A. Okay, yes.

Q. So Paragraph 15 starts with the sentence:

"Java's success - for Oracle in the industry - depends on Java remaining open and unified. Momentum for Java has stalled under Sun's stewardship and will benefit from Oracle's guidance and ability to make substantial financial investments in its continued development."
Do you see that?

A. Yes.

Q. And that was a true statement, correct?

A. Yes.

Q. If you look at the first bullet point under Paragraph 15, that begins with the sentence:

"First, Sun's stewardship of Java and its approach to the Java Community Process (JCP) has recently discouraged broad participation in the continued development of Java as a

554


industry standard, as evidenced, for example, by the submission of only five JCP specifications in the past 12 months, a small fraction of those submitted just three years ago."
Do you see that?

A. Yes.

Q. And that's a true statement?

A. Yes.

Q. Sun had stopped releasing new Java products at regular intervals, correct, prior to the Oracle acquisition?

A. Well, certainly the release process had slowed.

Q. And Sun's failure to deliver new Java releases was doing damage to Java, wasn't it?

A. Umm, you know, it was frustrating programmers. It was frustrating companies that relied on Java. I think, you know, it was starting to create angst, and that angst is damaging, yes.

Q. Mr. Screven, Oracle is very focused on making money, correct?

A. Yes.

Q. Always has been, correct?

A. Well, I mean, I've worked at Oracle for a long time. So probably at least for the time I've been there, yes.

Q. And it's your impression that Sun was never as focused on

555


making money as Oracle is, correct?

A. No. I would say my impression was that they did not seem particularly focused at the time that we acquired the company.

Now, years in the past under different leadership they maybe had very different attitudes.

Q. At the time prior to the acquisition it was your impression that Sun wasn't as focused on making money as Oracle, correct?

A. My impression is that they just weren't as focused, period, so.

MR. PURCELL: I'd like to play as a party admission from Mr. Screven's deposition at Page 70, Lines 16 to 21.

MR. NORTON: Objection. There were disclosures, designations for Mr. Screven and, therefore, should not be used as an admission. And I don't believe that it's offered for impeachment.

THE COURT: Overruled. Go ahead.

(Videotaped deposition played in open court.)

BY MR. PURCELL:

Q. So when Oracle was deciding to acquire Sun, Oracle was confident that it could take Sun's assets and find a way to make more money off of them than Sun had been doing, correct?

A. Yes. That's true in every acquisition.

Q. That was what drove Oracle's decision to acquire Sun, 25 correct?

556


A. Yes.

Q. And a necessary part of Oracle's strategy for making money off Java is to assert its intellectual property rights in Java against other companies, correct?

A. No. I think the most important way for us to make money in Java is to make sure that Java remains a widely-used evolving technology platform so that we can use it in our middleware business, we can use it in our applications business, it remains popular with companies. And doing that requires that we maintain the integrity of Java. That means no non-compliant Forks of Java.

MR. PURCELL: I would like to play as a party admission from Mr. Screven's deposition at Page 110, Lines 19 to 24.

THE COURT: Does it contradict what he just said?

MR. PURCELL: It does.

THE COURT: All right. Go ahead.

(Videotape played in open court.)

BY MR. PURCELL:

Q. Mr. Screven, you're familiar with the differences between feature phones on the one hand and smart phones on the other hand, correct?

A. Yes.

Q. Feature phones were less advanced devices with less computing power as compared to smart phones?

557


A. Yes.

Q. And because feature phones have less computing power, to the extent you can even run applications on feature phones, those applications would be much less sophisticated than the applications you can run on smart phones, correct?

MR. NORTON: Objection. Beyond the scope, your Honor.

THE COURT: Why isn't that true?

MR. PURCELL: This goes to Sun's ability to actually get into the smart phone business.

MR. NORTON: Objection. There was no testimony --

THE COURT: I don't think he testified about Sun getting into the smart phone business. Sustained.

BY MR. PURCELL:

Q. You testified on direct examination that prior to buying Sun, Oracle had never managed to develop a smart phone platform, correct?

A. We didn't try to develop a smart phone platform.

Q. I believe you testified that Oracle didn't have, prior to acquiring Sun, the expertise to develop a smart phone platform, correct?

A. I don't think we said "expertise." I think we might have said we didn't have the technology. That's different than expertise.

Q. All right. And then you testified that after buying Sun,

558


Oracle felt that it did have the technology necessary to buy a smart phone platform, correct -- to build a smart phone platform?

A. Yes.

Q. And since buying Sun in February, 2010 Oracle never has actually built a smart phone platform, correct?

A. That's right.

Q. And do you have any understanding as to why Sun, prior to the acquisition by Oracle, with Sun's technology hadn't built a smart phone platform of its own?

A. No.

Q. The fact is that Sun, prior to Oracle's acquisition in 2010, never had built a smart phone platform, correct?

A. Not as far as I know, no.

Q. And even prior to Android's release on the timeline in October of 2008, before Android was on the market Sun had never taken its Java technology and created a smart phone platform, had it?

MR. NORTON: Objection. Scope.

THE COURT: Go ahead. Answer the question.

A. Not as far as I know.

BY MR. PURCELL:

Q. You also testified that one of the important reasons why Oracle bought Sun was because some of Oracle's business lines depended on Java technologies, correct?

559


A. Yes.

Q. I think you testified that much of Oracle's middleware is written in the Java programming language?

A. Correct.

Q. And many of Oracle's business application platforms are also written in Java, correct?

A. Yes.

Q. So making sure the Java technologies were well taken care of, that was important to Oracle, correct?

A. Yes.

MR. PURCELL: Can we put Trial Exhibit 2347, which was admitted during Mr. Screven's, direct up on the screen?

(Document displayed)

BY MR. PURCELL:

Q. Now, this is a letter that you signed on behalf of Oracle, correct?

A. Yes.

Q. And you signed this letter requesting that Sun grant a license to the Apache Harmony project, correct?

A. Yes.

Q. And you wanted Sun to grant a license free of any Field of Use restrictions to Apache Harmony, correct?

A. Yes.

Q. And now you testified, I think, that Sun never gave a license to Apache, correct?

560


A. No. They never gave a license, that's right.

Q. The other way to look at that is that Apache never agreed to abide by the terms of any license, correct?

A. Well, that's true, because Sun offered them a license with a Field of Use restriction and Apache turned it down.

Q. Despite never agreeing to that Field of Use restriction, Apache had been making its product available on its website since 2005, hadn't it?

A. You could download their source.

Q. Right. So anybody could have taken, as of 2005, the Apache source code that included the Java class libraries that eventually made their way into Android, correct?

A. They could have taken it, yes, just like Google did, that's right.

Q. And anybody could have then used those APIs under the terms of the Apache license, correct?

A. Well, I think -- of course, you know, from what I understand, you know, this whole trial is about -- you know, dispute about intellectual property rights and, you know, that same dispute would now exist between Oracle and whoever did that, Google or otherwise.

So the fact that Apache made that source code available under the Apache license doesn't mean it was free to use for anyone under the Apache license.

Q. Sun never sued Apache, did it?

561


A. No.

Q. Sun never told Apache that by making the source code available and the APIs available for free for anyone to use on its website, that Apache was violating Sun's copyrights, did it?

MR. NORTON: Objection, foundation.

THE COURT: Well, you, yourself, Mr. Norton, laid this letter before the witness and asked him to testify all about it. So he has sufficient foundation to answer those questions.

This is a fair question within the scope of that line of questions. The objection is overruled.

Please answer that question.

A. Could you repeat the question?

BY MR. PURCELL:

Q. Sure.

Sun never asserted that Apache, by making its source code and the Java APIs available on its website for anybody to use from 2005 onward, was violating any Sun copyrights, did it?

A. Well, okay. I don't know about "asserted." They didn't sue Apache, right, but you know whether they wrote letters to people or talked to people, I don't know.

Q. Are you aware of any letters that Sun ever wrote to Apache --

A. No.

562


Q. (Continuing) -- accusing Apache of copyright infringement?

A. No, but I wouldn't necessarily be aware of those letters.

MR. PURCELL: Nothing further.

THE COURT: All right. Redirect?

REDIRECT EXAMINATION

BY MR. NORTON:

Q. Mr. Screven, you were asked some questions about different editions of Java on cross examination.

A. Yes.

Q. Is Java ME a Fork of Java SE?

A. No. No, it's not.

Q. Is Java SE a Fork of Java EE?

MR. PURCELL: Objection, your Honor. This calls for expert testimony.

THE COURT: It's within the scope of the questions you asked. Overruled.

A. No, it's not.

BY MR. NORTON:

Q. Is Java ME a Fork of Java Card?

A. No.

Q.

Are any of those four editions Forks of the other?

A. They are not Forks.

Q. Why not?

A. Well, they are each -- they are each editions of Java specifically designed for a particular purpose. In the case of

563


Card ME SE they spanned a range of compute hours.

So Java Card runs on -- they are like a little smart card, like a credit card. It's a very small processor and very little memory. So it's Java reduced down to run in a tiny little form factor. Right?

Java ME is designed to run on devices which are much less powerful than, say, a modern smart phone, but still more capable than just a little credit card size device. Something like your flip phones that you use.

Java SE is designed to run on anything from smart phones, you know, on up in terms of the compute power.

Now, each one has exactly the same sort of you know, like once run through it characteristic within that class of compute devices.

Q. You were asked some questions about APIs on cross-examination. Are the names of the API classes and subclasses, are those part of the Java language?

A. There are syntactic elements within the Java language. So I know this is going to sound like Greek to most of the people sitting in the audience, but the program language is -- program language, including Java, has something called a syntax. And that syntax describes all of the kinds of key words and literals and characters and other things that may appear within the programming language. And so the names of methods and classes and other elements which you see appearing

564


in API are syntactic elements within the Java language specification.

Q. So does the Java language specification require that one use any particular class?

A. No.

Q. No. No, it does not. I mean, there is nothing in the Java language specification that requires that there be a class named tree, but there is a class named tree within -- within the standard APIs.

You know, there is no requirement that there be a class called list, but there is a class actually, something called an interface called list within -- within, you know, the standard APIs.

Q. When you say "within the standard APIs," are you refusing to the language specification or the API specification?

A. I'm referring to the API specification.

Q. Is there any -- aside from what you described in your testimony on cross-examination as approximately two dozen elements, is there any functionality called for by the Java language that requires that you use any particular class?

A. Its very, very little. So, for example, if I have a string literal. So within my Java program that has a type.

The type is -- you know, it's an instance of the class string.

Now, you know, there are similar kind of requirements for, you know, a class called integer or a class called double,

565


but the actual programmatic interfaces of those classes is not specified or dictated within the Java language specification.

And, you know, beyond that couple dozen class names that appear within the Java language specification, you know, the many thousands of classes which are part of the APIs in question here are not mentioned at all as part of the language specification.

THE COURT: Let me ask a question on that.

You say there are about a dozen. What are the names of the dozen that are called out in the Java programming language? Do you know that by heart?

THE WITNESS: So it will be incomplete because it's off the top my head. But Double.

THE COURT: Double?

THE WITNESS: Yes.

Float?

THE COURT: Float?

THE WITNESS: Long.

THE COURT: Wait a minute. Float?

THE WITNESS: Float, F-L-O-A-T.

THE COURT: Yes.

THE WITNESS: Long, L-O-N-G.

Integer.

Bullion.

String.

566


Thread, I believe is there.

Object.

Class.

THE COURT: Class?

THE WITNESS: Class, C-L-A-S-S.

Now, I'm sure I have missed some that are mentioned.

Now, if you actually look at the Java language specification document, you'll notice that there are some example program texts. They mention other classes that are part of the standard library, but that -- but they are shown as program examples. They are not actually part of the language specification proper. So that -- so that if you remove them out of the libraries, you would not affect the behavior of the Java compiler.

Those other classes are a little special just because the compiler knows that they exist and have to exist, you know, as it's interpreting a program to compile, but that's it.

Other than those two dozen classes, there is nothing else.

THE COURT: Are these classes or are those methods? Like Double?

THE WITNESS: They are -- they are classes. They are classes.

THE COURT: So do they -- within each one do they have more than one method?

567


THE WITNESS: Yes. They have several methods.

Now, the methods themselves are -- almost none of the methods are actually described or mentioned in the Java language specification. Some of the methods are used in examples, but they are not actually part of the language proper.

So, for example, for the Class string has a method which is find a given character within the string. So if I'm looking at -- if I'm looking at a telephone number string and I'm looking for the dash, you know, there is a method of string that will let me find the dash. That method is not mentioned in the Java language specification. It's not part of the Java language. It is part -- part of the standard API that comes along with Java.

THE COURT: Okay. Thank you.

Go ahead Mr. Norton.

MR. NORTON: Thank you, your Honor.

BY MR. NORTON:

Q. Now, if you -- you were also asked some questions about the value of Java. If Java did not write once, run anywhere, would that have any effect on the value of Java to Oracle?

A. Yes, in two very important ways. One important way is that it would mean that our software would be harder to write.

If we wanted to run on a given platform and there was not a compliant Java implementation there, then we would have to

568


change our software to make it run there. So that would make our software development expenses much higher.

The second way is that because it would make Java less appealing to other developers outside of Oracle, it would mean that our products being implemented in Java would be less appealing to them.

So programmers like using our middleware and they like using our applications because they are implemented using this compatible programming environment, language, APIs, JVM. And if they can no longer be assured that Java is the same everywhere, then our middleware and our applications will be less appealing to them.

Q. You were asked on cross-examination whether you ever told anyone in writing that you believed that the value of Java was equal or greater to the purchase price of the company? Did you ever tell anyone orally?

A. Yes --

MR. PURCELL: Objection, hearsay.

THE COURT: Yes, but the -- I'm going to allow it in light of the cross-examination.

Go ahead. Overruled.

BY MR. NORTON:

Q. What did you say and to whom did you say it?

A. I told Mr. Ellison, our CEO, in a telephone conversation that we should buy Sun for no reason other than Java. Java was

569


easily worth the purchase price.

Q. And did you say this prior to the date on which Oracle decided to acquire Sun?

A. Yes.

Q. And so what year would that have been in?

A. Geeze, 2009 I guess.

Q. So, and at that time had Oracle brought any litigation against Google over Android?

A. No.

Q. If we can turn to the exhibit Mr. Purcell showed you, Exhibit 2237, which is the larger of the two documents.

(Witness complied.)

Q. And Mr. Purcell directed you to Page 17 of 205, which was Paragraph 15.

(Document displayed)

Q. And he identified the sentence that begins Paragraph 15:

"Java's success - for Oracle and the industry- depends on Java remaining open and unified."
Would you please explain what was intended by "unified" here?

A. "Unified" means --

MR. PURCELL: Objection, your Honor. I don't know that this witness wrote the document. No foundation.

THE COURT: But you, yourself, asked him about this

570


paragraph, correct?

MR. PURCELL: I did.

THE COURT: Then it's fair game for the witness to go back to the same paragraph and explain it.

Overruled. Go ahead.

MR. NORTON: If I may, your Honor.

BY MR. NORTON:

Q. Mr. Screven, were you involved in the preparation of this document?

A. Yes.

Q. And did you review the document before it was filed?

A. Yes.

Q. And would you please explain what was intended by the word "unified"?

A. "Unified" means that the various parties that create and ship Java implementations have compatible implementations.

They were all implementing the same programming language and that if we were shipping a Java implementation, it has passed the test kits and, therefore, compatibility is ensured.

Q. Mr. Purcell showed some deposition testimony of yours in which you discussed that enforcing intellectual property rights is a necessary part of monetizing.

Can you explain what you meant by that?

A. Right. So Oracle is the hardware and software businesses.

Now, in the software business we sell software. So people pay

571


us for licenses to use our software. And it's important to us that we actually enforce the intellectual property rights around our software. Otherwise, people would take and use our software without paying us and that would -- that would undermine and destroy our business model.

Q. And, I'm sorry. One more question on Exhibit 2237 on that same page that Mr. Purcell showed you, Page 17 [sic].

MR. NORTON: If we can scroll down to the second bullet on that page?

(Document displayed)

MR. NORTON: Thank you.

BY MR. NORTON:

Q. It begins, that paragraph begins.

"Second, as a result of this stagnation in the JCP process, vendors already have and will likely continue to fragment Java as a programming language and environment for developers."
Stopping there. Was that true?

A. Yes, yes.

Q. All right. And then if we go down a little further there's a sentence that begins "Google's." And that sentence says:

"Google's Android is also an example of splintering the Java software developer

572


community with an implementation that is a Sun Java Mobile Edition clone."
Now, is that one of the sentences that you reviewed in the preparation of the document?

A. It is, although I think -- I mean, there is a mistake there that it's actually a clone. I would say a Standard Edition more than a Mobile Edition.

Q. But a clone of Java?

A. A clone of Java.

Q. And when was this document prepared, do you know?

A. Actually, I don't remember now exactly when it was prepared.

Q. Was it prepared prior to the date on which Oracle closed its acquisition of Sun?

A. Yes, yes. It's between when we announced the acquisition and we closed the acquisition.

Q. And if you would actually turn to the very last page of the document?

19 (Witness complied.)

Q. There is a place and date that appears.

A. Yes.

Q. What is that date?

A. That is July 30th, 2009.

Q. So does that refresh your recollection that this document was prepared in July of 2009?

573


A. Yes, that's right. That is when it was prepared.

Q. And, again, using the timeline, July 30, 2009 was before Oracle filed any lawsuit against Google?

A. Yes.

Q. And in this document Oracle asserted that Android was splintering Java, is that right?

A. Yes.

MR. NORTON: Nothing further.

THE COURT: All right. May the witness step down?

MR. PURCELL: He may.

THE COURT: Okay. Thank you, sir. You may step down. You're excused not subject to recall.

(Witness excused.)

THE COURT: Time for a 15 minute break, isn't it?

Please remember the admonition.

THE CLERK: All rise.

(Jury exits courtroom at 11:13 a.m.)

THE COURT: Please be seated.

Here are some more things on the issues that I have to decide.

Now, I don't want you to give me this unless it's going to actually wind up being in evidence, but if it is going to be put into evidence, then I would like to have some advance thinking about it.

With respect to Java programming language being

574


something stand-alone and separate and apart from the APIs, I would like to have a listing of the commands or statements or declarations, whatever the more limited set is, of the Java programming language. Like, go to... whatever. But the whole list. Is it several hundred? Is it a few dozen? I'd like to see that list. And, also, the syntax rules, if there are syntax rules.

With respect to the -- also, with respect to the -- the witness referred to these 12 classes. I would like to know the 12 classes and the methods that are included within the 12 classes and then also to see these examples that he referred to, which he said were just examples, but, nonetheless, they are there. I would like to know what those examples are. They refer to other APIs, he said. I don't know those 12.

Then a different question. Within the 37 the plaintiff has made a big deal out of interrelationships, but it's always been very vague. What I am assuming that it means -- but I don't know, because it's never been proven, maybe it will be, but that's why I'm asking -- is that some particular method and some particular library in some particular class will borrow the code that is, and call up some method in a different class and so as not to have to repeat the same code, which is, you know, perfectly understandable that you would do it that way.

The suggestion has been made that in every single

575


instance Google copied those interrelationships so that we could find a one-for-one correspondence of -- if you go to, say, the ABS method, you would find that it calls up some other method, and the suggestion has been made that in every single instance Google calls up the exact same method within the method; i.e., copying exactly the interrelationships.

Is that true, Mr. Jacobs? Is that the way it works, or is it just some of those interrelationships?

MR. JACOBS: I think it's going to sound a little circular, your Honor, but to the extent that Google has implemented the application programming interfaces contained within the 37 packages, then Google has copied all of the elements, including the interrelationships.

We'll explain the interrelationships with the next witness actually. It might be a little --

THE COURT: All right. I can wait on that, but I would like to see some proof of that and that it -- and all of these 4500 or so methods where one of them calls up another method.

In other words, the witnesses have been referring to these as prewritten programs. Okay. I understand that. And maybe a prewritten program borrows from another prewritten program so you don't have to repeat that. And what I hear you saying is in every single instance where that occurs, Google has duplicated it, in fact, calling up the same method in the

576


same way that it's done in that particular method. I would be interested in knowing whether or not that's true.

So I know that that's what you allege. That's what I hear you saying. But the devil is always in the details and I would like to know if that bears out 4500 times.

MR. JACOBS: Understood, your Honor.

THE COURT: All right. So somebody surely has looked at that and knows the answer.

All right. We'll take our 15 minutes now.

(Whereupon there was a recess in the proceedings from 11:19 a.m. until 11:30 a.m.)

MR. JACOBS: Before we begin, your Honor, because would be tedious for the jury, we have reached agreement on a set of Java-related copyright registrations to offer into evidence.

THE COURT: All right. Go ahead.

MR. JACOBS: 450, 451, 452, 453, 454, 455.

THE COURT: All agreed?

MR. PURCELL: No objection.

THE COURT: All of those are now received in evidence.

(Trial Exhibits 450, 451, 452, 453, 454, 455 received in evidence)

MR. JACOBS: 460 -- you will see why we're doing this here, your Honor. 460, 461, 462, 463, 464.

577


MR. PURCELL: No objection.

THE COURT: Received.

(Trial Exhibits 460, 461, 462, 463, 464 received in evidence)

MR. JACOBS: 475, 476.

MR. PURCELL: No objection.

MR. JACOBS: 509, 510, 511.

MR. PURCELL: No objection.

THE COURT: Okay. All received.

(Trial Exhibits, 475, 475; 509, 510, 511 received in evidence)

MR. JACOBS: 513, 518.

MR. PURCELL: No objection.

MR. JACOBS: 520, 521.

MR. PURCELL: No objection.

MR. JACOBS: 523, 524.

MR. PURCELL: No objection.

MR. JACOBS: 526.

MR. PURCELL: No objection.

MR. JACOBS: 595, 596, 597.

MR. PURCELL: No objection.

MR. JACOBS: 598, 599.

MR. PURCELL: No objection.

MR. JACOBS: 601, 602, 603.

MR. PURCELL: No objection.

578


MR. JACOBS: 659.

MR. PURCELL: No objection.

MR. JACOBS: End of dramatic reading.

THE COURT: All right. Thank you. All received in evidence.

(Trial Exhibits 513, 518; 520, 521; 523, 524; 526; 595, 596, 597; 598, 599; 601, 602, 603; 659 received in evidence)

THE COURT: Ready to go?

MR. JACOBS: Yes, sir.

THE COURT: Let's bring in the jury.

(Jury enters the courtroom at 11:33 a.m.)

THE COURT: Thank you. Welcome back. Please have a seat.

And Oracle may call its next witness.

MR. JACOBS: Oracle calls Dr. Mark B. Reinhold as its next witness, your Honor.

THE COURT: All right. Please stand there and raise your right hand.

MARK B. REINHOLD,

called as a witness for the Plaintiff herein, having been first duly sworn, was examined and testified as follows:

THE WITNESS: I do.

THE CLERK: Please be seated.

579


THE COURT: Have a seat. Thank you.

You need to sit about this close to that. This base of the microphone will move all around to suit your convenience.

Why don't you say your name?

THE WITNESS: Mark B. Reinhold.

THE COURT: That's good.

Go right ahead, counsel.

DIRECT EXAMINATION

BY MR. JACOBS:

Q. Dr. Reinhold what is your position now at Oracle?

A. I am the chief architect of the Java Platform Group.

Q. What did you do before you were employed at Oracle?

A. I was at Sun Microsystems.

Q. How long were you at Sun?

A. I joined Sun in 1996, so I was there until the acquisition; about 14, 15 years.

Q. In your work for Oracle and Sun have you designed APIs for Java?

A. I have.

Q. Can you tell the jury, please, a little bit about your educational background?

A. So I have a PhD from the Massachusetts Institute of Technology. Before that I did an undergrad degree at the University of Pennsylvania.

580


Q. And what is your PhD in?

A. Computer science.

Q. Can you explain what you do in your job as a chief architect of the Java Platform Group?

A. Sure. So at a high level I'm responsible for steering the technical direction of the work that the group does. I'm also responsible for the engineering processes and practices we use to build our software. And I also help get -- I'm involved in the actual work of getting new releases ready and built and shipped out.

Q. And when you talk about software, what are you referring to?

A. I'm referring to Java.

Q. The word "architect" is in your title. How does that relate to what you do?

A. Well, in my kind of role it's a little bit like being -- like being a building architect in that a big part of my job is to look after the coherence of the Java Platform as a whole, to make sure everything is fitting together well, to make sure that new things fit in properly, and so that the whole thing continues to make sense.

In a little -- in a little bit it's also like being a civil engineer, because I'm also responsible for the integrity of the internal structure of all code.

Q. Do your responsibilities include the Java APIs and class

581


libraries?

A. Yes.

Q. For which software platforms in particular?

A. For the Java SE Platform primarily.

Q. Do you actually write code yourself these days?

A. I do still write code. I'm an engineer at heart. I would be very unhappy if all I did was supervise other people writing code.

Q. How long have you held the role that you hold now?

A. I was in a similar role at Sun starting in about 2006.

Q. And before you became this -- into this -- you came into this chief architect role, were you working on Java?

A. Yes. I worked on Java my entire time at Sun.

Q. So how many years have you worked on the Java Platform?

A. By now it's about 16.

Q. Does that include for that period working on API design and implementation?

A. Yes.

Q. Just tell the jury a little bit about Sun Microsystems, especially as you encountered it when you joined the company?

A. So Sun, when I joined it in 1996, was still on an upward growth path. The dot com boom was starting to happen. The company couldn't build these big servers fast enough. And Java was kind of the hot knew thing. That's why I came to Sun, was for the opportunity to work on a software platform that looked

582


like it was going to be widely adopted. And there were a lot of smart people on the team, which also made it attractive.

Q. Just to make sure we're using the calculated way the jury by now has become familiar with, when you talk about Java, what do you mean?

A. I mean the Java Platform, platforms as a whole.

Q. And what are the main components of the Java Platform?

A. The main components of the Java Platform are the Java Virtual Machine.

Above that there are the Java -- well, the Java Virtual Machine, the Java language, the programming language, and the class libraries.

Q. Did you learn how the name Java was chosen when you joined the group?

A. Yeah. It was chosen just a little bit before I started. The story goes -- the -- there was this original skunk works project at Sun and they were working on software for boxes and stuff, and that project was called Oak. But then as they repurposed that technology for the internet and for use in web browsers, they did a trademark search on "oak" and that was taken by some other technology company.

So there was this big brainstorming meeting and everyone who was there tells a different story about it, but the essence of it was that one of the engineers in the room was drinking a cup of Peet's coffee and he spoke and said "Java,

583


how about that?" And at first people didn't like it much, but it turned out to stick, and it also passed the trademark search. No one else had trademarked it yet.

Q. I'd like to get right to the topic of the class libraries and the APIs. So have you actually designed Java APIs yourself?

A. Yes, I have.

Q. And have you built the class libraries?

A. I have done that, also.

Q. Can you explain to the jury what a Java class library is?

A. So a class library in Java is -- it's a kind of software library, and software libraries are extremely common in software engineering. They are libraries of prewritten code that are general purpose and can be reused by software developers in a wide variety of different programs.

Q. And what do you mean here by "prewritten"?

A. A library contains code that's already written. It's already been tested. It has clear documentation. So that if a developer needs to perform a certain task, they can go to the library, see if there's a class or whatever type of code they need in there, and then reference it in their own code.

Q. Can you give an example of one of the important Java class libraries?

A. So one example would be there is an API for creating secure network connections over the internet. This is the sort

584


of thing you would do if you need to transmit something like your credit card information, right? You don't want to do that in clear text that any snooper could just read. So there is an API for creating secure network connections. It's a package with several classes in it.

Q. How many segments of prewritten code like this are there in the Java class libraries?

A. If you're counting classes in the Java 5 Platform, which I understand is the topic here today, if you're counting classes, then that number is about 3,500.

Q. And then what's the next -- in the hierarchy within a class -- within a class what comes next?

A. So classes, classes themselves contain things called methods and fields. And if you counted out methods and fields in the Java 5 class library, the number is about 35,000.

Q. What is an Application Programming Interface?

A. An Application Programming Interface is, it's essentially the blueprint for the class libraries. The class libraries are in compiled form that the machine can understand.

So a human being looking at a class library, it's just impossible to figure out what's going on. The API is a specification of the class library. It's a description of it. It tells you what -- what its structure is, what the names of all the elements are, and it includes English prose that describes how every element is expected to work. It also

585


defines all of the relationships between the different elements.

Q. And by "relationships between the different elements," at a very high level what do you mean?

A. Almost any element in a class can refer to another class.

It can refer to another element of another class.

Q. Let's talk in more detail about the actual structure of 8 Java's APIs.

Have you prepared some slides to help explain your work in APIs and what they mean?

A. Yes, yes.

MR. JACOBS: Can we have them up on the screen?

(Document displayed)

MR. JACOBS: So, your Honor, if it would be okay with you, I would hand Dr. Reinhold the clicker and have him walk through these slides himself.

THE COURT: Is this for illustrative purposes?

MR. JACOBS: It is, your Honor.

MR. PURCELL: Your Honor, we object. This is in the nature of expert testimony. It's not about facts. It's an illustrative abstract tutorial.

MR. JACOBS: Your Honor, this is to explain his work in designing APIs at Sun.

THE COURT: Was his deposition taken?

MR. JACOBS: Yes.

586


THE COURT: Was it taken on this subject?

MR. JACOBS: It was taken, yes, on the subject of what is an API and what is a class, et cetera.

THE COURT: All right. I will allow him to do it.

Overruled. Go ahead.

MR. JACOBS: May I give him the clicker?

THE COURT: Yes.

(Whereupon, clicker was tendered to the witness.)

A. Okay. So the first slide introduces basically the concept of classes. And here I'm just using examples from the real world. A class is a description of a group of objects. We could have, for example, a Car Class and every car out in the world is a member of the Car Class. Similarly, we can have a Train class and every train is a member of the Train Class.

And we can have a Plane Class and every airplane is a member of the Plane Class.

Now, classes are interesting because they can be used to relate -- they can relate to other classes. For example, cars, trains and planes are all -- all together they are all kinds of vehicles, right?

MR. PURCELL: Your Honor, I object. This is narrative. We should proceed by question and answer.

THE COURT: I will interrupt when it becomes a problem.

587


MR. PURCELL: Thank you.

THE COURT: I understand the point you're making and it's not a problem yet.

Continue on.

A. Okay. So all of these things are types of vehicles. So we could introduce a Vehicle class, which groups the three together.

So now if we were designing -- if we were actually designing an API here and we just wanted to talk about vehicles, we could use the Vehicle Class rather than Car, Train and Plane separately.

Now, moving on. As I said earlier, classes can have things within them. One of things they can have are methods. Methods describe the actions available to members of the class.

So a car, for example, could have a start method to start the engine, a stop method to stop the engine, a blowHorn method to blow the horn. Of course, you could have a whole bunch of other methods; turn the lights on, turn the lights off, you know, accelerate, decelerate. I'm just showing three here.

A train is a lot like a car. It also has stop, start and blowHorn methods.

A plane is kind of like the other two. It will have methods to start and stop the engines, but I have yet to see an airplane have a horn you can blow. So there is no blowHorn

588


method in the Plane Class.

Now, another kind of thing that can be in a class are fields. Fields describe the properties of the -- for a particular member, it describes properties of that member of that class.

So here I've just shown a couple in green. In the Car Class we could have a model field. That could be the model like Chevy Volt or Honda Insight or whatever. MaxPassengers could be a number, which is the maximum of passengers. Maybe it's two, maybe it's four, maybe it's five. And similarly we could have additional methods on train and plane -- sorry, additional fields.

Now, there is another thing called interfaces.

Interfaces in the Java language are kind of like classes, except they can cut across this tree structure that we've shown so far. So far this is just a tree. You can think of vehicle as the root; car, train and plane are sort of branches coming out of it.

Q. Let me just interrupt you for a second because that word "Interfaces" is showing up.

A. Yes.

Q. Is this the same interfaces that is Application Programming Interface?

A. No, it is not.

Q. Okay. So could you just get --

589


A. This is a much more specific interface. The term "Application Programming Interface" includes these interfaces in the classes and methods and everything else.

Q. Okay.

A. So there are other things in the world that have horns you can blow. For example, a factory. Factories often have horns that are blown to signal the beginning and end of a shift. So if we had a Factory Class, it could have a blowHorn method.

What interfaces do is let us capture what is common across Factory, Train and Car, which otherwise those are very different kind of things.

So we could define an interface called ThingWithHorn, for example, and that's for things with horns. It specifies the blowHorn method. And we can say that Car, Train and Factory, but not Plane, are related to the ThingWithHorn interface. What we say is they implement the ThingWithHorn interface.

So if you were writing code against this API and you wanted to have some instructions about things with horns, you could just think about the ThingWithHorn interface and whether it's a car, a train, a factory or something else that someone hasn't thought of yet, you have a way of capturing that concept.

Now, additional classes can be useful. As more classes come into the picture, it's useful to introduce yet

590


more to help structure the entire hierarchy. So here I've added Truck, Rocket, and Office and House. And since that's getting to be a fair number of classes, I've introduced some more grouping classes to organize things.

So Car, Train and Truck are grouped under the GroundVehicle Class, which itself is under the Vehicle Class. Plane and Rocket are under the FlyingVehicle Class, which is also under the Vehicle Class. And Factory, Office and House are under the Building Class.

And we still have the case that Factory, Car, Train and, oh, now Truck are things with horns that you can blow, so they implement the ThingWithHorn interface.

As time goes on and the API gets richer, the picture just keeps becoming more complicated. You can see there's starting to be a fair amount of structure here.

I have PowerTools; Drill BandSaw, Router.

TransportStructure; Highway, Tunnel, TrainTrack. We need something to help us understand this. You can imagine if this were far larger, how hard it would be to understand.

This is where packages come in. So packages are the highest level concept in the language and they are used to organize related classes together.

So here I've shown Vehicle and PowerTools. I put those into a package called Machines. I've put Building and TransportStructure and all of those other classes into a

591


package called Structures. And I've put the ThingWithHorn interface, which sort of stands on its own, into a package called Soundmakers, which, you know, might have some other -- other things in it; maybe an orchestra, or a violin, classes for other things that make sounds.

Now, I could have organized this all differently. It was a deliberate choice to do things this way. I could have organized classes that have to do with things on roads in one package or under one grouping class. And I could have had -- you know, could have done many of these things differently.

THE COURT: What is a library?

THE WITNESS: What is a library?

THE COURT: A library. You said "package." Is that the same thing as a library?

THE WITNESS: No. A package can describe part of a library, your Honor.

THE COURT: What then is a library?

THE WITNESS: A library is the compiled form of the code that can be used directly, sir.

So when the phrase "Java class library" is used, what's the reference there to library? So Java class library means the compiled code, form of the code that is ready for the virtual machine to run.

And in the case of Java class libraries that are associated with the APIs then what are those Java class

592


libraries? They're the compiled form of -- they are the compiled form of the source code, which includes the APIs, but also includes all of the instruction code as well.

BY MR. JACOBS:

Q. So what elements of classes, et cetera, have you introduced to us that are -- you're now going to rely on as we discuss actual APIs?

A. Okay. So going from the top down. Packages are the highest level concept. Packages can contain classes and interfaces.

Within a class or an interface you can specify a method. Within a class you can also specify things called fields. I've showed a couple examples of those.

So now let's talk about an actual Java API. The java.nio.channels Package.

A. Right.

Q. First of all, can you explain your involvement with java.nio.channels?

A. So, this was some work that I led in around 2000 to design a set of new I0 APIs for the Java Platform that could offer higher performance than the old IO APIs could do.

Q. Did you have a particular role in that API development?

A. Yes. The role I had was what we call specification lead.

Q. Can you explain what a specification lead is, please?

A. So a specification lead at the end of the day is

593


responsible for all technical aspects of an API design.

Q. Can you tell us what this slide here, which is Slide 9 of the demonstratives, is showing us, please?

A. Sure. So the java.io API is divided into five packages. This is one particular package called the channels package. It has a number of classes. Those are shown on the left. This is using the same hierarchal tree notation that I used on the previous slides.

And it also has some interfaces. Those are displayed over on the right with dashed lines. Just like we had ThingWithHorn and the interfaces relate some of the classes and cut across the hierarchy, just like ThingWithHorn did.

Q. Just so the record is clear on this, can you identify the classes in the java.nio.channels that are illustrated on this slide?

A. They are Object; Channels, FileLock, Pipe, SelectionKey, Selector, AbstractInterruptibleChannel; FileChannel --

Q. Slow down.

A. Sorry.

FileChannel, SelectableChannel, AbstractSelectableChannel, DatagramChannel, ServerSocketChannel and SocketChannel.

Q. And what are the interfaces that are illustrated here?

A. The interfaces are on the right. ByteChannel, GatheringByteChannel, ReadableByteChannel,

594


ScatteringByteChannel, WritableByteChannel, Channel, InterruptibleChannel and Closable.

Now, I should say just to be completely clear that some of these classes and interfaces they are shown here for reference. They are not actually defined in the channels package. They are defined elsewhere.

Q. What do you mean by that?

A. So Object, for example, is in another package called java.lang. Closable is in the java.io Package. And the two classes whose name begins with the word "Abstract" are in a related Java.io package, but one with a different name.

So is this an example of a kind of an interrelationship among classes?

A. Yes.

MR. PURCELL: Objection, leading.

THE COURT: It is leading, but it's okay in this case.

Go ahead. Overruled.

BY MR. JACOBS:

Q. Can you explain what the nature of the interrelationship is here?

A. The interrelationship with these elements that are in other packages?

Q. Correct.

A. So in Java, Object is the class under which all other

595


classes are grouped. Every single object in Java is somehow an instance of the Object Class. So that's always relevant to the picture.

The Closable interface is over in the java.io package because that is a very general purpose interface. If a class implements the Closable interface, then what that means is it has a method called Closed. Closed is a method you invoke when you're finished using the resources provided by a specific member of a class so that its resources can be reclaimed. And many kinds of things are Closable in the Java APIs.

AbstractInterruptibleChannel and AbstractSelectableChannel, they are in a subpackage called java.io.channels.spi. And the reason for that is those classes are only of interest to developers who are extending the java.io IO framework itself. And that's a fairly uncommon thing to do. So in order not to clutter up the channels package proper, we put those in a subpackage since most developers won't need to look at those.

Q. Now, does this Slide 9 show the entire java.nio.channels Package?

A. It shows all of the top level classes, but some information has been omitted.

Q. What's been omitted?

A. Well, the interfaces, for example, have -- there's a richer structure of these interfaces than what's shown here.

596


Interfaces, just like classes, can be grouped under each other.

So if we can go to the next slide, that richer structure is shown now on the right-hand side. As you can see there, there is a little tree structure there, just like we have for the classes.

Q. And how about methods and fields? Are they shown?

A. Sorry. In the channels package, no, methods and fields are not shown. There would be a lot of them.

Q. Thinking back to your work in designing this package, did it have to have this particular structure?

A. No. It could have had many alternative structures. As we worked on this design, many different ideas were suggested and evaluated.

What we wound up was something that we thought was coherent, would be easy to use and attractive to developers, but it could have ended up in many different ways and been just as good.

Q. How many packages, API packages, are there in Java SE?

A. In Java 5 there were 166 API packages.

Q. And how about in the latest release of Java SE?

A. In the latest release, Java 7, which we shipped just last year, there are 209 packages.

Q. I'd like to show you a poster.

THE COURT: Do this. You can take it over. My law clerk may not be able to see, but you can put it right there

597


where the jury is going to have to walk in and out.

MR. JACOBS: Thank you, your Honor.

THE COURT: And you can move the easel over temporarily.

MR. JACOBS: Okay.

THE COURT: And most of the jury will be able to see fine, or at least better than if you leave it there.

(Demonstrative displayed.)

THE COURT: The witness won't be able to see it, but maybe he knows it by heart or something.

All right. Can all of you on the jury see that?

It's tiny, I know. All right. So do your best.

Go ahead, Mr. Jacobs.

BY MR. JACOBS:

Q. Dr. Reinhold, what is this poster?

A. So this poster is a visual depiction using the visual notation that we have seen on the slides thus far of about half of the Java SE 5 APIs.

Q. Who uses this poster?

A. Developers use this poster.

Q. To do -- to understand what?

A. Well, it's a handy reference to the high level structure of the API set.

Q. Was it created for this litigation?

A. No, it was not created for this litigation. This was

598


something that was produced by Sun around the time that Java 5 was released and you could buy it, you know, on Amazon and other places like that.

MR. JACOBS: Your Honor, I offer Exhibit 1028 into evidence. And we will figure out how to get it in a form for the record.

MR. PURCELL: No objection.

THE COURT: 1028 received.

(Trial Exhibit 1028 received in evidence)

BY MR. JACOBS:

Q. Does this poster include all of the packages for Java Standard Edition 5, all of the API packages?

A. No. As I said, it's only about half. I think these are about 85 of the 166.

Q. Does it include all of the 37 packages that you understand are at issue in this dispute?

A. No, it's missing three. So there are 34 disputed packages on this poster.

Q. Does this poster illustrate the methods and the fields that are part of the API packages?

A. No.

Q. Why not?

A. Well, if it did, either the type would be really, really small our the poster would be gargantuan.

Q. Does this poster show all the different structural

599


relationships for the classes and interfaces even of the packages that it lists?

A. No.

Q. Can you give us an example of what this poster is showing?

MR. JACOBS: May the witness stand down?

THE COURT: Yes. Let's hand to the witness the 1942 pointer stick that in 13 years has not failed me yet.

THE WITNESS: Reliable technology.

THE COURT: You may step down and be a professor.

THE WITNESS: Do you have a microphone?

THE COURT: No. Just keep your voice very loud.

THE WITNESS: Okay.

(Witness steps down.)

A. So each one of these brown headings is a package. That's the name of the package and most of the stuff inside it.

For example, the java.nio.channels Package we were discussing was right here (indicating). You can see that structure is exactly the structure -- well, maybe you can't see. ...is exactly the structure that I was talking about on the slide. There are a whole bunch of others.

There are also things that are missing. For example, in the Java APIs there is something called Exception Classes. These are classes used to report some kind of an error condition. Those aren't shown here because for the most part if you're looking at this just trying to understand, "Okay,

600


I've got a problem, how am I going to solve it?" you don't care about all the Exception Classes. Eventually you might care when you find an error condition could happen, but if you care about that, then you can read the more detailed documentation.

BY MR. JACOBS:

Q. And can you focus for a minute on what this tells us about relationships between classes?

A. Sure. So just in the diagram, as in the diagram I was showing, there are tree structures on the left relating classes, and then there are also structures on the right showing interfaces, and dotted lines between the classes and the interfaces showing the relationship between the classes and the interface.

Now, moreover, as we were -- as I was saying earlier, some classes are shown in a package even if they are defined in some other package, and that's just for reference. So here in the java.nio.channels Package, there is the Object Class. Then there is a little blue icon here indicating that Object is actually defined in the package with that particular blue icon.

That blue icon is for the java.lang Package and here is Object (indicating).

Similarly, in the Channels Package we have reference to the Closable interface. As I said, that's not defined in the Channels Package. That's defined over in java.io which is right above, so here is the definition of the Closable

601


interface (indicating).

Q. Now, again, does the poster shows us methods or fields?

A. It does not show us methods or fields.

Q. Did methods or fields have relationships themselves that would extend to different interfaces or classes?

A. Methods and fields can be -- are related to other interfaces or classes.

Q. And can you maybe return to your --

A. Yes.

(Witness resumes stand.)

Q. I think you have slides to illustrate this?

A. Yeah. If we can go to the next slide, please? That one.

(Document displayed)

A. Right. So let's go back for just a moment to the Car Class that we started with. So car has Stop, Start and blowHorn methods. Suppose it had another method called Paint.

Can you click that in, please?

So if you want to paint a car, you need to specify what color you want. And so the Paint method has what we call an input parameter and that input parameter is the color you want the car to be painted.

Now, to talk about a color, we need some way to represent that. And the way -- the most natural way to do that is to create another class called Color. And maybe, maybe members of the Color Class have fields that are, for example,

602


they could be red, green, blue and the mixture of those describes the color that you want.

So in order to paint a car, you specify a member of the Color Class as input, and that's the color that you'll get.

Now, methods can also return members of other classes, but I haven't shown that here.

Q. Let's talk a little more about how the Java APIs relate to the class libraries, to the code that you were discussing earlier. And let's use the java.nio.channels Package again to illustrate that.

So what do you want us to focus on on this demonstrative -- on this slide No. 12?

A. So this is the slide we've seen before. It's the same notations on the poster. It's a very high level view of what's in the java.io.channels Package.

So to explain the relationship between an API and its -- the corresponding part of the class library, let's zoom in, if we can, on just one of these classes, the class called Channels there.

So on the next slide I'm showing the relationship between the Channels Class API and the zeros and ones for that class in the class library. So on the right-hand side is the Java class library. It has a bunch of compiled classes in it, zeroes and ones, ready to be run by the Java Virtual Machine. I've zoomed in on the channels class within that

603


library. On the left is the tree structure, very high level API description. And as you can see, even though that description is high level, it corresponds exactly to what's in the class library zeroes and ones so that the channels Class has its name. It gets that from the API. It has four methods called newInputStream, newOutputStream and two variant methods called newChannel. And those methods take input parameters of a given type.

Now, if we go not next slide?

The part on the right is the same. On the left what I'm showing is the full API specification for the Channels Class. So this is html, viewable in a web browser.

Q. Just pause there for a minute. Html is?

A. Hyper Text Markup Language. Text you can read on the web with a browser, in a computer.

Okay. So the Channels API specification describe the Channels Class. And as you can see on the upper left, it declares, okay, this is the java.nio.channels Package. The class name is Channels. There is some -- there are little fragments of actual Java programming language, constructs near the top telling you that the Channels Class is grouped under java.lang.Object.

There is some English prose describing generally what this class is about. And if you read it it says, "Utility methods for channels and streams."

604


"This class defines static methods that support the interoperation of the stream classes of the java.io packages with the channel classes of this package."
And "Since 1.4" just means it was first introduced in Java 1.4.

Then below that we have a summary of all the methods in this class. That summary is fairly terse, but it's a very useful reference to developers who are trying to figure out, well, which of these methods might I want to use.

Then once you figure that out, you can scroll down -- and we have shown that on the next slide -- and look at the detailed API specification for one of these methods.

So here is some detail. On the upper left we have the newInputStream method. There is some typewriter text there. That's a fragment of Java programming language code. It says:

"Public static InputStream newInputStream 19 (ReadableByteChannel, ch)."
So that's the fragment of actual Java programming language code. What it means is we're declaring a method called newInputStream. It takes as an input parameter a ReadableByteChannel and it returns as an output parameter InputStream.

There is also in English prose here, just as there

605


was at the top of the class, and that prose describes what this method will do. It says:

"Constructs a stream that reads bytes from the given channel."
Q. And then there is additional prose?

A. There's additional prose. I won't belabor this.

As you can see, there is a still a direct match-up between what's in the API specification on the left. We have the -- the programming language fragment describing newInputStream. And that exactly corresponds to the compiled method in the compiled class inside the class library.

And it's a similar story for NewInputStream and the newChannel methods and other methods in this class.

Q. So what is the relationship between the structure of the Java APIs to the structure of the java class libraries?

A. They are exactly the same.

Q. In what sense do you mean that?

A. Well, if we -- if we can go to the next slide, this shows why they simply have to be exactly the same. The class library and the API specification for the class library are created from the exact same input, the exact same source file.

So in the bottom middle of this picture, that's an actual fragment of the source code for the Channels Class.

THE WITNESS: Sorry about the small type, your Honor.

THE COURT: Can you blow that up? I can't read it.

606


MR. JACOBS: It's fixed, your Honor.

THE COURT: I want to make sure I understand it.

What do you mean, it's exactly what is in the source file?

THE WITNESS: If I could explain, sir.

So, when a Java developer creates an API in a class library like this, you know, when I was working on this, I was working on one file. That's the file in the bottom middle.

That's a Java source file. It's in the Java programming language. That source file is processed in two different ways. It's run through the Java Language Compiler. That's the gears with the blue arrow on the right. The Java Language Compiler compiles the parts of the API that describe the names and the structure and everything, and it also compiles all of the actual instructions within the methods into the zeros and ones that the virtual machine can understand. And those zeros and ones wind up in the class library, along with all the other classes.

Now, we also run that source filed through another tool called the Java Documentation Extractor or JavaDoc for short. That tool processes this file. It pulls out the structure, the names. It ignores the actual instructions in the methods. It also pulls out the English prose, which is in comments in this file, and produces the web page that we have been looking at already.

So in a very real sense this is software that

607


contains its own blueprint. All right. An API is a blueprint, well, the blueprint is in the source file along with all of the instructions that actually wind up in the class library.

THE COURT: So let me ask a question about that. You see in the one on the left it says, "Utility methods for channels and" -- is that "streams"?

THE WITNESS: Yes, sir.

THE COURT: Very small.

All right. So that wording, in exactly that form, 1are you saying we would find that somewhere in the middle diagram?

THE WITNESS: Yes, sir. In fact, if you look -- you can see on the diagram on the middle part, that typewriter text, the very third line, I believe, says exactly, "Utility methods for channels and streams."

THE COURT: I can't read it. It's so small. I'll take your word for it. But that's what it says?

THE WITNESS: Yes, sir.

THE COURT: So everything on the -- you see up there where it says, "Overview Package Class Use, Tree Depreciated Index Help." You're saying all of that, every single word on the left is going to be found somewhere in the middle?

THE WITNESS: No, sir.

THE COURT: Okay. Which part is there and which part is not there?

608


THE WITNESS: So, the elements on the top of the page to which you just referred, those are on every JavaDoc output page. Those are just navigational elements that let you click around and find different parts of the documentation because there's a separate page for every class and interface.

In terms of the actual text, the words are copied over, the API structure is copied over from the source file, and all of the words describing each method or field are also copied over.

THE COURT: Where does it start being copied over?

What's the first thing on the left that is copied over?

THE WITNESS: The first thing on the left that is copied over would be the name. Java.nio.channels Package, and that's right above the big words which say "Class Channels."

THE COURT: And then all the way down to the bottom, including where those boxes -- what's in those boxes, that is extracted from the middle?

THE WITNESS: Yes, sir.

THE COURT: How about the word "Method Summary," is that part of the template?

THE WITNESS: No, sir. That's part of the template. That's on every page.

THE COURT: How about that word "Since"? Is that part of the template?

THE WITNESS: "Since" is part of the template. The

609


1.4 value came out of the source file.

THE COURT: Thank you. I understand.

MR. JACOBS: Actually, your Honor, would you like -- we have some copies, if it would be of assistance to the Court.

THE COURT: Well, this is not part of the -- if counsel is okay with giving it to me, I'm fine with you letting me have a set.

But what do you say? Is that all right?

MR. PURCELL: No objection.

THE COURT: I'm sure counsel is going to have a similar set and we'll do the same with this witness or a different one.

(Whereupon, document was tendered to the Court.)

THE COURT: All right. Thank you.

BY MR. JACOBS:

Q. I would actually like to step through that one more time so that we're precise.

To summarize your testimony, there are three sources of information in the documentation. There is template information such as "Method Summary" --

MR. PURCELL: Objection, leading, your Honor.

THE COURT: Well, is this meant to be a summary of what we just went over?

MR. JACOBS: It is, your Honor.

610


THE COURT: Overruled. Go ahead.

BY MR. JACOBS:

Q. There is template information such as "Method Summary" that is inserted in the paper by the Java Documentation Extractor, right?

A. Correct.

Q. And then there is some information on the upper left-hand corner which comes from developer written comments in the source file?

A. Correct.

Q. And there's some information that comes from developer written code in the source file, correct?

A. Yes.

Q. Okay. So can we just -- let's just go through that step-by-step with the material in the upper left-hand corner.

A. Okay. So you want me to look at each element and say where it came from?

Q. Until it gets tedious. So, yes.

A. All right. Oh, zoom. Thank you.

Okay. So starting at the top, everything down to the first horizontal gray line, that is part of the template.

Although the specific links -- you know, you see links there, "prev class," that's for previous class. "Next class," that's for next class. If you click on those, you will go to other classes in the same package. So the text for those things is

611


the same on every page, but where that link will take you is different for every page and is actually determined from the source file. So below that first horizontal line we have in smaller type the java.nio.channels Package name. And then below that in quite large type "Class Channels." This is telling you this is a class. Its name is Channels. It's in the java.nio.channels Package.

Then next below that, in the typewriter font -- essentially whenever you see typewriter font, that is a fragment of Java programming language code that has been copied literally from the source file. So the typewriter font is saying java.lang.Object -- sorry, I misspoke. Java.lang.Object doesn't occur in the source file, but most everything else does.

So java.io.channels.channels, this class here, is grouped under java.lang.Object. Now, in this particular class, that's not very interesting, but if they were looking at some other class, there could be a whole nother tree here. Just like the other trees we've been looking at that show you all of the intermediate classes between java.lang.Object and the class in question.

Okay. Now, after the next horizontal line, the second horizontal line going down on the page, we see words in typewriter font saying "public final class Channels" "extends Object."

612


So "public final class Channels," those words were copied from the source file.

Q. And when you say "copied from the source file," which aspect of the source file are you referring to?

A. They are copied from the programming language constructs in the source file, not from the English prose.

Then "extends Object," in that particular case that's inserted by the tool just as a handy reminder that it extends object. You won't find that in the source file. It could have been in the source file, but it doesn't really serve any purpose.

Then we have in the Roman font the paragraph "Utility methods for channels and streams."

And then following that another -- another bit of English prose telling you that, "This class defines statistic methods that support the interoperation," and so on and so forth. I've already read that through.

So the English prose is all copied from what we call a documentation comment in the source file.

So in pretty much every programming language a developer can write comments which can describe what's going on.

In the Java programming language you can write two kinds of comments. You can write a regular comment that's just a reminder for yourself or somebody else who is going to be

613


reading the source code later about what's going on. You can also write a special kind of comment called a documentation comment, and that documentation comment, that is what is copied by the java.tool into the sort of a web page. You can even have formatting and formulas and tables in a documentation comment.

So moving down we have the word "Since." That's inserted by the tool. The value "1.4" comes from the inside of the top most documentation comment for this class. That's just saying it was introduced in the 1.4 release.

Q. And "Method Summary" comes from the Java Documentation Extractor?

A. Right. So this table and its title comes from the extractor tool. The content of each cell comes from -- comes from the corresponding word part of the source file that describes the method and what it does.

So just to take the very first one, that's the newChannel method, which we saw before.

Just keep highlighting to the right, please.

It takes an InputStream. There is English -- the first sentence of the English prose from its documentation column that's copied, it says, "Constructs a channel that reads bytes from the given stream."

And then in the left-hand cell that's highlighted, we see the word "ReadableByteChannel." "ReadableByteChannel" that

614


was copied from the source code part, the language code part of the source file. And the word "static" was also copied. That word "static" occurs also in the source file.

And it's a similar story for the rest.

THE COURT: I'm back on this one. It has three boxes. I was with you until we got to "static ReadableByteChannel" and I don't see that in the middle diagram. So I'm surely just missing it. Where would that be?

THE WITNESS: So that middle source code image was highly compressed. Much of the source file was omitted because otherwise it would be even more unreadable than it already is.

If we can go back to that, maybe I can find it; but I don't remember right now, sir, whether that particular method declaration made it into that highly summarized fragment.

THE COURT: So this is something gemmed up just for the lawsuit or is this a real thing?

THE WITNESS: This is a real thing. This is the actual documentation for this class. And I could show you the -- the actual whole source file, if you wanted to see it.

MR. JACOBS: We have that, your Honor, if you would like. We can set it up at a break.

THE COURT: I think at some point it ought to be put in evidence. I realize this is for illustrative purposes and may be abbreviated.

All right. Go ahead.

615


BY MR. JACOBS:

Q. I would like to ask you about some of the other API packages that are in issue in this case. This is a list of the 37 packages that Oracle identified in the lawsuit. Can you talk about what some of these packages do?

A. Sure. So earlier I mentioned the example of an API for creating secure internet connections. It's to pass information securely over the internet. That would be found over in the right-hand column the package called javax.net.ssl. That's an abbreviation for the secure socket layer, which is a technical standard.

Another examples in here. Another one that might be interesting is the one called java.sql. SQL is the structured query language for relational databases. SQL is a package, provides an API so that a Java developer can write code that can pull information out of a relational data base and, also, update information in a relational data base. And this is a value to Java developers because relational databases is where you find a lot of data, and it's also valuable because it works with a wide variety of relational databases.

THE COURT: What is a relational data base?

THE WITNESS: A relational data base is a data base organized in tables. Basically, you can think of it as a data base of spreadsheets.

616


BY MR. JACOBS:

Q. If you run these packages through that JavaDoc creator, it creates documentation for these packages. How many pages does that take?

A. So if you ran the source files for all of these packages through the tool and printed out all of the pages, I believe the number you would get is about 11,000.

THE COURT: That's for these 37 or for all of them?

THE WITNESS: That's for these 37, sir.

BY MR. JACOBS:

Q. And to illustrate what that's like, do you know how many boxes that might fill?

A. I reviewed a printed form of this. It fits three entire banker's boxes and about, I don't know, a quarter or a third of a fourth box.

Q. I would like you to take a look at Exhibit 610, please.

(Whereupon, document was tendered to the witness.)

Q. And did you take a look at this before when you testified today?

A. Yes, sir, I did.

Q. What is in Exhibit 610?

A. Exhibit 610 is a DVD archive of files which contain the source code for JDK 5, which is the implementation of Java 5.

MR. JACOBS: I offer into evidence.

617


THE COURT: Any objection?

MR. VAN NEST: No objection.

THE COURT: All right. That's received. But it says 610.2 on the screen. So is it 610 or 610.2?

MR. JACOBS: This is 610, your Honor.

THE COURT: 6.10 admitted into evidence.

(Trial Exhibit 610 received in evidence)

THE COURT: Whatever is on the screen is not the right one. Don't show that to the jury yet.

(Discussion held off the record amongst counsel.)

MR. JACOBS: I'm sorry. I think we got mixed up, your Honor. 610.2 is the documentation.

THE COURT: 610 is what's in evidence.

MR. JACOBS: We'll check this at the break and make sure we have got the right numbering your Honor. Withdrawn for the moment.

THE COURT: What's withdrawn?

MR. JACOBS: 610.

THE COURT: Well, it's already --

MR. PURCELL: We don't object to them withdrawing it.

THE COURT: 610 is no longer in evidence.

(Trial Exhibit 510 withdrawn from evidence)

THE COURT: We'll get it straightened out and not

618


take up the jury's time on this.

MR. JACOBS: Exactly.

THE COURT: Please go ahead.

BY MR. JACOBS:

Q. Let's talk about the process for designing these APIs. What kind of particular detailed organization and structure is required in order for Java API to interact with the computer or operating system?

MR. PURCELL: Objection, leading.

THE COURT: That's not -- it's a "what" question.

That's not a leading question.

Overruled, please answer.

A. So very little organization or structure is required for the virtual machine and the computer running it to understand code that be written.

In the Java Platform APIs, for example, we could have put all of the classes into one giant package. We could have given classes packages, interfaces, methods, fields. We could have given them completely random names and they would still run just fine on the computer. They would be really hard to use from the developer's, the software developer's standpoint, but in a certain sense the computer doesn't care. They are just names.

Q. So what are -- as you do API design in your work at Oracle or before that at Sun, what are your main goals?

619


A. So there are many considerations for the API design process. One of the most important ones and one of the big values of the Java Platform is that APIs should be easy to learn and easy to use; that the Java APIs are well known for having that property, and that's something that we work hard to preserve.

Now, there are other considerations as well.

Q. What are some of those?

A. Well, for example, you don't want to design an API that inherently requires an inefficient implementation. You know, we have had examples of this in the past where that kind of mistake was made and, for example, every time you invoke a method, it goes off and creates a new member of some other class, just to give you a very simple answer. And if you do that hundreds of thousands of times in a second, it can slow down your program, when all you really wanted was a simple answer that didn't require creating a new object. So performance is important.

Another aspect is portability. The entire -- the Java theme of write once, run anywhere is all about allowing developers to write an application once that can run across a wide variety of actual computers and operating systems without change.

So, for example, we wouldn't want to define an API for doing graphical displays on a screen that only works on the

620


Windows operating system or only works on the Linux operating system. We defined an API that hides those details. So from the developer's point of view, you're writing to the Java API for graphical user interfaces and the library takes care of making the right things happen on top of different operating systems.

Q. If you are launching an API development process, how do you begin?

A. So that generally begins with, you know, a kind of abstract high level exercise to figure out, well, what are the general problems we're trying to solve? What are the constraints of the technical design space that limit us?

And a very useful tool in that process is to collect what we call use cases. So one way to do that is you actually sit down with other software developers and ask them, "So, if I were going to design an API for, say, data structures for a spreadsheet, give me some examples, just sketch out here what sorts of things would you -- problems would you want to be able to solve with that API?" And in creating the use case, the developer you're talking to might actually give you a code fragment. They haven't even seen an API yet, but by showing you code that they might like to write, they are giving you an idea of exactly the sort of problem they want to solve.

Once you have a set of use cases and some general requirements, then you sit down and start to think about, well,

621


what are the core classes and interfaces and methods I would want in the API? And it's important fairly quickly to get to a high level summary of that so that you can understand, you know, what a possible structure may be and so that you can show it to other people and get feedback on it.

And when you do that, you actually -- I mean, what I do, what every Java API developer I know does, is you start writing in fragments of actual Java programming language code. You would sketch out in a file -- maybe it's just an email.

It's not an actual source file. You sketch out in a file, well, there is going to be this class called Channels and it's going to have a NewInputStream method and maybe some other method in it, and sketch out a few other classes, and you send that around to get comments from your colleagues, other people you're working with.

As time goes on, as you get feedback, you revise that design. It starts to get a little bit longer because it's getting more real. Maybe you start to insert some of the English prose. It's really sketchy right now, but you started to do that.

And then another thing to get to, not too quickly, but as quickly as you can, is to write actual instructions in the method, write actual code into those so that you can compiled this file, which is now a Java source file. You can compile it and share that compiled version of this class with

622


other developers to get their feedback.

Some developers are really good at looking at just a design and saying, "Oh, well, yea, I could use that," or, "No, that doesn't solve my use case." Other developers really like to have code that they can run and write their own code to use directly to see how it works. So it's important to have that.

Another reason that working on the implementation at the same time is important is that when you're designing an API, working on the implementation at the same time often identifies bugs in the API design. You might notice, for example, that the point I said earlier about an API requiring -- sort of requiring bad performance. You might write some code, do a few tests and see, Well, no, I don't actually need to allocate an object every time. Let me change the API to work in a different way so that bad performance isn't required.

Q. How long does it take you to design a substantial Java API package?

A. So to continue with the java.io Package example, that was an effort that took almost exactly two years. I was probably working on it around half time during that two-year period.

THE COURT: Just you or did you have helpers?

THE WITNESS: I had helpers. I had a couple of other engineers on the team helping me with the design and the implementation, and I also had a group of experts who were

623


advising on the actual design.

BY MR. JACOBS:

Q. So let's go right to that. Let's talk about how the experts that advised on the design get involved. What is that mechanism?

A. So that happens in the Java Community Process, or JCP for short. That's a process that was originally set up by Sun and is now continued by Oracle that allows a wide variety of people, organizations and companies in the Java software ecosystem to participate in the creation of new Java API specifications and related technologies.

So the way that works is that the basic unit in the JCP is a thing called a JSR, Java Specification Request. A Java Specification Request is essentially a proposal. In that proposal you sketch out the problem you're trying to solve, maybe some really high level ideas of how you're going to start solving it. You relate it to any existing APIs.

You know, an important in the JSR form asks is, well, why is this needed? Is there an existing Java API that could be used for this? Why should we burden the entire community with yet another API? You need to have a good reason.

So in the case of the java.io APIs, I wrote up such a JSR. I got review comments on it, both inside Sun and from outside Sun. I submitted that to the Java Community Process. There's a group in the Java Platform called the

624


Executive Committee that has representatives from -- had at that time representatives from Sun, Oracle, IBM, HP, SAP and some individuals as well. The Executive Committee's job is to oversee the process, make sure that everything is running smoothly. They don't actually make technical decisions.

But in the lifetime of the JSR, the first thing they do is approve a JSR. Or, in very rare cases they disapprove it.

Anyway, I submitted the JSR. It was approved. I then formed what the JCP calls an expert group. So this is a group, a small group of people with experience in the area from Sun and also from other companies.

For example, there was a senior engineer from IBM there. There was an engineer from BEA there. BEA, of course, was later acquired by Oracle.

There were also some individuals. We had an academic, a professor who is well-known in the Java community, and another guy from -- from UC Berkeley. We also had an independent consultant, who is an expert on his own in the field of high-performance computer IO.

So I got an expert group together and we started working. We worked throughout that two-year period.

Generally, for any particular area we were working on, I would offer maybe a sketch of an initial design and ask for feedback on that.

625


They would give me feedback. Sometimes the feedback was, yeah, that looks good, but maybe use some other method here. Sometimes the feedback was, I don't understand what you're trying to do with that. Why don't you try to do it this way, with these three classes instead.

And my job as the specification lead was to, in a sense, absorb all of that, understand it, and distill it down to what became the actual situation.

So this took place over three years. I think we exchanged around 1700 e-mails during that. We worked almost exclusively in e-mail.

And the specification went through over 30 separate drafts. The first draft, obviously, was pretty sketchy. And that evolved over time into what became the final API specification for the java.io JSR.

Q. Is there a general understanding among the expert groups that you've been involved with that the contributions to the API, the kind of inflow of information -- what kind of understanding do people have about whether that work should be original or can be copied from somebody's API?

A. Oh, it's required to be original.

Q. What do you mean by that? What do you mean by "original"?

A. So the -- the JCP has a document called the JSPA, the Java Specification Participation Agreement. That's something that every member of the JSPA -- sorry, every member of the JCP has

626


to agree to this.

And that document, it's this big legal thing, but, you know, it basically says -- well, it says, among other things, that if you contribute IP, either, you know, some code sketches, some prose, whatever, if you contribute IP into this expert group, then you're granting all the necessary rights to that IP to the specification lead.

Therefore, if you're contributing IP in, you better have the rights to that IP to start with. If you got it from somewhere else, then you're violating someone else's intellectual property.

Q. Now, was NIO unique in the fact that there was an expert group and participation by others in its development?

A. No.

Q. Has that happened in other cases?

A. Every JSR in the Java Community Process has experts from companies other than Sun or Oracle.

Q. Now, you've been working in this field of API design for how many years?

A. Sixteen.

Q. Do you consider your work in API design to be creative?

A. Absolutely.

Q. In what way?

A. In anything except the most trivial API design, there are so many choices to be made I wouldn't know how to start

627


counting them.

You need to -- you need to choose names. Choosing names is really important in an API. Sometimes a name is suggested by the context in which it's going to be used. But other times a name -- finding the right name for something requires a lot of thought.

I'm reminded of what the old mystics used to say: If you know the name of the thing, you have power over the thing. And so it's really important in an API for it to be easy to learn, to choose good names.

Good names can be really hard because if we think of the space of names as real estate, many of the good names are already taken, and you can't reuse them.

Especially the good short names. So if you're designing an API, you want to take into careful consideration, well, if I'm going to define a class, is this a class that many developers are going to use, or -- and so I should really work hard to find a great descriptive short name for it? Or is this a class that is not going to be used that much, and so it's okay if it has a longer and uglier name? So there are a lot of choices to be made there.

But it's not just about the names. It's also about the structure. You know, how should classes be organized under other classes? How should interfaces be organized under other interfaces? How should classes and interfaces relate? Where

628


should the methods be? What should the methods be named? What kinds of inputs do the methods take? What kind of outputs do the methods provide for the fields? How do with they relate? Is the value in a field a color, or is it just a number, or is it a string, or is it something else?

So there are many, many design choices to be made.

THE COURT: Can I ask a question before you leave this subject.

This committee, do any of the -- if someone on the outside of Sun wanted to propose an API or a new method to go in an old API, did that ever happen?

THE WITNESS: Oh, yes. That happens all the time.

THE COURT: Give us an example of how that would come down.

THE WITNESS: So there have been quite a few JSRs that were not initiated by Sun, and now not initiated by Oracle. I don't remember offhand what the statistics are, sir.

In the case of someone outside the company who wants to propose just a small new thing, that would generally come in through a process we have for collecting input from any software developer as a -- a request for enhancement.

When a developer submits an idea like that, they might actually include a little bit of code. And when they submit that idea, there's -- there's a button I believe they have to click on where they agree that they're contributing any

629


IP that might be in that idea, that code, whatever it is, so that Sun or now Oracle can use it.

An additional way things can come in more recently is through the OpenJDK community, where we have outside contributors who are actually able to suggest, review, and actually put the code in themselves, because they've demonstrated they have the experience and knowledge and judgment to do that in the right way.

THE COURT: Thank you. Go ahead.

BY MR. JACOBS:

Q. Could you give an example of a package in the Java API that has a different -- that has a different version of it out there with a different structure?

A. So pretty much any Java API package you could look at and find something out in the world that's sort of like it. But -- excuse me -- a good example is a package called java.util.logging. L-o-g-g-i-n-g.

Logging is a facility that is often used in programs that run for a very long time. Like maybe on a server, computer, something that's processing. Bank transaction is -- hopefully, it's going to run without crashing for at least a day during the banking day. During that time, many different things could happen. If something goes wrong, you want to be able to diagnose what went wrong with it.

So in a long-running program, it's useful to create a

630


log of its activities. In a log for a banking application, you might record each transaction, just in text form. What's going on with this transaction? Is it completed yet? Whose account is it for? And so forth. So if something does go wrong, you can go back and look at that log.

Anyway the java.util.logging API package is a simple facility for logging messages. Around the time it was introduced, there was a competing package called Log4J. This was created by developers outside of Sun.

There's actually, to this day, a little bit of tension in the community because the people who like Log4J, they really hate java.util.logging. And the people who like java.util.logging don't much like Log4J.

But if you look at them from a functional perspective, they solve exactly the same kinds of problems. But, they are very different APIs. They have different class names, different method names, different interfaces, and different relationships.

Q. Has the number of Java APIs changed over time?

A. The number of Java APIs has grown dramatically over time.

Q. How many API packages were in the first release of Java, in 1996?

A. In 1996, Java 1.0 had seven API packages.

Q. And remind us how many there are in SE 5 and in Java 7.

A. Java SE 5 had 166, and Java 7 has 209.

631


Q. Did Sun or Oracle have to create this many APIs over time?

A. No.

Q. So why were they created?

A. They were created in order to -- to encourage the adoption of the Java platform by adding more and more facilities to make it an attractive platform for developers to use.

Q. Are there other software platforms that have taken a different approach?

A. Sure.

So, for example, there's the C programming language. It is almost always provided with something called the C Standard Library. C is very old language. It's been around since the '60s.

And the C Standard Library is really very simple and primitive. It lets you manipulate strings. It lets you do simple IO. It has facilities for basic threading, computation. Uhm, a variety of numeric things in it. Some string formatting stuff.

But that's it. There aren't even basic data structures in the C Standard Library. It's very bare bones.

Q. Are there other platforms that have extensive sets of libraries?

A. Sure. One example would be Python. The Python programming language comes with a very large, extensive collection of libraries. In that sense, it's much the same as

632


the Java platform.

Q. In what sense is it the same?

A. In that its set of libraries, its -- and Python also organizes these in classes and related modules. That set of libraries is extremely large. It covers a lot of ground. Maybe not exactly as much ground as the Java libraries do, but it's still quite significant.

Q. Are the APIs in Python the same as the APIs in Java?

A. No.

Q. In what way are they different?

A. Well, Python is a significantly different programming language than Java. So you might find some -- some things that appear to be related here and there, but, generally speaking, you won't find the same APIs.

Q. How do you decide what to add when you're evaluating, as the chief Java architect, whether to invest in a new API?

A. Well, that's a -- that has many, many considerations. One is, do we think it's actually something that many Java developers will use?

If somebody were, for example, to submit a JSR -- and this has happened plenty of times -- for something that's highly specialized, that JSR and the library and the specification that result from it might be useful to a couple of hundred thousand Java developers. But that -- that's not sufficient justification to put it in the Java platform that

633


everybody will have.

Something has to be commonly used. It has to have a high-quality design, a high-quality implementation.

Q. Are you ever concerned about making a particular API package too big?

A. Oh, yes.

Q. What would happen if you did that?

A. If an API package were too big, then it would be hard to learn and hard to use.

Humans aren't good at looking at very long lists of unstructured information. We could have put all of the NIO -- all of the new IO APIs into one package. But within that package we would have had to have a lot of prose explaining, well, these classes over here that are kind of for this particular set of functions, and these over here for that other set, but they all would have been listed in order.

So humans aren't good at long lists of things.

Humans are really good at hierarchal knowledge structures. And that's why we organize packages in a tree-like structure, so that you can start -- in an IO case, you can start with the java.nio package, and that has the basic classes that are common to all of the new IO APIs. And its prose includes an overview of the other packages so you know where to go if you are looking for other things. And then each of the other packages has its own description, has its own content.

634


Q. The jury has heard a lot about write once, run anywhere.

How do the APIs and class libraries you've been involved in relate to that concept?

A. So earlier I used the example of the class libraries hiding the details of different graphical Windowing systems.

That's one good example.

We always try to design APIs that aren't specific to any particular operating system. And that's one of the key requirements for write once, run anywhere.

Q. What do you do about maintaining the consistency of the APIs?

A. I'm not sure in what sense do you mean --

Q. How do the APIs' specifications relate to maintaining write once, run anywhere?

A. Well, as I said, the APIs need to be designed in a way that is independent of the details of any particular operating system.

Q. In your work at Sun, then Oracle, were you involved in efforts to maintain the compatibility across different implementations of the class libraries?

A. Yes.

Q. Can you describe that.

A. So compatibility has a couple of different aspects. One is the compatibility of all the different implementations of a particular version of the Java platform.

635


For example, Java 7, you can get implementations of that from Oracle. You can get other implementations from IBM or from Red Hat. Several other vendors.

Compatibility across those is another one of the foundations of write once, run anywhere. If a developer writes an application and it runs fine on Oracle's Java implementation but doesn't work on IBM's, then that's a bug. You know, it might actually be Oracle's bug and not IBM's bug. But at the end of the day we figure it out.

So compatibility across all these different implementations is something in which Sun, now Oracle, continues to invest a significant amount of effort.

When a JSR is done in the Java Community Process, you have to produce the API specification, you have to produce the implementation that is the class library form.

And you also have to produce a third thing, which we call the TCK. That stands for Technology Compatibility Kit. And it's a potentially very large suite of test programs that run against the implementation to validate that it's behaving correctly.

For Java SE itself, for example, we have a TCK, and it contains, I think, at last count a couple of hundred thousand separate tests.

Oracle's implementation has to pass those tests.

IBM's implementation has to pass those tests. Every

636


implementation, in order to be compatible, must pass those tests.

Q. When you were at Sun, were you involved in any legal efforts to assure that compatibility was maintained across Java platforms?

A. Across different implementations of the same version?

Q. Yes.

A. I was peripherally involved in the Microsoft lawsuit in the late '90s.

Q. What was your involvement --

MR. PURCELL: Objection, Your Honor. Motion in limine.

THE COURT: Sustained.

We weren't going to get into that, were we?

MR. JACOBS: I think we are getting into the anti-fragmentation aspects of it, Your Honor.

THE COURT: Is that allowed?

MR. PURCELL: A general discussion of fragmentation is allowed, but dollar figures certainly were not.

THE COURT: All right. We'll stick to that guideline.

BY MR. JACOBS:

Q. What was your involvement in the Microsoft dispute?

A. Thankfully, it never brought me to a courtroom.

At that time, I was fairly junior, but I did the

637


technical investigation which identified the specific ways in which Microsoft had added some of their own functionality to the Java Standard APIs, and they also had removed some of the required functionality from the standard APIs.

Q. Is there a terminology in the Java world for what you label something when you add or subtract?

A. It's an addition or it's a subtraction.

Q. How did they create an incompatible version of Java? How did Microsoft create incompatible version?

A. So they wrote their own implementation. They left some things out. And they added some extra stuff in.

Q. And what is leaving something out called in the world of Java fragmentation?

A. A bug.

THE COURT: A what?

THE WITNESS: A bug.

BY MR. JACOBS:

Q. Are you familiar with the term subsetting?

A. I am familiar with the term subsetting.

Q. What does subsetting mean?

A. So subsetting is when you have an API specification that says you need X, Y and Z, and you build an implementation of that API specification that only has X and Y.

Q. And are you familiar with the term supersetting?

A. Yes.

638


Q. What is supersetting?

A. Supersetting is when you have an API specification for X, Y and Z, and you build an implementation which has XYZ and W because you thought it was a good idea.

Q. Did Microsoft -- in your analysis did you establish whether Microsoft had subsetted?

A. Yes.

Q. And did you establish whether Microsoft had supersetted?

A. Yes.

Q. And were you involved in that effort because of a litigation between Sun and Microsoft?

A. The technical investigation I did was prior to that litigation.

Q. I'd like to talk a little bit about the difference between the Java programming language and the Java class libraries and APIs.

What is your role in identifying the boundaries between the language and the APIs in Java? What do you do in your job?

A. I would say my role these days is to ensure that boundary remains as clear as it is.

Q. And what is that boundary?

A. So the Java programming language, it's a programming language, it's a way of expressing instructions for a computer. It includes all of the concepts that we've been discussing.

639


But that's it.

Whereas, the Java APIs are the blueprint for the class libraries. They are built using the programming language. But they are a distinct thing from it.

THE COURT: May I ask a question on that?

Earlier you gave an example of, I believe it was the C or C+ language.

THE WITNESS: Yes, sir.

THE COURT: And if we -- so I want to get you to compare that language to the Java programming language, ignoring all of the APIs.

THE WITNESS: Certainly, Your Honor.

THE COURT: All right. Are they roughly comparable, or is the Java programming language like rockets compared to a two-wing airplane?

So what's the comparison between the C+ Basic language and the basic Java programming language?

THE WITNESS: Your Honor, I would say that if Java is a rocket then the C language -- it's not as bad as a two-winged airplane, but it's probably like a DC-3.

The C language does not include, for example, the concepts of classes or interfaces we've been discussing here. It does have things that are like methods and things that are like fields; although, they are named differently.

THE COURT: All right. Continue on.

640


Now, we're going to break in -- what time is it?

It's -- we've got about five minutes, right. Okay.

BY MR. JACOBS:

Q. If one wants to go look and find out what the Java language specification is, where does one go?

A. There's a book called the Java Language Specification.

Q. Would this be it (indicating)?

A. That would be the third edition, yes.

MR. JACOBS: Your Honor, we would offer trial Exhibit 984 in evidence.

MR. PURCELL: No objection.

THE COURT: 984 is received in evidence.

(Trial Exhibit 984 received in evidence.)

MR. JACOBS: May I approach, Your Honor?

BY MR. JACOBS:

Q. Can you explain to us the -- at a very high level what is in the Java Language Specification, and in particular how the boundary that you were describing earlier is reflected in it?

A. So the Java Language Specification, it's a highly technical document. It describes the language, basically, building from the -- from the bottom up.

That's reflected in the table of contents, which starts at the very beginning, just describing general concepts about the grammar of the language.

And it then moves upward, talks about the different

641


elements of the grammar, the rules for constructing programs in the Java programming language.

Then it starts talking about types and values and variables. You know we haven't even got to methods yet.

And there's another chapter talking about how to convert different values. How do you convert an integer number to a floating point number, for example.

And then there's an entire chapter on names and what they mean, how they are interpreted in the language.

Then we finally get in Chapter 7 to packages. That describes that concept. Then we have Chapter 8 on classes, which, as you mentioned, is pretty extensive. A shorter chapter on interfaces.

And then some sort of cleanup chapters for miscellaneous chapters like arrays and exceptions. Well, another really important one would be blocks and statements. Those are the actual instructions.

Q. So if one wanted to know from the Java Language Specification, Third Edition, what is in and out of the language, how do you tell that?

A. Well, so, the grammar of the language is pretty precisely defined in here. Anything that is not admitted -- well, in anything that is not that grammar or the description of what programs constructed according to that grammar mean, those things are not part of the language.

642


Q. Now, if you were to study this specification to try to determine what, if any, of the 37 API packages that are at issue in this case are included in the Java language, how would you go about doing that?

A. Well, what I would do is I would consult the table of contents. Then I might consult the index.

Q. And let's take java. -- the one you worked on, java.nio.

A. Java.nio?

Q. Uh-huh.

A. That's not in this book.

Q. Is it anywhere in the book? Is it in any coding examples?

A. It might be an example. I honestly don't know. I would have to read through them all to find out.

I tend to doubt it. I think most of the examples are written using the simpler, more common APIs.

Q. So let's --

THE COURT: It's 1:00 o'clock now, so I'll let you take half a minute, if you want to. But it's now 1:00 o'clock and time to break.

MR. JACOBS: Good time for a break, Your Honor.

THE COURT: Remember the admonition. We'll see you back here at the normal time tomorrow. Thank you.

THE CLERK: All rise.

(Jury out at 1:00 p.m.)

THE COURT: Be seated.

643


Mr. Reinhold, you can step down. We will pick it up there. You need to be here at 7:30.

Everyone else, please be seated.

Here's the time so far. Plaintiff has used 318 minutes, by my count. Defendant has used 107.

Now, the plaintiff needs -- I don't know how many more witnesses you've got, but you need to be mindful of your overall time limits, and save some time for your cross-examination.

MR. VAN NEST: Excuses me, Your Honor. Could I have those numbers again?

THE COURT: This is what I have. If you have a different number. 318 and 107.

MR. VAN NEST: And that's cumulative total?

THE COURT: Until right now.

MR. VAN NEST: All days. Thank you.

THE COURT: This is inception to date.

All right. Any issues for the Court?

MR. JACOBS: No, Your Honor.

THE COURT: How many more with Mr. Reinhold?

MR. JACOBS: Probably about 20, 25 minutes.

THE COURT: How long will the cross be?

MR. PURCELL: Unless the scope of the direct changes substantially, probably not that long. A half hour. But we will probably want to call him back in our case.

644


THE COURT: All right. I'll let you do that. Any -- any -- who else will be here tomorrow?

MR. JACOBS: Mr. Bloch will be up first, Your Honor.

And then Mr. Lindholm tomorrow?

(Plaintiff counsel confer off the record.)

MR. JACOBS: And Mr. Swetland.

THE COURT: Mr. Lindholm.

MR. JACOBS: And Mr. Swetland.

THE COURT: Mister who?

MR. JACOBS: Swetland. S-w-e-t-l-a-n-d.

THE COURT: All right. So no issues for me?

MR. VAN NEST: We're sorry to disappoint you, Your Honor, but I don't think we have any this afternoon. We'll keep working.

MR. PURCELL: We'll try to come up with some for tomorrow morning.

THE COURT: Sure. My thanks to you. See you tomorrow.

(At 1:02 p.m. the proceedings were adjourned until Thursday, April 19, 2012, at 7:30 a.m.)

- - - - -

645


I N D E X

PLAINTIFF'S WITNESSESPAGEVOL.
PAGE, LARRY
(PREVIOUSLY SWORN)ADVERSE WITNESS4643
Cross Examination Resumed by Mr. Boies4643
Redirect Examination by Mr. Van Nest4883
Recross Examination by Mr. Boise4953
SCREVEN, EDWARD
(SWORN)5023
Direct Examination by Mr. Norton5033
Cross Examination by Mr. Purcell5333
Redirect Examination by Mr. Norton5633
REINHOLD, MARK B.
(SWORN)5793
Direct Examination by Mr. Jacobs5803

- - -

646


E X H I B I T S

TRIAL EXHIBITSIDENVOL.EVIDVOL.
2, 7, 4014363
64813
450, 451, 452, 453, 454, 4555773
460, 461, 462, 463, 4645783
475, 4765783
509, 510, 511578578
513, 5185793
520, 5215793
523, 5245793
5265793
595, 596, 5975793
598, 5995793
601, 602, 6035793
6106183
610 - Withdrawn6183
6595793
9846413
10285993
10414343
22375533
23475253

- - -

647


CERTIFICATE OF REPORTERS

We, KATHERINE POWELL SULLIVAN and DEBRA L. PAS, Official Reporters for the United States Court, Northern District of California, hereby certify that the foregoing proceedings in C 10-3561 WHA, Oracle America, Inc., vs. Google, Inc., were reported by us, certified shorthand reporters, and were thereafter transcribed under our direction into typewriting; that the foregoing is a full, complete and true record of said proceedings at the time of filing.

/s/ Katherine Powell Sullivan

Katherine Powell Sullivan, CSR #5812, RPR, CRR
15 U.S. Court Reporter

/s/ Debra L. Pas

Debra L. Pas, CSR #11916, RMR CRR

Wednesday, April 18, 2012


  


Oracle v. Google Trial Transcript - Day Three, April 18, 2012, Larry Page on the Stand ~pj | 67 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Corrections here
Authored by: FreeChief on Friday, September 28 2012 @ 11:58 AM EDT
Descibe it in the title.

 — Programmer in Chief

This proves I am spending way too much time reading Groklaw.

[ Reply to This | # ]

Ta.
Authored by: Anonymous on Friday, September 28 2012 @ 12:31 PM EDT
:¬)

[ Reply to This | # ]

Alsup AND Jacobs
Authored by: IMANAL_TOO on Friday, September 28 2012 @ 12:57 PM EDT
"And in the end, that is pretty much what he did, and he determined that
the Java APIs' SSO was not protectable. But don't you think if you were in the
classroom that day that you would have been saying to yourself, "I suspect
this judge can code"? I would, just by his expressions."

Yes, but I was equally impressed by Mr. Jacobs:

"MR. JACOBS: I think it's a different use of the term perhaps. In the world
of this dispute, a method declaration is a statement that defines an API
element. So the declarations for the different kinds of elements, packages,
classes, interfaces, fields and methods are done differently, but they all
include the name of the element and define many of the relationships the element
has to other API elements. The method declaration includes the name of the
method, the type returned by the method, the parameters of the method, if any,
each of which have a type and a name. And optionally a method declaration can
begin with a modifier, like public or static, and may be followed by the
exceptions that the method shows. And then in the implementation the declaration
is followed by the Java code that carries out the function of the method, even
if the function is literally to do nothing. I think that's a different meaning
of declaration than your Honor is".

That is not bad at all for someone trained as a lawyer! I am not sure how much
programming Mr. Jacobs knows by own experience, but it sure sounds like he
understood it well. He is improving on the Judge, don't you think?

In my view, Alsup and Jacobs were both impressive.


---
______
IMANAL


.

[ Reply to This | # ]

Off Topic
Authored by: FreeChief on Friday, September 28 2012 @ 12:59 PM EDT
Put interesting comments on off-topic subjects here. For example, discuss a different legal issue. "Ta." is an example of an uninteresting comment. Try to write complete sentences, and spell correctly. We will cut you some slack, because typos happen, and English is complicated, but if you aren't even trying you may be ridiculed.

 — Programmer in Chief

[ Reply to This | # ]

News Picks Here
Authored by: SilverWave on Friday, September 28 2012 @ 02:28 PM EDT
ta

---
RMS: The 4 Freedoms
0 run the program for any purpose
1 study the source code and change it
2 make copies and distribute them
3 publish modified versions

[ Reply to This | # ]

thank you
Authored by: Anonymous on Friday, September 28 2012 @ 02:55 PM EDT
Very enjoyable commentary, thank you PJ.

[ Reply to This | # ]

Oracle v. Google Trial Transcript - Day Three, April 18, 2012, Larry Page on the Stand ~pj
Authored by: Anonymous on Friday, September 28 2012 @ 03:31 PM EDT
The judge's description missed the distinction between
declaration and definition, which is important in a case
about APIs. The judge's mention of "end sub" makes it clear
he was thinking about definition, which is not correct.
Jacobs' long-winded reply, including mention of optional
modifiers for visibility and scope ("public" and "static")
certainly wasn't very edifying, but it served him well: his
whole case was that declarations are copyrightable, so it
helps if he makes them sound difficult and complicated, with
many degrees of freedom. Also, the subtext was "don't even
try to out-technical me", which was probably very useful as
well. Most judges might be scared off and just accept
anything Jacobs said as technically accurate; luckily Alsup
isn't that kind of person, but I'm sure it made him extra
careful not to make technical pronouncements before he was
sure he understood the tech.

[ Reply to This | # ]

Oracle v. Google Trial Transcript - Day Three, April 18, 2012, Larry Page on the Stand ~pj
Authored by: Anonymous on Friday, September 28 2012 @ 08:20 PM EDT

Q. It says. "What we've been asked to do by Larry and Sergey is investigate what technical alternatives exist to Java for Android Android and Chrome." Do you see that?

A. I can read the document, yes.

Q. Does that refresh your recollection that you knew who Mr. Lindholm was and, in fact, asked him to investigate what technical alternatives exited to Java for Android in or about August of 2010?

I find this exchange rather odd. The lawyer is trying to read something into the quote which is simply not there. It makes me wonder whether Boies has any experience with working for a large company. Page is one of the heads of the company. You would have to go several levels down the management chain before you would get to someone who is actually going to do the work. From the statement quoted above, you couldn't even conclude that Page even know the author of the e-mail, let alone any of the people it was addressed to.

I worked for a company that had at least an order of magnitude more employees than Google does. Our business unit did several hundred million dollars a year in business, but I doubt that the management board could even find our city on a map. Yet, projects would be be phrased as "the board has asked us to ...".

If I had been on that jury, I would have come to the conclusion that Boies was a prize twit. He seemed to be "winging" it, hoping to come up with something he could use. Instead he was wasting everyone's time pursuing a line of questioning that anyone with experience in business could have told him was not supported by the e-mail.

A number of years ago I was in a lecture covering basic business law (for engineering students) where a lawyer told a story about a case he had previously worked on. He had his witnesses all lined up and knew what answers they would give to each of his questions. His opponent had come in unprepared and was "winging" it. At one point the opposing lawyer said "your honour, I object!. My opponent has prepared his witnesses for these answers!". The judge answered "and if you had prepared your witnesses, we wouldn't be here this long".

Having seen his performance with SCO and now Oracle I really do have to wonder what makes people think that Boies is worth his fee.

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )