Unix-Haters Handbook Available Online
prostoalex writes "The Unix-Haters Handbook, publication year 1994, is now available online for free as a single PDF file. Apparently some suburban Seattle company has agreed to host this 3.5MB file on its servers. The anti-foreword is written by no other but Dennis Ritchie, who proclaims: 'Here is my metaphor: your book is a pudding stuffed with apposite observations, many well-conceived. Like excrement, it contains enough undigested nuggets of nutrition to sustain life for some. But
it is not a tasty pie: it reeks too much of contempt and of envy.'" This is what should happen to more out-of-print books.
No, that's insane, it must be a conspiracy.
Username taken, please choose another one.
Perhaps, but Mozilla is not a "32-bit multithreaded operating system." If it runs in one called "Windows XP" it acts the same as a "Web Browser" called "Internet Explorer," because its using the same program to render the "pdf file," "Acrobat Reader."
I hope you mean in a non-Windows OS, because that's what the parent was referring to: the operating system, not the browser.
And even if you mean within Windows, then you'd expect it to hang, too, as it's the operating system that has the problem, not the application.
You're confusing two different things: an application may hang, that's just dodgy code in the application somewhere (which is what you're referring to) but there is no reason for an operating system to hang. That's dodgy code in the OS, and that would affect all applications equally.
The Problem with Hidden Files
Unix's ls program suppresses file whose name begin with a period (such as
Windows' dir program suppresses file whose are attributed with H (such as...what you see in attrib *.* with H with them) by default from from directory displays. Attackers exploit this "feature" to hide their system-breaking tools by giving them attribute H. Computer crackers have hidden mega bytes of information in unsuspecting user's directories.
Using file name that contain spaces or control characters is another powerful techniques for hidding files from unsuspecting users. Most trusting users (maybe those who have migrated from the Mac or from MS-Windows) who see a file in their home directory called system who't think twice about it - especially if they can't delete it by typing rm system. "If you can't delete it," they think, "it must be because UNIX was patched to make it so I can't delete this critical system resource."
Using file names that contain spaces or control characters is another powerful technique for hiding files from unsuspecting users. Most trusting users (maybe those who have migrated from whatever-OS-on-earth) who see a file in their system directory called system.dll won't think twice about it - especially if they can't delete it by typing del system.dll. "If you can't delete it," they think, "it must be because Windows was patched to make it so I can't delete this critical system resource."
The entire article is stuffed with argument as such. Worth reading only for a laugh.
Applescript is still in OSX.
Knowledge is power. Knowledge shared is power multiplied.
Most of the people who were on the haters list were actually VMS and Multics users, or like me they had used so many different O/S and written bits of them that they were in a position to make comparisons.
UNIX does come off very baddly compared to the other O/S of its era. The command line interpreter is garbage, the documentation abysmal and as for security - Denis Richie effectively invented the buffer overun bug. C was the first computer language that had dynamic memory allocation without dynamic range checking. Today we are unlearning that mistake with Java and C# which both have memory management and memory bounds checking.
UNIX is unfortunately not the greatest creation of computer science. The fact that so many youngsters look at the pile of offal uncritically is somewhat disappointing.
However take a read through the security chapter and then ask yourself whether any of the major security flaws in the UNIX architecture was an impediment to its success? If the answer is no then don't bet on the 'security issue' keeping Windows out of the data center for long. That did not work to keep UNIx replacing real O/S like VMS.
Security is pretty much like the 'character' issue in elections. The candidate that raised the 'character' issue in the last campaign was the recovering alcoholic with an undeclared criminal conviction for DUI, who had been a director of a company with Enron style accounting, had sold shares and illegally failed to report the sales to the SEC - twice, who had dodged the draft by getting his father to pull strings to parachute him into a draft-safe spot in the Texas national guard and then went AWOL for over a year.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/
It does take some training. If you're just a casual computer user and never intend to go beyond that stage, you might find that annoying. However, let's compare some similar tasks:
I don't want to belabor the point, but this isn't a reason to hate Unix. It's a way that Unix is different and less useful to some while being more useful to others.
Toddlers might sometimes wonder why people need to learn so many words and learn to speak in complicated phrases, when it seems that all you really need to do is point and cry to get what you want. Then we grow up.
The power of Unix is that you can use it to do things that its designers did not (nor did they have to) think about. Your example is flawed in its purpose because you will find it increasingly difficult to do tasks the UI people did not anticipate you would need. Such as doing something with those files you found, rename them to .bak or resize the .gifs or whatever. Until someone writes a Visual Basic program to do it and sells it for 29.95.
CLIs in general are *not* intuitive.
I wouldn't ever claim that they are. I would, however, claim that I can work far faster with a Unix CLI than my Windows coworkers can with their GUI. There will always be exceptions, but I've known many people who found Unix far easier to use once they overcame the initial barrier. I find this usability more important than being intuitive. (By the way, as someone who has always used Macs or Unix systems, I certianly don't find Windows at all intuitve, GUI or no.)
Well, we can play tit-for-tat here...
A) Cryptic Command Names. Still there in Linux
Sure, there are cryptic commands in Linux, but there are equally cryptic commands in DOS/windows. Start with "dir". Sure, its short for "directory", but imagine someone who has never used a computer before, and they want all the files in a certain place on the computer. Do you think they would ask for a "list" of files? Or a "directory" of files? Once you're in the UI, its not much better. If you use more than one version of windows you'll notice real quick that the File Explorer is completely different from version to version starting with win98 (98 worked like 95's browser with some html extensions)
B) "Unix was like Homer, handed down as oral wisdom."
I'll just take a moment to point out that this has been a tried and true method for several millenia now. Your example is pretty moot, since it took several revisions of windows before it could search into the text of files (without buying Microsoft Office and using its Find Fast utility)
C) Terminal Insanity. Still there in many ways. VT100 pops up its ugly head decades after it should have been killed.
Have you ever used a UI and wished that someone had added a checkbox for a feature you knew was possible? Added extra blanks in window's Find Files panel/dialog to do boolean searching? Unfortunately, when designing a UI, you're designing the limits of the human's interaction with the system. Someone said "I'll just put one blank there, therefore people can search for only one thing at a time." While the same goes for console user interfaces, things like screen real estate are no longer an issue, the only worry is if the user is willing to type the entire command.
D) The X-Windows Disaster.
Do you have a better idea? Something that works portably across many systems? Runs on a thin client over the network? Supports multiple color depths including monochrome? Extensible by modules? Operates transparently locally or remotely?
Doesn't have a per user licensing restriction? Doesn't use "foundation classes" that change every version of the compiler?
I hardly call X a disaster, when you consider its goals. I'm sorry you had to use Motif, but nowadays we get to choose from plenty of different widget libraries and languages, and can choose one we like.
E) Make
I don't know what you're doing to make using make so hard. Automake is tough, but for a single project, which you dont intend to be porting to other systems, a Makefile containing the targets, the sourcefiles, and the commands to compile each takes about 30-60 seconds of typing per target (especially with copy and paste and variables for compiler options), assuming you know how your source files fit together. If you want to do fancy stuff, buy a book. (See B. Not all wisdom is oral.)
If I have been able to see further than others, it is because I bought a pair of binoculars.
I think the reason so many people like linux is that they can't afford and they can't affect the alternatives. Thats the one truely innovative thing (not that I'm convinced I like it) about linux, the license.
"You can now flame me, I am full of love,"
Umm, you're a twit. The complete URL to the FILE is http://research.microsoft.com/~daniel/uhh.pdf
Notice the "microsoft.com" part in there. Is it some unwritten rule to comment before knowing your facts?
jX [ Make everything as simple as possible, but no simpler. - Einstein ]
I think this is part of the blinders that you and other people had on at the time. You hacked operating systems and because hacking some particular OS was great fun for you, you thought it was great for users. But for users, none of that mattered.
UNIX does come off very baddly compared to the other O/S of its era.
Maybe from the point of view of a Multics kernel hacker. From the point of view of a user, it looked pretty sweet in comparison to those aging, messy behemoths.
[Lack of security] did not work to keep UNIx replacing real O/S like VMS.
You are confusing the presence of security features with security. VMS had plenty of security features, it just managed to be even less secure than UNIX at the time (a pretty amazing feat).
Denis Richie effectively invented the buffer overun bug. C was the first computer language that had dynamic memory allocation without dynamic range checking.
Fortran had dynamic memory allocation, which was widely used (too bad it wasn't standardized) and no bounds checking. So did BCPL. So did many Pascal compilers (and not all Pascal compilers offered bounds checking). So, for that matter, did assembly language.
UNIX is unfortunately not the greatest creation of computer science. The fact that so many youngsters look at the pile of offal uncritically is somewhat disappointing.
The whole UHH book, as well as your posting, reek of arrogance and ignorance. Do you really think people who chose UNIX at the time weren't aware of the problems that the UHH points out? They (myself included) chose UNIX nevertheless because, in the end, it was still better for getting real work done than the alternatives.
What the world could have used was some rolling-up of sleeves and efforts to do better, either by bringing those fabulous other systems to workstation-class hardware, or by at least porting over bits and pieces of them (shells, programming languages, etc.). But, in the end, your emperor had no clothes: while people like you whined and complaied a lot, when it came down to it, you apparently really didn't know how to do any better.
The comment of one macho veteran Slashdotter have so annoyed me that I think it deserves being a main-comment for criticism:
There are no such things as "rm disasters". There are only mistakes, stop making them, or at least think before you execute.
Exactly the kind of bullshit macho attitude I was talking about.
Why don't you try doing that if you're a car company, and sell a car that can so easily be fucked up? Oh, yea, instead of having an out of-the-way hard break lever, we put a hard-break button right next to the defog button...but don't fucking bitch at us if you accidentally press the hard-break button (which is right next to the defog button) when trying to defog your windows, and your car spins around and crashes on an icy road.
Does that kind of bullshit macho attitude apply for companies making airplanes? When people making airplaies discovered that slats switches were being turned on accidentally, did they say:
"Yea, so what the slats extention switch can be accidentally turned on by an unintentional movement, possibly causing passenter-injury. Tell the pilots to be more careful and not fuck up."
No, they didn't. They said,
"Ok, so this is a problem. Why don't we cover the slats switch with a spherical clear cover that has to be unhinged before extending slats -- that way, they won't get extended at 500mph and cause the plane to trolly."
Just because many of these problems are socialogical not technological doesn't mean they're not problems. People are not robots. People fuck up -- quite a bit actually. To you perfect people writing a reply to this boldly telling me that people shouldn't "fuck up", how many times did you have to use backspace in writing that response?
social sciences can never use experience to verify their statemen
The comment of one macho veteran Slashdotter have so annoyed me that I think it deserves being a main-comment for criticism:
There are no such things as "rm disasters". There are only mistakes, stop making them, or at least think before you execute.
Exactly the kind of bullshit macho attitude I was talking about.
Why don't you try doing that if you're a car company, and sell a car that can so easily be fucked up? Oh, yea, instead of having an out of-the-way hard break lever, we put a hard-break button right next to the defog button...but don't fucking bitch at us if you accidentally press the hard-break button (which is right next to the defog button) when trying to defog your windows, and your car spins around and crashes on an icy road.
Does that kind of bullshit macho attitude apply for companies making airplanes? When people making airplaies discovered that slats switches were being turned on accidentally, did they say:
"Yea, so what the slats extention switch can be accidentally turned on by an unintentional movement, possibly causing passenter-injury. Tell the pilots to be more careful and not fuck up."
No, they didn't. They said,
"Ok, so this is a problem. Why don't we cover the slats switch with a spherical clear cover that has to be unhinged before extending slats -- that way, they won't get extended at 500mph and cause the plane to trolly."
Just because many of these problems are socialogical not technological doesn't mean they're not problems. People are not robots. People fuck up -- quite a bit actually. To you perfect people writing a reply to this boldly telling me that people shouldn't "fuck up", how many times did you have to use backspace in writing that response?
social sciences can never use experience to verify their statemen
What CLI's are not good for is general file management
,etc.
That's funny, seeing as most file management by any data center or anyone dealing with alot of files is done via CLI. It's a pretty well known fact that when you're moving data around your system, especially on a Unix system a GUI file navigator is useless especially with a high volume of files. Sorting, moving, deleting, searching within, etc, etc
Feel free to walk into a highly redundant data center that deals with large volumes of files someday. Or talk to any system administrator worth his weight in diamond.
- find . -name test.txt (why not just allow 'find test.txt')
Because that'd be ambigious. That could mean both find all files in test.txt, or as you wanted find files with name test.txt. Making behaviour like that depend on what's on disk is generally a very bad idea. If you use it a lot, put "alias fi='find . -name'" in your shells rc-file.
That's why a major new feature in Windows Server 2003 was a much-improved set of command-line tools.
That, and XML configuration files for IIS.
Windows is no longer a joke. Don't laugh at it.
The Linux community laughed at Windows for the past five years. In that time, it went from a joke to a serious contender.
No. The unix culture is that if you make the underlying tools simple and generic, you can build better high end tools on top of them than if you just target the high end first and ignore the many layers between that and the hardware. By putting a different user interface on top of unix, Apple is very much legitimizing the unix culture (and admitting that their previous OS'es had unfixable design flaws inside.)
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
As far as design philosophies go, read The Design and Implementation of the 4.3BSD UNIX Operating System. I really wish I had the Unix Haters barf bag when I did. I don't know anyone who prefers technical products on the base of their "rich history." Maybe it's because I live in Calgary, but the Unix "community spirit" is certainly not something I want to identify myself with too closely.
In the great CONS chain of life, you can either be the CAR or be in the CDR.
At the time, Lisp machines were very real, produced by several vendors, and extremely well-designed in all aspects of the user experience. They were also very expensive, falling behind in the exponential performance race, and the user had to actually agree with the design principles or curse and fight the machine. But one would do well to study them, just as an example of how the best engineering can fail in the marketplace.
Obviously, these people had no idea either how to use UNIX or who was using UNIX and why.
Actually, I think they could all use UNIX perfectly and were making a rather humorous point. Or I could be missing something.
'Standards' in computing only impress those who are impressed by things like 'standards'.
He uses windows NT to connect to a Plan 9 server. The Plan 9 server is where the work is happening. his NT server is mostly a gui terminal.
Also, he's in management now. He needs the NT box so he can read all the microsoft format documents he has to interact with for work.
he mentions these things on the link you, posted. Were you being intentionally misleading, or did you just not read it?
Darth --
Nil Mortifi, Sine Lucre
However, in Unix or Linux it takes some serious dedication to even find some of the fucking tools, much less understand how they're applied
Doesn't it all boil down to what you are used to? Watch a not so Computer literate person use windows, and think again if it is really as easy to use as you are taking for granted? We tend to forget that we accumulated our knowledge over years. Only recently I switched a friends screen refresh rate from flickering 60Hz to 85Hz - for me it was dead simple, just right click the screen, but how the heck is a normal user ever supposed to get that idea?
I think it's possible to use Linux with quite few commands on a similiar level as Windows - all you need is cp, mv, ls, cd?
It also seems to me that the documentation problem has become much less of an issue with the internet around. If it isn't in the man pages, try Google. I still prefer man pages over the windows help system for dummies, which doesn't even give you an idea of what is going on.
I couldn't care less for "innovative" features. I'd just be happy with something that works. This whole freaking "innovation" hoobah was invented by the lawyers in the Microsoft antitrust case and as far as I'm concerned it can stay there.
That's the nice thing about Unix, if you don't like something you can fix it:
but you see, my job as a user shouldn't be to fix the operating system.
Sure you adjust the car seat and the mirrors, you don't adjust the carburator and the timing belt. IMHO the default state of most *nix is to require the novice user to adjust down the carburator from "race mode" to "learning how to operate". If you think about it, these users are the ones that are less qualified to make the choice.