[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
idea.
>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
>
>--
>Ralph Becket | MSR Cambridge | rbeck at microsoft.com
>
--david.
--------------------------------------------------------------------------
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