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."

31 of 673 comments (clear)

  1. That's too bad by osgeek · · Score: 4, Funny

    Joel Sposky writes a review-like article on the last book of Eric S. Raymond

    I hadn't heard that he died. My condolences to his friends and family. He will be sorely missed.

    1. Re:That's too bad by dillon_rinker · · Score: 5, Funny

      He will be sorely missed.

      Sourcely missed! SOURCELY! He was an advocate of open SOURCE, you idiot, not open...oh. Nevermind.

  2. Does the story start with... by XiChimos · · Score: 4, Funny

    Does the story of how the divide between windows and Unix came about start with fallen angels?

    1. Re:Does the story start with... by AndroidCat · · Score: 4, Funny

      Didn't Milton write something about "Better to reign on desktops than servers in Heaven"?

      --
      One line blog. I hear that they're called Twitters now.
  3. 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.

  4. windows users are the problem... by timmarhy · · Score: 4, Insightful

    forget the programmers, until general knowledge of computers improve and stuborn idoits don't need to have things like " why do i need a password to run a program on MY OWN computer" explained the state of computer security will not improve.

    --
    If you mod me down, I will become more powerful than you can imagine....
    1. 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.
    2. Re:windows users are the problem... by Zoop · · Score: 4, Insightful

      Joel's theoretical explanation for the divide hinges on the user--his thesis? Windows programmers care about users, UNIX programmers don't.

      My immediate reaction was, "If so, how come Windows programs have suck sucky UI most of the time?"

      A colleage of mine had an insightful comment, "Windows programmers don't program for the user; they program for the buyer."

      I think that explains more about Windows from MS to the end-VBScript-monkey than anything else.

  5. Re:It's all about the shell! by bheer · · Score: 5, Informative

    Check out Monad, the OO extendable command shell for Longhorn. Quite interesting.

    Btw, on 2000 and XP (maybe 9x too), you can assign a shortcut to the command prompt, say Ctrl+Alt+S, so hitting that will get you a command prompt quickly. And enabling autocomplete to and QuickEdit and Insert modes on cmd.exe adds a lot to productivity too.

  6. Re:bad reflexes by erlenic · · Score: 5, Funny
    How could it be that I was reading this book for over a year now?

    Don't worry, plenty of slow readers have gone on to lead successful lives.

  7. Re:to sum it up... by Motherfucking+Shit · · Score: 5, Funny
    Windows programming is like playing golf
    Exactly. There are always at least 18 holes.
    --
    "BSD: Free as in speech. Linux: Free as in beer. Windows 10: Free as in herpes." --Man On Pink Corner in #52607549.
  8. The usual "C or Perl" thing, then... by Anonymous Coward · · Score: 4, Informative

    ESR: "Whenever possible, prototype in an interpreted language before coding C."

    Hello, Mr Raymond, there are actually quite a number of high-level compiled languages, that will give you most of the convenience of an interpreted language with most of the speed of C. Write your prototype - and then deploy it, because it's already fast and robust enough for everyday use.

  9. 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....
  10. Re:about cultural divide. by Talthane · · Score: 4, Insightful

    The fact that you can't use a *nix machine the way you want isn't a reflection of the Windows/Unix divide - it's a reflection of your personal preferences, experience and background. It's not remotely cultural.

    I can't make my Windows machines work in the way I like to (mix of command line and GUI), whereas I can make my iBook and my G4 work wonders because I know OS X / Unix well. That's not cultural either - it's a reflection of the fact that my computing experience has always been some distance from the Windows world.

    Just because you don't like something or don't feel comfortable with it doesn't necessarily mean it's a fault with the system as a whole. It can equally easily be a "fault" with your own experience.

    --
    "This is why men never share their feelings; because women always remember." -Just Shoot Me.
  11. 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

  12. Re:Separation by js7a · · Score: 4, Insightful
    harder work for "interoperation" etc...

    Interoperation is something Microsoft fundamentally doesn't get.

    Instead of interoperating with published standards, they try to interoperate with Microsoft legacy methodologies (e.g., everything must bee visual basic scriptable.) This is a terrible source of security worm-holes. I wish they would reorganize their visual basic scripting fanatics to Antarctica.

    I make it a point to return any base64-encoded text/plain email to the Outlook-using idiot who sent it, explaining that Outlook is obscuring their email text, along with a list of reasons to switch to another email client and instructions for doing so.

  13. 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

  14. both are, actually... by holy_smoke · · Score: 5, Insightful

    Although I understand and agree with your basic point, I would ask that you consider the "product" of a computer and how that relates to average "consumers" need for a tool to make their lives easier/more entertained (because that is, after all, the basic reason why average consumers purchase computers).

    Consumers want a tool to use, whether it be for games, email, finances, or just internet surfing. Quite frankly they don't want to spend a ton of time learning about how to use it, and many don't care how or why it works just as long as it does work.

    The tug-of-war that exists is that computers by their nature are complex and flexible. Consumers by their nature are very insistant on their desires which in include simplicity, flexability, safety, cost, and utility.

    Calling them "stubborn idiots" only highlights the divide of understanding between the computer literate that understand and desire ultimate flexibility, and the average consumer that just wants to use their computer, like a toaster or a vcr or a Sony playstation, without a lot of hastle.

    Somehow the creators (programmers and hardware vendors) need to accomodate for that, because I assure you that the average consumer won't change.

    Although I despise Microsoft's business ethics, I appreciate their dedication to the principle that I mentioned above.

    Linux is in a very good position to make headways in this regard as well, but it will take a fundamental understanding by the programmers and harware teams of said principle to make real headways in the desktop market.

    Anything less will ultimately limit the adoption of Linux to, for example, server, web, and corporate applications.

    "The masses" are what they are, and deriding them for it won't influence them to change, however it will influence them to avoid the product.

    Lets find a way to meet them where they are while preserving the fundamentals.

    --
    Is the juice worth the sqeeze?
  15. Crossing the Chasm by gargle · · Score: 4, Informative

    For anyone who has ever wondered why more people don't use linux, staroffice, etc, I recommend the classic on technology marketing "Crossing the Chasm" by Geoffrey Moore. It describes the "chasm" which technology companies face in crossing from the early adopter market to the pragmatic, mainstream market.

    The consumers on the left side of the chasm - what Moore terms the innovators and early adopters - enjoy using new technology, enjoy putting things together, have the vision to see the potential of new technology, and are willing to put up with inconveniences in the iterim.

    The mainstream market is pragmatic. It prefers to bet on clear market leaders (so as to minimise risk and benefit from the supporting ecosystem which inevitably grow around the market leader), is willing to wait and see, and needs complete, fully functional, headache-free solutions for their specific needs. Consumers in the mainstream market rely on references within the mainstream market to drive their buying decisions.

    A technology company which wants to transition from the early adopter market to the mainstream market therefore has to bridge this "chasm", and in the process, change the focus of its marketing efforts and adjust its product accordingly. As far as the desktop market is concerned, Unix (with the exception of Mac OS X) is a product which clearly has not bridged the chasm.

  16. I am clairvoyant, and I predict... by Bob+Cat+-+NYMPHS · · Score: 4, Insightful

    This story will be duped at some distant point in the future.

  17. 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.

  18. Re:about cultural divide. by xdroop · · Score: 4, Insightful
    In that sense, Windows offers me greater freedom to do with my computer what I want to.

    Good. Great. Bully for you.

    I'll give you the benefit of the doubt that you truely limit your comments to your wants and needs. The problem is that the standardization naz^Wadvocates (oops, almost invoked Godwin's Law, sorry about that) always extend their needs as trumping everyone else's needs. This is just as much a crime when it comes from those whining that Linux needs a standard GUI (or whatever) because the unstated subtext is always "the one I am using".

    My needs are different from yours -- I find that I cannot use a Windows system the way I want to, and am much more at home on a unix system. I find I cannot use a KDE inteface the way I can use a olvwm interface. With a modular system like unix, I can use the interface I want, even as other users on the same system use a completely different one, and all without causing undue problems between them.

    --
    you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
  19. 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!
  20. Know Them By Their Injuries by 4of12 · · Score: 4, Funny

    that Windows programmers hurt their arms and wrists after clawing their way through one too many pull-down menus while Unix programmers hurt their pinky fingers after a heavy emacs session in the world of Control Meta.

    As a result, Windows programmers have spastic arms from all this GUI action, looking like zombies from Night of the Living Dead, while UNIX programmers have hands curled up like Igor from Frankenstein's Lab.

    --
    "Provided by the management for your protection."
  21. 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."
  22. Re:can this guy actually code? by 11223 · · Score: 4, Insightful
    Ugh, no. Your approach leaves out the single most important factor in designing a GUI interface to a program - error handling. When your backend program gets confused, or goes off into an infinite spinloop, your GUI frontend simply becomes confused too - it won't pop up an error; instead, it may pretend to work, or it might hang waiting for a response from the program.

    There are two ways to solve this - bring the functionality into the same address space as the GUI (so if it hangs, force quitting won't leave the confused backend around), or use a network-style protocol with a defined ping/pong approach, and when the backend fails to ping, kill it.

    But text-based interfaces are always fragile. Just look at any of the millions of cdrecord frontends out there. They never quite work properly, because cdrecord-of-the-week always has some new diagnostic message, or error, and the program gets confused.

  23. 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?

  24. Sucky... compared to what? by Moraelin · · Score: 5, Insightful

    No, seriously? Windows GUIs suck... compared to what?

    Compared to X? The same X where every single programmer just _has_ to use a different layout, different shortcuts, different menu structure, and for bonus points his own widgets? And where 90% of the GUIs were never even tested in any other resolution or font size than what the developper had? (Here's a hint: 100 DPI fonts are an X standard for a long time now.) And where every app is configured in a different way? And in some cases (e.g., IceWM), contrary to common sense, the changes you do through the menus aren't even saved, and you have to launch a different application to configure your start menu?

    Sorry, from the end user point of view, it's the Unix GUIs that suck big time. They suck like an industrial vacuum cleaner. They suck like an expensive hooker.

    They're made by geeks, for geeks. And religiously defended by hordes of flaming trolls, ready to insult everyone who dares doubt their idol's wisdom.

    What a non-geek user expects is to learn some skills once, and apply those skills again and again. It doesn't matter if you have some cute unique idea. He just doesn't want to have to learn a whole new set of skills for every single program.

    He wants that if in Word CTRL+X is "cut", then in every single program it's still "cut". He wants that if F1 is "Help", then by God, it better be "Help" in all programs. And if one program's scrollbars behave in one particular way, then it better be the same way in all programs.

    For you discovering how yet another widget set works might count as fun. For Joe Average, it counts as a waste of his time. He'd rather do something else in that time. Like be done sending that e-mail, grab a beer and watch TV, instead of still being at discovering how it works.

    And yes, the Windows developpers know that it pays to care about the paying customer. That means, yes, caring about Joe Average who's using those programs. Thinking how you can help Joe Average do what _he_ wants, instead of making it all an exercise in programming for your own ego.

    And until more of the Linux crowd discovers the same thing, I just can't see Linux making it big on the desktop. Sorry.

    --
    A polar bear is a cartesian bear after a coordinate transform.
  25. Re:Bubbling frustration by peterb · · Score: 5, Insightful

    If more GUIs are really what's needed in the UNIX world, then writing them is not a problem.


    Y'know, people keep saying that this is such a trivial little matter of implementation, but I can't help but observe that 20 years after the Macintosh came out, cut and paste in X windows is still completely fucking broken.

    At some point, you have to abandon the excuses and admit that it's not just an implementation problem, it's a broken paradigm.

    DEVELOPER: "Here's our GUI! Enjoy!"
    USER: "Wow, thanks! This sure is pretty. So, how do I cut and paste?"
    DEVELOPER: "Well, that depends on which toolkit the app you're running uses."
    USER: "Uh, OK. Thanks." [user turns off computer, goes back to his Windows or OS X machine.]

    In the above scenario, the user is right, and the developer is wrong, wrong, wrong, wrong, wrong.

  26. 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
  27. 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.