Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-12 Thread Andrew Savory

Hi,

On 7 Dec 2005, at 23:26, Thomas Lutz wrote:

Second argument: It was hard to explain, why I kicked struts out,  
and used cocoon instead. And it was even harder to explain that  
there is JavaScript in the server part. Managers who buy oracle  
don't like to hear things like this...


To provide a counterpoint to this - we spoke with one large  
organisation that was really excited by being able to use JavaScript  
rather than Java, since it lowered the barrier to entry for some of  
their less-skilled developers and meant more people were able to work  
on the project.


On 7 Dec 2005, at 14:23, Berin Loritsch wrote:


What's your preference for the vision?


[ ] All web apps written in JavaScript
[ ] All web apps written in pure Java
[X] Mix and match (not as simple, but is status quo with today)


Andrew.

--
Andrew Savory, Managing Director, Luminas Limited
Tel: +44 (0)870 741 6658  Fax: +44 (0)700 598 1135
Web: http://www.luminas.co.uk/
Orixo alliance: http://www.orixo.com/



Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-10 Thread Niclas Hedhman
On Thursday 08 December 2005 02:10, Daniel Fagerstrom wrote:
 With this I
 measn that you can use the parts of Cocoon that you like, in the way you
 like in your webapp, without having to buy a whole religion.

Being a devout atheist, I must +1000 this one.

Niclas


Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-09 Thread Niclas Hedhman
On Wednesday 07 December 2005 23:56, Sylvain Wallez wrote:
  * No IDE support for JavaScript

 There's a JS plugin in Eclipse webtools and the amazing JSEclipse [4]
 that does autocompletion of function and argument names, plus tooltips
 and all that stuff.

Really??

How can it do code completion since the type is not known until runtime? In 
IDEA the completion only handles the DOM binding and some rare cases when the 
type can be derived.


As for JS being easier for non-Java peeps, my take is;
  1. To make JS useful the developers exposes useful object bindings.
  2. There is no development environment to contend with.

Align those and the JS vs Java argumentation becomes a different experience 
altogether.

Adding to that is, the times when I have seen non-Java peeps making anything 
useful on JS-serverside is when they already know JS well from client 
development. So, the take is a lot about profiling the target before making 
hard-core decisions that JS is better for flow than Java. I, for one, can't 
stand JS, due to runtime hell.


I very much agree with everything Berin have said in this thread.


Cheers
Niclas


Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-08 Thread Berin Loritsch
On Wednesday December 07, 2005 6:26 pm, Thomas Lutz wrote:
 Though I am not a dev guy, I can't resist to vote, too. IMHO a mix makes
 no sense. Too make a long story short I made struggled my way into
 cocoon with

snip type=everything I was feeling, and I'm not alone in my view/

 Last comment: Though this is not the question in this poll, I would even
 kick out the pipeline xml stuff. XML was not designed to be
 procedural, basically it's a markup language, which focuses on data
 exchange.

In my vision we can keep our pipelines, but remove most (if not all) of the 
XML configuration crap.  Just some good solid conventions like rails.


 On a recent open source talk in vienna  a committer from RoR was joking
 about the java frameworks and their tons of configuration and even worse
 flow description files. Though the RoR approach goes a bit too far for
 a compiled language like java, I do believe it makes sense to stick to
 the language choosen.

Oh yes, spring flow...


 So, please :-), only one language, and as cocoon (or whatever it's name
 will be :-) ) is a J2EE framework: _Java_

I hear you, and hopefully even more.


 Sorry for the interference :-), regards,
 tom


Please interfere.  Users lurking on dev are more than welcome to contribute 
their oppinions.


Re: [Vision] Knowing When We are Done

2005-12-08 Thread Sylvain Wallez

Ross Gardler wrote:

Now I'd better stop before I start convincing myself that people will 
find all 600 pages of my PhD interesting ;-)


Any pointer for those that might be interested?

Sylvain

--
Sylvain WallezAnyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research  Technology Director



Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-08 Thread Andreas Hochsteger


Berin Loritsch schrieb:

So, please :-), only one language, and as cocoon (or whatever it's name
will be :-) ) is a J2EE framework: _Java_


I hear you, and hopefully even more.


Sorry for the interference :-), regards,
tom



Please interfere.  Users lurking on dev are more than welcome to contribute 
their oppinions.


I'm just a user of Cocoon too for some years now, lurking on this list 
for the same time and I'm eagerly following the recent discussions.


What I can contribute to this discussion from our experience is, that 
FlowScript provided new ways for us to describe page flows. But 
development hasn't been that easy all the time.


We had problems understanding why certain things behaved differently 
(e.g. JavaScript String vs. Java String) thus ending up in wrapping many 
strings with new java.lang.String(...) just in case it might not be a 
Java String.


We had also problems debugging FlowScripts and so our code was full of 
debugging statements which we had to keep in production to be able to 
track down runtime problems. Please don't ask how huge our logfiles got :-).


So for us it was just the concept of continuations which brought us some 
improvement but not the language itself. And we have just Java 
developers writing FlowScript code, since it is not possible (in our 
case) to write FlowScript without Java knowledge.
I don't want to say, that it is not possible at all. But I think you 
have to provide a very strict layer to FlowScript (no direct access to 
Java at all) to give a JavaScript developer the possibility to be 
productive without being surprised.


It would have been much easier for us, if JavaFlow with all the benefits 
of Java (JUnit, JavaDoc, Debugging, strong IDE support, ...) would have 
been ready for production the time we began to develop our applications ...



Just my € 0.02 ...

Cheers,
Andreas



Re: [Vision] Knowing When We are Done

2005-12-08 Thread Ross Gardler

Sylvain Wallez wrote:

Ross Gardler wrote:

Now I'd better stop before I start convincing myself that people will 
find all 600 pages of my PhD interesting ;-)



Any pointer for those that might be interested?


This research is fairly old now (6 years), and things have moved on a 
little, although mostly in the wrong direction, as observed by others 
here (i.e. lets make highly configurable components and we'll never have 
to write code again).


I have a couple of papers that might serve as a useful introduction:

One covers the use of the XML Pipeline languages to define application 
templates [1], the other [2] introduces the design methodology that 
guides the selection of and development of components. This is probably 
way off topic from the perspective of Cocoon design discussion, but may 
be interesting nevertheless.


I have much more detail in my thesis if anyone is interested in the 
really detailed stuff.


Ross

[1] 
http://citeseer.ist.psu.edu/cache/papers/cs/26837/http:zSzzSzwww.netobjectdays.orgzSznode02zSzdezSzConfzSzpublishzSz..zSz..zSz..zSz..zSzpdfzSz02zSzpaperszSznodezSz0110.pdf/supporting-component-based-software.pdf


