Slow performance compared to C++, ideas?

John Colvin john.loughran.colvin at gmail.com
Tue Jun 4 06:26:25 PDT 2013


On Tuesday, 4 June 2013 at 12:51:35 UTC, deadalnix wrote:
> On Tuesday, 4 June 2013 at 12:29:10 UTC, John Colvin wrote:
>> On Tuesday, 4 June 2013 at 05:22:39 UTC, Andrei Alexandrescu 
>> wrote:
>>> Situation: I have a closed source library I want to use. I 
>>> test and find that it doesn't meet our requirements for some 
>>> trivial matter like the behavior of a few methods (super 
>>> common, I assure you).
>>> The author is not responsive, possibly because it would be a 
>>> potentially breaking change to all the other customers of the 
>>> library, I've now wasted a month of production time in 
>>> discussions in an already tight schedule, and I begin the 
>>> process of re-inventing the wheel.
>>> I've spent 10 years repeating this pattern. It will still be 
>>> present with virtual-by-default, but it will be MUCH WORSE 
>>> with final-by-default. I don't want to step backwards on this 
>>> front.
>>>
>>> Destroyed?
>>
>> I don't buy this.
>>
>> Overriding a method from a class in a closed source library is 
>> only a sane thing to do if the docs explicitly say you can.
>
> For what it's worth, I did it a countless number of time in 
> software that is in production right now.
>

What happens when the library author adds some critical 
book-keeping to a method that you're overriding?

>> This virtual-by-default flexibility only exists when you're 
>> working with classes that you understand the internals of.
>>
>
> No you understand its usage.

See my point above. you need to be certain that the exact 
behaviour of the original function is not in some way critical to 
the correctness of the class in general.

>
>> Basically, final-by-default is safer and faster, 
>> virtual-by-default is more convenient when working with open 
>> source libraries.
>>
>
> Once again the fast claim fail to address or even consider 
> other technique that can be used to finalize methods.

I agree it would be nice to follow another route on this. Final 
vs virtual defaults is probably an endless debate, sidestepping 
it completely with a clever finalizing technique would be ideal.


More information about the Digitalmars-d mailing list