Not really I suppose, except now you have a lot more words as special keywords that one probably cannot use as identifiers.
As for your
share example, the modification scheme makes it very difficult to reason with, cause you’re allowing modification from all reference holders, which is equivalent to an unsafe pointer use in C/C++. While Rust’s model allows compile time reasoning safely.
I am not sure if requiring the programmer to pick the right keywords gives any power to expressiveness or safety. As it stands, the compiler can already verify you’re catching the same thing as it was thrown? I am not sure if I’m missing anything here.
Even for more complex languages like Pony, the sharing rule is still same as Rust’s one(see “Sharing” section).
The “if either all read (exclusive) or one writes, then you have safe concurrent access” is a well-known principle and it’s intuitive(and probably has a proof somewhere)
that it holds universally in all scenarios, and it is best to pick the simplest and (supposedly) logically sound principle as your foundation.
Not saying more complex systems are not okay, but you’ll need to produce proofs that the system is okay to convince most people.
Overall I’d agree with @quadrupleslap that you’re adding a lot of visual noise in the design.
Slightly off topic : I feel like you might enjoy experimenting with using/creating new languages if you’re not in that field already. If that is indeed the case, you might be interested in Racket or something that allows you to write DSL easily, but I have no idea if you can implement the sharing rules in Racket that easily. I recall spotting a language creation framework in OCaml at some point, but I can’t remember the name atm.
Either way, I’m not in the field of programming language research, so apply salt etc.
I’m not sure at all whether you can tie it back or not, and I don’t think it matters too much. But I don’t think anyone would complain either if you decide to abandon this account just to keep things consistent by using GitHub on all accounts.