Simon Pepping wrote:
> 2. modularize FOP's design
> > I do understand why you have decided to start FOray. Although
> > modularisation is a nice feature, I dont see it as a key
> goal for FOP.
> > FOP's primary objective is to achieve a working layout. The main
> > things needed to achieve this are listed here:
> > http://xml.apache.org/fop/design/layout.html#status
> I sympathize with this goal as well. I realize that that is
> not quite in line with my reaction to Glen's recent patch. I
> agree with Chris and Glen that it is not currently a key goal
> for FOP. And since we do not have a strong proponent and
> architect of a modular design, there is little point in
> leaving bits and pieces in the code. But in the longer run, I
> consider putting the FOP code in a modular structure as a
> desirable thing.
If you guys are as close to having LayoutManager working as has been stated
in this thread (and I hope you are), then I agree that modularization would
not be the top priority. It is not an end in itself, but a means to an end.
When FOP was internally forked 2 1/2 years ago, the only thing that needed
to be rewritten from scratch was layout, but the whole project was forked
instead. Modularization would have prevented that, and allowed releases to
continue even though a chasm was being created and filled simultaneously.
The whole nature of refactoring anything is that you do it before you do the
real work. That is where FOray starts.
The real question on modularity was never whether it should be a priority,
but whether it hurt the project. On open-source projects, priorities are
really set by each individual. You fix the thing that hurts the most at the
moment, and that might be different for each developer. If I am working on
A, and you are working on B, as long as your work on B isn't bad for the
project as a whole, I have no right to complain. Nobody has yet put forth a
good argument against modularization, but it was opposed anyway. So now
we'll have a chance to test it in the real world.
Consider this -- what if the XSL spec hadn't been split into two pieces?
Would the part that we call Xalan today have its development stalled because
layout is stalled? If XSL-T and XSL-FO were all in one spec, would we be
smart enough to break the implementation into the two projects that it is in
today? All we are really talking about here is the principle of
encapsulation writ large.