AdrianG (adriang) wrote,
AdrianG
adriang

  • Mood:

Back Online and Rant about User Friendliness.

My Broadband service was fixed on Monday Evening. Unfortunately for me, though, part of the troubleshooting process involved exchanging my old cable modem for a new model, and my old firewall was unable to get an IP address via DHCP from the new cable modem. I basically had to build a new firewall system and put it into place. This process has been long and frustrating because I chose the latest version of Linux to use for my firewall, and that version of Linux is even more user friendly than ever.

<rant>

Don't get me wrong; I understand that ordinary users need user friendliness. I want to see Linux become more widely accepted, and I know that most users don't want to learn the ins and outs of networking and Unix-like systems. I don't really think most users should have to learn such things. What I don't understand is why perfectly competent programmers keep making such stupid decisions about how to make Linux more user friendly.

There is a fundamental principle that is important to consider when trying to understand the hazards of user friendliness: A Graphical User Interface (GUI) is nearly always the least expressive interface possible to accomplishing a complex task. Every tiny detail of everything that can be pointed to, moused over, or clicked on has to be coded; The work involved in constructing a GUI to manage something which is complex, technical, and extremely non-user-friendly is staggering. In my case, there are a number of network related details I wanted to configure on my firewall, but the writers of Yast2, the GUI based user friendly systems administration tool that comes with SuSE Linux, shouldn't write a GUI tools that just configures everyone's system to be the way I want my firewall. Instead they must write Yast2 to give users a lot of configuration options. And, while it might take me a few seconds to put a command in a shell script for one small part of my configuration, it may take hours to program a GUI to safely and correctly give a user the flexibility he needs to make his choices about that small part of his configuration. GUIs are usually only good at doing the very specific things that the GUI writers expected their users to want to do, because it takes so much work just to get GUIs to handle even that much.

The programmers who write system administration GUIs like Yast2 have a lot of incentive to find ways to organize the problems they must solve so that they can re-use code, and they often choose architectures that are oriented too specifically toward common configurations to the detriment of less common configurations. Since I use computers to do less common things, I find that system administration GUIs help me with a very small fraction of the configuration problems that I face. Most of the time, the odds of the GUI programmer anticipating my needs or even something close to my needs are quite slim.

I would be happy if Yast2 were simply useless to me, but in my case, Yast2 is far worse than useless. First, it appears to be the only tool that SuSE offers for managing security related updates to my system; And second, Yast2 is designed to rebuild most of my system's configuration every time a substantial change is made. This means that, if I do any configuration by hand, every later change I make to my system with Yast2 may wipe out any changes I made without Yast2. It's not enough to make the changes I want by hand. To be safe, I have to explore a complicated system that Yast2 uses to build my configuration and integrate the changes I want to make into that system, so that when Yast2 rebuilds my configuration, it builds in my customizations, even though Yast2 was never designed to support most of those configurations.

For those of you who want to use computers to do very normal things, I'm sure user friendliness must be nice, and I really am glad it's available to you. For me, user friendliness almost always means my job is going to be at least ten times as difficult as it would be without all that friendliness.

</rant>

Adrian
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 9 comments