Lambda the Ultimate

inactiveTopic Eric Gunnerson on language design at Microsoft (well, sort of)
started 1/13/2004; 7:42:13 AM - last post 1/16/2004; 12:26:22 PM
Ehud Lamm - Eric Gunnerson on language design at Microsoft (well, sort of)  blueArrow
1/13/2004; 7:42:13 AM (reads: 15501, responses: 9)
Eric Gunnerson on language design at Microsoft (well, sort of)
When I switched over the C# compiler team, I had hoped that I would be able to give some insight into how the design team works, what decisions we make, etc. Language design is a very esoteric field, and there's not a lot written about it (though "Design and evolution of C++" is a pretty good read). I had hoped that I would be able to do this with concrete examples, as that makes it much easier...

In lieu of such an example, I've decided to write something a bit more abstract about how we look at things.

And you were critical of Stroustrup's design philosophy...

Feel free to rant, but remember that sometimes it is better to try to offer constructive criticism. Maybe this is such a case.

Now if only Erik could comment on this item... (It would seem that he is having such a good time in Venice he never logs on )


Posted to general by Ehud Lamm on 1/13/04; 7:45:36 AM

Noel Welsh - Re: Eric Gunnerson on language design at Microsoft (well, so  blueArrow
1/13/2004; 8:25:43 AM (reads: 972, responses: 1)
I think its a fair design philosophy given the constraints they have. C# was always going to be a variation on Java so the question for the design team is which wrinkles to add and which to smooth out. If they'd added first class functions and pattern matching they'd probably be out of a job!

Rayiner Hashem - Re: Eric Gunnerson on language design at Microsoft (well, sort of)  blueArrow
1/13/2004; 10:17:22 PM (reads: 787, responses: 0)
In response to Noel Welsh's comment:

In addition to generics, C# 2.0 will support lambdas and coroutines. These lambdas are not just in-line function definitions, but true lambdas with closures. Microsoft research also has an interesting project called Polyphonic C#, which is a concurrent C# based on join calculus.

Ehud Lamm - Re: Eric Gunnerson on language design at Microsoft (well, so  blueArrow
1/14/2004; 5:24:00 AM (reads: 704, responses: 0)
I think you are being a little harsh.

But this does raise an intersting question. Is evolutionary language design (c -> c++, c++ -> java, etc). easier then starting from scratch? I don't think so. Famous quotes come to mind.

Isaac Gouy - Re: Eric Gunnerson on language design at Microsoft (well, sort of)  blueArrow
1/14/2004; 8:33:37 AM (reads: 647, responses: 1)
Is evolutionary language design... easier then starting from scratch?
Surely the motivation is that apparent familiarity will make the new language more palatable to users of the existing language?

Ehud Lamm - Re: Eric Gunnerson on language design at Microsoft (well, sort of)  blueArrow
1/14/2004; 9:19:27 AM (reads: 646, responses: 0)
Sure. But you do want to make some changes, and maintaining a balance can be difficult.

Isaac Gouy - Re: Eric Gunnerson on language design at Microsoft (well, sort of)  blueArrow
1/14/2004; 10:34:22 AM (reads: 616, responses: 1)
So let's turn your question around- is it possible to really start from scratch (free from the cobwebs left by other programming languages). I'm still surprised by recognition when I look at Algol60 and BCPL manuals.

Ehud Lamm - Re: Eric Gunnerson on language design at Microsoft (well, sort of)  blueArrow
1/14/2004; 11:00:54 AM (reads: 615, responses: 0)
OK. As long as you acknowledge that that's an entirely different issue.

Isaac Gouy - Re: Eric Gunnerson on language design at Microsoft (well, sort of)  blueArrow
1/14/2004; 1:39:10 PM (reads: 572, responses: 0)
It's a different issue.

it's really hard to remove complexity when you take a subtractive approach, as removing a feature in one area may not allow you to revisit low-level design decisions, nor will it allow you to remove complexity elsewhere, in places where it support the now-removed feature.

So what examples are there of a subtractive approach being hard?

Oberon seems to a large extent to be Modula-2 with some features subtracted (and some added).

Olivier Lefevre - Re: Eric Gunnerson on language design at Microsoft (well, sort of)  blueArrow
1/16/2004; 12:26:22 PM (reads: 313, responses: 0)
Surely the motivation is that apparent familiarity will make the new language more palatable to users of the existing language?

In practice that's more a matter of syntax than semantics, I believe. Look at Java.