<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 13 March 2014 11:13, Walter Bright <span dir="ltr"><<a href="mailto:newshound2@digitalmars.com" target="_blank">newshound2@digitalmars.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="">On 3/12/2014 5:40 PM, Vladimir Panteleev wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Doesn't this sort of seal the language's fate in the long run, though?<br>
Eventually, new programming languages will appear which will learn from D's<br>
mistakes, and no new projects will be written in D.<br>
<br>
Wasn't it here that I heard that a language which doesn't evolve is a dead<br>
language?<br>
<br>
From looking at the atmosphere in this newsgroup, at least to me it appears<br>
obvious that there are, in fact, D users who would be glad to have their D code<br>
broken if it means that it will end up being written in a better programming<br>
language. (I'm one of them, for the record; I regularly break my own code anyway<br>
when refactoring my library.) Although I'm not advocating forking off a D3 here<br>
and now, the list of things we wish we could fix is only going to grow.<br>
</blockquote>
<br></div>
There are costs and benefits:<br>
<br>
Benefits:<br>
<br>
1. attracting new people with better features<br>
<br>
Costs:<br>
<br>
2. losing existing users by breaking their code, losing new people because of a reputation for instability<br>
<br>
There aren't clearcut answers. It's a judgement call. The final-by-default has very large breakage costs, and its improvement is minor and achievable by other means.<br>
</blockquote></div><br></div><div class="gmail_extra"><div class="gmail_extra">It's not minor, and it's not achievable by other means though.<br></div></div><div class="gmail_extra">It's also not a very large breaking change. In relative terms, it's already quantified - expected to be much smaller than override was; this only affects bases, override affected all branches and leaves.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">You and Andrei are the only resistance in this thread so far. Why don't you ask 'temperamental client' what their opinion is? Give them a heads up, perhaps they'll be more reasonable than you anticipate?<br>
</div><div class="gmail_extra"><div class="gmail_extra">Both myself and Don have stated on behalf of industrial clients that we embrace breaking changes that move the language forward, or correct clearly identifiable mistakes.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">One of the key advantages to D over other languages in my mind is precisely it's fluidity. The idea that this is a weakness doesn't resonate with me in any way (assuming that it's managed in a sensible/predictable/well-communicated manner).</div>
<div class="gmail_extra">I *like* fixing my code when a breaking change fixes something that was unsatisfactory, and it seems that most others present feel this way too. I've used C++ for a long time, I know very well how much I hate carrying language baggage to the end of my years.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">That said, obviously there's a big difference between random breakage and controlled deprecation.</div><div class="gmail_extra">The 2 need to stop being conflated. I don't think they are the same thing, and can't reasonably be compared.</div>
<div class="gmail_extra">I've never heard anybody object to the latter if it's called for. The std.json example you raise is a clear example of the former.</div></div></div>