Simon Pepping wrote:>
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.
That decision 2.5 years ago has cost FOP dearly. It is also much easier to see in hindsight. Given where FOP is today, I just want to see the last 5 issues fixed/implemented and we can do a release and get FOP back on track.
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.
I dont recall modularizarion being opposed. It was more a case of Joerg saying it would be a challenge and no one else stepping up to support your proposals. From my point of view this was mainly due to me thinking FOPs priority is to get the last few bits of layout done so a release is possible. I'm certainly not against modularization, I think it would be beneficial, but would prefer to see effort going into finishing layout at this time. Once weve done an initial release from the development code, then modularization will be a more attractive proposal.
Generally you are right in what you say that priorities are down to individuals. But given the situation FOP is currently in, I hope most people can see why I think No.1 priority is to finish layout.
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.
Modularization is in general a good idea, I just think its not the right time to be doing this within FOP. Perhaps modularization should have been done 2.5 years ago before branching the project.