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.