2009
06.26

I am quite sure that everyone who has even thought about Linux has been directed to the in(famous) article ‘Linux Isn’t Windows’.  It’s the epitome of the classic FOSS response to criticism – It’s not Linux that has the problem, it’s you.

Fortunately, although voluminous, there is very little actually said.  So I’d like to summarise why he’s wrong in three statements.

  1. A logical fallacy will not suddenly become truth if you provide two pages of analogies.
  2. An outright wrong statement will not turn correct if you provide two pages of examples.
  3. Those that shout the loudest have the most to hide.

And onwards…

3: Those that shout the loudest have the most to hide. (Start at the end)

So lets deal with 3. first.  This is hilarious, and cements my argument for the rest of this post.  Check it out:

  1. Go to the aforementioned article
  2. Click view->page source
  3. Read and chuckle

Firstly, the whole page is generated – whoever made it knows zero about HTML and web development though – that much is clear, as proven by such gems as:

<b><span style=""></span></b><span style=""></span>

Bold, styled nothing. Which is the obvious result of a confused WYSIWYG editor.  And not even a good one.  Obviously the guy doesn’t know any HTML, which is fine.

But that’s not all, dig a bit further and you’ll find:

class="MsoNormal"

Liberally sprinkled all over the place.  A bit of digging reveals the class MsoNormal to belong to Microsoft Office.  That’s right, there is a very good chance this whole thing was made with Microsoft Word.  Despite the fact that only an idiot would use Word to make a webpage.  Isn’t that just hilarious?

This of course is the crux of the issue.  He has proven that people use technology, especially computers, to achieve goals while having to learn as little as possible.  Any idiot can make a webpage in Word or any other WYSIWYG app.  Want bold – just click the bold button, insert an image?  No problem!  The fact that the code puts in <span style=”font-style: italic;”> instead of <em> matters not – after all the writer only wants to be a living demonstration of irony, rather than having to spend a significant amount of time learning HTML and doing it the proper way.

1: A logical fallacy will not suddenly become truth if you provide two pages of analogies.

Lying with analogies is fun.  It goes like this:

  1. Make a statement comparing two things
  2. Create a (tenuous) analogy to a real-world situation
  3. Prove that your ‘side’ is superior in the analogy, so must be in real life.

Check this shit out, here’s his first ‘Why Linux rocks’ analogy

OS’s are like cars (it’s traditional)

  1. Windows is like a normal car
  2. Linux is like a motorbike
  3. Windows has doors (as it’s a car)
  4. Linux has no doors (as it’s not a car)
  5. Windows is more likely to get broken into (viruses)
  6. Linux is safe as it has no doors!

Makes perfect sense!  And there was me thinking that this was a complicated issue with nuance and subtlety. And it continues on, and on, and on.  Again the main substance of his argument: Any problem you have is with you not Linux.  If you have a problem it’s because it’s not Windows.

2: An outright wrong statement will not turn correct if you provide two pages of examples.

Let’s look at his views on Usability:

So it is that in most “user-friendly” text editors & word processors, you Cut and Paste by using Ctrl-X and Ctrl-V. Totally unintuitive, but everybody’s used to these combinations, so they count as a “friendly” combination.

So when somebody comes to vi and finds that it’s “d” to cut, and “p” to paste, it’s not considered friendly: It’s not what anybody is used to.

Is it superior? Well, actually, yes.

With the Ctrl-X approach, how do you cut a word from the document you’re currently in? (No using the mouse!)
From the start of the word, Ctrl-Shift-Right to select the word.
Then Ctrl-X to cut it.

The vi approach? dw deletes the word.

How about cutting five words with a Ctrl-X application?
From the start of the words, Ctrl-Shift-Right
Ctrl-Shift-Right
Ctrl-Shift-Right
Ctrl-Shift-Right
Ctrl-Shift-Right
Ctrl-X

And with vi?

d5w

