Apple's iPhone is a very popular telephone mobile internet computing device, and Google's Android platform is also a very popular similar platform. A plausibly unfortunate recent occurrence is the patent lawsuits against Google over various aspects of the Android platform. Also unfortunate is the fact that Google refused to cooperate with the Java ecosystem to develop Android, and instead created an infuriatingly incompatible platform that uses the Java language, thereby sowing confusion where people thing Android is Java when it is not. Today David Drummond, Google's Senior Vice President and Chief Legal Officer, posted a "woe is me" notice on the Official Google Blog, When Patents Attack Android, talking about all these legal challenges they're facing that threaten to scuttle Android.
Yeah, software patents are a strange field and are used as weapons of attack to stifle competition. But I believe that in other fields of endeavor patents are also used as weapons of attack, so it's not quite unique to software patents, unlike what many people say. I can say that during my employment with Sun Microsystems there was quite a push to get patents over our work, and I did end up with three software patents.
David Drummond makes this claim:
Android’s success has yielded something else: a hostile, organized campaign against Android by Microsoft, Oracle, Apple and other companies, waged through bogus patents.
He then goes on with a litany of clusters of companies working to corral critical patent pools from Novell, Nortel, etc, so they can then charge Google a $15 fee for each Android phone, etc. Google is the very definition of "deep pockets" and one of the rules of filing lawsuits is to file against the people with deep pockets.
I'm sure there's a lot of truth - that these companies are fighting Androids popularity with these lawsuits and doing what Drummond says.
What he skips over is rather interesting, however, in that Google could have avoided all this. They could have chosen to properly implement the Java platform specification and had patent blessings through a license agreement with Sun. But, they chose to flout the actual Java platform, develop an incompatible platform, thereby subverting the Java ecosystem, and leaving themselves open to lawsuits over patents in the Java ecosystem.
That is - Android uses the Java language, uses some of the Java class libraries, but does so without conforming to any specification of the Java platform. They did not conform to any of JavaME or JavaSE platform definitions. The platform definition is pretty strict in terms of setting a lower threshold of what must be present in order for a given implementation to be called Java.
The idea is so that Java programs can be run on any Java device with zero or minimal modification. If a Java programmer can know the minimum set of features that will be present, they can use those features without worrying whether or not a given feature is there. What Android does however is to use the Java language, but put the Android programmer into the position of not knowing what Java features will be there.
From a Java ME perspective what Google has done was to steal the thunder of Java ME (at the time it was present in nearly every cell phone) to make their own competing platform.
A different perspective on this is that Sun totally and utterly failed at understanding the significance of smart phones or to properly prepare the Java ME stack to run on smart phones. They were caught flat-footed by the iPhone, attempted to develop JavaFX as a new Java compatible platform for smart phones, and completely flubbed it by starting way too late and not putting enough resourcing into the project. I say that having been part of the JavaFX team or working next door to the JavaFX team for its initial two years of existence.
I also know that many former JavaFX team members now work for Google on Android and no doubt they want to implement the dream they had for JavaFX and see Android as the vehicle for doing so.
On one hand it would be an unfortunate result for the only smart phone platform to be the iPhone.
On another hand it would be an unfortunate result for there to be multiple smart phone programming platforms, just like today it's unfortunate there are two major desktop operating system environments. By having two competing environments we waste the time of programmers re-implementing the same applications twice (for each platform) or by needlessly preventing a user of one platform from using software written for the other platofmr.
On yet another hand it would be unfortunate if there were only one programming platform, because there would be no competition between platforms and competition is a good thing usually. Well, open and fair competition. One could argue as David Drummond does, that leveraging the patent system for corporate warefare is not open and fair competition.