Free platform
Free platform
Posted Aug 17, 2010 16:34 UTC (Tue) by gmaxwell (guest, #30048)Parent article: A very grumpy editor's thoughts on Oracle
I'm left wondering what our editor here would consider to be the criteria for freeness in a platform. For Java we have a complete implementation available from the original author under GPL(v2) in addition to multiple independent free software implementations with various levels of completeness.
Even according to the FSF "the Java language as such is no longer a trap", so I think we can forgive people for not being paranoid enough if it turns out that Java was still a trap.
And I don't mean this as merely a rhetorical barb at the author there are a number of platforms such as .NET/Mono which arguably have fewer assurances than Java and many others like Erlang which simply began life under a proprietary banner.
I would have considered "reference implementation from the original author under the GPL" to be a gold standard. If that is inadequate what should we be demanding? Is GO a safe toolchain since it's more or less controlled by a single company? What about Javascript( Oracle)/ECMAScript? ECMA-262 itself makes _no_ mention of patents and, as far as I can tell, ECMA as a whole has no requirement that patented techniques submitted be available royalty free.
So what should we have asked for and what should we be asking for? How do we convince the rest of the world that these things are important?
Posted Aug 17, 2010 16:51 UTC (Tue)
by fandingo (guest, #67019)
[Link] (8 responses)
Java is not a "trap" because of the GPLv2 and explicit patent grants for standard Java.
I forget where I was reading it (maybe here), but an author made a great point: Oracles open source projects are perfectly fine to use. There is nothing they can do because of the OS licenses and patent grants. However, developing for Oracle projects (or forking them for your own one) gives no such protection.
Posted Aug 17, 2010 18:13 UTC (Tue)
by Aliasundercover (guest, #69009)
[Link] (6 responses)
I may be mistaken as this topic is so confusing but I am under the impression Sun's patent promise applies only to the exact unmodified feature set of a Java frozen in time.
Posted Aug 18, 2010 1:28 UTC (Wed)
by coriordan (guest, #7544)
[Link] (5 responses)
If Oracle publishes software under the GPL (v2 or v3), the recipients receive patent protection sufficient to allow the things described in the four freedoms, which includes forking.
So Google could have used OpenJDK as a starting point for Dalvik, and they wouldn't be having this patent problem. AFAICT.
Posted Aug 18, 2010 2:35 UTC (Wed)
by foom (subscriber, #14868)
[Link] (2 responses)
Posted Aug 18, 2010 6:10 UTC (Wed)
by nim-nim (subscriber, #34454)
[Link]
The GPLv2 does bound Oracle. Namely, it can not rescind the permissions it gave to others as part of a software license. This is basic legal theory, you can not tell others you can do foo, if bar then change your mind once others have expended resources reaching bar (at least, not in a legal document). Otherwise, no license would be worth the words used in it.
The only thing Oracle can do is define new conditions for new software releases, or relax conditions on old software releases. They are not allowed to add restrictions on old software releases people already licensed under specific terms (and the GPL is worded in such a way the license can be transmitted from user to user and from version to derivatives).
Posted Aug 18, 2010 23:55 UTC (Wed)
by coriordan (guest, #7544)
[Link]
They gave people a copy of the OpenJDK source code with a legal document which has a load of paragraphs that start with "You may...".
If you're right, then you've only proved that they didn't have to give you that legal document. That doesn't change the fact that they *did* give you that legal document, and so, Oracle is bound by that legal document.
Yes/no?
Posted Aug 18, 2010 21:17 UTC (Wed)
by SilverWave (guest, #55000)
[Link] (1 responses)
"It's Oracle upset that Google has routed around their lucrative Java Mobile licensing by out developing them. If you were unaware, Sun's official Java test suite comes with field of use restrictions that keep it limited to the desktop space. If you certified your open source Java JVM to comply, you can't use it on servers or mobile devices (or anything else for that matter like TV set top boxes). For anything else you have to pay Oracle a license fee. It's these field of use restrictions (among other reasons) that has kept the Harmony project from certifying their project as "Official Java"."
Posted Aug 18, 2010 22:00 UTC (Wed)
by mjw (subscriber, #16740)
[Link]
That said, it is still a big problem if you care about freedom, java and the JCK and it is a long and somewhat sad story: http://gnu.wildebeest.org/blog/mjw/2007/04/21/openjck/
Posted Aug 17, 2010 18:23 UTC (Tue)
by SilverWave (guest, #55000)
[Link]
Posted Aug 17, 2010 18:13 UTC (Tue)
by SilverWave (guest, #55000)
[Link] (10 responses)
http://web.archive.org/web/20200508230103/http://www.groklaw.net/article.php?story=20100813112425821
"Update 4: A reader comment should be noted:
You seem to be missing the point of why Google didn't just use the GPL'd JavaME. Sun deliberately removed the Classpath exception on JavaME specifically because they saw that most of their licensing opportunities were on mobile platforms. This meant that any *application* developers targeting a GPL'd JavaME platform would be forced to GPL their applications. Not surprisingly Google saw this would be undesirable when trying to attract developers to the platform."
This is interesting:
http://sites.google.com/site/io/dalvik-vm-internals
Good Overview here:
Posted Aug 17, 2010 20:04 UTC (Tue)
by nim-nim (subscriber, #34454)
[Link] (9 responses)
(This, BTW, is one reason Android has rolled over JavaME phones: SUN let the JavaME cash cow rot at Java 1.3 level, while phone hardware improved, making the improvements of later Java versions interesting for mobile, and digging the competitive advantage trench Google would use later)
The *only* reason Android used Harmony as a base for Dalvik is the fundamental distrust of the Android team for anything GPL-ish. Remember that the core Android team came from Danger, which was quite happy to let itself acquire by Microsoft.
The fact that Android runs a Linux kernel despite this deep GPL distrust is quite a testament for the technical quality of the modern Linux kernel. Android certainly didn't swallow this GPL code pile with pleasure.
Posted Aug 18, 2010 8:07 UTC (Wed)
by dgm (subscriber, #49227)
[Link] (8 responses)
Also, a pair of notes: Isn't JavaME in version 6, just like JavaSE?
Posted Aug 18, 2010 10:46 UTC (Wed)
by paulj (subscriber, #341)
[Link] (6 responses)
That's not true, OpenJDK is under a GPLv2 + "ClassPath Exception" licence. Here's the text of that exception:
Certain source files distributed by Sun Microsystems, Inc. are subject to
the following clarification and special exception to the GPL, but only where
Sun has expressly included in the particular source file's header the words
"Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the LICENSE file that accompanied this code."
Linking this library statically or dynamically with other modules is making
a combined work based on this library. Thus, the terms and conditions of
the GNU General Public License cover the whole combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,
and to copy and distribute the resulting executable under terms of your
choice, provided that you also meet, for each linked independent module,
the terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library. If
you modify this library, you may extend this exception to your version of
the library, but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version.
That exception makes it explicit that the ClassPath libraries so marked can be linked with other applications without affecting the licensing of the application.
The JavaME edition has some additional libraries, specific to mobiles obviously, which do NOT offer this exception - they're GPL only. Hence why many users of JavaME chose to get a proprietary licence from Sun. Google do not use those APIs anyway, AFAIK. I.e. it does seem that there were no licensing obstacles to Google using the OpenJDK, at least in terms of wanting to avoid applications having to be GPLed (Google might have started its Dalvik work while Sun were still in the process of GPLing the JDK - anyone remember the exact timeline?).
Given that Google generally went out of its way to avoid having any GPL code in Android, it seems that their motivation was simply to avoid being restricted in any way by copyleft. I wonder if that choice was made on a rational basis, or out of less rational, base GPL hatred/fear.
Posted Aug 20, 2010 10:08 UTC (Fri)
by dgm (subscriber, #49227)
[Link] (5 responses)
Posted Aug 20, 2010 10:39 UTC (Fri)
by nim-nim (subscriber, #34454)
[Link] (2 responses)
JavaME was written for the kind of phones the iPhone and Android stormed over: clunky, limited hardware where the software was an afterthought because the phone industry worried more about ringtones and MMS than about the user experience
It takes more than a ME moniker to define what's needed on a smartphone.
Posted Aug 26, 2010 12:42 UTC (Thu)
by willjcroz (guest, #62784)
[Link] (1 responses)
See the open letter to Sun from Apache Harmony team:
http://www.apache.org/jcp/sunopenletter.html
and its related FAQ:
http://www.apache.org/jcp/sunopenletterfaq.html
From what I can find, Apache Harmony project's concerns have not been addressed. Unless you know otherwise, in which case please post details of how Sun addressed this.
Posted Aug 27, 2010 11:41 UTC (Fri)
by mjw (subscriber, #16740)
[Link]
There are no such field of use restrictions in the OpenJDK JCK:
> From what I can find, Apache Harmony project's concerns have not been addressed.
The problem with their concerns is that they are unverifiable because they did the "negotiations" in secrecy without involving the bigger libre java community. They probably really got a bad deal, but it is hard to help out if they keep the details hidden: http://gnu.wildebeest.org/blog/mjw/2007/04/21/openjck/
Posted Aug 20, 2010 11:32 UTC (Fri)
by mjw (subscriber, #16740)
[Link]
You seem to be confusing the "specification" with the "implementation" and what Android/Dalvik actually supports.
The full GPL implementation that Oracle/Sun distributes is called PhoneME: https://phoneme.dev.java.net/ https://phoneme.dev.java.net/source/browse/phoneme/legal/
The OpenJDK implementation under GPL (+ exception) that they distribute is an implementation of JavaSE.
Some of the specified libraries overlap (although there are some subtle differences in behaviour) but neither is a full subset or superset of the other.
An example of usage of both PhoneME, OpenJDK and GNU Classpath, JamVM or Cacao derived implementations on embedded devices is the Bug: http://community.buglabs.net/kgilmer/posts/45-BUG-OpenJDK
Another example that blurs the lines between SE and ME (and happily combines code from various free implementations, PhoneME, OpenJDK, GNU Classpath, Cacao, etc.) is MIDPath http://midpath.thenesis.org/bin/view/Main/
Android/Dalvik resembles the Java SE variant the most. It doesn't reall resemble any java variant directly. But it doesn't include anything in ME that is not in SE. It can be seen as a subset of the SE libraries, with specific Android libraries added. The implementation is designed to run well on small devices, but isn't JavaME like.
Posted Aug 22, 2010 5:00 UTC (Sun)
by paulj (subscriber, #341)
[Link]
Posted Aug 18, 2010 11:42 UTC (Wed)
by nim-nim (subscriber, #34454)
[Link]
http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-g...
> Android breaks new ground in the device category because it is a Java 2
http://www.oracle.com/technetwork/database/berkeleydb/bdb...
> As of 2008, all Java ME platforms are currently restricted to JRE 1.3
https://secure.wikimedia.org/wikipedia/en/wiki/Java_Platf...
Free platform
Free platform
Free platform
Free platform
Free platform
Oracle *is* bound by the GPL
field of use restrictions
OpenTCK
Note that Google actually has access to this:
http://openjdk.java.net/groups/conformance/JckAccess/jck-...
Google created their own VM (Dalvik) they don't use the JVM!
Classpath Exception not included in the mobile edition
http://www.kdedevelopers.org/node/4309
Classpath Exception not included in the mobile edition
http://www.oracle.com/technetwork/database/berkeleydb/bdb...
Classpath Exception not included in the mobile edition
And Harmony is not the base for Dalvik. Dalvik is the VM, Harmony a class library. As a result, Harmony is code that, together with application code, runs on Dalvik.
Classpath Exception not included in the mobile edition
"CLASSPATH" EXCEPTION TO THE GPL
Classpath Exception not included in the mobile edition
With the emphasis put on leanness as shown in Dalvik design, I can guess this was just ruled out?
Classpath Exception not included in the mobile edition
Classpath Exception not included in the mobile edition
Classpath Exception not included in the mobile edition
http://openjdk.java.net/legal/openjdk-tck-license.pdf
There are lots of other problems with it though, primarily that it is proprietary and you need to sign a NDA to not discuss the results...
Classpath Exception not included in the mobile edition
Classpath Exception not included in the mobile edition
Classpath Exception not included in the mobile edition
> roots: as a language and environment for writing embedded applications.
> The baseline ME profiles are pretty bare; I did some CLDC development
> years ago and had to implement my own buffered streams and various data
> structures just to get by. Even the biggest profiles are still fairly
> restricted, and I don't believe any of them have ever graduated beyond
> Java 1.3-level featuresets. So Sun did a great job of getting Java ME on
> devices, back when people cared about Sun...and then they let mobile Java
> stagnate to a terrible degree while they spent all resources trying to
> get people to use Java EE and trying to get Java EE to suck less.
> Standard Edition(J2SE) platform, whereas the previous generations of
> Java-based devices are predominantly Java Micro Edition (Java ME)
> based. There are significant differences between J2SE and Java ME in
> terms richness of libraries and APIs and this creates a big opportunity
>for improved application capabilities. Most notable are the
> full-featured Java 5 language support, libraries like java.util.* and
> collections, and full multi-threaded support built on the Android Linux
> kernel.
> features and uses that version of the class file format (internally
> known as version 47.0). Should Sun ever declare a new round of Java ME
> configuration versions that support the later class file formats and
> language features, such as those corresponding JRE 1.5 or 1.6 (notably,
> generics), it will entail extra work on the part of all platform vendors
> to update their JREs.
