From: Bill Richter richter@fourier.math.northwestern.edu To: feeley@iro.umontreal.ca CC: Gambit-list@iro.umontreal.ca In-reply-to: 5747EF6C-7E8E-4491-ADAB-C5E9170B7777@iro.umontreal.ca (message from Marc Feeley on Mon, 13 Aug 2007 21:57:52 -0400) Subject: Re: [gambit-list] My R6RS vote References: 5FB2F0B7-F9FA-4193-8EED-307B3F4ACE50@iro.umontreal.ca 46C02784.9060102@gentoo.org 5747EF6C-7E8E-4491-ADAB-C5E9170B7777@iro.umontreal.ca
But Bigloo, Chicken, Gambit, ELK, MIT-scheme, SCM and STklos will almost certainly not adopt R6RS.
Marc, can you give us some more context here? Are there any fast Scheme compilers that will adopt R6RS? Is there a split between the serious computations folks like you on one side? I don't know who I'd put on the other side, the egg-headed theoreticians maybe :) How did the R6RS come to embrace feature-creep?
Afficher les réponses par date
On 14-Aug-07, at 2:36 PM, Bill Richter wrote:
But Bigloo, Chicken, Gambit, ELK, MIT-scheme, SCM and STklos will almost certainly not adopt R6RS.
Marc, can you give us some more context here?
You mean where did I get this information?
Bigloo, Chicken, Gambit, STklos: the developers told me
ELK: my guess given the low activity of ELK development
MIT-Scheme: my guess after having talked to the MIT-Scheme development team
SCM: my guess given the author's opinion about R6RS
Are there any fast Scheme compilers that will adopt R6RS?
I'm almost sure that if R6RS is ratified Chez Scheme will adopt R6RS, and Chez Scheme is fast but unfortunately not free.
It is unclear whether Larceny will implement R6RS fully. I expect it will over a couple of years. Larceny is fast too and is free.
PLT Scheme will also surely adopt R6RS. Currently the JIT's performance are not stellar (maybe a factor of 2 or 3 slower than Gambit).
The Gauche developer has indicated he intends to implement R6RS. It is one of the fastest interpreters, but there is no compiler if I recall.
Of course, many systems will implement parts of R6RS. For example in Gambit I have changed the names of the fixnum and flonum functions to match the names in the R6RS. I have also added "#;" comments, and similar trivialities.
Is there a split between the serious computations folks like you on one side? I don't know who I'd put on the other side, the egg-headed theoreticians maybe :) How did the R6RS come to embrace feature-creep?
Ambition I guess. But you should ask them.
Marc
Thanks, Marc! By "context", I meant What is the `Scheme community', and how does RnRS fit in? In more detail:
I think anyone who wants a fast Scheme compiler ought to use Gambit. That's what Brad told me a long time ago, and I'm sure it's true. So it doesn't matter to me what the other Scheme compilers are doing, because I won't use them! So I wonder why you even care what other Scheme folks are up to, what standards they're proposing. The obvious answer is that you & Gambit belong to the `Scheme community', and it's important for the community to embrace a good standard. But I really don't know anything about this community. That is, how are schemers and compilers connected to each other? If the connections are weak enough, who needs standards? Shriram K (whose book I improved, finding & fixing an error on free/bound variables) made a good relevant point: We don't think of TcL and Python as being the same language, even though they're similar. They go their separate ways.
Let me tell the sort of answers I'm thinking of. I belong to the Pure Math community (even though they haven't hired for 10+ years), which maintains lots of Math journals, and it's the joint responsibility of the Math community to maintain these journals at a high quality: to publish true & useful results. All the referees, editors and theorem-provers work together, depending on each other, connected.
Now I use Scheme to write programs, as I find it a pleasant language to write in, and Gambit is acceptably fast, but I got into Scheme mostly because of the slogan that Scheme is a good first language. Well, you don't need a Scheme standard for teaching a CS101 class!
I stuck around in Scheme because I got interested in some CS points: Felleisen's Lambda-value Calculus (LC_v), and Denotational Semantics (DS), which is promoted in Clinger's R5RS appendix. I think LC_v and DS are fascinating mathematical subjects, but I was very baffled by the response I got. I simplified some of Felleisen's LC_v results (better Y_v combinator derivation, shorter proof of the Standard Reduction Theorem), and Felleisen didn't care, he didn't merge my improvements into his manuscript (which Flatt now maintains). I concluded that that CS students aren't expected to understand LC_v, but to be properly intimidated by it, and then go on to more useful endeavors. So I have no feel for how LC_v (or LC) fits into CS. Clinger disgraced himself on comp.lang.scheme by failing to understand the simple mathematical points I was making about DS: we can easily define compositional semantic functions without the use of non-Hausdorff Cantor sets (i.e. Scott models of LC). I concluded that understanding DS is also not important in CS!
OK. I know that Clinger and Flatt are involved in R6RS, and I find them baffling. What (little) I know of their CS interests doesn't explain to me why they're interested in Scheme, still less why they should be trusted with a Scheme standard. That is, suppose instead that LC_v & DS were vibrant CS pursuits with strong connections to Scheme. I think I'd see why CS professors like Clinger and Flatt were involved with the Scheme standard.
Well, there's also applications, right? Is Scheme supposed to be a good language to write real-world programs in? Telecommunications software, video games? If so, presumably the folks who write these real-world Scheme programs have a real need for a good standard. But I don't know who these folks are, or what their needs are.
On Wed, Aug 15, 2007 at 02:39:37PM -0500, Bill Richter wrote :
the simple mathematical points I was making about DS: we can easily define compositional semantic functions without the use of non-Hausdorff Cantor sets (i.e. Scott models of LC). I concluded that understanding DS is also not important in CS!
In fact, this might not be the point the most studied by schemers. Denotational Semantics, Domains and Game theory, or in short Category Thoery are very extensively studied in strongly typed language theory, especially by users of Haskell, if you want to put an actual programming language name on that. It is studied and used efficiently there because it has been found out (by Dana Scott et al.) that a Closed Cartesian Category, is effectively a model of the typed lambda calculus. And from deeper studies of categories arose functors, monads, Kleisli arrows, etc, which all gave birth to a corresponding concept in programming, for they were isomorphic to something in the world of programs (i.e. in your language).
But is it important in CS ? It depends. I know the three main schools of functionnal programming. I learnt with OCaml, studied Haskell by myself, and I now do Scheme. They all have a different approach, for they have different backgrounds and points of view, and therefor, give three more chances to make new discovers.
To my mind, Haskellers create new paradigms from highly obscure maths (my category classes were not *that* fun at first), and apply it to practical CS. Schemers tweak and extend the language according to problems and then help define new (or known) paradigms from what they already had. And Caml, well, type systems (forgive my bias).
Roughly, DS is not important in CS for the Schemer, and macrology is not important in CS to the Haskeller. But remove macros or categories from CS, and a whole branch of Computer Science dies. Say, the Scheme community studies blue camaïeu, and the Haskell community studies lights of wavelength between 446 500 nm.
Eventually, I'd say that DS is not important for many people in CS, and hopefully. Because otherwise you could poll people and understand that functional languages, object paradigm, network protocols, architecture... are not important in CS. You just can't expect someone to be interested in something that he is not studying. And the reason why they may have not clue about it can be understood easily I guess. In Computer Science, you learn very generic and broad concepts shallowly during your Bs.C. and then you immediately go deeply into one specific domain that shall be yours from then. Whereas in other domains, as far as I can tell, it looks like you can have to tremendous and complex lessons given early. Blame the mix of Computer Science and NTIs maybe, that forces you to breed computer scientists that will do no science once they finished their studies. It's better not to teach them Denotational Semantics at all and to leave that to those who want to study it...
I hope that I didn't hurt anyone with what I just said (teacher, student, NTI decision-maker, type-system addict...), but as someone who just loved studying an "unknown" part of CS (category Theory), I felt the urge to answer "DS is important (to those who care, for those who don't) !".
Adrien.
On 8/15/07, Adrien Pierard pierarda@iro.umontreal.ca wrote:
On Wed, Aug 15, 2007 at 02:39:37PM -0500, Bill Richter wrote :
(A lot of typically self-serving material about how wonderfully smart he is)
Bill Richter is not your ordinary garden-variety troll in that he does appear to have an actual ability to learn, but he is a person with some serious issues - serious enough that he earned his very own internet FAQ http://www.ccs.neu.edu/home/will/Ephemera/richterFAQ.html
And OK, 3 years is a moderate amount of time to pass and perhaps he's getting better, but his tone in posting sounded almost exactly like way back when, and the R6RS debate is perfectly seeded for his shenanigans. In short, I had no intention of responding to him, no matter what the provocation (hah! I am too much of a jerk in my own self to really live up to that, but I did plan to try :)
I hope that I didn't hurt anyone with what I just said (teacher, student, NTI decision-maker, type-system addict...), but as someone who just loved studying an "unknown" part of CS (category Theory), I felt the urge to answer "DS is important (to those who care, for those who don't) !".
Well you sure didn't hurt me. I have dabbled in many of the same topics you have, and it appears it may have been for the same reasons. In Computing Science you do have the opportunity to understand the whole system 'all the way down to the turtles that hold up the earth' - metaphoricallly speaking :) But part of Bill's expertise is that he makes you feel like you ought to engage him in a debate - and it so rarely turns out well.
I hope I don't end up hating myself for this pre-emptive warning. On the other hand, I *really* don't want to watch an extended Bill-debate on an implementation-specific mailing list...
david rush
On 8/16/07, David Rush kumoyuki@gmail.com wrote:
I hope I don't end up hating myself for this pre-emptive warning. On the other hand, I *really* don't want to watch an extended Bill-debate on an implementation-specific mailing list...
...Too late, I do. Serves me right I suppose. I didn't notice that the Gambit mailing list actually sets the headers so that the Google reply function goes to the list and not the individual. I will now officially crawl back under my rock for a while and hope I didn't actually just make things *worse*.
david rush
On Aug 16, 2007, at 3:36 AM, David Rush wrote:
I will now officially crawl back under my rock for a while and hope I didn't actually just make things *worse*.
Actually, I think a pointer to the faq is useful - I was of two minds as to whether to ignore him or at least mention his history in c.l.s. - all in all I think it's better that everyone be aware of that history rather than inadvertently walking into a minefield by naively engaging him.
regards,
Ralph
Raffael Cavallaro, Ph.D. raffaelcavallaro@mac.com
On 8/14/07, Bill Richter richter@math.northwestern.edu wrote:
In-reply-to: 5747EF6C-7E8E-4491-ADAB-C5E9170B7777@iro.umontreal.ca (message from Marc Feeley on Mon, 13 Aug 2007 21:57:52 -0400) But Bigloo, Chicken, Gambit, ELK, MIT-scheme, SCM and STklos will almost certainly not adopt R6RS.
Marc, can you give us some more context here?
Those implementors have more or less declared R6RS as being something they really don;t like. You can also certainly add Stalin to the list.
Are there any fast Scheme compilers that will adopt R6RS?
I'd call Larceny a strong maybe, but I am no spokesman for that project. Andre VanTonder's compatibility package supposedly provides neraly full R^(5.97)RS compatibility already and is bundled with (and easily patched into as updates to the R5.97 lib are made) Larceny.
On that note, I noticed that Andre's latest release claims to be bootstrappable on any R5RS system. Has anyone tried it in a recent Gambit beta?
Is there a split between the serious computations folks like you on one side? I don't know who I'd put on the other side, the egg-headed theoreticians maybe :)
There is a split, and it's been around for a while. It's fundamentally much more psychological than technical, IMO. I'm not sure this is the right place to discuss it, but I wouldn't be too surprised if there was also a strong age correlation with the faction boundaries :)
How did the R6RS come to embrace feature-creep?
Because work always fills up to include all available brain-cycles :)
david rush
David Rush wrote:
Is there a split between the serious computations folks like you on one side? I don't know who I'd put on the other side, the egg-headed theoreticians maybe :)
There is a split, and it's been around for a while. It's fundamentally much more psychological than technical, IMO. I'm not sure this is the right place to discuss it, but I wouldn't be too surprised if there was also a strong age correlation with the faction boundaries :)
Well ... I guess I know how old I am and which faction I'm in. :) But seriously, folks, I've had the virtues of simplicity drummed into my head since I first set my hands on an ancient 5-hole teletype paper tape punch and wrote a hexadecimal multiplication table generation program for ILLIAC I. And these days, it's so darned easy to invent a whole new language, or build an "internal" domain-specific language in Lisp, Scheme, Forth, Ruby or half a dozen others, that it doesn't seem worth fighting for. So call me a serious, pragmatic egg-headed theoretical software engineer. :)
How did the R6RS come to embrace feature-creep?
Because work always fills up to include all available brain-cycles :)
Don't tell my boss I have spare brain cycles, OK? :)