On Saturday, 26 January 2013 at 21:48:54 UTC, Artur Skawina wrote:
[..]

Hmm, the current state of them being defined by two separate functions really isn't ideal. But introducing new keywords or magic identifiers just for this
does not seem right.

   class A
   {
       private int i;
       int foo {
           out { return i; }
           in(int v) { i = v; }
       }
   }

or

   class A
   {
       private int i;
       @property foo {
           int out { return i; }
           in(int v) { i = v; }
       }
   }

artur

In a more pefect world, we'd redefine what a variable and function is, merging the two together as one, let the compiler optimize things appropriately, and make the language issues far more consistent and simple.

For example, typeof(x) is way too simplistic to be of use when you have objects that have more than on type. For example, a property has a setter, getter, and storage type, so what should typeof(prop) return? It can only tell you one thing out of at least 3 things, so it's insufficient.

Great for C, useless for D.

We're basically finding ourselves in the same position C++ has found itself in, where the old concepts are no longer suitable for a modern language, but there's no practical way to resolve the situation without redesigning the whole language into a new one. D tried to make a better C++, and it has done a good job of that up to a point, but since it has made use of many of the old paradigms as its base, it can only do so much.

One solution is to not bother trying to add on any extra complexity that does not fit in.

--rt

Reply via email to