Reddit: why aren't people using D?

Steven Schveighoffer schveiguy at yahoo.com
Fri Jul 24 12:07:37 PDT 2009


On Fri, 24 Jul 2009 14:10:59 -0400, Walter Bright  
<newshound1 at digitalmars.com> wrote:

> Steven Schveighoffer wrote:
>> I don't think properties should be necessarily pure anyways.  How do  
>> you have a pure setter?  It's more of a convention that a property  
>> getter should not change the state of the containing entity, a pretty  
>> much non-enforcable convention.
>
> That's my problem with properties as a distinct syntax - they don't have  
> distinct uses or behaviors.

If you delineate what can be called how, then you elminate syntax  
ambiguities from occurring, and eliminate bizarro cases of syntax.  The  
difficulty is that the "human meaning" of a property is different than the  
human meaning of a function.  To the compiler, they're all functions, so  
you as the compiler writer aren't seeing that they are different.  I think  
we all agree that writefln = "hi"; makes absolutely no sense to a person.   
But it makes complete sense to the compiler, because it has no idea what  
the word "writefln" means to a person.

It's the exact same reason + is not the concatenation operator.   
Semantically, making + concatenate two strings together would be  
completely unambiguous from adding two integers together because strings  
do not define addition, and integers do not define concatenation.  From  
your own documentation, someone seeing "10" + 3 might think that he would  
get 13 or "103".  Even if the compiler defines what "should" happen, and  
the rules are unambiguous, it looks incorrect to the user.

But having ~ be the concatenation operator makes it completely unambiguous  
what the syntax means, regardless of what the types are.   So the compiler  
and the user are talking the same language, and the user isn't freaked out  
by the "human meaning" of the syntax.

-Steve



More information about the Digitalmars-d mailing list