On Friday, 13 March 2015 at 02:17:31 UTC, bearophile wrote:
Andrei Alexandrescu:
## some or all of @safe, immutable, pure should be the default
+1
I have a ER on @safe by default and Walter seems to agree. But
I'd like more. A "strict D" mode? :-)
Yes, but what is a "strict mode". I agree with most of what is
said about D and Go in the top post, but is there a market for
yet another high level language that isn't high level enough?
I've spent some time hashing out a "D-minus" that could be
compiled with D2 (or at least with a simple transform), and it is
more attractive to move towards lower level programming and
optimization when creating a subset...
So what is a a reduced D that is largely compatible with D2? I
would remove features that people love, like modular arithmetics.
You can do that since it is undefined when you move out of the
range. You can also introduce new hints as @uda.
The overall better approach is to generalize and simplify the
core semantics of the language then have D2/D3/simpleD in the
same compiler and allow them to mostly work together (separate
files, but D2 code importable into D3)
D can't be a single-purpose language. And it has more moving
parts compared to Go.
That's true, what one could consider is better separation between
library-features and common-code features. Like Python where you
generally can leave all the __XXX__, yield etc to library code
and keep a simple surface (largely thanks to tuples/lists btw).