Slashdot Mirror


Explaining The Windows/UNIX Cultural Divide

giampy writes "Joel Spolsky writes a review-like article on the last book of Eric S. Raymond (The Art of Unix Programming). His views on the cultural differences among Windows and Unix programmers are well explained. Overall, an interesting read." Also on the topic of Windows, badriram writes "Microsoft is reorganizing the windows team, it seems the are separating the OS core development. Seems like things heading in the right direction in creating a more secure OS, and making it more business oriented. Read the article here."

35 of 673 comments (clear)

  1. Re:to sum it up... by Anonymous Coward · · Score: 4, Interesting

    Exactly. UNIX gives you enough rope to hang yourself, and a few extra feet just to make sure. To people that take the time to use learn how to use it properly, this IS a good thing.

  2. about cultural divide. by Lord+Kholdan · · Score: 2, Interesting

    Only thing I know about Windows/UNIX cultural divide is that I cant use the computer in the *nix world the way I like.

    And yes, that means I prefer GUI over commandline by far and would never touch commandline. To those who think it's a fault: It might be only a personal preference but trying to debate it is like trying to debate whether apples (fruits, not the computers) taste good. In that sense, Windows offers me greater freedom to do with my computer what I want to.

    1. Re:about cultural divide. by kmilani2134 · · Score: 2, Interesting
      I had a job in the marketing department of a large management and strategy consulting firm. I was in charge of their intellectual capital database as well as an alumni database and direct marketing database.

      The company had standardized on MS Office and didn't officially support anything else. The technology group was in a different city and used Oracle on the database side, but I did not have access to those resources.

      I spent well over a year trying to get things to work with MS Access and whatever else was available to me on my workstation for handling data and information.

      Eventually I found an old unused computer, put Linux on it and was then able to accomplish things which before had been either hard or impossible. A mixture of Perl, MySQL and PHP for interfaces made a lot of things possible which were otherwise very difficult.

      For large datasets Excel is worthless and Access does not give you the flexibility you might need to do massive changes or comparisons between two data sets. Perl and MySQL were far superior for manipulating large data sets.

      If I need to get things done I will use whatever tool is best for the job out of what is available to me. In a lot of cases, that means working on the command line or writing a script. I would be severely limiting my capabilities by restricting myself to fancy GUIs.

      --
      Those who trade freedom for security will lose both, and deserve neither" -- Ben Franklin
  3. Microsoft's Will to Change by Anonymous Coward · · Score: 1, Interesting

    That Microsoft has up and decided it wants to make a secure OS is of no consequence to me. The different iterations of Windows have moved from insecure and user-centered to insecure and Microsoft-centered. When networks get fast enough, I expect Windows will be loaded over a network only, and you won't be trusted to have an actual copy of the OS you bought.

    Unlike many other people, I'm not waiting on Microsoft to release a useable operating system before embracing them. I'm never buying Windows again, ever.

  4. Re:windows users are the problem... by Peganthyrus · · Score: 5, Interesting

    Well... why do you need a password to run something on your own computer?

    It's sitting right there in your home office. Behind at least one locked door. Maybe even a couple.

    I mean, I have my machine set up to automatically log me in; I turn it on and there it is, ready to go. There's me, my room-mate, and nobody else. I trust my room-mate to stay off my machine; she trusts me to stay off of hers.

    --
    egypt urnash minimal art.
  5. Re:How to tell if you are a linux fanatic. by timmarhy · · Score: 4, Interesting

    who's the troll? 1.yes linux has vunerabilities, but how many have been exploitable to the extend of the windows holes? ahh silence... 2. which windows emulator costs $300??? 3. i plug in my camera's usb... it works perfectly i didn't touch a thing, well except to browse my photos of course. the windows software that came with my camera is utter crap and doesn't work 1/2 as well. 4. there is plently of professional usage of linux outside of servers, your talking to one right now, and when was the last time you tried linux' printing abilities, they are excellent. 5. yes windows is hard to understand becuase it's closed source and poorly documented. 6. used K3b? it's easily as good as any win based cd recorder. 7. lets have a race, you install, configure and setup a mailserver/dns/fileserver/ftp server on win2003 and i'll do it on mandrake 9.2. i'll beat your ass becuase i have done both and mandrake takes 1/2 the time. 8. terminal services? x11 is built on a client server model from the ground up, unlike "terminal services which is tacked on, and thats not even getting into the horrendous cost of ms.... however some of your other points i agree with.. ( i am ignoring the obvious troll comments )video, games and multimedia are not as mature on linux. but this is hardly the fault of linux distro's as these technologies are held back by patents and copyright holders who don't have a clue. microsoft had better be careful or they will shut themselfs out and end up as the sad and lonely one looking in.

    --
    If you mod me down, I will become more powerful than you can imagine....
  6. ha ha by koekepeer · · Score: 4, Interesting

    The very fact that the Unix world is so full of self-righteous cultural superiority, "advocacy," and slashdot-karma-whoring sectarianism while the Windows world is more practical ("yeah, whatever, I just need to make a living here") stems from a culture that feels itself under siege, unable to break out of the server closet and hobbyist market and onto the mainstream desktop.

    i think the article shows a bit of a polarised image. okay, i see the point of OS advocates being too tech-oriented, but we also have some efforts that really try to aim at end users, more or less succesfull. allright, it's not as easy as using MacOSX, but it's quite close in many aspects. and quite usable for the novice, especially in the distributions that try to make it simple (xandros, lindows, etc)

    linux on the desktop? very possible. a lot more likely than the writer of this article would like us to believe IMHO

  7. reasons behind attitude by musikit · · Score: 4, Interesting

    some of what i believe is behind this Unix/Windows cultural divide is the elitist attitude. you have to be elite to use unix which just isn't true. as i've seen other people post and i agree with Apple put a pretty picture in front of unix and users aren't complaining why can't other people?

    i personnally don't care what OS i'm using. at home i'm using my computer for video games and sound engineering, so i have 1 up2date windows box for games, and a mac for sound engineering. Why'd i get a mac? because while i'm in the middle of recording a band session i can't turn to the band and say "sorry guys computer crashed i lost the last 3 hours of your work" if windows was stable enough i would be using that. At work is another story though. i write stupid docs and java code so they put me in front of a windows machine. i personnally don't care. although i worry less about my mac then my windows machine.

    My family recently decided to get DSL first thing i did was lock that computer down. i almost went so far as to remove IE with some ie removal tool (XPlite for example) but then i realize this would cause more calls to me then it would solve.

    i also find that people want a brand name. i was asked to "buy" my own machine for work and i went to one of the lesser known computer builders and the price difference was several hundred dollars compared to what they wanted me to buy from Dell. Take a guess what's on my desk.

    A lot of windows users don't care. if you gave them a mac as their first computer they wouldn't switch because they wouldn't know. the example i use alot is "how many people continue to buy automatic tranny cars over stick shift?" neither one is better or worse just a different interface but sticks are slowly getting phased out.

    a lot of people (myself included) need to stop saying "windows is for morons" or "windows is less secure use unix" and start to change our "marketing focus" to something more like "building a more structured and secure tomorrow" like it or not "Where do you want to go today" sold computers, it sold windows and increased his market share. unix needs a "where do you want to go today" why? because no normal computer gives a crap about where the source came from.

    BTW side story i was on a project where the dev team used exclusively solaris boxes. i had to write a code review document. with no MS office on my computer i wrote it in the other thing available StarOffice. i got hounded for several months by a stupid Q&A team because they couldn't find evidence that this "StarOffice Product" even existed. like just goto google and type "Staroffice" in the freaking search box.

    Again just to reiterate my point. people don't care about which OS they run. they want their computer to be like their cars. "if i got someplace else and sit in a car i should be able to drive it". We need to change the marketing strategy of UNIX.

    mod me whatever you like but some of you will think i'm flaming which i'm not. some of you will agree with me. i've said all i wanted to say. thank you for reading

  8. it's a "cultural difference"... by penguin7of9 · · Score: 1, Interesting

    It's a cultural difference in roughly the same sense that the difference between turning on a CD player and playing a musical instrument is a "cultural difference".

    Windows programming is overwhelmingly done by people with little experience and skill for people with little experience and skill. Windows programming environments are the programming equivalent of prerecorded music, painting by numbers, or ready-to-serve meals.

    And Windows programmers will never advance beyond that stage if they keep doing just Windows programmings: you no more learn programming by using Visual C++ than you learn to play the piano by playing all of Horowitz's collected works on your CD player over and over again.

    UNIX is obscure, unforgiving, and takes a long time to master. Just like a musical instrument. You won't hear musicians complain either that a violin or a piano has a user interface that is "too complex"--compared to what their craft is really about, the initial difficulties of the instrument are minor.

    But even the appreciation of art takes experience, so it is perhaps not surprising that Spolsky even fails to understand the difference.

  9. Windows programmers less ideological? I think not. by harmonica · · Score: 2, Interesting

    Most of the article is dead-on when it comes to the different cultures of development. However, the following

    I've encountered too many Unix programmers who sneer at Windows programming, thinking that Windows is heathen and stupid.

    [...]

    It's rather rare to find such bigotry among Windows programmers, who are, on the whole, solution-oriented and non-ideological.

    does not quite relect my personal experience, and I am mostly working in the Windows world (at the moment). The bigotry can be found everywhere, and I've given up on trying to explain the advantages of one culture to people who are claiming the superiority of the other one.

    Let me emphasize what an interesting read the Raymond book is. Very much recommended. Certain issues are too often considered 'common knowledge', although they're not, and the book explains the Unix culture well to those who are interested in technology, regardless of ideology. After all, a lot of things can be used on Windows, too, although they may not be the usual way to do it.

  10. Documentation??? by nickyj · · Score: 3, Interesting

    MS products and APIs have some of the WORST documentation I have ever seen. They make a point of pointing out the obvious stuff and not even telling you the important stuff. I have been spending time using the MS VSS command lines to write scripts for automation of builds and such. Well the VSS docs are VERY incomplete. They fail to meantion that output may be multi-line for commands that SHOULD come back with a single line. There is also very little information on some of the important behaviours of some of the VSS commands and the errors that come up.

    Some of the best docs I have seen are from Open Source projects. Yes sometimes the docs are incomplete, but at least you have the fall back of being able to LOOK AT THE CODE when it's necessary.

    --
    Causing Chaos Everywhere,
    Nik J.
    The strange world of a loner, in a populous city, drowning in society
  11. UN*X vs. Windows by Anonymous Coward · · Score: 1, Interesting

    old debate. it really isn't a competition.
    I think Linux needs more standardization of libs; not a rewrite and dozens of libs doing the same.

    Starting a new thread: the Unified Driver Interface is an interesting topic ;=)
    Wasn't that an Open-Source thingy sponsored by SCO??

  12. Re:Bubbling frustration by Azghoul · · Score: 4, Interesting

    I think you missed Sposky's point completely, but...

    I believe we need to have "end-user focused" programmers, and I think there are a few sneaking into our world (H Pennington, Miguel de Mono come to mind). They'd be folks who know the "unix way" but focus on the "final" solution: The end app that will be used without piping off to other apps, without having to support connections to 15 other things, whatever. Just what the user needs right then and there.

    There's a dearth of those kinds of apps now, but they seem to be arriving more and more.

  13. Haughtyness by xdroop · · Score: 3, Interesting
    This haughtiness-from-a-position-of-weakness is the biggest flaw of The Art of UNIX Programming (...)

    You know, I had a similar thought when reading this review. Mr. Spolski brings up many of the compare-and-contrast points of unix vs windows programming, and while (in my unix-centric view) most unix points stand on their own, the windows points are rather fluffed up with artificial and (in my unix-centric view) rather unconvincing hand waving. Most of his points seem to boil down to

    • windows does it this way because it is better for users; and
    • problems in windows are due to bad windows programmers mis-using the api
    ...without really being able to explain or justify either statement. So we use the Evil Registry instead of Elegant .rc Files because we want to sell millions of copies of our word processor? Why?

    In the end, Mr, Spolski's review falls into the same category that he would like to pigeon-hole Mr. Raymond's book -- an attempt to be balanced and fair defeated by the author's self-inflicted blinders.

    --
    you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
  14. My Conversation with Eric Raymond by Ilan+Volow · · Score: 4, Interesting
    About 9 months ago, Eric Raymond came to speak at my LUG. No matter what else I think of him, he's really intersting and a really good speaker. I wouldn't for a moment knock his entertainment value, no matter what else I might have to say about the guy.

    However, there was this one point during this discussing at the dinner before his speech where me and several of the LUG members were talking with him about linux GUI's and the future of the Linux Desktop. Eric Raymond said something about the whole unix system of creating back ends first and then grafting GUI's on to those later.

    My response: "But Eric, most usability experts recommend you design the interface first and then write the code".

    His response: "then they're wrong."

    My response: "But what if there's something that the backend folks didn't think of when they wrote there code that the GUI really needs? Or what if there's something in the back-end that just doesn't work once you add a GUI?"

    His response: "then it needs to be fixed."

    My response: "But what if so much code has already been written that no programmer wants to go back and make all the changes necessary to make it really work?"

    His response: "then we've got a problem."

    It was at this moment I realized two things:
    1. The Open Source leadership is just stuck in command-line land as your typical rabid, BOFH linux zealot, and is just as clueless about designing desktop software and user interfaces. They leaders of Open Source are as desktopically bankrupt as their followers, and it is unbelievably disturbing that people like this are placed in charge of leading efforts to make alternatives to windows for non-technical users.

    2. For Free Software/Open Source to succeed in being a viable alternative for non-programmers, it must be once and for all divorced from the Unix Culture. The concept of freely distributable and modifiable code must be seperated from the concept of The Unix Way.
    --
    Ergonomica Auctorita Illico!
    1. Re:My Conversation with Eric Raymond by Anonymous Coward · · Score: 2, Interesting

      One thing I've discovered is that end users can rarely explain (1) without thinking in terms of (2).

      For example, I'll generally do a simple screen mockup on a whiteboard (or sometimes static HTML), About 50% of the time the users will say "There should be a button there, and when you press it, [blah blah blah] happens". And it turns out that [blah blah blah] is significant functionality that requires a very different back-end design that I was envisioning.

      There's no way you are going to get that sort of business user feedback from a set of class diagrams or commandline switches. It requires some sort of whiteboarding or "prototype".

      So, I dunno about a Windows programmer (I do web, mainly), but the POV of the Windows User is the GUI and therefore solutions are conceptualized in terms of GUI elements. Makes you understand why VB is so popular.

  15. Wanna see Unix on the Desktop? by dacap · · Score: 3, Interesting

    The cultural values approach produces some interesting insights.

    The obvious stuff:

    1) Coding for other programmers promotes code reuse. Code reuse promotes productivity.

    2) Security is affected by code reuse. It propagates bugs resident in the reused code but avoids bugs that would be introduced should the user have to recode that functionality. The net gain is that, so long as the reused code is in a common library, fixing it once fixes multiple applications. Available source means that more (and fresh) eyes review the common code, improving the possibility of finding the bugs in the first place.

    3) Writing for end users, when done well, produces applications with better usability. Naturally it tends to sell better.

    4) Writing only for end users tends to produce inflexible applications. The user must use the program exactly as the author intended and no other way, unless the programmer takes the higher road. In the first-to-market commercial business environment, taking the higher road is as hard as pushing a rope.

    5) Literate end users is not only a contradiction in terms, it is an unreasonable expectation. Programmers cannot expect end users to learn more than the minimum needed to operate the computer because (1) they see it as a tool to to accomplish their real goal, and (2) The inner workings of the hardware and software do not interest them. Is it reasonable to expect all drivers to understand the inner workings of an automobile, or kitchen users to understand the inner workings of their dishwashers?

    6) If Unix is to succeed on the desktop, it must cater to end users.

    My conclusions:

    1) If we really want Unix to succeed on the desktop, it seems to me like we need cultural fusion. We must pay more attention to end users but without losing the values in the Unix community that produce modular, reusable, secure, reliable code.

    2) This fusion alone is necessary but not sufficient, else Apple would have more market share than it does.

    3) The cultural fusion discussed so far is in the technical world. But IT vendors' companies rest on three pillars: the technical pillar, the business pillar, and the merchandising/marketing pillar. Every company that hopes to put Unix on the desktop would be well-advised to rethink their business processes, standard contracts, and advertising so as to cater to home end users and to give business end users more visibility and consideration. First on my list of business processes to review would be the help desk metaphor. What a universally negative experience!

    What say you, technical literati?

    --
    English -- gotta love it! / The engineers refuse to refuse the rocket until the refuse is removed from the launch pad.
  16. Bottom-up AND Top-down learning together? by Cragen · · Score: 2, Interesting
    I am a "Top-Down" learner. I was able to learn HTML in nothing flat cuz I knew or could see what was I was trying to do. C++, on the other hand, had to be drilled into my head by a prof. over 3 semesters cuz I never got a feel, even yet, for what the heck I am trying to do with it in the real world. (I have yet to use it at work. I look forward to the day.)
    I am now trying to learn Perl (for work) and most sources, again, teach it bottom-up [This is a $calar. This is an @rray.] I wish they would start with [This is how to get perl use a form to ask for a password, submit the form and check the userid/password in a database, return something, and generate the next page, depending on whatever]. I know I gotta understand the foundation but I also have to generate product. I wish I could find somewhere that the two ways of teaching merge so I can generate good stuff AND, eventually, (gasp! maybe by explaining in short phrases even I can get) understand the underpinnings. It's good to have a goal.

    *cragen

  17. Where's the sequel? by biljir · · Score: 3, Interesting

    Excellent article. Now will someone do the sequel, explaining to both sides the much greater rift between the UNIX culture and the (IBM) mainframe culture?

    The world will be a better place when the UNIX partisans understand exactly why the "Those who do not understand UNIX are doomed to revinvent it, badly" quote makes IBM mainframe guys go ballistic. Compare mainframe security to UNIX security sometime for just a hint of what I'm going on about.

  18. Re:can this guy actually code? by awol · · Score: 4, Interesting

    "They don't like GUIs much, except as lipstick painted cleanly on top of textual programs, and they don't like binary file formats. This is because a textual interface is easier to program against than, say, a GUI interface"

    This is so naive as to be laughable. The thing that soooo many windows programmers do not understand is that the "text" based paradigm of the UNIX world is exactly that a paradigm and the metaphysics of that paradigm are so deeply ingrained in the approach to programming that the real benefits are often underestimated. If I write a command line program, I need only understand 4 interfaces stdin, stdout, stderr and argv and only half of them are readable! Within that, we have lines and whitespace as standard concepts, again trivial to grok.

    As a programmer it is up to me to present my output in the format understood by the stdin/argv scanner of the program I want to call and the process by which I can discover that format is of varying difficulty based on the complexity and quality of the program I wish to call, but generally pretty simple process nonetheless.

    The next generation of interaction between programs (or lets call them objects) requires a huge leap in complexity. It is this next generation paradigm that many windows programmers would claim to use. But for it to work, the self discovery of those input and output formats and some standard nomenclature to allow them to communicate with each other to make the discovery is required. For example, my spreadsheet program may have many different inputs, a clipboard, a file interface, a dynamic data interface etc etc and its outputs might be equally complex, but the critical thing is that it must be able to tell my data capture program that it is a spreadsheet stlye application and that phrase "spreadsheet" style application must make as much sense as a "stdin/stdout" style application makes today. Whilst I agree with this posters point about creating an object, and then using a GUI to call it, the point is somewhat moot since the discovery process means that in the Object focused world there is no capacity for this communication to take place and so the programmer is left with the task of doing all the mapping between objects since a "data capturey" type object doesn't really grok the metaphysics of how to present to a "spreadsheety" type application. Now, don't misunderstand, I am not suggesting that UNIX can do this any better, but the paradigm under which a unix programmer operates understands something about the metaphysics of how applications talk to each other and so the UNIX programmer will think in a reuse/talking to other programs kinda way to a level, even if it is at, overall, a lower level of functional richness, that a windows programmer cannot really hope to emulate.

    $0.02

    --
    "The first thing to do when you find yourself in a hole is stop digging."
  19. Re:Separation by js7a · · Score: 4, Interesting
    It's called automation. It's not visual basic...

    Yeah, it's also called Melissa and several other names.

    Why automation is considered more important than security is one thing, but why do people feel the need to defend that wierd choice of values? Do people who grow up on this stuff and never learn software tools (unix) methedologies really think WSH is an interesting technology?

  20. Re:Crossing coming to a Chasm near you ... by gargle · · Score: 2, Interesting

    but if you forgive me mixing my metaphors the Innovators Dilemma tells us that you can cross the chasm in a series of steps ...

    it raises its profile on emedded devices home users will become more comfortable with the idea of a Linux desktop. Similarly as corporates become comfortable with Linux in their server racks, more and more of them will consider the possibility of deploying Linux desktops, perhaps starting with places like call-centres where they don't need a fully-fledged Windows rollout.


    Certainly, the chasm can and should be crossed in a series of steps. This is exactly what Moore recommends. More precisely, he recommends establishing a beachhead by gaining control of a niche market. However, this niche market has to have certain characteristics - most crucially, it has to be part of the mainstream market in the first place i.e. other mainstream buyers must reference, trust and rely upon the recommendations made by buyers in this niche market in their purchasing decisions.

    Is the embedded device market or server market a market which desktop users will reference in their purchasing decisions? I don't think so.

    I'm probably oversimplifying the approach laid out in "Crossing the Chasm". Again, I highly recommend this book.

  21. Various slashes, a history lesson by Medievalist · · Score: 2, Interesting


    The slashes go "the wrong way" (hmm, any explicit biases there?) because the switch syntax was copied from CPM, the dominant microcomputer OS at the time. CPM in turn copied it from DEC's PDP operating systems (like RSX-11, TSX-11, RT-11, etc. etc. etc - the VAX/VMS system also inherited this syntax, incidentally, along with DCL (Digital Command Language) which is the direct descendant of CCL (Concise Command Language) and RSX Indirect).

    A stupider paradigm is Unix's re-use of the directory separator as the name of the root directory; there are some efficiencies of notation and processing that this provides but it's really profoundly counter-intuitive. It's actually worse than the exposed numeric MFD of VMS (which is also stupid, but at least it forces one to understand the mechanics of the filesystem).

    1. Re:Various slashes, a history lesson by rduke15 · · Score: 3, Interesting
      The slashes go "the wrong way" [...] because the switch syntax was copied from CPM [...]. CPM in turn copied it from DEC's PDP operating systems [...]

      Reminds me of the the famous story about the origins of the US railroad gauge:

      The US standard railroad gauge (distance between the rails) is 4 feet, 8.5 inches...an exceedingly odd number.

      Why was that gauge used?

      Because that's the way they built them in England, and English expatriates built U.S. railroads. Why did the English build them like that?

      Because the first rail lines were built by the same people who built the pre-railroad tramways, and that's the gauge they used. Why did "they" use that gauge then?

      Because the people who built the tramways used the same jigs and tools that they used for building wagons, which used that wheel spacing.

      Okay! Why did the wagons have that particular odd wheel spacing?

      Well, if they tried to use any other spacing, the wagon wheels would break on the old long-distance roads in England, because that's the spacing of the wheel ruts.

      So who built those old rutted roads?

      Imperial Rome built the first long-distance roads in Europe (and England) for their legions. The roads have been used ever since.

      And the ruts in the roads? Roman war chariots formed the initial ruts, which everyone else had to match for fear of destroying their wagon wheels. Since the chariots were made for Imperial Rome, they were all alike in wheel spacing.

      The U.S. standard railroad gauge of 4 feet, 8.5 inches is derived from the original specifications for an Imperial Roman war chariot. And bureaucracies live forever.

      So the next time you're handed a specification and wonder what horse's ass came up with it, you'll be right, because the Imperial Roman war chariots were made just wide enough to accommodate the back ends of two war horses.

      Now an additional irony to the story...

      When you see a Space Shuttle sitting on its launch pad, there are two big booster rockets attached to the sides of the main fuel tank. These are solid rocket boosters, or SRBs. The SRBs are made by Thiokol at their factory in Utah. The engineers who designed the SRBs would have preferred to make them a bit fatter, but the SRBs had to be shipped by train from the factory to the launch site. The railroad line from the factory happens to run through a tunnel in the mountains. The SRBs had to fit through that tunnel. The tunnel is slightly wider than the railroad track, and the railroad track, as you now know, is about as wide as two horses' behinds.

      So, a major space shuttle design feature--of what is arguably the world's most advanced transportation system--was determined over two thousand years ago by the width of a horse's ass. ...and you thought being a horse's ass wasn't important.


    2. Re:Various slashes, a history lesson by Mr+Z · · Score: 2, Interesting

      Given that so many things end up with non-relative paths, I find device roots to be rather annoying. A program shouldn't care if "\Program Files\FooBarBaz" is on C: today and D: tomorrow, or that "\Program Files\Foo" is on C: and "\Program Files\Bar" is on D:, or F: for that matter.

      Real symlinks would go a long way here, but only as a kludge. They'd allow you to simulate a single-rooted file hierarchy inside of a multi-rooted hierarchy. Fundamentally programs should not care where their physical storage is, only where it is in the namespace. Exposing the physical devices in the namespace requires programs to take note of it, and makes it harder for you to upgrade or change configurations later.

      --Joe
  22. Joel is off base. by Lodragandraoidh · · Score: 3, Interesting

    The very fact that the Unix world is so full of self-righteous cultural superiority, "advocacy," and slashdot-karma-whoring sectarianism while the Windows world is more practical ("yeah, whatever, I just need to make a living here")... - Joel Spolsky

    I have subscribed to Joel's mailing list for several years, and have programmed on both sides of the fence. Joel paints a black and white picture of the differences between Unix and Windows - which I must say, is not true. I have to disagree with Joel's oversimplification because he has made the same mistake that he accuses ESR of making: namely that his own monoculturalism has clouded his view of Unix programming. Anytime someone makes a statement that starts with 'the very fact', you can be sure there is less fact and more conjecture than the writer is willing to admit.

    The key error in his analysis is narrowly defining the Unix program as being a command-line 'mostly' affair that doesn't tell 'Aunt Madge' when it succeeds. This is not exactly true; while it is true of strict command line applicatioins (which Aunt Madge will not use anyway) - the GUI interfaces do not follow that formula - and programmers are free (not constrained as he would suggest) to build interfaces that meet whatever needs an end user may have - whatever their skill level.

    Just because 99% of the end users are familiar with and resist change from the Microsoft GUI does not mean that it is the best UI - it just means that people did not have much of a choice from the beginning (there were only one GUI for PCs back in the late 80s - Windows; the other major GUI was tied to the Apple Macintosh). While the Windows GUI stagnated over the 1990s, the Linux world exploded and a plethora of user interface ideas have surfaced that are effecting the new Windows interface. Same story (DOS - a rip of CP/M), different day ("yeah, whatever, I just need to make a living here").

    He also touches on, but does not explore with a self critical eye, the limitations imposed by not having source code. The dependence of Windows programmers on Microsoft APIs provides too many limitations, and increases the likelyhood of unforseen interactions that cause bugs. He whitewashes these issues by simply focusing on the size of the Windows desktop deployments vs. *nix.

    The reality is a *nix developer has all of the options available to him; he is not constricted by artificial barriers; a Windows programmer is at the mercy of Microsoft - who can change APIs at the drop of a hat.

    His quote above really hits the nail on the head: the Microsoft monoculture is about money above and beyond any moral considerations. I would much rather be a "slashdot-karma-whore" than a Microsoft-whore. From his writings over the years it is plain that he absorbed the 'money is good no matter how you get it' mentality during his stint at the company.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  23. from a former windows nut by 1eyedhive · · Score: 3, Interesting

    I used to be a 100% windows user, ntil i put together, with the help of the local linux guru/LAN party hosting guy, a linux based file server, i needed RAID, didnt have a controller card and had no use for a gui on a headless box.
    the box was red hat 8.
    in the past 9 months i've become much more intimatly familiar with *nix. My router is linux, and i just deployed two new boxes, one of them a dual boot with Win2k (for gaming). Only one of the three nix boxes has a GUI, and that right now is KDE. Granted it's a bit klunky compared to Win2k's, in fact ir reminds me more of Windows 95's desktop. Win2k's file manager/web browser/ftp client combo is nice, just type in a different address, but it has many, many, many bugs and holes.

    I toyed with the idea of setting up a nix box for my parents, just mozilla, evo and OO.o. until i found out that they needed Quicken 2003 (Crossover didnt deliver).

    In any case, I like nix better for some things, windows for others. Is nix suitable for use by the general population? no. it took me 6 months to shake windows logic, the gneral populus would keel over and die, at the least they'd be screaming mad.

    --
    Logistical Chaos Officer http://www.slagg.org - LAN Gaming in Sarasota FL,USA
  24. My estimation of ESR has gone up by Anonymous Coward · · Score: 2, Interesting

    I agree with ESR here. In fact, my estimation of him as a programmer has gone up a good deal based on his answer.

    If you design the UI before you write the program, chances are you are writing the wrong program. It is not possible (except in trivial circumstances) to find all your requirements up front. Any attempt to do so will result in oddly behaved programs. By thoroughly understanding your problem domain (using less than finished UIs) you have the best chance of eventually creating a decent UI.

    If you get the problem domain wrong when you are creating the back end, you have less cultural baggage to contend with when you change it. Changing UI is difficult, because people get used to what they had. Even if it is arguably wrong, chances are people won't want you to change it. They could care less if you change the back end. Therefore, if the back end is broken, fix it. Easy as pie. If the front end is broken, you're in a world of hurt.

    Now for the last point, which indicates that ESR really knows what he's talking about. If you've already written so much shit in your back end that no-one wants to look at it, you may as well go shoot yourself. You are well and truely fucked. Because if you can't change your back end, your program is dead. This is true of all programs. If you are afraid to change it, you can no longer work on it. The solution? Create a culture where change is good.

    Don't know why I'm writing this. The story's old enough that no-one will probably look at it. Oh well.....

  25. Re:Separation by DrSkwid · · Score: 2, Interesting

    A Universal Computing Machine is a white elephant.

    The idea that there is one true O/S is ludicrous.

    I cling to plan9. 256 colours, no multi-media, I can't even play mpegs on it.

    It doesn't have a web browser worth using.

    It has no RDBMS or a dedicated file browser.

    No icons. No buttons.

    http://www.proweb.co.uk/~matt/screeny_dec_03.gif

    But it suits my computing needs for doing work.

    Windows isn't reviled because it is used by common people.

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  26. Re:Separation by Zeinfeld · · Score: 2, Interesting
    security == simplicity complexity == insecurity

    On that score the most secure O/S would be CP/M or MSDOS...

    Shaddow passwords are more complex than the original UNIX design,. they are empirically substantially more secure.

    Unix is a very complex operating system. There are dozens of different formats for configuration files. A large part of the operating system is written using scripting languages and for some reason these will typically be written in four or five different variants of the same scripting language. There is little or no consistency in the architecture, where there is consistency (everything is a file) it causes strange contortions as an object that is clearly not a file is crammed into the same impoverished data model.

    You can bolt on an encrypting file system to Linux, but the crypto layer used as a result will be entirely disjoint with any crypto for messaging, single sign on etc. As a result almost no Linux users have an encrypting file system even installed on their laptop. This has been standard on Windows for some time.

    Complexity is certainly to be avoided in security systems. But not at the expense of functionality. If you took an original UNIX machine and stood it up on the net it would be rooted in minutes.

    --
    Looking for an Information Security student project suggestion?
    Try http://dotcrimeManifesto.com/
  27. Re:Separation by EvilTwinSkippy · · Score: 4, Interesting
    This type of idiocy is not unique to windows. I have seen people do exactly the same thing in UNIX. They just did not make it to the UNIX core because that has barely changed in twenty years. So the argument that UNIX is good security wise starts to look remarkably like the argument that a stopped clock is right twice a day.

    Um, yes that lunacy IS unique to windows. Unix as a practice does not allow email apps to operate as root. A web server running with wheel privilages is considered a design flaw. While it is possible to create an environment where a script could enter a Linux box and infect the system, you would have to have the perfect storm of inept sysadmins running deliberately loose settings, exploiting a bug in the software.

    All that comes free with Windows.

    The chances of that same script being able to infect a second machine is near zero. The other machine would have to be a near clone of the first.

    As far as Unix being locked in time, I would like to point out that we have been using Kerberos and Ldap long before Windows thought it was a good idea. (For your edification, Active Directory is an adulterated implementation of Kerberos and LDAP.) NT and it's ilk are also POSIX complient, meaning they strive to be unix-like.

    I should also add that Unix does not have a giant world writable configuration system. Regedit is all I need to access the security files, system configuration settings, even policies. Show me a Windows setup that operates without the GUI, without Visual Basic, and without the registry. Then talk to me about security.

    --
    "Learning is not compulsory... neither is survival."
    --Dr.W.Edwards Deming
  28. Re:Separation by CondeZer0 · · Score: 3, Interesting

    Unix originally didn't even have a network stack, so you would have a hard time finding a way to "root it in minutes", not to mention that TCP/IP didn't even exists at the time.

    Shadow passwords are more complex than the original UNIX design
    Shadow passwords are not a solution, shadow passwords are an ugly hack. Of course the most secure solution is not the simplest. In the this case, shadow passwords were barely enough for stand-alone systems; in a networked environment you need a different kind of distributed authentication framework, and that is what factotum/secstore provide with a relatively low complexity keeping in mind the implicit complexity of the problem domain.

    As for problems with how in Unix "everything is a file", the problem is not with the original Unix ideas, but with how some misguided souls(*cough* USL, *cough* BSD, *cough* SUN, *cough* RMS/GNU, *cough* Linux, *cough* GNOME, ...) didn't have a clue what they were doing(not to mention they even did a pathetic job at fucking up the original Unix ideas... hell, at least VMS had technical quality and some consistency!).

    Who added most of the networking functionality to Unix? a bunch of clueless undergrads in Berkeley, really, who is surprised about the result(BIND, sendmail, etc..)?

    Unix, in it's original and "pure" form, evolved, and most if not all the original problems where *fixed*, and so Plan 9 was born, more than 10 years ago, but the "UNIX community"(read, "bunch of misguided clueless religious fanatics") never even understood what Unix was supposed to be like, and more than 30 years later they keep repeating the same mistakes again and again, but now they don't have enough with their own mistakes, that they need to copy others mistakes too(see GNOME...).

    There is nothing wrong with the original Unix ideas; yes, there were some horrible mistakes(*cough* suid, /etc/passwd, ...) but the basic ideas were solid(and in good part based in the best of MULTICS), the problems is people that _never_ understood those ideas, the people that really understood them fixed the problems and kept moving forward(until Lucent killed them anyway).

    None of the problems you mention applies to Plan 9(and some of them nor to the last version of Research Unix), and in most cases neither to what Unix was originally.

    BTW, Plan 9 doesn't even have the concept of "root" or "Administrator", so it can hardly be rooted, as for buffer overflows, all you need is sane libs to deal with string manipulation, which it's true the original Unix didn't have, but the problem is people that in more than 30 years is incapable of fixing a broken lib design, the original Unix designers fixed the "problem" *long* ago.

    Best wishes

    uriel

    --
    "When in doubt, use brute force." Ken Thompson
  29. What an idiot by Anonymous Coward · · Score: 1, Interesting



    No end users for Unix based systems? What an idiot.

    First off I have programmed on systems ranging from IBM mainframes through the minis and into the PC"s and unix workstations. Every unix workstation I've seen since about 1985 or so has had end users. Who does Joel think is sitting between the chair and the keyboard anyways.

    Most IBM mainframes have end users - at least the tellers in the bank do look like end users to me. All the mini's I ever saw had end users too. So what is this guy flapping his lips about.

    As for error messages? M$ stripped the error codes out of the stacks in NT4.0. I saw exactly the same text comming out of OS/2 and on many occations and had to go to my OS/2 machine and call up the error in order to find out what was wrong. NT4.0 was zero help. This is one reason I've abandonded NT.

    Not only this - I've found that I could not copy files over the net with NT networked into OS/2. The files failed to arrive 100% of the time with a network copy. FTP did work. NT never provided a single error message. So this fact alone provides proof that Joel does not know what he is talking about.

    A test many can try is this. Take a windows 95 machine and an external SCSI hard drive. Do say a dir/s so it will search the disk. While it is doing this, turn off the drive.

    You'll find that winders does not provide any message at all that the operation failed. It is very clear that M$ is quite content to put bad data into the end users files or to throw away the data completely rather than deal intelligently with a problem. This is NOT the case with UNIX.

    So IMHO Joel has no credibility at all. I think if one checks back to what he did while at microsoft we'll find that integrating the Visual Basic scripting languge into word is one of his accomplishments.

    To do something like this is STOOPID from a security standpoint. There is far too much power in the BV system. A word document from a black hat source can ruin your system. Did anyone ask the question why a word processor should be able to run any old code from any old source?

  30. End Users Are Not Morons! by digital_franciscan · · Score: 2, Interesting
    Where does this notion come that any human activity other than programming computers is second-rate and only worthy of scorn? The "end-user" is not always some stupid moron. In fact, this vast category of "end-users" will display the usual bell curve for logical intelligence (the usual measuring rod for computer aptitude). That means that a lot of people using computers but who are not programmers will also be extremely intelligent -- but they have other tasks toward which they prefer to devote their intelligence. There are only so many hours in the day, after all.

    There are also other people who, while scoring low on logical intelligence, score extremely high on social intelligence, kinetic intelligence, musical intelligence, etc. These people are just as talented as any UNIX programmer, only in another domain.

    Are all these people, regardless of their intelligence in whatever domain, unworthy of being offered a computer experience that is straightforward and consistent? Must the whole world become programmers at a professional level? Because that's the underlying message of a lot of the RTFM crowd.

    There's a reason so many creative people gravitate toward the Macintosh, with its (theoretically, at least) "every program works like every other program" paradigm. They simply have other things to do with their lives than read "man" pages on building drivers, thousand-page tomes on UNIX programming, and memorizing 15 different and sometime contradictory GUIs and keyboard command sets.

    The next time you are being given an injection by a nurse, enjoying a dance performance, or benefiting from the skills of an office peacemaker, remember that they are also computer users. If that nurse spent all of her time programming the myriad instruments she uses to monitor your health, she probably wouldn't have time to actually ... well, monitor your health -- probably wouldn't even pay attention to all the nonverbal (and non-instrument) cues that tell her how you are doing.

    It takes all kinds of people to make a world. We all need each other. Non-programmers need programmers to give us these potentially marvelous tools. Programmers need other programmers to create tools that are useful for programmers. And someone must intervene between the programmer and the "end user" to ensure that these tools are actually useful to a general population. (Hence the Macintosh, as Joel pointed out.) And you, Mr. Programmer Guru, need nurses and dancers and musicians and cooks and, well, friends and family who's skills are in being your friend and your family. It's not a question of which culture is superior. It's more: how can the best of all cultures mesh?

  31. plus ca change, plus ca meme chose by jbaltz · · Score: 4, Interesting
    It's all been said before by more famous Unix haters (links to Microsoft, 'natch).

    I'm surprised Joel didn't take on some other major differences:
    • Monolithic versus small parts
    • Just works versus elegant (but might not work)
    • GUI-oriented versus service-oriented
    • et cetera
    Joel is right on the money here, though: there is a major "cultural" difference between Windows and Unix programmers -- my workplace hires both types and they're quite a different group of folks.
    I'd like to lock the Joel and Eric in a room and see what becomes of it...
    --
    I am the Lorvax, I speak for the machines.