this post was submitted on 11 Jan 2024
34 points (87.0% liked)

Rust

6024 readers
1 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

[email protected]

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
34
submitted 10 months ago* (last edited 10 months ago) by BatmanAoD to c/rust
 

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

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 10 points 10 months ago (9 children)

Why would you want that? What is wrong with python if you want an interpreted language with garbage collection? By contrast what is wrong with rust + a lot of crates (or C++/Ada/...) if you want a compiled language?

Zero cost abstractions are great because speed is very important for complex problems. Little things here and there make for modern computers that feel slower than my old 8 bit atari when trying to get work done.

[–] porgamrer 6 points 10 months ago (3 children)

There is a huge and valuable possibility space between python and Rust. We know this because it is already occupied by many extremely successful languages (Java, C#, Swift, etc).

The value of a language that sits between C# and Rust also seems pretty obvious at this point; a language that gives you Rust's memory management tools for optimisation, but doesn't force you to use them for all of your code.

[–] [email protected] 1 points 10 months ago (2 children)

It exists, it's called Rust with lots of Arc, .clone(), and Box<dyn Trait>. You don't have to borrow if you prefer to have a slower, easier program.

[–] philm 1 points 10 months ago

Box

Now try to do that with a trait that isn't object-safe...

I get your point, these things make fighting with the borrow-checker a little bit less annoying, but Rust is complex. I'll happily accept that because I value high code-quality (to that point that I rather invest more time to get things right) but when that is not the goal and you want something higher-level and strongly-typed there are alternatives that work better (I'm just talking about the language itself, ecosystem alone for me is yet another pro-Rust thing)

load more comments (1 replies)
load more comments (1 replies)
load more comments (6 replies)