The GUI to end all GUI libraries (Let's Dream!)
Christopher Wright
dhasenan at gmail.com
Mon Nov 26 19:15:08 PST 2007
Bill Baxter wrote:
> The basic idea is that you define rules rather than explicit event
> handlers, and execution of those rules is triggered by built-in
> dependency analysis. The analogy made on the web page is to a
> spreadsheet. When you use a spreadsheet you just say how the values in
> this cell depend on all the others and then it all gets automagically
> updated for you recursively whenever any dependency changes.
So a largely functional GUI framework. I think that could work decently,
though you'd need to define multiple input sources, one of them being
the non-GUI portion of your application.
> So I wonder if something like this could be done in D. Or is there
> something about the dynamic nature of Python which allows this sort of
> idea, but makes it unworkable in a static language like D?
You could do this in D or Java or C# or C or assembly, I'm sure.
> Anyway it's a neat idea that seems to me to have potential to take us
> beyond the same old event-driven paradigm that's been rehashed for years
> and starts to get quite cumbersome beyond a certain point.
One complex part is ordering event handlers. I have an event that five
things listen to, but one handler has to fire before another, which has
to fire before a third.
I haven't seen much else cumbersome with it yet, but I'm still young :)
What problems have you encountered?
> Another interesting GUI-related lib from Python-land that I have my eye
> on is Traits from Enthought [2].
I don't see how this would work. Do you register an event handler,
essentially, and that is used to determine which GUI components to show?
For me, I want codegen for my GUI stuff, and as little code as possible
interacting directly with that generated code as possible. I also want
something that makes model/view/presenter easy to use, or at least that
lets me use mock objects with minimal fuss.
And I want a dependency injection framework.
> --bb
>
> Links:
> [1] http://cheeseshop.python.org/pypi/Trellis/0.5b1
> [2] http://code.enthought.com/traits/
More information about the Digitalmars-d
mailing list