Erik Bruchez wrote:
Sylvain Wallez wrote:
>> Look at this page : >> http://www.orbeon.com/community/cocoon >> I don't know exactly if all this information is verified, but I think >> this type of comparison is a good point. > > We looked at it, and some points in this comparison are clearly wrong.
Sorry to interfere on Cocoon's dev list: I admit that I keep an eye on it, especially when I see the name of my company and product :-) Be assured that this email is written in all friendliness. As Sylvain mentioned, we met once, and I have met Bertrand (who like me operates out of Switzerland) a couple of times now, and I have no reason to believe that these two Cocoon-ers in particular are anything but great people.
I would like to say that after this Orbeon PresentationServer (OPS) / Cocoon comparison was first mentioned in cocoon-dev, when it was still called the OXF platform, we got some feedback and promptly updated the page. But it's not the first time since then that I read on cocoon-dev that the comparison is incorrect / unfair / evil / heretic (because it dares pretend that something out there may do some things better than Cocoon!) - ok, I am making that up, but that's a little how it looks to me. But we have yet to get a single feedback email telling us exactly what's wrong with the current version.
I guess it's because that would lead us to a useless bikeshedding war between comparisons.
I don't believe the comparison can be all wrong, or even all unfair, even if there is certainly subjectivity in it, and even if we mainly mention OPS's strengths rather than weaknesses.
That is the exact definition of a marketing document rather than an objective comparison ;-)
Just looking at the main points we make:
o Our belief that XForms is an excellent choice is subjective, but there are some good arguments for XForms, server-side and client-side (hey, I am giving a talk about server-side XForms at XTech 2005), and we hope to convince people who think the same to use OPS. That's not denying Sylvain's excellent work on Cocoon Forms.
IMO you did a very good job at making XForms a strong marketing item for OPS (XForms comes first in OPS docs, before the pipeline language!). But your implementation is very far from being compliant to the W3C spec, and the way you use it mixes concerns (see pipeline data below).
o We do strongly believe that the XML pipeline language in OPS beats the ... out of Cocoon pipelines ;-)
I admit XPL is elegant (and I told you so). There are a few points that hinder this elegance though:
- it's hard to read, as it contains a lot of references to tie inputs to outputs
- serializers mix concerns by defining both the XML to binary conversion (the actual serialization) and the destination of the serialized data.
<snip/>
o The separation of concerns issues have been discussed on cocoon-dev by fervent Cocoon-ers: the sitemap for example is quite a mixup of different things. Of course there is some separation of concern in Cocoon, there is no denying this, but for example OPS separates clearly the concept of "sitemap + page flow" (which we call "page flow" because it declares pages as well as the relationship between them) from pipelines; the OPS page flow clearly separates page views and page models, and encourages developers to follow this model. Hence the claim that OPS has greater separation of concerns.
So what is the <map:flow> about? Defining page flow controllers. It is declared in the sitemap because the sitemap is the entry point of every request coming into the system, and because sitemaps also define subcomponents in a large application.
Now OPS also has its mixing of concerns in the pipeline data where a single document mixes everything: xforms instance, description of the request, page data, etc.
o The OPS platform consistency has been defended on this very mailing-list by Cocoon-ers who have read the OPS documentation and/or tried the platform. On the other side I have read here from how Cocoon can be a complex web of different things that are difficult to sort out. I don't think that it is unfair for us to mention that we believe that more consistency is a benefit, and to claim that OPS has more of it.
Yes, Cocoon is inconsistent in some places. But this inconsistency comes from the incredible amount of features it provides and the fact that it was built by a large group of developpers.
o Declarative Page Flow. Ok this is arguable, as some people will love Cocoon's JavaScript-based (and more programmatic) approach, which is very flexible and a very interesting model. So far we believe that the more declarative you get, the better.
FYI, we discussed here back in 2002 something called "flowmap" for months without coming to a satisfying solution, when someone came with flowscript. And programmatic page flow offers a tremendous power without much price. Any declarative page flow XML language ends up with control structure that turn it into some kind of programming language.
o Commitment to XML standards. See the XForms section. And also, we love having XML Schema and Relax NG tightly integrated with pipelines. We also believe that it is important to integrate XSLT 2.0 and XPath 2.0 early. So we encourage users, through documentation, tutorial and examples, to use those technologies, and that's what I call being committed to XML standards. And we also believe that this has benefits.
XSLT 2.0 has only one OSS implementation which is Saxon. People can use it right now by adding saxon.jar in their application and decommenting an entry in Cocoon's configuration.
<snip/>
> BTW, I met one of Orbeon's founders and he explained me they started OPS
> because they were frustrated by Cocoon 1. Now Cocoon people also were
> frustrated, and this led to Cocoon 2.
Actually, we were frustrated with Cocoon 2. That was back in 2002, and our company's web site was made with Cocoon 2 at the time. I also had a couple of personal web sites running on Cocoon 2. Just setting the record straight ;-)
Sorry, from our conversation I understood this was Cocoon 1. I stand corrected.
Sylvain
-- Sylvain Wallez Anyware Technologies http://apache.org/~sylvain http://anyware-tech.com Apache Software Foundation Member Research & Technology Director