The vi approach is far more versatile and actually more intuitive: “X” and “V” are not obvious or memorable “Cut” and “Paste” commands, whereas “dw” to delete a word, and “p” to put it back is perfectly straightforward. But “X” and “V” are what we all know, so whilst vi is clearly superior, it’s unfamiliar. Ergo, it is considered unfriendly. On no other basis, pure familiarity makes a Windows-like interface seem friendly. And as we learned in problem #1, Linux is necessarily different to Windows. Inescapably, Linux always appears less “user-friendly” than Windows.

To avoid #5a problems, all you can really do is try and remember that “user-friendly” doesn’t mean “What I’m used to”: Try doing things your usual way, and if it doesn’t work, try and work out what a total novice would do.

Well we know what a total novice would do, the writer of this article demonstrated it fine.  He’d use Ctrl-X and Ctrl-V to create a website using MS Word.

d5w, intuitive, really?  The only way you would ever know that is if you read the whole vi manual cover-to-cover multiple times.  It’s simply not guessable which is the very point of the word intuitive.  Edit->Cut is intuitive.  Ctrl-X is then intuitive as it told you the shortcut when you did it the long way.  It requires no prior knowledge.  That is intuitive.

The thing is most users don’t know about Ctrl-X and Ctrl-V, they don’t realise that Ctrl-Shift selects words.  Fundamentally 99% of computer users, when using Word, have read no manuals, have asked no questions and have no documentation.  I’ve seen people using Word who don’t even know about word wrap and press ‘Enter’ at the end of each line as you would in a manual typewriter.  Yet in the article writers mind somehow vi would be just as easy for them if they sat down in front of it rather than Word?!?  Of course, again, his argument is impenetrable – It’s not Windows.

But the insanity (and inanity) doesn’t stop there:

Subproblem #5b: Inefficient is friendly

This is a sad but inescapable fact. Paradoxically, the harder you make it to access an application’s functionality, the friendlier it can seem to be.

This is because friendliness is added to an interface by using simple, visible ‘clues’ – the more, the better. After all, if a complete novice to computers is put in front of a WYSIWYG word processor and asked to make a bit of text bold, which is more likely:

* He’ll guess that “Ctrl-B” is the usual standard

* He’ll look for clues, and try clicking on the “Edit” menu. Unsuccessful, he’ll try the next likely one along the row of menus: “Format”. The new menu has a “Font” option, which seems promising. And Hey! There’s our “Bold” option. Success!

Next time you do any processing, try doing every job via the menus: No shortcut keys, and no toolbar icons. Menus all the way. You’ll find you slow to a crawl, as every task suddenly demands a multitude of keystrokes/mouseclicks.
Making software “user-friendly” in this fashion is like putting training wheels on a bicycle: It lets you get up & running immediately, without any skill or experience needed. It’s perfect for a beginner. But nobody out there thinks that all bicycles should be sold with training wheels: If you were given such a bicycle today, I’ll wager the first thing you’d do is remove them for being unnecessary encumbrances: Once you know how to ride a bike, training wheels are unnecessary.

And in the same way, a great deal of Linux software is designed without “training wheels” – it’s designed for users who already have some basic skills in place. After all, nobody’s a permanent novice: Ignorance is short-lived, and knowledge is forever. So the software is designed with the majority in mind.

This might seem an excuse: After all, MS Word has all the friendly menus, and it has toolbar buttons, and it has shortcut keys. . . Best of all worlds, surely? Friendly and efficient.

However, this has to be put into perspective: Firstly, the practicalities: having menus and toolbars and shortcuts and all would mean a lot of coding, and it’s not like Linux developers all get paid for their time. Secondly, it still doesn’t really take into account serious power-users: Very few professional wordsmiths use MS Word. Ever meet a coder who used MS Word? Compare that to how many use emacs & vi.

“Ever meet a coder who used MS Word?” – no, but I’ve read a few articles by one.

