Almost five years ago, Saoirse “boats” wrote “Notes on a smaller Rust”, and a year after that, revisited the idea.

The basic idea is a language that is highly inspired by Rust but doesn’t have the strict constraint of being a “systems” language in the vein of C and C++; in particular, it can have a nontrivial (or “thick”) runtime and doesn’t need to limit itself to “zero-cost” abstractions.

What languages are being designed that fit this description? I’ve seen a few scripting languages written in Rust on GitHub, but none of them have been very active. I also recently learned about Hylo, which does have some ideas that I think are promising, but it seems too syntactically alien to really be a “smaller Rust.”

Edit to add: I think Graydon Hoare’s post about language design choices he would have preferred for Rust also sheds some light on the kind of things a hypothetical “Rust-like but not Rust” language could do differently: https://graydon2.dreamwidth.org/307291.html

  • BatmanAoDOP
    link
    fedilink
    arrow-up
    2
    ·
    11 months ago

    OCaml seems really close, but I’m told that there are problems with its concurrency story. I do think it sounds like a really good language.

    • ericjmorey
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      I’m curious if you were told that recently. I know that there have been stable releases of major features and libraries concerning concurrency and parallelism near the end of 2022. It may be much improved since you your source last looked. Or it could be a limitation in the implementations of these.

      • BatmanAoDOP
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

        My understanding was that there’s some ecosystem bifurcation, somewhat like Rust’s. But I’ll look into it again!

        • ericjmorey
          link
          fedilink
          arrow-up
          2
          ·
          11 months ago

          Oh, yeah. The Jane Street vs non-Jane Street library incompatibilities still exist. But there is a new concurrency library that was made such that the need to use monads has been eliminated.