Hacker News new | past | comments | ask | show | jobs | submit login

Ironically (and not surprisingly), Oracle themselves do not abide by this, and freely copy the APIs under copyright of others where and when it suits them.

One recent, concrete and particularly brazen example is the llquantize() DTrace aggregating action, which was added to illumos[1] after Oracle forked OpenSolaris by closing it.[2] Oracle has copied this API verbatim in Oracle Solaris 11.2[3], despite not holding copyright to it. One presumes that they didn't copy the implementation (it's open source, but with a weak copyleft that would prevent its inclusion in closed source software like Oracle Solaris), but by Oracle's principles in the Google case, they would have violated copyright. While I would love to pursue this on a purely personal level, the reality is that the principle itself is wrong: Oracle actually should be able to implement the llquantize() API, just as Dalvik should be able to implement the Java APIs. But it would make my day if llquantize() could somehow be used by Google's lawyers to show that Oracle themselves do not abide by the perverted and depraved principle that they espouse...

[1] http://dtrace.org/blogs/bmc/2011/02/08/llquantize/

[2] https://www.youtube.com/watch?v=-zRN7XLCRhc

[3] http://www.oracle.com/technetwork/server-storage/solaris11/d...

As I've noted below, Oracle's API copying goes all the way back to their beginning. After all, Oracle doesn't own any of the original SQL copyrights (and somehow I doubt they've ever licensed them from IBM).

Except that the ruling differentiates between languages (which are not copyrightable) and APIs, which are. Google claimed that all of the Java APIs are part of the language, while the court ruled that only 3 (out of fortysomething are).

SQL is actually both a language and an API.

There are a lot of built-in functions (the API part) that are just expected to be in every implementation (TRUNC(), UPPER(), LOWER(), etc, etc).

May I ask why languages are different from APIs, since both are programming interfaces?

It mostly has to do with the way you squint and look at it. You're a smart guy, give it a few goes and it'll make sense.

To whoever downmodded the parent: I'm pretty sure it was sarcasm. That is, I'm pretty sure when he says "it has to do with the way you squint and look at it", he's saying that there really is not much difference.

sarcasm generally does not add signal to the conversation, so it is downvoted here like humor and other noise.

I felt that that particular piece of sarcasm added more to the conversation than a simple statement of my agreement, which is distinct from an upvote, however, I was also unaware of this general policy/behavior of the forum as it is mentioned in neither the FAQ nor the guidelines. Thanks for the heads up.

edit: just to be clear, this is not sarcasm.

Of course sarcasm itself does not add signal, but a valuable comment can be sarcastic. It is only noise if it wastes time.

So, what about i.e. java.lang.Iterable, java.lang.Exception or the boxing classes - APIs which are directly referenced in the language specification?

The court ruled that 3 of the forty-something packages are considered a part of the language, but the rest aren't.

sadly they are bad at copying. For example, Oracle sql has substr instead of the standard function substring.

DERIVATIVE WORK! No seriously, does it have the same arguments?

In 2014, compliance with sql92 should be a minimum.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact