Final by default?

Steven Schveighoffer schveiguy at yahoo.com
Thu Mar 13 05:47:55 PDT 2014


On Thu, 13 Mar 2014 04:43:51 -0400, Don <x at nospam.com> wrote:

> On Thursday, 13 March 2014 at 06:02:27 UTC, Walter Bright wrote:
>> On 3/12/2014 9:23 PM, Manu wrote:
>>> It's not minor, and it's not achievable by other means though.
>>
>>     class C { final: ... }
>>
>> does it.
>>
>>
>>> 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?
>>
>> I didn't even know about this client before the breakage. D has a lot  
>> of users who we don't know about.
>>
>>> 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.
>>
>> Breaking changes has been a huge barrier to Don's company being able to  
>> move from D1 to D2. I still support D1 specifically for Don's company.
>
> Yes, but the problem is not the changes which cause compile errors and  
> force you to change your code in obvious ways. The problem is subtle  
> changes to behaviour.
>
> The worst breaking change in D2, by far, is the prevention of array  
> stomping.
>
> After that change, our code still runs, and produces exactly the same  
> results, but it is so slow that it's completely unusable. This one of  
> the main reasons we're still using D1.

What is your use case(s), might I ask? Prevention of array stomping, I  
thought, had a net positive effect on performance, because it no longer  
has to lock the GC for thread-local appends.

-Steve


More information about the Digitalmars-d mailing list