Lambda the Ultimate

inactiveTopic Transparent Language Implementation and Design
started 12/3/2003; 12:03:26 PM - last post 12/4/2003; 7:58:28 AM
Brent Fulgham - Transparent Language Implementation and Design  blueArrow
12/3/2003; 12:03:26 PM (reads: 9270, responses: 5)
Transparent Language Implementation and Design
I ran across an interesting comp.lang.scheme discussion on numerical processing in Scheme implementations. This dovetails with Ehud's C++ posting, in which he discussed how blogging by language designers gives us a view into the workings of language design.

In this usenet post about MzScheme's numerical shortcomings (and Matthew Flatt's response) we can see useful technology transfer between Gambit and MzScheme.

This is the kind of thing I would expect from Open Source projects, but have rarely seen in practice. I often see cases where one project will crib code from another, but I don't often see active discussions between "competing" implementations about why one is better at X than another. Open Source langauge projects should ideally provide cross-pollenation that allows the sum to be greater than the parts. This does happen to some extent, but all to often we see a balkanization of projects in which there are no open dialogs between development camps, and the only information exchange occurs when someone peeks into someone else's CVS tree.

I wonder which approach is more successful? Free exchange of ideas in the electronic beatnik cafe of USENET, or miserly code hoarding resulting in an "arms race" as two implementations seek to outdo the other? I guess the MzScheme/Gabmit would be the former case, and the Mono/Portable DotGNU effort as the later. Either way, it will be interesting to find out.
Posted to implementation by Brent Fulgham on 12/3/03; 12:05:28 PM

Dominic Fox - Re: Transparent Language Implementation and Design  blueArrow
12/3/2003; 1:32:22 PM (reads: 622, responses: 0)

Shurely the source trees for both Mono and Portable DotGNU are publicly visible / downloadable via CVS? I'm sure there's nothing stopping them from looking at each others' code - and as both implementations are GPL'd, presumably they can take anything they like the look of as well?

From the dotGNU FAQ:

The Mono project that is run by Ximian has many of the same goals as DotGNU Portable.NET. See their Web site for further details:

http://www.go-mono.com/

We will probably be using some of Mono's upper-level C# libraries, and may co-operate with Mono to improve those libraries. For various technical reasons, Mono's lower-level C# library "corlib" will not work with DotGNU Portable.NET's runtime engine, and so we still need "pnetlib".

Mono is using an older version of DotGNU Portable.NET's internationalization (I18N) framework, which provides a simple plugin architecture for writing globalization routines in C# for different character sets and locales.

Ehud Lamm - Re: Transparent Language Implementation and Design  blueArrow
12/3/2003; 2:27:44 PM (reads: 609, responses: 0)
Interesting how blogs foster more in depth discussions than USENET posts. They are in some sense in between conference and/or workshop papers, and your average usenet flame fest.

Brent Fulgham - Re: Transparent Language Implementation and Design  blueArrow
12/3/2003; 4:20:56 PM (reads: 583, responses: 0)
Mono and Portable DotGNU have some differences of opinion on licensing terms, patent dangers, etc. From my readings of their mailing lists, the two projects share very little code (at least lately).

Another example of schism would be GNU Emacs/XEmacs.

Sean Levin - Re: Transparent Language Implementation and Design  blueArrow
12/3/2003; 7:14:42 PM (reads: 553, responses: 0)
I think the problem with sharing code is a human problem and not a technical one. In the process of programming, we are continually beaten down by a stupid machine which forever chastises us with compiler errors, erratic behavior, and identifiable disasters. We are made accutely aware of our human weakness for handling complexity, our lack of foresight, and our strong penchant for spelling mistakes. Like beaten dogs, in the confines of our cubicles, we cower before our lord and master; licking our wounds, we grow visciously protective of these shortcomings. We are all too aware of the demands reality places on us and the compromises in style and clarity which feel forced to make. We wear proud faces and confident attitudes about our own methodologies, but the risk of having one more person become aware of how truly pathetic we fear we are is often too much to bear.

Knowing that things need not be this way, I try my hardest; however, I see the panic in other people's faces when I tell them that I made some changes to their code. And I am all too familiar with that inner tension that comes when I hear the same comment from others. I have endless respect for the MzScheme programmers, but I still could feel the defensiveness in some of the comments in the list postings.

Occasionally, like in a good relationship, we see the barriers of ego brought down for the good of the many. Like spiritual enlightenment, egoless programming is a reality, but will remain a dream for most. Until we learn to transcend our social fears which have been endowed upon us from both society and hormones, I believe we will continue to keep to ourselves.

Of course, one could also say, "Hey, despite all that, we are still making progress. It's not always ideal, but it's working. Keep up the good work boys!"

Doom and gloom makes for better reading, but whistling while you work helps the medicine go down. :)

Frank Atanassow - Re: Transparent Language Implementation and Design  blueArrow
12/4/2003; 7:58:28 AM (reads: 412, responses: 0)
In the process of programming, we are continually beaten down by a stupid machine which forever chastises us with compiler errors, erratic behavior, and identifiable disasters. We are made accutely aware of our human weakness for handling complexity, our lack of foresight, and our strong penchant for spelling mistakes. Like beaten dogs, in the confines of our cubicles, we cower before our lord and master; licking our wounds, we grow visciously protective of these shortcomings.

I think I've seen you at parties. This isn't you, is it? :)

BTW, can I ask in the future to stop wearing that rapier on the dancefloor...?