I tried to make this post shorter, but this is the best I could do :(

Patrick Lightbody wrote:
> Above all else, we recognize that consolidation is the overriding goal.

IMHO, for a consolidation project to succeed beyond the scope of
enthusiasts, a migration path has to be a primary objective. Will
projects like JIRA and Confluence be able to migrate from WebWork to
Clarity, without starting over? Will Oracle and WebSphere be able to
migrate their tools from Struts to Clarity, without starting over?
Ditto for Landsend and Citibank and hundreds (or thousands) of other
non-trivial applications?

If our goal is to consolidate not only the development base but the
user base, then we must be sure that significant, non-trivial
applications can "get there from here". The importance of a migration
path cannot be understated. I would suggest that migration be part of
the mission statement.

Of course, Clarity should not be shackled by the tyranny of the
installed base (as is Struts Classic). We should not have to make too
many compromises for the sake of backward compatability. Somehow, a
balance must be struck.


Patrick Lightbody wrote:
> All project leaders understand that once this project is releases, future 
> work their own projects should cease
> (other than supporting it, minor releases, migration path to Clarity, etc).

One way to view a migration path is converting an application in a
fell swoop. Another way to view a migration path is evolving an
application, step by step. If we know that Clarity is the end,
prexisting projects can march applications toward that end, using a
proven deprecate/release/remove cycle. Rather than view existing
projects as "legacies" to be discarded, perhaps we could view them as
"stepping stones" that will lead us all to Clarity, feature by
feature.

We should recognize that getting projects from "here to there" is not
something that will take months. Realistically, migration is a process
that will take several years for most people. We should recognize that
reality and plan for it.

We must recognize that teams are not going to jump ship just because
we jump first. (Witness JSF.) Rather than desert proven solutions, we
must be ready to set a course and steer each ship to a common port. It
will take time, but we have time -- if we don't try to rush people.

Internet time is dead. Most teams are living in enterprise time now,
with product cycles that span several years, not a handful of months.

After investing several years of development into Struts or WebWork or
Spring MVC, prudent product managers are not going to choose something
else without a clear migration path. Sun itself has been trying to do
just that. How can any other group hope to succeed where Sun is not,
unless we take the time to build gentle ramps to our unified platform?


Patrick Lightbody wrote:
> This place must be detached from Jakarta/Struts, Spring, and OpenSymphony
> and must stay that way until we all feel comfortable working together.

To complete the initial planning, neutral ground sounds like a good
idea. If there's interest, we could setup an independant Confluence
space for Clarity that can be as public or private as we like. The
space provided by Atlassian and is not affiliated with the ASF.

* http://opensource2.atlassian.com/confluence/oss/

You know, the OO modeling community faced a similar problem ten years
ago. As Martin Fowler puts it in "UML Distilled" :

"The same basic concepts would appear in very different notations,
which caused confusion" ... "Talk of standardization had surfaced, but
nobody seemed willing to do anything about it".

There were some independant attempts at standardization, which failed.
Then, the marketplace leaders -- the "three amigos:" Brooch, Jacobson,
and Rumbaugh -- got together and defined UML, which went on to become
an OMG standard (in not-so-painless process).

It seems like the same thing is starting to happen again, except here
we have the four musketeers -- Beehive, Spring, Struts, and WebWork --
riding out to save the day :)

Personally, I would suggest that Clarity not stay an "independant"
project too long. No matter what we say about "legacy" projects and
"clear choices", as an independant project Clarity *will* be viewed as
a third alternative to Struts Classic or JSF. This is an inevitable
marketplace dynamic, and there is nothing anyone can do to avoid it.

When the time comes, Clarity should seriously consider whether it
would like to be a Struts product. By adopting Shale and considering
TI, Struts has shown that we consider the project to be more than the
direct descendant of Craig's Action package.

As a Struts product, Clarity would have immediate access to thousands
of teams that have already obtained approval to use Struts. As an
independant, many teams will have to wait months or even years to get
Clarity on the approved software list. Getting on the short list is a
painful process in many enteprises, and a key reason why more teams
are not already using Spring. (Gotta love Spring!)

If it is the users and the marketplace that Clarity cares about, then
the best thing for the marketplace would be to leverage the very
strong brand that Struts already offers. The Struts brand is arguably
as strong, or stronger, than all the other brands combined. If we
circle the wagons around Apache Struts, we will have the opportunity
to not only build something better than Struts, WebWork, or Spring MVC
ever could be, but we will have a ready-made distribution channel
waiting for us when we are done.

By playing to our strengths, it will be much easier for users to
perceive Clarity as *the* unified, single-source alternative to .NET
or PHP or Ruby.

Once upon a time, we talked about making Stuts 2.x a "best of breeds"
framework. We talked about adopting and adapting the best ideas from
the other frameworks and creating a brave, new framework that better
met all of our needs. Putting all the marketplace mumbo-jumbo aside, I
think that's what Clarity wants too. There will probably never be a
Struts Classic 2.x, but, if we are willing, there could be a Struts
Clarity 1.x.


Patrick Lightbody wrote:
> 4) Now for the hard part: map out a technical implementation.

The first three technical questions I'd be asking about Clarity are

(1) What services should a web application framework provide? What are
our Use Cases?
*  http://opensource2.atlassian.com/confluence/oss/display/STRUTS/Use+Cases

(2) Which of these Use Cases are being solved by existing frameworks?
For each of these cases, is one of the existing solutions clearly more
effective than the alternatives?

(3) Which of these Use Cases are not being solved, or solved well, by
existing frameworks?


-- HTH, Ted.
http://www.husted.com/poe/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to