My Thoughts on Oracle v Google
blog.headius.com
blog.headius.com
I've always anticipated that the right thing for myself would be to pass any opportunity to contribute to any patent applications should I ever "invent" anything potentially "worth" patenting. I have seen that patents greatly harm the software ecosystem and I don't think I would ever want to take part in any of that.
However, now that I think about it I will never even consider. I'll just say "No" right out of the way, and walk away from the opportunity as quickly as I can.
I announce that, as of today if my current, at any time, employer happened to be patent-unfriendly, only file defensive patents, never litigate anyone, and perhaps win some patent trolls because of their accumulated defensive intellectual "property" I will still say "No" to getting myself involved in any patent application. Even if I was offered a bonus for that. Or a job.
This whole Sun vs. Oracle thing made me realize that software patents are categorically undesirable.
Patents are like guns. Maybe so because I'm a pacifist. Now: sure, you can buy a cabinet full of rifles, shotguns and pistols to defend your house on the prairie should the evil gansters arrive. However, if they do and succeed in taking over your house, then they have the guns. This is exactly what has happened here. And with companies desperate for money, it's probably easier than robbing a house.
Thus, there's no such thing as a defensive patent: patents are all offensive, even if most of them (software patents) are bogus. While a good-spirited company or person might choose to not exercise the monopoly granted by patent law, it only postpones the inevitable unless the patent expires before that.
Similarly, there are no defensive guns. All guns are designed to wound or kill people. All patents are designed to take away other hackers' freedom to make the world better. I'll reconsider my stance when I see the first useful software patent and when all the useless ones are revoked.
Sun guarded the guillotine. Oracle "bought them out", and now they have the guillotine. Google put its head under the guillotine. Now we get to see how sharp it is, and whether Google brought body armor.
(Not questioning the point, just suggesting that we all go back to metaphor school this afternoon for a little brush up).
From what I understand, Licenses (MIT/Apache/GNU) are different than Patents, so it seems that just licensing it wouldn't work. Can you receive a patent and then immediately put said patented idea into the public domain?
I kinda agree with Stephen on the damage Oracle does to open source and the added uncertainty for collaborators on the open parts of java. I think Charles underemphasized this aspect.
http://spectrum.ieee.org/at-work/innovation/rim-v-ntp-yet-ag...
Recent events seem to indicate the "purists" had a point...
Outside of that, it's no more at risk of patent attacks then any other piece of open-source software.
OpenJDK is safe because AFAIK the GPLv2 license also has a patent grant.
But if you want to take Apache Harmony and trim it down so it fits on a mobile device or on a pen ... the very essence of open-source ... then you're fucked.
If you want to take some idea from OpenJDK and use it in Jikes; a cross-pollination of ideas (not copyright infringement) which is again ... the very essence of open-source ... then you're fucked again.
Java is not an open-platform. It never was.
Your definition of open-platform requires that the code not be covered by any patents. Anyway, the best thing that can come out of all of this is more deep-pocketed players angry with the software patent system.
I don't see the Linux kernel devs getting sued or suing the *BSD kernel devs, although they share ideas all the time.
Also, people scale/modify the Linux/BSD kernel to fit their needs all the time. The Java patent grant only applies if you're not building a subset/superset of Java or if you're extending OpenJDK. But these aren't enough ... some people do not want GPL.
That's what I mean by "the spirit of open-source" ... it's a collaboration effort from which everyone benefits.
And as of this recent announcement, OpenJDK is open-source only by license ... if that wasn't clear already.
A purist might mention that one would like more than bare safety from a platform. If you start using OpenJDK for, say, desktop applications, you wind-up restricted from switching JVMs, adapting a Java JVM for mobile applications and so-forth. IE, you "have less freedom".
Java always had a certain appeal to it, and I've given this platform 2 years of my life ... but the corporate stench just won't go away.
And here it is again, the owner of Java ... instead of redirecting resources to Java 7 which is a crippled release already, they are starting lawsuits.
A change (for the worse) how the dev community perceives a platform is (or will lead to) a significant impact on the platform?
Or is he saying usage in big corps (where devs don't decide the platform, mangers do) won't be affected?
Minor nitpicks aside, decent essay!
It's simpler: they just want to shake Google down for some cash.
a) "Invent" X.
b) Can we patent it?
c) Opps. We read on someone's patent.
d) Risk assessment: Will any one notice?; EV(X) > cost of future lawsuit?; EV(X) > cost of (cross)licensing? etc. etc
e) Either make X or forget X
f) (Optionally, but for bonus MegaCorp points.) Try to patent X regardless.
Edit: I guess there's a reason the only things I've ever seen in writing from a patent lawyer is a) an invoice, and b) a patent application.
Imagine someone sues you for spilling coffee on them. They are willing to settle if you cut your hand off. You disagree, go to court, and the court awards the plaintiff twenty bucks. Same thing happens in the corporate world, too.
Honestly, Oracle's patents should be easy to find prior art for. Nothing in computer science is new, even if a patent examiner or some dude working 9-5 at Sun say they are.
BigTable is using GFS, so it will not be much use to Oracle without GFS. Also, since Google nicely described some of the major ideas behind BigTable in a paper, there are few Open-Source implementations of it. I expect that like many database systems - getting a license is easier than building and maintaining a stable system :)
Claims on slides and videos don't cut it for me anymore (I used to be borderline fanboy of Google's tech reports, like so many others.) Stonebraker has a great paper analyzing Google's claims with respect to databases (and it doesn't look so revolutionary.) That's why I'd be surprised if Oracle buys Google's hype just like that.
Could be patents, yes.
Could be a yacht-load of cash.
Could also be software source code, or data center or fiber access, or search data, could be the search technologies and implementation, could be a partnering agreement. Or some combination of these.
Google knows what they want. Or will soon.
Whether additional information leaks out from either camp?
One of my favorite patents is for the OXO angled measuring cup[1]. It seems obvious now in hindsight, but was truly unique when it appeared on the market. The uniqueness comes from seeing the volume from both the top and the side otherwise the patent would probably not have been granted.
Sun originally developed Java to be a standardized, cross-platform development tool.
The original intent (as I see it, anyway) was to get some market share away from Microsoft/Intel by providing a tool that would allow a program written and compiled once on one platform to run on any platform. (The actuality is that you have to make small changes, but for the most part, this works).
So Microsoft started working on J++, and did/were doing the same thing that they did in the web browser space. They built non-standard extensions that would not be compatible from one platform to the next. Exactly the opposite of what a vendor providing an OS/Hardware combination wants, when the entire idea of the language is to make the OS/hardware a reasonable option.
Dalvik doesn't support certain parts of either SE or ME. I would have to believe that this is the reason Google is unwilling to license; they would then have to comply with one of the (bloated/inefficient) standards. (This isn't because Google doesn't have the cash to pay up).
From Oracle/Sun's perspective, this could easily be seen as a long term threat to the platform. If you have runtime compatibility issues, the ship is sunk. You have reliability issues, as with early C++ implementations (can't use 1/2 of the features); Or you have compatibility issues, as with the current state of Common Lisp implementations (many rock-solid implementations, but things are subtly different from one to the next. Aside: subtly different is the worst type). So from that perspective, that they do not want the JVM fragmented, I sympathize with Oracle.
From the perspective of the patents as described in this article, as a computer scientist and programmer, that these things can be patented is shocking. What worries me, is that I will unknowingly build something which has already been patented.
In particular, the hybrid compilation technique does not seem to be very much different from the methods involved in having a lisp (for example) with both an interpreter and a compiler. It is an interesting technique, and very clever, but how can a compilation technique be patented? Specifically this early in the history of computing. What if someone had patented using assembly instead of machine code, or intermediate representations of code? What if McCarthy had patented the AST? Or if the various ways of implementing regular expressions had been patented? It seems morally objectionable.
I honestly, truly hope that Oracle loses this patent suit.
This suit is unlike the Sun v Microsoft suit in that Microsoft was building a licensed Java implementation, which they actually advertised as being a compliant Java implementation...and then they started making incompatible modifications to it. Not simply to the VM or by adding their own libraries off to the side, but by actually modifying some of the java.* core classes. This is obviously way out of bounds when claiming you're a specification-compliant Java, and as a result Sun went ape all over their asses.
FWIW, even though Android doesn't claim to be "Java", they've kept the core classes they ship API-compatible (and no supersetting) with Java 1.5's.
Google aren't some tiny outfit who are going to fold at the first threat. They have very deep pockets and plenty of lawyers and there is no reason to think that they'd give in easily.
Oracle will know this and therefore we can reasonably assume that they have bought this case with the willingness to fight it (and spend the significant amounts of time and money involved in doing so).
Certainly if the suspicion is that they spent $7.4bn buying Sun primarily so they could bring this case it seems even more unlikely - you don't cough up that sort of money unless you think your case is really pretty strong.
(Incidentally I think the suggestion that this is the primary reason they bought Sun doesn't really add up - it's far too big a gamble and the damages award would have to be vast, way beyond the Microsoft / Sun damages to justify it. Oracle are a proper company with proper products, generally speaking they're not patent trolls and have better things to do with the money than take this sort of punt.)
I'm not saying that they will win it, just that the frequent claims from technologists that their case is without merit fail to explain why a bunch of smart people (because whatever you think of them over this the evidence is that the people running Oracle are not stupid, they are not SCO) with a lot of very smart, very well paid lawyers, were willing to take such a punt when their case is evidently so weak.
Sounds fairly similar to one of the tricks that ETLinux used:
http://www.linuxfordevices.com/c/a/Linux-For-Devices-Article...
" You need to learn to read patents. And that doesn’t mean just the abstract. In fact, many people in the free software community, a lot of discussions on sites like Slashdot, people stop at the title. And they think that based on the title they can say "Ah, that was done by the FooHits Corporation in 1925, therefore it’s not a problem". Right? And it doesn’t work like that. You can’t stop at the title, you can’t just stop at the abstract. "
For the Perl implementation, the basis of the design came from the book "Network Programming with Perl" by Lincoln Stein. I'm pretty sure he covered the basic "accept a connection and fork" pattern, and in the Perl world the big benefit of the pattern is the pre-loading and compiling of modules/classes that the forked process is going to need. So that book probably contains sufficient published prior-art.
For instance chapter 10 of Practical mod_perl is titled, Improving Performance with Shared Memory and Proper Forking. Guess what that was about? This was published in dead tree format in May 2003, before the December 2003 filing date for this patent. And it appeared in online documentation before that.
Since I find myself switching between Java/Clojure, Common Lisp, Ruby, and Scheme (and would like to be better at Haskell), I am not losing any sleep over this law suit. If Java stagnates, I'll just slowly migrate to new languages.
I think other OSS Java implementations are safe too, because: a. they don't harm Oracle's business in any substantial way (nobody's using them), and b. there's no profit in going after them.
If you start to look at everything Oracle does through the lens of "profit above all else" the clouds become a little less cloudy.
Oracle going after IBM and its huge patent portfolio has about the same chances as a gerbil attacking a tiger. Theoretically possible, but not a good idea.
Suffice it to say, IBM has had the most patents granted of any American company for the past 17 consecutive years as of early 2010: http://www.networkworld.com/news/2010/011210-patents-2009.ht...
Certainly an unknown quantity must be quite specious, but the sheer cost of fighting the number of patents they could counter-attack with would probably bankrupt Oracle, not to mention however many turned out to have merit.
Very apt description of the SCO vs. IBM law suit, with the predictable result.
AFAIK, Oracle can pull a low blow like not licensing Java to IBM next time or perhaps more subtle putting ridiculous clauses for new standardized versions. They can even do so with popular support by switching to Affero GPLv3, for example. IBM would never run something like that license due to the patent-related characteristics of it.
I wouldn't underestimate Oracle.
I don't think we are underestimating Oracle, we are just given IBM their due.
>>> "a gerbil attacking a tiger"
> It isn't the corporate size that is the issue
Argh.And note I originally gave IBM as an example of just ONE possible target after Google. So you selectively challenge one point and then even on that point dismiss the other issues (like the "low blow" argument where Oracle doesn't even have to sue the target, be it IBM or some other deep pocketed corporation.)
The crux of this whole thing is that Google isn't using the GPLed version, wasn't paying a license fee to Sun, and isn't to Oracle. Oracle believes Google should and (probably after failed talks) is filing a lawsuit. IBM and Blackberry payed to license like other companies. So, Oracle really has no reason to sue anyone but Google.
cutting access to a growth path can hold back development of the android platform
The canonical example is a set.
In C# (that's what I'm familiar with) we have IEnumerable<T>. It represents enumerating over some homogeneous set of type T.
so when you write "var myList = new List<int>() { 1, 2, 3 };" the type that gets written down in the bytecode is List<int> (which implements IEnumerable<int>).
So the statement "typeof(myList) == typeof(List<int>)" returns true. The type you specified at compile time doesn't loose information at runtime. (For instance you can also do typeof(IEnumerable<>).MakeGenericType(new[] { typeof(int) }), which gets the Generic Type Definition and then you can fill that in at runtime).
The Generics implementation in Java 5 however was all a compiler trick. All the benefits only existed in the AST of the compiler, they never got down to the runtime. So it was easy to check that you couldn't add a int to a strongly typed list of strings, but only in source. (I think, I'm not as well read as javac / JVM internals)
Hopefully that helps.
You're right. Here's Jim Waldo's explanation from Java: The Good Parts:
"the inability to change the VM or bytecodes [due to requirements of backwards compatibility] meant that parameterized types could occur only in the source code. The type system of the runtime hasn’t changed, and doesn’t include generics or parameterized types. What we see in our code as a Set<Player> is seen in the bytecodes as simply a Set of objects."
But this got me thinking about compiler tricks in general, and how they can be a good thing.
For instance in C# the keywords foreach, and using are just compiler tricks, as well as the notion of closures.
BSD history is repeating itself...
In this case, as far as I'm aware, Oracle is not claiming that Google misappropriated any Java source code, but rather that they violated numerous patents that cover JVM-like technologies. This would be akin to AT&T saying that Linux was illegal because it violated patents it held on Unix.
(There are several variants on WikiQuotes,)