Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: Skinning Thought

From: greggirwin:starband at: 8-Oct-2001 21:11

Hi Carl, << One worry I have with skins is what will happen if a script is written that uses most of View's default settings, but changes just a few of them. Now, if the user is using their own default skin, that script is going to over-ride a few of the skin's settings and the result will most likely look awful. We need to prevent this from happening in some way. >> Excellent point! Now, I have an opinion on this and I'd love to hear what others think as well. My view is this: You can't prevent it. (That's the short version. The looooong version follows.) People, especially software developers :), will munge things up in a million different ways, sometimes intentionally, sometimes accidentally. What I see as being valuable, if we can do it before REBOL explodes in a big way and UI splinter groups form, is to figure out how to make it easy to do things "the right way". Of course, we don't know what "the right way" is at this point, and there may be more than one path to Heaven (and surely many more paths to Hell). In my experience, software related and otherwise, I've come to the conclusion that most (but not all) people will do things in what they perceive to be the easiest way possible, even if they know it to be "the wrong way". The trick, then, is to make it easier to do things the right way and people will naturally follow suit. This applies to everything, not just skinning. You still won't get perfection, though, and you just have to live with that. Two polar views: 1) Be completely controlling so they have no choice. 2) Be infinitely flexible so they can do whatever they want. If you are in control, you have to provide everything they may ever want to implement. If you don't, they'll go around you to extend the system in ways you didn't intend. Being all things to all people just isn't feasible, and will make for a large, complex framework. It also stifles creativity. If you let them do anything they want, they have more work to do and you'll end up with a hodge-podge of UI idioms and styles, which is bad for users. People waste time reinventing many wheels. Moderation, it appears, is the key. Provide a clear path that covers most situations and make it easy to extend things in a way that is consistent with the core you provide. In the context of REBOL, we're not just talking about skinning static applications, which is hard enough, we're talking about skinning applications that may be highly dynamic. Not only from the perspective of configurability, but also the little things like displaying different images for a button on mouse-over or mouse-down events. For example, you could choose between three images (up, over, down) or you could choose between 1 and 3 combinations of effect facets applied to a single image. There is a distinction between style functionality and application functionality which must be addressed. Other things that require consideration are accessibility and limited/extended I/O device capabilities. Are we better off trying to define a set of guidelines about how people should implement skins, deal with global skin settings, override things locally, and that kind of thing (i.e. write a spec) or do we follow what RT has done and provide a "starting point", however extensive it may be? Etienne, Frank, and DocKimbel appear to have the most experience in this area. Maybe they could provide some advice for the rest of us. I wish I had some great answers for all these questions, but maybe we just have to struggle through some bad ideas before we find some good ones. Fortunately, we can look at the various OS approaches and learn from some of their mistakes as well as their successes. --Gregg