[2] I can't reproduce this one, but I will send you a copy of the 
presentation slides and notes offlist (others should ask if they want it)


Re: [Vision] Knowing When We are Done

2005-12-08 Thread Ross Gardler

Ross Gardler wrote:

Sylvain Wallez wrote:


Ross Gardler wrote:

Now I'd better stop before I start convincing myself that people will 
find all 600 pages of my PhD interesting ;-)




Any pointer for those that might be interested?



This research is fairly old now (6 years), and things have moved on a 
little, although mostly in the wrong direction, as observed by others 
here (i.e. lets make highly configurable components and we'll never have 
to write code again).


I have a couple of papers that might serve as a useful introduction:

One covers the use of the XML Pipeline languages to define application 
templates [1], the other [2] introduces the design methodology that 
guides the selection of and development of components. This is probably 
way off topic from the perspective of Cocoon design discussion, but may 
be interesting nevertheless.


I have much more detail in my thesis if anyone is interested in the 
really detailed stuff.


Ross

[1] 
http://citeseer.ist.psu.edu/cache/papers/cs/26837/http:zSzzSzwww.netobjectdays.orgzSznode02zSzdezSzConfzSzpublishzSz..zSz..zSz..zSz..zSzpdfzSz02zSzpaperszSznodezSz0110.pdf/supporting-component-based-software.pdf 



[2] I can't reproduce this one, but I will send you a copy of the 
presentation slides and notes offlist (others should ask if they want it)


Sorry the [1] and [2] is the wrong way around here, but it is the right 
link (i.e. the link marked as [1] is actually [2])


Ross


Re: [Vision] Knowing When We are Done

2005-12-08 Thread dave-

Berin Loritsch wrote:

In all the talks of redesign or not, there has been a recurring 
question as to the vision.  Sylvain has outlined some things that he 
would like to see, but they really don't constitute a vision.  They 
are a nice list of improvements, but they aren't a vision.  In my 
experience the best visions really don't have to do with features and 
improvements, but with what we expect to be able to do with Cocoon.  
We need to be able to put our vision statement in one or two 
paragraphs, and it needs to convey a little more than technology.  
Visions contain emotional content as well. 


As a first vision, I would like to see cocoon accessible to less 
technical people.  This could be done with elegant simplicity and a 
graphical interface.  Here is a good web 2.0 example 
http://www.activegrid.com/what/applicationbuilder.php.


As a second vision, artifacts created by the graphical interface along 
with any written code could become the model from which alternative 
implementation systems might be generated.  For example, a model POJO 
could be implementationally persisted in various ways.   dave-


Re: [Vision] Knowing When We are Done

2005-12-07 Thread Ross Gardler

Sylvain Wallez wrote:

Berin Loritsch wrote:

In all the talks of redesign or not, there has been a recurring 
question as to the vision.  Sylvain has outlined some things that he 
would like to see, but they really don't constitute a vision.  They 
are a nice list of improvements, but they aren't a vision.  In my 
experience the best visions really don't have to do with features and 
improvements, but with what we expect to be able to do with Cocoon.  
We need to be able to put our vision statement in one or two 
paragraphs, and it needs to convey a little more than technology.  
Visions contain emotional content as well.


There are two kinds of visions.  One is the kind that you use to 
attract users, Oh, that's what I need and they approach things the 
way I expect.  That's the kind that ends up on the front page.  Then 
there's the kind of vision that explains how you think something 
should be done.  Kind of like a how-to that describes what _should_ be 
instead of what is the case.  It has to be something exciting, 
something that people can get behind.


Now, whether we are talking about evolutionary change or revolutionary 
change, we need to have a common vision.  How else will we ensure the 
transition goes as smoothly as possible?  Good foundational principles 
of modern software development are just side issues.  Let's take a 
look at what we want Cocoon to be.  Below is my vision, which I hope 
starts discussion.  We can start consolditing the common points once 
people post their visions.  Let's gather the information, and then see 
if we can look at some commonalities and think a little outside the 
box to make as many of us happy as is practical.



Berin's Vision


I envision a Cocoon which takes its principle strengths in separation 
of concerns to make developing web applications easier.  Modern web 
applications provide machine-to-machine communications via web 
services and email as well as various views into the data.  I envision 
a Cocoon that makes Java look attractive again, proving that it is 
suited for the rapidly changing web environment.  I envision a Cocoon 
which avoids configuration where it is unnecessary, and instead 
employs easy to understand conventions.  I envision a Cocon that is 
able to be extended using standard Java mechanisms such as the JAR 
services approach.  I envision a Cocoon where I only have to learn 
Java and XML to be affective.  I see a Cocoon where testing is 
embraced, encouraged, and made easy.  I see a Cocoon where any 
errors/exceptions tell me exactly where the problem lies, down to the 
source code line--even if that source is not Java code.  I see a 
Cocoon where the Sitemap is not the preferred way to map URLs to 
generating content.  I see a cocoon where convention dictates the 
pipeline.


A note about blocks:  while they *can* be helpful, they are not 
central to my vision.  I am open to them, and if they are a part of 
Cocoon's future then the following applies: I see a cocoon where 
communities can share solutions packaged up in blocks to be reused in 
other applications.  I'm thinking solutions like user authentication, 
portal support, or other generic solutions.


-

That's my vision.  What's yours?  How much overlap is there?  Let's 
start this discussion, I think we will be pleasantly surprised how 
close many of us are with where we want Cocoon to go.



Oh yes, we are close.

To all the above, add the following: I envision a Cocoon where I can use 
the power of the pipeline engine in almost every environment where there 
is some XML data to be processed. I envision a Cocoon where people can 
use a single unified scripting language for both the client and the 
server. I envision a Cocoon where the expression used to access a given 
data is the same everywhere. I envision a Cocoon where any change to a 
source file, even Java, is instantly reflected in my application.


Whilst I agree with everything above I feel they are too focused on the 
developer side of things. Here are a couple of additions from the 
perspective of the end user:


I envision a transparent integration of remote resources. I envision a 
transparent integration of dynamic and static resources. I envision 
being able to build a Cocoon application by saying given these input 
types, I want this output type and to have the resulting application 
automatically tested against my test inputs.


Ross


Re: [Vision] Knowing When We are Done

2005-12-07 Thread Bertrand Delacretaz

Le 7 déc. 05, à 09:10, Ross Gardler a écrit :
...I envision being able to build a Cocoon application by saying 
given these input types, I want this output type and to have the 
resulting application automatically tested against my test inputs...


Not sure if I understand what you mean, could you give an example?

-Bertrand


smime.p7s
Description: S/MIME cryptographic signature


Re: [Vision] Knowing When We are Done

2005-12-07 Thread Torsten Curdt

Berin:

I envision a Cocoon which takes its principle strengths in  
separation of concerns to make developing web applications  
easier.  Modern web applications provide machine-to-machine  
communications via web services and email as well as various  
views into the data.  I envision a Cocoon that makes Java look  
attractive again, proving that it is suited for the rapidly  
changing web environment.  I envision a Cocoon which avoids  
configuration where it is unnecessary, and instead employs easy  
to understand conventions.  I envision a Cocon that is able to be  
extended using standard Java mechanisms such as the JAR services  
approach.  I envision a Cocoon where I only have to learn Java  
and XML to be affective.  I see a Cocoon where testing is  
embraced, encouraged, and made easy.  I see a Cocoon where any  
errors/exceptions tell me exactly where the problem lies, down to  
the source code line--even if that source is not Java code.  I  
see a Cocoon where the Sitemap is not the preferred way to map  
URLs to generating content.  I see a cocoon where convention  
dictates the pipeline.


A note about blocks:  while they *can* be helpful, they are not  
central to my vision.  I am open to them, and if they are a part  
of Cocoon's future then the following applies: I see a cocoon  
where communities can share solutions packaged up in blocks to be  
reused in other applications.  I'm thinking solutions like user  
authentication, portal support, or other generic solutions.


Sylvain:

I envision a Cocoon where I can use the power of the pipeline  
engine in almost every environment where there is some XML data to  
be processed. I envision a Cocoon where people can use a single  
unified scripting language for both the client and the server. I  
envision a Cocoon where the expression used to access a given data  
is the same everywhere. I envision a Cocoon where any change to a  
source file, even Java, is instantly reflected in my application.


Ross:

I envision a transparent integration of remote resources. I  
envision a transparent integration of dynamic and static resources.  
I envision being able to build a Cocoon application by saying  
given these input types, I want this output type and to have the  
resulting application automatically tested against my test inputs.


Torsten:

Plus I envision to have good testcase coverage for the whole system.  
I envision to have a clean core that shines through simplicity. I  
envision a non-viral component handling (One word:  
AbstractLogEnabled). POJOs and factories where feasible. I envision  
being able to drop block jar into a folder and extend my cocoon's  
functionality without configuring or doing anything else. (Maybe even  
at runtime.) I envision a cocoon where flow is not a 2nd class  
citizen. I envision a cocoon where your components like caches might  
persist. I envision log messages that are also understandable when  
you are not a core developer. I envision a cocoon where you have to  
write less.


cheers
--
Torsten


PGP.sig
Description: This is a digitally signed message part


Re: [Vision] Knowing When We are Done

2005-12-07 Thread Ugo Cei


Il giorno 07/dic/05, alle ore 09:40, Torsten Curdt ha scritto:

Plus I envision to have good testcase coverage for the whole  
system. I envision to have a clean core that shines through  
simplicity. I envision a non-viral component handling (One word:  
AbstractLogEnabled). POJOs and factories where feasible. I envision  
being


A-ha! This is a longtime favorite of mine. AbstractLogEnabled must  
DIE, DIE, DIE! ;-)


Ugo

--
Ugo Cei
Tech Blog: http://agylen.com/
Open Source Zone: http://oszone.org/
Wine  Food Blog: http://www.divinocibo.it/




Re: [Vision] Knowing When We are Done

2005-12-07 Thread Sylvain Wallez

Ugo Cei wrote:


Il giorno 07/dic/05, alle ore 09:40, Torsten Curdt ha scritto:

Plus I envision to have good testcase coverage for the whole system. 
I envision to have a clean core that shines through simplicity. I 
envision a non-viral component handling (One word: 
AbstractLogEnabled). POJOs and factories where feasible. I envision 
being


A-ha! This is a longtime favorite of mine. AbstractLogEnabled must 
DIE, DIE, DIE! ;-)


I was expecting you to also add I envision a Cocoon where all 
exceptions would be unckecked :-)


Sylvain

--
Sylvain WallezAnyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research  Technology Director



Re: [Vision] Knowing When We are Done

2005-12-07 Thread Ross Gardler

Bertrand Delacretaz wrote:

Le 7 déc. 05, à 09:10, Ross Gardler a écrit :

...I envision being able to build a Cocoon application by saying 
given these input types, I want this output type and to have the 
resulting application automatically tested against my test inputs...



Not sure if I understand what you mean, could you give an example?


Most businesses are made up of common business processes. The odd one 
will be unique to that business, but most are common. In the case of the 
unique practices the software needs to be customised, but in the case of 
common practices an off-the-shelf solution is sufficient.


Each common practice has a set of inputs, a set of intermediate states 
and a set of outputs. If the new Cocoon provides a series of components 
for transforming from an input to an ouput we can use these components 
to build complete applications.


Here's a simple example:

Inputs:
- purchase order

Intermediate Docs:
- customer details
- credit approval
- stock level

Required outputs:
- Invoice
- Packing slip

It is possible to describe this process as a series of components, i.e. 
to get from a purchase order document to a customer details document 
use component ABC, to get from a purchase order to a credit approcal 
use component XYZ etc.


It is possible to automate the discovery of these components and thus to 
automatically configure an application to move from document A to 
document B.


This latter part is, of course very complex and hard to do. I have a 
prototype, written for my PhD about 4 years ago, it's not Cocoon based, 
but has many parallels with both Cocoon and recent discussions regarding 
making Cocoon much easier to use (some info at http://www.saafe.org)


I'm not suggesting we tackle this latter part today. But as part of the 
long term vision it may be interesting.


Ross




Re: [Vision] Knowing When We are Done

2005-12-07 Thread Mats Norén

Ross Gardler wrote:

Bertrand Delacretaz wrote:


Le 7 déc. 05, à 09:10, Ross Gardler a écrit :

...I envision being able to build a Cocoon application by saying 
given these input types, I want this output type and to have the 
resulting application automatically tested against my test inputs...




Not sure if I understand what you mean, could you give an example?



Most businesses are made up of common business processes. The odd one 
will be unique to that business, but most are common. In the case of the 
unique practices the software needs to be customised, but in the case of 
common practices an off-the-shelf solution is sufficient.


Each common practice has a set of inputs, a set of intermediate states 
and a set of outputs. If the new Cocoon provides a series of components 
for transforming from an input to an ouput we can use these components 
to build complete applications.


Here's a simple example:

Inputs:
- purchase order

Intermediate Docs:
- customer details
- credit approval
- stock level

Required outputs:
- Invoice
- Packing slip

It is possible to describe this process as a series of components, i.e. 
to get from a purchase order document to a customer details document 
use component ABC, to get from a purchase order to a credit approcal 
use component XYZ etc.


It is possible to automate the discovery of these components and thus to 
automatically configure an application to move from document A to 
document B.


This seem a lot like the concepts of an ESB, someone mentioned 
ServiceMix [www.servicemix.org] in a recent thread. It's an interesting 
vision but is Cocoon NG really going to compete in that arena?


Mats


Re: [Vision] Knowing When We are Done

2005-12-07 Thread Ugo Cei


Il giorno 07/dic/05, alle ore 10:13, Sylvain Wallez ha scritto:

I was expecting you to also add I envision a Cocoon where all  
exceptions would be unckecked :-)


