Thanks Craig, for your detailed response--I had to
read it twice to fully absorb it!  From the
perspective of my concerns, you clearly found my
cynicism unwarranted (to say the least).  FWIW, my -1
is now a +1.

Also, it is evident that many of my remarks on BEA and
its XMLBeans product were painfully classless and
fourth-rate--for those who are or were affiliated with
XMLBeans--please excuse my comments, they weren't
justified given both what I knew and now know about
the product.

<red face/> With tail well between my legs, I'm now
going to run back to the FOP project...  

Glen (who promises to submit a patch to Apache-XML
Beans as penance ;)


Forwarding, Craig McClanahan wrote:
---------------------------------------------------

Glen (and others -- presumably someone will moderate
this on to [EMAIL PROTECTED] for me),

Thanks for the vote of confidence in my opinions :-). 
Although, I have to confess I'm by no means an expert
in XML technologies, I'm fair-to-middlen
at Java code, and I'm definitely a customer of XML
technologies of various types (most heavily focused on
reading configuration files in things like
Tomcat and Struts, less so on rendering XML output).

My comments will be mostly philosophical in nature,
because I have not done any large scale investigation
of XmlBeans as a technology; I've just played with the
examples and thought about how it could be used.  It's
pretty intruiging, and I'll comment on that -- but I'd
also like to throw a couple of comments in on the
decision process of how we at Apache accept
projects, and why we might want to or not want to
accept it, or any other project.  As such, I'm
speaking in my "member of the Apache Software
Foundation" and "member of the Jakarta PMC" hats.

On Tue, 15 Jul 2003, Glen Mazza wrote:

> Date: Tue, 15 Jul 2003 11:14:50 -0700 (PDT)
> From: Glen Mazza <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED], [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: Re: [Fwd: Closure of XMLBeans vote]
>
> Berin,
>
> Sorry, I didn't know that committers--instead of
only
> the PMC--are able to vote on accepting XMLBeans.  (I
> have not subscribed to xml-apache-general until
> today!)  Let's extend voting a week or two longer,
to
> get votes from at least 30 or so committers.
>
> Offhand, I had some concerns about this technology
> which I gave to my FOP team:
>
http://marc.theaimsgroup.com/?l=fop-dev&m=105784381703729&w=2.
>  Hence, my vote is -1.

Quite frankly, I hope you have more backing up a -1
one vote than the three opinions you've expressed
here:

- "looks like a failed technology ..."

- "BEA appears to want to avoid a block eye ..."

- "XmlBeans are dead ..."

without any corroborating evidence.  It's fine to have
opinions about whether a technology is successful or
not, and I'm always amused when people try to ascribe
single-minded motivations to large organizations 
(in my case, anyone who tells you that "Sun thinks
this" or "Sun is doing that" doesn't understand that
40,000 employees don't have a single unified
view on ANYTHING :-).  But where's the beef?

But, even if your presumptions about BEA's motivations
were accurate (and I certainly don't get that
impression from what I've seen so far), is that
relevant to a decision on whether Apache should accept
this technology?  Personally, I don't think so --
what's important to me is that we be willing to host
projects of "interesting" software that can attract a
community of developers.  Beyond interesting to
developers, I also believe that Apache software should
be interesting to users.  (The thing that makes me the
most proud about Struts, for example, is the user
community, not the quality of the code, which is high,
or even the really great group of committers that have
come together to make it so.)

The more important issues you raise, though, are
really the two things that you mention in the middle
paragraph:

* The implied presumption that "XML and XSLT are too
difficult to use and must be masked."  (As a consumer
of XML technologies, I must admit that I agree with
this premise.)

* The idea that different approaches to dealing with
these technologies "may not be compatible with what
XML-Apache is trying to accomplish."

I'm kind of an odd duck -- I actually "get it" how SAX
parsing works, and the kind of power that it can bring
you, and enjoy writing code that works that way (along
with JSP 1.x custom tags, that have the same sort of
design, and even XSLT stylesheets, which I suspect
tends to attract the same sort of mindset :-).  But
trying to explain the inverted control flow
to most Java developers I'm familiar with quickly
causes them to go cross-eyed, and they flee towards
using DOM simply because they can understand it (no
matter how clunky the W3C DOM API is to use).

Therefore, one of the first things we did in Tomcat
land was hide this complexity for the most important
use case where we needed XML -- processing server.xml
and web.xml files in Tomcat.  The initial code was 
called XmlMapper, and it got morphed into the
"digester" utility class in Struts 1.0 when I had the
same need.  Later, it became obvious that this
need was general, and the code was abstracted out into

commons-digester, which tends to be a popular download
from Jakarta for simple use cases of converting XML
data into Java objects.  It was adopted by Tomcat in 
4.1.

Digester was also one of the inspirations for
commons-betwixt, which does the opposite direction
(Java objects -> XML data), again for relatively
simple use cases.

These libraries are popular, because they are easier
to understand than the underlying XML APIs that Java
exposes through JAXP (i.e. SAX and DOM).
Indeed, the profusion of other innovation around basic
XML processing APIs leads me to believe that it's not
just the Java community that is looking
for things a little easier to use :-).  But using them
comes with a penalty -- you have to hand create the
corresponding bean classes.  

