Contemplating the GUI...

Carl Sassenrath, CTO
REBOL Technologies
23-May-2008 20:22 GMT

Article #0133
Main page || Index || Prior Article [0132] || Next Article [0134] || 5 Comments || Send feedback

In my prior article, I wrote about the general, high level requirements of the R3 GUI. And, over the last few weeks, I have spent a great deal of time reviewing the current R3 VID design and evaluating how it meets those requirements. (And reading all of your comments as well.)

In general, I have concluded that there is more work to do.

Because the GUI is critically important to R3, I will be talking a lot more about it in the weeks ahead, but before I go into great detail, I want to point out an essential design rule. This rule applies to design in general, not just software. It is:

The Primary Rule of Good Design

Whenever we design something (anything) we must ask who is it designed for?

For software, we ask: "Who is the target user?"

If we don't know the answer to that question, then we will never achieve a great design because we have no model to evaluate our design concepts or validate our implementation.

Some of you may think that VID is designed for guru programmers or advanced application builders. But, that is not its purpose. After all, we know that expert programmers will always be able to make things work, regardless of the system. Look at JavaScript for example, or even VID in R2. Applications have been built with those, and they work quite well... even if it took special effort to do so.

In addition, experts always have precise demands that are difficult to satisfy for general cases. If necessary, they can always construct their own GUI system from the lower level graphics libraries.

But what about other users, ones who are not so expert? This is the group I am interested in, and I would include myself in this group as well!

Most of the time, I do not want to struggle with the GUI. Instead, I want to focus my energy into the application code itself and spend only minimal time on code related the the GUI. In fact, the perfect situation is where the GUI portion of the app is totally descriptive, and I don't even need to write a line of code for it.

If you think more about the concept of REBOL dialects, you will recognize my point goes to a deeper level. A dialect is a shortcut for expressing a concept. You can always code something without a dialect and most other programming languages are proof of that.

However, when you have a dialect, you have a special tool for getting work done faster, and for making the end result easier to build, maintain, and improve.

So, the fact that we call our GUI the Visual Interface Dialect, VID, is a hint that we really want more than just gurus to use it.

This knowledge helps us to precisely tune our design requirements.

Now, I know what some of you are thinking... you want a powerful GUI system, not just one that works for beginners or even non-programmers. But, I should point out, you actually have that right now! There's nothing to stop you, the expert programmer, from doing whatever type of graphics and GUI you need. You are free to make it as interwoven, complex, and complicated as you desire.

But, VID is for the rest of us, and VID is for me too. On this, I will not compromise. It is our primary objective. Our target user is defined.


Updated 24-Jun-2024 - Edit - Copyright REBOL Technologies -