[mercury-users] Bertrand Meyer's opinion

Michel Vanden Bossche mvb at miscrit.be
Tue Aug 22 18:34:49 AEST 2000


In "Where is Software Headed? A Virtual Roundtable" (Computer, Vol. 28,
No. 8, August 1995), Betrand Meyer says:

> I do not see much future in the next few years for some approaches that
> were recently heralded as promising: functional programming, logic 
> programming, and expert systems (in their application to software). 
> Some of them will find, or have already found, a niche, and all will 
> remain useful as part of every software developer's bag of tricks, but 
> it is hard to see how any of them could fundamentally affect our field 
> over the next 10 years.

The good news is that there is some hope for Mercury after 2005 ;-) 

We do believe that there is a future for a software paradigm that will

1. favor correctness, reliability, evolvability and supportability
2. without compromising performance and scalability,
3. and with a very good integration with more traditional paradigms. 

Mercury is not too far from getting us there (but the journey is still
significant). We have evidence that we have already (1), although the
compilation time and the lack of IDE affect the productivity. Our
current COM integration has already demonstrated that (3) was feasible
without a too big burden in the NT world (but the COM-GC coupling
requires some adjustments, see the unscientific benchmark hereunder) and
the .Net development will improve that considerably (at least in the
.Net world ;-). 

For us, the most critical challenge is (2). In the short term, the
improvement of the GC is an issue but, again, .Net will solve that in
the "devil's" world.  A big issue is that scalability imposes
multi-threading support (this is investigated by Peter Ross). One of our
concern is that in our current PFlow server (a Petri Net engine for
workflow support) the "stack-size" is 40 MB. With HLC, the stack-size
had to be increased to 64 MB. This limits seriously the scalability
(this problem is related to the lack of elimination of trivial
non-terminal recursions). In the long term, we expect that a fundamental
solution will come from destructive updates, but this is still a key
challenge.

The MLDS compiler (HLC) has solved many issues (easier MT, easier
exceptions, much simpler run-time, etc.) and is a step in the right
direction.

And now, my key question. Besides what's being done or identified, what
can help invalidate Bertrand's prediction?

As a business betting on Mercury, we are interested by your comments.

Regards,

Michel

BENCHMARK - This is a simple program that parses a big XML file (8MB)
and count the number of
elements in it by recursively traversing the XML Object Tree (the idea
was to check the Mercury-COM interface using the MS XML parser). 

Here are the preliminary results (on a Dell PIII 733 MHz, 256 MB Rambus,
Windows 2000)

       Language	                      Elapsed Process Working	VMSize
                                       (sec)   (sec)  Set (KB)   (KB)

C# (COM Binding) .................... 15.156  14.453   33,872   30,848
VJ++ (COM Binding) ..................  4.175   4.171   18,616   16,604
Merc (NONE, COM Binding) ............  1.019   1.016   31,244   31,300
Merc (HLC, COM Binding) .............  0.850   0.848   25,056   25,484
Merc (NONE, COM Binding, NewComStd) .  0.697   0.696   31,124   29,952
Mercury (HLC, COM Binding, NewComStd)  0.530   0.527   24,120   22,812
VB (COM Binding) ....................  0.345   0.345   16,612   14,548
Delphi (COM Binding) ................  0.293   0.293   16,040   14,452
C++ (COM Binding) ...................  0.266   0.266   15,628   14,344

VB (.NET) ...........................  0.070   0.069   31,684   29,620
C# (.NET) ...........................  0.066   0.065   30,324   28,328
C++ (.NET) ..........................  0.065   0.065   26,952   24,988
Merc (.NET) .........................   TBD     TBD     TBD      TBD

NewComStd: Improvements done by Renaud Paquay for the COM-GC interface
TBD: To Be Done
--------------------------------------------------------------------------
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