Post #3613076
2025-12-29 20:14 UTC
Replies (1)
-
@zwarich@hachyderm.io 2026-01-05 16:47
@slava@mathstodon.xyz @joe@f.duriansoftware.com @foonathan@fosstodon.org @dotstdy@mastodon.social @ianh@mastodon.social I thought about this some more the past few days and one of the things that I keep coming back to is that if you add mutation to your language you’re faced with the problem of data races, and the type system features for the elimination of data races don’t look all the different from ownership systems used by safe systems languages. There is Midori (https://www.cs.drexel.edu/~csg63/papers/oopsla12.pdf), Pony (https://www.ponylang.io/media/papers/fast-cheap.pdf), Verona (https://www.microsoft.com/en-us/research/publication/reference-capabilities-for-flexible-memory-management/), etc. Of course, you could take the Java/C# copout of making data races memory safe (and maybe tack on the Go approach of optional dynamic race detection), but the issues that arise from this model are not very easy to debug.