Why the @ in @safe? & UDAs

Dicebot public at dicebot.lv
Thu Nov 7 14:16:41 PST 2013


On Thursday, 7 November 2013 at 20:16:46 UTC, Jonathan M Davis 
wrote:
> If you want anything like this to happen, you'll have to 
> convince Walter and
> Andrei, and I would be shocked if they were ever convinced. 
> They want to focus
> on stability, not on tweaking everything in search of making 
> the language
> perfect. Breaking changes - especially breaking changes on this 
> scale - need
> to provide real, tangible benefits which outweigh the cost of 
> the breakage. And
> changing the @ attributes doesn't even come close.

I tend to lean towards this position with time more and more. 
Problem is, stuff that bothers me most in D which I'd like to 
change in a breaking way is not lack of some new features or 
re-engineering of some specific syntax. Under-explored semantics 
of some core language parts are most frustrating in my every-day 
development - like tuples or attribute defaults or symbol 
visibility. But changing/fixing those will yield completely 
different language, something like D3, it is not some incremental 
augmentation.

And when it comes to exiting feature set - D2 is already so much 
ahead of C++ that  I tend to desire more stability / "industrial 
quality" to act as replacement right here and now. No single 
improvement will benefit as much as simple proof that D community 
can craft tool set that "just works". In that sense, any proposed 
addition must be either completely in style with existing 
language state or give really enormous benefits. Being simply 
good is not enough.

Of course, good stuff is still worth discussing - language design 
moves forward and D3 is inevitable, whatever Walter intention 
here is. There are already D derivatives that do experiment in 
that domain trying to build on D experience foundation in the 
very same way as D did on top of C/C++. But that is completely 
different story - D upstream itself must first prove itself 
capable of producing at least single mature language version / 
implementation before moving forward.


More information about the Digitalmars-d mailing list