|
|
Subscribe / Log in / New account

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



to post comments

A proposal for a free Java implementation

Posted May 9, 2005 15:21 UTC (Mon) by mjw (subscriber, #16740) [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.

More comments on planet.classpath.org

To pre-empt a lot of poorly informed comments...

Posted May 9, 2005 15:25 UTC (Mon) by sab39 (guest, #2185) [Link] (2 responses)

The authors of the announcement have admitted that it was poorly worded.

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.

To pre-empt a lot of poorly informed comments...

Posted May 9, 2005 15:41 UTC (Mon) by b7j0c (guest, #27559) [Link] (1 responses)

>> There are licensing difficulties to work out and it isn't 100% certain yet that GNU Classpath will be used

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.

To pre-empt a lot of poorly informed comments...

Posted May 9, 2005 16:37 UTC (Mon) by sab39 (guest, #2185) [Link]

It does seem that there's a lot of uncertainty over exactly what the licensing issues are and how serious they are.

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.

Seems to be about licensing (???)

Posted May 9, 2005 15:37 UTC (Mon) by b7j0c (guest, #27559) [Link] (2 responses)

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.

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.

Seems to be about licensing (???)

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

Seems to be about licensing (???)

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.

A proposal for a free Java implementation

Posted May 9, 2005 16:56 UTC (Mon) by mmarq (guest, #2332) [Link]

" 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 "

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.

And Sun a calling themselves pro-open source?

Posted May 9, 2005 20:25 UTC (Mon) by bojan (subscriber, #14302) [Link] (4 responses)

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)...

Beyond me, just beyond me.

And Sun a calling themselves pro-open source?

Posted May 10, 2005 1:56 UTC (Tue) by bk (guest, #25617) [Link]

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.

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.

This all just support's Sun's key premise:

Posted May 10, 2005 2:52 UTC (Tue) by b7j0c (guest, #27559) [Link] (2 responses)

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?

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.

This all just support's Sun's key premise:

Posted May 11, 2005 7:38 UTC (Wed) by skybrian (guest, #365) [Link] (1 responses)

A basic Java development environment is actually pretty simple. Download the Sun JDK and run
either Eclipse or buy IntelliJ.

No, it's not open source, but that's what most Java developers do. While gcj, Kaffe, and so on will
hopefully be useful someday, they're not really ready for prime time and aren't used much yet
except for reasons of ideology.

Not an option for many platforms

Posted May 15, 2005 14:28 UTC (Sun) by hazelsct (guest, #3659) [Link]

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.)

A(nother) proposal for a free Java implementation

Posted May 10, 2005 5:37 UTC (Tue) by kornak (guest, #17589) [Link] (2 responses)

I apologize if this is off topic, but, DUMP JAVA. Its has been measured and
found wanting. I see no reason to waste any more time with it. My 2 cents.

A(nother) proposal for a free Java implementation

Posted May 11, 2005 7:21 UTC (Wed) by skybrian (guest, #365) [Link] (1 responses)

You're certainly welcome not to use it yourself, but you seem to be asking other people not to
use it. A lot of us happen to like it.

A free Java implementation is a good thing

Posted May 11, 2005 9:57 UTC (Wed) by man_ls (guest, #15091) [Link]

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.


Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds