I'm writing this letter to the Debian community in what is undoubtedly not a very warm view but one of my stronger opinions about the Linux community. My first installation of Debian was a migration from Slackware, synchronized with a fellow slacker (vermont@gate.net), and was incited by a third coworker (donr@gate.net). To be quite frank, the installation blew goats. No if's and's or but's. It was difficult, and I loved it that way. After getting over the enormous and difficult mountain called installation, I stood atop its peak and looked down at a beautiful, green valley where the goats frolicked and the hackers played. It was a promiseland of customization. Those packages which were trivial and not worth maintaining were done by a single person. Instead of 1000 hackers worrying about whether their installation of 'less', or 'as86', or 'grep' was the latest, one hacker worried about it on behalf of the rest. This was a wonderful place after the dreadfully satisfying land of slacking. Many people still complain that Debian is difficult, if not impossible, to install and I poo on them. If they can't persevere the mountain, they should not enjoy the fruits of the valley beyond it.
My fear is that inevitably, those who have problems installing will send nasty letters to the maintainers hollering about what a disastrous distribution they have and how it sucks because the user couldn't install it. Of course, the people who have no problem installing (after the 12th time) do not write the maintainers just to inform them that once you figure the installation process out, it becomes as natural as picking the lint out of your belly button.
Eventually these maintainers, although they know they provide a powerful, complex tool, would believe that they need to convince lure more users over and gain the approval of those who are too myopic of lazy to RTFM. These great maintainers would confer and agree that perhaps the users are right and it is time to develop an easier way to install. This is the point where I say "foo!" There are numerable reasons why I believe Linux should remain the difficult, complex, cryptic, command line driven, undocumented, labyrinth of an OS as it's *nix predecessors. What I see happening is a paradigm shifting to user-friendly applications that lose complexity and robustness in the same modification. A place where we remove some of the 'arcane' options of 'tar' so that the synopsis doesn't consume an entire page and scare off our lowly MacOS refugee.[1]
I speak these words fully knowing that I am being a hypocrite. Twenty years ago any hacker worth his salt would have scoffed at my Unix skills, or my meek programming skills and insisted that we should not move to those damn magnetic tape drives but stick with punch cards. But that was different time. The people that were invading the computer culture at the time were just as geeky and withdrawn as their mentors. I see that the shift is now more widespread to a more and more unqualified public. People who have maybe owned a computer for a handful of years now are deciding that Linux is the correct tool for them and they should immediately flood our mailing lists with requests for help initializing their WinModem without the least amount of tact to be able to research these questions themselves and merely resorting to harassing those of us who are trying to progress into new areas rather than revisit old FAQs.
Now, for those who may fall into this newbie category but are just as withdrawn and sit at home thumbing their Bat Book searching to find the correct delivery flag that they should use in order to have their mail-server act as a backup should disregard this. Many people come to me as I walk through our tech support department and ask me what they should do to run Linux. I tell them that if they decide to install Linux for the sake of learning *nix, to install slackware, spend three years recompiling packages to the latest versions, reading mailing lists for bug reports and locking down their systems. I tell them if they install Linux, to never go on EFnet for help as chances are, they will be owned. I spend a few minutes telling them the first steps they should take after installing Linux, but do not tell them how to do it.
Turn off inetd
Compile and Run ssh
Do not run any services that you do not need
Seek and research all SetUID programs
Read lots and lots of documentation
This usually scares them off. If they insist on installing Linux, I tell them that I will not answer any question that I feel could have been researched and answered in less than 30 minutes. Why should I do all the work for them. -I- already know how to disable ftpd, they're supposed to be learning. I tell them that once they are past Slackware and can administer it reliably, that then, and only then, they should move to Debian. Doing otherwise, they would lose all appreciation for the free time that Debian affords us and all of its many wonders.
Part of my concern also stems from the recent (decade) move toward GUI's. I'll admit that I haven't been using Linux quite as long as I seem to think I have, but before Linux, I only ran DOS. Even when dosshell or Windows 3.0 and all the descendants arrived knocking on doors promising new ease of use, I stuck with DesqView and DOS running BBSes for the heck of it. Those who got on the BBSes, usually had at least enough computer skills to configure a terminal program and walk through the steps of creating a new account and knowing what to do once it had been created. Unfortunately, a lot of recent refugees to Linux can't even do that much. When approached and asked whether a person should install Linux, I always ask them what they are going to use it for, and they usually realize that they think they know what it's for, although they are not really sure. I know why -I- moved to Linux (The hopes of running multitasking BBSes under something better than DesqView).
At any rate, there is a movement towards GUIs in the entire computing industry. I recently acquired my first ISDN router (a 3Com OfficeConnect 530) which is a great little unit. I'm extremely happy. However, it came with this horrible utility on two extra disks (for Windows, of course). I installed it on a nearby machine and was horrified to see how incredibly useless it was. Very limited compared to the things one could accomplish by telneting to the router and using the CLI. Where am I going with this? I'm not sure, but I'm certain I've pissed a lot of people off by now so I'll keep going.
It is my firm belief (although someone will probably come up with something to disprove me) that the most powerful tools available to the advanced/power user are complicated and not user-friendly. I've sat many hours pondering why this was and my conclusion remains that the people who write powerful utilities probably aren't using GUIs. It is worth noting that mouse driven interfaces are extremely counter-productive since moving from the keyboard to the mouse and back consumes a considerable amount of typing time [2]. There may be more reasons to this. For example, it is not very easy to pass output from one GUI application to be the input for another since the data is not mere bytes which represent characters but pixels which represent characters to our eyes. This breaks the Unix tradition of chaining together powerful utilities to perform a complicated task. Instead you must envelop the entire task in a single monolithic program that will usually not share it's code with another program. [3]
Some readers may have noticed by now my glaring omission of RedHat from any discussion. Well, it is no longer omitted. I have beef with Redhat, and my intention is quite honestly not to start a flame war about distributions as there are others performing this task quite well without my help. However, I have both philosophical and technical beef with Redhat but I'll try to only discuss the technical aspects at this point. [4]
Redhat has shown itself to be the common man's Linux. It tries it's darndest to be the easiest, most intuitive, and most turnkey (I hate marketing phrases) Linux solution. It has accomplished this, but at what cost? If tomorrow there were some bug to be discovered in Redhat's distribution that was remotely exploitable for root access, the newbie Redhat user would be a) most likely unaware, b) if they were aware, most likely at an immediate loss about how to fix it, and c) possibly fix it incorrectly. My honest belief is that if you want a Unix-like environment that's totally GUI driven, go to BeOS. I run this on one of my machines and I really enjoy it. This will give the user them same sense of community as Linux, except without as many headaches, and truly more of a 'turnkey' GUI solution then Redhat. Why someone would want to learn Linux by running Redhat is beyond me. I believe it is synonymous to a Windows user saying they can use DOS just because they can use a shell that runs on top of it. What it boils down to is that Redhat tries to make SysAdmins of people who shouldn't even be DosAdmins.
It is my hope that Debian maintainers read this and realize that a larger base of users isn't necessarily a good thing. I believe that Debian has found a niche with the advanced Linux user who doesn't have the time to maintain trivial packages but doesn't want to lose the robustness of CLIs but always have the option of customizing what they wish. A base of users who would rather not download and recompile 'awk' but still have the option to download apache source, recompile it, and integrate it as the binary package would have. And finally, an excellent base of self-supporting users who appreciate Debian for the advantages it gives them and the way it keeps those annoying newbies out.
I had written this document before subscribing to serveral Debian mailing lists. I wanted to get a feel for the types of conversations on -user and -devel and -policy before deciding which list to post this to. However, in the week that I was subscribed to -user I read a great paragraph or two from a helper to a newbie. I hope he won't mind my pasting it here:
Date: Fri, 19 Mar 1999 03:15:20 +0100 From: Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de> Cc: debian-user@lists.debian.org Just remember that Linux is not Windows, but a Unix clone. So we will have more unixish structure then windowish. Every new user msut accept that. Therefore, the standard editor is not notepad, but vi. The reasons are also historical ones. I wonder what the SEUL (simple end user linux) is doing. Someone should definitely build a simple linux based on Debian targetted to ex windows user. But let's not make bare Debian to that. I don't think making Debian windowish does really help anyone. A derivative of Debian can be windowish, I would encourage everyone t try something like this.
I think this a great embodiment of my essay. I think it was very well put.