The MVC paradigm (made popular by the SmallTalk community) holds the key to success in areas of user interface. It has the following characteristics:
Model: the model of the data you're working with, and how it's being operated on
View: the way in which you view the data, which is independant of the data model. This is where the user interface lies.
Controller: the interaction between the view and the hardware.
Too often we try to tie the user interface for a particular task to the data and/or operations that are being performed. By separating out the view and the model, you can create a user interface that is independant of the model and consistent with the larger user interface (say of a graphical desktop environment like GNome). This allows for multiple methods of accessing the model that can be customized for the user (command line, GUI, a modal interface for new users, etc.)
In the end, this gives the person designing a particular user interface the ability to customize the interface to meet more than one need.
...from everyone's posts is the idea of adaptability. What makes communication with other humans easy? They adapt the meaning of what you say based on context and past experience. A user interface should do the same.
In other words, an advanced user should have the user interface adapt to his usage patterns, while still maintaining consistency (in terms of style, predictability, etc) with the simple user inteface of a new user.
...and becoming a competent user. I've experimented with many distributions, both Redhat and Debian derivatives for the past 18 months. It has gotten to the point where it is easier to install Linux than your it is for Windows machines. However, once the install process is done, there are three major issues, all with one central theme.
Issue 1: Configuration. The tools for configuration are becoming better, but there is no one tool that can be used for everything. Linuxconf is a great start, but it does not include nearly enough, and so several other tools or manual editing have to be used to properly configure a machine.
Issue 2: Documentation. There is documentation for almost everything I can think of. However, it is difficult to find what is needed, and often documentation is incomplete (being version or platform dependant) and/or out of date.
Issue 3: Program installation. This is the biggie. It is very difficult to properly install new software. If it comes with the distro, it's never a problem. But as soon as I want to go on the net and download a new program, I rarely do NOT have a problem. Dependancy errors, configuration difficulties, and an overall non-uniformity to each install process. For example, compare a typical RPM package to installing Corel Wordperfect... or how difficult it is to install an RPM that has a dependancy tied to one distribution or especially one kernel version.
All three of these issues relate to the disarray and overall disunity of the different methods for accomplishing each task. I'm all for there being many ways to do things. What I want is that at least ONE of the ways is complete, organized, planned out, and just plain works.
The MVC paradigm (made popular by the SmallTalk community) holds the key to success in areas of user interface. It has the following characteristics:
Model: the model of the data you're working with, and how it's being operated on
View: the way in which you view the data, which is independant of the data model. This is where the user interface lies.
Controller: the interaction between the view and the hardware.
Too often we try to tie the user interface for a particular task to the data and/or operations that are being performed. By separating out the view and the model, you can create a user interface that is independant of the model and consistent with the larger user interface (say of a graphical desktop environment like GNome). This allows for multiple methods of accessing the model that can be customized for the user (command line, GUI, a modal interface for new users, etc.)
In the end, this gives the person designing a particular user interface the ability to customize the interface to meet more than one need.
...from everyone's posts is the idea of adaptability. What makes communication with other humans easy? They adapt the meaning of what you say based on context and past experience. A user interface should do the same.
In other words, an advanced user should have the user interface adapt to his usage patterns, while still maintaining consistency (in terms of style, predictability, etc) with the simple user inteface of a new user.
...and becoming a competent user. I've experimented with many distributions, both Redhat and Debian derivatives for the past 18 months. It has gotten to the point where it is easier to install Linux than your it is for Windows machines. However, once the install process is done, there are three major issues, all with one central theme.
Issue 1: Configuration.
The tools for configuration are becoming better, but there is no one tool that can be used for everything. Linuxconf is a great start, but it does not include nearly enough, and so several other tools or manual editing have to be used to properly configure a machine.
Issue 2: Documentation.
There is documentation for almost everything I can think of. However, it is difficult to find what is needed, and often documentation is incomplete (being version or platform dependant) and/or out of date.
Issue 3: Program installation.
This is the biggie. It is very difficult to properly install new software. If it comes with the distro, it's never a problem. But as soon as I want to go on the net and download a new program, I rarely do NOT have a problem. Dependancy errors, configuration difficulties, and an overall non-uniformity to each install process. For example, compare a typical RPM package to installing Corel Wordperfect... or how difficult it is to install an RPM that has a dependancy tied to one distribution or especially one kernel version.
All three of these issues relate to the disarray and overall disunity of the different methods for accomplishing each task. I'm all for there being many ways to do things. What I want is that at least ONE of the ways is complete, organized, planned out, and just plain works.