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
Connectix was about API not ABI | 152 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Connectix created their own API
Authored by: xtifr on Wednesday, May 30 2012 @ 03:53 PM EDT
Just to follow up: yes, Connectix may have also created an API, but it was
almost certainly their own, original API, since they didn't have any way to know
what the original API looked like. So Connectix copied the ABI and created an
original API, while Google did the opposite. But it's still two sides of the
same coin. The only significant difference is where you look for compatibility.
And Oracle's looking in the wrong place.

---
Do not meddle in the affairs of Wizards, for it makes them soggy and hard to
light.

[ Reply to This | Parent | # ]

Connectix was about API not ABI
Authored by: Anonymous on Wednesday, May 30 2012 @ 05:03 PM EDT
An API is not a collection of ABIs.
True. In fact "the ABI" usually means "the whole set of rules used for this whole platform"... the usage of the term to refer to a specific function's mechanical details (the way we all seem to be using it here) is somewhat uncommon.
An API is a source-level interface that typically gets coverted to an ABI by the compiler. It's an extension to the programming language.
Sort of true.. Source-level interfaces are definitely APIs, but other types of interfaces (including binary interfaces) are sometimes called APIs too. Its a broad and mushy terminology. Anything that a programmer could use to interface to existing code (whether in high-level source code, or in assembly code or machine code or whatever) tends to get called an API.
The API is used in the construction of the program. Once the program is built--is a binary executable--it uses the ABI instead. (We'll gloss over interpreted languages, with just a brief comment that they forward information from the API to the ABI dynamically.)
I would argue that it doesn't stop being an API after the program is compiled. It might be a little harder to point to, but its still there -- both the mechanical ABI details, and the conceptual "what does it do?" details are embodied in some way, in the compiled code.
If ABIs, which consist of concrete, compiled code, aren't copyrightable, then APIs are even less so, being merely language elements. APIs are used for expression, but are not expressions themselves, and are no more copyrightable than a random set of words you can use in writing a story.
I completely agree with you here.
Now APIs and ABIs are very similar, and closely related, and I find it hard to imagine that there's any serious legal difference between the two. They're like opposite sides of the same coin. But Oracle keeps complaining about a lack of binary compatibility, which completely misses the point of an API, which is to provide source compatibility. APIs are frequently used for platform independence, which is exactly what Google used them for. Oracle is getting confused between Java-the-language, which includes the APIs, and Java-the-virtual-machine, which has ABIs, not APIs. The JVM ABIs aren't anything like Dalvik's, so Oracle's ABI-related arguments (binary incompatibility) are utterly irrelevant. Google didn't copy the ABI!
I would say that Java-the-virtual-machine has both APIs and ABIs, but in general I agree with everything you say here. We're really stretching the meaning of "ABI" here. But with this stretched meaning, I suggest that Dalvik's ABI is actually the same as Java's before the program passes through the dex tool; then it gets transformed into a different, but similar, ABI.
Google included the APIs for compatibility, and, insofar as they're the same as Java's APIs, they offer 100% compatibility, even though there's zero binary compatibility.
I completely agree with this.

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