Make const, immutable, inout, and shared illegal as function attributes on the left-hand side of a function

Joseph Rushton Wakeling via Digitalmars-d digitalmars-d at puremagic.com
Sun Oct 12 04:24:09 PDT 2014


On 12/10/14 12:53, Joseph Rushton Wakeling via Digitalmars-d wrote:
> D2 is, for the most part, excellent in this respect, but it could and should be
> even better.  Well-managed, well-documented and well-publicized breaking changes
> in support of usability and correctness are desirable, not something to be avoided.

I should add here -- I recognize the basic problem that faces any language when 
you have newcomers (or potential corporate adopters) downloading the latest 
compiler, downloading some codebase of interest to them, and finding that it 
doesn't build because of a backwards-incompatible change.  Even when that change 
was 100% justified, you risk being seen as unstable, untrustworthy, etc., and 
many people are not patient enough to stick around to hear that justification.

Now, that said, I think it's helpful to try and change the conversation from, 
"Break/don't break" to, "What would be the circumstances under which it could be 
feasible to make these desirable breaking changes?"

The original version of this email had some thoughts on that, but to be honest, 
I'd rather just ask the question, without making any assumptions about what the 
answer could or should be.


More information about the Digitalmars-d mailing list