That can be a positive (you may not actually care
about all the content in the document, and this is
particularly true when reading configuration files).
But it can be tedious -- and I've seen quite a few
attempts at doing this kind of class generation
dynamically.  Obviously, someone else seems to
think there is a real need here too.

The second issue (conflict with other projects) speaks
more to the Apache community's purposes of providing
high quality software with active developer
communities.  At least over in Jakarta (which, after
all, now hosts three high quality web application
frameworks:  Struts, Tapestry, and Turbine), we have
not considered alternate solutions in the same
problem space to be a fatal flaw.  You'll see the same
philosophy present in Jakarta Commons -- there isn't
always "one right answer" to every single problem. 
Yes, groups are encouraged to work together instead of
separately (and all three of these frameworks are
already sharing fundamental pieces like the file
upload package from Commons).  In the case of
XmlBeans, how you guys finally want to organize things
(i.e. whether it gets absorbed into some existing
xml.apache.org project that expands scope, or whether
it stays separate) doesn't matter -- whether the
technology itself is compelling and useful, AND can
attract an Apache style developer community, is more
important IMHO.

As I said, though, I'm not all that familiar with the
feelings toward community and internal competition on
the XML side of the house.  I probably should be, so
this exercise is useful to me as a learning experience
in addition to whatever advice I can offer on the
particular subject at hand.

>
> I'm somewhat troubled by the voting options (listed
> below):  There should be an -1 option to refuse
> XMLBeans into XML-Apache, period, without further
> comment; similar to what already exists for +1.  The
> requirement to "address reservations [in order to 
> make XMLBeans acceptable for inclusion into
XML-Apache]" in
> order to vote a -1 is odd. One should not need to to
> write a white paper on how to redeem XMLBeans in
order
> to (paradoxically) reject them!
>
> [  ]  I agree with and support this proposal (+1)
> [  ]  Indifference (-1 < x < +1)
> [  ]  I object and suggest a way to address my
> reservations (-1)
>
> -1 should be changed to: I reject adding the
XMLBeans
> project to XML-Apache.
>
> This will give a voice to those committers who
> perceive that XML-Apache picking up XMLBeans would
be
> like General Motors deciding to resume the Edsel
after
> Ford determined it to be a failure.  For those who
> feel XMLBeans to be dead weight, a distraction that
> XML-Apache doesn't need.
>

Again speaking from my experience in various Jakarta
projects, we typically offer four choices on votes,
rather than three:

  [ ] +1 -- I agree with the proposal and will support
it (i.e. actively participate in making it happen).

  [ ] +0 -- I agree with the proposal, but can't
really
            devote any reasons to supporting it.

  [ ] -0 -- I don't agree with the proposal, but I'm
OK
            if the other voters want it.

  [ ] -1 -- I am against this proposal and here is why
            (and you must provide valid reasons).

This seems to give Jakarta folks an appropriate range
of expression to get their point across, and
implicitly commits those who vote +1 to put their time
where their keystrokes are, and really help.  Per the
voting guidelines, a -1 is a veto on "consensus only"
votes (such as accepting a new committer), but it's
just a "no" on majority rules votes (+0 and -0
are both considered abstentions when votes are
counted).