The mind boggles at the stupidity of this.  He is basically arguing for software to take away the shortcuts and basically massively increasing the barrier of entry.  I though one of the main aims of modern computing is to bring the benefits to the masses, after all you don’t need to be a mechanic to drive a car, a plumber to flush the toilet or an electrician to use a lightbulb.  Sure, he may think that forcing people to study for hours before being able to do the slightest thing is advantageous, but the fact that just about everyone (including him) would rather use software, rather than learn software, says it all.  If he actually believed what he said he would have learned HTML, rather than just used the ‘training wheels’.

PSA: If you use some arcane shortcut key or in-obvious key sequence it does not give you a better quality of bold than if you click on the bold button.  It’s just as bold, except it didn’t take 3 days to work out how to do it.

PSA2: The really, really stupid thing is learning how to use vi does not give you a better understanding of how a computer works – it just means you have wasted loads of time.  Does knowing d5w give you a fundamental insight into the machine?  Or is it just a relic of a time when text-only is all you had?

What is amazing though is that he appears to speak for Linux – (maybe he’s channelling the spirit of tux?) – and likes to say what Linux is, what it isn’t, and even says in his summary:

It’s great, but it’s not the point. The point is to make Linux the best OS that the community is capable of making. Not for other people: For itself. The oh-so-common threats of “Linux will never take over the desktop unless it does such-and-such” are simply irrelevant: The Linux community isn’t trying to take over the desktop. They really don’t care if it gets good enough to make it onto your desktop, so long as it stays good enough to remain on theirs. The highly-vocal MS-haters, pro-Linux zealots, and money-making FOSS purveyors might be loud, but they’re still minorities.

So he is speaking for the thousands of developers (I hope he consulted them first) and got the consensus that none of them want Linux to be a success, and don’t really care about the normal users, just about catering for the already computer literate elite.

I think he’s missed the point: Linux is free, in all senses, as people like him love to state at length.  So why does he have the right to say what it is, and isn’t, what it should be and shouldn’t be, who it’s for and who it’s not for?  What is to stop anyone (who has the time and money) to create a fork to do everything that he says it isn’t?

Linux isn’t anything, it’s just a collection of software packages that happen to be released under a permissive license – that is all.  They are created by exactly the same people that make commercial software, in exactly the same way.  Talk about ‘community built’ all you want but there is no effective difference between a volunteer squad of 10 and a company hiring 10 people.  It’s just software – would Windows change fundamentally if MS just GPL’d the whole lot one day?

Linux, if this guy is their representative, is a collection of elitists who want people to think they are smarter than they really are by using complicated software (And acting like it’s easy) to try to impress.  That is if you really have to put a label on it.

8 comments so far

