Sim IJskes - QCG wrote:
On 11/24/2010 03:11 PM, Patricia Shanahan wrote:

If we had started a formal vote, the qualification might indicate that
we had not yet done enough discussing. I suggest we continue discussing
a little longer, and then call a vote. We will probably be able to reach
a consensus proposal that will get a lot of definite positive votes.

I'm aware off the differences between a formal and a informal vote. A informal vote however is a clear indication how one will vote when a formal vote is called.

I can understand you want to go throught due process in determining what we are going to do. But my personal impression from the mailing list archives, is that the river project is completely gridlocked in subtleties. I'm not saying that something agreed has a lifetime of infinity, but we have to start somewhere. That means quick, decisive action, while keeping our options open.

Suppose we declare to support 1.4, 1.5, 1.6 and CDC. How do we validate this? I don't see us building a compatibity verification on short notice.

There are two types of compatibility:

Local Installation Platform.
Remote Distributed Environment Communication.

Jini is the end of protocols, the advantage of a protocol is, your not tied to different platforms, the disadvantage is your locked into your protocol. With Jini / River, the bytecode our proxy is compiled with, is our protocol.

It looks like the easiest option for our current release is (users can skip this release if they need earlier remote platform support):

Local Installation Platform - Java 6
Remote Distributed Environment Clients - Java 6
Remote Distributed Environment Services - Anything that can a register a java proxy with a previous release lookup service, if available, or a Surrogate running on Java 6, or a Service running on Java 6.

With a modular build this will be possible:

Local Installation Platform - Java 6
Remote Distributed Environment Clients - Java 1.4, 5, 6, CDC
Remote Distributed Environment Services - Anything that can provide a java proxy.

In fact, if the Service API and proxy's are compiled to be Java 1.4 compatible, then we simply unit test the proxy classes on Java 1.4, and check the serial form of our objects hasn't changed as part of testing that module. We don't need to make it complicated. The module jar files will be used in the qa integration tests for the supported platform, Java 6.

Each service will have at the minimum two modules, three for Services with smart proxy's:

  1. service_name-api.jar - Compile for / with Java 1.4
  2. impl_name-version-imp.jar - Compile for Java 6
  3. impl_name-version-proxy.jar Compile for / with Java 1.4

   * 2 and 3 depend on 1.
   * 2 depends on 3.


If you want to go for river worlddomination, by keeping everything compatible, you should bring a large suitcase of money. Then you can checkout an older revision from the repo and build something with the horde of programmers you are hiring.

River has to grow from spurts from contributors, we are not going to win a race by creating a swamp. I strongly believe that the current failure of river is because of this longwinding process. We are not going to attract more young eager bright committers if we keep on discussing the future of river or the subtleties of compatibility.
As developers we need to understand the subtleties of compatibility, we can provide best practices for our users, so they don't have to understand the subtleties.

Don't forget the fallacies, we can't ignore the compatibility issues, we need to work out how to best handle them, then document for users, our best programming practices, so they can avoid the issues.

We need to be able to make it easy for user developers to utilise River, if we ignore the issues, we'll just make it harder.

I agree that we need to be careful about how we discuss the future of River and compatibility, but I don't agree that would should stop discussing it. I'm not about holding up progress, I recognise we have limitations and cannot support everything, but we don't want to remove the possibilities either.

I don't see failure or gridlock, I see progress in leaps and bounds and some difficult things we haven't done yet, that we're working out how to do.

I also recognise the significant efforts you've all contributed has made graduation possible.

Cheers,

Peter.

Reply via email to