1. 35

  2. 11

    The core idea seems to be to rework some of the more messy grown parts of mainstream Lisps in a cleaner way from the ground up:

    Bel is an attempt to answer the question: what happens if, instead of switching from the formal to the implementation phase as soon as possible, you try to delay that switch for as long as possible? If you keep using the axiomatic approach till you have something close to a complete programming language, what axioms do you need, and what does the resulting language look like?

    (from the guide to the bel language)

    1. 8

      what axioms do you need, and what does the resulting language look like?

      Looks like Scheme.

    2. 10

      Arc - Bel - what’s next, Cex?

      1. 7

        Arc was released 11 years ago says Wikipedia. So Cex is due in 2030.

        1. 2

          I don’t get this…

        2. 2

          I was about to neglect this as yet another hobbyist language until I saw the author. (He is one of the designers of Arc, the programming language HN is written in).

          1. 22

            Arc is not a hobbyist language?

            1. 8

              No. Arc is a high-performance production-grade Lisp. Very few people give it a chance, so most people don’t know. But https://www.laarc.io is written in it, I think in it, I’ve used it for years, and it is in no way hobbyist.

              1. 10

                You can be hobbyist and good, performant, etc… right? I don’t equate something being a hobby with it being bad. ARC was for a long time a one maintainer lisp-like implementation (is it still built on top of Racket?) working as a fun/part-time/hobbyist project. I think hobby is more about the attitude of the maintainers towards the project than the output of said project. Or maybe I’m using a wrong definition.

                1. 6

                  Hobbyist implies that it’s not suitable for production, or that if deployed to production, would result in problems.

                  No one would call Redis hobbyist, even back before antirez got corporate sponsorship.

                2. 6

                  Arc is essentially a set of macros in top of Racket (PLT Scheme back then). It powers Hacker News which is a high-traffic website. My conclusion is that Racket is production-ready.

                  1. 4

                    I ported Arc to JS and it runs fine there too. https://github.com/lumen-language/lumen/blob/2018-10-29/arc/arc.l

                    It’s hard to claim that a programming language is lesser due to being implemented in terms of another language. Everything is ultimately implemented in something else.

                    That link isn’t a very faithful implementation of Arc in JS. I have another one laying around somewhere that implemented it almost exactly as written in the original 3.1 codebase.

                    I also implemented Arc in Emacs Lisp for good measure. This one is faithful, almost an exact replica of all the original arc functions: https://lobste.rs/s/sx8ely/arc_scheme_emacs_lisp

                    So you’d have to say that Racket, JavaScript, and Emacs Lisp are all production ready.

                    1. 4

                      That’s a stretch, though. Implementing C/C++ in either language is a whole, different ballpark than implementing a Lisp on top of Racket: a batteries-included platform designed to make metaprogramming easy. It would seem like a comparatively minor task.

                      Whereas, the same implementation strategy… relying on production-ready Racket… is why you can claim it’s production ready. Well, that and Hacker News.

                    2. 2

                      To be fair it seemed to get to its limits a few years ago when traffic rose. (Not argung about what is high traffic and what is not) and afaik they tweaked some things and added caching.

                      I’m not disagreeing with your assessment result, but “it runs HN” is not a definition of a language being production-ready, imo.

                    3. 3

                      Interesting, I thought it was ‘good enough’ to write HN, but that there was still a lot of work to be done that never happened. I now see that it’s indeed much ‘more’ than I thought it was.

                      1. 1


                        Isn’t it the main implementation of Arc on top of Racket? If so how is that considered high-performance?

                        1. 1

                          It’s pretty fast in practice. Maybe 10x to 100x slower than an equivalent Rust program, which is about what you get with Python.

                          1. 1

                            which is about what you get with Python.

                            Python’s default implementation, CPython, is by no means a fast. The only other mainstream language whose default implementation is slower that I can think of is Ruby. It may be fast enough but by no means high-performance.

                            I understand that describing a language with a community built around it as a hobbyist language is unnecessarily dismissive of it, as if it was some toy language, but no need to oversell it.

                            1. 1

                              Ruby MRI is actually faster than CPython these days.

                      2. 1

                        My thought also.

                    4. -1

                      An uninteresting foray into PLT by a rich guy. As far as I can tell, there’s not really anything novel or interesting here, but I’m not well-versed in the Lisp tradition. Is there anything good here worth sharing, or is it a vanity project?

                      1. 17

                        He was the author of two fairly popular books on Common Lisp years before becoming rich. In the industry where a good deal of renowned practitioners and researchers are also multi-millionaires it’s a ridiculous dismissal.

                        1. 5

                          Now, regarding Bel proper. As I finally found time to read through his text, my opinion is it’s stillborn. The perspective of taking ‘theoretical’ Lisp as formalism to its extreme is an interesting one. However the language does not seem particularly axiomatic. It is also too full of hacks which seem to reflect Graham’s particular preferences.

                        2. 15

                          I think it’d be unwise to discount the intelligence of Paul Graham in his chosen field, whether or not you like him. He’s a lot more than just “a rich guy”, though he is that too. Like Rob Pike, even if he’s wrong, I’d expect it’s probably for a good reason.

                          Either way, the guide makes it pretty clear Bel is an experiment in thinking about the math anf engineering behind Lisp. If the result isn’t anything interesting… then that’s a pretty interesting result, actually.

                          1. 5

                            “ think it’d be unwise to discount the intelligence of Paul Graham in his chosen field”

                            This post supports your point with much, much detail. Very interesting, too, for the cultural and historical aspects that he presents along with the technical details.

                            1. 4

                              For what it’s worth, PG didn’t write that one. Olin Shivers is the author.

                              1. 4

                                That’s worth a lot. I don’t like misattributing such detailed write-ups. Thanks a lot for the correction.

                                Edit: Oh Ok. There’s images on top that didn’t render. One says just the top pieces of his name. I see it now.

                                Edit 2: He’s currently at Northeastern. There’s a lot of good work that comes out of there. Turns out he was part of team that did Preliminary Proposal for SAFE, too. Heck yeah!

                          2. 11

                            I mean, Lisp is one of the fields where Graham isn’t out of his depth

                            1. 8

                              He’s also a Harvard PhD in comp sci, has patents related to software granted, and was a founder / programmer of one of the first SaaS applications. He’s hardly someone to ignore from a technical perspective, industry or academically.

                              1. 5

                                I don’t know if it’s uninteresting, but I didn’t find anything about Bel exciting. Although I don’t mind seeing what PG is up to, I’m not sure whether there’s even an unusual evaluation model present here. It’s just call/apply with eval-by-request as usual right? Maybe there’s some convention to handling things in a bit cleaner way but meh. If I want this style of programming I have javascript there waiting for me.