Conversation
Comparing a language using garbage collection to one tackling the hard problem of providing memory safety without it doesn't make much sense. Rust is a low-level systems programming language while Go is in a different niche. If you don't need a low-level language, don't use Rust.
2
1
5
I agree with everything you said except "don't use rust" part.
1
"If you don't need a low-level language, don't use Rust." is far different than saying "don't use Rust". If you need a low-level language, use Rust. If you don't, use a high-level language offering more productivity, less friction and quicker development turnaround times.
2
Using the correct tool for the job is one of the most important skills for a programmer. There is no need to have one true language that's best for every possible usage. Different programming languages are designed around different compromises based on targeting different niches.
1
there are plenty of programmers who don't actually need a low-level programming language who are choosing rust for its other very good properties and i don't know how productive it is to say that they're wrong (1/2)
2
this twet feels like a reasonable prediction, namely that a [far] future variant of rust that chops off some low-level power to achieve some higher-level "productivity" or "expressiveness" or "simplicity" or whatever will probably take off (2/2)
Quote Tweet
Replying to @peterbourgon
I feel this. I think one day we will look back and see Rust as root of a family of languages, with at least one besides Rust really taking off.
1
1
my totally uneducated guess is that variant will probably not eliminate the borrow checker &c. but probably will add some friendlier abstraction over it, maybe like a runtime with GC (3/2)
1
If it doesn't eliminate the borrow checker, how does a garbage collector change anything? It also can't really be an abstraction over it. It can be a separate implementation alongside it, fitting poorly together or it can be underlying everything and how does borrow checking fit?
1
Simply taking the safe subset of Rust and adding garbage collection while leaving ownership, move semantics and borrowing / lifetimes as is doesn't change the language. It's a different implementation of exactly the same language. It's not easier to use. It's exactly the same.
1
So, you'll need to be specific about what you actually want to remove or replace and what you want to do with garbage collection. If you're still going to be using exactly the same system for ownership, borrowing, etc. then it's not clear what exactly is accomplished with GC.




