4 ms·
I generally agree, and I'm hoping that Gleam fits the bill for "Rust with garbage collector" (also, when I say this, people leap to OCaml, but OCaml introduces
by throwaway894345 4y ago
I generally agree, and I'm hoping that Gleam fits the bill for "Rust with garbage collector" (also, when I say this, people leap to OCaml, but OCaml introduces a bunch of problems which aren't present in Rust: cryptic syntax, lower quality build tooling, unbounded type inference, competing "standard" libraries, a fairly toxic community, etc).
- kitd 4y ago> OCaml introduces a bunch of problems which aren't present in Rust: cryptic syntax ... Hmm, I think "cryptic syntax" is probably in the eye of the beholder
- throwaway894345 4y agoI'm sure there's some element of subjectivity, but at a minimum there's something to be said for "unfamiliar to the overwhelming majority of programmers". I think it's also very likely that OCaml's incredibly terse syntax (and terse naming conventions) is objectively difficult to understand from a "how the human visual/symbolic processing pipeline works" perspective, but I don't have the data to back that up (I also don't think OCaml is alone in this regard).
- int_19h 4y agoThing is, if OCaml is terse and weird syntactically (and I would agree), then so is Rust. Especially once you have to spell out signatures.
- throwaway894345 4y agoRust’s syntax is based on C and C++. Yes, it introduces additional concepts and gives them new syntax, but function calls, parameters, struct definitions, struct initializers, function definitions, etc are all very familiar to most programmers.
- hedora 4y agoHow does gleam handle thread safety and asynchrony? Rust leans heavily on the borrow checker for that. The Rust with GC proposals I've looked at all break compile time thread safety checking.
- throwaway894345 4y agoNot sure. Frankly I’ve never got any value out of compile time thread safety checking. Writing correct shared memory parallel code is rare and easily managed if you have some experience (minimize and lock mutable shared state).