[m-dev.] 0.13 release: op/3 syntax

Mark Brown mark at cs.mu.OZ.AU
Fri Mar 3 21:17:27 AEDT 2006


On 03-Mar-2006, Peter Schachte <schachte at csse.unimelb.edu.au> wrote:
> Sure, users can abuse operators.  But there are lots of language
> features that can be abused *cough* impurity *cough*; by itself that's
> not a sufficient reason to reject a feature.

I'm really glad you mentioned purity, as there are many aspects of the
Great Purity War which I'm reminded of in the current debate.

Yes, impurity can be abused, and this gave us reason for caution.  Yes,
we've accepted it into the language anyway.  And yes, it has proved to
have benefits that outweigh the disadvantages.  (*)

As I recall, the early part of the battle was getting over the negative
stigma of "impurity" and looking at things objectively.  As the debate
matured, however, we started to focus on what we thought was most important
(and what we still think is most important).  The issue wasn't whether
impurity was a useful or exressive feature, it was about the burden it
imposed on people *reading* Mercury code.

In the end, we accepted it in a modified form because the notion of
explicit purity reduced the burden on readers -- enough so that the
benefits were judged to outweigh the drawbacks.

And yes, we still get complaints from (some) people writing impure code
that they have to explicitly annotate impure calls and explicitly make a
promise at the boundary of the impure code.  (It's too verbose!  It makes
my code look ugly!!  It's unnecessary because the meaning of my code is
obvious!!!)  But we believe we've accomplished our goal, since we don't
get anywhere near as many complaints from people who have to read impure
code.

Getting back to the present debate: the concern for readers of Mercury code
is crucial and, despite it being raised on more than one occasion, is one
that I cannot see has been addressed by advocates of the new feature.

Cheers,
Mark.

(*) And yes, thank you Peter for pressing the purity issue all those
years ago.

--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list