On Monday, 16 March 2015 at 13:21:13 UTC, ponce wrote:
On Monday, 16 March 2015 at 13:11:56 UTC, weaselcat wrote:
An example of a simple but fundamental issue are the defaults
of the built-in attributes. I think some of them, for
historical or compatibility reasons, are currently simply the
wrong way around (pure, @safe, final and scope should really
all be enabled by default, with scope providing recursive
guarantees) and using them properly completely destroys the
initial idea of having a clean language syntax. It's
sometimes really sad to see modern idiomatic D code degrading
into a mess of attributes and contract syntax noise. After
all, a clean syntax used to be one of the key selling points.
+1 for this entire paragraph, sometimes D looks simple and
elegant, other times it looks like someone puked attributes.
Rust code is safe by default and it is littered with unsafe{ }
blocks.
I think this has more to do with Rust's extreme safety, many
things doable in @safe D code would be no-no in Rust(i.e, you
can't even manipulate pointers IIRC)