Ça va sans dire. Oh, by the way, how do you expect to be able to  
distribute Cocoon in France now that they are going to outlaw Open  
Source software? ;-)


Ugo

[Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Berin Loritsch
In the exchange below I did some creative snipping to emphasize where we 
are not 100% aligned on vision.  Below I will bring out my points, 
knowing that I'm not the guy who sets the tone for Cocoon.


Torsten Curdt wrote:


Berin:

... I envision a Cocoon which takes its principle strengths in  
separation of concerns to make developing web applications  easier. 
... I envision a Cocoon where I only have to learn Java  and XML to 
be affective. ...




Sylvain:

... I envision a Cocoon where people can use a single  unified 
scripting language for both the client and the server. ...




Torsten:

... I envision a cocoon where flow is not a 2nd class  citizen.



The conflict in vision is actually between Sylvain and I.  OK, conflict 
is a strong word, more like we are not on the same page.  Both Sylvain 
and I are aligned with Torsten, but we most likely have different ideas 
on how to get there.


Bottom line: I am in favor of Java Flow, and avoiding embedding any 
scripting languages in the core.  If you want to add a scripting 
language front end, I would suggest it be an add-on.  Why?  Because it 
both simplifies the design, and it minimizes the number of things the 
user (in my experience it is always a Java developer) has to learn 
before they can be effective.


I can infer from Sylvain's vision that he sees value in using JavaScript 
on the server as well as on the cient.  And why not?  We have the 
solution already in place.


Now, the Pros of using JavaScript that I can see are as follows:

* Common syntax on server and client
* Easy to use Java objects in JavaScript code
* Easy to add support for continuations

The cons I see are as follows:

* API depends on bound objects (not consistent between client and server)
* No testing framework for JavaScript Code
* Requires embedding a JavaScript runtime in the server
* We can't use the same debugger in our IDE to step through server side 
JavaScript code

* No IDE support for JavaScript
* It's another language to have to learn


The testing framework for JavaScript is easily overcome.  We could 
create something to get that working.  In Java 6 (still being worked 
out) JavaScript is supposed to be embedded into the core, so when the 
IDEs tool for Java 6, my objections involving IDE and debugger will go 
away--but that is a ways off still.  Which leaves us with the API con 
and the learning con.


I will stick to my guns for my belief that JavaScript will fail in its 
mission to bring less technical people to work on the server side.  
Less technical people need all the handholding they can get, so without 
IDE support and a well defined API they won't know what to do.  That 
does not mean that JavaScript is evil, or that it doesn't have a place 
on the server or in Cocoon.  I just think we are kidding ourselves if we 
think it will allow less technical people to do a programmer's job.


Now, my chief goal and my chief vision for Cocoon is to simplify the 
number of concepts a user has to learn before they are effective with 
Cocoon.  That might mean that we provide JavaScript as the only way to 
interact with the core.  All web applications would be written in 
JavaScript from control to helper functions.  Or all web applications 
would be written in Java from control to helper functions.  It is 
incredibly awkward to mix and match as the default way to do things.  It 
is difficult to explain when and where to use which language.  Now, for 
advanced users who don't mind the mix and match, I have no problem with 
having tutorials on how to do that properly.


What's your preference for the vision?

[ ] All web apps written in JavaScript
[ ] All web apps written in pure Java
[ ] Mix and match (not as simple, but is status quo with today)



Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Berin Loritsch

Berin Loritsch wrote:



What's your preference for the vision?

[ ] All web apps written in JavaScript
[X] All web apps written in pure Java
[ ] Mix and match (not as simple, but is status quo with today)







Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread hepabolu

Berin Loritsch wrote:

What's your preference for the vision?

[ ] All web apps written in JavaScript
[ ] All web apps written in pure Java
[X] Mix and match (not as simple, but is status quo with today)


With Ajax and other bells and whistles on the client side, there will 
always be javascript.


Bye, Helma



Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Ralph Goers
None of these.  I have a vision where the business services are 
implemented in Java, the web application is defined in a stateful flow 
controller (xml config) and the views are generated using pipelines with 
standard components.  So my answer is - No programming language on the 
server, just configuration.


Berin Loritsch wrote:


Berin Loritsch wrote:



What's your preference for the vision?

[ ] All web apps written in JavaScript
[X] All web apps written in pure Java
[ ] Mix and match (not as simple, but is status quo with today)







Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Berin Loritsch

hepabolu wrote:


Berin Loritsch wrote:


What's your preference for the vision?

[ ] All web apps written in JavaScript
[ ] All web apps written in pure Java
[X] Mix and match (not as simple, but is status quo with today)



With Ajax and other bells and whistles on the client side, there will 
always be javascript.



I'm focused on the server side.  I'm not even contesting the client side 
use of javascript.




Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Berin Loritsch

Ralph Goers wrote:

None of these.  I have a vision where the business services are 
implemented in Java, the web application is defined in a stateful flow 
controller (xml config) and the views are generated using pipelines 
with standard components.  So my answer is - No programming language 
on the server, just configuration.



Shudder.

That could be a nice add on to Cocoon.  Perhaps a BPL (Business Process 
Language, an XML standard for what you are talking about) application.


I would argue that what you are talking about is a domain specific 
language in the guise of configuration (just like your hibernate 
descriptors and ant scripts).




Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Vadim Gritsenko

Berin Loritsch wrote:

What's your preference for the vision?

[ ] All web apps written in JavaScript
[ ] All web apps written in pure Java
[X] Mix and match (not as simple, but is status quo with today)


Vadim


Re: [Vision] Knowing When We are Done

2005-12-07 Thread Vadim Gritsenko

Berin:

I envision a Cocoon which takes its principle strengths in  
separation of concerns to make developing web applications  easier.  
Modern web applications provide machine-to-machine  communications 
via web services and email as well as various  views into the data.  
I envision a Cocoon that makes Java look  attractive again, proving 
that it is suited for the rapidly  changing web environment.  I 
envision a Cocoon which avoids  configuration where it is 
unnecessary, and instead employs easy  to understand conventions.  I 
envision a Cocon that is able to be  extended using standard Java 
mechanisms such as the JAR services  approach.  I envision a Cocoon 
where I only have to learn Java  and XML to be affective.  I see a 
Cocoon where testing is  embraced, encouraged, and made easy.  I see 
a Cocoon where any  errors/exceptions tell me exactly where the 
problem lies, down to  the source code line--even if that source is 
not Java code.  I  see a Cocoon where the Sitemap is not the 
preferred way to map  URLs to generating content.  I see a cocoon 
where convention  dictates the pipeline.


A note about blocks:  while they *can* be helpful, they are not  
central to my vision.  I am open to them, and if they are a part  of 
Cocoon's future then the following applies: I see a cocoon  where 
communities can share solutions packaged up in blocks to be  reused 
in other applications.  I'm thinking solutions like user  
authentication, portal support, or other generic solutions.


Sylvain:

I envision a Cocoon where I can use the power of the pipeline  engine 
in almost every environment where there is some XML data to  be 
processed. I envision a Cocoon where people can use a single  unified 
scripting language for both the client and the server. I  envision a 
Cocoon where the expression used to access a given data  is the same 
everywhere. I envision a Cocoon where any change to a  source file, 
even Java, is instantly reflected in my application.


Ross:

I envision a transparent integration of remote resources. I  envision 
a transparent integration of dynamic and static resources.  I envision 
being able to build a Cocoon application by saying  given these input 
types, I want this output type and to have the  resulting application 
automatically tested against my test inputs.


Torsten:

Plus I envision to have good testcase coverage for the whole system.  I 
envision to have a clean core that shines through simplicity. I  
envision a non-viral component handling (One word:  AbstractLogEnabled). 
POJOs and factories where feasible. I envision  being able to drop block 
jar into a folder and extend my cocoon's  functionality without 
configuring or doing anything else. (Maybe even  at runtime.) I envision 
a cocoon where flow is not a 2nd class  citizen. I envision a cocoon 
where your components like caches might  persist. I envision log 
messages that are also understandable when  you are not a core 
developer. I envision a cocoon where you have to  write less.


Vadim:

I envision Cocoon where components configurations are consistent (and easy to 
guess), with sensible defaults. I envision good set of test cases running 
nightly which flag any regressions early and those regressions are resolved. 
Solid core with clean interfaces between layers (pipeline engine - sitemap 
machinery - entry points/environments). Easy to read and maintain core 
implementation. Single expression language throughout with unified object model. 
Solidifying existing functionality is prioritized over expanding into new 
territories with quickly hacked-together code. Newly hacked code is prioritized 
to first get it consistent with overall architecture, then functioning right, 
and only then gets bells  whistles. Released CForms.



Vadim

PS Last one is a tease :)


Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Ralph Goers

