Matt Sergeant writes:
> > This assumes you need XML in the first place.
> 
> No, it does not. The rest of my post spoke about XML as a
> data format and set of tools, not as a syntax. Please stop
> thinking about XML as syntax!!

If my entire system is written in Perl, why do I need XML as a data
format?  Perl's data structures are richer and have much more support
in Perl than XML has in any language.  Perl has been around much
longer and is full-fledged programming language.  It has better
tools.  It's got a larger community.

> You seem to speak as someone who has never tried by the sounds of
> things. This is one of the things AxKit's XSP taglibs are designed
> to provide for.

I've never used XSP.  I have used XSLT, tried to use XSD, and am
currently mired in DocBook/XML.  One of my sites generates XML for its
data export format.

Let's take an XSP example from axkit.org:

    <xsp:structure>
            <xsp:include>Time::Object</xsp:include>
    </xsp:structure>

    <xsp:logic><![CDATA[
    sub mytime {
            my ($time) = @_;
            $time ||= time;
            return Time::Object->new($time);
    }
    ]]></xsp:logic>

Why is the above better than below?  (I cleaned up the perl :-)

    use Time::Object;
    sub mytime {
            my ($time) = @_;
            return Time::Object->new($time || time);
    }

Or, why can't I just call Time::Object->new where I need it?

When I first started working with DocBook/XML, I thought there were
all these great tools.  When I tried to install dblite, it took me two
hours and it still didn't work.  I had to install a particular version
of Java for the XSLT program.  Fortunately, Perl was already
installed, which dblite uses for glue.  The *.xslt files have to be
configured to be found by the XSLT program.  And on and on it went.

I said to myself, "Self, this is a trivial problem.  Let's see how
long it takes me to hack something in Perl."  Two hours later
I had a working DocBook/XML to HTML translator, which was good enough
for my needs.

Later I decided to make this into an example program.  This new
program processes about 50 different DocBook/XML tags and includes a
word counter for XML files.  It is 340 lines including comments and
POD.  Source: http://petshop.bivio.biz/src?s=Bivio::XML::DocBook

Compare this to dblite which has 5400 lines of XSLT in 6 files and
about 3000 lines of Perl to glue it all together.  This doesn't
include Sax or Xalan, which are the java programs you need to run
XSLT.

XML solves a problem through an indirection.  It's very similar to
CORBA IDL in that it is a language which is used as a least common
denominator between heterogeneous languages/systems.  This is a good
use for XML.  (BTW, if you look at the committees from the OMG and the
committees in the XML world, you'll see a surprising overlap.  I
wonder if they'll be successful this time.)

While every software problem can be solved through another layer of
indirection, every layer of indirection also creates a new software
problem.

Rob


Reply via email to