Microsoft's C# (Sharp) & .NET -- A Heads Up

Alex Martelli alex at magenta.com
Thu Jul 27 03:46:56 EDT 2000


"Mark Hammond" <MarkH at ActiveState.com> wrote in message
news:SWPf5.13166$4p3.102561 at news-server.bigpond.net.au...
> "Moshe Zadka" <moshez at math.huji.ac.il> wrote in message
> news:Pine.GSO.4.10.10007270810400.2823-100000 at sundial...
> > On Thu, 27 Jul 2000, Mark Hammond wrote:
> >
> > Hmmm...this sounds positively interesting. Do you know if there is
> similar
> > support for continuations? IOW, can Scheme be supported on IL?
>
> AFAIK, continuations are currently being fudged, but MS have promised to
> add more stuff like this after release.  Unfortunately, "after release" is
> still some time off.  For all of my MS praise in the last mail, it should
> be obvious thay are still a commercial company with a tight deadline.

I suspect their numerous stockholders would be pretty unhappy if either
of these attributes were lacking:-).


> They have said a number of times "if you can work around it, do" -

Commendably pragmatic, or blamefully unprincipled, depending on
how one chooses to look at it (I'll admit to a pragmatism bias, only
moderated by a realization of how often such workarounds end up as
short-sighted kludges leading to worse problems in the future...).


> tail-recursion turned out to be an issue that was extremely difficult to
> fudge, so support was added pre-beta.  Continuations are simpler to fudge,
> so explicit support was pushed back.

Interesting!  If I had to guess, I'd have guessed the other way 'round,
which, I suppose, just shows you how much I know about IL and code
generation for advanced/dynamic language features (==not much).

Doesn't tail-recursion just basically map down to 'rebind args&locals
suitably, then jump to the entry point', rather independent of the cross
module communication issues that IL addresses?  Or are we talking
about mutual-tail-recursion or something even more refined?  Just
for my own edification and curiosity-sating (if the Scheme compiler
you mention later is open-source, I guess I should get down to studying
how it does things, but I don't yet know of any open-source IL generating
compiler -- nor of publically available detailed preliminary specs for
NWGS/IL/whatever runtimes, etc, etc [hint, hint:-)]).


> I know of at least one (fairly) complete and fast scheme implementation.
>
> > That's sad -- JPython, CPython and Python .NET should feel the *same*.
> > That's why we have a standard (the Python Language Reference Manual).
> > I truly hope JPython and Python .NET (is that the official name)
>
> No idea what the official name is!  Python .NET seems to make sense at
> this stage.

On the ActiveState site, Python .NET _is_ used as just such an official
name (in fact, it sort of seems to be just about the only well-established
aspect of the project, judging from the dearth of info at the site:-).


> > will be similar enough to CPython that Python code will work across them
> > seamlessly.
>
> I agree.  Although there is a dilemma here - sometime you _must_ make a
> choice between the language semantics versus the platform semantics.  ie,
> it would be just as much of a shame if JPython and/or Python .NET didnt
> support enough platform semantics to make it a viable language on that
> platform, thereby keeping it stuck in an "interesting, but not useful"
flux.

A dilemma I don't envy you.  Striking a balance between "faithful
compatibility
with the old" and "exploiting new platform possibilities" is, of all
excruciating
design decisions, the least enjoyable kind, in my experience:-(.


> I dont believe this needs to be a real problem.  When implementing a new
> version of Python, you will be amazed at how much _isnt_ spelt out.
> Fortunately, the implementation is clean and available, meaning the
> existing C code is usually a better reference than the docs!  Im fairly

No Extreme Programmer will be surprised in the least at this state
of things:-).  "The code IS the docs", etc.  Actually, Brooks' observations
about architectural documents in "The Mythical Man-Month" are worth
periodically re-reading (as is the rest of the book:-).  Maybe a huge test
suite proclaiming 'you're Python iff you pass this test suite' would be the
only way to keep consistence now that we're heading towards _many_
implementations in widespread use (CPython, JPython, Python .NET --
dunno what happened to Skaller's project [Viper, was it called?] -- and
no doubt other hopefuls in the wings...).

> confident I can support all documented semantics, and plenty of
> undocumented ones.

We're all here, with fingers crossed, rooting for you on this...!!!


Alex






More information about the Python-list mailing list