Re:Ruminations on D: An Interview with Walter Bright
by qznc on Wednesday August 31, 2016 @07:22AM
(#12397450)
Yes, Rust picked the better default and D is too mature to change it now, unfortunately. Likewise with "pure", "const", and maybe even "nothrow" and "nogc".
However, I don't think it is such a big deal, since you can patch it quite well. Mark your main function as @safe and you are force to make everything @safe (or @trusted as a workaround). The type checker will tell you where to look next.
It is interesting that Rust functions are not pure by default. I guess (did not follow the design discussions), because purity is too limiting. D came up with the concept of "weakly pure", which is useful and strong enough. Also you need transitive const to turn a weakly pure into really pure function.
Re:Ruminations on D: An Interview with Walter Bright
by steveklabnik on Wednesday August 31, 2016 @10:20AM
(#12398475)
From long, long ago https://news.ycombinator.com/item?id=6940624
Re:Ruminations on D: An Interview with Walter Bright
by dansze on Tuesday August 30, 2016 @03:43PM
(#12393247)
By default, D has no safeguards to prevent you from doing memory-unsafe things, and afaik no compile-time checks short of marking your main method as @safe. However, because the language is by default memory managed, it is fairly easy to stick to safe code without this by avoiding pointer/cast voodoo.
Context: safe Rust is also a subset of unsafe Rust. But when people mention a language without qualifiers, they mean whatever the default is. D (appears) to default to a non-memory safe language, and Rust defaults to a memory-safe one. I believe this is what OP meant. (this also ignores the relative feature sets of the various sub/super-sets)