4 ms·
> I just don't see Common Lisp as dealing with modern computing that well. It looks crufty and tired where Scheme continues to refine and sharpen. I don't thin
by eadmund 5y ago
> I just don't see Common Lisp as dealing with modern computing that well. It looks crufty and tired where Scheme continues to refine and sharpen.
I don't think that they are aimed at the same thing. Lisp is stable, reliable and suitable for large, durable systems; Scheme is conceptually pure, but its refinement and sharpness lead to fragility. You applaud the success of R7RS, but it is a retreat from specifying a general-purpose programming language (something R6Rs tried to do and was castigated for), choosing simply to provide a toolkit for building a general-purpose programming language. That's not bad, but it means Scheme is not suited for the things Lisp is suited for. I would hate for the RTOS monitoring my car to be written in Scheme, but I think it could in principle be written in Lisp.
Racket, arguably the most successful and influential Scheme out there, isn't even a Scheme anymore! There's nothing wrong with that, of course, but it says something when the best Scheme had to evolve until it was no longer Scheme.
Meanwhile, systems written in Common Lisp decades ago keep running, and new systems keep being written. It has some warts, some big ones, but it has some real virtues, too.
- adenozine 5y agoYou've made some very good points, all of which I agree with. I suppose I somewhat despise the Common Lisp "way" of things so much so that it distorts my perception of it. A lot of old JPL stuff was written in Lisp, and what you said about resilience strikes a chord with me. I think the things that really stimulate me the most are things that a small, refined, core language can provide. I've always considered it a benefit that R7RS has become smaller and also that history will not look favorably to R6RS, I thought it was the wrong move. The projects that matter the most to me and to my sensibilities for scheme are abstract and academic. Check out namin's staged-minikanren repo on GitHub. (On mobile, else I'd link you) That is one of the most fascinating pieces of technology ever produced by humankind, imo, and it's written in a simple, common scheme. I think it actually evaluates on Racket, but you can see most of the code tastes like regular Scheme. If I said that Common Lisp wasn't good, I surely regret it and can admit my wrong. I wouldn't call Racket the best scheme, but certainly the most well known, as you say. It evolved in parallel to it's vision of meta-languages, and that's something I would argue entirely catalyzed by having a small, simple, functional core of Scheme. Racket could just as well have been Lisp, and it'd look and feel different, but the same magic would be lurking beneath the surface. It'd probably execute a lot faster these days too! Anyhow, thanks a lot for your insights.