Berin Loritsch wrote:


Ralph Goers wrote:

None of these.  I have a vision where the business services are 
implemented in Java, the web application is defined in a stateful 
flow controller (xml config) and the views are generated using 
pipelines with standard components.  So my answer is - No programming 
language on the server, just configuration.




Shudder.

That could be a nice add on to Cocoon.  Perhaps a BPL (Business 
Process Language, an XML standard for what you are talking about) 
application.


I would argue that what you are talking about is a domain specific 
language in the guise of configuration (just like your hibernate 
descriptors and ant scripts).


I'm just talking about using Spring Webflow being called from a JavaFlow 
class.  For my employer I have already written a generic (Cocoon) action 
that can call any business service that is configured, as long as the 
business service follows some simple rules about its input and output. 
Converting that to a Webflow action shouldn't be too much trouble.


Ralph


Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Ross Gardler

Berin Loritsch wrote:

Ralph Goers wrote:

None of these.  I have a vision where the business services are 
implemented in Java, the web application is defined in a stateful flow 
controller (xml config) and the views are generated using pipelines 
with standard components.  So my answer is - No programming language 
on the server, just configuration.


This is what I was getting at with my wish to see apps defined in terms 
of given this type of input I want this type of output.



Shudder.

That could be a nice add on to Cocoon.  Perhaps a BPL (Business Process 
Language, an XML standard for what you are talking about) application.


In my prototype of such a system I evaluated all the BPL's of the time 
(and have since updated this again). I rejected them all as being far 
too complex, verbose and too much like a full blown programming language.


What I ended up using was XML Pipelines, a very simple language that
covers far more of the required workflows than any of the specific BPL's

Why is this relevant here?

You would be amazed at how many similarities there are between the 
solution I developed and Cocoon (that's why I was drawn to Cocoon in the 
first place).


I would argue that what you are talking about is a domain specific 
language in the guise of configuration (just like your hibernate 
descriptors and ant scripts).


Sometimes, DSL's bring many benefits, just consider the sitemap.

Do we want to know more or is this a step too far at this stage of 
discussion? I'm aware that t could go off on a horrible tangent and 
we'll never find the real vision, it may be better for me to bring this 
up again at a more appropriate time, after all its an implementation detail.


Ross



Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Berin Loritsch

Ross Gardler wrote:


Berin Loritsch wrote:

I would argue that what you are talking about is a domain specific 
language in the guise of configuration (just like your hibernate 
descriptors and ant scripts).



Sometimes, DSL's bring many benefits, just consider the sitemap.

Do we want to know more or is this a step too far at this stage of 
discussion? I'm aware that t could go off on a horrible tangent and 
we'll never find the real vision, it may be better for me to bring 
this up again at a more appropriate time, after all its an 
implementation detail.



I think that is enough for this part of the discussion.  I'm just trying 
to help us get aligned at the basic, core level.  Nothing would prevent 
what you want to do in Cocoon.




Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Sylvain Wallez

Berin Loritsch wrote:
In the exchange below I did some creative snipping to emphasize where 
we are not 100% aligned on vision.  Below I will bring out my points, 
knowing that I'm not the guy who sets the tone for Cocoon.


We are collectively setting the tone, and your inputs are very valuable!

snip/

I can infer from Sylvain's vision that he sees value in using 
JavaScript on the server as well as on the cient.  And why not?  We 
have the solution already in place.

Yep. Several reasons for this:
- JS provides a more concise writing, which is great when you write the 
glue code of your application,
- my experience is different than yours, as I've seen many people using 
Cocoon being unable to write a Java class but perfectly able to write a 
flowscript to drive page flow, display forms and glue components together.



Now, the Pros of using JavaScript that I can see are as follows:

* Common syntax on server and client
* Easy to use Java objects in JavaScript code
* Easy to add support for continuations

The cons I see are as follows:

* API depends on bound objects (not consistent between client and server)
Yep. Now stuff like JSON [1] can allow for *very* easy client/server 
communications in Ajax scenarios.



* No testing framework for JavaScript Code
People writing Ajax libraries are getting serious about unit tests. Have 
a look at [2] and [3].



* Requires embedding a JavaScript runtime in the server

Rhino will be embedded in JDK 1.6 (or whatever its name)

* We can't use the same debugger in our IDE to step through server 
side JavaScript code

Right.


