Saturday, October 16, 2004

The way to start right.

Big deal if this is my first entry in the blog. You know how many entries there are out there on the Internet where everyone is like, "ooh! My first blog entrie thingie." They can't even spell "entry" correctly.

So, I'm going to start this blog off on the right foot. I'm going to do what I do best - chit chat about software. In fact, I am going to be so bold as to NOT advertise the company I work for (CubicleSoft), but rather take the most daring topic public. Yup, that's right. I am going to cover the flame war called Linux versus Windows. However, I am going to do it so well that this hosted Blog will probably be asked kindly by the folks at blogger.com to shut it down because of being slashdotted.

Linux versus Windows. The flame war of flame wars. The discussion of discussions. People have argued and pulled and fought and said both sides are going to die and neither have. Before anyone says anything, I am a product recommender. No matter what you say in the comments will affect the product I recommend: Windows. Yup, I've tried RedHat, Slackware, Debian, various window managers (including KDE and Gnome). I know how to port Windows applications to Linux - and vice versa. I know how to administer Windows and Linux. However, I still recommend Windows. I use Windows solely for its multitasking capabilities. However, that is not why I recommend Windows. See, for the Linux crowd out there reading this, in order to win me over to Linux and get me to stop recommending Windows to large corporations as well as individuals, you have to get cracking on the programming end of things. Comments in this blog won't fix the major problems I see with all distros. of Linux. However, here is the why behind why I and other people who hold the power of influence that we do still recommend Windows (get ready - here's the big secret):

Usability.

That's right folks. Windows, while occassionally clunky, is usable by everyone. This is why Microsoft is so successful year after year. Microsoft, every single year, pours millions into usability testing of their products asking those in every industry to evaluate and provide feedback. These people are typically the MVPs (Most Valuable Professionals). These people are, to use an technical term, well-pampered professionals. Basically, MVPs are the eyes and ears of the industry, have lousy-looking, not well-updated websites, but provide a valuable service to Microsoft. Microsoft also brings in people to conduct usability tests with and gain valuable feedback there as well. Usability tests are where someone sits in front of a computer and they are recorded while using a piece of software and, with Longhorn around the corner, every OS once again has one more chance to do some serious damage to the 90% market share Windows holds. After Lonhorn is released, this opportunity will close for another 7-10 long years. Microsoft is vulnerable right now and they know it.

That said, I see no usability testing happening in Linux. Every Linux user says it is "getting better," but what I continue to see is the same junk that existed back in 1996 - only now with more junk because hard drives are larger and more RAM is available. Before I even consider starting to use Linux extensively, let alone recommend it, I need to see usability come to the forefront of every last Linux developer's mind - if it doesn't, you can be rest-assured of your 10% market share - 10% of the market consists of "tinkerers" anyway. Tinkerers are a group of people that jump through hoops because they have this grand desire to tinker around with something new, shiny, or interesting - most will return to Windows shortly. The rest of us want to get the job done. You can have fun tinkering for all I care - I care about food on my table among other things.

Here is what I want to see in a Linux distro. that has the dream of touching real hardware:

1) It has to pass my virtual machine tests. I no longer run Linux on real hardware. I got fed up. If Linux wants to have even a glimmer of hope, it has to be able to run, without hardware issues, under either Virtual PC or VMWare or some other major vendor. Oh, and Bochs stinks. Emulate the CPU...my grandma's left leg (Fra-gi-le, must be French). BTW, the majority of all software development firms out there might seriously consider porting their applications to Linux if all they had to do was download, not an ISO, but a ready-made, pre-installed image of some distro. for their virtual machine software. I know this is the ultimate abhorrent evil thing you Linux people have ever been forced to think about - pre-installing a binary! How dare he suggest such an atrocity!?! Well guess what? Software developers who want to make money want that. So deal with your personal problems and get over it.

2) Burning the installation CDs should be easy. Windows ownerd the market eons ago. You are going to have to grovel at Microsoft's feet for a while. Step 1: Make a wizard that manages any needed downloads of ISOs and burns the CDs under any Windows OS. Step 2: Make it look Windows-ish...not Linux-ish. Part of usability is keeping things as familiar-looking as possible as long as possible. This means that as much as you love the stupid penguin, NO PENGUINS IN THE WIZARD! This is your selling point, don't ruin it with a "cutesy" penguin. 80% of Windows users don't understand the terms ISO, FTP, mirror, distro., occassionally CD-R, and why they have to jump through hoops to get anything downloaded at a reasonable rate. You need a wizard. You need it badly. And it needs to manage everything for the user.

3) Installation. Cut the junk. Literally. The user should be presented with the following screens and nothing else:

--- Start of Screen #1 ---
Welcome to the *Distro. Name* distribution of Linux.

You are a:

0 New User
0 Advanced User

Next > Cancel
--- End of Screen #1 ---

With "New User" selected as the default.

--- Start of Screen #2 ---
You appear to have Windows installed on this system.

Would you like to:

