On Tuesday, 20 August 2013 at 22:48:26 UTC, Jonathan M Davis wrote:
Static arrays are unsafe in many situations, especially if you end up slicing
them by accident.

But we don't prohibit slicing static arrays. Does not seem consistent approach. If pointer safety would have been really important, `scope` definition and implementation would have been a priority.

The semantics of static arrays are also very different, since
they're value types.

But slices of static arrays are still slices. What does it change in practice?

Static by default would be a very bad idea IMHO.
Obviously, static arrays can be desirable, but the programmer needs to be
careful any time that they're used.

How do you expect to convince someone to use D instead of C in its domain if there no such thing as static array literal? It, khem, "literally" does not exist.

What bothers me most here is that we have clear @safe and @system distinction in the language where former is expected to provide correctness guarantees and latter - C-like power. But in practice it is @safe and @no-really-safe-but-we-still-care distinction, with @safe-flavored reasoning severely harming power of common (or even @system) constructs. I have abandoned any hope to change this but it keeps frustrating.

Reply via email to