* No IDE support for JavaScript
There's a JS plugin in Eclipse webtools and the amazing JSEclipse [4] 
that does autocompletion of function and argument names, plus tooltips 
and all that stuff. It even accepts additional completion description 
files that we could generate automatically from the API that we expose 
to the JS engine.



* It's another language to have to learn

Yeah, but a language that many people already now.

The testing framework for JavaScript is easily overcome.  We could 
create something to get that working.  In Java 6 (still being worked 
out) JavaScript is supposed to be embedded into the core, so when the 
IDEs tool for Java 6, my objections involving IDE and debugger will go 
away--but that is a ways off still.  Which leaves us with the API con 
and the learning con.


I will stick to my guns for my belief that JavaScript will fail in its 
mission to bring less technical people to work on the server side.  
Less technical people need all the handholding they can get, so 
without IDE support and a well defined API they won't know what to 
do.  That does not mean that JavaScript is evil, or that it doesn't 
have a place on the server or in Cocoon.  I just think we are kidding 
ourselves if we think it will allow less technical people to do a 
programmer's job.


Again, I have seen semi-technical people doing great things with JS. Not 
all the bells and whistles of the full J2EE stack, but some fairly 
advanced stuff they could never have done with only the Java API (nor 
PHP, btw).


So the flow controller is really a place (and the *only* one actually) 
where I value having two implementations, one in Java and one in JS. 
However, these two implementations should really be a very thin layer on 
top of a common controller infrastructure, both to reduce the effort and 
ensure long-term consistency.



What's your preference for the vision?

[ ] All web apps written in JavaScript
[ ] All web apps written in pure Java
[X] Mix and match (not as simple, but is status quo with today)


Sylvain

[1] http://www.crockford.com/JSON/
[2] http://archive.dojotoolkit.org/nightly/testtools/
[3] http://www.edwardh.com/jsunit/
[4] http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/

--
Sylvain WallezAnyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research  Technology Director



Re: [Vision] Knowing When We are Done

2005-12-07 Thread Ugo Cei


Il giorno 07/dic/05, alle ore 11:43, Ross Gardler ha scritto:

Most businesses are made up of common business processes. The odd  
one will be unique to that business, but most are common. In the  
case of the unique practices the software needs to be customised,  
but in the case of common practices an off-the-shelf solution is  
sufficient.


Sorry but I don't believe this dream of high-level, off-the-shelf,  
customizable components will ever come to fruition, Cocoon or not. On  
this point, I agree with Dan Creswell [1]:


All attempts at creating high-level business components that can be  
re-used and re-configured have failed previously. This failure has  
not been for technical reasons - it happens because the requirements  
that yielded the original component interface were sufficiently  
different from the new requirements so as to require re-writing  
massive chunks of functionality.


And David Heinemeier Hansson as well [2]:

On the surface, the dream of components sounds great and cursory  
overviews of new projects also appear to be a perfect fit. But they  
never are. Reuse is hard. Parameterized reuse is even harder. And in  
the end, you're left with all the complexity of a swiss army knife  
that does everything for no one at great cost and pain.


I'd be content if Cocoon was simply a powerful and easy-to-use web  
application development framework.


Ugo

[1]: http://jroller.com/page/dancres/20050218#soa_doomed
[2]: http://www.loudthinking.com/arc/000407.html



--
Ugo Cei
Tech Blog: http://agylen.com/
Open Source Zone: http://oszone.org/
Wine  Food Blog: http://www.divinocibo.it/




Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Ugo Cei


Il giorno 07/dic/05, alle ore 15:23, Berin Loritsch ha scritto:


What's your preference for the vision?

[ ] All web apps written in JavaScript
[X ] All web apps written in pure Java
[ ] Mix and match (not as simple, but is status quo with today)



Ugo


--
Ugo Cei
Tech Blog: http://agylen.com/
Open Source Zone: http://oszone.org/
Wine  Food Blog: http://www.divinocibo.it/




Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Berin Loritsch
So far it seems as if we are looking at two options:  Pure Java or 
status quo.  And so far we are something along the lines of 2 for Java 
and 2 (possibly 3) for status quo.


Anyone else have input?

Ugo Cei wrote:



Il giorno 07/dic/05, alle ore 15:23, Berin Loritsch ha scritto:


What's your preference for the vision?

[ ] All web apps written in JavaScript
[X ] All web apps written in pure Java
[ ] Mix and match (not as simple, but is status quo with today)



Ugo







Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Mark Lundquist


On Dec 7, 2005, at 6:23 AM, Berin Loritsch wrote:


[X] Mix and match (not as simple, but is status quo with today)




Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Daniel Fagerstrom
Following the vision that Bertrand and Marc expressed, I'd like to see 
Cocoon becoming less of a xml webapp framework and more of a set of 
reuasble xml webapp components and a set of design patterns. With this I 
measn that you can use the parts of Cocoon that you like, in the way you 
like in your webapp, without having to buy a whole religion.


So following this, the flowscript controller should be less tightly 
integrated than it is today. We have a flowscript servlet that can be 
used stand alone in other projects. When you use it in Cocoon, you just 
inject the Cocoon component model in it and it can call the sitemap 
controller or other controllers through the servlet context (or whatever 
reusable way we come up with).


The Cocoon component model is written in Java and properly POJOfied, so 
it doesn't need to have any JavaScript awareness.


And a JavaFlow controler can work in a similar way. If I understod 
Torsten right, there is allready a JavaFlow servlet.


Given the need for backcompability and the fact that a flowscript 
controller is rather usefull in its own right, for people who happen to 
like JavaScript. It is reasonable that we maintain such a beast during 
the forseeable future. It doesn't have to be part of the core of Cocoon 
though.


--- o0o ---

So given that we factor out the flowscript controller from the core, the 
question is what your question bellow will mean. It will be up to the 
application writer what to use. And hopefully our blocks will take of 
more as more independent projects, that do whatever they find best.


Except for in the CForms block, IIRC, I don't think that we have written 
that much flowscript code that is supposed to be reused. Despite that 
flowscripts have been around for quite a long time.


For the actual core of Cocoon I envision that everything have clean and 
well designed Java interfaces, so that you can develop purely in a Java 
world.


If we build reusable webapps, I would have nothing against focusing on 
Java. And also focusing on Java in the documentation would be Ok for me.


--- o0o ---

But above all I would prefer if we focused on providing a small, clean, 
stable and reusable set of core xml webapp components and leave it to 
the users to do whatever they want with them.


/Daniel

Berin Loritsch wrote:
...

Now, my chief goal and my chief vision for Cocoon is to simplify the 
number of concepts a user has to learn before they are effective with 
Cocoon.  That might mean that we provide JavaScript as the only way to 
interact with the core.  All web applications would be written in 
JavaScript from control to helper functions.  Or all web applications 
would be written in Java from control to helper functions.  It is 
incredibly awkward to mix and match as the default way to do things.  
It is difficult to explain when and where to use which language.  Now, 
for advanced users who don't mind the mix and match, I have no problem 
with having tutorials on how to do that properly.


