News for hackers. Stuff that matters.
Re:Ruminations on D: An Interview with Walter Bright by steveklabnik on Tuesday August 30, 2016 @12:51PM (#12391720)
It has been years since I have actively programed in D, so take this with a grain of salt, but my understanding is that D only guarantees memory safety in its @safe subset. See here: https://dlang.org/spec/memory-safe-d.html

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)

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)
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.
Re:Ruminations on D: An Interview with Walter Bright by p0nce on Tuesday August 30, 2016 @07:08PM (#12394690)
Fortunately with array bounds checks and default initialized variables, memory corruptions aren't very common in D.