Nick Sabalausky wrote:
"Pelle Månsson" <pelle.mans...@gmail.com> wrote in message
news:hjt46j$5q...@digitalmars.com...
I don't understand what any of this would improve. Is the byLine example
less readable without the ()? Is it more bug prone?
The only thing achieved as I can see is that every class designer makes up
his own rules about which functions are property and which are not. If
this is somehow enforced, it will become a guessing game about how to call
no-argument functions. For what?
Class "Foo" has member "bar". Is "bar" a member variable or a member
function? Can you set it? Does it require arguments? You don't know, do you?
It's a guessing game.
To the caller, *properties are not functions*! I don't understand why we
keep having to go in circles on this. They are data. Data, data, data. Not
functions. Data. "Oh, but no, they're *implemented* as functions!" Who gives
a crap? That's *implementation*. They're data. Data, data, data. With the
proposal, if I use a class, that class has data and functions. Not "member
variables, functions called with parens, and functions called without
parens." Just data and functions. That's it. Data and functions.
So if this is enforced, and you have a function, how do you call it? *With
parens*! Why? Because it's a fucking function and functions are fucking
called with parens! For god's sake, C# has had this for years, and nobody
ever wonders "Do I use parens?" in C#, because if you're going to use
something, you already know damn well if it's a function or data. Because if
you don't know what the hell it is, you can't f***** make sensible use of it
anyway.
Relax, we're all on the same boat. Unfortunately, your view that it's
all functions and data is simplistic - it works well only when we talk
about returning simple data types. I, too, wish it were that simple.
Andrei