Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Windows Operating Systems Software Unix

Explaining The Windows/UNIX Cultural Divide 685

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."
This discussion has been archived. No new comments can be posted.

Explaining The Windows/UNIX Cultural Divide

Comments Filter:
  • by bheer ( 633842 ) <rbheer AT gmail DOT com> on Tuesday December 16, 2003 @08:36AM (#7733478)
    Check out Monad [asp.net], 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 [tsn.dk] to and QuickEdit and Insert modes on cmd.exe adds a lot to productivity too.
  • by KingDaveRa ( 620784 ) on Tuesday December 16, 2003 @08:38AM (#7733491) Homepage
    They've buried it even deeper in Windows XP (it's now in Programs...Accessories rather than just Programs).

    Or Start --> Run, CMD, enter.

    Hardly call that buried.
  • Re:fuck windows (Score:0, Informative)

    by Anonymous Coward on Tuesday December 16, 2003 @08:56AM (#7733548)

    You are incorrect, sir.

    It is MacOS that is for fags.

    HTH.

  • by Anonymous Coward on Tuesday December 16, 2003 @09:02AM (#7733562)
    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.
  • by SenseiLeNoir ( 699164 ) on Tuesday December 16, 2003 @09:04AM (#7733577)
    or if you have a "windows" keyboard:
    + R
    cmd

    takes.. hmm about 2 secs
  • by heironymouscoward ( 683461 ) <heironymouscoward@yah3.14oo.com minus pi> on Tuesday December 16, 2003 @09:06AM (#7733593) Journal
    Is not about the command line or GUI.

    It is that Microsoft's own development teams have always programmed with inside knowledge of the OS, able to bypass the official API whenever necessary.

    This was explained to me by the director of a large bank in Brussels that abandoned a huge Windows-based project after finding that COM+ and MSMQ could not talk to each other, and this after spending time with the actual developers at Microsoft to resolve the issues.

    Each Microsoft application is written "to the metal", reimplementing huge pieces of code that should be abstracted into layers.

    Many of the security issues in Windows software stem from this design model: a typical Linux security issue can be fixed by a single patch in one layer, but typical Windows security issues reappear in application after application.

    And this is where the Unix model is strong: it is all about layers, formal documented interfaces, and clean separation. When Microsoft decided to add MSIE to the operating system, they were not just screwing their competitors, they were setting themselves up for a fall.

    Good software must be built in layers, with formal and definite separation between layers. Microsoft is learning this now, mainly because it simply cannot make its current designs secure.
  • by jhines0042 ( 184217 ) on Tuesday December 16, 2003 @09:22AM (#7733728) Journal
    Or just move the darn thing... you're allowed to you know.

    I move my command line shortcut out to the main start menu on every computer that I use (with permission of the owner if that isn't me)

  • Maybe, Maybe not... (Score:2, Informative)

    by djbckr ( 673156 ) on Tuesday December 16, 2003 @09:28AM (#7733763)
    We may be the exception, but our Windows program is written so that us developers can understand our code. Sure, our product is geared toward the end-user, but without solid code it would just fall apart.

    We're in our 14th year of our product. Maintenance and enhancements are the norm. No product is bug-free, but for the complexity of our Windows program, it's relatively easy for one developer to take another developer's code and work with it. We have about 20 developers in our company.

  • Crossing the Chasm (Score:5, Informative)

    by gargle ( 97883 ) on Tuesday December 16, 2003 @09:31AM (#7733781) Homepage
    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.

  • by MegaHamsterX ( 635632 ) on Tuesday December 16, 2003 @10:25AM (#7734224)
    The computer as a typical consumer uses it today will soon cease to exist. It's all going to be embedded devices, just like toasters, but like toasters they need to work everytime.

    MicroSoft's main revenue will come from embedded devices to surf the web, type documents, order pizza (like the iopener), play movies and games, etc(like the home theater stuff)...if they do the correct things in the next few years

    Joe Average, when they live with a TiVo, they like it, they don't know it runs Linux and don't really care one way or another, this is Billys problem, in the end no one really cares what it runs so long as it works, for a recent lesson look at the pull back of Ultimate TV, the supposed TiVo killer.

    Linux (or Unix)has never been the problem, it works the way it should, it can be hidden from the consumer completely, the problem has always been X, its inconsistancies are its problems, they will never be fixed, just another kludge added to the rest making it ever more complicated.
  • by Medievalist ( 16032 ) on Tuesday December 16, 2003 @10:37AM (#7734336)

    Read the article [joelonsoftware.com] (I know, it will be hard to force yourself to do so if you are a slashdot regular :)) and then read this chapter from TAoUP [faqs.org].

    I don't know if Spolsky didn't read this far, or if he's just a weak plagarist, or maybe this is the only part that made a big enough impression on him to merit rephrasing for his own column.

    The only difference I see is POV, and substitute "mac" for "windows".
  • Re:Separation (Score:3, Informative)

    by GlassUser ( 190787 ) <[ten.resussalg] [ta] [todhsals]> on Tuesday December 16, 2003 @10:39AM (#7734356) Homepage Journal
    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.
    It's called automation. It's not visual basic, it's WSH (which encompasses vbscript, but not visual basic). You would do well to learn about something before you decide to hate it.
  • by kyz ( 225372 ) on Tuesday December 16, 2003 @10:43AM (#7734399) Homepage
    Write your prototype - and then deploy it, because it's already fast and robust enough for everyday use.

    And then watch it die, because everybody updates the app with a line here and there, and it crumbles into a mess of hundreds of different programming styles written in obscure line-noise with no documentation.

    A prototype in software engineering is just that -- a bare bones quickly knocked-out attempt at checking if some assumptions hold up or not. A prototype is something you write in 5 minutes with no thought given to its future reliablility maintainability. After the prototypes, only then do we seriously design the software. We do not give prototypes to customers and say "they you are, it's finished".
  • by Anonymous Coward on Tuesday December 16, 2003 @10:43AM (#7734402)
    "1. Try to assign a shortcut key to cmd.exe (the command processor). Did not find a way to do this directly, because the online documentation is plain wrong. Had to create a shortcut (on the desktop) to get it to work."

    Go to the Start menu Programs then Acessories then right click on Command Prompt select Properties and set your shortcut keys. You might also note the %SystemRoot%\system32\cmd.exe and %HOMEDRIVE%%HOMEPATH% pathing and use that instead of a static links in your shortcut.
  • Yes, you guessed correctly, it was a clustering environment.

    It was a _huge_ project, trying to deliver a web-based front-end to an existing system. The ticket was around 150m Euro.

    The architecture basically fell apart about 75% through the project. I guess around the time they stopped making use cases and actually tried to scale the prototypes up to work on their clusters. The support calls to Microsoft went very high and it was an engineer from the bank who finally discovered the real problem, apparently. The COM+ developers and the MSMQ developers knew their own products very well but were unable to figure out what was happening between the two.

    The project was cancelled and I believe it was not redesigned - the economic crisis meant that the company had to cut back.

    Needless to say this kind of experience made the company somewhat cautious about using MS products for anything serious after that. I don't know whether they tried an alternative, most of the business runs very successfully on the classic mainframe model (COBOL, CICS, MVS, etc.)
  • X is not the problem (Score:2, Informative)

    by oddtodd ( 125924 ) <<oddtodd67> <at> <gmail.com>> on Tuesday December 16, 2003 @11:10AM (#7734712)
    X is a protocol, you are referring to the programs
    written that use X, ie. Gnome/KDE.
    try running fluxbox for a window manager and watch
    your machine r0x!
  • by Anonymous Coward on Tuesday December 16, 2003 @12:19PM (#7735493)
    Well... why do you need a password to run something on your own computer?

    Although some people may attack you, this is insightful. Sometimes security zealots get out of hand and recommend practices that are ill-suited for particular situations.

    However, I'll give you a reason why your desktop computer should have a password: you're not protecting it from other people, but you're protecting it from unknown code.

    Newer versions of Windows have a "runas" feature (which I believe is activated by default). If you make your main account a non-privileged account and use "runas" whenever you need to run a privileged operation (install software, modify system settings), your computer will be safer from various malicious programs. MacOS X already does this for you.

    This isn't great protection since you probably care more about the data on your computer rather than the integrity of the OS (and one would assume your data is writeable by your main account), but it does help nonetheless.

  • Keeping little stories to ourselves would kind of ruin the whole point of Slashdot, no?

    Cold hard facts:

    - very large bank spending large amount of money
    - web application built on COM+, MSMQ, and MS clustering
    - application failed because of incompatibility in MS's own software layers
    - assistance from Redmond failed to solve problem
    - project eventually deemed unworkable and killed

    Now, you may be right that there was, somewhere, a solution to this, perhaps even an obvious one. However it escaped the people at the time, all competent, all professional.

    My story may even be false, it's possible. IT is so complex that the real story is often hard to uncover.

    But the conclusion that MS products are heavily vertical and often interoperable only within tight margins (specific OS, specific SP) remains, and is well-known to anyone who has developed for Windows.

    Attacking my credentials is not a response. Showing me the well-defined Microsoft APIs that have been used by Microsoft's own application development teams without compromise... now that would be a worthy response.
  • by Aidtopia ( 667351 ) on Tuesday December 16, 2003 @03:16PM (#7737520) Homepage Journal
    VAX/VMS system also inherited this syntax

    I don't recall slashes of either variety in VMS file specifications. They used square brackets and dots, like: "DEVICE:[AIDTOPIA.SLASHDOT]COMMENT.TXT;3". I know lots of people hated this syntax, but I found it quite expressive. For one thing, it was easy to distinguish between a directory listing ([FOO]) and the file which stored the directory information (FOO.DIR).

    Perhaps they started allowing slashes for POSIX compliance. That was about the time I (sadly) left the VMS world. I recall DEC claims at a DECUS symposium that VMS was the first OS to achieve POSIX compliance, which was quite a feat since it was so non-UNIXy to begin with.

  • by waveclaw ( 43274 ) on Tuesday December 16, 2003 @05:55PM (#7739499) Homepage Journal
    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?


    Not to make you sound like a newbie in the world of computing, but what you are railing against isn't the 'ease of use' of UNIX/GNU/Linux GUIs.

    Many, many people fall into this trap. What you are proposing is the adoption of something both unessecary (and in many cases) Evil, Bad and Wrong. This thing is called an SAA CUA [webopedia.com]. They were practically invented by IBM in the 50s and 60s. These ideas [ibm.com] are simple: do something one way and only one way.

    From the user's perspective, this is okay. I only have to learn quaduple-double-bucky-shift-Q to print once.

    From the UI designer's point of view this is crap. Look at video games. Many custom, learn once and use once indterfaces. Games deal with this by being on the cutting edge of computer-assisted education. They have dollars and reputations staked in 'playability' and 'ease of use' so they do the Right Thing.

    Wrong Thing: pick standard, crappy global contants, enforce those on everyone. Aribitrary user interfaces are just as bad as random interfaces.

    Right Thing: common core behavior in frameworks that act AS EXPECTED, customized application interfaces to the TASK that the application SOLVES or DOES. Show and Walk users through the non-standard parts with HOW-TOs, demos and trainers.

    The Right Way is more work for the lazy, boring person who wouldn't write documentation anyway. The Wrong Way means that you probably will guess correctly on the first try, but the application programmer still didn't do his job.

    This is a very important sticking point with the Aunt Mable newbie computer user argument as well. If good ol' Auntie has never used a computer, learning a KDE (GNOME) desktop or the UNIX command line will be as EQUALLY challenging as learning a WIMP like Windows. MACs were/are easily learned because of some UI choices that favor new users without bothering experienced users (of those UI's).

    Finally, like in the world of video games, with the diversity of UIs in Linux/GNU/Unix I can select those features/interfaces that work best and use them. With a system like Windows, some people won't buy/sell your software unless is meets the criteria in the SAA CUA.

    I appologise for the grammar. I need more sleep and less Trolls.

New York... when civilization falls apart, remember, we were way ahead of you. - David Letterman

Working...