[IronPython] Pondering Monad/MSH and IronPython

Ken Manheimer ken.manheimer at gmail.com
Mon Jul 25 13:58:26 PDT 2005

On 7/25/05, Keith J. Farmer <kfarmer at thuban.org> wrote:

> [...]
> In the Unix world, tradition has us parsing stdin and sending stuff to
> stdout (an attempt to be lenient) whereas MSH abandons the custom parsing
> in favor of streams of objects (an attempt to be precise).  Formatting
> and parsing happen only when absolutely necessary, such as when you write
> a parser to convert the lines in a file into objects (leniently creating
> precision), or at the end of execution, when you can optionally specify
> that the output is to be a list, or a table, or some other format you
> create a definition for such as an Email Format.  I think this pipeline
> is fairly key to MSH's identity.

i haven't yet seen the language, but the sound of it is quite exciting.

> MSH is fairly much a shell/language bundle, where Python is a language
> with an external shell to it.  As Python is often seen as the glue
> between platform modules, I think you could see MSH as the glue between
> scripts.
> You *could* make a new shell that used Python as a base language, and
> introduced the pipeline syntax; I think it'd be interesting to see
> someone make a generic shell that could take a plug-in compiler.  In any
> case, you will be able to extend MSH with functions you create in
> IronPython, once (I think) IronPython has attributes and static
> compilation available.  If you do so, I think you'll make make Mono users
> very happy.

i seem to recall someone who used overloading on bitwise-or to provide
pipeline-style activity in expressions.  yeah - there it is -
http://lbss.math.msu.su/~krikun/PipeSyntaxModule .

far from ideal, however - you have to define an __ror__ special method
for each class you want to use on a pipeline.  as an enthusiastic sh
scripter, and with the addition of generator expressions, it's
enticing to think about heading down this path.  but ultimately i
think it may be too much of a stretch - sees like there's a
fundamental impedence mismatch between the way you want to connect
things together in a command shell and the way you connect things
together in a procedural language.

then again, it might have seemed that way in general until someone
came up with the filter/pipelines model, eg in bourne shell...

> The MSH Wiki is here.. there's some documentation to be found here, as
> well as in the team blogs.  I'd definitely recommend the latter,
> particularly http://www.proudlyserving.com/, which has a 5-part series on
> Monad and RSS starting 25 June, which touches on many of the bits.

thanks for the leads!

> Of course, these are my views.  I'm no language-design expert. ;)

me, too.-)

Ken Manheimer

More information about the users-ironpython.com mailing list