A proposal for a free Java implementation
| From: | "Geir Magnusson Jr." <geirm-AT-apache.org> | |
| To: | general-AT-incubator.apache.org | |
| Subject: | PROPOSAL : Apache Harmony - J2SE 5 Project | |
| Date: | Fri, 6 May 2005 18:51:13 -0400 |
Dear Incubator PMC :
We, the sponsoring members listed below, ask that you accept the
following proposal for a new project at Apache, an effort centered
around architecting and implementing J2SE 5.
Note to all :
We have established a list for discussions to keep project-specific
mail traffic from overwhelming the general incubator list. Unless
your comment is directed to the general Incubator community or the
Incubator PMC, please post everything Harmony-related to :
harmony-dev@incubator.apache.org
You can subscribe by sending an email to
harmony-dev-subscribe@incubator.apache.org
Until this proposal has been accepted by the Apache Incubator PMC,
these lists are provisional and do not constitute official lists for
the project.
Project Harmony
===============
Motivation
----------
There is a clear need for an open-source version of Java 2, Standard
Edition (J2SE) runtime platform, and there are many ongoing efforts
to produce solutions (Kaffe, Classpath, etc). There are also efforts
that provide alternative approaches to execution of Java bytecode
(GCJ and IKVM). All of these efforts provide a diversity of
solutions, which is healthy, but barriers exist which prevent these
efforts from reaching a greater potential.
Proposal
--------
We propose that we create a new Apache project, Harmony, that will
achieve the following goals :
1) create a Compatible, independent implementation of J2SE 5
under the Apache License v2
2) create a community-developed modular runtime (VM and class library)
architecture to allow independent implementations to share runtime
components, and allow independent innovation in runtime components
In doing so, we intend to create a broad, collaborative community of
contributors, implementors and users of the modular platform
specification.
To begin, we propose the following as a basic architectural blueprint
as a starting point for our discussion :
http://people.apache.org/~geirm/harmony.jpg
We will create directly, via inclusion of independent third-party
code, or through contribution :
a) a freely implementable specification of a modular VM
and class library that allows for multiple, independent
implementations
b) a test suite for interoperability testing of the modules
c) an implementation under the Apache License of the modular VM
d) a class library under the Apache License compatible with
the J2SE 5 specification that implements the defined interfaces
We will start with this mechanism because we desire to :
- have a simple plan upon which coding can immediately begin
- ensure that we have a focal point to begin the conversation
among interested members of the community
- have a clearly defined set of technical needs to allow
potential contributors, either code contributors or
individual participants, a basis for consideration
- ensure that this is a community effort - together we will
architect and implement via fresh new code or donation
- produce a set of specifications/designs allowing multiple
interoperable implementations that allow for sharing,
extension and innovation
We propose that the following people are considered the starting
participants. This set represents members from across the community,
this diversity a factor we wish to start with and preserve as we grow.
These individuals have expressed an interest in participating in the
architecture and design work. The information in parenthesis
indicates other community participation or relevant experiences of
that individual :
Guy Churchward (individual w/ commercial VM experience)
Joakim Dahlstedt (individual w/ commercial VM experience)
Jeroen Frijters (IKVM)
Geir Magnusson Jr. (Apache)
Ricardo Morin (individual w/ commercial VM experience)
Georges Saab (individual w/ commercial VM experience)
Bruno Souza (SOUJava)
Davanum Srinivas (Apache)
Dalibor Topic (Kaffe)
Tom Tromey (GCJ)
Weldon Washburn (individual w/ commercial VM experience)
Mark Wielaard (Classpath)
and the following individuals have expressed interest in
participating as committers for the Apache-licensed implementation :
Jeroen Frijters (IKVM)
Ben Laurie (Apache)
Geir Magnusson Jr. (Apache)
Ricardo Morin (individual w/ commercial VM experience)
Bruno Souza (SOUJava)
Davanum Srinivas (Apache)
Dalibor Topic (Kaffe)
Tom Tromey (GCJ)
Weldon Washburn (individual w/ commercial VM experience)
These individuals will participate as Incubator Mentors :
Noel Bergman
Ben Laurie
Geir Magnusson Jr.
Stefano Mazzocchi
Sam Ruby
Leo Simons
Davanum Srinivas
The following Apache Members will be the sponsoring members :
Noel Bergman
Jason Hunter
Ben Laurie
Ted Leung
Geir Magnusson Jr.
Stefano Mazzocchi
Sam Ruby
Leo Simons
Davanum Srinivas
The following community members support this effort :
Danese Cooper
Brian Goetz
Doug Lea
Operating Considerations
------------------------
0) We have established a list for discussions. Unless your comment
is directed to the general Incubator community or the Incubator PMC,
please post everything to :
harmony-dev@incubator.apache.org
You can subscribe by sending an email to
harmony-dev-subscribe@incubator.apache.org
Until this proposal has been accepted by the Apache Incubator PMC,
these lists are provisional.
1) Due to the various known and unknown risk factors of this project,
we propose that in addition to the required Individual Contributor
License Agreement (ICLA) we shall require that any committer to
Harmony will have a Corporate Contributor License Agreement (CCLA),
when appropriate, on file with the ASF Secretary, and will keep that
document current with respect to current employer to preserve
committer status. We do this in order to help protect the community,
both contributors and users, from unauthorized incorporation of code
or other intellectual property.
2) Historically, there has been wide exposure to VM and class-library-
specific source code that is the property of Sun Microsystems as well
as others, as it is common for commercial J2SE implementations to be
based on licensed Sun code. We wish to make every effort to ensure
that the licenses and rights of external projects and efforts is
properly respected. To that end, we will explore additional ways to
work with the Apache Incubator to ensure that all IP is carefully
monitored and tracked as it enters the project.
--
Geir Magnusson Jr +1-203-665-6437
geirm@apache.org
Posted May 9, 2005 15:21 UTC (Mon)
by mjw (subscriber, #16740)
[Link]
More comments on planet.classpath.org
Posted May 9, 2005 15:25 UTC (Mon)
by sab39 (guest, #2185)
[Link] (2 responses)
The intention is apparently not to compete with GNU Classpath and the other efforts but to attempt to identify ways in which both existing code and new, as-yet-unwritten code can be brought together under a common umbrella to provide a complete replacement for the J2SE stack.
There are licensing difficulties to work out and it isn't 100% certain yet that GNU Classpath will be used, but despite appearances there seems to be a lot of goodwill on both sides of the fence in an attempt to avoid duplication of effort.
The harmony effort could be considered slightly redundant - Kaffe and GCJ seem to cover a lot of the ground it's aiming to tackle - but it isn't as bad as the announcement makes it appear. It looks like there is an excellent likelihood that Harmony will become another part of the existing community of projects using (and contributing back to) GNU Classpath, and both sides will benefit.
Posted May 9, 2005 15:41 UTC (Mon)
by b7j0c (guest, #27559)
[Link] (1 responses)
But you are just glossing over this topic like the original posters have. Specifically, what are the issues with Classpath involvement? This is the crux of the matter because using Classpath means you might see something released from this project in 2006. Not using Classpath means you will be waiting at least until 2008, because this is a lot of work with a lot of conformance testing and not everyone who works on Classpath is simply going to jump ship and add their expertise to this new project.
But as I have already said, this project along with the Perl6 project are just growing the Python developer base.
Posted May 9, 2005 16:37 UTC (Mon)
by sab39 (guest, #2185)
[Link]
However, there has been an explicit promise by the Classpath developers that they WILL make clarifications to their license as necessary to alleviate the Apache group's concerns.
And there have been promises from the Apache people to identify and clarify their exact problems with the license in order to figure out exactly what clarifications, if any, are necessary.
In other words, the chances of NOT using Classpath are pretty slim. There's always the chance that there could turn out to be some major roadblock in the details of what Apache wants from the Classpath developers, but at the moment both sides are saying the right things (except in the announcement which has been apologized for). There are no plans at this point to start a new project from scratch redoing what Classpath already did. They're leaving that option open in case it turns out to be impossible to reach an agreement with the Classpath developers. But it's unlikely, since everyone recognizes how stupid and painful that would be.
Posted May 9, 2005 15:37 UTC (Mon)
by b7j0c (guest, #27559)
[Link] (2 responses)
I understand that the current free implementations (gcj/gij, kaffe, sable etc) do not support Java 1.5 features (parameterized types etc) but to me this doesn't seem like a call to recreate a Java-compatible environment from scratch.
This will be a massive project to be sure, I wish them luck...but its going to be years until we see something we can download and use if the messaging is correct - that they have no existing code they are working with. Look at the Perl 6 project...which has been going on since what, 2001? Four years later they are focusing on a hacked-up environment based on Haskell. While everyone has been recreating the universe from scratch (the "big rewrite" fallacy engaged fully), Python has been chugging along with a sound design, and no issues with a corporation granting/killing/suing rights and privileges (see, Mono, Java). Maybe thats why I see more people adopting Python everyday - its a known quantity with a known feedback loop and a known licensing/IP approach.
Posted May 9, 2005 21:32 UTC (Mon)
by khim (subscriber, #9252)
[Link]
I understand that the current free implementations (gcj/gij, kaffe, sable etc) do not support Java 1.5 features (parameterized types etc) but to me this doesn't seem like a call to recreate a Java-compatible environment from scratch. Especially when GCJX is approaching alpha stage
Posted May 11, 2005 15:05 UTC (Wed)
by angdraug (subscriber, #7487)
[Link]
Yes, that's my impression, too. Take a look at the Geronimo and JBoss story for approximation of the likely outcome of supposed Apache's Project Harmony vs. GNU Classpath&Co collaboration.
Posted May 9, 2005 16:56 UTC (Mon)
by mmarq (guest, #2332)
[Link]
a) a freely implementable specification of a modular VM
I belive that KUDOS fore these people is more than deserved.
And i wonder for sometime why? SUN havent done exactly that, putting everything under a community model trying to embrace the most of different implementations. That is, explore Java2( belive naming it Java3 wouldn't be unreasonable) under a similar business model as Trolltech do with Qt, where everything is a GPL compatible croos-platform framework developed under a community model, but if you want (or need) to link proprietary code you must pay a licence.
Posted May 9, 2005 20:25 UTC (Mon)
by bojan (subscriber, #14302)
[Link] (4 responses)
Beyond me, just beyond me.
Posted May 10, 2005 1:56 UTC (Tue)
by bk (guest, #25617)
[Link]
The only thing that will change this is to commodify the JVM by developing a free implementation. Then Sun will have nothing to lose by opening up their code. At that point, however, it will hardly matter.
Posted May 10, 2005 2:52 UTC (Tue)
by b7j0c (guest, #27559)
[Link] (2 responses)
Sun isn't off the hook either, they have the same issues with versions of their VM.
Meanwhile look at Python and Perl. No code portability issues. The same runtime is ported to most any platform you want. To hell with open specs and closed implementations. The open implementations/write your own spec from studying the code type platforms seem to be fulfilling all of the WORA promises of Java.
Posted May 11, 2005 7:38 UTC (Wed)
by skybrian (guest, #365)
[Link] (1 responses)
No, it's not open source, but that's what most Java developers do. While gcj, Kaffe, and so on will
Posted May 15, 2005 14:28 UTC (Sun)
by hazelsct (guest, #3659)
[Link]
Posted May 10, 2005 5:37 UTC (Tue)
by kornak (guest, #17589)
[Link] (2 responses)
Posted May 11, 2005 7:21 UTC (Wed)
by skybrian (guest, #365)
[Link] (1 responses)
Posted May 11, 2005 9:57 UTC (Wed)
by man_ls (guest, #15091)
[Link]
Kaffe, gcj, GNU Classpath and IKVM hackers do want to help out with this effort. Please read Dalibor his take on this from the point of view of the existing project in his diary.
A proposal for a free Java implementation
The authors of the announcement have admitted that it was poorly worded.To pre-empt a lot of poorly informed comments...
>> There are licensing difficulties to work out and it isn't 100% certain yet that GNU Classpath will be usedTo pre-empt a lot of poorly informed comments...
It does seem that there's a lot of uncertainty over exactly what the licensing issues are and how serious they are.To pre-empt a lot of poorly informed comments...
From a quick read (correct me if I am wrong), the primary underlying motivator here is licensing. As far as I know, there are no major technical issues or problems with Classpath, so to reimplement this work implies someone with a serious itch to scratch reinventing a huge pile of code, or a gripe with licensing. I am mentioning Classpath specifically because that seems to be the meat of this project - it has been demonstrated by numerous parties that a somewhat-competent VM can be created in about a year or so. The Classpath work is a multi-year project, with some very tedious testing added on to ensure compatibility with the Sun J2SE.Seems to be about licensing (???)
Seems to be about licensing (???)
Seems to be about licensing (???)
" We will create directly, via inclusion of independent third-party A proposal for a free Java implementation
code, or through contribution :
and class library that allows for multiple, independent
implementations "
How can they stand by, seeing all this effort being wasted, and not release Java-proper as open source? There is nothing to lose for them and everything to gain (heck, someone may actually be interested in _fixing_bugs_ in Java for a change)...And Sun a calling themselves pro-open source?
Sun isn't pro-open source, they're pro-Sun. Obviously since there is a lot of people asking for free Java, there must be some value in Java. Therefore "giving it away" would be a poor business decision on their part, at least in the classic sense.And Sun a calling themselves pro-open source?
Sun has Sun for a long time that Java needs to be centrally controlled to ensure compatibility. All of these fractured efforts, with various levels of compliance, sure make for a muddy development environment. Do SableVM files work with Kaffe? Do Kaffe files work with gcj? Confused yet?This all just support's Sun's key premise:
A basic Java development environment is actually pretty simple. Download the Sun JDK and run This all just support's Sun's key premise:
either Eclipse or buy IntelliJ.
hopefully be useful someday, they're not really ready for prime time and aren't used much yet
except for reasons of ideology.
This only works on Sun-blessed platforms. And given recent experience with other closed systems related to the kernel, I'm amazed anyone would consider this an option. (No, Sun probably won't pull everyone's license to use the free-beer JVM, but they will likely make it run faster on their own platforms than others', and have little to no incentive to make it run on, say, Debian Alpha.)Not an option for many platforms
I apologize if this is off topic, but, DUMP JAVA. Its has been measured andA(nother) proposal for a free Java implementation
found wanting. I see no reason to waste any more time with it. My 2 cents.
You're certainly welcome not to use it yourself, but you seem to be asking other people not to A(nother) proposal for a free Java implementation
use it. A lot of us happen to like it.
Some of us are even paid to use the language, and would very much prefer to use a free implementation at work, if it was available.
A free Java implementation is a good thing
