Slashdot Mirror


Culture of UNIX and Windows Programmers

bebonzo writes "Joel Spolsky, 'Joel on Software' has an interesting review of Eric S. Raymond's book about 'The Art of UNIX programming'. Quote:"What are the cultural differences between Unix and Windows programmers? There are many details and subtleties, but for the most part it comes down to one thing: Unix culture values code which is useful to other programmers, while Windows culture values code which is useful to non-programmers." About slashdot: "slashdot-karma-whoring sectarianism..."" He's harsh on some points, but pretty on the money. Except about us. Nobody karma whores. Update Note to self, never post before coffee. Yes, its a dupe. get over it.

382 comments

  1. Mirror world by mattjb0010 · · Score: 5, Insightful

    but it does mean that Americans getting off the plane for the first time in Tokyo are confronted with an overwhelming feeling that this place isstrange, dammit

    It's funny, but coming from Australia you'd think I'd feel right at home in both the UK and US, but there are lots of little things that make me feel slightly out of place in both countries. I think Gibson's "mirror world" term describes it best. And it's much the same with programming, not that I've explicitly programmed for windows, but it's quite a difference writing GUIs in Java or C++ as opposed to command line tools in Perl or C. Each to their own, I guess :)

    1. Re:mirror world by glenebob · · Score: 1
      It's funny, but coming from Australia you'd think I'd feel right at home in both the UK and US, but there are lots of little things that make me feel slightly out of place in both countries.
      Ha! It's weird just going from the northern U.S. up to Canada for the weekend. We're so similar, you just expect to get along with no problems, but the differences are there. It can be frustrating because sometimes it's hard to even put your finger on it.

      Now THIS is offtopic :-)

  2. can this guy actually code? by mydigitalself · · Score: 5, Insightful

    "The Windows programmer will tend to start with a GUI, and occasionally, as an afterthought, add a scripting language which can automate the operation of the GUI interface."

    1) No, a VB programmer will do this.
    2) No, a good windows programmer will create an object (COM/C# Class) and then write a GUI that will call this object.

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

    i would say that textual interfaces were more popular before bandwidth started becoming readily available. the rise of bandwidth has seen a rise of GUI applications because it is quite feasible to VNC from home->work and to run GUI. before ADSL it was a pain in the arse and using textual interfaces was fast and convenient.

  3. Command line? Hell, how about process? Security? by Spoing · · Score: 5, Interesting
    I'm slowly coaxing, pulling, the admins I work with from the "trust the product, just fix problems that managers mention today" to actively tracking down problems before they occur and having a DAMN PLAN!

    I introduced one of them to Nessus, not because it was a Unix program, but because it is a damn good (the best?) security auditing tool available.

    His reaction to a security audit showing our primary app server had multiple potential holes just in the programs that support the app? "Well, we don't use that software much, we only use it to get into the program. All the work is being done using the other programs."

    For the record, the system was an HPUX server running an older version of Apache 1.x. The app gateway is through Apache to Weblogic, though the main application program runs on the HP box, not elsewhere.

    This is not simply an aversion to Unix or command lines. The lax security extends into all the Windows systems as well. For example; all drives readable/writable on the network by any user.

    It's a lack of professionalism, not intellegence -- the guy is plenty smart. Adding a little fear to the mix (we print checks dammit!) doesn't raise his concern too much. I've not raised the possibility that he, personally, might be held to blaim for security issues and I doubt that it would work with him.

    My only hope is that slowly, without forcing him, he will see that there is something behind my comments and tips. Maybe a light will go on, and he will decide to take a look.

    --
    A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
  4. Bubbling frustration by sphealey · · Score: 5, Insightful
    Interesting essay, but Mr. Sposky seems to miss out on a situation I have observed more and more over the last five years: as Windows-based personal computers have moved out of the realm of the "power users" and into the hands of the general public, including the general management ranks, the initial sense of elation, power, and control is gradually replaced by a sense of bubbling frustration.

    To wit: why is it so difficult to accomplish this seeming simple task? Why can't straightforward business task x be accomplished with these shiny new computers? What do you mean we need to hire 5 VB programmers for 3 months to move this data from here to there, or cause this function (which should have happened automatically) to occur every night on schedule?

    Yet when I drop down to the command line to run an NT Posix utility which replaces those five VB programmers with a simple script, or pull up SQL*Plus to quickly make mass changes to the database, they sneer "why are you still using that archiac technology?".

    The problem that Mr. Sposky doesn't address is this: 2/3 of the problems addressed with computers today (even so-called personal computers) are data processing problems, and there is absolutely no evidence that a GUI is an efficient way to handle those problems. Yet rather than use the best currently available tool (the command line and scripts), or devise a better one, Mr. Sposky and the Windows advocates would have us shoehorn every task into a GUI + complex API world. Um, those don't work very well, I am afraid. If you don't like the command line, fine, but could you propose something better? Because all I see right now is frustration.

    sPh

    1. Re:Bubbling frustration by Stiletto · · Score: 5, Insightful


      Many windows programmers approach a problem with the question "What should the user experience?" whereas a UNIX programmer approaches a problem with "What is the data coming in on stdin and what is the data that goes to stdout?"

      Windows programmers see the actual data processing as a secondary task that the GUI (and only the GUI) makes happen. Unix programmers see the GUI as a seperate app, which monitors and controls the central data processing app.

  5. Binary libraries by woodhouse · · Score: 5, Interesting
    Any Windows developer will tell you about the time they spent four days tracking down a bug because, say, they thought that the memory size returned by LocalSize would be the same as the memory size they originally requested with LocalAlloc, or some similar bug they could have fixed in ten minutes if they could see the source code of the library.
    Actually, it's a hell of a lot easier to program for a library with well written docs than having to delve into the source code. If you have to read the source, it usually isn't a time-saver. And call this flamebait if you will, but in my experience, MS APIs have some of the best documentation out there; I've never come across a situation where I would need to see the source code after reading the relevant pages on MSDN.

    Of course, if there was a bug in the library itself rather than the application using it, it would be another matter.
  6. Non-ideological? Uh-huh. by Brown+Line · · Score: 5, Insightful
    Sposky writes, "Raymond all too frequently falls into the trap of disparaging the values of other cultures without considering where they came from. It's rather rare to find such bigotry among Windows programmers, who are, on the whole, olution-oriented and non-ideological."

    Au contraire, Mr. Sposky, most Windows people I deal with are ignorant of anything that doesn't come from Redmond, and not willing to learn. God knows I've meant plenty of UNIX bigots, but at least they know something about Windows - they have to, there's no avoiding it. The same is not true about Windows bigots: they combine their parochialism with a triumphalism that is as infuriating as it is unmerited.

    One other aspect of the two cultures that Mr. Sposky doesn't discuss but is worth bringing up: UNIX bigots are not trying to shoulder Windows out of the marketplace - we couldn't, even if we tried. The Windows culture, however - or its corporate sponsor - is in fact trying actively to extinguish all competition. This is open-mindedness? Give me a break.

    --
    [this .sig for rent]
  7. Nothing like... by j3110 · · Score: 4, Insightful

    Nothing like the smell of fresh dupe in the morning :)

    --
    Karma Clown
    1. Re:Nothing like... by squaretorus · · Score: 3, Funny

      Its a Christmas treat for us all!! Nothing like a bit of bitchin about /. editors to brighten an otherwise dull day!

    2. Re:Nothing like... by hkroger · · Score: 1
      Morning? It's 3pm here.

      I guess this whole article should be deleted...

    3. Re:Nothing like... by Anonymous Coward · · Score: 0

      Usually there's at least -some- delay between the dupes.

      but these have only 45mins or so..

    4. Re:Nothing like... by Anonymous Coward · · Score: 0

      At least the author is no longer dead...

    5. Re:Nothing like... by Anonymous Coward · · Score: 0, Funny
      He's harsh on some points, but pretty on the money. Except about us. Nobody karma whores.

      But in Soviet Russia, karma whores YOU!

    6. Re:Nothing like... by elmegil · · Score: 1

      And less than an hour apart even!

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    7. Re:Nothing like... by j3110 · · Score: 2, Insightful

      That makes it pretty funny. I fully expected it to be deleted by now. Every post so far is off-topic strictly speaking. I think /. should have more mundane posts occasionally just to let people post off topic and kind of "mingle" just to see what the hot topics will be. It would certainly be more interesting than some of the stories that make front page, but then again, I'm pretty wacky.

      Yeah, Mr. Taco needs to get his caffeine. I know Timmy is up late because I fight with insomnia from time to time, and I still get /. stories at 4AM, so it's no suprise that Timmy beat him to the punch.

      I don't know why people are wasting moderator points in such a dupe though, and it would be good to get an explanation as to why my post was "insightful". Maybe it's a field day for the moderators too? :)

      --
      Karma Clown
    8. Re:Nothing like... by dsplat · · Score: 2, Funny

      Nothing like a bit of bitchin about /. editors to brighten an otherwise dull day!

      No. This is a special case. This story is extremely important. It mentions Eric Raymond, Linux, and even /. Besides, CmdrTaco actually read Joel's article. He took to heart what Joel said about the difference in writing styles between man pages and Windows help files.

      --
      The net will not be what we demand, but what we make it. Build it well.
    9. Re:Nothing like... by TRS80NT · · Score: 0

      RTFHeadline. One is Unix/Win the other Win/Unix. Presumably there is a differnce in prespective.

      --
      Lorem ipsum dolor sit amet.
    10. Re:Nothing like... by utlemming · · Score: 2, Insightful

      You laugh, but if you bitch in the right forum, they will actually mod you up -- and I expected to get modded down the last time I did it.

      --
      The views expressed are mine own and do not express the views of my employer.
    11. Re:Nothing like... by Anonymous Coward · · Score: 0

      Ya know, they probably have enough editors now that maybe they should require (2) editors to approve stories (or take a vote?).

      That, or subscribers should be brought into the story submission picture...

    12. Re:Nothing like... by j3110 · · Score: 1

      Now this post is insightful. I really wonder why that isn't done, because we all make mistakes, it's just funnier when editors make them. :)

      I like your idea because then we may be able to filter out some of the crap that no one cares for, and maybe the editors could move on to worrying about getting content more than formatting it or if people will like it. It would be great to have a bunch of people edit the submission before it comes out, and the one with the most special mod points get put on the front page (only if it gets enough mod points). That would take all the fun out of April 1, but it would be more functional I would think. Not that my variety would be the best, it's just something to think about for the next version of slashcode.

      BTW, I don't know how my statement of the obvious got modded as insightful, but I know it must have been some kind of moderator prank.

      --
      Karma Clown
    13. Re:Nothing like... by EvilAlien · · Score: 0, Redundant

      I love the smell of a dupe in the morning... smells like CmdrTaco.

      --
      perl -e 'print $i=pack(c5, (41*2), sqrt(7056), (unpack(c,H)-2), oct(115), 10)'
    14. Re:Nothing like... by inode_buddha · · Score: 1

      Dupe with korn in it?

      --
      C|N>K
    15. Re:Nothing like... by spazoid12 · · Score: 1

      Does anyone other than CmdrFlake-o ever post dupes?

      What a maroon.

    16. Re:Nothing like... by Anonymous Coward · · Score: 0

      You misquoted yourself:
      "I eat cock for crack money."

    17. Re:Nothing like... by VanillaCoke420 · · Score: 1

      It was the closest dupe I've ever seen too!

    18. Re:Nothing like... by NanoGator · · Score: 1

      "Nothing like the smell of fresh dupe in the morning :)"

      I stopped bitching when I realized that their paychecks are the same no matter how many dupes are posted.

      --
      "Derp de derp."
    19. Re:Nothing like... by Zeinfeld · · Score: 1, Offtopic
      No. This is a special case. This story is extremely important. It mentions Eric Raymond, Linux, and even /.

      I think Taco just showed the real cultural difference. A windows programmer would have implemented a system to warn editors of potential dupes. UNIX wizards simply don't believe in such wimpy protection systems.

      The other big difference is that a Windows user would look at what the slashdot market is interesting in discussing and look at a way to support that. With UNIX there is a curious one way street, Taco and co do not read slashdot, they are the priesthood who edits it. User participation only goes so far, the plebs can comment on the stories but Taco and the priesthood will forever set the agenda.

      The game is giving out the appearance of power so that the elite can continue to enjoy the substance.

      Slashdot's biggest stories are consistently the non-tech ones. People who have an interest in the RIAA issues tend to also have views on Ashcroft, the PATRIOT act, Iraq, Bin Laden, Haliburton/Harken.

      When we created the Web the idea was to enable disintermediation. Today people realise the power because of the Dean campaign, but we first ran a Web campaign in 1992 for Clinton/Gore.

      The point is not left/right politics, in fact early on it was the right wing who felt that the media failled to represent their interests. Today people understand that the Web is a serious threat to the power of the press and the press barrons who want to control what people think. Fox News was just as biased four years ago as it is today, the reason most people are now aware that it is a propaganda station is because the Web provides a feedback loop and there are now a large number of bloggers who are actively rebutting Fox's distortions.

      Sooner or later the Web community is going to move to a forum where the masses get to set the agenda rather than the priesthood.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    20. Re:Nothing like... by KReilly · · Score: 1

      We should be able to mod the article redundant.

    21. Re:Nothing like... by great_flaming_foo · · Score: 2
      I think /. should have more mundane posts occasionally just to let people post off topic and kind of "mingle"

      I thought that was what the polls were all about. Well, that and mourning the loss of the cowboy neil option.

    22. Re:Nothing like... by Anonymous Coward · · Score: 0

      I think Taco just showed the real cultural difference. A windows programmer would have implemented a system to warn editors of potential dupes. UNIX wizards simply don't believe in such wimpy protection systems.

      A Windows user might also hire a *gasp* liberal arts-type person to actually *gasp* edit the stories -- you know, an actual editor with a real journalism degree.

    23. Re:Nothing like... by Merusdraconis · · Score: 1

      I think /. should have more mundane posts occasionally just to let people post off topic and kind of "mingle" just to see what the hot topics will be. It would certainly be more interesting than some of the stories that make front page, but then again, I'm pretty wacky.

      What do you mean? Every man and his dog knows /.'s all about bashing Microsoft. All the other stuff's /. trying to get off-topic.

  8. Programming. by SteveTruss · · Score: 0

    Is good. I like it. You should too.

    1. Re:Programming. by Anonymous Coward · · Score: 0

      Nobody karma whores.

      Nobody except for Pingular.

  9. Now that takes the cake! by GeckoX · · Score: 2, Insightful

    Dupe immediately following the original!
    That's gotta be a record ;)

    Left hand doesn't know what the right one's doing I guess!

    --
    No Comment.
    1. Re:Now that takes the cake! by Fembot · · Score: 1

      damm the slashdot drinking game... its 1pm here and I'd be drunk allready!

    2. Re:Now that takes the cake! by LSD-OBS · · Score: 1

      Exactly 42 minutes between them.

      Somebody tear the editors a new one!

      --
      Today's weirdness is tomorrow's reason why. -- Hunter S. Thompson
    3. Re:Now that takes the cake! by GeckoX · · Score: 1

      Now _that's_ a drinking game ;)
      Hadn't run across that before, good link tx!

      --
      No Comment.
    4. Re:Now that takes the cake! by Deathlizard · · Score: 0

      Or It's April Fool's day somewhere.

    5. Re:Now that takes the cake! by SuperMo0 · · Score: 0

      I think this article, and the comments associated with it, constitute about 4 drinks already. @_@

    6. Re:Now that takes the cake! by Ripplet · · Score: 1
      Now _that's_ a drinking game ;)

      It sure is, but when do you take a break to breathe?

      --

      Skiing? Check out The Independant Skiers Portal

    7. Re:Now that takes the cake! by Anonymous Coward · · Score: 0

      It's more of a case of "left hand on CmdrTaco's dick, causing CmdrTaco's brain to not know what he's doing."

    8. Re:Now that takes the cake! by Desult · · Score: 1

      By your spelling, are you sure you're not drunk already?

      And further, could there possibly be a more antisocial/borderline alcoholic drinking game? Drinking (and damn heavily by the rules of the game)... in front of your computer... reading slashdot... alone.

      Nevermind, if you're tempted, you probably need it ;)

      -Greg

      --
      -Greg
  10. 42 minutes to dupe! by xdroop · · Score: 4, Insightful
    That _has_ to be some kind of non-april-fools record.

    Or is Hemos going to post the same item in an hour?

    --
    you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
  11. Deja Who? by mysticwhiskey · · Score: 3, Funny

    I've got a strange sense of deja vu! Errr, hang on... I've got a strange sense of deja vu!

    --

    Stuck down a hole! In the middle of the night! With an owl!

    1. Re:Deja Who? by Anonymous Coward · · Score: 0

      That means the matrix code has been changed... agents are comming!

    2. Re:Deja Who? by chabotc · · Score: 0
      1 feeling = "deja vu"
      2 goto 1
    3. Re:Deja Who? by hummassa · · Score: 1

      Yeah, somebody adjusted the Matrix...

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    4. Re:Deja Who? by Fjord · · Score: 2, Funny

      Neo: Whoa. Deja vu.

      Trinity: What did you just say?

      Neo: Nothing. Just had a little deja vu.

      Trinity: What happened? What did you see?

      Neo: A slashdot post went on the main page and then I saw another that looked just like it.

      Trinity: How much like it? Was it the same post?

      Neo: It might have been. I'm not sure. What is it?

      Trinity: A deja vu is usually a glitch in the Matrix. It happens when they change something.

      --
      -no broken link
  12. The essential difference by heironymouscoward · · Score: 5, Informative

    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.

    --
    Ceci n'est pas une signature
    1. Re:The essential difference by Anonymous Coward · · Score: 0

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

      Oh, I see. Every app should have reinvented URL parsing, HTTP requests, and HTML rendering all on its own.

      "Rampant hypocrisy" should have been among the attributes of unix programmers as well.

    2. Re:The essential difference by jrutley · · Score: 1

      It makes sense now why Wine works with some apps and not others without a code tweak.

  13. Deja vu by Zayin · · Score: 0, Redundant

    That article..... Looked just like another one just before it...

    --
    "I'd rather have a full bottle in front of me than a full frontal lobotomy"
    1. Re:Deja vu by Xpilot · · Score: 1

      That article..... Looked just like another one just before it...

      Put down the porn mag and GET OUT OF THE BUILDING NOW!!!!

      --
      "Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
    2. Re:Deja vu by RetroGeek · · Score: 1

      Deja vu (Score:1, Redundant)

      Deja vu (Score:1, Redundant)

      Deja vu (Score:1, Redundant)

      Deja vu (Score:1, Redundant)

      Seem to be stuck in a loop here......

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
    3. Re:Deja vu by Anonymous Coward · · Score: 0

      Your signature merits you a severe beating.

  14. They've abandoned all pretenses... by PFactor · · Score: 1

    ...of appearing to exert effort in avoiding dupes :P

    --
    Don't believe anything I say. I crash test crack pipes for a living.
    1. Re:They've abandoned all pretenses... by Anonymous Coward · · Score: 0

      Next week: "Greatest Hits: Buy the best of 2003 Slashdot -- 12 new dupes for your Xmas entertainment".

  15. First Ninnle Post! by Anonymous Coward · · Score: 0

    The only good programmers out there are the ones that program for Ninnle Linux, the one true Linux distribution, from which all others spring.

    1. Re:First Ninnle Post! by Anonymous Coward · · Score: 0

      I agree. I develop specifically for Ninnle, and it's one of the best versions of the Linux OS I have worked with. Beats RedHat and Mandrake hands down!

    2. Re:First Ninnle Post! by Anonymous Coward · · Score: 0

      Mod parent up!

  16. Code re-use by Anonymous Coward · · Score: 1, Funny

    And instant entire article re-use as well. Amazing.

  17. Should have written by leviramsey · · Score: 0

    On slashdot: "karma-whoring, dupe-responding-to sectarianism"

  18. Hey! by Fonce · · Score: 4, Funny

    They're just being kind enough to make sure we read it. It's early, so my vision is still blurry and the coffee hasn't soaked in yet. Wouldn't want to miss a story just because it wasn't on there two or more times.

    --
    If all my base are belong to you and I attempt to retrieve my base, does that mean I'm freebasing?
    1. Re:Hey! by leviramsey · · Score: 1

      I pity those of you in Australia who were out drinking, come home to read Slashdot (since your geeks, there's no way you're bringing a chick home), and see the same story repeated four times...

    2. Re:Hey! by Fizzl · · Score: 0

      I actually ignored the first one, as it seemed boring. Then I continued reading this one and found it very interesting.
      ...I also noticed it was a dupe only after all these posts mentioning it.

      Go figure :)

  19. CVS for newsposts by HBK-4G · · Score: 4, Informative

    CmdrTaco et al need some sort of CVS on submitted newsposts. Check-out a selected submission, nobody else can touch it. With some work and the tying in of keywords, it could also be a dupe-submission checker of sorts.

    1. Re:CVS for newsposts by TulioSerpio · · Score: 1

      that would be UNIX or Windows programming?

      --

      I'm from Argentina: Tango, Asado, Mate, Gaucho, Maradona, YPF

    2. Re:CVS for newsposts by Anonymous Coward · · Score: 0

      Maybe it could have a simple GUI front-end, so they don't get confused.

    3. Re:CVS for newsposts by HBK-4G · · Score: 1

      A comparitive search would have found a number of similarities in the short paragraphs submitted. Automated resume scanners look for keywords; I imagine it wouldn't be too hard to have a 15-day-limited bank of keywords from posted news blurbs scanned against new submissions.

      Then again, this is the first time in a while I've seen two dupes back to back. So maybe we're just overreacting. ;)

    4. Re:CVS for newsposts by cyb97 · · Score: 1

      URLs would be an easy thing to check too... I and seriously thought slashcode had stuff in place to take care of the obvious dupes, but I guess this proved me wrong...

    5. Re:CVS for newsposts by NanoGator · · Score: 1

      "CmdrTaco et al need some sort of CVS on submitted newsposts."

      Why do they 'need' it? Why's it such a BFD? In this case, it's a little silly, but come on, it's a dupe story, not a Star Wars prequel.

      Maybe it's because I have a life or something, but most of the time I see dupes, I didn't catch the original.

      --
      "Derp de derp."
  20. The real reason behind "silence is golden" by dido · · Score: 5, Interesting

    If I recall correctly, the "silence is golden" maxim in Unix programming arose as an artifact of Unix's origins. When Dennis Ritchie and the rest of the historic team at Bell Labs began work on the earliest editions of Unix and C, they were operating on teletype terminals that ran at 110 baud (kinda humbling in this day and age, ain't it?). 110 baud translates to roughly 13 characters per second, so a program that was too chatty wasted precious bandwidth. If they had something like the cp(1) command operating the way the MS-DOS COPY command did, displaying messages like "14 file(s) copied.", which is 20 characters (plus the newline), it would take about a couple of seconds to display, while displaying nothing would be 20 times faster. It had nothing to do with making programs work better with each other and everything to do with conserving bandwidth. This is also the reason why ed(1) and vi(1) have such eccentric design, preserving a resource that was scarce in the day they were made.

    --
    Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
    1. Re:The real reason behind "silence is golden" by hburch · · Score: 5, Insightful

      Silence remains golden. That more you say, the less attention what you say receives. Humans have limited bandwidth, and conserve it for interesting things. If you program continually spits out verbage, no one will notice the important line in the middle of the verbage. If you program throws up dialog boxes like there's no tomorrow (Are you certain you want to print this document?), then people will start answering "yes" to all of them without reading them (Are you certain you want to reformat your hard drive?).

      In the world of programming pipes, output must be dealt with, making this maxim even more true. If your program outputs "Foo" to standard error, than my program, which is looking at your standard error for items of concern, must know all the noise you output and ignore it properly. The less you make me do this, the better.

      Occasionally, the extra output is helpful. This is why the -v option exists (occasionally, annoyingly, -d).

      "If you cannot say anything nice, do not say anything at all" is actually totally backwards. "If you cannot say anything bad has happened, do not say anything at all".

      The rule of exceptions states "for every rule, there is an exception". This maxim is not an exception to the rule of exceptions. There are cases where you want to output noise. One such example is telnet, where you need to distinguish between "connected" and "trying to connect", and both situations are common.

  21. Shoot! by GeckoFood · · Score: 0, Funny

    Just one indiscretion and you get called a whore!

    --
    Be excellent to each other. And... PARTY ON, DUDES!
  22. The culture of pattern recognition... by kwench · · Score: 0

    As I pointed out some time ago, some modified spam-filter would be a good thing for slashdot. This dupe-filter won't only be useful for titlepage dupes, but could also give the writer of a comment a hint that a similar comment already exists.
    A specially adapted Bayesian filter should do it. One for articles (to detect dupes), and one for each article (to dected similar comments).

  23. Try Tripe by arrogance · · Score: 1

    Well let's see if we can "tripe": try submitting the story again... and again.

    1. Re:Try Tripe by GeckoX · · Score: 1

      Me thinks you mean "triple" or some legitimate variation on that.

      As for "Tripe", you try it first and tell me what you think. I've even got a bit of scotsman in me and I won't touch the crap ;)

      --
      No Comment.
    2. Re:Try Tripe by arrogance · · Score: 1

      Umm, that was the point: note the quotation marks in the original post. I was trying to connect "tripe", which I have eaten many times and which many view as odious, with the fact that the editors are clearly dealing with half a deck this morning. Their elevator doesn't go to the top floor... you get the point.

      Also, "dupe" comes from "duplicate", and there's no L in it: we don't call it a duple. So duplicate->dupe, triplicate->tripe. Same pattern, you didactic, concescending troll.

    3. Re:Try Tripe by GeckoX · · Score: 1, Funny
      So duplicate->dupe, triplicate->tripe. Same pattern, you didactic, concescending troll.


      First, it's 'tuple' you tool.

      Second, I posted in a totally friendly manner, your comment is entirely unwarranted.

      Based on the above 2 points I now must conclude that you, sir, are a fuckwit. Good day.

      --
      No Comment.
    4. Re:Try Tripe by Anonymous Coward · · Score: 0

      even got a bit of scotsman in me

      Which bit? And who's the Scotsman?

    5. Re:Try Tripe by GeckoX · · Score: 1

      Just the low-order bit really ;)

      --
      No Comment.
    6. Re:Try Tripe by Anonymous Coward · · Score: 0

      well, at least we're not offtopic, since there really is no topic in a dupe.

      Guess again, douchebag. Ahahaahahahahahahhaahahhhaahhaah

    7. Re:Try Tripe by GeckoX · · Score: 1

      I know what it means, and it's certainly closer to the intended meaning of the grandparent poster I originally responded to than 'tripe'.

      'Tripe' is just not even in the same ball-park.

      Sure, the pattern the poster explained works, but that sure doesn't mean much when there is NOBODY in the world whom would use 'tripe' to have anything at all to do with 3, in any form or use.

      --
      No Comment.
    8. Re:Try Tripe by bluesnowmonkey · · Score: 1

      It wasn't a terrible joke (albeit one I didn't completely get), but you had to go and argue with him about it. How pointlessly crass. Not only that, but he knew what he was talking about and you clearly did NOT. Therefore, as an independent and objective observer, I hereby declare you the loser, with bonus asshole points. Now piss off.

    9. Re:Try Tripe by GeckoX · · Score: 1

      Ah, I get called a 'didactic concecending troll' and I'm the asshole ehh?

      You're right, I'll just piss off now.

      --
      No Comment.
    10. Re:Try Tripe by Anonymous Coward · · Score: 0
      I'm quite aware of the existence of the word "tuple". However, it's not in common usage,

      You goddamn idiot!

  24. Peer review is king... by timjones · · Score: 5, Insightful
    Joel almost, but not quite touched on it when he mentioned source code availability as a core Unix value, and that is Peer Review.

    True, in the Unix world, one makes your source code available to give others the chance to further improve and customize the system, but by making it available, it means OTHER PROGRAMMERS WILL SEE HOW GOOD (or bad) YOU ARE. Because of this, most open source developers will want to put in the extra effort to do it right / clean it up / make it elegant/compatible (or at least the best of their ability).

    Most open-source developers are happy to learn and grow by reading suggestions and examining patches submitting by their 'users' (obviously, the ones who submit patches are programmers as well).

    In the Windows world, source code is a closely guarded secret. No one is going to see THAT source code, so who cares?

    1. Re:Peer review is king... by Decameron81 · · Score: 3, Insightful

      While I do agree with you that coding elegantly is a must in the Unix world... I don't agree that coding closed source products means you're probably going to code badly. A good coder is good at what he does no matter how many people is going to see his work.

      But yes, working in open source projects is probably the best way to learn and share knowledge.

      Diego Rey

      --
      diegoT
    2. Re:Peer review is king... by moranar · · Score: 4, Insightful

      Playing devil's advocate, I could say that when you are doing a big closed project (say, excel or windows) somebody else will see your code. But as we can see, they don't seem to mind about the quality either.

      A point I noticed is when Spolsky talks about the Silence is golden rule and gets it all wrong. The rule is complemented by "If a program fails, it should do so in the quickest and noisiest way possible". This rule is also complemented by the possibility of someone else to write a GUI or a text interfase specifically for showing the results of a command.

      This goes without saying that the rule actually means "When a program finishes successfully it should'nt output anything but its normal output. If you say

      ps -ax
      you see all that output, but not a "command finished successfully" afterwards. If you say
      tar -jxvf dir/
      you see the file.tar.bz2 done, not a "hey, here I am!" message. This is well, and does not mean "The program doesn't say anything. And it is possible to add a "clarifying" interfase on top of it.
      --
      "I think it would be a good idea!"
      Gandhi, about Internet Security
    3. Re:Peer review is king... by dillon_rinker · · Score: 2, Insightful

      So again, you're coding for programmers, not users. Tell me again how you've added something to his core insight.

    4. Re:Peer review is king... by Anonymous Coward · · Score: 1, Funny

      You accidently posted this replay in the wrong place. This story is about slashdot dupes.

    5. Re:Peer review is king... by timjones · · Score: 1

      Good craftsmen always care about the quality
      of their work, no matter what. What I
      am saying is that more care will be
      put into work when it is a certainty
      that others will look, and judge.

    6. Re:Peer review is king... by timjones · · Score: 1
      One other thing that Spolsky missed was about returned error codes (ERRORLEVEL for you Windows-only people, IIRC).

      Success is zero. Anything else indicates a problem.

      It's another one of those wonderful things that makes scripting nice and easy, but the users don't even know about.

      Is it REALLY asking that much for end users to spend a few weeks learning some computer basics? I mean, people will fritter away time on so many non-productive things (games, reality TV, sports, etc).

    7. Re:Peer review is king... by timjones · · Score: 1
      By explaining why programmers will spend a little more time on their product, I help people understand why the Unix/OSS way evolves software faster and at a higher quality. (and this is not news to anyone who has read ESR's writings).


      Also, (correct me if I'm wrong), but Joel seems to have been weaned almost entirely on the Microsoft side of programming. It's not surprising that he didn't get it all the first time (hint: go read ESR's entire site).


      It just goes to show you all this corporate bullshit doesn't buy you much. It is the experience and judgment of great programmers that builds quality systems, not the shiny company logo, not the weasely sales team or anyone else.

    8. Re:Peer review is king... by aminorex · · Score: 1

      > I do agree with you that coding elegantly is a must in the Unix world

      Explain sendmail.

      --
      -I like my women like I like my tea: green-
    9. Re:Peer review is king... by Anonymous Coward · · Score: 0

      Just for the record, I think Spolsky is right for the most part.

      I think that issue of *nix commands should be silent on success is intertwined with the "make each program do one thing and do it well" in the *nix culture.

      When someone writes a *nix command line utility, they think of it as a function that does one thing well and can be reused by other programs. In this sense, they should be silent on success.

      You wouldn't write a function:

      bool do_something()
      { // ...
      if (everything_went_well) {
      cout "Everything was fine, thanks." endl;
      return true;
      } else {
      cout "Error: the flavinator couldn't find the bincluevinator." endl;
      return false;
      }
      }

      Since do_something has no idea what context it's being called in (e.g., is there even a user there to read the message, does the user know what a flavinator and bincluevinators are?), how can a useful success or error message be embedded into it?

      A *nix command meant to be used as a function by other commands (yes, coding for programmers just like a function) should be quiet on success for this reason. It still has to say something on error, of course.

      A *nix command that's meant to be a user interface of course should report success and give all sorts of information. Instead of talking about bincluevinators, this type of command should give error messages that relate to what the user was trying to accomplish.

      The problem is where the line is drawn between a function and a program meant to be a user interface to a collection of *nix commands.

      On another topic, I think Spolsky's opinion that /lib should be changed to /libraries is off base. The average user doesn't know what libraries are either.

      Users wouldn't care where an application's files were if installation "just worked" and they had a well-designed user interface to discover which applications are installed, install more, upgrade some, etc. Installation, uninstallation, and upgrading: this is where the problems are, not the names in the directory hierarchy. I think that having applications live in their own directories is barking up this same (wrong) tree.

    10. Re:Peer review is king... by Anonymous Coward · · Score: 0

      Don't let drunken grad students write production software.

      Applies to open and closed software equally.

  25. Who'd of thought? by BabyJeebus · · Score: 0

    What amazes me more than the back-to-back dupe is that they had different headings and descriptions instead of the usual cut-and-paste.

    1. Re:Who'd of thought? by Joel+Carr · · Score: 0

      Not only that, but the associated topics are also 100% different. One would have thought at least some of the topics would have been assigned to both postings.

      ---

      --
      Any man who can drive safely while kissing a pretty girl is simply not giving the kiss the attention it deserves. -- AE
  26. Kudos. by Anonymous Coward · · Score: 1, Insightful

    My congratulations to anyone able to make their way through this book.

    I, it seems, do not have the stamina to make it through ESR's 80:20 ratio of repetitive ESRisms to possibly insightful content. (No promises on the 20%.)

    The Unix Philosophy, Gancarz, is far more my thickness, far less diarrhea of the keyboard, and in the noggin after reading.

    On second though, my sympathies.

    1. Re:Kudos. by crwfrd · · Score: 1

      I have to agree that ESR's incessant self-promotion is a drag. And after flipping through this, his latest infomercial, its title seems a bit off-the-mark. It probably should be "The Philosophy of Linux", since it combines the history and design of Unix with the rise of open source (of course), and of the intersection of the two... i.e., Linux.

      In fact, a better book on the history of Unix already exists -- Peter Salus' "A Quarter Century of Unix".

      But the saving grace of ESR's book is... IT'S FREE:

      http://www.faqs.org/docs/artu/

      So I guess we really shouldn't complain too much.

  27. Let's dupe the dupes by vierja · · Score: 0, Redundant
    hehe

    Since it looks it's accepted in Slashdot, I'll dupe the other readers' dupes:

    article is duped!

    CmdrTaco, what were you thinking about when you accepted the submission? hehe :-)

  28. Omission? by CaptainBaz · · Score: 1
    About slashdot: "slashdot-karma-whoring sectarianism..."
    He forgot "dupe-posting" :)
  29. Windows programmers are smarter, and here is why by Anonymous Coward · · Score: 0

    the win32 API is HUGE. Windows programmers have to be familiar with a the standard C and C++ libraries, as well as ATL, WTL, MFC, and countless other Microsoft APIs, and know the ins and outs of windows specific stuff like windows message pumps and the myriad of windows messages themselves.

    Slashdot likes to make fun of "Windows programmers", but its not easy.

  30. Good going, Taco. by 72beetle · · Score: 0, Funny

    Is 'pathetisad' a word?

    -72

    --
    -Those who dance are considered insane by those who can't hear the music.
  31. Without realizing it... by Anonymous Coward · · Score: 5, Interesting

    he identified one severe problem but put the wrong spin on it!

    observing that a program that produces no output because it succeeded cannot be distinguished from a program that produced no output because it failed badly

    With Windows programs, you just never know. In general, I pick up a *nix program, test it a few times to verify that it does indeed do what it was supposed to do and then I use it. With Windows programs, I just never feel secure. I find myself saving more often, checking output at myultiple times through the process and wasting sooo much time verifying that everything did what it ought to have done because I am never quite sure.

    Now this is a profound cultural difference, but I think it has little to do with writing for Aunt Madge or writing for other programmers. I think it has more to do with the culture of quality and craft (*.nix) or the lack thereof (Windows).

    Many Windows programs "babble", not to reassure Aunt Martha, but to reassure Windows users who have grown up in a culture of "slap it together, get it out the door and let the user worry about any problems with the way it works". Without some confirmation the user just never knows whether a given program is actually working or has crashed. Many Windows widgets including moving progress bars, constantly moving icons and spinning logos are there just to reassure the user that something is indeed happening and that Windows has not crashed in the meantime.

  32. mirror world by Anonymous Coward · · Score: 1, Interesting

    but it does mean that Americans getting off the plane for the first time in Tokyo are confronted with an overwhelming feeling that this place isstrange, dammit!

    It's funny, but coming from Australia you'd think I'd feel right at home in both the UK and US, but there are lots of little things that make me feel slightly out of place in both countries. I think Gibson's "mirror world" term describes it best. And it's much the same with programming, not that I've explicitly programmed for windows, but it's quite a difference writing GUIs in Java or C++ as opposed to command line tools in Perl or C. Each to their own, I guess :)

  33. My friend the windows programmer by soccerisgod · · Score: 4, Interesting

    I have a friend who's a Windows programmer.

    I, on the other side, am a Linux programmer. We've worked together on a few projects, and there were differences in the way we looked at solving problems that were sometimes almost insurmountable.

    The biggest difference between the two of us is that he has an almost religious believe that, if Microsoft says you are to do things a specific way, you have to do it that and no other way. I, on the other side, try to do things the way I think they work best.

    One example is his belief that, if there is a service pack, you need to use it, even if it breaks things (as some visual studio SPs do in some cases). He gets really upset if you don't apply them. I'm all for keeping software up to date, but if it breaks things?

    I have to say that his co-workers and fellow Windows programmers don't all agree with that philosophy though...

    --
    If a train station is a place where a train stops, what's a workstation?
    1. Re:My friend the windows programmer by RexxFiend · · Score: 2, Interesting

      I think that it is down to the constant patching and updating of apis that comes with winders. If you don`t do it exactly the way MS tell you in the docs, chances are the next time the api is "extended", your program doesn`t work anymore.

      The other problem is that MS will not support you, they won`t even give you the time of day, unless your systems are patched right up to the latest levels and are setup in a completely standard way.

      --

      A crash reduces
      Your expensive computer
      to a simple stone.
    2. Re:My friend the windows programmer by rmpotter · · Score: 2, Informative

      Yes. Service Packs rule. They need to be tested first, at least for critical server apps, but overall, the long march of Windows Service Packs has been an improvement. I've worked on quite a few hybrid Linix/Windows apps. Usually client server. Guess which platform the client runs on? Deploying Windows apps with PostgreSQL connectivity via ODBC is a breeze. Much easier than deploying Oracle client apps. There are _many_ ways of doing most things in Windows land. It all depends on the experience level of the programmer and IMAGINATION. I would say imagination is a huge part of coding, one that is often overlooked.

      --
      Is this sig nificant?
    3. Re:My friend the windows programmer by rmpotter · · Score: 2, Informative

      Actually, given the size and number of their APIs, I think MS has done a pretty good job of maintaining compatibility -- at least until DOT.NET came along. There is a bit of a leap there ;-) The MS Newsgroups are a huge reservoir for support. The most grief I ever had with Windows was a database app written in the early days of ADO. It was buggy as hell, but there were work-arounds for almost everything. Every subsequent release of the MDAC since 2.1 has provided increased stability, functionality and performance. And my old apps continue to work just fine. Maybe I was just lucky?

      --
      Is this sig nificant?
    4. Re:My friend the windows programmer by syle · · Score: 5, Insightful
      The biggest difference between the two of us is that he has an almost religious believe that, if Microsoft says you are to do things a specific way, you have to do it that and no other way
      This could well come from experience with MFC. It's certainly my experience that when you're trying to use MFC to get things finished, you can either work with it or against it. When you want to do things your way, you end up with a huge program that's hanging together by threads, but when you do it its way, you tend to get small, simple, elegant code.

      The Linux user may say, "How could I do this better?" but the Windows user says, "How would Microsoft intend for me to solve this problem?"

      --

      /syle

    5. Re:My friend the windows programmer by dillon_rinker · · Score: 4, Insightful

      Your friend is right. When you work in a closed source world, your only option is blind obedience to the people who have the source. The alternative is simply blind disobedience, and then you have no recourse when things break. At least when you obey the Priests of the SOurce, you can (eventually) get them to listen when the API is broken. Disobey them and you will be shunned.

      "Breaking things" is subjective. Does a beaver who builds a dam break things? Does the farmer who rips out a beaver dam to un-flood his fields break things? If a service pack breaks something, it means you have disobeyed the Priests of the Source. Repent and change your ways.

      His way is best if you want to be certain that, when things break, it's Microsoft's fault. Apply the service pack and things break? It's Microsoft's fault for creating a faulty service pack. Don't apply a service pack and things break? Microsoft's fault for writing faulty code in the first place. It's a CYA mentality.

    6. Re:My friend the windows programmer by anomalous+cohort · · Score: 1

      MFC is a framework. If you don't play within the framework nicely, then you won't get good results. The same thing could be said for Qt or wxWindows.

    7. Re:My friend the windows programmer by sql*kitten · · Score: 1

      Your friend is right. When you work in a closed source world, your only option is blind obedience to the people who have the source.

      Umm, you do know that the source to MFC is readily available, right?

      Spolsky also criticizes ESR for flaming Windows programmers while clearly never having never written a line of code on Windows.

    8. Re:My friend the windows programmer by Graspee_Leemoor · · Score: 1

      "I have a friend who's a Windows programmer.

      I, on the other side, am a Linux programmer. We've worked together on a few projects, and there were differences in the way we looked at solving problems that were sometimes almost insurmountable. "

      Oh wow! They should make this into a buddy cop movie with Jackie Chan and Chris Tucker! It would be hilarious!

      graspee

    9. Re:My friend the windows programmer by anomalous+cohort · · Score: 2, Interesting

      I don't think that a lot of business application developers that use Microsoft technology have Computer Engineering degrees. They don't know the theory so they just "copy and paste" the architecture and the design from an existing application to their own. That's why they do everything the mother ship tells them to do. They never had the formal education that lays the groundwork for making these types of decisions.

      To serve this need, Microsoft periodically releases "sample applications" that programmers study in order to learn how to architect and design their own applications. I've heard one of their evangelists refer to these sample applications as "3-2-1 apps" because 3 developers can take 2 months to develop this app.

      All well and good if the complexity of the proposed application's requirements warrants this resource scenario. If the intended application needs a bigger project, then the design of these samples apps do not scale to the needed functionality and/or load.

      Microsoft doesn't want to release more complex sample applications because these samples serve a marketing purpose to show how easy it is to use Microsoft technology.

    10. Re:My friend the windows programmer by sheldon · · Score: 2, Insightful

      I'm all for keeping software up to date, but if it breaks things?

      How do you know if it breaks things if you don't try it?

      How do you know it doesn't fix things?

      I'm not a huge fan of spending weeks trying to debug and workaround some glitch that could have been fixed by simply updating the core software.

    11. Re:My friend the windows programmer by syle · · Score: 1
      Yes, obviously that's true to some extent for any framework. But what I meant here is that MFC is sort of the antithesis of Perl's "there's more than one way to do it." When writing COM+ or LDAP or even wizard-based dialogs, you have virtually no flexibility. There's a standard, "This is how it's done; this is the way you will do it," mentality that you just never see on the Linux side of things.

      Everything that you can possibly do has been done before and cataloged, and you must use the library for exactly and only those specific things. Go to Linux and you'll see people using common libraries to do bizarre things that their creators absolutely never would have thought of. That way of thinking and that flexibility of design just plain doesn't exist on the Windows side.

      --

      /syle

    12. Re:My friend the windows programmer by soccerisgod · · Score: 1

      What I ment was that he's telling people to apply specific service packs that he knows break things. I'm not against installing service packs in general, that's a misunderstanding. Only if you know it will break your app.

      --
      If a train station is a place where a train stops, what's a workstation?
    13. Re:My friend the windows programmer by soccerisgod · · Score: 1

      That's actually a pretty good reasoning. It also reassures me that programming linux applications is the better choice for me. Strange that my friend could never say it with such clarity.

      --
      If a train station is a place where a train stops, what's a workstation?
    14. Re:My friend the windows programmer by Bob+Uhl · · Score: 1
      Spolsky also criticizes ESR for flaming Windows programmers while clearly never having never written a line of code on Windows.

      So? By their fruits shall ye know them. They write crappy software for a crappy OS--why shouldn't they be flamed? One doesn't need to wrestle in execrement oneself to criticise excrement-wrestlers.

    15. Re:My friend the windows programmer by Anonymous Coward · · Score: 0

      Actually, I have seen Microsoft Engineers (who wrote IIS) tell the first BizTalk conference directly and in their own words that the "Microsoft way" does not work and leads to IIS crashing with regard to a lot of different aspects.

      I had ("The way") instructors in classes telling me 6 months later that you should always do things the microsoft way.

      At that point I decided that I knew more about the subject of programming (including IIS) than they did and asked (fruitlessly) for my money back. They typically have a few tricks up their sleeves that only certified instructors know, but not 6k worth.

      Blindly following the microsoft(or anyones idea of "the way") and using slightly modified source code examples in production apps without thinking for yourself leads to bad code. This is the unibrow way of ham and eggs programming and most likely why there are so many fsck'ed up IIS (and VB) apps out there.

      I now develop strictly on Apache and in java (on SCO, Sun and linux) so have a rare perspective on the whole open vs closed source programming philosophies. To me, from 50 miles up, MS programmers blindly following the way look a lot like lemmings. I used to be one of them so know the type.

      This manifests itself as IIS or other ms servers with custom code that need to be rebooted all of the time.

      Don't get me wrong, there are a lot of VB and VC++ programmers that really know their stuff, and and can code circles around me. I am just saying that there are a crapload of bad ones following the microsoft way.

      L8,
      AC

    16. Re:My friend the windows programmer by btakita · · Score: 1

      I agree that most examples are superficial. This extends beyond Microsoft's documentation and into books about Windows programming and Visual Studio's code wizards.

      On my current .NET project, I learned a valuable lesson...
      Code Wizards should only be used for prototypes, and prototype-like applications!!! They're quick, dirty, and inflexible.

      Do not code to satisfy the way the Wizard and Generator does things. It makes development myopic and inflexible. I switched from using code generation to reflection and brought my project down from 25,000 lines to under 6000 lines AND gave it more features.

    17. Re:My friend the windows programmer by Anonymous Coward · · Score: 0
      There's a standard,

      Maybe the Unix side could learn something from this.
    18. Re:My friend the windows programmer by 3rdParty · · Score: 1

      Unix programmers arguably write the crappiest user interfaces known to man. I guess that's a flame. All of the head developers at Unix shops I've worked in had an aversion to establishing a common look and feel to their apps. They saw nothing wrong with de facto mandating that new users required extensive training to learn to use their apps, taking no pride in simplifying tasks for the user. Does that make them better, making a computer complicate the job rather than simplify and accelerate the workflow? What do you suppose prospective customers thought, when between our product and a competing product that required far less user training and administration?

    19. Re:My friend the windows programmer by sql*kitten · · Score: 1

      By their fruits shall ye know them. They write crappy software for a crappy OS--why shouldn't they be flamed?

      Oh dear. What code has ESR written? His only major project is the notoriously insecure, buggy and unreliable fetchmail. Pot, meet kettle...

    20. Re:My friend the windows programmer by Da+VinMan · · Score: 1

      It also reassures me that programming linux applications is the better choice for me.

      Just out of curiosity, why are you bothering to psychologically tether yourself to either option? Why not remain flexible? The true advent of portable code is upon us in the form of Java, Python, Perl, cross platform C/C++ (with libraries like Qt, etc), and other options. If you're actually programming "applications" that end-users will use, then you really ought to be thinking about portability. Relegating yourself to just Windows || Linux || Mac is kinda silly these days if you're not doing systems level stuff (and I'm sure that most of us are not).

      --
      Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
    21. Re:My friend the windows programmer by soccerisgod · · Score: 1

      Well, it all boils down to how much control you have about the application you're working on. In this case I had no control and had to use a lot of windows specific functions. If it was up to me, gcc all the way, with wxWindows and the likes thrown in. But, unfortunally, the customer has the say 99% of the time ;]

      --
      If a train station is a place where a train stops, what's a workstation?
    22. Re:My friend the windows programmer by drsmithy · · Score: 1
      I think that it is down to the constant patching and updating of apis that comes with winders. If you don`t do it exactly the way MS tell you in the docs, chances are the next time the api is "extended", your program doesn`t work anymore.

      Well, that *is* the point of documentation.

      The other problem is that MS will not support you, they won`t even give you the time of day, unless your systems are patched right up to the latest levels and are setup in a completely standard way.

      Neither will pretty much anyone else dealing with that volume of support.

    23. Re:My friend the windows programmer by Anonymous Coward · · Score: 0

      Elegance and MFC in the same sentence??? If you think MSFT has done elegent work with MFC, you must have not heard of OWL from Borland, which was a very elegant framework, not a hack job like MFC... but I have to agree with you about "work with MFC or against it" idea. MSF lets you simple things easier, and harder things even harder, so if you do things the Microsof's way, it ends up being less of a headache for you when they update their system... it may be easier for you, but I would not call that "elegant" by any means.

    24. Re:My friend the windows programmer by sheldon · · Score: 1

      Perhaps you should try to figure out why things break?

      My experience with Microsoft service packs over the past 5-6 years is that they frequently cause bad code to break. i.e. things that worked, but probably shouldn't have.

      In most cases this was in the ADO layer. Most other stuff hasn't caused much of a problem.

    25. Re:My friend the windows programmer by Merusdraconis · · Score: 1

      What do you mean, "arguably?" Let's not forget that the *ix flavours all seem to have an aversion to GUIs in the first place.

      The only program I have installed on my Windows partition that doesn't even try for the standard look and feel and doesn't have a good reason (so games don't count) is the Gimp.

      And I have a lot of programs.

      I'd doubt this would be a flame so much - at the very least MS has taken it long enough. Let's bash *nix for a bit.

    26. Re:My friend the windows programmer by EugeneK · · Score: 1
      Joel wrote :

      Any Windows developer will tell you about the time they spent four days tracking down a bug because, say, they thought that the memory size returned by LocalSize would be the same as the memory size they originally requested with LocalAlloc, or some similar bug they could have fixed in ten minutes if they could see the source code of the library.


      I'm curious if you come across things like that if you develop for MS Windows...
    27. Re:My friend the windows programmer by cs · · Score: 1
      WRT the religious belief: some of that may stem from the fact that M$ may change the API or semantics behind it at whim. Aren't they famous for this? So unless you've followed their "preferred way" you are at greater chance of being screwed in the next change.

      WRT to service packs, it depends what they break. There's plenty of dodgy free code out there that might break if, say, glibc decides to adhere to some overlooked STDC requirement and there's plenty of other examples in this vein. A busted update is one thing, but an update that exposes the brokenness of dependent code is quite another.

      --
      Cameron Simpson, DoD#743 cs@cskk.id.au http://www.cskk.ezoshosting.com/cs/
  34. The parts I liked...... by Big+Troller · · Score: 0

    "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........" I really like this part.... Espeically the slashdot-karma-whoring.. It puts a big grin on my face.... But, I guess to be in the level.. I really enjoy using Linux. But how many of us on occasions have ran into other UNIX or Linux users that just had big egos. I know when I was at college, there were a lot of students who used Linux.. But ther was kind of a divide between the NOOBS and the people who seem to know it all. The NOOBS wanting to know more and more.. And the KNOW-IT-ALLS who were like "what you do know how to do that.... wuhahahahahaha." Although the professors were helpful when asking questions to.. Guess they liked teaching.....

  35. Aunt Madge by frs_rbl · · Score: 1

    ...Aunt Madge might be justified in observing that a program that produces no output because it succeeded cannot be distinguished from a program that produced no output because it failed badly...

    This Aunt Madge seems like a Windows power user to me

    --
    This is not my opinion. Actually, it's not even an opinion. And I'm nowhere to be seen near it
    1. Re:Aunt Madge by AntiOrganic · · Score: 1

      The irony comes later in the article when, he says something to the effect of "Windows is better because Aunt Madge gets confirmation that her email was sent," because I've never seen a single email client give "sent" confirmation.

      Oops.

    2. Re:Aunt Madge by BitchKapoor · · Score: 1

      For all its faults, Pine does. It says "sent mail and copied to sent-mail folder," or something like that.

  36. Can't a story be pulled once it's posted ? by forged · · Score: 1

    I'm sure some people would object if they did that, but that has the potential to save the editors a lot of embarassment..

    1. Re:Can't a story be pulled once it's posted ? by natefanaro · · Score: 1

      I think the editors keep the story to keep all of the "Oh my goodness, another dupe" comments. You would think it would help them to not do it again. Guess not.

      (For the record I don't mind dupes. I usually forget about the original story anyway.)

  37. beat the rush by vierja · · Score: 2, Funny
    The next Slashdot story will be ready soon, but subscribers can beat the rush and see it early!

    I wonder if it's the same story again...
    some subscriber may tell us while she beats the rush :-)

  38. The essential difference by HarryCallahan · · Score: 0, Insightful

    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.

  39. notepad by trick-knee · · Score: 1

    > but for the most part it comes down to one thing: Unix culture values code which is useful to
    > other programmers, while Windows culture values code which is useful to non-programmers.

    no, the REAL difference between these cultures is that Windows programmers feel that Notepad (even with syntax highlighting) is a perfectly good text editor for source code.

    1. Re:notepad by Anonymous Coward · · Score: 0
      no, the REAL difference between these cultures is that Windows programmers feel that Notepad (even with syntax highlighting) is a perfectly good text editor for source code.

      And that Unix programmers are arrogant enough to demand that you learn vi or you aren't welcome to our club.

      I'm talking about console-mode, text editors here. One does have the choice of pico/nano, if you can remember your WordStar days. And one can learn emacs, if vi wasn't painful enough for you. But for inviting the Windows user world in, with a simple editor like DOS Edit, the Unix world says "screw you".

      So the answer is 'go gui' - which shoots the 'Linux runs on small hardware' argument in the head.

      It hasn't been a pleasant experience, trying to learn this new OS.

    2. Re:notepad by glenebob · · Score: 1

      That's why I use (and used to code for) KWrite, or whatever the hell it's called these days. I'm used to it since I started on Borland and MS code editors and so I like it. If you vi guys don't like what editor I use, you can bite my shiny metal ass :-)

  40. Holy Dupe Batman! by Dak+RIT · · Score: 0, Funny
    Well, this has to be a record dupe, under one hour and the dupe immediately follows the original. Although, of greater interest to Slashdot readers, we now have the opportunity to compare the significant differences in headline titles. What do you prefer:

    "Culture of UNIX and Windows Programmers"
    or
    "Explaining The Windows/UNIX Cultural Divide"

    personally I'm leaning toward the latter.

    Cheers.

  41. Re:This is an UBER-DUPE! by Misch · · Score: 2, Funny

    Maybe if the edtors weren't such cheap bastards they would have bought a subscription and seen what the next story in the queue was going to be.

    --

    --You will rephrase your request for me to go to hell. Goto statements are not acceptable programming constructs
  42. heh by Mr_Silver · · Score: 0, Funny
    He's harsh on some points, but pretty on the money. Except about us. Nobody karma whores.

    Hear hear! Too true. You'd never see anyone do anything like that.

    Funnily enough, I wrote some more insightful, interesting and funny comments about this article here :o)

    --
    Avantslash - View Slashdot cleanly on your mobile phone.
  43. There's a glitch... by Misch · · Score: 0

    So there is a glitch in the Matrix today. Next thing you know, /. is going to be swarmed by hundreds of Agent Smith's.

    --

    --You will rephrase your request for me to go to hell. Goto statements are not acceptable programming constructs
  44. Duplicate Posts Complaining About Dupes by sjbe · · Score: 5, Funny

    Poster 1: "Wow that was a dupe"
    Poster 2: "Hey everyone, this is a duplicate"
    Poster 3: "Stupid editors don't read before posting"
    Poster 4: "Only idiots duplicate the previous post."
    etc... ad nauseum...

    Pot, Kettle, Black.

    1. Re:Duplicate Posts Complaining About Dupes by Anonymous Coward · · Score: 0

      not unlike the post?

    2. Re:Duplicate Posts Complaining About Dupes by Zak3056 · · Score: 2, Funny

      Poster 1: "Wow that was a dupe"
      Poster 2: "Hey everyone, this is a duplicate"
      Poster 3: "Stupid editors don't read before posting"
      Poster 4: "Only idiots duplicate the previous post."
      etc... ad nauseum...

      Pot, Kettle, Black.

      --
      What part of "shall not be infringed" is so hard to understand?
    3. Re:Duplicate Posts Complaining About Dupes by NivenHuH · · Score: 1

      Hehe.. I ignored the other post because this one seemed more interesting.. =)

      --
      Just when you make it idiotproof, some idiot builds a better idiot.
    4. Re:Duplicate Posts Complaining About Dupes by Anonymous Coward · · Score: 0

      So would your message be Poster 5?? Looks like you're among the pot and kettle. OK.. now, I have to meta-moderate and figure out if I really think your post is funny or not.

  45. I for one welcome our duplicating overlords! by xtermin8 · · Score: 0

    I personally started reading /. as an alternative to tunes.org I would read a site that debated Open Source vs closed, proprietary code perpetually. What better way to wallow in Nerdiness?

  46. Eric "overrated" Raymond by argent · · Score: 5, Interesting

    Eric Raymond is really good at rephrasing conventional wisdom so tat it sounds new, which is useful, but it's too often confused with real wisdom.

    Joel Spolsky doesn't appreciate the context that UNIX comes from.

    When UNIX came out, *it* was the user friendly operating system. The interface was linguistic rather than iconic, but compared to what came before it was a breakthrough... it was the "Macintosh" of the '70s for the academic world.

    Before UNIX you had "linguistic" interfaces, but where UNIX is "process this file with this program", these were more like "Whereas the program, 'this program', hereafter known as SYSTEMUTILITY.GIBBERISH, and the input files, 'this file', to be provided later and to be known hereafter as "GO SYSIN DD *", do AGREE to enter into a contract for processing, known hereafter as EXEC, the user humbly requests the opportunity to render this job to the SYSTEM...".

    This was a breakthrough. And once you learn the language it is far more "user friendly" than any amount of icons for those tasks it's good at.

    The real cultural divide is that UNIX programmers want programs to work well together so they'll be widely used and eventually sell well, and Windows programmers want programs that look easy so they'll sell well or at least be widely used. The aim is the same, the method is different ... because it's so HARD to use programs together in Windows... no, better stick to elephantine "suites"...

    The solution, UNIX and Windows programmers can meet in Mac OS X and everyone wins. You get Mac programs playing well together in Applescript, UNIX programs in the shell, and "osascript -e" to tie it all together...

    1. Re:Eric "overrated" Raymond by GigsVT · · Score: 1

      And that nagging single point of failure; a company that isn't particularly financially sound running the whole circus.

      Because the OS is mostly closed, and controlled by one company, and even worse, the hardware is, there's an extremely high risk of something happening like what happened to all the work that went into BeOS apps.

      A fully open source platform, on hardware offered by more than one vendor, is the only way to produce software that has a strong chance of remaining viable.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:Eric "overrated" Raymond by scruffy · · Score: 1
      When UNIX came out, *it* was the user friendly operating system.
      This is a good point. Anyone who ever had to do something with IBM's JPL (or was it JCL, so long ago and so horrible I have forgotten) would definitely understand.
    3. Re:Eric "overrated" Raymond by sheldon · · Score: 1

      I believe you've fallen into the same pit that Eric starts from. You don't know anything about Windows, and thus make some vast assumptions about culture.

      Windows programmers, nay users, also want programs that work well together.

      The existence of the elephantine "suite" was a step in this direction back in the earliest days of Windows, i.e. Windows 3.0. Since that time, features have been built into the OS such as OLE, etc. which now allow any and all programs to operate together as a suite even if they were not written as a suite.

      So no need for MAc OSX... Windows has been there for several years already.

    4. Re:Eric "overrated" Raymond by mccalli · · Score: 1
      So no need for MAc OSX... Windows has been there for several years already.

      Remember Apple's Publish and Subscribe? Now think about OLE, which came out later...

      Cheers,
      Ian

    5. Re:Eric "overrated" Raymond by mdielmann · · Score: 1

      and "osascript -e" to tie it all together...

      Come on, show your geek heritage. The appropriate finale, especially given the upcoming event, would be, 'and "osascript -e" to rule them all, and in the command-line bind them...'

      --
      Sure I'm paranoid, but am I paranoid enough?
    6. Re:Eric "overrated" Raymond by Eil · · Score: 1


      The solution, UNIX and Windows programmers can meet in Mac OS X and everyone wins. You get Mac programs playing well together in Applescript, UNIX programs in the shell, and "osascript -e" to tie it all together...

      And in the darkness bind them...

    7. Re:Eric "overrated" Raymond by happy_place · · Score: 1

      I don't use unix (or program it) because I want my program to sell well. I use it because it makes my computer work for me. I have a task that is very computationally difficult. Gotta have a computer. I don't want it to crash. I don't want a clown juggling coconuts in the corner. I want it to crunch numbers and run fast, so that I can know if 10000 regression tests worked out my ASIC design. Windows comes nowhere near my need. It crashes. It needs constant security updates. And it's really not flexible. And with Linux it ain't cheap, either... linux is... so all in all. Windows in my work isn't gonna get the job done.

      --
      http://www.beanleafpress.com
    8. Re:Eric "overrated" Raymond by drsmithy · · Score: 1
      [...] because it's so HARD to use programs together in Windows [...]

      Say what ? What definition of "use programs together" are we talking about here ?

    9. Re:Eric "overrated" Raymond by argent · · Score: 1

      OK, let's say you have Windows Media player running. When you get an email message in Eudora that contains the name of the song currently playing in Windows Media Player, you want to extract the ID3 tags from that song and send them to mirc to display in a channel named in the email message. If the applications were Applescriptable (and most Major mac apps are) you could do things like that.

      Alternatively, do the same thing with XMMS, whatever your UNIX mail program is, and BitchX or equivalent. In UNIX, odds are you can.

      In Windows, this kind of glue is either not possible or is only possible for Real Programmers.

    10. Re:Eric "overrated" Raymond by drsmithy · · Score: 1
      OK, let's say you have Windows Media player running. When you get an email message in Eudora that contains the name of the song currently playing in Windows Media Player, you want to extract the ID3 tags from that song and send them to mirc to display in a channel named in the email message. If the applications were Applescriptable (and most Major mac apps are) you could do things like that.

      Ah, ok, I thought you might have been referring to something a bit more common like copy & paste, OLE or even drag & drop.

      However, I'd be amazed if this wasn't possible with WSH and even more amazed if there weren't some media player+email program+IRC client combination that could do it on its own.

      Alternatively, do the same thing with XMMS, whatever your UNIX mail program is, and BitchX or equivalent. In UNIX, odds are you can.

      In Windows, this kind of glue is either not possible or is only possible for Real Programmers.

      I'd propose to you that it's probably only possible in unix for "real programmers" as well (at the very least, outside of the capabilities of the average user - but then again so is your hypothetical example IMHO).

    11. Re:Eric "overrated" Raymond by Anonymous Coward · · Score: 0

      The only reason you couldn't do that is because Eudora, WMP, and MIRC do not have the Windows scripting hooks.

      OTOH, others complain that scripting Outlook is "too easy", and that's as security problem. Can't win.

      Basically, your argument seems to hinge on the idea that AppleScript/UNIX Shell is somehow more accesisble than Windows Scripting (Javascript or VBScript). Debatable at best.

    12. Re:Eric "overrated" Raymond by argent · · Score: 1

      The reason that WSH is a security problem in Outlook is because Outlook's scripting is inside-out. The very idea that one might even potentially be able to embed a script for a fully-trusted language in an untrusted document and have it executed is mind-boggling. Back in the late '80s we used to joke about someone writing mail software that would let you do that, especially after the Internet Worm used a vaguely similar security hole in sendmail (which hole was swiftly removed. Not plugged or patched, the dangerous feature was removed), but nobody believed that anyone would actually do it.

      And yet not only did Outlook implement this, and in multiple ways (consider that just using the MS HTML control outside a sandbox has similar issues), but Microsoft has actually made Outlook dependent on this feature. Not only that, but they pulled the same trick with IE and Windows Explorer, which is kind of like building a user interface out of binary nerve gas, and then refused to undo this unholy marriage despite being legally required to in lawsuit after lawsuit!

      Which is yet another reason why programmers are reluctant to provide WSH hooks in their programs.

      Applescript and the UNIX shell don't have this problem, because there is no code in Safari or Mozilla or Mail.app or elm to take part of a document and pass it to the external trusted interpreter. These scripts /have/ to be provided externally by the user using an interface that's never presented on the inside (and often exists only in a separate program), and are not essential to the normal operation of the program. For text manipulation and "active content" a separate interpreter is provided that doesn't have any mechanism to make permanent changes in state outside a sandbox that doesn't interact with trusted code... or even examine more than an absolute minimum of such state.

      I haven't done much with AREXX. I didn't care for REXX as a language, and I didn't stay with the Amiga after it became obvious that Commodore and Atari between them had decided to play "multiple suicide", but I would be surprised if there was any application on the Amiga that intimitely embraced AREXX the way Outlook seems to entangle itself with the MS HTML control and WSH.

  47. I've Always Wondered by Bruha · · Score: 0

    Taco! Why not just pull dupes when they're found? Our home grown CMS allows us to do it on our network so I have to assume you can do it on yours. Only difference is that your forums if you call it that are not hard linked to the story like slashcode does. I guess it's a matter of not pissing off the 200 posts of OMG it's a dupe hehe..

    A suggestion would to be move all +2 and above topics to the original and merge it into there and let the original go away.. Or better yet just hide the dupe posting and then nobody can access that thread it generated.

    OR when you post it does a quick search through that topic at least and tells you if it's like another article and shows you.

    1. Re:I've Always Wondered by Gwyn_232 · · Score: 1

      It's an ideological thing. Peer review means 100% no edited posts - which includes deletion and even moving. I know it sounds silly but that's how the 'purity' is maintained. We should be grateful that, when they do make mistakes, they're more interested in upholding the ideal instead of covering their arses.

      The only solutions are prevention (see numerous posts about CVS trees, keyword searches, firing editors etc), or indicators to let people know that they are reading, or posting to, a dupe story.

  48. It's getting obvious.. by Cragen · · Score: 0, Interesting
    That /. needs a pre-posting mod area. Those stories that get modded up to some magic number go onto Home Page Glory, and the rest are history. When will we learn? What?

    *cragen

  49. Me is (ugh!) Windows coder. by tiger_omega · · Score: 1, Informative

    Right time to burn karma by saying that I primarily program Windows using MSVC (I love the smell of flmaebaiting myself in the afternoon).

    There are several other differences that I have come across in IMHO (or more my humble experience) between Win32 and UNIX programming.

    The first of the these is Hungrain notation which was dervied from MS coding. For those not in the know this is the naming of attributes and variables such that the name reflects its type. Over the years I've come to see several forms of this but the simplest and most useful is to prefix the name to note where the variable is declared.

    i.e. g_X - denotes global
    m_X - denotes class attribute
    c_X - denotes constant variable
    X - local variable.

    Thus when reading through code using this notation it is easy to see where variables come from.

    I've found the use of this notation common in Win32 programming but not in UNIX programming.

    (OK - this is the point where I get crusified by the counter examples and the points that alot of UNIX code is written in C not C++ where this notiation is only applicable)

    I definately agree with the article in that a good deal of UNIX work is aimed at CLI interfaces where as the Win32 tools are designed for the end user.

    But in talking to other programs for Win32 there is the use of DLL's and COM interfaces. Or in short fixed APIs are used when programmers want to talk to other programs.

    From my point of view as Win32 coder a final product is usually being aimed at someone who is not programmer. If the software is not functional and easy to use and intuitive then it really ain't going to cut it. Now if I want to expose my product so it can be expanded upon I will present a programmable, simple and documented API.

    1. Re:Me is (ugh!) Windows coder. by argent · · Score: 1, Interesting

      Most UNIX applications are aimed at end-users, not programmers. Most UNIX users never need to see the command line. The main architectural difference between UNIX and Windows is that in Windows the components that communicate with each other behind the GUI are called "DLLs" or "COM interfaces" or customized plug-in APIs, which are complex and fragile and so MUST be kept far away from the user. In UNIX they're called "programs" and "scripts" and "pipelines", and they are simple and reliable and so don't need to be so deeply hidden.

      Having simple and reliable interfaces that users occasionally deal with is not a horrible thing. Consider the third common platform, where the components are called "DAs" and "Extensions" and "Programs" and use a relatively simple and reliable interface called "Applescript" to communicate with each other...

    2. Re:Me is (ugh!) Windows coder. by argent · · Score: 3, Insightful

      Let me expand on this a little: "Now if I want to expose my product so it can be expanded upon I will present a programmable, simple and documented API."

      Windows programs are written to be *used* by one class of people, and *extended* by another. In Windows, the end-user can not use a "simple, and documented API", only a programmer can. In UNIX, or to a lesser extent on the Mac, programs are expected to use a *common* "simple and documented API", so rather than only letting the elite caste of programmers get in on the action these platforms encourage everyone to do it.

      So in a way, it's Windows where programs are written for other programmers, but on UNIX they're written for everyone. Whether or not hey have a functional and easy to use interface (and lord knows there are plenty of Windows programs that fail that test. Solomon 4, Lotus Notes, Microsoft Reader, ...) is a matter of the programmer's skill, not their culture.

    3. Re:Me is (ugh!) Windows coder. by hey · · Score: 1

      Windows:

      for (m_iCounter = 0; m_iCounter < m_iTheEnd; m_iCounter++)

      Unix:

      for (i = 0; i < n; i++)

    4. Re:Me is (ugh!) Windows coder. by j3110 · · Score: 1

      Python doesn't need hungarian notation. There are no types for one, and all members get self. prepended.

      for i in range(n):

      or if you are inside a class:

      class cheese:
      def __init__(self):
      for i in range(self.n):

      Cool eh?

      Python run just about everywhere, but I've always considered it more Unix that Windows. Not that this post is directly on topic, but I thought I would smack hungarian notation around considering that well designed languages don't need it to see where variables are from. Also, most programs don't need it. If it's not in the function params, it's in the class. If it's not in the class, it's in a super class. If it doesn't inherit, some bastard is using a global variable, and it's time to be tieing that noose and checking the CVS logs.

      --
      Karma Clown
    5. Re:Me is (ugh!) Windows coder. by gte910h · · Score: 2, Interesting

      To tell you the truth, I do still mark global and static variables with a g and s respectively and put m_ in front of my class members. But I picked up that habit in the embedded world, as far from MS as you can get. I've used it in the MS world before too, but I don't think it did much for most people and its a bitch when you need to change variable types.

      However I will have to say that type awareness is MUCH better taken care of using things such as std::string (as opposed to TCHAR, char*, char buffer[3234] so on and so forth), and also putting on all the compiler warnings and using lint as a normal compilation step. You'll catch a LOT more bugs than using hungarian. Splint and PClint(unix varient by same company called somethig else) are two up to date lints. At first its just painful to do so, but after you turn off a couple warnings and get the codebase into compliance initially, all the programmers start writing lint-passing code by default (just like they ususally write code that compiles). This has the added benefit of those habits continuting on to other pojects as well.

      Another reason UNIX gets away with no hungarian, is that windows has HUGE functions much of the time. This is because many of the calls take bizzare structures or 5 calls to setup. Try to get the text back from a common dialog that you have starting in a certain initial directory. You'll see what I mean about requiring several lines of code to get things done.

      --
      Want to see every step I took to start my company? http://www.rowdylabs.com/blogs/pitchtothegods
    6. Re:Me is (ugh!) Windows coder. by Radix37 · · Score: 1
      Right, because you have to use the stupid Hungarian notation to make a windows program. I write windows programs and I hate the hungarian notition in the windows api, and I don't use it at all... an example:

      if (x >= (b->xloc + b->xsize) || y >= (b->yloc + b->ysize)) continue;

      MSVC++ seems to compile it just fine...

      --
      Speed Demos Archive - Lots of speed runs!
    7. Re:Me is (ugh!) Windows coder. by EvilLile · · Score: 1
      I don't get it? Are you saying Windows programmers don't know the difference between an instance variable and a member variable? =P

      Even Hungarian Notation would do

      for (i = 0; i less-than whatever; i++);

      Unless of course, you have a professor who doesn't let you do one letter variables, even in your short for loops.

    8. Re:Me is (ugh!) Windows coder. by 3rdParty · · Score: 1

      You're missing the point of Hungarian notation. You don't use it in For loops. You use it so next month, when you (or more importantly, a colleague) are trying to debug a function you barely remember writing, you can determine the scope and type of m_strID at a glance, not confusing it with strID or m_intID. The C++ compiler doesn't need it, Microsoft didn't invent it, but it was someone at Microsoft who found it a good idea worth passing on. You don't have to use it. But saying you are smarter than someone who uses it is silly and ignorant.

    9. Re:Me is (ugh!) Windows coder. by tiger_omega · · Score: 1

      TCHAR has the property that it represents characters as ANSI or Unicode depending if the _UNICODE is defined.

      Personally I'm not that keen on it and prefer to handle C strings via a object representation like std::sting.

      Standard notiation such as hungrain notiation does make the code easier to read exceptioally when a number of programmers are working on the same piece of code. Its just one method in arsenal of tools, such as lint, that help improve the quality and maintenability of the code.

    10. Re:Me is (ugh!) Windows coder. by argent · · Score: 1

      I don't care much for Python because I don't like the syntax, but you have exactly the right idea here: and Python is a definite winner in the comparison. Unlike C++, it's a true OO language... not an OO wrapper around a structured assembler.

      (don't get me wrong, I like C, it's my favorite low level systems language, but it's not where I'd start if I were devising an OO language)

    11. Re:Me is (ugh!) Windows coder. by gte910h · · Score: 1

      TCHAR isn't actually what I was thinking LPCSTR was. But I'm in linux right now, so I couldn't easily look it up.

      Standard notiation such as hungrain notiation does make the code easier to read exceptioally when a number of programmers are working on the same piece of code

      I'm not sure the extreme case of standard notation known as hungarian itself does improve the process as a whole.

      I've found that users of hungarian get more painful typos in loop constructs and math/bitoperations. That's because there can be as many as twice as many characters, and they just can't see the mistake as easy.

      Also hungarians use line continuation/multiline prototypes more often, which as a class can be rather buggy. Its also harder to automatically know when you're using an idiom, such as the if(fp=fopen("file","r")) or for(i=0;iMAX;i++) or you're really doing something odd, like for(resultant=0;(5*(resultant+1))-(resultant*resul tant);resultant++);

      This is one of those issues like vi/emacs, rather than one like to use source control or not. You actually gain something from either approach, as opposed to not really gaining anything other then not having to set it up.

      I used to be a hardcore hungarian, but then I worked on linux kernel modifcations and another unix program and I noticed the downsides.

      --
      Want to see every step I took to start my company? http://www.rowdylabs.com/blogs/pitchtothegods
    12. Re:Me is (ugh!) Windows coder. by Anonymous Coward · · Score: 0

      Python is a procedural and object-oriented programming language. It didn't even have a unified type system until recently.

      Seriously, I could go through a bunch of the posts you've made and beat you with a clue stick, but it's just not worth the effort. You're a total clueless wank.

  50. Get back to kuro5hin by Anonymous Coward · · Score: 0

    Next you'll be on HuSi.

  51. Yes, its a dupe. get over it. by Anonymous Coward · · Score: 4, Insightful

    Hey, no problem. I just won't waste my time by subscribing.

  52. The question by transient · · Score: 1

    I guess we know what the question is now: How many minutes does it take for CmdrTaco to post a dupe?

    --

    irb(main):001:0>
    1. Re:The question by Drantin · · Score: 1

      42! Argh!!! Now the universe will implode because, as we all know, the answer and the question are mutually exclusive and cannot be known in the same universe at the same time!

      --
      Actio personalis moritur cum persona. (Dead men don't sue)
  53. Note to Self by handy_vandal · · Score: 1

    Note to self, never post before coffee. Yes, its a dupe. get over it.

    Note to self, never post -- ever, for any reason.

    --
    -kgj
  54. Moderators: this is stolen comment! by heironymouscoward · · Score: 1

    The original which I wrote is here:

    http://slashdot.org/comments.pl?sid=89437&cid=77 33 593

    --
    Ceci n'est pas une signature
  55. KARMA WHORE - MOD DOWN! by Anonymous Coward · · Score: 0

    People should not steal comments!

  56. two eggs with bacon please by CAIMLAS · · Score: 1

    dear god that had to be intentional.

    one probably posted it after a good long cuddle last night with the other, and the other was a bit slow on the uptake.

    --
    ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
  57. Related topic: UNIX and Mac users by ziggyboy · · Score: 5, Insightful
    I can relate to this article though not just with Windows programmers but with OS X users as well.

    I'm both a UNIX programmer/user and a Mac user. I have a friend who's the average Mac advocate around...which means NOT a UNIX programmer. Though we both love OS X, we do have conflicting views about UNIX. I see UNIX among all things as an excellent development platform and he sees Darwin as just a secure foundation for Aqua. He also looks at open source from a regular users' point of view...and not as a programmer...which really makes all the difference if you think about it. The open source movement is a pro-programmer movement.

    I think Apple has recently been trying to get more developers for OS X (though ProjectBuilder or XCode) because traditionally Macs aren't programmer-friendly. I'm a programmer. I love programming and once in a while I make small applications for UNIX and the Windows prompt (if they're ANSI and easily portable to Dev C++). Sufficive to say (man that sounds too Star Trek), I've only started compiling these small apps to the Mac now that they have Darwin (and GCC!!!).

    There are now 2 major cultures using the Mac at the moment. The UNIX people, and the "I'm just better than you are because I use a Mac" people (the classic Mac crowd). When I first got my iBook a few months ago, I registered in a local Mac forum. I eventually stopped posting simply because of cultural differences.

    Apple is attempting to bridge these two cultures mentioned below (taken from the article).

    How did we get different core values? This is another reason Raymond's book is so good: he goes deeply into the history and evolution of Unix and brings new programmers up to speed with all the accumulated history of the culture back to 1969. When Unix was created and when it formed its cultural values, there were no end users. Computers were expensive, CPU time was expensive, and learning about computers meant learning how to program. It's no wonder that the culture which emerged valued things which are useful to other programmers. By contrast, Windows was created with one goal only: to sell as many copies as conceivable at a profit. Scrillions of copies. "A computer on every desktop and in every home" was the explicit goal of the team which created Windows, set its agenda and determined its core values. Ease of use for non-programmers was the only way to get on every desk and in every home and thus usability uber alles became the cultural norm. Programmers, as an audience, were an extreme afterthought.

    1. Re:Related topic: UNIX and Mac users by Zirtix · · Score: 1
      The open source movement is a pro-programmer movement.

      I agree; for example, open source programmers get access to kernel and library sources as well as just APIs. But open source (BSD) applications can be closed and extended in proprietary way. Great for those developers, not so good for the users, who may have to fork out more cash for upgrades.

      OTOH Free software is really a pro-user movement. Remember the point of the GPL - to preserve the user's freedom. Part of the effect of the GPL, through Linux, has been to force down prices. Great for users, not so good for developers (except, of course, in that as devs are themselves users).

    2. Re:Related topic: UNIX and Mac users by Johnny+Mnemonic · · Score: 1


      As a Mac user (of the Classic variety) and now a Mac admin, I'm happy to have you, and I welcome you and your perspective to the Mac family. While the UNIX part of the New Mac is an interesting cultural shift for me, it's a learning experience that I'm excited to go through. While I'm sorry that you were scared away from the Mac forum you attempted, I think that there are others that cater to the "Mac-Classic user learning to use UNIX" that are very interested to glean UNIX knowledge; one of which is at Mac OS X Hints, and another at AFP548.

      There are certainly two--maybe three, if you count the "Mac Classic users who want to learn Unix"--cultures, but I think Apple has done a pretty good job allowing each to work as they prefer. Except for NetInfo, but that's getting better. :)

      --

      --
      $tar -xvf .sig.tar
    3. Re:Related topic: UNIX and Mac users by argent · · Score: 1

      "Ease of use for non-programmers was the only way to get on every desk and in every home and thus usability uber alles became the cultural norm"

      Along with a deep devotion to creative incompatibility to whiplash the coders and break them loose from portability, and lock the users into the Windows/Office platform. "It isn't done until Lotus won't run."

      And that's where the lack of glue comes from.

      If applications could talk to each other using standardised interfaces instead of task- and application- specific ones that force you to go back again and again to the incompatible or incomplete file formats, then it wouldn't matter if your document was in Word format, you'd doubleclick on "Converter.script" which would fire up Word Viewer and then transfer the high-level document to a Word Perfect window and save it...

    4. Re:Related topic: UNIX and Mac users by argent · · Score: 1

      And yet, ironically, it's BSD-style open source that allows me AS A USER to run OS X on my Powermac 7600 in a way that GPL-style open source never would.

      Perhaps it's not as simple as RMS would have you think?

    5. Re:Related topic: UNIX and Mac users by mockaman · · Score: 1

      here here my brother

    6. Re:Related topic: UNIX and Mac users by bedessen · · Score: 1

      Sufficive to say (man that sounds too Star Trek),

      s/Sufficive/Suffice it/

      as in, "It is sufficient to say..."

    7. Re:Related topic: UNIX and Mac users by ziggyboy · · Score: 1

      Haha..thanks....

      I currently have 1 mod point left. If I hadn't posted on this topic I would've modded you up.

  58. Um, why not a tool to fix it? by sphealey · · Score: 1
    Yes, its a dupe. get over it.
    Given that this sort of incident is inevitable in a distributed editing system, why not have a tool that moves the text and threads from the second article into the first, and then deletes or hides the second article? Seems a lot cleaner.

    sPh

    1. Re:Um, why not a tool to fix it? by sdcharle · · Score: 1
      why not have a tool that moves the text and threads from the second article into the first, and then deletes or hides the second article

      Well, we already have tools who post duplicate stories, so this can't be far behind.

  59. MOD PARENT UP, MOST INSIGHTFUL COMMENT IN THREAD by Anonymous Coward · · Score: 0

    Maybe when Taco quits treating Slashdot like a geek wankery site and starts taking it seriously will we see an end to stupid shit like back-to-back article dupes.

  60. a theory by webwench_72 · · Score: 2, Funny

    Perhaps that code would have no use to other programmers...

    --

    1. Re:a theory by sphealey · · Score: 1
      Perhaps that code would have no use to other programmers
      Yeah, but it could be a command line utility!

      sPh

  61. Philosophy of UNIX by bluethundr · · Score: 2, Insightful

    I'm sure there is SOME unifying philosophy behind Windows. I have no idea what that might be, nor would I wish to. But I found this book about the philosophy of UNIX very enlightening when I read it back in the day. It was an epiphany for me at the time to realize that there WAS or could be a philosophy behind an operating system. But this was the book that made the concept clear for me.

    --
    Quod scripsi, scripsi.
  62. Joel is off base. by Lodragandraoidh · · Score: 5, Insightful

    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
    1. Re:Joel is off base. by ProtonMotiveForce · · Score: 1, Insightful
      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.



      My ass. Developing on _Unix_ (in general) is painful because there are so many different versions of the API's, and each OS is just a little different. Windows has one API.

      Next, Windows has a _much_ more powerful API. You can do things fairly easily in Windows that are downright painful in Unix (ever tried writing something that needs to probe the process table? Fucking nightmare on Unix, though if you pick any one flavor it's not too bad).

      Windows has better threading support, a better asynchronous programming model, and a much more powerful network API.

      And Microsoft isn't just going to go changing APIs at the drop of a hat. They do, umm, kind of write software for the OS and wouldn't want Office to break, now would they?

      That's the thing you Unix zealots don't get - Microsoft has succeeded precisely because they've courted the developer - better tools, better documentation (sometimes _too_ much, admittedly), and a richer API.

      You court the developer, you get more applications. You get more applications, you get more users. Simple, eh?

    2. Re:Joel is off base. by Anonymous Coward · · Score: 0

      That make waaay too much sense. What are you doing on /.?

    3. Re:Joel is off base. by esnyder · · Score: 1
      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.
      Interestingly, I think this part of your comment mostly proves his point ;) When programming in a UN*X culture (ie. mostly for the benefit of 'programmers'), the lack of source is a near fatal flaw for the stability ('goodness' of code) reasons you point out. But if your cultural bent is to be worrying about users, then it's patently absurd to develop for a platform with <10% of the entire user base. You're never going to be seen by enough of the users!

      Cheers,
      -emile

      --

      Emile Snyder
      www.talentcodeworks.com

    4. Re:Joel is off base. by lostguy · · Score: 1
      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.

      While this is not to be discounted (I remember fondly the pain of the BMP format changing between < win95 and >= win95, and its impact on printing, especially on slowly updated drivers), I've had many, many more problems with APIs changing under me on OSS code than on Windows. MSFT APIs tend to stick around for a very long time, and are disambiguated between versions either with long argument lists, many fields of which are reserved for future use, or with painful naming suffixes, such as "-Ex".

      The lack of opacity with open source code has mainly helped me find out that, sure enough, I can't take the application I built against libdb3 and build it on a system with only libdb4. I can either install libdb3 if possible, or pore through the code and figure out the mapping between versions, if such a simple transformation does indeed exist.

      His quote above really hits the nail on the head: the Microsoft monoculture is about money above and beyond any moral considerations.

      This is a moral consideration, as I'm sure other people will point out.
    5. Re:Joel is off base. by Lodragandraoidh · · Score: 1

      Windows has a _much_ more powerful API - ProtonMotiveForce

      I can do more under Unix (up to and including rewriting the kernel) than you can do under Windows. You are constrained. Microsoft forces you to program a certain way - there are no alternatives. If that is your definition of 'more powerful', then I think you have something to learn about 'power' where a computer is concerned.

      Windows has better threading support, a better asynchronous programming model, and a much more powerful network API

      Threads have been shown to be more difficult to program, and thus more likely to have bugs than using interprocess communication. Unix's norm is to build many small tools that communicate in standard ways (piping standard output of one application to standard input of another, or via sockets across the network) and lash them up to get work done in ways the original developer may not have imagined. Our goal is usable applications for our users - not buggy code that makes the users pull out their hair.

      Asynchronous progamming model; not something I have found in my research or experience. Perhaps that is another name for ?...? Is that really desireable? I ascribe to the spiral development model myself (or any of the variations attributable to agile software development - aka extreme programming). It works; you might try it sometime.

      As for network APIs, how can you get more powerful than Expect? You simply instantiate an application (such as telnet, ftp, etc.) and use the reference returned to filter the resultant data stream from the remote application - and have your application respond as appropriate. I know of no Windows API that is as easy to use as that.

      Here is what you should be doing if you develop under *nix:

      1. Ask yourself if the application would be better served as a web based system. If so, use Zope, java or any number of other tools available for the task. This is the ultimate in portability because anyone with a browser will be able to use your application.

      2. If your application absolutely has to run on the client machine, then use a 4GL as core language, such as Python, Perl, Java. Consider C as glue, and only use it sparingly. I would suggest standardizing on the TK gui tool kit - which is available for most languages including Python and Perl.

      3. If your application has highspeed graphics or a realtime monitoring utility, then use accepted libraries, such as OpenGL etc, and program using the fastest language - C.

      4. Forget all of that 'powerful API' BS the Microserfs keep yelling at you. Remember: the "highest priority is to satisfy the customer through early and continuous delivery of valuable software" - Agile Manifesto. Keeping your customers waiting because you spent fifteen days finding a bug in a Windows API is unacceptable. Similarly, wasting time trying to build something from scratch that you could have delivered in less time using existing standards, frameworks and 4GL languages is also unforgivable. Everything else is fluff.

      Finally, you say that Microsoft has 'courted the developers' - I believe they have lead you down a narrow path by your nose. They have certainly not 'courted' me, as my standards for supplying my user base with working software is higher than any holy war.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    6. Re:Joel is off base. by Lodragandraoidh · · Score: 1

      You are making the assumption that programming in a *nix culture mostly benefits the programmers in all cases. While we can say that some of the fringe applications may have such properties, your nuts and bolts - get the work done for our customers enterprise *nix developers have no such luxury.

      Now, given that it is irresponsible to put mission critical applications on a windows machine, there is really only one other OS to develop to: *nix.

      The issue is not 10% of the desktops - the real issue is building enterprise class applications that run on servers - and that is where *nix shines. Who the heck is building applications that run on a client's machine now anyway? Gamers, crackers, and anyone else tied to Microsoft at the hip - that is who. All of our new system development is going to the web (which might be why Microsoft is so focused on .NET - to play catch up with Java and the 4GL tools and frameworks that are out there).

      Using agile development methods I can kick out a quick and workable python/Zope application over the web in no time. Depending on the scalability requirements and the size of the user community, that might be enough for production, as well. If not, then it can be easily ported to Jython with a storage array strapped on the side.

      You windows-centric developers are living in the dark ages. It is the 21st century for crying out loud. Of course, if the vast majority of you don't change, then I can continue to get all the juicy contracts building the enterprise backbone, while you compete for the few 'desktop application' jobs out there with the other 100,000 Microserfs.

      Continue doing what you are doing - I was wrong...

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    7. Re:Joel is off base. by Lodragandraoidh · · Score: 1

      This is a moral consideration, as I'm sure other people will point out. - lostguy

      What you are saying is tautological. Yes, my statement dealt with a moral consideration; that is the point. Microsoft is not interested in doing the right thing - they are more interested in the almighty dollar. You can not discount ethical considerations when approaching technology. In the case of some technology, such as the A-Bomb project, especially so.

      For example, the current companies that benefit from the Chinese government contracts to provide network firewall and filtering are morally reprehensible. Would I buy a product from them, even though it may be 'best in class'? No, because I believe we have a responsibility to do the right thing in all cases - particularly where our actions can effect thousands of people, and even if it does not benefit our stockholders (if I were to own a company and make such decisions); we have a responsibility to be good stewards when we wield grave power. We should also not support those who show poor stewardship in such situations.

      You can not divorce yourself from the ethics of a situation simply because you are discussing a technical subject. This seems to be a key difference between those who espouse the Microsoft way, and those who tread the *nix path - a recurring theme that goes through the discourse in this forum.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    8. Re:Joel is off base. by lostguy · · Score: 1

      I think you misunderstood my statement. I worried about that when writing the original reply, but I didn't want to be preachy, and I definitely didn't want to sound like an Ayn Rand fanboy.

      It is a moral consideration to value the ability to produce monetary value. On a simplistic level, if you spend your life producing something that other people want enough to trade the produce of their lives, then you are enriching the lives of other people. Especially in much of the free world, we equate the ability to generate wealth with a type of moral goodness. Rich people are listened to more than poor people. We may not like this, but this is a moral of our culture.

      Life and business are all about choices and consequences. Sometimes, the choice to increase monetary value has the negative consequence of destroying the environment, or what-have-you.

      However, to discard things we don't like as "immoral" or "amoral" is sophistry.

    9. Re:Joel is off base. by Lodragandraoidh · · Score: 1

      The issue is you are misrepresenting that people 'want' something of their own free will, when, in fact, many of the decisions to use a particular product come about due to coersion. Coersion as a result of dirty business deals and coersion as a result of monopolistic 'standards' manipulation.

      Generating wealth as the result of manipulating a marketplace to corner the market does not enrich people's lives - and is not "moral goodness", no matter how you try to spin it. Even if the majority of people "equate the ability to generate wealth with a type of moral goodness" - that would not make unethical behavior any less wrong for its being accepted by the majority. To fight against something wrong by boycotting it is not 'sophistry', as you imply.

      If you can't see that, you are either lying to yourself, or ignorant of the ethical concepts of responsibility, honor and common decency.

      The easy way you brush ethical considerations under the rug is disgusting. I can not fathom how anyone can think or act like this, and look themselves in the eye in the mirror each morning. I can only surmise you are an Enron executive.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
  63. I hope you're kidding by webwench_72 · · Score: 1

    Most email programs by default put a copy of the sent email in the Sent folder only after it has been sent. Not all 'notification' has to be in the form of a big fat alert box with an OK button.

    --

  64. prior art? by what+the+dumple+is · · Score: 1

    Wow, did CmdrTaco do a search for any prior art before posting this? Maybe he should get a job down at the USPTO.

    "Wow! Doesn't look like anybody has ever implemented this article before. Approved."

    Or maybe he's just trying to set a new record.

  65. There are reasons for service packs by webwench_72 · · Score: 1

    One, you might notice that a lot of these patches address security issues. Two, it can be difficult to get vendor support for applications when your OS isn't up to patch.

    --

  66. Nobody on here Karma Whores?!? by Anonymous Coward · · Score: 0, Insightful

    Nigger, please. Take a look at this thread, for example. Take a look at the sheer number of idiotic posts that have been modded +3 Insightful. You mother fuckers do nothing BUT karma whore on /.

  67. Heh, I was under the impression by webwench_72 · · Score: 1

    that story repetition is somewhat normal at slashdot. I for onw welcome our duplicate-posting overlords!

    --

    1. Re:Heh, I was under the impression by leviramsey · · Score: 1

      Nice to see that you're still around at one of the sites I frequent... ;o)

  68. Whoah! by webwench_72 · · Score: 1
    Did you search for any prior art before posting this comment?

    Here comes the new comment, same as the old 60 comments...

    --

    1. Re:Whoah! by what+the+dumple+is · · Score: 1

      Of course not! I didn't even RTFA! Besides, as a bone-uh-fide-e member of /. I am a big fan of the dupes.

      Besides, as a bone-uh-fide-e member of /. I am a big fan of the dupes.

  69. It *HAD* to be 42 by mangu · · Score: 1

    If they didn't wait (Mother Of All Answers) minutes it wouldn't be the Mother Of All Dupes, would it?

  70. But then it would provide no feedback! by webwench_72 · · Score: 1

    What would we do with no alert boxes or status bar messages or progress bars?

    --

  71. Re:Windows programmers are smarter, and here is wh by Anonymous Coward · · Score: 0

    WTF are you talking about? Ever heard of wizards?

    The MFC course instructor showed us the MFC wizard and said: "Get used to it. This is where you will be spending all of your time".

    And he was right.

  72. Try this... by johannesg · · Score: 5, Insightful
    Sometimes you need to do something once every three months. Clicking in a gui would get the job done in maybe half a minute, while reading up on the required command line actions would take half an hour. So in this case you need a gui.

    At other times you need to do the same repetitive task thousands of times, over dozens of machines, every single day. You'd better be able to automate that, so you need a command line option here.

    So, here is my rather remarkable suggestion: programs should, as a rule, cater to BOTH. Have both the gui and the commandline option available at all times. When you need it, use whatever is best for you, mixing options any way you like. Because gui and commandline are not at all mutually exclusive, no matter what many uninformed people will tell you.

  73. Dupe messup by Nemith · · Score: 4, Insightful

    Note to self, never post before coffee. Yes, its a dupe. get over it.

    Ya tell that to the Slashdot Subscribers, they pay for this shit. You want to run a business, do it professionaly.

    1. Re:Dupe messup by Anonymous Coward · · Score: 0

      Wish more people would mod this parent up

    2. Re:Dupe messup by sdelement-x · · Score: 1

      Sounds like what happened with a truck I just recently started financing... The thing had some paint imperfections, so under warranty, I wanted either A) a new truck, or B) the repairs to be done professionally. I didn't get either, and the worst of it all is I was essentially told to "deal with it". I guess it's time to go knock some heads around.

  74. Re:This post is redundant by Anonymous Coward · · Score: 0

    hmm... 2 points of overrated within 10 seconds of each other. Editor mod?

  75. GUI vs command line + dupe post solution by master_p · · Score: 1

    The "article" is nothing more about GUI vs command line. Unfortunately, the Unix philosophy lost the desktop market, and now it is trying to catch up through Linux.

    About duplicate posts, I suggest Slashdot puts a script that examines the previous posts for similarities. If the similarities are high enough, then the slashdot reviewers will be notified.

  76. Amen! by BiOFH · · Score: 2

    I bet if ABC had run the same episode of 'Doogie Howser, M.D.' two or three times thereby causing Taco's Tivo to pick up two or three dupes HE wouldn't just "get over it".

    Seriously, you guys, no matter how much you want to pretend it is, for whatever reason, this _isn't_ still your little hobby site any more.

    --
    - I am made of meat.
    1. Re:Amen! by Anonymous Coward · · Score: 0

      Ah, but isn't this sloppiness charming?

  77. That takes skill... by Anonymous Coward · · Score: 0
    Dupe immediately following the original! That's gotta be a record ;)

    ...even for Taco.

  78. "its a dupe. get over it" by HalliS · · Score: 1

    I was going to post a very insightful and witty comment, but as it turn out, IT HAD ALREADY BEEN POSTED.

    Gotta love them editors ... ^_^

    --


    My other UID is 1337
    1. Re:"its a dupe. get over it" by Anonymous Coward · · Score: 0

      Gotta love them editors

      Yeah, after all you gotta respect anyone who doesn't do their job and still gets paid. What this whole subscriber "comment before the story's due" thing for again?

  79. I'm calling BS by subtillus · · Score: 1

    And once you learn the language it is far more "user friendly" than any amount of icons for those tasks it's good at.

    That's like saying, flying a jet is easier than buying a plane ticket once you go through flight school. Duh, of course it is.

    On the other hand I agree with you about MacOSX and would like to add that's it's an excellent way for weaning me and aunt madge onto unix. It just works and you can screw around with unix in manageable doses.

    1. Re:I'm calling BS by Rex+Code · · Score: 1

      > And once you learn the language it is far more "user friendly" than any amount of icons for those tasks it's good at.

      That's like saying, flying a jet is easier than buying a plane ticket once you go through flight school. Duh, of course it is.


      And arguing that everything must be "user-friendly" is like saying that since not everyone can handle flight school, no one should be allowed to go. Well, count me as not in favor of dumbing everything down to the least common denominator.

      There's a definate place for expert oriented operating systems. Just because grandma can't use it doesn't mean it's poorly designed. There's nothing easier than a command-line once you learn to use it. That's the key.

  80. So this is your new blog? by Anonymous Coward · · Score: 0

    I'm only kidding. I found your new one weeks ago.

    1. Re:So this is your new blog? by webwench_72 · · Score: 1

      Suuuuure you did. Hint: it's not LiveJournal.

      --

  81. A dupe!? Good god no! *peeing pants* by Anonymous Coward · · Score: 0

    Amazing how people act like they've been personally insulted if they see a duplicate article. Seems that a lot of Slashdot readers lack bladder control.

  82. Re:"overrated" by airdrummer · · Score: 0

    Spolsky seems 2 b a dyed-i-t-w microserf, too...

  83. Oops, correction by EvilLile · · Score: 1

    Oops. It's too early. I meant member vs. local.

  84. a dup right after the original? by deviator · · Score: 1

    don't you guys have a "delete" button?
    how hard is that?

  85. Religious battles. by tlim · · Score: 1

    That's all it seems to turn out to be. In my experience programming in both the Windows world, and the UNIX world, I've come to a number of conclusion. 1: UNIX programmers generally just say, "It's a Windows machine. It sucks." Few and far between are there are UNIX gurus who will give kudos to anything Windows has done. 2: Although UNIX programmers say that documentation is poor, and Windows doesn't do layering well at all, the documentation for developers in Windows is by far superior to that of UNIX. There are paid tech writers who comb through the documentation, and update them on a continual basis. Outdated documentation is not as prevelent as others. 3: UNIX has some great things, but each flavor of UNIX has their weakness. 4: Windows has big security issues that would take forever to solve. If you need a server, write it in Java, and you could still run the thing on Windows. Just make sure you don't have any other ports open for anything else. 5: Windows development tools are by far easier, and better to use. It's much more integrated, and the feature sets are amazing. (MSVC and its ilk.) 6: Some people freak about Hungarian notation, but it's just a damn notation. There are other notations that people use. Example: The letter 'f' for "field" in classes. Pick your damn naming convention, because it's just a damn naming convention so that at least the code is slightly more standardized across engineers. 7: The better engineers flat out just look for what is more cost effective, and extensible in the future. Realistically, there are things that Windows does better, and there are things that UNIX does better. The software running on each OS have their own qualities. Anyway, I'm of the view that Windows has amazing software for small business solutions that can come up very quickly. UNIX is great for getting vendor independence, and hedging your bets so you don't get screwed on royalty costs.

  86. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  87. I'm calling strawman. by argent · · Score: 1

    No, it's not like saying "flying a jet is easier than buying a plane ticket". Not hardly. Bad analogy from both sides.

    First, buying a plane ticket is far easier than maintaining your pilot's license and filing a flight plan, even with post-911 security.

    Second, learning the language is a hell of a lot easier than going to flight school. It's easier than driving a car. It's easier than learning to swim, and possibly easier than riding a bike. But it's far easier than driving.

    A cheat-sheet on the UNIX shell is a tenth the side of the booklet I got with my licence listing the traffic laws, and if you miss a semicolon you don't get 6 hours of defensive driving class.

    Hell, you have to memorise more stuff to play Mortal Kombat. Left, right, up, square, x, right, ...

  88. HOW ABOUT SQA? by Anonymous Coward · · Score: 0

    That's bs, dude; while in the open source world you're coding for fame or something else non-monetary, in closed source you're coding for profit. That means there's a standard for code quality, and while your open source buddies won't be looking at your code, software quality assurance (SQA) will.

  89. Wow...can I have a job there? by Anonymous Coward · · Score: 0
    Yes, its a dupe. get over it

    "Yeah, boss, I didn't do that report you need for your meeting with the VP of Finance that starts in five miuntes. Get over it!"

    Let me get this straight, Taco....you do get paid for your work, don't you? Try exhibiting the slightest bit of professionalism occasionally.

  90. No F*ing way by subtillus · · Score: 1

    Strawman? probably. but I'm sticking with what I said.

    The analogies we're using all suck, but, unix isn't intuitive and it is hard to learn. That's my point and I'm sticking to it.

    If it wasn't (difficult to learn), then I would get it, and I've tried.

    I'm a science student at the 2nd best school (yeah right) in canada who's about to graduate. I'm no super genius, not even close, I'm just not as retarded as any linux user will be quick to tell me. So, I think it's safe to say I'm a little brighter than the article's clueless aunt madge. Yet, I find the unix environment difficult to understand and difficult to learn how to use.

    If your argument held any water, aunt madge, who can drive, who can ride a bike and who 0wnz at mortal kombat should be able to learn unixy stuff.

    So, why can't she?

    Because it's not THAT easy. "Just learn the language" and then it's easy is still BS. Because "Just" learning the language isn't easy, not for me and aunt madge anyways.

    If you'll excuse us, we have an MK tourney to attend to.

    1. Re:No F*ing way by argent · · Score: 3, Interesting

      "unix isn't intuitive and it is hard to learn"

      Compared to what else was available when it came out? Have you used Exec/1100? OS/360? RSX-11? Not if you're just graduating, you have no idea what the "languages" I'm comparing it to were like, what we had to put up with before UNIX.

      And what are you referring to as UNIX? Gnome? KDE? CDE? Motif? X-Windows? None of that is UNIX. X is a platform-independent window system, the first X workstations I used weren't even running UNIX, they ran VMS! The first UNIX "desktop" environments were built on Motif, which was based on the OS/2 window model!

      You can learn *unix*. Your aunt madge can learn *unix*. The piles of Windows-style GUI stuff layered on top of it? Get a Mac and you'll get an API and GUI designed for Unix back when Steve Jobs was at NeXT. But the shell? Sheesh, if our middle-aged secretaries can handle it, you can.

      Here's a quick rundown: the UNIX shell is basically a simplified and regularized English. Programs are verbs. Nouns are files. flags are adverbs and adjectives. There's basically three conjunctions you need to know: the semicolon which serves the role of "then", the pipe which serves the role of "and", and the ampersand which you can think of as "meanwhile"... it lets you do flashbacks in your story.

      That's pretty much it. There's a lot of flowery stuff around it but you don't have to deal with it at the command line unless you really want to.

      So, here's a command:

      sort addresses.txt | grep gullible | mailmerge spam.txt

      What's that do?

      "sort addresses.txt, and find the gullible addresses, and send them the spam in spam.txt".

      As you learn more words, you'll be able to do more things, but that's true of every language. I've been speaking English for fortysomething years, I've been a nasty scrabble player for almost thirty, and I'm still learning new words and new ways of expressing myself. That's not a problem, that's an advantage.

    2. Re:No F*ing way by subtillus · · Score: 1

      my aunt madge is a reference to the article, so rtfa, your middle aged secretaries probably had a good teacher.

      Otherwise, I'll point out that I think you're right.

      however, the original article and the original post refer to using unix being easy once you've learned how to use it. my quibble is that the once you've got it step isn't as easy as it's being made out to be.

      You're comparison to english makes it sound much easier to figure out than the man pages/online documentation do. I'm sure you'd be a good teacher to have for exactly that reason. But for the average person, like me, it's incomprehensible until someone points all of these things out.

      There's no way to just fiddle around and type random things until you achieve desired response because most of the time, when things go right you see nothing happen.

      I have learned some words, but I can do things NOW with my mac using the GUI, wheras learning and gathering experience takes time. So, it's a healthy compromise to own a mac and get weaned into unix.

    3. Re:No F*ing way by joggle · · Score: 1
      You might be surprised. I can recall being an assistant at a teaching seminar back in junior high school teaching the teachers (ironic, no?) how to use the Macs that we had (this was back around '93). Even the simplest tasks needed explanations.

      The only reason that Macs seem to be so intuitive is because you are already familiar with the general GUI paradigm. Once you know the basics (what an application is, what files are, how to find files/directories, etc.), you can pick up things very quickly. On Unix, once you are familiar with the basic command line syntax, several programs (such as grep, ls, man, etc.) you can make quick progress.

      I agree with you that getting going on a Mac is certainly more straight-forward, but it is not an instantaneous process if you are starting from a clean slate.

    4. Re:No F*ing way by argent · · Score: 1

      I RTFA before I ever saw a reference to it on /., TYVM.

      "my quibble is that the once you've got it step isn't as easy as it's being made out to be"

      The thing is, it *is* that easy, if you are just doing the same kinds of things you do on Windows every day. Your Aunt Madge doesn't compile programs, install hard disks, configure beta audio drivers, partition disks, configure X11. She probably doesn't even install and configure Windows: I've picked up pocket money here and there from people who couldn't install Windows, or Mac OS. And I've had to sit down and explain to people "just fiddling around" on Macs and Windows boxes that:

      You don't double-click on menus or buttons, just icons.

      You eject a floppy by dragging it into the trash. Yes, really! I had one guy refuse to use a floppy until I came over and showed him.

      When the "J" drive isn't there when you log in, that doesn't mean your computer has lost a hard disk, that's a network drive.

      And contrariwise...

      If "Your Aunt Madge" gets a UNIX box, there is no more reason for her to see a command line than there is for her to know the difference between NTKERNEL.SYS and MSVCRT4.DLL.

      If "Your Aunt Madge" is interested in exploring the innards of what she sees in Terminal.App or COMMAND.EXE or /usr/bin/xterm, she's going to end up having to learn a LOT more before she can do anything useful in COMMAND.EXE than either of the others. You can't do anything with any command line until you learn the words, but at least in the UNIX shell almost all the words work the same way. Some don't, but most do.

      Twenty years ago, when they were all command lines, well, look at this:

      ls
      DIR
      PIP/LI
      @CAT,P
      CATALOG
      LOAD "$",8:LIST

      Which of the above commands listed the current directory on a popular home computer? On a popular small business computer? On a mini? On a mainframe?

    5. Re:No F*ing way by Anonymous Coward · · Score: 0

      OHOHOH mio bel Marcantonio tu sei un vero hacker! Mio bel puledronio!! hmmmmmmm?

  91. Interesting! by MagicBox · · Score: 3, Insightful

    There are many details and subtleties, but for the most part it comes down to one thing: Unix culture values code which is useful to other programmers, while Windows culture values code which is useful to non-programmers."
    Well, I think this is more of a lame attempt to *divide* the programming community rather than an *informative, educated* observation. Especially the *....Unix culture values code which is useful to other programmers, while Windows culture values code which is useful to non-programmers...* piece. There are obvious differences, differences that are tied to the platform you are programming in, but I strongly disagree with different *cultures*. Programmers care about a lot of things, and code is only one of them. Most programmers I know (including myself) want to write clean, fast code, and we all hate commenting it. In fact styles of code writing are quite fragmented to personal styles. I have often been able to tell that two different people wrote two different simple functions, using the same language for the same program. There is of course a *better* conformity when the projects involve managers, teams etc etc. Ultimately, I think this: As a programmer, there's a personal achievement and satisfaction when I write code and accomplish something with it, or someone else accomplishes something with the code I write. What identifies programmers with one another is not the platform or style or culture of writing code, is the love for what we do

    --

    The phaomnneil pweor of the hmuan mnid. Fcuknig amzanig eh!
  92. Folgers by zCyl · · Score: 1

    The fresh start of waking up,
    it's cloning in your cup!

  93. Jumping to conclusions? by argent · · Score: 3, Interesting

    Sheldon, old bean, I've been doing Windows support and development for about ten years now, and I was the guy responsible for bringing NT into the division I was working at in the first place.

    Windows programmers may want programs that work well together, but they don't seem to know or care what "working well together" can mean. To the user, there's a very small set of operations they can perform on most programs, and a slightly larger set they can perform on a small set of programs, but there's no general user-visible glue that will let them do things like ``tell application "iTunes"; play "track 01" from "Goldberg variations"; end tell'' or ``sort +1 addresses.txt | grep "gullible" | mailmerge letter.txt''.

    And, unfortunately, what I say "they" I mean "we".

    "Hi! My name is Peter da Silva, and I'm a Windows user."

    (chorus) "Hi Peter!"

    1. Re:Jumping to conclusions? by Anonymous Coward · · Score: 0

      Oh, OK. So you do know something about windows but you prefer intellectual dishonesty and deliberate obtuseness. Your propensity for flamage over the years (oh how google haunts us) should alert anyone to the fact that nothing you say should be taken seriously - just another troll, only this one has a low uid.

    2. Re:Jumping to conclusions? by MochaMan · · Score: 1

      ``tell application "iTunes"; play "track 01" from "Goldberg variations"; end tell''

      To be fair, you can do this... well, at least on MacOS X using AppleScript. Not sure about iTunes for Windows. I suspect that the same is available through VBScript/JScript using Windows Scripting Host. Many applications (eg. Word, Excel) expose functionality like this through COM. Unfortunately Windows Scripting Host is a totally open environment, without much (any) consideration for security issues, hence all the Outlook viruses that exploit these features.

      I agree, however, that most applications do very little to support this functionality, and those that do usually do a poor (or insecure) job of it. I also tend to prefer writing code for UNIX based systems, or cross-platform code.

      Here's a reference for iTunes scripting:
      http://www.malcolmadams.com/itunes/

    3. Re:Jumping to conclusions? by argent · · Score: 1

      "To be fair, you can do this... well, at least on MacOS X using AppleScript."

      Have a lollipop. That's what I'm talking about, it's one place where UNIX and Mac come together... the ability to interact both linguistically as well as gesturally with programs.

    4. Re:Jumping to conclusions? by sheldon · · Score: 1

      To the user, there's a very small set of operations they can perform on most programs, and a slightly larger set they can perform on a small set of programs, but there's no general user-visible glue that will let them do things like ``tell application "iTunes"; play "track 01" from "Goldberg variations"; end tell'' or ``sort +1 addresses.txt | grep "gullible" | mailmerge letter.txt''.

      Is there a user visible way of doing this in Unix? No, it requires going out and buying a book on shell programming and learning how to do it.

      The same is true with Windows.
      http://msdn.microsoft.com/scripting

      I don't know about Media player.

      As far as the other thing. I can load the address out of Access, and mailmerge in Word... completely automated, no user interaction involved at all.

      It's called Windows Scripting Host. It's very similar to the ARexx we used to use on the Amiga, Peter. And if you don't like WSH... NT supports pipes, and you can do similar command line things like you give in your examples.

    5. Re:Jumping to conclusions? by sheldon · · Score: 1

      If you have specific points you want to address, feel free to mention them.

      Otherwise, I find this ad hominem attack to be baseless.

    6. Re:Jumping to conclusions? by argent · · Score: 1

      WSH is something that I have mostly encountered as one of the ways malware such as worms and viruses bootstrap from MSHTML-based applications like IE and Outlook to trusted environments.

      That aside...

      The problem with WSH is that it's only one of several pieces of such glue, different applications use different kinds of glue, and there's no architectural underpinnings to bring them all together.

      Similarly with the pipes on Windows, you *can* use them in Windows, but not on most applications because there are few programs set up to take advantage of them.

      "Is there a user visible way of doing [my pipeline example] in Unix?"

      Absolutely. You can just open a terminal window and start typing commands and scripts immediately and interactively... which is the best way to learn a language, whether it's a human language or a command language. The edit/compile/execute cycle (or even the edit/execute cycle you can get from scripting) is like learning French by post rather than by going to France.

  94. OSX, Bridging the gap by webster · · Score: 1

    Having used KDE, Gnome, CDE, and other Unix GUIs, way back to the early pre-X11 Sun days - I forget what the Sun Marketeers called their windows system - and then using OSX, I think I have to agree with Joel that it took people who came from a culture that emphasized ease of user experience to make a great GUI for Unix.

    In the early days of the Mac, Steve Jobs was very vocal about the need for programmers to work extra hard to make the experience pleasant for the end user. Sacrificing programmer pleasure for the sake of the user was a very conscious choice. When Steve moved on to Next, he started to work on making the programmer experience a lot better without losing any of the focus on the end user. With OSX, the successor to Next, he's managed to optimize both values.

    When using any Unix GUI other than OSX the very first thing I always do is open an xterm window, and use the GUI only for things that are easier with a GUI. With OSX, I do most things with the GUI and only open a terminal window when I have something to do that's easier to do on a command line. I suspect I'm not alone in these practices, but there are many OSX users who don't even know there's a terminal application, and wouldn't know what to do with it if they ever opened it by mistake.

    It's that absolute dedication to being able to do everything from the GUI that sets OSX's GUI apart from all the other Unix GUIs that I have used. Until and unless the other GUI developers embrace that philosophy, their efforts will remain attractive only to those who are comfortable with the command line.

    --

    Information is not Knowledge
  95. For once, I think Joel got it right by Anonymous Coward · · Score: 2, Insightful

    Every programmer should do a serious stint in both worlds. I think starting from UNIX and then doing Windows is likely the better option, but people owe it to themselves to broaden their knowledge.

    This is clearly not the right forum for positing the benefit of the Windows culture, but there are important things to be learned. Market-driven features, profit margins, target audiences, usability, managing customer expectations. . . These quite aside from the actual coding differences (which, as I get older, seem less and less important).

    A firm I work with is porting a lot of their servers from Windows to Linux. They aren't, however, doing it because Linux is cool, or better, or any of the reasons people like to play with it. It's because it's cheaper and finally, with 2.6, mature enough to be a serious option. I lobbied for Solaris/Intel, but unfortunately that beast seems destined for failure.

    The more developers get a feel for the real market pressures that influence their lives directly and indirectly, the better a position they'll be in to comment intelligently to their superiors and take greater command of their destinies. Coders who plead to use Linux because it's 'cooler' can be smelled a mile away. Rational, business-oriented arguments, however, will not go unheard by forward-looking firms.

    -ac

    1. Re:For once, I think Joel got it right by argent · · Score: 3, Insightful

      You're thinking too small.

      Every programmer should have as wide a variety of experience as possible. UNIX, Windows, MacOS, AmigaOS, CP/M, VMS, BeOS, OS/360, NeXTstep, Mach, Amoeba, Smalltalk and Interlisp-D, Plan 9, Inferno, Polyforth, OS/9, ...

      If you only know UNIX or UNIX and Windows you're like a chef who only knows vanilla or vanilla and chocolate.

  96. It's solving the wrong problem. by argent · · Score: 1

    If you're using an object-oriented programming language you shouldn't need to know the type of a variable, you just need to know the methods that operate on it. You avoid scope problems by declaring or initialising (depending on whether you're taking a declarative or functional approach) variables near where they're used.

    The real problem isn't Hungarian notation, it's C++.

    C is a poor design for an object oriented language because it's so syntax-heavy, but even in C-derived and inspired OO languages I can't think of one I wouldn't rather use than C++... Objective-C, C-OO, Javascript, even Java for all it shares many of C++' design flaws.

    1. Re:It's solving the wrong problem. by 3rdParty · · Score: 1

      You are still not understanding. Hungarian notation is for the programmer. It simply helps the programmer know what kind of data is in the variable. It is solving the problem of trying to remember what kind of variable this is, so you can remember what methods act upon it and what methods are available, as well as its scope. You can't eliminate scope issues by declaring or initializing variables near where they are used in every case, nor is that necessarily desirable. Consider a variable that stores a user's window background color preference. Since the data the variable stores is relatively static, there is no need to initialize the variable by querying the user or reading a config file each time it is used. Simply access methods that return its value, as needed. When modifying the accessor methods, the scope is denoted in the variable name, so remembering the name is easier, as is identifying the scope of the variable if, God forbid, you are working on someone else's code, or code you haven't worked on in a while. C++ programmers commonly use object-oriented techniques, but most C++ programmers use pointers to objects, which is not an OOP concept or technique, as far as I understand it. Certainly C++ was not solely designed for 100% adherence to OOP principles. It merely incorporates OOP principles and techniques into a known language. If your goal is to code entirely in OOP, you SHOULD use a language with this as a basis, not C++. Not everyone sees usefulness in restricting themselves to OOP-only coding. Hungarian notation isn't used only with C++. It applies to any language that has variables. Don't use it, no-one cares. But once you start using it, you see the value, IMHO.

    2. Re:It's solving the wrong problem. by argent · · Score: 1

      "It simply helps the programmer know what kind of data is in the variable."

      In an object oriented language there is no data in the variable. There is an object that responds to certain methods. The "type" of the object can be changed *completely* and the code shouldn't change at all.

      Consider a variable that stores a user's background color preference. You call it "strColor". I call it "color". Its value may be a character string ("white"), an RGB triplet (240,240,240), an index into a CLUT (RGB:47), or a calculated value (if it's night it's "black", otherwise it's calculated based on how close you are to noon).

      Information hiding. You only expose the factors of an object that are relevant. And this is still true for non-object-oriented languages, because you can write OO code in any language.

  97. The Two Kernels by argent · · Score: 1

    Epic fantasy is overrated.

  98. Oh, I'm always around by webwench_72 · · Score: 0, Offtopic

    Oh, I'm always around in one form or another ;)

    --

  99. Joel Spolsky is a bigoted windbag by Alex+Belits · · Score: 0, Troll

    And his existence demonstrates that Unix programmers don't have a monopoly on ego and assholeness. Even though ESR is well known for preaching and bringing irrelevant issues into discussions, he at least usually has more or less good idea about what he is talking about. Joel, on the other hand, is a true believer into whatever he "learned" from Microsoft, and produces little more than repetitive propaganda of it, plus his, usually wrong and immature, claims about things that he has absolutely no idea about.

    Why anyone is listening to him, leave alone, publishes him, I have no idea.

    --
    Contrary to the popular belief, there indeed is no God.
  100. Re:"overrated" by Anonymous Coward · · Score: 0

    Spolsky's an ex-Microsoft employee (oops, there goes my slashdot cred, forgot to spell it with a $) who now runs his own business in NYC. Apparently a successful one - he's one of those evil, evil people who believes programmers and their families should eat now and then, so he charges for code. A quick look at his web site (the one containing this story's linked article) would have told you that but it's always so much easier to criticise from a position of ignorance, isn't it!

  101. Re:Eric "not overrated" Raymond by Anonymous Coward · · Score: 0

    It's hard to overrate such a massive idiot. He is the king of drunken, self-serving blather.

    Just ask Eric if he's overrated, and he'll quickly tell you who is. He's been maintaining the Overrated-People-HOWTO for years, and is not one of the people listed. Case closed.

  102. oh piffle by iii_rjm · · Score: 1

    In our organization we do code reviews all the time on our windows code. It may be hidden from the masses but in the cube farm, where your peers are, everyone can see the code.

    1. Re:oh piffle by timjones · · Score: 1
      You didn't actually SAY that your code reviews actually result in higher quality code, but from the tone in which I'm reading your comment, you seem to be implying it. If so, then thank you for proving my point: that peer review does improve the output of most programmers.

      There is a much larger set of peers in the open source world than you'll ever get in just one company. That is when peer review really scales.

      One of the reasons Open Source never really took off on Windows is because there has NEVER been a free C/C++ compiler thrown in with every copy. (Cygwin's gcc really isn't a Windows C compiler: it lacks the Win32 headers, MFC, etc. It's more of a Win32 port of Unix tools). Traditionally, Unix ALWAYS came with a compiler (except for the late 80s when Sun/HP/SCO unbundled it, trying to get more $$). Most Linux and BSD distributions have ALWAYS had a C/C++ compiler.

      Code reviews may be a fact of life in your cube farm, but in mine (and anecdotally, in most places I've worked in), they are NOT. Believe me, if I had the authority in my company to mandate it, I would have done so long ago.

      In fact, in the primary project I've developed in my current job, I've been the SOLE developer from day one. I know no one has seen it, but I develop like it was going to be GPL'd.

  103. MS don't accept other ways of doing things by EmbeddedJanitor · · Score: 1
    For my sins I sometimes write drivers etc for WindowsCE boxes. Since WindowsCE isn't that robust I've often resorted to replacing sections with more robust code. When I've had to contact MS to get an explanation on how one of their closed functions work I typically first have a barrage of "but you should be using our one". THis invariably adds a few days to the support call.

    The tone of these concersations suggests that the MS folks seem upset that you're not using their offering. In the end this leads to vanilla software. eg. consider in Windows land you have two file systems: FAT and NTFS. Under Linux there are over 40 file systems available. I bet Hans Reisser (spelling) doesn't throw a fit every time someone chooses to use ext3.

    --
    Engineering is the art of compromise.
    1. Re:MS don't accept other ways of doing things by Anonymous Coward · · Score: 0

      > I bet Hans Reisser (spelling) doesn't throw a fit every time someone chooses to use ext3.

      Actually, Hans Reiser has thrown many a fit on public mailing lists. He believed there was some RedHat Axis conspiring against him.

      As for Windows, MS will happily send DDKs to everyone and their dog, but the FileSystem Kit cost big bucks and only goes to special people. The conclusion is that they don't want that many filesystems for whatever reason (probably support).

      And when you look at Linux, that's understandable -- 40 filesystems, but at any given time many of them may be broken in some way or another.

  104. Um... by autopr0n · · Score: 1

    What about programmers who make sure their code is cross platform? You know, the ones who arn't to retarded to code for more then one OS.

    --
    autopr0n is like, down and stuff.
  105. Yes and no by GCP · · Score: 2, Insightful

    I'll start with the no. No, it's not a CYA mentality. If you're creating an app for your end users, your end users will blame *you*, not MS, if your apps has bugs. You have not C'edYA by installing the service pack. What you've done is you've kept your machine standard, which is very important in the Windows and Mac worlds. Now your machine is more likely to resemble your customers' machines, or a form that you can easily get your customers' machines into (tech support will tell them to install the same service pack). So, if you can make things work on your machine, even if it requires bug workarounds, things should work just the same on your customers' machines.

    And now for the yes. "Blind obedience to the people who have the source" is putting a silly spin on it, but the fact is that both MS and Apple have roadmaps for evolving their entire platforms, and following their advice regarding how to do various things is the way to maximize the chances that your app will continue to work correctly as the platform underneath it evolves.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  106. in a world... by Hubert_Shrump · · Score: 2, Funny

    two men... one keyboard...

    this summer, USB stands for revenge - in the shape of a Model M...

    so buckle in...

    you've never felt coding...

    like this...

    --
    Keep your packets off my GNU/Girlfriend!
  107. Mass markets are king... by GCP · · Score: 1

    If I had to specify a single cultural difference, it would be the difference between mass markets and customization. In the Windows and Mac worlds, great effort is made to keep everyone's machines similar so they're easier to learn, use, maintain, write mass market software for, install software on, upgrade, etc.

    In the Unix world, the emphasis is on creating something that's maximally useful to an individual by allowing everything to be customized. This creates horrendous fragmentation, which can only be reasonably dealt with if each user is very computer-savvy and mostly takes care of his own problems.

    The latter appeals more to power users, because they are interested in putting the time in and getting extra power as a result.

    The former is more appropriate for most people who just want the easiest way to accomplish certain tasks and would rather spend their time and effort on things other than computers.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  108. Slashdot's Fastest Dupe Ever! by Anonymous Coward · · Score: 0

    Note to Taco: Never Post After Smoking Crack.

  109. Re:Slashdot Information Minister by Anonymous Coward · · Score: 0

    how is this offtopic? Apparently the mods didn't read the article.. allow me to quote "He's harsh on some points, but pretty on the money. Except about us. Nobody karma whores."

  110. How about TOPS-10? by Latent+Heat · · Score: 1
    UNIX is/was "user friendly" by a long shot compared to OS/360, and yes, I have OS/360 JCL experience. Essentially a card deck of JCL was like holy writ -- once you had a working JCL deck, the idea was to neither add nor subtract one jot nor tittle (i.e. diacritical marks in Aramaic script).

    As far as RSX-11 and UNIX, there may be a tie, but the grand daddy of user friendly had to be TOPS-10 (PDP-10 time-sharing OS).

    On the developer side, the would-have-been could-have-been that got pushed aside by UNIX would have to be some kind of Lisp or perhaps Smalltalk environment -- you know, a high-priced mega-pixel dedicated workstation running one of these deals where the language is the OS is the environment, where the debugger can trace into OS calls because the OS is the language is the environment, and where the system commands are Lisp expressions or Smalltalk commands -- Perl, Python, Matlab environments are perhaps the modern equivalent.

  111. my review by danny · · Score: 1
    Hey, my review of The Art of UNIX Programming might be more interesting than rereading this one :-).

    Danny.

    --
    I have written over 900 book reviews
  112. I do both by glenebob · · Score: 1

    I code for Windows and Linux, and I have to say, both cultures have stupidities. But usually the complaints that the Unix guys have about Windows are right, and the complaints the Windows guys have about Unix are very often inspired by lazy ignorance.

    Writing dirty, nasty, for-my-eyes-only code is dumb. I don't care how many people will or won't see it, write like the world is watching. Windows guys love to write shitty code and when I have to look at it, it can be nausiating. Unix guys do that less because they're expecting people to look at it and derive an opinion from what they see.

    Windows guys like to write code that they consider throw-away. It's similar to point one, but it has more to do with compatability and reusability. Unix guys automatically think about compatabilty and reuse.

    Something bad happens when Unix guys start writing GUI code though. For some reason, it seems impossible for a Unix guy to design a GUI to be consistant with other programs that are likely to appear on the same screen. Maybe that's where the what-is-an-end-user? mentality comes out.

    When it comes to GUI's, the Windows guys seem to have mostly the right idea. For everything else, the Unix guys have it spot on. What I don't understand is why it has to be like this. The seperation is obvious: when you write GUI stuff, it's for an end user, so write for the end user.

    1. Re:I do both by argent · · Score: 1

      "Something bad happens when Unix guys start writing GUI code though."

      Something bad happens when *any* programmer starts writing GUI code. Windows programmers have the advantage that they don't have to, they just pick one of the APIs that Microsoft has provided that look pretty much the same and writetheir application on top of that GUI. Then when Microsoft comes out with a new look and feel, they provide hooks in the existing APIs so programs can pick it up, and after a while programs all look the same again.

      Microsoft seems to approach this kind of strangely, though. It doesn't isolate the details of the look and feel from the API. They make it easier to follow the look and feel than to buck it, but you still seem to have to tweak all your programs to get things like scrollbars with scalable thumbs, or the XP look and feel, or whatever the newest feature is.

      And of course Apple is the winner here: if you write your code to their API it automatically picks up GUI changes as they are available, and if you pick a different theme you end up with all your applications using it.

      So, why doesn't someone come up with a standard look and feel for X-Windows? Well, lots of people have. There's the Athena Widgets (which are nice from this standpoint because if you replace Xaw with Xaw3d or Xaw95 or whatever, everything follows the new style), Motif, OpenLook, CDE, KDE, GnuStep, Gnome, ...

      So the reason UNIX programmers don't follow the same style is that different toolkits produce different styles of application. And they are *all* absolutely sure they're doing it for the good of the end-user.

      And of course on Windows there remain Windows programmers who insist on writing their own GUI or trying to force Windows to follow their ideas.

      So, basically, this isn't a culture difference. It's a system difference. Windows has a standard look and feel, and if it doesn't quite have a standard API it has a central organization that forces all their toolkits to follow the same look and feel. UNIX doesn't have that, and it doesn't have a standard GUI API either, except at the lowest level.

  113. DUPE by Anonymous Coward · · Score: 0

    It's a dupe!!

  114. Re:This fits with my experience. by HarryCallahan · · Score: 0

    I'm with you

  115. Big deal by farquharsoncraig · · Score: 1

    What does it really matter. A dozen or so stories, or rather the pointers thereof, queue through the front page daily. There is a high flux of info. People make mistakes. That CmdrTaco has acknowledged his mistake immediately unmittigated is at least professional and something much more valuable than apathetic news for money reporting.

  116. Even better by bartyboy · · Score: 1

    There should be a hack to merge all comments related to both stories (original and dupe) into a single page - with scoring and sorting options.

    That way you wouldn't have to check both stories to find the comments you prefer reading.

  117. Re:"overrated" by airdrummer · · Score: 0

    i based my comment on viewing his website, some time ago.

    and how did my comment in any way disparage getting paid for code? i get paid for coding...

  118. Re:This is an UBER-DUPE! by DeputySpade · · Score: 1

    WTF? This didn't get modded up "+5 Fucking hilarious?"

    What is this world coming to?

    --


    This space intentionally left blank
  119. Re:Whiner by packetgeek · · Score: 1

    2 mod points were actually wasted on my comment... I'm not sure what to say.

    Wait, I know... care to try again? ;-)

    --

    Please be patient, I'm a work in progress! --Alan Jackson
  120. Joel has an inglorious record by Anonymous Coward · · Score: 0

    Kick the dirt over his site and you'll find that Joel is more often wrong than right. While he's probably right about this one, he's was wrong about Mozilla rising from the ashes. That browser is still a turd.

  121. Shut up sometimes by Anonymous Coward · · Score: 0

    Geezes guys can you just shut up some times. What is the point of talking about "cultures." Programming a machine isn't a cultural issue, it's a technical issue.

    I code for UNIX. I code for windows. I code for MAC. I code for embdedded controllers. I code for whatever the fuck I'm paid to code for. I'm an engineer. I have to work with everything. Wading through the Win32 API isn't any any harder or different than wading through the X11 API. I use cygwin, gcc, and gvim under Windows XP. I use COM under Linux.

    What the hell are you all talking about?

  122. MOD PARENT UP by name773 · · Score: 0

    MOD PARENT UP that comment was freaking amazing

  123. Dear Taco by Rogerborg · · Score: 1

    You're a lazy, incompetent assrag. Get over it.

    --
    If you were blocking sigs, you wouldn't have to read this.
  124. What Joel Meant When He Mentioned /. by Merusdraconis · · Score: 1

    "slashdot-karma-whoring", in the article, seemed to be referencing that curious practise of bashing Windows whenever possible (see the other /. posting on this article, about 2 comments down) and having everyone else laugh. Of course this only applies:

    1) When Microsoft is nowhere near the conversation (and thus someone actually thinks the conversation would benefit from some Microsoft bashing

    2) When the article in question is in fact pointing out that Unix != Windows and stop judging it on your standards, dumbass (like this article, or the other one)

    I guess what I'm trying to say is, your mom.

    1. Re:What Joel Meant When He Mentioned /. by squaretorus · · Score: 1

      I guess what I'm trying to say is, your mom.


      Could you explain what I assume to be a colloquial phrase. I'm assuming its a misplaced insult - given that my comment wasn't about the article - but about the dupe!

      Merry Christmas!

    2. Re:What Joel Meant When He Mentioned /. by Merusdraconis · · Score: 1

      I think I got shafted by the threading here, as I wasn't really talking about the dupe.

      But I was being a bit tounge-in-cheek here in broadly classifying the entirety of /. as foaming-at-the-mouth Microsoft-hating Linux geeks.

      (And "your mom" is basically an insult - you can just leave it off there, instead of continuing in the vein of "your momma's so fat" etc.)