void pointer syntax

Chris Cain clcain at uncg.edu
Wed May 16 08:19:03 PDT 2012


On Wednesday, 16 May 2012 at 11:12:19 UTC, Stephen Jones wrote:
> Cain: My understanding is that D is based on "no proper ways of 
> doing things" just get the job done. The use of properties when 
> you can use public access baffles me. So long as you are

I suppose "proper way of doing things" isn't exactly correct. 
There's always many ways of doing things, for instance, everyone 
else was suggesting a super class, which is also a correct way of 
doing things.

Usually in most languages when you're designing an interface to 
something, you specify getter and setter functions because it's a 
better way of encapsulating the functionality of a class.

> careful with the namespaces why would you want to  incur 
> function overheads that could only possibly "save" the 
> situation if you were not careful with namespaces? Another

I think this is precisely the situation most are talking about 
when they say "premature optimization." You're worried about the 
overhead of a function call on something that I would suspect 
(with good reason) will not take up more than 1% of your 
processing time.

You should worry about the function overhead on something like a 
double or triple nested loop on your main algorithm.

> anomaly I have never understood is why would you use multiple 
> property calls when you could use a single function to set or 
> get multiple items of data for the cost of a single function? 
> It is either fashion, politics, or I am missing some piece of 
> the puzzle.

Probably mainly experience that stuff like that can be 
problematic for others (and you, if you come back to it later) to 
read. Sure, if it makes sense (like "setPosition(123.3, 563.1)" 
where you can easily deduce that it's putting it at x=123.3 and 
y=563.1) then setting or getting multiple items of data is fine. 
You could use something like a struct to represent a collection 
of data like this and still maintain readability.

The thing you really have to understand, though, is that people 
don't care about it for three reasons:
1. function calls encapsulate functionality and completely avoid 
problems like you're having.
2. It's already ridiculously fast. Generally speaking, function 
calls will not be the thing slowing your program down. Especially 
if you don't even know how much time your code takes as is.
3. Generally programmer time is much more expensive than 
computation time. For instance, do you honestly think a 
programmer could spare as much time as you've taken trying to 
figure out how to save the cost of a few function calls when he 
has to get this stuff done?

The beauty of using properties is that you can mostly work your 
application like it's setting the variables directly. If later on 
you decide you _need_ it to directly set the variables, you 
_could_ just change the interface to the super class solution to 
expose the bare variables.


More information about the Digitalmars-d-learn mailing list