From owner-freebsd-chat Sun Jun 15 16:21:32 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id QAA00575 for chat-outgoing; Sun, 15 Jun 1997 16:21:32 -0700 (PDT) Received: from ethanol.gnu.ai.mit.edu (we-refuse-to-spy-on-our-users@ethanol.gnu.ai.mit.edu [128.52.46.64]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id QAA00567 for ; Sun, 15 Jun 1997 16:21:27 -0700 (PDT) Received: by ethanol.gnu.ai.mit.edu (8.8.5/8.6.12GNU) id TAA14966; Sun, 15 Jun 1997 19:21:13 -0400 Date: Sun, 15 Jun 1997 19:21:13 -0400 Message-Id: <199706152321.TAA14966@ethanol.gnu.ai.mit.edu> To: molter@logic.it CC: adrian@obiwan.psinet.net.au, vas@vas.tomsk.su, chat@FreeBSD.ORG In-reply-to: (message from Marco Molteni on Sun, 15 Jun 1997 19:25:55 +0200 (MET DST)) Subject: Re: To UNIX or not to UNIX ;-). Was: PPP problems. From: Joel Ray Holveck Reply-to: joelh@gnu.ai.mit.edu Sender: owner-chat@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >> * We (ISP's) are out to provide a service to people, and make money. >> * In order to make money we have to cater for the majority of the market, >> unless of course the minority want to pay us huge amounts of money :) >> * The majority of users use a Microsoft-based OS, so the ISP which caters >> for the Microsoft-based OS, no matter how whacky Microsoft twist TCP/IP, >> PPP, or whatever into.. will be making the most money. > Sad, but surely true. Yes, but I can't say that we (the Unix community) haven't been guilty of the same behaviour. For example: * According to the RFC, rlogin should send a terminal type from the 'Assigned Numbers' list. Unix rlogin, however, invariably sends $TERM, whatever it may be. Other OS's simply have to cope. * All SMTP, NNTP, etc, etc servers must recognize a newline as a line terminator, despite the fact that the proper line terminator is a CRLF. Now, with the diversity of Unices out there, and since the Internet has been Unix-dominated for several years, we have kept up the compatibility goal of the Internet. However, we haven't been as faithful to inter-OS compatibility as we would like to pretend. Mind you, we have been a lot better than Billy Boy, but not pristine either. >> Get UNIX into the homes is what I say. Dress it up, make it easy to use, >> make it pretty, make it do what people want. Once its out there, and its >> gained some popularity, people WILL start writing more applications for >> it. > I agree when you say "make it do what people want". But, IMHO, the > problem lays in the "make it easy to use" part. I disagree. It *is* possible to make good, easy-to-use interfaces over Unix. Let's look at NeXT for an excellent example. (Pedants, don't start. I'll say that the NeXT runs a Unix clone for simplicity; it's similar enough to not make a difference.) It had a wonderful user interface, even for system configuration. Your average user could do all of his average user-type things and never see a shell prompt, or have to ask the local guru for help. Let's look at a profile of J. Random Luser and his interface requirements in the modern OS world, shall we? Now, remember, I'm not profiling you or me. I'm profiling the average computer store customer who is trying to decide whether to install Win95 or BSD on his new computer. Having spent most of my time in either computer retail and repair or technical support, I feel fairly confident in most of these assessments. (Speaking of support, I'm going to ignore that issue and concentrate instead on things having to do with the OS itself.) * Goals (roughly by importance) ** Lack of need for documentation J. Random Luser hates to read, and doesn't understand computer terms. Manuals are intimidating and boring to J. Random Luser, so it doesn't matter if we have happy wonderful hypertext interfaces to extensive, clear docs, because JRL already has a prejudice against docs. ** Ease of installation What was the most common complaint against Win95 when it was released? "I couldn't get it to install properly." "I had to install it three times to get it to work." "It didn't recognize my hardware." If J. Random Luser trys to install an OS but becomes confused and fails to install it properly, he will become frusturated and switch over to another OS, before even logging in once. First impressions are the most important, guys. ** Ability to get things done People buy on emotion, but must justify their actions internally. When I was selling computers, I would first make the person feel happy and comfortable about the shop, their computer shopping, and the computer I wanted them to buy. (This would be the computer that best fit their needs; I do believe in happy long-term customers.) Next, however, I would have to help them justify to themselves why they bought that computer. It is the same with an OS. Even though 80% of the people who purchase a computer (and OS) today don't know what they want to do with it, they still must be able to perform their tasks. Things such as bookkeeping, word processing, etc. * Requisites (in no particular order) ** Complete graphical user interface J. Random Luser hates a shell prompt. He hates to have to remember anything, particularly commands. Point and drool may not be the fastest or most flexible way to go at anything, but for all its disadvantages, it is easier to remember. ** Application compatibility J. Random Luser hears of WordPerfect. J. Random Luser hears WordPerfect is good. He doesn't know why, but he hears it's good. J. Random Luser must be able to run WordPerfect or the OS is bad. ** Shielding from hardware Most computer users can't spell ISA, let alone configure an IRQ. As much as it is possible, J. Random Luser doesn't want to even know that he has a SoundBlaster, let alone what interrupt it is at. Again, computer internals are intimidating to JRL and he doesn't want to use them. * Methods ** GUI The GUI actually has two parts: the graphical layer and the user interface layer. The graphical layer handles drawing things. The user interface layer is what the user uses to get things accomplished. X is a wonderful graphical layer, but traditionally the UI has still been the shell. Again, I point at NeXT for having a wonderful UI layer. The GNU project is currently working on a UI layer, known as Teak. I haven't seen it in action, and it hasn't yet hit release point, but it may be a good thing to add to future FreeBSD releases. Check it out at http://www.gnu.ai.mit.edu/software/teak/teak.html FMI. ** System configuration I'm sorry, guys, but this *must* be done well. How difficult would it be to write an X interface to get the /etc files handled right? Or maybe systems to take a new user by the hand and set up some of the systems (like ppp) from scratch? I can see using Guile (an extension Lisp) or a similar language to make a basic framework and library, which then can take care of configuration for other subsystems as they are added. For instance, the ppp package could add its little bit of configuration code to a standard directory, which the configuration tool could then take in and have seamless integration into the rest of the configuration. I'm really thinking of something closer to the Microsoft configuration wizards than Smit here; we need to be very sure not to scare off the user with lots of technical things. ** Hardware and kernels Kernel configuration has traditionally been an area for new Unix sysadmins to be initiated, like morse code for hams. But it really doesn't have to be that way. J. Random Luser doesn't know a kernel from a colonel, and doesn't want to either, just to get his sound card working. Sure, we all know the terrors of autodetection under ISA. I don't suggest we follow Microsoft's lead in this area, from a technical or UI standpoint. All I suggest is that we make hardware configuration kinder and gentler. ** Getting started with apps. There are some excellent apps in the ports section. Lots of them. Lots and lots. Enough to make poor JRL's head swim. Perhaps creating a distribution with some of these apps would be a good thing. You know, just some of the basic things that he wants to be able to access when you first turns on his computer: - Netscape Navigator (which we can replace with GNU E-scape when it is finished; hurry up nemo!): There we handle WWW, email, and news. Although it's not technically very good handling of the second two, it is easier to configure and use out of the box than, say, xmh. - Some basic word processor. I'm not talking about Emacs here, since JRL balks at the idea of not having different fonts and sizes (although that is in the works for Emacs). Does anybody know of a WYSIWYG (or even -ish) TeX editor or something of the sort? - Oleo, a Unix spreadsheet. (Gotta let them justify having the computer, remember!) - Nethack, xboard and GNU chess, or another game. I don't recommend xtank or xpilot because of the bandwidth issue. - A fax program. All of these should be documented somewhere. --- This is just a first run at the profile. I'd love for it to be refined as necessary. Seriously, please send me ideas for changes. I'm also not saying that we change the basic distribution to make 'a kinder, gentler BSD'. I'm proposing making a distribution mechanism so that J. Random Luser with no Unix experience can grab BSD, and have it up and running and having fun that night. > I don't think Unix is for dummies. Unix is Unix. Hard at the beginning, > but when you know it, you can do whatever you want with it, Including write a better user interface. > If I'm suggesting a configuration change of your system, I can > simply say: "modify /etc/fstab and put the line ...", I don't have to > say: "fire up your GUI, double click on the icon you find on the bottom > left of the second display ...." Terrific. Let's keep it like that. But let's also add a GUI interface to do the same thing. Pulling our system configuration out of /etc/rc and putting it in a single file as a bunch of variable assignments was the perfect setup for this. All that needs to be done is to write an interface to change those. > Surely, I do love the X window system, but I'm glad I can fix my Unix box > from a dumb terminal on the other end of the planet. No, we're not going to ever take away our beloved Unix terminal interfaces and configurations. But that doesn't mean we shouldn't supplement it. Think of writing a parser in straight C, and in yacc. Now, we use yacc because it's easier, but if we need to, we can still use C, right? You get the idea. > I don't think Unix can be made the OS of choice for the casual user, > because to achieve this goal you (probably) have to distort the > philosophy behind it. What do you see as the philosophy behind Unix? I see a wonderful toolbox... but we're all sitting here writing tools to make tools, and tools to make Unix better for making more tools, instead of using the tools we have to make Unix more popular to the masses. > I think everybody wanting to seriously learn Unix has to love computers, > has to have the right attitude at it and has to find the time to learn it. But most people don't want to seriously learn Unix. Most people also don't want to seriously learn Windows 95, or the Macintosh System, or any other OS. I only know how to change the oil on my truck; I can't diagnose or replace a blown cooling system gasket. Nevertheless, I still want to be able to drive. Similarly, J. Random Luser should be able to use his computer without having to learn a lot about Unix, and without having to submit to the tyranny of Microsoft. Happy hacking, joelh -- http://www.wp.com/piquan --- Joel Ray Holveck --- joelh@gnu.ai.mit.edu All my opinions are my own, not the Free Software Foundation's. Second law of programming: Anything that can go wrong wi sendmail: segmentation violation -- core dumped