[mercury-users] Mercury as a 1st class prototyping language ?

david wallin david at wallin.cx
Thu Oct 26 04:45:45 AEDT 2000

>Mercury was designed from the outset to support programming in the
>large - that is, large projects written by several programmers.
>To that end, Mercury is safety orientated in the sense that it
>doesn't allow you to cut corners and does require you to declare
>things that many other languages don't.  As you say, while it takes
>time to get something through the compiler, you often find that
>your program works just as intended and you don't need to go through
>a debugging phase.

Depending on how many "several programmers" are, that narrows down 
the potential audience of Mercury quite a bit. I would argue that it 
will be increasingly important for projects to go from idea to 
proof-of-concept to product fast. My belief is that most projects 
will start with a small team of programmers that will grow if the 
product has potential. When the team size grows, switching from a 
prototyping language to mercury will probably not seem like a good 

>Prototyping languages have an almost complementary set of design
>goals: they are not intended for large projects, they generally
>don't expect projects to be written by multiple programmers (other
>than library modules), they are usually dynamically typed (no need
>to write type declarations etc.) and so forth.
>You can get Mercury to infer type and mode declarations for you,
>but it really isn't a prototyping language.
>Personally, I think it's a bad idea to try to combine the two
>sets of design goals in one language: the forgiving nature of the
>prototyping flavour of such a language would inevitably lead to
>programmers cutting corners in places where a stricter language,
>such as Mercury, would not allow.

Still, switching from a prototyping language to Mercury is probably harder
and less desirable than adding type and mode declarations etc to existing code.

Programmers will probably always try to cut corners (isn't that the 
definition :-) If Mercury was a prototyping language _and_ a strict 
language, programmers would probably go from cutting corners in the 
beginning to writing better code in the end. I think the quality of 
the code might actually improve because it encourages experimentation.

I don't have anything against a strict language, but I sometimes feel 
that it gets in the way of the creative process that programming is.

>Ralph Becket      |      MSR Cambridge      |      rbeck at microsoft.com


mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe

More information about the users mailing list