On 2 December 2013 19:33, Dejan Lekic <dejan.le...@gmail.com> wrote: > On Friday, 29 November 2013 at 13:44:10 UTC, Manu wrote: > >> * ARC >> * rvalue -> ref >> * virtual-by-default >> * GC improvements >> * AA fixes >> >> >> On 29 November 2013 07:01, Fra <f...@b.it> wrote: >> >> Personally I would love to see this old issue finally implemented/fixed: >>> There can be only one alias this. >>> https://d.puremagic.com/issues/show_bug.cgi?id=6083 >>> >>> What would your choice be? >>> >> > I hope virtual-by-default never gets approved. I read DIP51 and quite > frankly I am not convinced at all. It is basically "I do not want to put > final in front of my methods. Well, I do not want to put virtual in front > of my methods... But this is perhaps something for another discussion... >
There's been endless discussions on the topic. There was a link to a thread with loads of discussion. The problem is that virtual is irrevocable. It can't be removed without breaking the API, which means it's not possible to optimise a library in that way at any time after it has already been released to the wild. The converse is not true. It has also been agreed that there is very little the compiler/optimiser can do to help. It's a dangerous default, it's got absolutely nothing to do with "I don't want to type final" as you helpfully simplified it. You can type 'virtual:' at the top, and you're set. Again, the converse doesn't stand, you can't practically type 'final:' at the top since there will inevitable by SOME virtual methods. We can spin off another thread if you like, or you can read through the old ones. I don't think it's going to go any further than the other threads already did.