cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylv...@apache.org>
Subject Re: [RT] The next shiny thing?
Date Sun, 04 Dec 2005 22:49:20 GMT
Daniel Fagerstrom wrote:

> How can you be so certain that we would getting less complicated if we 
> started from scratch? It might be complicated because it does 
> something complicated. As long as you don't understand the internals 
> you cannot really know, can you?

I do. And you don't know how many hours I spent trying to understand why 
this or that was written and what could break when I found how to fix a bug.

And IMNSHO there are simpler ways to do the same thing.

> Managing complexity is much about finding the right concepts and work 
> really hard to get the right interfaces. The people who built Cocoon 
> from the begining spent a lot of time and effort in getting the apis 
> right. Since then we have made the apis bulky whithout doing that much 
> refactoring to keep things simple.

I agree. And one of the biggest problem with the current code base is 
that we don't know where the contracts are, meaning that changing things 
is awfully difficult because we have to maintain overall compatibility.

A revamped code base can be organized from the start to give solutions 
to this problem:
- clearly identify and document public contracts.
- distinguish internal and public classes (Java's private keyword isn't 
enough here)
- design public classes for subclassing or make them final.

That way we know where the compatibility effort must go.

We can also learn a lot of Eclipse in this regard, as they are 
particularly cautious about APIs. They have a lot of documents (e.g. [1] 
and [2]) and some automated tools to ensure API stability.

> What we need to do is to refactor and rearchitecture Cocoon so that we 
> get rid of bulk that isn't used anymore. And to adapt for things that 
> we would like to add.
>
> Every time I try to discuss apis people get bored. So I have not much 
> faith in that the current community would end up with something better 
> and more elegant than what we have if we started from scratch. Neither 
> do I see that anyone would be prepared to spend the time and effort 
> that it would take.

This is IMO because doing this job afterwards is really boring. Making 
it a project rule means you have to consider it from the start.

> But please, suprise me.

I hope we will :-)

<snip/>
> It is so easy to ditch other peoples work, isn't it?

It's even easier to ditch your own code. I will happily trash thousands 
of lines I wrote for Cocoon. But they will not be lost, because I 
learned from them (and I hope others as well), and because this code 
will continue to live in a different way.

Sylvain

[1] 
http://www.eclipse.org/webtools/development/arch_and_design/pq-apis-20041115.ppt
[2] http://eclipse.org/eclipse/development/java-api-evolution.html

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


Mime
View raw message