DIP4: Properties

Chad J chadjoan at __spam.is.bad__gmail.com
Fri Jul 24 13:30:18 PDT 2009


Nick Sabalausky wrote:
> "Chad J" <chadjoan at __spam.is.bad__gmail.com> wrote in message 
> news:h4cv6h$st6$1 at digitalmars.com...
>> Have you checked out haXe's syntax for properties?
>> http://haxe.org/ref/properties
>>
> 
> Yes, in fact, I've been using haxe a lot lately for work. It certainly beats 
> AS2 and PHP, but there's still a lot about it I really dislike, and it's 
> property syntax is one of my biggest complaints.
> 
> For those not familiar with haxe, compare the following property in my 
> current D proposal, the equivilent C#, and the equivilent haxe:
> 
> --------------------------------
> // D, current DIP4
> public int foo
> {
>     get { return value; }
>     set { value = set; }
> }
> --------------------------------
> // C#
> private int _foo;
> public int foo
> {
>     get { return _foo; }
>     set { _foo = value; }
> }
> --------------------------------
> // Haxe
> public foo(get_foo,set_foo):Int;
> private _foo:Int;
> private get_foo():Int { return _foo; }
> private set_foo(value:Int):Int { _foo = value; return value; }
> --------------------------------
> 
> That's absolutely horrific for anyone who even remotely values DRY and 
> readability (and formatting the the getters/setters on multiple lines 
> doesn't help). There are a bunch of problems with it, but the one that 
> really sticks out to me is: why in the world should I have to specify 
> special getter/setter names for every single property? What in the world is 
> the point of that? That's like being expected to specify a special name for 
> every 'if' block in the program. I don't want or need a special name, just 
> give me a damn if/getter/setter/whatever!
> 
> 

Good point.



More information about the Digitalmars-d mailing list