On Fri, 29 Jan 2010 10:40:23 -0500, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

Michel Fortin wrote:
On 2010-01-29 08:18:46 -0500, "Steven Schveighoffer" <schvei...@yahoo.com> said:

Hey, it's that dead horse again, let's beat it!

Andrei and I and several others discussed this ad infinitum. You will never convince Andrei that his design is wrong :)
Andrei is the one who complained that it's difficult to know whether 'byLine' is a property in the first place. I'm just explaining why it is, and what should be done.
 I'm starting to think Anrei likes ambiguous semantics.  :-)

I'll tell you what I'd have liked: a landslide of responses to my question revealing my mistaken ways and clarifying without a shade of a doubt that byLine should be a @property. Or not. (I don't even care which.)

It's been mentioned before that tough decisions need to be made in many areas of programming. Deciding what is a property and what is not is no different.

Using byLine as the strawman does not disprove the usefulness of properties.


The fact we're having a debate about this (and Steve even says it's a clear cut case and there are other more ambiguous!) is worrisome. Take this: I got different answers from _supporters_ of @property!

Again, @property cannot provide an intuitive solution for everything, just like ranges cannot solve everything.

A good convention is one that you apply without wasting time to think of it every single time you use it: naming conventions, braces conventions, even most class vs. struct conventions. The well-defined ones work great because _they save you time_. This @property stuff doesn't save anyone time (the provider is aggravated and the client is aggravated too). Honest, I think it's quite a misfeature. If there's a possibility to fix the ambiguities of the old system, I'd kick @property into oblivion today.

The only one you stated here that is on par with @property is naming conventions. They don't save you time writing code, they save you time *reading* code. The work goes into the writing (how to name this properly? How to make the name intuitive?) and then when reading, it comes natural. Without property you lose part of that concept. The parentheses are an extension of the symbol name, defined by the author, nothing more. What this *means* is up to you. In fact, properties *are* an extension of naming conventions.

We need digitalmars.D.is_it_a_property_or_not. Whenever in doubt, people can ask a question there.

OK:

digitalmars.d.should_this_be_a_class_or_struct.
digitalmars.d.should_this_symbol_be_capitalized.
digitalmars.d.should_this_use_a_function_pointer_or_delegate.
digitalmars.d.should_this_be_const_or_immutable.

Can we ever get any work done without these?

-Steve

Reply via email to