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
Seems so... | 396 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Google rests?
Authored by: darrellb on Tuesday, April 24 2012 @ 04:32 PM EDT
Doesn't appear to be the case. The next witness went on the stand immediately.

[ Reply to This | Parent | # ]

APIs are an agreement about how to communicate
Authored by: Anonymous on Tuesday, April 24 2012 @ 04:33 PM EDT
APIs are really nothing more than an agreement about how two programs will
communicate with each other. But this gets mixed up with all the talk about how
they're actually implemented and the actual code that is trying to live up to
the agreement.

Yes, you have names and classes and parameters and objects and methods and
whatever else, but fundamentally, the API describes how you communicate. You
will look for a function named X and you will give it the data A, B & C in
exactly that order. A, B & C will be exactly this type of data. The
function X will do what the spec says it does and give you the data Y in reply.
The Y will be exactly this type of data.

We can get lost in discussing the exact classes and methods, especially when
classes can contain other classes and everything connects to everything else,
but fundamentally the API is an agreement about how to communicate.

When you write your code, you think about what services you're going to provide
(the API) and make a lot of creative choices. After other people depend on that
API, though, you can't change stuff any more. If you break your agreement, code
using the old agreement won't work any more. It won't be able to find things
where it expects them to be. It won't get the data it expects and the other
side may not expect the data it's sending. If you're making your own code
implementing an existing API, you have to use the same names, for everything
(and the package hierarchy is part of the name) the same data in the same order,
perform the same job (you have freedom to change *how* you do it, but not to
change *what* you do), and you must return the same results. You must also
throw the same errors (of the same error type).

So if I have a fictitious API that says you can call, say, double, feeding it X
and getting the number that's twice as big and other code depends on it, I
cannot change the name. I cannot change the type of number going in or coming
out. I cannot change the errors thrown (perhaps we throw an error when the
number is too big to fit in the memory provided).

But I would have freedom of implementation. I could just multiply and return
2*X, but I could also use the more efficient left shift operator and just shift
X one bit to the left (this is equivalent to multiplying by 2). Yet every
single piece of information that the other programmer depends on must not
change, or things will break.

I think Google has done a pretty good job of explaining that. I just hope the
truth doesn't get lost in the arguments. I honestly feel that SSO maps rather
closely to what an API is, but it's also something one MUST copy for
compatibility reasons, so only the API writer has creative freedom. Everyone
else using it has their freedom limited for technical reasons. Break the API
agreement and you can't communicate with anyone else using the API, even though
writing the agreement is creative.

And I have no idea where that will end up due to the law, but I really hope they
are NOT copyrightable. I can too easily envision how badly that will turn out
and I don't like it. APIs seem to be something of an edge case in copyright
law, so I just hope we come down on the right side of things here.

[ Reply to This | Parent | # ]

Seems so...
Authored by: MDT on Tuesday, April 24 2012 @ 04:47 PM EDT
It seems so, there's a couple of different reporters reporting it.

I take that as a good sign. Oracle & Google both know, while the jury
doesn't, that the Judge will be making the copyrightability decisions. I think
this indicates Google's team feels they've spent enough of their time (precious
as it is) on the copyright issue, and they are saving time for cross and attack
on the patent phase. There's no reason to waste their time on defending
something if they're sure they've made their points to the judge. Any further
time spent would just weaken them on the patents.

---
MDT

[ Reply to This | Parent | # ]

  • Seems so... - Authored by: Anonymous on Tuesday, April 24 2012 @ 04:54 PM EDT
    • Seems so... - Authored by: MDT on Tuesday, April 24 2012 @ 05:28 PM EDT
      • Seems so... - Authored by: Anonymous on Tuesday, April 24 2012 @ 05:34 PM EDT
    • Seems so... - Authored by: PJ on Tuesday, April 24 2012 @ 11:47 PM EDT
Google rests? Uh, no.
Authored by: mirrorslap on Tuesday, April 24 2012 @ 08:55 PM EDT
Google finished with their examination of Mr. Eric Schmidt as Oracle's witness.
Oracle rested after Schmidt was called as *Oracle's* witness.
Google chose to put Schmidt up first when they started their part of the case
for
Phase I of the trial.

[ Reply to This | Parent | # ]

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 )