On 2011-10-26 21:53, Adam Wilson wrote:
It's also interesting that you bring up WPF because the project I lead,
The Horizon Project, is an attempt to create a open-source
multi-platform framework that is as easy to use as the .NET Framework
and one of it's core pillars is a declarative XML based UI design
language. I am evaluating D and so far it is blowing C++ out of the
water, (we'll need to have long conversations about strings though, I
think .NET has the right answer here) but I have to admit that I am
seriously missing Reflection. The problem is that there is currently no
way to do data-binding without member-level reflection because it is a
purely run-time concept. That said, I am researching ways around this,
and I do have ideas ... but that's not for this forum.

Are you saying that you consider using D for this Horizon project? I can recommend you take a look at DWT: www.dsource.org/projects/dwt

Somewhere down the road I've planed to create an interface/window builder for DWT using XML or something similar. I'm thinking something like how it works on Mac OS X using Interface Builder.

However, I see no particular reason to reflect on private members by
default, if you need to get data out, you should be using a public
property or method to filter the data as needed, that's kind of the
point of scoping. Private member reflection is NOT a requirement for UX,
WPF being the case in point. I personally like the solution that
Reflection in D is opt-out with both command-line options and
@noreflect. I would add that a @deepreflect option be made available for
those incorrigible souls who absolutely must reflect private members. I
would also add that reflection should be default disabled by the
compiler for code the works directly with pointers and direct memory
access (malloc/free, new/delete, etc.) and the developer can only enable
it using a compiler option.

I don't understand this one. Should the compiler disable reflection as soon as it sees malloc/free? On what level should it be disabled? I mean, the runtime needs to be able to use these functions to implement the memory manager, i.e. the garbage collector and other things as well.

--
/Jacob Carlborg

Reply via email to