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
Correction | 183 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Correction
Authored by: PolR on Monday, June 03 2013 @ 05:25 PM EDT
If you see something wrong.

[ Reply to This | # ]

CCIA Files Amicus Brief in Support of Google in Oracle v. Google ~pj
Authored by: Anonymous on Monday, June 03 2013 @ 05:25 PM EDT
I checked with tech folk who *do* know, and I believe this is correct information. Mr. Spafford writes (or maybe Mr. Hollaar contributed this part):
An API thus consists of two different types of source code: a design that prescribes the expected behavior and structure of the API; and an implementation that performs the design.


In the latter part of the sentence, I think he's conflating an API with an SDK.

An API is a specification of the interface used to integrate with or make use of libraries or services. The API is usually expressed as source code, but only in the sense of header files, not in the sense of implementation.
From the perspective of the person writing an application that interfaces with an API, you are sort of correct, but in the perspective of the person writing a new implementation of the API itself, which Google did with Dalvick, I believe that he is correct.

From the perspective of the person writing an implementation of the API itself, you would have to write the headers that define the entry points, and then you would have tio write the code that actually implements the functions defined by the entry points.

If Google only wrote the headers that defined the API entry points and provided an SDK, then there would be nothing behind the entry points to actually do any of the work.

[ Reply to This | # ]

COMES here
Authored by: PolR on Monday, June 03 2013 @ 05:26 PM EDT
This jobs needs to keep going. Big thanks to the volunteers.

[ Reply to This | # ]

OT Here
Authored by: PolR on Monday, June 03 2013 @ 05:28 PM EDT
You know the drill.

[ Reply to This | # ]

News Picks here
Authored by: PolR on Monday, June 03 2013 @ 05:29 PM EDT
You know the drill for this too.

[ Reply to This | # ]

It's all about the money
Authored by: Anonymous on Monday, June 03 2013 @ 05:54 PM EDT

That explains Ellison's actions.

Wayne
http://madhatter.ca

[ Reply to This | # ]

CCIA Files Amicus Brief in Support of Google in Oracle v. Google ~pj
Authored by: stegu on Monday, June 03 2013 @ 06:03 PM EDT
Prohibiting competitors from accessing de facto standard interface specifications would lock users into a particular operating system or network software environment, and would inhibit the transfer of data between users with different computing environments.

Now, wouldn't that be a wet dream for Microsoft? Let's hope it stays a dream, or we can kiss all software interoperability goodbye.

What I don't think they are considering is the possibility that if people are not allowed to get anything in or out of Microsoft's walled garden, cannot communicate over the walls with anyone outside or use anything but Microsoft's tools to do the gardening while inside, people might stop coming altogether and leave the garden to rot.

[ Reply to This | # ]

Bunk is *not* SCO's middle name
Authored by: Anonymous on Monday, June 03 2013 @ 06:13 PM EDT
Clearly, SCO's middle name must begin with a 'C'. "Bunk" doesn't
work.

I'm looking for a synonym of "bunk" that begins with 'C'. The only
one I've come up with so far violates PJ's comment policy...

MSS2

[ Reply to This | # ]

Boies trying to use Oracle to get a ruling handy in the IBM case
Authored by: PJ on Monday, June 03 2013 @ 07:52 PM EDT
Woah. Can you rephrase please?

[ Reply to This | # ]

Is there anyone actually supporting Oracle?
Authored by: Anonymous on Monday, June 03 2013 @ 09:07 PM EDT
...or are the arguments as one-sided as they apprear?

[ Reply to This | # ]

I guess I wasn't paying attention ...
Authored by: hedronist on Monday, June 03 2013 @ 10:28 PM EDT
As I started reading this and came across "... the amici supporting Oracle, including Eugene Spafford and the the BSA ..." I felt my mind warp, as if a dose of pure 750mcg LSD had finally kicked in after 30 years.

I haven't tracked Spafford in a long time, but I remember in Olden Times on Usenet when I had a lot of respect for him. All of that went up in a puff of pixie dust.

I've promised my nieces and nephews that I won't turn into that guy, you know, the crazy old geezer geek who embarrasses them at their wedding, but when I see people who, at least at one time, appeared sane and human (Joy, McNealy, Wegbreit, Simonyi, and now Spafford) turn into Somethig Else®, I wonder how long it will be before I start drooling from one side of my mouth and defending Charles Simonyi (who I used to work for).

[ Reply to This | # ]

micro$oft benefits
Authored by: Anonymous on Tuesday, June 04 2013 @ 05:20 AM EDT
m$ would not only benefit from a copyright law that favours their monopoly to
control who can interoperate with windows. The other goal they are achieving by
attacking linux, android and java is to kill off their main competition in the
different market segment.
If it was not for linux, android and java, then what would have been the
alternative to microsoft products? I can't see any serious.

So, PJ, the idea you had for an investigation of M$ anti-competitive behaviour
by lending patents to trolls to attack their main competition is very good IMO.

[ Reply to This | # ]

CCIA Files Amicus Brief in Support of Google in Oracle v. Google ~pj
Authored by: Anonymous on Tuesday, June 04 2013 @ 05:23 AM EDT
Re: Microsoft's words, in:
Congress has determined that computer software is eligible for copyright protection. 17 U.S.C. § 101. Copyright protects computer software in several important respects. It covers the literal lines of code that comprise software, generally preventing their reproduction or distribution without permission from the rightsholder. But copyright also covers certain non-literal elements of the software as well. For example, the "structure, sequence, and organization" of a software product -- above and beyond the 1s and 0s that make up the program at its literal level or the exact words of the human-readable source code -- can, in some instances, be protected by the copyright in the work. As a result, copyright infringement in a software case can occur even when the defendant did not copy the underlying developers' code, where the defendant has copied some other, non-literal element of the software subject to copyright protection.
Microsoft has just declared a full 100% of its fan base amongst software developers and development firms, guilty of copyright infringement.

It's also defined its own policy of "Embrace, Extend, Extinguish" to be copyright infringement. Don't know how their lawyers will take that, since it's their lawyers who have made these highly incriminating public statements, where they can't be withdrawn unless publicly repudiated. Wesley Parish

[ Reply to This | # ]

APIs, ABIs - I can't put my finger on it
Authored by: Ian Al on Tuesday, June 04 2013 @ 05:51 AM EDT
It is customary to provide light-pulls rather than light switches as the control
interface to the lighting in a bathroom. Otherwise, you can touch the control
and have an excessively intimate acquaintanceship with the controlled
electricity, when there is moisture present.

APIs don't exist. They are abstract ideas. You can write down the API
definitions as a text in order that programmers can read about the abstract
ideas and use them in their programs. The compiled programs interwork in a
binary way with Application Binary Interfaces. You can't touch those, either.
They are abstract ideas used by the folk implementing the APIs and other
inter-program relationships.

APIs, ABIs, libraries, jump tables and the like are all intangible, abstract
ideas. They are an agreement between the authors of two or more programs. The
programs do not access interfaces to other programs. Instead, the programmers
agree that, when the two programs are in memory, that a program may leave data
at agreed locations in memory and then cause a processor jump instruction to
another agreed location at which the machine instructions for the second program
start.

The full agreement is that the second program will manipulate the data put into
the memory locations by the first program in an agreed manner and will place any
results of the data manipulation in another agreed set of memory locations.

The API is the agreement between program writers and the ABI is the place in
memory where the agreement is executed.

To the processor, one memory location is much like another. Only the addresses
are different. It is only abstract ideas in programmers' minds that makes them
functionally different.

If you are a programmer and you don't remember having made an agreement to the
use of specific memory locations then you are right. The memory addresses used
as the basis for the agreement are virtual. They will change from one computer
session to the next and from one computer to the next.

As you rise through the levels from the BIOS (or equivalent) to the Operating
System kernel, to the OS user space, to the dependent programs and to the
sub-dependencies (Java programs running on Java are dependencies and
sub-dependencies of the Operating System), you rise through a complex system of
programming agreements. Most are hidden agreements that are not seen by
application programmers. Application programmers, typically, only see the most
abstract agreement in computer science; the API.

Since APIs, ABIs, libraries and jump tables are all abstract ideas, they don't
exist in the material world. The agreements can be written down. The agreement
writings are expression fixed in a medium and, thus, potentially subject to
copyright protection.

If a lawyer writes an agreement document, it will be factual and procedural.
Lawyers don't get paid for creative expression. The agreements are not
protectable by copyright. The writers of API and ABI definitions are not paid
for creative expression, either. Why would they be? They are paid for the
written terms of the agreement.

Neither APIs nor ABIs are protectable by copyright. Any creative expression
added to the written agreement is an illegal attempt to avoid copyright law and
make false copyright claims.

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

[ Reply to This | # ]

The API in Java is not in any header files
Authored by: Anonymous on Tuesday, June 04 2013 @ 05:55 AM EDT
One of the key reasons why Oracle can do their tap-dance is that old school APIs
was something you declared in separate header files. Lots of the discussion even
here on Groklaw keep that notion when reality is that Java and similar languages
have no seperate header files.

The API of a Java function is not found in separate files but is any code line
that start with the word public.

There is still need for having a seperate documentation file that can be
exchanged with other developers, but in the Java case that file is generated
from the source-code by the tool javadoc that comes with the JavaSDK instead of
header file written by the API designer.

I think talking about API and header files as the same thing makes
communications with the lawyers harder. Header files is only one way to
communicate APIs and it is bad to confuse these when the language at question do
not use header files.

[ Reply to This | # ]

"You could use the definition of the API, and hand-write machine code ..."
Authored by: tiger99 on Tuesday, June 04 2013 @ 06:02 AM EDT
Funnily enough, a few people actually do just that, including Steve Gibson, who produces some security tools that every Windoze user needs. It is not necessarily as tedious a process as some would have us believe.

I write all of my Windows and other utilities in 100% pure assembly language. This results in the smallest, fastest, and most efficient programs possible. I created the "Small is Beautiful" kit to help interested assembly language programmers get started writing Windows programs in pure assembly language.
Link

[ Reply to This | # ]

API v SDK
Authored by: maroberts on Tuesday, June 04 2013 @ 07:47 AM EDT
An SDK is a Software Developers Kit, it includes (but is not limited to) APIs,
documentation, tools to assist interfacing with the product concerned, libraries
of the actual code etc.

Some of the SDK is no doubt copyrightable, but the APIs themselves should not
be.

[ Reply to This | # ]

API insufficient for writing replacement
Authored by: Anonymous on Tuesday, June 04 2013 @ 09:08 AM EDT
The actual "goes-into" and "comes-out-of" aren't sufficient
for implementing all functions. While something like "sin(float)" is
apparently obvious, some devious language designer could specify that
"sin(float)" will return the cosine of a number, and that to get the
sine of a number, one should use "tan(float)", although no sane person
would use that language. For the more subtle differences, functions quite often
have side effects which need to be documented. For example, as an undesirable
side effect, the sin function could also reset the random number generator to
reset the sequence of random numbers it generates. There are actual functions
with that intended purpose, but the function is generally better named.

For Java, that the API consists both of the literal function calls, but also the
Javadoc and the Java specifications (including JSR). One does not need to see
the implementation to be able to reimplement a well documented function, as the
Javadoc and specification should make clear what side effects happen.

All this is to say that the statement of an API consisting of the behavior and
structure as well as an implementation is too big a leap. If one needs an
implementation to really understand what an API does, the API is insufficiently
specified. This was true for early C implementations, which was one on the
driving factors for creating ANSI C.

But, Spafford/Hollar actually undermine the Oracle arguments by saying an API
includes an implementation, since the Android implementation did not include the
same implementation as included in the Oracle implementation if Java. If one
were to define API as including an implementation, then independent
implementations would not violate copyright, just as Android's did not (except
for a very small number of lines which are not considered in this appeal).

[ Reply to This | # ]

Unofficial Word-of-the-Day: punctilious
Authored by: Anonymous on Tuesday, June 04 2013 @ 10:08 AM EDT
Had to look that one up. Neat word. =)

Wiktionary: punctilious
Strictly attentive to detail; meticulous or fastidious, particularly to codes or conventions.

As used in the CCIA brief:
BSA punctiliously faults the district court for finding that Oracle’s APIs were not copyrightable, rather than that they were not infringed when Google copied them ....

I'm always learning something new here on Groklaw.

[ Reply to This | # ]

Re: BSA
Authored by: albert on Tuesday, June 04 2013 @ 10:25 AM EDT
Senior VP Matt Reid: former MS & Gates Foundation consultant.
Senior VP Jodie Kelley: came from Fannie Mae.

Board of Directors includes folks from:

Microsoft
Apple
Adobe
Siemens
Autodesk
McAfee
Symantec
Rosetta Stone
Mathworks

and a few others I don't recognize.

Members include:
IBM
Oracle
Intuit
Intel


I imagine their 'creativity' is directed at drawing blood from stones.

[ Reply to This | # ]

  • Re: BSA - Authored by: Anonymous on Tuesday, June 04 2013 @ 11:28 AM EDT
    • Re: BSA - Authored by: albert on Tuesday, June 04 2013 @ 01:55 PM EDT
BSA
Authored by: Anonymous on Tuesday, June 04 2013 @ 10:57 AM EDT
How can the BSA say that Oracle didn't contribute to its amicus when Oracle in
one of its members. Aren't members financing BSA and its actions ?

[ Reply to This | # ]

CCIA Files Amicus Brief in Support of Google in Oracle v. Google ~pj
Authored by: cassini2006 on Tuesday, June 04 2013 @ 12:24 PM EDT

Bill Gates copied CP/Ms API when developing DOS. Specifically, DOS implements a bunch of INT 21h calls that are "surprisingly similar" to their CP/M equivalents. I bet some of this API still exists in Microsoft Windows.

Additionally, all of the clone PC BIOSes copied the API from the original IBM PC's BIOS. IBM no longer makes PCs, but I bet they still own the copyrights.

Similarly, I'm sure Oracle has databases and servers that copy other peoples APIs. At a minimum, Oracle SQL probably has at least one non-standard API extension that is a copy of someone else's non-standard API extension.

If Oracle wins this case, this APIs are copyrightable concept could cripple the entire computer industry.

[ Reply to This | # ]

CCIA Files Amicus Brief in Support of Google in Oracle v. Google ~pj
Authored by: Anonymous on Monday, June 17 2013 @ 12:51 AM EDT
There is one more topic that protects the non-copyright of APIS. Namely the
American with Disabilities act. This is now considered part of Civil Liberties.
An API, amongst many other things allows a software product to be easily
integrated with devices and programs providing access for users with
disabilities, such as blindness. This feature is called accessibility. A
software maker is not required to provide this accessibility (If it was, most
web sites would be illegal now, as they are often for no good reason void of
text and full of graphics, and useless to blind people, web site designers go as
far as making the text all graphics in order to tweak the fonts and look and
feel ...), but restricting the free access to an API would grant the company the
right to ignore ADA, and explicitly deny users with disabilities the same
opportunities of employment and professional development.

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