What's your preference for the vision?

[ ] All web apps written in JavaScript
[ ] All web apps written in pure Java
[ X ] Mix and match (not as simple, but is status quo with today)





Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Bertrand Delacretaz



[ X] Mix and match (not as simple, but is status quo with today)


Assuming we can move to a componentized Cocoon, the components will be 
usable from both javascript or java.


(or from JRuby for that matter, which is supposed to support Rails [1] 
in a few months ;-)


-Bertrand


[1] http://jruby.sourceforge.net/docs/milestones.shtml


smime.p7s
Description: S/MIME cryptographic signature


Re: [Vision] Knowing When We are Done

2005-12-07 Thread Ross Gardler

Mats Norén wrote:

Ross Gardler wrote:


Bertrand Delacretaz wrote:


Le 7 déc. 05, à 09:10, Ross Gardler a écrit :

...I envision being able to build a Cocoon application by saying 
given these input types, I want this output type and to have the 
resulting application automatically tested against my test inputs...





Not sure if I understand what you mean, could you give an example?




Most businesses are made up of common business processes. The odd one 
will be unique to that business, but most are common. In the case of 
the unique practices the software needs to be customised, but in the 
case of common practices an off-the-shelf solution is sufficient.


Each common practice has a set of inputs, a set of intermediate states 
and a set of outputs. If the new Cocoon provides a series of 
components for transforming from an input to an ouput we can use these 
components to build complete applications.


Here's a simple example:

Inputs:
- purchase order

Intermediate Docs:
- customer details
- credit approval
- stock level

Required outputs:
- Invoice
- Packing slip

It is possible to describe this process as a series of components, 
i.e. to get from a purchase order document to a customer details 
document use component ABC, to get from a purchase order to a 
credit approcal use component XYZ etc.


It is possible to automate the discovery of these components and thus 
to automatically configure an application to move from document A to 
document B.



This seem a lot like the concepts of an ESB, someone mentioned 
ServiceMix [www.servicemix.org] in a recent thread. It's an interesting 
vision but is Cocoon NG really going to compete in that arena?


See Daniels recent mail about wanting Cocoon to be a set of components 
that can be used in any context, guided by patterns. That's *exactly* 
what I'm talking about.


When I was first drawn to Cocoon it was a much simpler beast, it was 
still an XML processing framework. We all know what has happened since, 
it's been said many times in this and related threads.


However, when Cocoon was nothing more than a sitemap defining XML 
processing pipelines it was a small step away from being eveything any 
ESB today claims to be. ESB is only a buzzword, this stuff has been 
around for many years.


Now I'd better stop before I start convincing myself that people will 
find all 600 pages of my PhD interesting ;-)


I'll return to this one day when the vision is settled and in place, and 
I have the time to express it in a reasonably concise RT.


Ross





OT [Re: [Vision] Knowing When We are Done]

2005-12-07 Thread Ross Gardler

Ugo Cei wrote:


Il giorno 07/dic/05, alle ore 11:43, Ross Gardler ha scritto:

Most businesses are made up of common business processes. The odd  one 
will be unique to that business, but most are common. In the  case of 
the unique practices the software needs to be customised,  but in the 
case of common practices an off-the-shelf solution is  sufficient.



Sorry but I don't believe this dream of high-level, off-the-shelf,  
customizable components will ever come to fruition, Cocoon or not. On  
this point, I agree with Dan Creswell [1]:


All attempts at creating high-level business components that can be  
re-used and re-configured have failed previously. This failure has  not 
been for technical reasons - it happens because the requirements  that 
yielded the original component interface were sufficiently  different 
from the new requirements so as to require re-writing  massive chunks of 
functionality.


And David Heinemeier Hansson as well [2]:

On the surface, the dream of components sounds great and cursory  
overviews of new projects also appear to be a perfect fit. But they  
never are. Reuse is hard. Parameterized reuse is even harder. And in  
the end, you're left with all the complexity of a swiss army knife  that 
does everything for no one at great cost and pain.


Off Topic now, but I can't resist...

I agree with both of these quotes 100%. In fact, my academic blue sky 
work, in my previous life, addressed *exactly* the problems identified 
within the above quotes. It's all to do with the size of the component 
base (not the ease of configurability), the ability to identify good 
enough components and the ease of building a custom component when 
there is no suitable off-the-shelf component. That's why Cocoon can be 
applied succesfully in this area, it has the potential to be a very 
powerful web platform.


Therefore, for now, I agree that to be useful Cocoon has to be an easy 
to use web-development framework. Without that, there is no point in me 
carrying on - so I won't (yet)


Ross


[1]: http://jroller.com/page/dancres/20050218#soa_doomed
[2]: http://www.loudthinking.com/arc/000407.html







Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Ross Gardler

[X] Mix and match (not as simple, but is status quo with today)

However, to be effective we need  a core development effort, therefore 
the *official* support should be for a limited subset of what is in use 
today:


Javascript + Java

Ross


Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Aurélien DEHAY

Hello.

Sorry for the intervention of a non-dev on the dev list, but shouldn't 
this question be asked on the user mailing list?


Aurélien


Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Berin Loritsch

Aurélien DEHAY wrote:


Hello.

Sorry for the intervention of a non-dev on the dev list, but shouldn't 
this question be asked on the user mailing list?



:) Yes and no.  Check this article out for more information:
http://headrush.typepad.com/creating_passionate_users/2005/09/listening_to_us.html

In all honesty, while we are day dreaming about our vision we don't 
necessarily want to alarm users or generate too much noise on the user list.


However, since you are on this list, your input is valued if you have any.



Re: [Poll] We need to align on one point (was Re: [Vision] Knowing When We are Done)

2005-12-07 Thread Thomas Lutz
Though I am not a dev guy, I can't resist to vote, too. IMHO a mix makes 
no sense. Too make a long story short I made struggled my way into 
cocoon with
-first writing custom actions as I was not aware that I should use flow 
instead

-then switching to flow using JavaScript
-and finally port everything to JavaFlow

JavaFlow is a really nice thing, as some of you have written before, 
everything is in one IDE, it's much easier too integrate the backend 
classes, and though most people in the web area know something about 
javascript, almost nobody really masters javascript. It's easier to 
debug, document with javadoc, and it's compiled and typesafe.


Second argument: It was hard to explain, why I kicked struts out, and 
used cocoon instead. And it was even harder to explain that there is 
JavaScript in the server part. Managers who buy oracle don't like to 
hear things like this...


Last comment: Though this is not the question in this poll, I would even 
kick out the pipeline xml stuff. XML was not designed to be 
procedural, basically it's a markup language, which focuses on data 
exchange.