The requirement for *valid* reasons grew out of some
painful experiences on a variety of lists, but is
there mainly to avoid someone being able to
throw a monkey wrench in the works solely to be a
jerk, rather than having valid technical concerns. 
That doesn't mean there will never be an argument over
whether a particular concern is "valid" or not (and
there have been some doozies over the years :-), but
it does behoove the person voting -1 to justify their
position.  Of course, that's the only way he or
she would be able to influence the other voters
anyway, but spurious -1 votes with no justification
aren't counted.

Different Jakarta subprojects might apply different
standards to what "valid" means, but the ones I'm
familiar with generally focus on technical
issues, and facts, rather than suppositions and
emotions.  At least that is what we strive for :-).

> But to satisfy the current requirement for voting
-1,
> here is one way to address my concerns:  Can we get
> Craig McClanahan's opinion of this technology--he
> basically leads Jakarta Tomcat and Struts and is 
> quite "high up" at Sun.  He has zero affiliation, 
> AFAIK,
> with BEA.  I have great respect for his integrity
and
> opinion--and if he endorses this technology, that's
> good enough for me!  OTOH, if he feels XMLBeans to
be
> "not the best", not something worth investing our
time
> on, I would continue to recommend XML-Apache passing
> on this technology (i.e., -1).
>

OK, here's the deal.

* No, I don't have any affiliation with BEA (so my
boss at Sun   can stop worrying :-), although I do
talk to Cliff and several other of the folks that have
been involved in XmlBeans on a variety of topics (such
as the web app framework that BEA chose to utilize
when the implemented page flow support into WebLogic
Workshop this time around :-).

* I don't know enough about XML processing to
"endorse" this, or any other technology, as the
"best".  Indeed, you can count me as a skeptic on
whether there IS such a thing as a best technology for
mapping between XML data and an object oriented API
that covers every use case.  I'm not even sure I
believe that it is technicallly feasible to cover 100%
of the possible  mappings.  But a tool that meets a
large percentage of the use cases can still be
incredibly valuable.

* I do find the XmlBeans approach to be interesting,
and it appeals to my O-O mindset, coupled with a
desire to make Java technologies in general easier for
developers to use.  It's pretty clear from the number
of different approaches that are around (even just for
Java bindings) that a lot of other people find the low
level technologies too difficult to understand and use
-- else why would we be seeing so many different
approaches to fundamental things like a DOM API?

* I don't doubt that there are alternative approaches
already in existence, both at xml.apache.org and
jakarta.apache.org.  I would encourage you NOT to
consider that an automatic reason to vote against. 
Diversity, cross-fertililzation of ideas, and (yes)
even a degree of "competition" can lead to better
projects.  So can collaboration in an expanded project
that might grow to a larger scope than it currently
occupies, if that makes sense (that's for you guys to
decide as part of the incubation process, if XmlBeans
is accepted).

* In earlier discussions (at least the ones I saw on
the Jakarta General and community lists), there were
concerns about licensing and the relative number of
committers from BEA versus other organizations.  Those
sound like they are either resolved or will have the
opportunity to be resolved in the incubator.

* My only concern about XmlBeans, quite frankly, is
one that you did not raise directly -- in the Java
space there is a standard API for binding XML to Java
objects (JAXB), and XmlBeans is not an implementation
of that standard.  That's not necessarily a fatal flaw
(after all, my favorite webapp framework is not a
standard either, although it is being impacted by the
ones I deal with in my "day job" -- Servlet, JSP,
JSTL, and JavaServer Faces), but it is a consideration
to think about.  Indeed, considering some of the loud
voices at Apache, and their opinions on Java standards
and the JCP, this might well be a positive :-).  But
it should be factored in to thinking about the effort
that will be acquired to attract and maintain a
developer community, and a user community, should
XmlBeans be accepted.  The XML community already has
examples of both communities that implement standard
APIs, and those who are innovating on their own.

> Thanks,
> Glen Mazza
> FOP Team
>

Craig McClanahan


__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

---------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to