← Back to context

Comment by onlyrealcuzzo

4 hours ago

Interesting.

How do you prevent data races in concurrent code?

Or do you not allow shared mutable memory?

Yeah, no shared mutable memory; coordination is done via channels.

  • Awesome.

    If you want some feedback, I'd recommend putting some concurrent benchmarks on your home page (and if you have some already - I'd clearly separate them).

    When I originally scanned it, I just assumed this was another predominately sequential language with no good concurrency story.

    If you're actually competitive with Rust/Tokio/Crossbeam and Go on the most common concurrent patterns, then you've got a really compelling project!

    I suspect if you don't cherry-pick benchmarks, you're going to run into some performance problems with not allowing shared mutable memory - though maybe you can avoid most of that if you have some type of built-in actor pattern.

    But if you're actually competitive across the board with Go & Rust/Tokio/Crossbeam - I'd love to take a deeper look, because that is NOT easy to accomplish.

    I didn't see any of that from a cursory look at the language, though.