Add Your Comment
  1. Oh man, I missed that MsoNormal gem first time I read this hundreds of years ago.

  2. –Those that shout the loudest have the most to hide.

    You are shouting loudly here, friend.
    Sure, the article referenced and its author are terrible, and an idiot, respectively. However, you are making things no better, by presenting poor arguments against his case (and against linux in general).

    A piece of software produced by 10 volunteer devs will generally be better than one produced by 10 paid devs. Why? A few reasons:

    1) Passion. Volunteers write because they are interested, or genuinely *need* the software they are developing. They want to see it become a reality, and pour their very life and love into it. This outpouring means a greater volume of quality is produced.

    2) No Specs! Volunteers work on what the muse tells them to. This means decisions may be made while seeing the product in action, without the enormously long feedback loop of sending to QA, getting usability issue verified, sending back to project manager, getting changes made, having spec re-written, and finally being allowed to make those changes a month later. There is little reason for a paid dev to attempt to improve usability, whereas the volunteer may do so as he likes. If the volunteer made a bad decision, some other volunteer will just cull it, because it sucks.

    3. Volunteers work the product, Paid devs work their jobs. Paid devs are there to do their part, get it done, and go home at the end of the day. Volunteers are there to make the product the best thing it can possibly ever be. That means that if a paid dev sees a bug in an area unrelated to what he is working on, he’ll shrug, and probably think “someone else has got that under control….” A Volunteer is likely to (depending on the size of the project) either a) fix the bug immediately upon seeing it, or b) file a bug report so that her fellow passionate developers know of the bug and fix it.

    Now, to tackle a piece of your article that exudes arrogance and ignorance:
    –”is [vi] just a relic of a time when text-only is all you had?”
    Clearly, you have not devoted any significant time to this editor. It does have some obscure commands, but they all may be stacked, and none require moving your fingers from the keyboard, where they are most productive. Add to that the fact that vi[m] is an incredibly full-featured editor, supporting nearly every feature you could desire in an editor, and you’ve struck gold. It takes about a month to get fully up-and-running with the keycombos and workflow in vi, after which point you’ll find yourself wondering why you ever really thought your gui-based editor was worth so great.
    For an editor so powerful, glancing at the command’s perceived complexity and writing it off is an insult, and indicative of a closed mind.

    Finally on security, and windows -
    Windows is inherently insecure, and incredibly difficult to secure properly. This is because it is a complete mess when it comes to permissions and interoperability. I seem to recall a problem with IE8 beta, which deleted boot.ini, rendering the computer inoperable. *why* on earth should a web browser have access to a core system file? Even if it can read it, *WHY* can it delete it?!
    What we see here is the failure of remaining modular in system design. In Windows, IE also serves as a file browser, which means it needs to be able to access any file it wants. Okay, sure. But should it really be able to delete any file it wants, without additional prompts when it does so?
    Linux’s (and all properly designed systems’) modularity ensures that each module protects and looks after itself. This essentially creates a series of sealed vaults which add levels of complexity to exploiting vulnerabilities. Windows’ single-layer, fully-integrated approach means a vulnerability in your music player, web browser, email client, etc, can and will compromise your entire system. And since a random volunteer cannot pitch in when he finds a bug, that vulnerability is left to fester until QA verifies, a spec is written and a paid dev fixes it.

    Your best, and subsequently valid, point here is targeting the author of the original (admittedly, ignorant and worthless) article. That being pointing out his use of ms office in writing his rant. I find this incredibly ironic and pleasently humorous. Thanks for bringing that to my attention. Past that, I think the small book I wrote above speaks for me.

  3. @cyclonut

    #3 is hilarious since so many people working on linux are paid devs, take away that $ and linux would go back to the snail pace it was back in the 2.0 days. And when you are a paid dev if you aren’t working for the product, then you wont be getting a paycheck when no one buys the software.

    Software people have to spend money on, MUST be good, otherwise the masses wont go for it. Lets compare Gimp to Adobe photoshop, a classic example. Nero to k3b, yes k3b is good..but still not as good and lacks stuff as nero vision. I could probably go on and on and on.

    What IDE is as Visual Studio? Office suite as good as Microsoft Office? Video games? video drivers that aren’t binary blobs that don’t suck? Why is mono becoming the base for some of the best Linux desktop apps (primarily made by paid developers).

    Security…hahaha Linux is far behind the rigorous torture MS has had to endure. I for one welcome Linux popularity for the sole purpose to watching the fireworks. Let me use the example of the latest SCTP “potential DoS” which was really a remote root explain, vendors sure as hell don’t help their users by reporting that as a bug rather an an emergency update. Also in Windows you are not required to use IE8.

    I think you are being largely unfair here, in most points that you make.

    BTW, I have used linux since 1994 and still use it today, but I also use windows as well. Last night I was working on an application for fun using libclutter..and of course using vim since anjuta likes to crash on me when i use the make plugin (figured that out the hard way..) and after writing the code using gl backend, it was so terrible because of my driver (I think i was using the opensource ati driver since ubuntu didn’t show any blobs installed). Then i found out the functions I was using that also have horrible documentation btw, are deprecated with the .9 release, so ok must remember to change that later.

    All of this to make a window that rotates through some images in an actor stage view. When it is easily 50x easier and runs 100x better using C#/.NET/WPF in windows using sharp develop. And I know it will definitely run on other Windows systems.. the clutter thing not so much.

    It also seems everytime in opensource world people from outside a project try to get major changes worked in, its completely denied, or said project leaders start saying “you don’t pay me go away” glibc debacle as an example?

  4. cyclonut,

    Do you really believe that shit?

  5. “A piece of software produced by 10 volunteer devs will generally be better than one produced by 10 paid devs. Why? A few reasons:”

    While it is true that someone working for free will tend to be more passionate, they will also not be as likely to fix usability and niggly bugs. If a paid programmer gets told to handle a usability issue that the client has come back with he (or she) has no choice, while in the FOSS world the ‘complainer’ generally gets told to fk off. It’s a balance at the end of the day.

    Anyway my point was 10 man hours is 10 man hours, and the license in question the release is under is irrelevant, thus software really is just software. Being GPL’d does not make it superior, inferior or even different. Software has no hopes, dreams or agenda. It’s just machine code. Trying to hitch an ideology onto it is just stupid.

    Also in the context I am not shouting loudly. That reference is because the poster of that article is claiming to speak for everyone that’s written FOSS code – potentially hundreds of thousands of programmers. He is essentially a self-titled spokesperson for an entire platform, despite his obvious massive ineptitude.

    I also did not attack vi. You yourself just gave a time estimate of ‘One Month’ for a computer literate developer to get the hang of it. Personally I don’t have the time or inclination to learn it – it may be fabulous, but I really don’t feel the urge.

    Windows has its bugs. It has massive glaring ones and I am more than willing to admit this – I could easily write a blog just as long on the faults with Windows. The whole point of this exercise though is that the FOSS crowd simply will not admit that bugs exist and seem to spend their lives deflecting attention, downplaying them, denying they exist, and getting *personally offended* when I point it out. THAT is the problem. They simply don’t listen to feedback from *anyone* apart from the sycophantic yes-men that tell them everything is fabulous and anyone who has a problem is just a paid Microsoft shill.

  6. Excuse me while I ramble… ;-)

    Deliberately being obtuse doesn’t help. Consider that bit about cut-n-paste:

    How about cutting five words with a Ctrl-X application?
    From the start of the words, Ctrl-Shift-Right
    Ctrl-Shift-Right
    Ctrl-Shift-Right
    Ctrl-Shift-Right
    Ctrl-Shift-Right
    Ctrl-X

    This whole section on usability only makes sense if you abide by his rules: NO USING THE MOUSE! How stupid is that?

    Like saying, let’s learn to drive, but… NO USING THE STEERING WHEEL!

    “But we made the steering wheel just for this very purpose…”

    “yes, we know, but we really like using the pedals to steer the car.”

    “But the pedals are used to control movement of the car, not direction.”

    “Yes, but if you wanna make a really efficient car, you should be able to do everything with the pedals.”

    “What?”

    Taking the worst case of your opponent’s position and comparing to the best of your position is disingenous…

    d5w??? Are you serious? Which five words is it gonna delete? The five words next to the cursor. I don’t want those five words. There on the next line. I can’t seem to get the cursor of THIS line! How come pressing the down arrow doesn’t actually put me on the next line? Oh, you’re in “line mode”… what?

    Delete Five Words Windows Style: 1. Click 2. Drag 3. Delete.

    It’s like the Dr. Evil version of Text Editing. In fact, doesn’t “vi” come straight from the word “evil”?

    I imagine Scott: “Look. I have a MOUSE. In my ROOM. I’ll go get it, come back here and BOOM! Done!”

    Dr Evil: “Scott… you just don’t get it do you?”

    And what about if I want to delete…. uhm… I don’t know how many words. It’s several sentences long, but not the whole paragraph. Easy. Ctrl-Shift and bang on the arrow key until all the words you wanna delete/copy are highlighted.

    The vi way? Dammit! You mean I have to COUNT THE WORDS? It could be dozens…
    Well then you’d better get busy! And btw, don’t come in here asking stupid questions anymore either.

  7. If I may add:

    The “d5w” approach in vi is not even more useful or efficient. In practice, you need the VISUAL FEEDBACK of the ctrl-shift-right approach to even NOTICE how MANY words you are WANTING to delete.

    So, in order to use d5w, you would first have to COUNT the words, probably by pointing your finger at the screen, which is far less efficient than just hitting the right arrow key (you can hold ctrl and shift anyway) 5 times.

  8. @cyclonut

    * “–”is [vi] just a relic of a time when text-only is all you had?”” –> Well, I love vi/vim and I use it in my day job and on my home PC for when I need to quickly edit things (my day job includes a/o systems administration of linux and windows boxes) and, surprise, I agree with that statement. Vi is excellent for quick editing, but please god don’t try me to tell me you’ve done anything more with it than actual editing of files and an occasional find-and-replace. And those aren’t that hard to pick up if you’re in a situation where you have to be able EDIT files (as opposed to write/markup/layout) and you have some basic computer experience.

    “1) Passion” –> Haha hahahahah hahahahahahah hahahahahahahahahahahahahahahah ha ha ha …….. hahahahahahahahahahahahaha …. yeah, right, sure, whatever :)

    “2) No Specs!” –> ah yes, the almighty “something, sometime, in some state of functioning for no very good reason at all” approach to software design. That approach mostly boils down to LOQA (Lack-Of-Quality Assurance). I’m not (yet) malicious enough to actually believe it, but it sometimes seems to me that with various FOSS projects there’s a special team around to make sure the end result sucks eggs.

    “Windows is inherently insecure, and incredibly difficult to secure properly.” –> it isn’t, as any unprejudiced sysadmin who has gotten his hands dirty with enough unixen and windows versions can tell you. Both are secure to the extent that the sysadmin in charge is responsible and technically savvy. The only thing I could ‘blame’ Windows for is for trying to be so dickhead-proof that users with _average_ computer knowledge open up gaping security holes to get around it. In my time as webmaster/sysadmin I had exactly one successful breach of security and guess what, it was on a linux box (not linux’ fault btw, but the fault of a badly programmed webapp that allowed a LINUX rootkit to be installed on the system … also it was not our webapp, just our server :) ). Number of viruses in my 18 years of use of various windowzen : zero.

    Don’t you realize we’ve heard all the standard BS arguments time and again ?? Newsflash : being able to do copy-paste commands from the net into a CLI doesn’t make you a computer expert. There are other people … people who know both unix and windows well enough to appreciate the strengths and weaknesses of BOTH systems and who understand that one system-as-a-whole cannot and never will be ‘better’ than another. It’s a kind of balanced view you get from working a lot with BOTH systems.

    Unix/linux for anything that can be done with a command line, Windows for all the rest.

    I don’t know you (still talking to cyclonut) , for all I know you’re a totally cool guy and we’d get along swell in person, but you seem to be prone to the rampant misunderstanding among linux-defenders that if you have the technical knowledge and understanding of the holy guardian pc, you automatically should sing the praise of linux. In my opinion, this view mostly shows only a beginner’s understanding of computers …

    Cheers, conzo (archlinux, vista64, vi, opera, foobar, ruby, office 2007 (death and eternal damnation to openoffice), reaper, xming + xterm ….. just to give you some context)

    PS @sulfide

    “Nero to k3b, yes k3b is good..but still not as good and lacks stuff as nero vision.” –> Here I have to disagree, albeit based on usage of k3b that’s already a year or 3 in the past … but although Nero does do the job, I’ve found it a very clumsy and impractical UI ever since version whatever back in ’99 or so, when I first used it. I can’t and won’t comment on features, but purely on UI experience, K3B was a breath of fresh air.

    PSS :s/linux/GNU\/linux/ for if you’re feeling anal today ;)