From: Clifford Heath Date: 2002-07-24T10:07:12+09:00 Subject: Re: GUI's and the Rouge, Part III (yes, finally) 1/2 Tom Sawyer wrote: > it was stated that a main goal of Rouge was to create a cross-compatible > gui api that "boiled down" into the native gui of each platform. As you've found, it's a *major* piece of work. I should know - I designed and my company built such a product (called OpenUI) in the 1st half of the 90's. There are better toolkits out there for this now, of which I like Qt and fxruby best. You definitely shouldn't build your own, it's a problem that needs multiple hundreds of thousands of lines of code to solve. > i think too that this is a fantastic idea. > so that's the final piece and we end up with basically this: You've described the architecture of OpenUI, but perhaps haven't understood the factor that makes it really work: rich asynchronous message passing. I'm still of the firm opinion that this is the single integrating feature which is needed to revolutionise GUI programming. Message delivery needs to be based on hierarchies of objects, including propagation of undelivered (or partly-delivered) messages up the hierarchy, publish-subscribe propagation down the hierarchy, and proxy-address mapping for remote objects. Add that to the basic queueing facilities needed for asynchronous delivery, with a priority-nesting feature to provide some minimal sequencing control for consequential messaging (needed for remote validation for example), and you have an exceptionally powerful and flexible application framework supporting separation of presentation and semantic content to the fullest extent possible. The native GUI widgets should be assembled into hierarchies not by API calls, but by a hierarchical description language - XML probably. In fact I started making "qtml" - a Qt markup language, which allows simple assembly of arbitrary widget hierarchies (UIs), and embedded scripting to animate and control the UI. I'd love to use Ruby with this, it's the most suitable language for the purpose. Sorry that much of the above discussion is kind-of schematic, incomplete and probably confusing, I can discuss the ideas further if they ring anyone's bells. Suffice it to say that people who've used these ideas in the form of our (now obsolescent) product have found them to be truly revolutionary. -- Clifford Heath