0 Make space for Linux.
0 Overwrite Windows. (WARNING: You'll lose your data!)

<> Cancel
--- End of Screen #2 ---

--- Start of Screen #3 ---
Ready to install.
Click Next to continue.
Go Back to make changes.

<> Cancel
--- End of Screen #3 ---

--- Start of Screen #4 ---
Installing *Distro. Name* Linux.
Do not reboot during this procedure.

(Progress indicators go here).

Cancel
--- End of Screen #4 ---

--- Start of Screen #5 ---
Thank you for installing *Distro. Name* Linux.

The CD has been ejected.
Please remove it before rebooting.

Click the Finish button to reboot the machine.

Finish
--- End of Screen #5 ---

Look how nifty that install was. No dumb X configuration. No keyboard configuration. Definitely no Disk Druid or FDISK. It just installs. Oh, and it should automatically start a low-resolution X (startx) when it boots up into Linux the first time to do keyboard, date/time, and network config. Just like Microsoft. This is usability folks. You either understand or you don't. I have a really good grasp on user wants and needs and Windows generally fits the bill because Linux is simply not cut out for the company/person.

4) X with some window manager (no one cares about the KDE/Gnome battle except geeks) should be the first thing to start. However, do not do as RedHat has done with Fedora. When you log into the default console, your username and password are on separate screens. Usernames and passwords are always and have always been on the same screen. RedHat almost had a good idea with the update manager if it was not so buggy and froze or failed downloading or crashed or downloaded so slowly or whatever for updating the system. Again, this is user unfriendly. (I'm picking on RedHat because that is my most recent experiment with Linux).

5) Wizards and UIs for everything. If a user ever, and I mean, ever, has to start a terminal session to do anything at all under the "usable Linux," I will continue to recommend Windows. Now, I know there are some things that can only be done with a command prompt, but those are "Administrative Tasks" - most of which are accessible from the Control Panel. To get RedHat Fedora to download the latest updates, I had to edit a configuration file. Yes, I'm a programmer and know how to do such things, but I refuse to recommend to anyone else an OS that requires them to edit a configuration file to stop an icon from blinking at them.

6) NO BLINKY. Really. I get migraines from any movement on my computer screen. My desktop is very unentertaining. So, don't make cursors or icons that blink, move, rotate, twirl, dance, jump, bounce, crawl, cry, laugh, eat, sleep, or even twitch one pixel. I have been known to shoot people for doing this, so don't. This includes functionality to turn off the digital clock blinky light (hint, hint KDE team). When I look at my desktop I want zero movement except for where I decide to have it not some developer who suddenly thinks they grew a braincell. 95% of all developers I've met have no clue what it means to make usable software, but they think that what they have made is better than sliced bread and everyone should use it. I shoot every third developer that thinks that way - the second one just left. So, no blinky. Don't even think about it.

7) Get some realistic icons. Icons contain some meaning. Every single icon I have seen on all Linux desktops contain almost no meaning. You would be amazed at some of the detail that can go into even 16x16 icons if anyone bothered to care about usability.

8) Toolbars. Raised buttons. If I can click something, I need to be able to see it raise when my mouse is over it if it is not obvious that it is a button. This is especially true for the "taskbar" in window managers like KDE where the KDE button doesn't appear to be a button until clicked. Very confusing to users.

9) Make a real text editor. VI, VIM, eMacs, PICO, and all the rest of them - junk. Take a look at Notepad and Notespad for Windows. I'd prefer Notespad, but Notepad will work fine. I want the same look-and-feel and don't get all fancy with the icons. I already tore out your icons in #7.

10) Simplify the "Start" menu. Why does every last software developer out there think that the kitchen sink has to be added to the menu? Rip out everything. Start over. Use words end-users understand. Keep it simple. If I were at RedHat, some heads would be rolling right now for allowing their default menus to get so full it becomes unusable.

11) Allow the taskbar to be located on the left-hand side of the screen. No popular window manager I've seen allows this (and don't tell me to recompile something with option xyz enabled after editing configuration file derf.conf, because I'll flat out ignore you - if you have to do that, it is a bug, not an "optional feature"). Linux AND Microsoft are on crack with putting the taskbar on the bottom. You can only open up 5 programs before it becomes unreadable. It takes a week to adapt to the taskbar on the left and opens up a ton of vertical screen real-estate (we've always had plenty of horizontal real-estate).

12) Make a good set of default games for Linux. Get rid of Kill Bill. Seriously, Whack-A-Mole games are so 80's and Bill is here to stay. I honestly don't care what you make, but make something popular that can only run on Linux (deny porting it to Windows in the legal agreement if you have to). Take lots of screenshots of your free game that looks good and has a great storyline (hint, hint) - not your desktop (desktop screenshots are so 80's). Make people envious. Make me envious.

13) Get rid of the MANPAGES. For pete's sake. Those things are awful. No, I have words for those things that I can't say. Besides, some women use Linux too. You could rename them to genderfreepages, but that doesn't fix the documentation. An all out effort to fix the documentation is going to have to happen if Linux is to succeed. Everyone that I know who is a serious Linuxhead agrees with me on this. So...instead of griping about it in my comments, go fix it. BTW, users do read documentation - but only if they have to. And trust me, everyone who wants to use Linux will have to read the documentation...and then read some HOWTOs and then discuss in forums and then maybe get around to installing it.

14) I have had a bad experience with hardware and Linux. I have always checked to make sure my hardware is on the Linux HCL of the distro. I wish to use. I built a PC a few years back straight from the ground-up using the Linux HCL of a specific distro. and that distro. failed to recognize the 3Com NIC! 3Com is brand name for crying out loud and the card was listed on the Linux HCL! I eventually put Win98 on the machine and that PC never blue-screened once...and it worked just fine with the 3Com card. If Linux ever hopes to win me over, get your auto-detection to work better and get IBM to start paying manufacturers for solid drivers. Windows can detect anything, including the worst hardware ever made like Winmodems.

Okay. I have ranted enough. Those 14 things are serious problems that I just simply can't see myself actually recommending anything other than Windows over. While Windows has its issues, they are minor compared to these glaring problems.

So, in short, start usability testing Linux. I highly recommend only one distro. doing this. The whole, "We need 500 billion distros. of Linux" thing is honestly annoying and end-users want one choice as long as it answers the question, "Does it get the job done faster, better, and with higher quality?"

No comments:

Post a Comment