Giacomo Pati wrote:
On Tue, 3 Jan 2006, Sylvain Wallez wrote:
Right. And the simplest and most consistent step to go forward is IMO
to just use what's already there, providing a nice bridge to a
rock-solid container used by thousands of people.
If you mean Spring as the "rock-solid container used by thousands of
people" than tell me why are you using a Mac while "ten-thousands of
people use a IBM ThinkPad" ;-)
A very interesting comparison: Apple is currently moving to Intel CPUs!!
Why so? Because PowerPC is a dead end for their market, as IBM makes no
effort to produce good laptop CPUs. So Apple changes the engine, without
changing what's unique to them.
This is exactly the same for Cocoon: Avalon is dead, and we all agree on
this. So what's the point of adding dependency injection features to
Avalon? It's like adding Intel instructions to a PowerPC to prepare
migration. That's nonsense: you end up with a clumsy solution that
smells like a DI container but is not, and provides a mix of injection,
lifecycle interfaces and service lookup. Furthermore, it doesn't really
encourage people to move away from Avalon as its features are still
available to all components.
That's what I'm against this change to ECM: just as Apple has setup a
bridge (Rosetta) to allow PowerPC and Intel code to run on the same
hardware, let's have this bridge in Cocoon too. Want to use legacy
components? Use ECM. Want to use dependency injection? Use Spring. Or
Pico. Or Hivemind. The bridge can host whatever container manager you
want, even if we should promote only one.
From a user point of view, I'll be happy to see soon PowerBooks as
powerful as ThinkPads. But there's actually much more to this switch: it
won't take long before wine is ported to the Mac, so that we can use
some applications that, like it or not, only exist on Windows. Yes: the
comfort of the Mac, with is "deviant" compared to the vast majority of
PCs out there, but the ability to suck Windoze applications when it
makes sense.
This is the same with Spring: this is not only a DI container, but a lot
of additional services to build applications. And also a lot of people
that know it.
The Cocoon project, in its current state, really doesn't need yet
another specific extension to its obsolete container architecture, that
less than an handful of people will understand and be able to maintain.
We need to move away from Avalon, so let's do it in a way that can bring
in more people and use an engine that's known outside of cocoon-dev.
I can understand Carsten as we've talked about it recently and we
share some common reservation about Spring (as Carsten has already
expressed). Maybe Carsten regrets having written that Spring bridge or
the motivation to write it was a business or marketing need not a
conceptual evolution.
I asked Carsten why he doesn't want to use the bridge that _he_ wrote,
and would love to have his answer. Carsten?
So, after your veto to the change Cartsten has proposed the only way
for him is to write another bridge that suits his needs. This is what
I was calling ECM+++.
Admittedly I do not know how this bridging to Spring is done at all
and I cannot say whether or not a migration from one CM to another
will be possible to smooth this migration so that one day we can
deprecate the usage of Avalon components.
Have a look at the "spring-app" block.
Sylvain
--
Sylvain Wallez Anyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director