On Tuesday, 15 August 2017 at 20:33:18 UTC, Johnson wrote:
On Tuesday, 15 August 2017 at 03:37:39 UTC, rikki cattermole
wrote:
But then that only helps with one specific instance. D is full
of language features, I do not see why everyone is so against
them. Without them, D would be empty, nothing, and no one would
use it. Adding language features should be see as something
good, cause without them, we wouldn't get anywhere.
Its an important challenge of software development, and a number
of articles out there about it.
https://www.google.com/search?q=the+cost+of+features&ie=utf-8&oe=utf-8
At first glance I wasn't finding anything which uniquely tackles
compilers and languages.
Backwards compatibility isn't just for programming languages but
can be more important.
A good UI can help a user with complexity. So does consistency.
Adding a syntax for special meaning can be difficult to remember.
My personal example is properties in C#. The syntax is straight
forward and clean, but only recently have I been able to remember
how to write one: ReturnType Name { get { return a; } set(value)
{ a = value; } }
As for your specific suggestion I think it would be nice at times
but the complexity you haven't specified is how do deal with
ambiguities if two modules provide the same symbol name.
D may have a number of features which C++ doesn't and visa versa,
the complexity of the language for C++ to have those features
means I work with D and not C++.