Boost logo

Boost :

Subject: Re: [boost] [msm] Review
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2009-12-07 12:27:12


>eUML makes up *~75%* of Msm's code and ~30% of Msm's documentation; metrically,
>it's obviously an extremely significant part of Msm, and is probably what
>warranted a major version increment between Msm versions 1.2 and 2.0.

Correct. Although it is not the only reason, there is also a big
redesign with division in front- and back-ends and riddance of the

Adam Merz wrote:
>I could be way off here, but my impression from the Msm documentation
>is that the standard frontend exists mostly for backwards compatibility
>with 1.x code and to support older compilers, and that
> eUML is the recommended frontend for new FSMs on supported compilers

David Bergman wrote:
>That was not my impression. My impression was that the (old) standard interface
>was the canonical one, and eUML an "option" for developers.

MSM has no favorite interface, but a choice of interfaces which it
tries to support equally well. But it's true that eUML is my personal
favorite way and the source of a great amount of fun. I personally
thought (or say hoped) that it'd become the new way of writing state
machines, but I came into this review without an idea of how it would
be welcome. From what I saw for reactions until now, I'm pretty
confident eUML will meet this goal at some point.

>I would welcome eUML into Boost any day, from what I have seen (especially after playing with it this morning.)


>Do we really need a new underlying library for eUML, though? I am not sure of that.

You don't get a new library for eUML but eUML for a new library. It's
clearly not the same.

>And even if we do (for now), and cherish the much faster execution speeds of MSM
>(in my non-complex but pretty big state machine examples),

I don't get what is the problem. You get a backend with impressive
performance which was built with the goal to allow expressive,
declarative and concise front-ends with great UML support and lots of
work done under the hood which you can't even imagine. Without it,
there would be no interface and no eUML. Why not have it? I thought
that Boost was standing for state-of-the-art C++ coding and was happy
to get any great library coming, no matter which library is already
part of it. Don't we all agree on that?

>I would argue for an attempt at having eUML as an optional facade for both MSM and Statechart.

For this you'd need some important amount of change in Statechart, for
which I cannot do anything.
eUML being a representation of the underlying MSM philosophy, I doubt
that you will have it.
Let me get it straight. The biggest value of MSM is not the front-end,
not even eUML, no matter how cool it is. It is the back-end. Actually
it's the philosophy behind the back-end.


Boost list run by bdawes at, gregod at, cpdaniel at, john at