On Wednesday, 10 April 2013 at 06:03:08 UTC, Manu wrote:
[...]

I do use virtual functions, that's the point of classes. But most functions are not virtual. More-so, most functions are trivial accessors, which
really shouldn't be virtual.
OOP by design recommends liberal use of accessors, ie, properties, that usually just set or return a variable. Wen would you ever want @property
size_t size() { return size; } to be a virtual call?

Yes, if you want to change its behavior in a derived class.

One nice feature of properties is that you can trigger actions when assigning/reading from properties.

This is very used in OO GUI and DB code in other languages.


Can you demonstrate a high level class, ie, not a primitive tool, but the sort of thing a programmer would write in their daily work where all/most
functions would be virtual?

I have lots of code from JVM and .NET languages with such examples.

OO code in the enterprise world is a beauty in itself, regardless of the language.

Likewise, I like the GC, I just want to be able to control it.
Disable auto-collect, explicitly issue collect calls myself at controlled moments, and give the collect function a maximum timeout where it will
yield, and then resume where it left off next time I call it.


I agree 100% and have that need too. I'd go further and also prefer the ability to optionally ban certain language features from use from within selective parts of my code base. As you say, I do not actually want to outright ban the GC or any other language feature (I really do use them!!!), it's only the desire to be able to have much better control over
it for the situations that demand precision and certainty.


Precisely.

Having control over D and the GC like what we're taking about in here can
turn D into a seriously awesome systems language unlike any other.


Correct, it's not quite a systems language while the GC does whatever it wants. But D needs the GC to be considered a 'modern', and generally
productive language.

Maybe something like VisualVM would help as well.

--
Paulo

Reply via email to