XProc Usability (was Re: New to Xproc Question : conditionnal "output port" definition?)

On Oct 12, 2011, at 6:59 AM, Norman Walsh wrote:
> This is one of the inconvenient corners in XProc.

Yeah.  I’m finding it has more and more inconvenient corners over time.  

I mean, I love what XProc can *do*…and, when I first read about it, the concepts seemed sensible and elegant.  



<opinion feedback="wanted" feedback-types="flames comments questions suggestions misc">

But the more I use it, the more I find that the price I pay for the power granted by XProc is a high one.  And I’m not convinced it needs to be this way.  

The barrier of entry to XProc newcomers is needlessly high.  I think of it sort of like W3C’s XSD spec: it’s capable of achieving powerful goals—but it bends over backwards so much to accommodate implementors that the end users spend all their time trying to learn all the “inconvenient corners” of XProc instead of making progress on their projects.  

XProc was invented to fill a sorely-needed role for macroscopic XML processing—but just getting it to work is an obstacle that has often cost me more time than I would have spent using simpler tools.  But I tried to force myself through it anyway, because I wanted to stick to as many official XML tools as possible.  

*deep breath*

Going back to my earlier comparison: if XProc is like XSD, then tools like XMLSH are like Relax-NG.  Both XMLSH and RNG (or RNC) solve the same goals as W3C specs, and they both do it with a very significantly lower learning curve.  

With that lower barrier of entry, Relax-NG (especially Relax-NG Compact) has become the dominant schema language of choice.  Even Norm uses it for DocBook 5.  (Well, I don’t know if Norm is the only one working on the schema.  But you get the idea.)

XMLSH is less “polished” than Relax-NG, but it’s based on a thoroughly time-tested philosophy.  Like XProc, it fills real-world needs for XML developers; but like Relax-NG, it delivers about the same power to its users in a much easier-to-use package.  

(It’s good enough that if I knew Java well enough, I’d spend all my free time improving it until it achieved enough growth to steadily continue on its own intertia.  But alas, I am limited to working on the documentation.)


<aside>
And if you consider Relax-NG Compact, XMLSH also pulls this off using a non-XML syntax.  And come to think of it, XPath is a non-XML syntax.  

Curious.  

I don’t know what to make of this.  …On the other hand, I have never written any script that generates XProc or XSL for me.  (I wish I were that good!  I envy devs that can do this.)  

What are the pros and cons of designing a language to work with XML using an XML syntax vs. a non-XML syntax?  
</aside>



Of course, there is the XProcVNext page on the XProc wiki.  There’s some very good ideas there.  Has anyone else looked at it recently?  

No?  Now’s a good time to start! ☺ 

Is there any official work (as in W3C) on improving XProc at the moment?

</opinion>


Interested in people’s thoughts.  What do you think?


—Tony

Received on Wednesday, 12 October 2011 13:41:59 UTC