This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Status of FOP


Hi, all, and best of the season

I want to shed some light on Apache XML FOP. My perspective is biased, but I'm
trying to take that into account.

First, FOP is not currently the fastest, the most optimizing, or the most
feature-complete XSL-FO processor. The members of this project have never
suggested that it is any of those, and in point of fact any major optimization
is not even a goal at the moment - completing features is.

We are on track, I believe, to having a reliable and spec-compliant (at least
basic conformance, and extended in areas) FO processor within some months after
the CR concludes. At that time we will version FOP as 1.0, and announce our
_first_ _production_ release. I stress the word _production_. We have never
suggested that FOP is currently not developmental.

There are a number of commercial XSL-FO processors available. In contrast to
the FOP project team, which more than most Apache XML projects consists
entirely of volunteers (I mean we all have real jobs), these processors are the
effort of a full-time crew working over an extended period.  There is no
comparison between the effort expended by such a FT team and the amount of time
that we can put in on FOP. For a number of XSL-FO situations I'd probably end
up using one of the commercial processors myself, at least right now.

I don't see these commercial efforts as competitors, and the reason I don't is
because they advertise themselves as "production" and we don't.

I'm stressing all this because I want to make it clear that for at least
another 3-4 months FOP is going to lack some features, and you shouldn't use it
for production. If you want the best environment, IMO, in which to assist with
volunteer, part-time, open-source development of XSL-FO, then FOP is your best
bet. If you want a shrink-wrapped production-ready FO processor, then FOP is
currently not it. Although it does handle a lot of situations nevertheless.

What's gotten me a little bit riled up is the use of FOP as a basis of
comparison for commercial implementations. I think this is unfair to the user
community. FOP is not pretending to be ready, and I take it a little bit amiss
when it's used as the standard of comparison by commercial software. I'm pretty
thick-skinned, but to be honest I'd like it if the commercial implementations
compare to each other, not to FOP. I know it adds lustre to the product
marketing when you can say "our product X kicks Apache XML FOP's ass", but
this is not a proper comparison at the present. When FOP announces a production
release, then compare to FOP and let the fur fly. :-)

Whew! I feel better anyway...that's been building up for a while, particularly
after working all this year with a _small_, _devoted_ and _part-time_ developer
community. The other point to be made, too, and this is big, is this - Apache
XML projects aren't, despite some appearances, all about getting this software
or that software out on the shelf. They are also about promoting open-source
development that is transparent to all observers and participants, fostering
participation, being effectively guided by requirements voiced in the user
community, and not being hijacked by any interests. I believe strongly that FOP
has been very good in this regard. Producing FOP 1.0 is not our only goal...

I hope this clarifies the status of FOP, and how I hope it is perceived,
without ruffling too many feathers. I hasten to add that this is not a rant
against commercial implementations - I'm glad they are around. I'm just not
completely happy with the evolving perception of FOP as the standard to
compare to...please wait a few months. That's all I ask. :-)

Again, best of the season.
Regards,
Arved Sandstrom


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]