On a recent open source talk in vienna  a committer from RoR was joking 
about the java frameworks and their tons of configuration and even worse 
flow description files. Though the RoR approach goes a bit too far for 
a compiled language like java, I do believe it makes sense to stick to 
the language choosen.


So, please :-), only one language, and as cocoon (or whatever it's name 
will be :-) ) is a J2EE framework: _Java_


Sorry for the interference :-), regards,
tom

Berin Loritsch wrote:

What's your preference for the vision?

[ ] All web apps written in JavaScript
[x] All web apps written in pure Java
[ ] Mix and match (not as simple, but is status quo with today)








[Vision] Knowing When We are Done

2005-12-06 Thread Berin Loritsch
In all the talks of redesign or not, there has been a recurring question 
as to the vision.  Sylvain has outlined some things that he would like 
to see, but they really don't constitute a vision.  They are a nice list 
of improvements, but they aren't a vision.  In my experience the best 
visions really don't have to do with features and improvements, but with 
what we expect to be able to do with Cocoon.  We need to be able to put 
our vision statement in one or two paragraphs, and it needs to convey a 
little more than technology.  Visions contain emotional content as well.


There are two kinds of visions.  One is the kind that you use to attract 
users, Oh, that's what I need and they approach things the way I 
expect.  That's the kind that ends up on the front page.  Then there's 
the kind of vision that explains how you think something should be 
done.  Kind of like a how-to that describes what _should_ be instead of 
what is the case.  It has to be something exciting, something that 
people can get behind.


Now, whether we are talking about evolutionary change or revolutionary 
change, we need to have a common vision.  How else will we ensure the 
transition goes as smoothly as possible?  Good foundational principles 
of modern software development are just side issues.  Let's take a look 
at what we want Cocoon to be.  Below is my vision, which I hope starts 
discussion.  We can start consolditing the common points once people 
post their visions.  Let's gather the information, and then see if we 
can look at some commonalities and think a little outside the box to 
make as many of us happy as is practical.



Berin's Vision


I envision a Cocoon which takes its principle strengths in separation of 
concerns to make developing web applications easier.  Modern web 
applications provide machine-to-machine communications via web services 
and email as well as various views into the data.  I envision a Cocoon 
that makes Java look attractive again, proving that it is suited for the 
rapidly changing web environment.  I envision a Cocoon which avoids 
configuration where it is unnecessary, and instead employs easy to 
understand conventions.  I envision a Cocon that is able to be extended 
using standard Java mechanisms such as the JAR services approach.  I 
envision a Cocoon where I only have to learn Java and XML to be 
affective.  I see a Cocoon where testing is embraced, encouraged, and 
made easy.  I see a Cocoon where any errors/exceptions tell me exactly 
where the problem lies, down to the source code line--even if that 
source is not Java code.  I see a Cocoon where the Sitemap is not the 
preferred way to map URLs to generating content.  I see a cocoon where 
convention dictates the pipeline.


A note about blocks:  while they *can* be helpful, they are not central 
to my vision.  I am open to them, and if they are a part of Cocoon's 
future then the following applies: I see a cocoon where communities can 
share solutions packaged up in blocks to be reused in other 
applications.  I'm thinking solutions like user authentication, portal 
support, or other generic solutions.


-

That's my vision.  What's yours?  How much overlap is there?  Let's 
start this discussion, I think we will be pleasantly surprised how close 
many of us are with where we want Cocoon to go.




Re: [Vision] Knowing When We are Done

2005-12-06 Thread Sylvain Wallez

Berin Loritsch wrote:
In all the talks of redesign or not, there has been a recurring 
question as to the vision.  Sylvain has outlined some things that he 
would like to see, but they really don't constitute a vision.  They 
are a nice list of improvements, but they aren't a vision.  In my 
experience the best visions really don't have to do with features and 
improvements, but with what we expect to be able to do with Cocoon.  
We need to be able to put our vision statement in one or two 
paragraphs, and it needs to convey a little more than technology.  
Visions contain emotional content as well.


There are two kinds of visions.  One is the kind that you use to 
attract users, Oh, that's what I need and they approach things the 
way I expect.  That's the kind that ends up on the front page.  Then 
there's the kind of vision that explains how you think something 
should be done.  Kind of like a how-to that describes what _should_ be 
instead of what is the case.  It has to be something exciting, 
something that people can get behind.


Now, whether we are talking about evolutionary change or revolutionary 
change, we need to have a common vision.  How else will we ensure the 
transition goes as smoothly as possible?  Good foundational principles 
of modern software development are just side issues.  Let's take a 
look at what we want Cocoon to be.  Below is my vision, which I hope 
starts discussion.  We can start consolditing the common points once 
people post their visions.  Let's gather the information, and then see 
if we can look at some commonalities and think a little outside the 
box to make as many of us happy as is practical.



Berin's Vision


I envision a Cocoon which takes its principle strengths in separation 
of concerns to make developing web applications easier.  Modern web 
applications provide machine-to-machine communications via web 
services and email as well as various views into the data.  I envision 
a Cocoon that makes Java look attractive again, proving that it is 
suited for the rapidly changing web environment.  I envision a Cocoon 
which avoids configuration where it is unnecessary, and instead 
employs easy to understand conventions.  I envision a Cocon that is 
able to be extended using standard Java mechanisms such as the JAR 
services approach.  I envision a Cocoon where I only have to learn 
Java and XML to be affective.  I see a Cocoon where testing is 
embraced, encouraged, and made easy.  I see a Cocoon where any 
errors/exceptions tell me exactly where the problem lies, down to the 
source code line--even if that source is not Java code.  I see a 
Cocoon where the Sitemap is not the preferred way to map URLs to 
generating content.  I see a cocoon where convention dictates the 
pipeline.


A note about blocks:  while they *can* be helpful, they are not 
central to my vision.  I am open to them, and if they are a part of 
Cocoon's future then the following applies: I see a cocoon where 
communities can share solutions packaged up in blocks to be reused in 
other applications.  I'm thinking solutions like user authentication, 
portal support, or other generic solutions.


-

That's my vision.  What's yours?  How much overlap is there?  Let's 
start this discussion, I think we will be pleasantly surprised how 
close many of us are with where we want Cocoon to go.


Oh yes, we are close.

To all the above, add the following: I envision a Cocoon where I can use 
the power of the pipeline engine in almost every environment where there 
is some XML data to be processed. I envision a Cocoon where people can 
use a single unified scripting language for both the client and the 
server. I envision a Cocoon where the expression used to access a given 
data is the same everywhere. I envision a Cocoon where any change to a 
source file, even Java, is instantly reflected in my application.


Sylvain

--
Sylvain WallezAnyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research  Technology Director