From: Mark E. <ev...@pa...> - 2008-12-12 07:37:58
|
First off, I would like to congratulate Alessio on his work: it indeed looks like a solid and unique contribution to ABCL. But… (there is always a but, isn't there?) Ville Voutilainen wrote: […] > We'll likely try to merge the branch to abcl 0.0.13 and release it for wider > consumption, so stay tuned, all. Does this mean that you are planning to make ABCL 0.0.13 require Java 6? Even though Java 5.0 has an [announced end-of-service-life of 3Q2009][1] (although EOSL it's not quite what you might think: read the article), I think Java 6 is not really going to be the majority platform for "Enterprise deployment" until something like 2010. This date can be debated, as it is only an educated guess on my part based on the previous decade or so of Java evolution, but it is certainly clear from my experience that Java 6 is still a minority "Enterprise" platform two years after its release in December 2006. By "Enterprise", I mean "places where decisions about what software is used are made by pointy-head bosses". Maybe we wish to consider ABCL as a "hacker/hobbyist" project at this point: certainly the testimonials we have received so far don't really point to widespread "Enterprise" adoption in the manner of say JRuby or Groovy. And maybe my resistance to moving the requirements to Java 6 stems from the fact that two of my primary development platforms, FreeBSD and OS X, *still* don't have a decent Java 6 implementation. Interestingly, Sun changed the open source licensing strategy with 1.6.0_03, so it is more likely that FreeBSD will see Java 7 before it ever sees a reasonable Java 6. And Apple is a special case where I get my just desserts by being tempted off of a FOSS operating system… If you accept my argument that Java 5.0 compatibility for ABCL is important, then note that the scripting branch is no longer purely about the Java6 scripting APIs, as it contains a lot of ABCL "internal" changes (the closer alignment of the Java metaclass to CLOS, the proxy work, etc.) that are important and interesting in and of themselves. If it is true that these changes are not dependent on Java 6, I would propose we work out a strategy whereby we split the ABCL distribution into two jars: a core JAR that runs fine on Java 5.0, and a secondary JAR that contains the Java 6 specific code that could be conditionally loaded if the core ABCL JAR detects that the APIs are provided by the JVM. We need to eventually rationalize the classloading mechanism in ABCL anyways (like to support my idea of a minimal ABCL jar for networked situations, and for issues that [ticket 29][2]), so this seem like a good opportunity. Since ABCL is Open Source, and this is my itch, I guess I should show a set of patches to the scripting branch that affects my proposal. But generally, how do others feel about making Java 6 the default for ABCL 0.0.13? [1]: http://java.sun.com/products/archive/eol.policy.html [2]: http://trac.common-lisp.net/armedbear/ticket/29 -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now." |