property syntax strawman
Michel Fortin
michel.fortin at michelf.com
Mon Aug 3 08:57:40 PDT 2009
On 2009-08-03 10:39:17 -0400, "Robert Jacques" <sandford at jhu.edu> said:
> Thank you for the very elegant expression of the problem and for
> posting the programming guidelines wiki. My criticism is that you're
> defining your context to narrowly. A function/property/field isn't
> just defined by it's name, but also by it's type and the context it's
> in. A 'transform' of type void or typeof(this) is obviously an action,
> while a 'transform' of type Matrix might be a coordinate frame. The
> object's type also conveys context information; a 'transform' on an
> autobot might be an action, while a 'transform' on it's 3D model might
> be a coordinate frame. Even if you don't know the return type off the
> top of you're head (i.e. you're doing a code review), 'transform;' or
> 'object.transform;' are obviously actions while 'auto a =
> object.transform;' or 'object.transform = a' is a noun. English solves
> it language ambiguity issues with context, so why can't the same
> solution apply to programming languages? Sure, pathological examples
> are possible, just as they're possible in English, but that's no reason
> to switch to a different language.
Interesting remark. You're right of course about the transform example
is much clearer in context. I'll conceed that point. But take note you
let the user of the API do the disambiguation instead of the designer
who wrote the function in the first place. I believe the later is
better placed to decide. That said, it's rather a minor point in my
opinion.
I'm more concerned by the ambiguity when returning callable objects or
delegates when functions have omittable parentheses.
--
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/
More information about the Digitalmars-d
mailing list