Side effects and large-scale conversion

Subject: Side effects and large-scale conversion
From: Sam Hunting <sgmlsh@xxxxxxx>
Date: Tue, 23 Sep 1997 10:27:19 -0400 (EDT)
Consider the following quotation:

<extract source=anonymous>
This sounds like the whole "no-side-effect" religion embraced by DSSSL
that makes it nearly useless to me in a large conversion project. For
large sets of conversion operations which are linearly tied by complex
dependencies, and for other practical software engineering needs, side
effects are necessary. As with goto's, any mechanism can be abused, but
that doesn't mean we should never use them (heck, all C++ exceptions
are just glorified goto's). A recursive decent scoped model for software
engineering is certainly the way to go, *BUT* too many people equate this 
with no side effects allowed.
</extract>

My programming expertise is insufficient to judge the validity of the
statement above.

Has anyone ever used DSSSL for large-scale conversion (1000s of pages) --
doubtful -- and if so, did the prohibition of side effects get in the way? 
Why or why not?

Why was the "no side effects" design decision made? Do I misunderstand
that such a decision was made? If it has been made, is it a significant
bar to doing "real programming" with DSSSL? 

Or is it that DSSSL is solely for specification, and the programming is
done elsewhere? 

(After all, if one thinks of a specification as a contract, clearly
contracts don't have side effects -- things not specified in the contract
-- because otherwise the parties signing the contract wouldn't be acting
with equivalent knowledge.) 

If so, where does one draw the line, especially given that DSSSL is
extensible? 

Signed, 

Puzzled

(Sam Hunting)


 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread