In addition to the bugfixes, there were also performance enhancements in Java 1.6.

As there were so few API changes between Java 1.5 and Java 1.6, there's little difference in terms of effort between coding to one vs. the other.

1.4 to 1.5 is a big step due to the language additions.

1.5 to 1.6 is a more nuanced thing, with the following items of import:
1) Will implementors of River find that the problems that were fixed in 1.6 get in their way while implementing in 1.5?
2) Is the performance improvement notable in Java 1.6?
3) Would River be greatly narrowing its userbase if it targeted Java 1.6?
4) Are there any Java 1.6 specific features River would actually want?

My take:
Once someone's implementing River in 1.5, we'll be able to answer question #1. Perhaps someone familiar with the codebase has the foresight to answer this one ahead of time.

If we have a Java 1.5 implementation, we can answer question #2 by changing the compiler target and running benchmarks.

As for how much we'd be narrowing our audience, perhaps the Apache community could chime in? How common are Java 1.6 projects in Apache? How does that effect the userbase?

Does anyone know the answer to #4? Would the implementation of Groovy configuration be easier with the scripting language support Java 1.6 added?

---

All that said, I don't have any problem with targeting Java 1.6.

jamesG

Gregg Wonderly wrote:
Wade Chandler wrote:
I think the story of the state of 1.4 should be observed as the reason we need to support 1.5. Too, the state of 1.7,
which seemingly is still a way off. Folks will be using
1.5 for a good while to come I believe. The collections
changes are good. There are some other good changes. What
specifically in 1.6 are you thinking will make it better?
I do think, given history as an example, there are a lot
of folks though who won't be moving from 1.5 for a long
time (years still yet).

One of the benefits of moving to 1.5 includes java.util.concurrent.

One of the benefits of moving to 1.6 includes BUG FIXES to java.util.concurrent.

In particular, all the Executor stuff, in 1.5 was not very tolerant of RuntimeException and would lose threads and cause executors to stall.

I've not kept up with which things were back ported to 1.5 as fixes, vs which were considered enhancements for 1.6 only.

But, I really am not sure that if we move to a "new" VM platform, that it makes sense to say the new minimum is 1.5, when so many things in 1.5 were fixed/corrected/enhanced in 1.6.

Gregg Wonderly

Reply via email to