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
What's important in an API | 237 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
What's important in an API
Authored by: tom_markus on Saturday, April 21 2012 @ 04:05 AM EDT
Well you can actually examine the binary libraries too. They contain enough
information to reproduce the declarations in the API. This is how the compiler
and runtime know that you have used a class correctly. This is very important
for the security side of java - it is much harder than C to get outside of the
system and crash/corrupt a program. There is a lot of information in the binary
files.

[ Reply to This | Parent | # ]

What's important in an API
Authored by: Anonymous on Saturday, April 21 2012 @ 04:13 AM EDT
The Specification works for the Windows operating system. What in the Specification makes it portable to other platforms? Is it copyrightable, or is it more about the functionality and the units chosen in the definition?

This is a misunderstanding IMO. Nothing about the API or language specs is really related to cross platform compatibility (other than choosing data types which will broadly work efficiently across different devices - ie. not 27 bit integers...)

The API could really look like anything, and as long as the compiler generates bytecode that the Virtual Machine (VM) can read, it will run.

The cross platform compatibility is achieved by not writing code to target specific machines or os targets (ARM / x86, Windows, Linux, OSX, BSD etc), but instead generating code which targets the VM specification (which is entirely separate from the API and language specs, and doesn't need to be related in any way whatsoever)

As long as the targeted device supports a VM implemented to the same spec across devices, the code will run (the actual detailed code that forms the VM will vary across platforms, as it interacts with the specifics of the platform and hides the details of the underlying platform and device - it's like a compatibility layer, or common denominator)

Perhaps from a branding POV, Sun/Oracle want it to be accepted that Java is inherently cross platform compliant / WORA, but that doesn't make technical sense at all. The cross platform magic happens in the VM spec, and in tailoring VMs to each targeted platform. It's sort of a useful lie.

Google very specifically don't use the same VM or bytecode structure, meaning that java compiled bytecode will not run on Android devices.

It's possible that the concept of compatibility is being conflated between "cross device compatibility" and language compatibility. Android offers language (and certain API) compatibility with Java, but does not offer resultant code compatibility with Java

[ Reply to This | Parent | # ]

What's important in an API
Authored by: Anonymous on Saturday, April 21 2012 @ 04:58 AM EDT
> Anyway, that website was only made available as part of the opening of the

Java language

Those documents have been available since the very early days of Java. They
can be generated by any Java programmer using the 'javadoc' tool provided
with JDK or viewed in an IDE. They are machine-generated documentation
based on an actual implementation, so I personally would not call them a
"specification".

(One of the programmer-friendly aspects of Java is the API docs are integrated
directly into the class files, not shipped separately on a website.)

Also as a secondary note, Android developers use the Oracle JDK for dev
purposes and Dalvik is only used for runtime/testing. So there's really would
be no point in Google providing alternate Java documentation, as all Android
devs have Oracle's docs at their fingertips.

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