Re: From CSS to DSSSL

>   (define (expt b n)
>     (if (= n 0)
>         1
>         (* b (expt b (- n 1)))))

But when's the last time you wrote a function for exponentiation in a

I agree with you that DSSSL has hard parts. But since nobody has to
learn it all (except James Clark) it isn't really fair to say that it is
difficult without saying what level of problem you are discussing. 

> | I have not yet seen anything that is easy to do in CSS that is hard to
> | do in DSSSL except things that depend on the implied "built-in" HTML
> | stylesheet.
> Well, that's a lot of things.  Have you seen the code that Anders
> Berglund wrote to handle CALS tables in the DocBook DSSSL stylesheet?

But if you use the fact that CALS tables were difficult as proof that
DSSSL is difficult then you have also proved that TCL is difficult
because doing CALS tables in TCL would be a pain too!

I don't see what's so hard about DSSSL tables:

(element table 
    (make table))

(element tr
    (make table-row))

(element td
    (make table-cell))

That table code works -- I just wrote it for this email and tested it.
Sure, I could add little things like a caption (one line of code)
borders (one line) etc. etc. And once I had added 100 little options to
make it the most beautiful table in the world, it might look a little
bit imposing -- but still not difficult.

On the other hand, if I tried to make it the most *flexible* table code
in the world, taking tables with 100 different attributes and cells and
guessing what to do with them, *that's* when the code would get hairy.
But that's still not DSSSL's difficulty, that's the difficulty of the
problem. Just figuring out what the browsers do with tables could take
you a full day, much less coding something like it.

> What
> I'm saying is that as things stand right now, in the absence of DSSSL
> stylesheet editors, DSSSL is a language primarily aimed at experts who
> need to solve hard problems.  

I don't see why it should be. If a typical user can create a perfectly
good table with the code above, why should we exclude anyone who is at
least smart enough to learn CSS? I think it would be a big mistake to
relegate DSSSL to the realm of hairy tools because it can be used to do
hairy things. It is a rare product that scales beautifully and we should
be celebrating this characterstic of DSSSL rather than down-playing it.

 Paul Prescod

Follow-Ups: References: