Having to mark everything as evaluatable at compile time is a stupid, stupid, decision that only C++ could think was a good idea.
Having to mark everything as evaluatable at compile time is a stupid, stupid, decision that only C++ could think was a good idea.
A change of an implementation detail in some leaf function (that happens to add a run-time dependency) should not accidentally break execution of another function elsewhere (possibly in a different downstream project) that happened to work as compile-time before that.
Note that compilers are still free to execute pure functions opportunistically at compile time, but it's just not guaranteed.
>D should worry less how great language it is,
You are just replying to some guy expressing an opinion on internet about how to do something better, and using D as example.
> Eschew flamebait. Avoid unrelated controversies and generic tangents.
You responded to
> Having to mark everything as evaluatable at compile time is a stupid, stupid, decision that only C++ could think was a good idea.
with
> D should worry less how great language it is, focus on fixing long standing DIPs and compiler bugs, and actually have an ecosystem that makes it worthwhile using in the industries where C++ is the first choice.
Definitely qualifies as both "flamebait" and "unrelated controversies".
Now if I happened to reply to the wrong comment, sorry about that, and I should pay more attention before replying.
What is stupid about it? It makes a lot of sense given how programming languages work.