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
Int vs int and Java's homonym problem. | 126 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Fibber!
Authored by: complex_number on Thursday, April 19 2012 @ 06:18 PM EDT
Judge Alsup to Google: I hope that you aren't trying to get Oracle to burn through their [allotted, limited trial] minutes.

Google: No, Your Honor.

Google are naturally trying to get Oracle to run out of time. Oracle will be doing the same to Google when it is their turn.
What matters is how obvious this tactic is.

No matter. I enjoyed that little snippet.

It is a pity that my business in San Diego is running behind schedule. I'd really liked to have made it up to Frisco to see a US court in action before I go home to blighty.

---
Ubuntu & 'apt-get' are not the answer to Life, The Universe & Everything which is of course, "42" or is it 1.618?

[ Reply to This | # ]

  • Not everyone plays that way - Authored by: Anonymous on Thursday, April 19 2012 @ 06:42 PM EDT
  • Does this make me look fat? - Authored by: mexaly on Thursday, April 19 2012 @ 07:27 PM EDT
  • Fibber! - Authored by: Anonymous on Thursday, April 19 2012 @ 07:34 PM EDT
  • Fibber! - Authored by: PJ on Thursday, April 19 2012 @ 07:57 PM EDT
  • No - Authored by: Anonymous on Friday, April 20 2012 @ 12:44 PM EDT
Corrections Thread
Authored by: bugstomper on Thursday, April 19 2012 @ 06:25 PM EDT
Please summarize error->correction or s/error/correction/ in the Title box

[ Reply to This | # ]

Off Topic threads
Authored by: bugstomper on Thursday, April 19 2012 @ 06:26 PM EDT
Please stay off topic here

[ Reply to This | # ]

News Picks Thread
Authored by: bugstomper on Thursday, April 19 2012 @ 06:29 PM EDT
Pick your News here. Please put the title of the News Pick in the Title box and
include a clicky link to the article for when it scrolls off the sidebar.

[ Reply to This | # ]

Comes transcripts here
Authored by: bugstomper on Thursday, April 19 2012 @ 06:30 PM EDT
Please post your transcriptions of Comes exhibits here

[ Reply to This | # ]

So, Google's Agent was good, when will we see that SUN is guilty of "Acquiescence"?
Authored by: Anonymous on Thursday, April 19 2012 @ 06:34 PM EDT
So, Google's Agent was good, when will we see that SUN is guilty of
"Acquiescence"?

I often wonder why that IP has a special property class, above everything else,
where the "Laws of Agency" and the term "Acquiescence" seem
to be not important?

Sun's Agents did act in a certain way (case closed).
Sun's Agents even were guilty of "Acquiescence" in a very public way
about what Google was doing (case closed).

Why does this have to go beyond simple understood forever legal terms that one
might learn in Law School 101?

Anyone?

[ Reply to This | # ]

Thank You To Our Court Reporters!
Authored by: sproggit on Thursday, April 19 2012 @ 06:44 PM EDT
Your notes are incredibly detailed, and I like the way you capture the
subtleties of exchanges.

If we had nothing but the profeshnial [sic] journalist output to go on, we
wouldn't have got half the detail you've provided.

So a hearty thanks [from us all].

[ Reply to This | # ]

How is it possible that they can't number exhibits properly?
Authored by: Anonymous on Thursday, April 19 2012 @ 06:46 PM EDT
I could understand it if they were wasting Google's time.

Would be good to see figures for the overall allocated time, since hours have
been mentioned.

tx

[ Reply to This | # ]

API names?
Authored by: Anonymous on Thursday, April 19 2012 @ 08:26 PM EDT
I don't think it's correct to say that the name is a component of the API as
Google's lawyer said ("A method declaration is a statement that defines an
API *element name*, return type, parameter type and order"). It may be the
case for the particular case of Java (is it? I haven't used Java) but not in
general.

I'm not a friend of MS but I've worked enough with DLLs under MSW to know that
in many cases, the functions they contain (their API) can be referenced either
by name or by number, and when you use the number, you can use any name you want
within your program to refer to them. It's thus more accurate to say an
identifier (that uniquely determines what functionality that API call
implements) than a name.

[ Reply to This | # ]

Not in Contention Versus Challenged
Authored by: Anonymous on Thursday, April 19 2012 @ 08:52 PM EDT
This is definitely where I struggle with the judicial reality disconnect

1) Android use of the GPL

How is this relevant to anything in the trial?
Is this just Android Platform is GPL but that's irrelevant here?


Most disturbing though...

Not in 2) The Names

Challenged 1) The 37 Apis
Challenged 4) Declarations

The above three items are exactly the same thing.
No question. There is no other feasible interpretation.

Further Challenged 5) SSO, technically, as such, follows a result of all of the

above.

(Except in Oracles confused view of how SSO applies to a compilation which
is not a compilation, Google do remind the court of this and that abstraction
and filtration will be necessary, if indeed copyright does apply to the SSO)

I am pleased to see the start of some clarification, which may be the start of
the analysis Google mentions. Much more is required, but is the Judge getting

tired of Oracles slipperiness, or is he just letting them hang themselves

37 Packages (which is actually 14, with some sub packages)
?????how many Classes
4,500 Methods

First stop, the Classes.

java.lang.String (Language) for example contains 63 (counted by eye from 1.5
spec so probably flawed) Method declarations, this does not include
constructors, which are also technically (construction) Method declarations,
of which there are another 11, discounting the depracated ones, which is
another 2, for a total of 75

javax.security.auth.x500.X500Principal (assume API for the sake of
argument), contains a mere 6 Method Declarations, and 3 Constructors for a
total of 9

Oracle admitted that they extrapolated their 100,000 odd number from an
examination of a few classes, so let's play the same game...
(75+9)/2=42 (Yay, you know it's good when the answer is 42)
so we're likely to be in the ball park of about 100 Classes (4500/42=107...)

As an aside, in relation to the '4500' Method declarations, (warning sweeping
statement coming), it should be kept in mind that most if not all of the 100odd

classes under discussion implement the Methods equals(), hashcode() and
toString() (yes even the String Class has a toString() Method), so that's a
whole bunch less methods, or about 300, which conveniently allows us to
drop the odd 7 we ignored a moment ago.

SO when Oracle talk about SSO, of "Thousands" of items, they are
really
talking about 14 packages, and 100 classes.

Just to be clear on this, you cannot decide in a fit of creative expression to
move the X500Principal.getEncoded() Method to the String Class, aside from
breaking the OOP paradigm, it's just plain ridiculous on the face of it, so SSO

can only possibly apply at the package level e.g. you might just conceivably
put the StringBuffer class in with some of the other Buffer classes in
java.nio.

java.lang (which we assume is part of the Language) contains 35 of those
classes.

Things not so far taken into consideration (because have so far focused on
Method declarations) .

Fields (String has 1, X500Principal has 3).
Interfaces (java.lang has 8)
Enums (java.lang has 1)
Exceptions (java.lang has 27)
Errors (java.lang has 22)

Each and every one of these things is a declaration, each and every one of
these things is a name, each and every one of these things is not protected,
the judge said so.

The java.lang (Language by definition) package contains dependencies
outside that package, following that chain is left as an exercise for the
reader.

I'm not sure why I decide to start this analysis, beyond my own
comprehension of what 4500 Method declarations might mean , and the
difficulty understanding understanding how you can have one thing appear
three times on opposing sides in two lists.

All the above detail is counted by eye, and typed on the fly, and I need a
better
browser, so mistakes in numbers/calculations typos, are just that.

When you take out this nonsense, the only remaining Challenged item of any
substance appears to be Item 6) the Book, the API Specification, and surely
the question there has to be how much actual damage have you suffered by
Google copying a Book (if they actually did) that Sun/Oracle publicly published

themselves without access restrictions in every edition on the internet,
allowed and actively encouraged millions to download for free, and has been
reproduced by a variety of publishers in Dead Tree format?

Oracles "thousands" of creative decisions claim looks thinner and
thinner the
closer you look. There's one part of me that hopes Judge A does not decide to
just throw this lot out when Oracle have finished to save the Jury/Court/
Parties some time. Watching(through GL) van Nest destroy this farce should
be entertaining (I can only wish) .





[ Reply to This | # ]

Serevan on field of use
Authored by: rsteinmetz70112 on Thursday, April 19 2012 @ 08:57 PM EDT
It seems Serevan was claiming that Sun's restriction were based on the
capability of a device. but in fact the restrictions were based on the
"field of use", not the capability of the device.

Apparently Serevan would be perfectly happy with and unlimited version of Java
running on any device capable of running it well.



---
Rsteinmetz - IANAL therefore my opinions are illegal.

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

403 = Federal Rules of Evidence 403?
Authored by: clemenstimpler on Thursday, April 19 2012 @ 09:13 PM EDT
Quote from the article:

"Google: Objection, #403 [ I am not sure what a #403 objection
indicates.]"

The rule reads: "The court may exclude relevant evidence if its probative
value is substantially outweighed by a danger of one or more of the following:
unfair prejudice, confusing the issues, misleading the jury, undue delay,
wasting time, or needlessly presenting cumulative evidence." From the
context, I would assume that Google objected because of 'confusing the issues'
(claiming that the exhibit belongs to the 'damage phase' rather than the
'copyright phase' of the trial). IANAL and all that

[ Reply to This | # ]

class names _are_ part of JLS
Authored by: awildenberg on Thursday, April 19 2012 @ 09:38 PM EDT
Oracle: Are there any names of the API classes that are not part of the Java Language Specification?
Edward Serevan: Double float long int boolean string thread object class… none of these are in the JLS. This list might not be comprehensive; that was off the top of my head.


If you go onto Oracle's site, you can see that it's obviously not true. Not only are some of those class names part of the JLS, the illustrating examples throughout the JLS involve code snippets referencing those classes. This subsection alone references String, Boolean, Byte, Short, Character, Integer, Long, Float and Double. The next section defines Object and Class. I'm sure if you look up try/catch you'll find references to Throwable and Exception. They really are part of the fundamental structure of the language, so much so that you can't write a language spec without referring to them specifically.

http://docs.oracle.com/javase/specs/jls/se5.0/html/typesValues.html #4.3.1

[ Reply to This | # ]

Day 3 of the Oracle v. Google Trial ~pj - Updated 2Xs
Authored by: Anonymous on Thursday, April 19 2012 @ 09:42 PM EDT
Oracle: Are you aware of any companies that use the Java API’s that has not taken a license?
[ no response recorded... sorry ]

At this point Page said something about IBM having had disagreements with Oracle in the past. Oracle's lawyer asked him to clarify if he was saying IBM is using Java API's without a license, to which Page replied he didn't know about the details of the relationship between IBM and Oracle.

Oracle's lawyer then went back to the original question but I don't remember Page's answer.

(I haven't recorded anything so this is purely from memory and may be somewhat inaccurate)

[ Reply to This | # ]

Some Oracle witness lies (or at least not the truth)
Authored by: bugstomper on Thursday, April 19 2012 @ 10:51 PM EDT
Serevan (as paraphrased and summarized by mirrorslap):

[An API is defined as] Part of a program. Programs have 2 parts:
1) definition of structure
2) code that carries out that functionality [example of "add
entry"/"remove entry"]

I jumped when I read that, thinking that he was saying that the API is the class
library, i.e., the code, something that Oracle has been trying to confuse the
court is true. Then reading it more carefully, I see that he could be saying
that programs have two parts, the definition of structure which is the API, and
the code which is the implementation. That would be true, but it is misleading
to not say clearly that only the first part is the API.

He then said

"There is no distinction in Java between the APIs and the class libraries.
They are co-mingled"

Ooh, there is the confusion again. If what he meant is that the API in the form
of the package names, class names, public field definitions and method
signatures appears in the source code together with the implementation code,
then that is strictly speaking accurate. But again said that way without
clarification tends to conflate the API and the class libraries. In fact, what
he is saying supports Google's case by saying that the source code of
independently implemented class libraries will of necessity contain the same API
statements as the original class libraries even with no copying of the
expressive elements.

"The APIs are a part [of the documentation]"

And there he supports the idea that the package names, class names, method
signatures in the documentation will be the same when an API is implemented
independently even if the rest of the documentation is different.

"Oracle: [brings out a file cabinet]. This filing cabinet, is there any
relation of it to an API?

Edward Serevan: No way is that an API. It's a filing cabinet. You can put papers
or file folders in it. You could even put old shoes in it".

And that refutes Google's metaphor exactly how? Is that an argument from
authority? ("I am the Chief Architect of Java APIs at Oracle and I say that
this clearly understandable metaphor explaining an API to the jury is not
literally true. That filing cabinet is a filing cabinet and is not an API.
Google is trying to fool you when they say it is something other than a filing
cabinet as anyone can see by looking at it. I'm a Chief Architect. You can trust
me.")

"Oracle: Are there any names of the API classes that are not part of the
Java Language Specification?

Edward Serevan: Double float long int boolean string thread object class… none
of these are in the JLS. This list might not be comprehensive; that was off the
top of my head."

What is remarkable about this is not just that it isn't true as awildenberg
pointed out in a comment here. Through some strange mental process Servan
managed to answer the question by listing most if not all of the classes that
_are_ explicitly listed in the Java Language Specification. I wonder if he was
thinking "Don't let on about those classes that are specifically mentioned.
Don't let them know about those classes. Anything but Double Float Long Integer
Boolean String Thread Object Class..."

By the way, for those who don't want to bother following awildenberg's link to
the JLS section 4.3.1 Objects, here is the relevant excerpts from the same 3rd
edition, "The Java Language Specification" that the other Oracle Chief
Architect witness, Mark Reinhold, said is the place to go to find out about the
JLS:

"[...] resulting in a new object of type String (§4.3.3) [...] New objects
of the types Boolean, Byte, Short, Character, Integer, Long, Float and Double
may be implicitly created by boxing conversion (§5.1.7)."

The next section, 4.3.2 is all about the Object class, lists methods for it and
mentions the Class class. Section 4.3.3 is about the String class.

From the beginning of Chapter 17: "Threads are represented by the Thread
class."

Even more remarkable is that Judge Alsup picked up on this when Google's lawyer
did not during the cross. I expect that there will be some repercussions when
those specific classes are listed and are shown to be explicitly called out in
the JLS, and not just as part of some example code.

I bet that Judge Alsup has been paying attention and remembered that there has
been mention that some of the API classes are so integral to the Java Language
that they are even mentioned in the JLS. This has been said about String, Object
and Class at least. Did he notice that there was at least that much wrong with
Serevan's list?

[ Reply to This | # ]

Doc Comments, by definition, make a (something) -not- "self documenting"
Authored by: BitOBear on Thursday, April 19 2012 @ 11:10 PM EDT
I love me an expert.

"Self Documenting" code is the idea that you can write and arrange
code in a way that obviates and removes any need for the programmer to write
comments (or other documentation).

(Examples in C++ and doxygen [http://www.doxygen.org])

Code fragment:

if (current_object->NeedsSaving()) {
archive_object->TakeSnapshotOf(current_object);
archive_object->FlushArchiveToPerminantStorage();
}

If you read the above "like prose" it tells you what is taking place
and why. This is an example of "self documenting code".

NowAgain:

if (c->ready()) {
a->take(c);
a->flush();
}

No where near as helpful, so one might need to define the elements the classes
represented by "c" and "a", in particular the methods
"ready", "take" and "flush"

class archive { public:
//(stuff elided for simplicity...)
//! brief take a snapshot of a storable object
//! parm s a reference to the object to capture
void take(storeable & s);

//! brief flush all snapshots to storage
void flush();
};

So javadoc is a Java-specific tool that takes comments and code and burps up an
API specification just like doxygen can take code in a number of different
languages and burp up documentation. In the absence of comments you might get
some information such as "int a;" may prompt the tool to give you the
fascinating insight to the fact there exists a thing called "a" and it
is an integer.

The argument of "documented code" vs "self-documenting code"
is thus:

If you -choose- to make the verbs and nouns in the text of your code read like
prose, then the code always says what it does explicitly. But this is only as
effective as the choice of nouns and verbs each programmer makes individually,
and choosing good ones means your programmer can program like a writer, and
there will be more reading and debugging and compiler time involved at every
stage. There can be fewer statements on any given page because the words are
longer and long expressions can get hard to hold in the head. The choice of
names itself can become a draconian and lead to multiple methods that have
different names but essentially identical things. Finally, if a verb also has
some atypical usages or side effects it can lead to small tangles of code where
the "as prose" reading gets very David Lynch.

Documented code can be more concise. If the symbols (nouns and verbs) are
memorable in and of themselves but just enough to be held in the head, and short
enough to get more of them on a page before, you can get code that is faster to
compile and faster to browse, read, and write as a human task. The danger is
that as symbols change over time the comments and the code can get out of sync
and you are left with comments that tell you code does (this thing) when the
code now does (some other thing) instead.

Simply put, if you put documentation in using comments, then the thing itself
was not self documenting. It was documented. By you even.

This guy just set of my BS detector completely with that comment. I don't trust
people who misuse terms-of-art so badly.

Mr. Reinhold has been brought in to mince words for Oracle and he is mincing
them wrong in several places. (Look up "pleading to authority" in Carl
Sagan's Baloney Detection Kit.)

[ Reply to This | # ]

Err... Which edition of Java is Harmony?
Authored by: BitOBear on Thursday, April 19 2012 @ 11:32 PM EDT
Here are some of my "killer questions"

===

The killer question is, if Harmoney is not Java because it never went through
the TCK, and Sun's stated position is that it is only interested in preventing
fragmentation inside of each edition of Java, what does the
"fragmentation" issue have to do with the non-java Harmony thing?

The TCK is, after all, the "is this java or not" hurdle that brings
things into the namespace or not.

===

If the API Files (machine readable interface part) were not part of the GPL
release of the libraries, then how can the library be used at all? The zeroith
freedom of all GPL material is the freedom to use.

===

Do you need everything in the Language Specification for Java in order for your
implementation of Java to be Java? If not, why is it in the specification? Don't
the language and library specifications each call out to each other by
referencing names and details.

Note that in a previous post some weeks ago I document the presence of string,
object, exception, throwable, runable, and a number of other classes from the
library that must be present in the language.

In at least one previous post I pointed out -why- one needs to treat the two
documents (language spec and library API) as one for them to make sense. I also
pointed out that most other languages (Ada etc) do -not- separate the core
library from the language spec at all (except in volume 1 vs volume 3 sense for
large languages).

The word-mincing part is that they are not "laid out" (member order
etc) but the members the class(es) must contain at a minimum are explicitly
listed and more are implicitly used.

Everything this guy said sounded good but was not "strictly true". It
was pure truthiness and good enough for daily conversation when it was right,
and it was blurry or wrong in parts that would never matter in daily operation
(like whether the class "Object" was in the JLS or not, which matters
not at all since it isn't an optional component.)

The case at hand is all about that blurry part.

===

Were I redirecting (and if such is allowed):

Do you, in the general sense, know about cars?

Eh... yes...

Do you know about your own car?

Eh... okay yes... I guess...

Do you know about -my- car?

No... why would I?

Do you know about APIs?

Yes.

Do you know about Google APIs?

Many of them, yes.

Do you know about Sun's Java APIs?

ohh..... no. Why would I?

The Oracle council's attempt to conflate knowledge about APIs in general into
specific knowledge about someone else's API is just stupid. That needed some
hammering.

[ Reply to This | # ]

Guessing game contest
Authored by: jheisey on Thursday, April 19 2012 @ 11:37 PM EDT
Groklaw should have a contest to see who can most accurately guess how many
times Oracle witnesses will "accidentally" mention Oracle's $7.4B
transaction price to purchase Sun despite the judge's instructions. They have
already done it at least twice in four days.

[ Reply to This | # ]

APIs take center stage at Oracle-Google trial
Authored by: Anonymous on Friday, April 20 2012 @ 12:11 AM EDT
From CNET: APIs take center stage at Oracle-Google trial (This is a news pick, but it seems too on-topic for that thread.)

That seems to be a very good article. It sounds like Oracle's witness Mark Reinhold said something very questionable that may be damaging: "More simply, he explained that the APIs and class libraries are not in the Java language in the same way the Oxford English dictionary doesn't contain every word in the English language." OTOH, it sounds like another one of Oracle's witnesses was helpful to Google. That was Joshua Bloch, who now works for Google. Oracle apparently called him because he is the person who copied the "range check" code. Under cross, he seemed to counter a lot of what Reinhold had said. From the CNET article:
He added, through [Google's lawyer] Baber's prompting, that an API is not a blueprint that tells you how or to build or implement something. Baber asked Bloch to explain naming conventions in Java APIs--packages, classes and methods.
I take it that Baber could lead Bloch since he was technically a hostile witness, even though he was actually friendly to Google.

PJ's comment in the news pick is strange, though.
PJ: So when Oracle told the jury in its opening statement that APIs are blueprints, that doesn't match this witness, does it? And look at the evidence for yourself -- should this be copyrightable? Zeroes and ones. And just because a company puts a copyright notice on a page, it doesn't mean it's copyrightable.
Which witness is "this witness"? There were two of them. The one who mentioned the zeros and ones was not the one who said that an API is not a blueprint. He was talking about class libraries as object code as opposed to source code, and everyone agreed the object code wasn't copyrightable, didn't they?

[ Reply to This | # ]

Int vs int and Java's homonym problem.
Authored by: BitOBear on Friday, April 20 2012 @ 12:57 AM EDT
So one of the other things is that is going to happen here is that

"int" "float" "double" and a few of the other
things R. cited aren't classes at all. But "Int" "Float"
"Double" so on are.

In computer languages capitalization and context matter. There are these
container adapter things that let you take a native (non-complex, no members,
indivisible) things and put them in a class so that you can pass them where
classes belong. Such a class can also give you "helper" information
such as the maximum and minimum values for "int" by querying Int
member named something like "max".

I don't remember the real names under Java for all this plumbing.

So while there is no "string" that isn't a class, many of the others
(bool, float, int, double, etc) are things that are in the language spec but
aren't classes at all. So several things were classes for sure, and several
things might not be classes at all

Java has a homonyms... a fact that the court and the jury might need to know.

[ Reply to This | # ]

GNU Classpath didn't run the TCK because it wasn't allowed
Authored by: Anonymous on Friday, April 20 2012 @ 03:22 AM EDT
Edward Serevan: GNU classpath was always incomplete. It didn't fully implement
the API or run the TCK. There is no commercial use of the GNU class path,
especially after Sun released Java under the GPL.

Others have already pointed out various commercial uses of GNU Classpath (even
by Oracle themselves), so this is a false statement (although the witness could
not know of course). The didn't fully implement the API or TCK part are
misleading though. There are several reports of GNU Classpath being almost 99%
(?) complete and only needed the TCK (which they requested and was denied of
course).

http://www.javalobby.org/java/forums/t85957.html
"ust last year, GNU Classpath announced 95% coverage of Java 1.4 with their
0.19 release ; today on the Kaffe website, GNU Classpath is reporting 99.95%
compliance with Java 1.4 , and 95.53% coverage of Java 5."

http://www.advogato.org/person/robilad/diary/64.html
"Encouraged by those successes, and by a lot of good conversation with
Javali's awesome Bruno Souza, and Sun's energetic Onno Kluyt, I have sent in my
TCK scholarship application, so that we can eventually have mutual compatibility
between Sun's proprietary implementation of the Java specifications and Kaffe
and other GNU Classpath virtual machines and runtimes.

This is the first step. Onno has acknowledged receipt of my application from
Sun's side, so it's now up to the TCK Scholarship Board to decide if the
Kaffe/Classpath application is worth support. Then it will be up to Sun to
propose the terms for such access."

Onno Kluyt was Sun's head of the JCP.

[ Reply to This | # ]

blueprints vs APIs
Authored by: Anonymous on Friday, April 20 2012 @ 03:57 AM EDT
Nice observation there about Reinhold's words. Indeed when the Oracle people say
"blueprint" they really mean the whole design and specification
document. But that is much, much more than the "bare APIs" (really in
this case the term API is so badly defined, sigh). The real discussion is
whether the (in a way meaningless) class/method signatures are protectable under
copyright or not.

It is smart of Oracle to keep using the word blueprint though, you have an image
in your head of dense interrelationships, lots of lines precisely saying how
long or how connected things are. But that is adding meaning to the bare
class/method/field names. Which goes to how to implement it. And that is
important too. After all Google did implement it too. It is just not what the
dispute is really about.

Filing cabinet is kind of a good "counter word" for Google that makes
the "bare" API meaning more clear. But even that has too much
"structure" to it IMHO. It is hard to come up with something better
though without having to assume some formal logic/mathematical background.

[ Reply to This | # ]

Tearing Reinhold apart
Authored by: Anonymous on Friday, April 20 2012 @ 06:36 AM EDT
Are the Google lawyers not allowed to do this or do they simply lack the technical understanding to see this opening to drive home the point that APIs cannot be protected.
Mark Reinhold: [From the point of view of the computer], very little API organization is required by the VM. We could have given them completely random names and put them into one huge package. The design goal was that API's should be easy to learn and easy to use. Other considerations:

1) performance is important
2) Portability is important [wouldn't want to define an API that is specific to Windows].

Oracle: When you launch the API design process, what do you do?

Mark Reinhold: Collect use cases, define the problem/solution space, general requirements.

Fictional redirect I'd like to have seen:

Google: You've said that while in theory you could have chosen completely random names, that would not have been good API design. Correct?
Reinhold: Yes.

Google: Good API design requires that you - I'm trying to recall the points you just made here - that you make things easy to learn for programmers, that you design for optimum performance and portability. Correct?

Reinhold: Yes

Google: You've said that in order to do that you have to collect use cases and requirements, that would be from programmers who should use the APIs. Correct?

Reinhold: Yes

Google: In other words, good API design requires that you constantly think about and consider the needs of the 10s of 1000s of Java programmers out there? And you try to serve those needs as good as you can. And the better you can do that, the better you are as an API designer. Is that correct?

Reinhold: Yes

Google: And you consider yourself a good API designer?

Reinhold: I think I'm quite good at it. Yes.

Google: So I understand that as a good API designer, when you developed the Java APIs you constantly thought of and were guided by the technical and objective needs of other programmers. Have you ever included a function in an API that was badly designed intentionally, as a joke, to play a trick on other programmers?

Reinhold: Of course not. That would have been unprofessional. And it would never have survived review. I'm not working alone. We're working as part of a team. If a rogue developer snuck something like that in, someone else would take it out and it would never ship.

Google: So API design, "good" API design, that is, is completely guided by external factors and functional considerations and you intentionally refrain from as well as are prevented by others from introducing your own personal touches into the work? Where then do I find the personal creative spark of Mark Reinhold within the Java APIs?

Reinhold: [repeats himself about how much work API design is, about how he has to make many nonobvious decisions]

Google: I see that you put a lot of thought and effort into the API designs. But is there any personal creative expression of Mark Reinhold in those APIs? Is there anything that marks these APIs as "Mark Reinhold" APIs in the sense that every John Clancy novel is, regardless of subject, unmistakably a John Clancy novel. Can someone find your personal handwriting, so to speak, in these APIs?
And I think at that point I could simply let him talk and everything he would say would hurt Oracle's case. He'd probably start with saying "APIs are not like novels" which would be a big "Ouch!" for Oracle, since they want to sell the jury on this idea. And not only the jury. The judge, too.

[ Reply to This | # ]

Mark Reinhold: Many JSR's are submitted from outside Sun/Oracle.
Authored by: Ian Al on Friday, April 20 2012 @ 07:38 AM EDT
Article I, Section 8, Clause 8 of the United States Constitution:
To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries.
So, the Constitution says that the authors get the exclusive Right to their respective Writings...

So, who owns the copyright on the API packages and JSRs authored outside of Oracle/Sun? Who has authored the 'Sequence, Structure, Organization' and, therefore, owns the copyrights?

How much creative expression is there in Sun listing other authors' API packages in alphabetical order?

---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid!

[ Reply to This | # ]

No Reinhold Corss Examination?
Authored by: rsteinmetz70112 on Friday, April 20 2012 @ 08:55 AM EDT
The report says Reinhold was excused but may be recalled. Did Google not
question him?

---
Rsteinmetz - IANAL therefore my opinions are illegal.

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

Did Oracle just toast their 37 API contention with the Jury?
Authored by: Anonymous on Friday, April 20 2012 @ 09:58 AM EDT

Mark Reinhold: No- it was produced at roll-out of Java 5 [for the public]. It is used by engineers/programmers.
Oracle: Are the 37 APIs under contention shown on this chart?
Mark Reinhold: 34 of 37 API's are. 3 are not.
Wait.... what?

I think if I was on the Jury, I'd now have the question:

    Okaayyyyy..... so.... if those are built for "engineers/programmers" and it was shown publicly and the language is available for anyone to use without a license.... are there really only 3 API's that are at issue?
Oracle might want to consider somehow clarifying that point in future questioning.

RAS

[ Reply to This | # ]

"Alan" at Sun
Authored by: Anonymous on Friday, April 20 2012 @ 01:34 PM EDT
Wonder what that was about?

For what it's worth, the Alan I know at sun: http://www.linkedin.c om/pub/alan-burlison/1/285/558

[ Reply to This | # ]

  • "Alan" at Sun - Authored by: Anonymous on Friday, April 20 2012 @ 01:36 PM EDT
APIs are nothing but long lists of uncorrelated information.
Authored by: Anonymous on Friday, April 20 2012 @ 11:08 PM EDT
APIs are, at least Java's, not just long lists of uncorrelated information. I
assume you know that. Sometimes, pj, I have a problem distinguishing your
ironic or sarcastic statements.

[ 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 )