3 ms·
I'm well aware of that. However, using GC fattens considerably Rust type signatures (want a garbage-collected list of garbage-collected Foos? Enjoy writing Gc<L
by mercurial 12y ago
I'm well aware of that. However, using GC fattens considerably Rust type signatures (want a garbage-collected list of garbage-collected Foos? Enjoy writing Gc<List<Gc<Foo>> everywhere). It's just not particularly idiomatic. And Gc types are not Send types, so you can't share them across tasks, which is unfortunate since we were precisely discussing the lack of parallelism in OCaml :)
It's not a dig at Rust, which I think is very well designed, but IMHO, it is in a different niche compared to the other functional languages listed above.
- mcguire 12y ago"...writing Gc<List<Gc<Foo>> everywhere..." Rust, unlike Java, has type definitions[1]; there's no need to use the full expansion everywhere. (I don't believe it's even necessary in Java, but creating subclasses has its own downsides.) [1] http://doc.rust-lang.org/0.11.0/rust.html#type-definitions http://doc.rust-lang.org/0.11.0/rust.html#type-definitions
- mercurial 12y agoYes, you can do that, but it's pretty obvious that if you want garbage collection everywhere, you're not going to use a language with linear types and optional, pretty much discourage GC, and write type synonyms all over the place (or fat signatures), you're going to go for a language where it's natural.