Slashdot Mirror


Explaining The Windows/UNIX Cultural Divide

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

673 comments

  1. Separation by Space+cowboy · · Score: 1, Insightful

    I reckon there might be a gunshot wedding again (with Billy G wielding the gun) if the separation of the parties results in longer delivery times, harder work for "interoperation" etc...

    Simon.

    --
    Physicists get Hadrons!
    1. Re:Separation by js7a · · Score: 4, Insightful
      harder work for "interoperation" etc...

      Interoperation is something Microsoft fundamentally doesn't get.

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

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

    2. Re:Separation by GlassUser · · Score: 2, Informative

      Instead of interoperating with published standards, they try to interoperate with Microsoft legacy methodologies (e.g., everything must bee visual basic scriptable.) This is a terrible source of security worm-holes. I wish they would reorganize their visual basic scripting fanatics to Antarctica.
      It's called automation. It's not visual basic, it's WSH (which encompasses vbscript, but not visual basic). You would do well to learn about something before you decide to hate it.

    3. Re:Separation by js7a · · Score: 4, Interesting
      It's called automation. It's not visual basic...

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

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

    4. Re:Separation by GlassUser · · Score: 0, Troll

      So you're basically saying that *ix is better because it does less. You're dumping your angst and blame on the wrong culprit.

    5. Re:Separation by Anonymous Coward · · Score: 0

      Lovely demonstration of Spolsky's point about Unix folk who are quick to criticize what they don't understand. Thanks.

    6. Re:Separation by Zeinfeld · · Score: 2, Insightful
      Why automation is considered more important than security is one thing, but why do people feel the need to defend that wierd choice of values?

      The problem has nothing to do with automation. The problem is that some idiot made a program that would execute an arbitrary script sent in email.

      This type of idiocy is not unique to windows. I have seen people do exactly the same thing in UNIX. They just did not make it to the UNIX core because that has barely changed in twenty years.

      So the argument that UNIX is good security wise starts to look remarkably like the argument that a stopped clock is right twice a day.

      UNIX has a set of security pathologies all of its own. The UNIX designers did not take security seriously, they were developing a single user computer with multi-tasking capabilities. The main features they left out from MULTICS were the security core. Heck, before Dennis Riche and C, buffer overrun bugs basically did not exist. There is no O/S before UNIX that was vulnerable to smashing the stack.

      Eric seems to understand that there is a culture gap between UNIX and Windows but he really does not understand the Windows side of it. The point of Windows is that it is deomocratizing computing, making it available to the masses. This is of course precisely the reason why so many die-hard UNIX priests hate windows.

      We got the same attitude with the Web. There were a lot of IETF people who really hated the idea of the Web because it was bringing AOL users and other worthless beings to the Internet.

      I have seen plenty of folk clinging to the most ludicrous O/S imaginable. There are few enviroments more pathetic than MVS, but you will find lots of aged COBOL types defending it.

      One of Freuds ideas was projection, highly ideological groups project their own internal failings onto the percieved enemy. The big problem with OSS is that it has spent the past ten years copying an O/S that was obsolete when they started so they attack Microsoft for their own sin - copying.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    7. Re:Separation by Anonymous Coward · · Score: 0

      security == simplicity
      complexity == insecurity

      Unix(originally) -> simple
      MULTICS -> complex
      VMS/wNT -> complex
      UNIX/Lunix[sic](today) -> complex

      Clear enough?

      As for copying, MULTICS had many ideas worth copying, and that is what Ken copied;
      windows on the other hand, has many mistakes "worth" repeating, and so GNOME
      and the lunix crowd repeat them...

      \\K

    8. Re:Separation by tntguy · · Score: 2, Funny

      Hey now, less works on Windows, too.

    9. Re:Separation by Anonymous Coward · · Score: 0

      So, you are saying that Unix scripts can't send e-mail? Goddamn are you a retard.

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

      A Universal Computing Machine is a white elephant.

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

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

      It doesn't have a web browser worth using.

      It has no RDBMS or a dedicated file browser.

      No icons. No buttons.

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

      But it suits my computing needs for doing work.

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

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

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

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

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

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

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

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    12. Re:Separation by Godstalk · · Score: 1

      So while I'm using my email client (whatever the hell it may be) to get work done, you are using it to waste time proselytizing, when the encoding method is detailed RIGHT IN THE EMAIL MESSAGE. The problem in this case isn't the sending client, it's the receiving client. Are you using an early version of pine or something?

    13. Re:Separation by EvilTwinSkippy · · Score: 4, Interesting
      This type of idiocy is not unique to windows. I have seen people do exactly the same thing in UNIX. They just did not make it to the UNIX core because that has barely changed in twenty years. So the argument that UNIX is good security wise starts to look remarkably like the argument that a stopped clock is right twice a day.

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

      All that comes free with Windows.

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

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

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

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    14. Re:Separation by IM6100 · · Score: 1

      I don't know that I would say that 'Unix is a very complex Operating System.' I would definitely say that the wild forking inherent in all the Unix-derived and Unix-like operating systems makes it a very complex sea to sail in.

      Unix itself isn't that complicated at all. If you choose to focus on using one particular variant (I have chosen NetBSD as my flavor-works on almost any hardware I try) you find it fairly simple to work with.

      --
      A Good Intro to NetBS
    15. Re:Separation by CondeZer0 · · Score: 3, Interesting

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

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

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

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

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

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

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

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

      Best wishes

      uriel

      --
      "When in doubt, use brute force." Ken Thompson
    16. Re:Separation by Afty0r · · Score: 2, Insightful
      Why automation is considered more important than security is one thing, but why do people feel the need to defend that wierd choice of values?


      It's pretty simple really, automation has a much higher value than security - people are willing to pay more.
      If we went back in time, and made all MS products ultra-secure, but removde the ability to automate anything, most businesses using MS software would not be as productive as they are... a (very) few might still be around because they didn't have to fold after a security incident, but almost every single one would be worse off, that makes the economy worse off, which makes you and me worse off in the long run.
    17. Re:Separation by js7a · · Score: 1
      f we went back in time, and made all MS products ultra-secure, but removde the ability to automate anything, most businesses using MS software would not be as productive as they are

      That can't be right, because most businesses don't use automation features. The only scripting I've seen in more than one company in my long consulting career is VBScript in Excel.

    18. Re:Separation by js7a · · Score: 1
      Are you using an early version of pine or something?

      I index my mail text so I can search it by full text going back many years at once.

      Why should I have to base64-decode text? I can do it, but why should I? Why is there ever any reason to base64-encode text/plain or text/html? (For that matter, why is there any reason to send text/html... but I digress.)

    19. Re:Separation by js7a · · Score: 1
      o you're basically saying that *ix is better because it does less.

      Exactly.

    20. Re:Separation by Anonymous Coward · · Score: 0

      Not in the least. The only difference is that the automation from Windows is designed to be accessable from scripting languages in an OOP manner while automation from Unix is designed to be accessable from scripting languages in a raw stream manner. The difference is the interface, not the security.

      And Windows does not have a giant world-writable configuration system. Every single key in the registry is governed by an ACL. By default users can read Local Machine and read/write Current User. Config and Classes are both limited to Administrators. Stop spouting shit you don't understand.

    21. Re:Separation by drsmithy · · Score: 3, Insightful
      Unix as a practice does not allow email apps to operate as root.

      "Unix" doesn't have a choice in the matter - it's purely an end user decision.

      While it is possible to create an environment where a script could enter a Linux box and infect the system, you would have to have the perfect storm of inept sysadmins running deliberately loose settings, exploiting a bug in the software.

      Or you need a typically inexperienced and ignorant end user running as root for convenience.

      Not every unix box is managed by a sysadmin (and the proportion that are is only going to get smaller).

      Added to that, with the typical scenario of a single-user desktop machine that spreads these "email viruses", it doesn't *have* to infect the entire machine to have a negative impact and propogate.

      The "well at least under a properly configured unix box a virus can only wipe out the user's files" argument is irresponsible and specious when applied to a typical PC configuration.

      NT and it's ilk are also POSIX complient, meaning they strive to be unix-like.

      No, they implement a POSIX layer for compatibility and to help software migration. If you think NT is striving to be "unix like" you're sadly mistaken.

      I should also add that Unix does not have a giant world writable configuration system. Regedit is all I need to access the security files, system configuration settings, even policies.

      The registry (in NT) is subject to ACLs. It isn't world writable by arbitrary users any more than /etc is.

      Show me a Windows setup that operates without the GUI, without Visual Basic, and without the registry. Then talk to me about security.

      But for some reason a unix box with X, perl (or sh) and /etc can be secure ?

    22. Re:Separation by xxcrazymikexx · · Score: 1

      We have to accept the fact that NOONE is right! NO operating system is perfect. You could go through your life wearing nothing but heavy pants, and be sweaty in the summer, or only shorts, and be cold all winter. We need a middle ground. Yes, Unix has much more secure file systems, but they're not perfect. Windows has a much better gui. They both get locked up by programs, so both kernels suck. You guys are arguing over apples and oranges. What we really need to do is be open minded and take the best from both of them, to improve the situation. Anyone who has a bad opinion of linux needs to go try suse. I started out on redhat, and yes, it does suck. Suse is much better. Anyone upset with windows needs to hop on server 2003. Keeping in mind that nothing is good out of the box, if you don't know how to set it up right is also key. If you took the time to learn the other operating system, you might appreciate it more. Unix will probably never be the best home user system, ever. Windows will always have security holes, it wouldn't run so smoothly and password free without them. Samba will unite us all! That's another thing, Linux works so hard to be compatible with windows, I think microsoft should really get thier act together and atleast try to work with these people. Make thier own distro or something. That's my thought. Microsoft gui on unix secure system? Who would have predicted that 15 years ago? These 2 giants really need to make love, not war. And all you nerds out there need to keep in mind that they both are crappy in thier own ways.

    23. Re:Separation by ChaosDiscord · · Score: 1
      Heck, before Dennis Riche and C, buffer overrun bugs basically did not exist. There is no O/S before UNIX that was vulnerable to smashing the stack.

      That's just wrong.

      One is perfectly able to create a buffer overrun bug in assembly (or machine code). C simply fails to protect against an already present potential problem. I'm certain that there where OSes that allowed stack smashing attacks; I'm sure every once in a while those early operating systems had software crash because of that bugs. However, we don't hear much about those attacks because those operating systems were long dead and buried because stack smashing became a common attack. Unix evolved, has been reborn a few times, and generally lived on, so we see its weaknesses today.

    24. Re:Separation by shaitand · · Score: 1

      If you took the most current and fully patched XP without a firewall and stood it up on the net it would be rooted in minutes as well.

      I fail to see what if any point you were making?

    25. Re:Separation by Anonymous Coward · · Score: 0

      well said, dammit!

      wish you wouldn't cough so much though. do you have a cold?

    26. Re:Separation by smootc-m · · Score: 1

      Some of your comments are right on target. The first time I saw Plan 9 (in the early 90s) I was very impressed. And I agree there is a lot in Unix which are hacks. But for the most part Unix has stood the test of time remarkably well and remains an elegant operating system.

      You are a bit unfair to the BSD crowd and the networking API. Go back and read "The Design and Implementation of the 4.3BSD Unix Operating System." You will see some very specific design goals for the socket based network interface API, one of which was portability. They were also influenced by a TCP/IP implementation from Bolt Beranek and Newman which ran on 4.1 BSD. So the interface was not necessarily Unix specific.

      I do agree that the streams based interface developed by AT&T is much more elegant and more in line with the Unix philosophy. But by the time streams was deployed, the BSD socket API dominated the field and became the standard API for TCP/IP networking.

      As for sendmail, it certainly could have been better, but at the time it was trying to solve interoperability between very disparate email systems. Today the email routing problem is a lot simpler than it was in the early 80s. Back then DNS was in a nascent stage and you had to deal with UUCP, BITNET, CSNET and other mail networks in a very heterogeneous way. At the time, sendmail was the only MTA which could effectively deal with all those email systems within a single system.

    27. Re:Separation by Merusdraconis · · Score: 1

      Hurrah! RTFA, dumbass.

      Cliff's Notes: Microsoft doesn't care about interoperability. That's a UNIX thing. Microsoft want people, regular people (you know, the ones with money?) to actually be able to use their product. Details confuse.

      What's important in Windows world is standards and end-users. What's important in Windows world is ease of programming and predictability.

      And then bucks says that even after this you still won't understand. That's in the article as well, BTW.

    28. Re:Separation by Godstalk · · Score: 1

      That wasn't my point. I didn't say you couldn't be annoyed by it. I was taking exception to you bouncing email because of how it's encoded. I was taking exception to you complaining about Microsoft not using published standards, when that encoding method (regardless of how inanely it is used) IS a published standard. You damage your own rant.

    29. Re:Separation by js7a · · Score: 1
      I was taking exception to you bouncing email because of how it's encoded.

      I will give your opinions about how I should respond to my own email all the consideration that they deserve.

      I was taking exception to you complaining about Microsoft not using published standards, when that encoding method (regardless of how inanely it is used) IS a published standard.

      On the contrary, RFC 1341 states:

      7.1.2 The Text/plain subtype

      The primary subtype of text is "plain". This indicates
      plain (unformatted) text. The default Content-Type for
      Internet mail, "text/plain; charset=us-ascii", describes
      existing Internet practice, that is, it is the type of body
      defined by RFC 822.

      RFC 822 in turn says:

      Messages consist of lines of text....
      The body is simply a sequence of lines containing ASCII charac-
      ters. It is separated from the headers by a null line (i.e., a
      line with nothing preceding the CRLF).

      Encoding text/plain in base64 is clearly against the spirit and the letter of the MIME standards. What could possibly be the point of it? Why do you defend such idiocy as if there might be some reason for it? Do you work for a storage manufacturer or bandwidth provider and want to keep getting rich off the 25% waste of space?

    30. Re:Separation by Godstalk · · Score: 1

      Granted on you giving my opinions what weight they deserve, it is, after all, your email. When you responded to me in the first place however, it had seemed that you ignored the content and intent of my response to you... namely that while I use email to get work done, you use it to proselytize, and at the same time call the user an idiot... regardless of the reason he or she may be using said mail client.

      As for your second point, I am NOT defending the "idiocy" of anything. I am attacking your method of pointing out problems as in itself causing an obfuscation. While Microsoft may be guilty of everything you want to throw the book at them for, if you are going to accuse them of something, at least provide examples that are meaningful and accurate.
      Base64 encoding IS a standard. It may be stupid to use it for email text content, but that doesn't change the fact that it is a standard. Your reference to the definition in RFC 822 of what a message is is also confusing the matter, since your first RFC 1341 reference also CLEARLY states that:

      ...This document redefines the format of message bodies to allow multi-part textual and non-textual message bodies to be represented and exchanged without loss of information.

      Furthermore, the very RFC you are quoting (1341) mentions Base64 encoding as example usage in many places throughout the text of it. The RFC in fact *describes* the usage of base64. So you aren't making any point here stating that it's against the letter of the MIME standards.

    31. Re:Separation by Anonymous Coward · · Score: 0

      They have fire in their eyes!!!

      Why don't you just say it - open source is better than anything Microsofts 15,000 developers can do. You must dream every night that your David, v's the evil goliath, and that you long for the day when you can grow some pubes.

  2. to sum it up... by KingRamsis · · Score: 3, Funny

    Windows programming is like playing golf, UNIX programming is like pig wrestling, after years of development on both platforms I feel that UNIX programming gives me the satisfaction of sport achievements, the unforgiveness of UNIX makes very thrilled.

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

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

    2. Re:to sum it up... by Anonymous Coward · · Score: 0, Funny

      Surely that extra few feet is enough to reach the floor?

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

      I'll give you this: at least your post was a hell of a lot shorter than Joel's lame article. And at least seems sincere. Joel, on the other hand, has layered on so much flamebait early on in his prose that I simply gave up. Besides, I can't stand to read ESR in the first place... but an article about something ESR wrote? Yeesh.

      Both ESR and Joel have demonstrated that they are full of shit. I think this is the last I'm going to read about the "cultural" aspects of technology. In the future I'm sticking to more pragmatic work, like the Pragmatic Programmers Guide or Code Complete or help files or man pages.

    5. Re:to sum it up... by AntiOrganic · · Score: 1, Funny

      No, you just need a much larger noose to get around the gigantic necks of us overweight Linux nerds. ;)

    6. Re:to sum it up... by Urkki · · Score: 1, Offtopic

      If the rope is short enough, you're sure to hang before your feet hit the floor (of course if it's too short, you may suffocate instead of breaking your neck, but it doesn't make much difference in the end). Too long rope however can lead to hurting your ankles, even breaking your legs, while still staying alive. Not good at all.

      I'd personally favor a shot gun in the mouth, quick and sure, and also minimizes the problem with rifles and pistols that you may not die, just get brain damage. A bit nasty for whoever finds you or needs to clean up, but indefinitely better than speeding into a truck with a car for example.

      (Apologies to anybody who has lost a loved one by any of above methods...)

    7. Re:to sum it up... by budgenator · · Score: 1

      I'd personally favor a shot gun in the mouth, quick and sure,

      I once made a lower denture for a man who had done that, placed a shotgun in his mouth and pulled the trigger with his toe. Interesting x-rays. The moral of the story is there few sure ways of killing your self.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    8. Re:to sum it up... by Urkki · · Score: 1

      Thanks for the info. If I'll ever need to do that, I'll make extra sure the shotgun but is supported against a corner, and points through the top of my head, and both barrels of a two-barrel shotgun will be fired.

  3. THE WINDOWS/UNIX PATRIOTISM DIVIDE by Anonymous Coward · · Score: 0, Funny

    Having read the article thoroughly, this startling news shows the flaws in the brewing Open Source Zeitgeist that is gripping the software community. Have you considered that providing software for free to countries such as China is essentially tacit support for oppressive regimes?

    Far-fetched? Think about it: With MySQL, the People's Army will now be able to do multiple queries on their tables of democratic activists in Olog(n) time instead of lengthy searches in card catalogs. The bureaucratic overhead previously allowed activists enough time to flee the country. How about building cheap firewalls so the people can't get the unbiased reporting that CNN provides? Or using Apache to publish lists of Falun Gong people to their police forces instantly? I doubt that never crossed your minds when you were coding away in your parents' basements. Consider putting that little thought in your mental resolv.conf file.

    If that does not concern you ( which it probably doesn't, since the lashout.org paradigm is publishing articles about how not to pay for things ), consider something else. When China eventually goes to war with Taiwan, we want to be able turn their command and control facilities into the computing equivalent of a train-wreck. One of the advantages of Windows never mentioned in the article is the ability of Microsoft to remotely deactivate Windows XP in the case of a national emergency. Thanks to GNU/Lunix, Taiwan will be on a collision course with the mainland in the near future.

    Which throws into question Mr. Stallman's motives. A known proponent of socialism, the Chinese government and RMS are natural allies. Could it be a back door to Stallman's dream of an uber-Socialist United States? We may never know for sure. Next time you consider contributing to an open source project, ask yourself this question: don't you want to make sure your work isn't used for nefarious purposes? Will you risk having blood on your hands?

    1. Re:THE WINDOWS/UNIX PATRIOTISM DIVIDE by LordBodak · · Score: 2, Insightful

      Great, but this article is about ESR, a vocal libertarian.

      --
      LordBodak's journal.
    2. Re:THE WINDOWS/UNIX PATRIOTISM DIVIDE by kraut · · Score: 1

      Of course, given their well-known respect for copyright, they wouldn't just rip off SQL Server instead?

      nice troll

      --
      no taxation without representation!
    3. Re:THE WINDOWS/UNIX PATRIOTISM DIVIDE by Anonymous Coward · · Score: 0, Insightful

      > Have you considered that providing software for free to
      > countries such as China is essentially tacit support for
      > oppressive regimes?

      Have you considered that selling software to countries such as China is essentially explicit support for oppressive regimes?

      http://www.microsoft.com/china/

      Oh wait, this post makes no sense either.

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

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

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

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

      He will be sorely missed.

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

    2. Re:That's too bad by kurosawdust · · Score: 1

      Boy, it's a good thing he made this page then. Oh crap - I just had an evil and vivid premonition of a surge of "Eric Raymond died this week at Stephen King's home in Bangor, Maine" and "Netcraft's coroners confirm *ESR is dead" trolls. Sour.

    3. Re:That's too bad by Uma+Thurman · · Score: 2, Funny

      Yep. However, his ego is still very much alive. We can all look forward to his next book entitled "The bizarre Cathedral: How a dot-com millionaire built a large church to house his gun collection." The book after that will be "Eric vs. Darl: The Last SCOFighter." Truly an open-source icon.

      --
      This is America, damnit. Speak Spanish!
    4. Re:That's too bad by metamatic · · Score: 2, Insightful

      I was hoping maybe he was going to stop writing. That way we wouldn't get any more wingnut rants about how the way to achieve safety on planes is to give guns to all the passengers.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    5. Re:That's too bad by peterb · · Score: 2
      the last book of Eric S. Raymond


      We should be so lucky.
  5. It's all about the shell! by Zog+The+Undeniable · · Score: 1
    *nix people aren't scared of the shell, Microsoft hoped they'd killed off the command line with DOS. They've buried it even deeper in Windows XP (it's now in Programs...Accessories rather than just Programs).

    That, or the fact that all the slashes go the wrong way in DOS/Windows because MS decided to use "/" as a switch rather than a directory separator.

    --
    When I am king, you will be first against the wall.
    1. Re:It's all about the shell! by bheer · · Score: 5, Informative

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

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

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

      They've buried it even deeper in Windows XP (it's now in Programs...Accessories rather than just Programs).

      Or Start --> Run, CMD, enter.

      Hardly call that buried.

    3. Re:It's all about the shell! by Haeleth · · Score: 1

      Or just install Cygwin and use your favourite Unix shell.

    4. Re:It's all about the shell! by AndroidCat · · Score: 1
      They're just hiding it to make it harder for virus/worm writers to find it. :^)

      The / was the default switchchar, but you could change that in config.sys until DOS 3.0 or so. (Not that many programs bothered to check with DOS to see what switch to use.)

      --
      One line blog. I hear that they're called Twitters now.
    5. Re:It's all about the shell! by SenseiLeNoir · · Score: 2, Informative

      or if you have a "windows" keyboard:
      + R
      cmd

      takes.. hmm about 2 secs

      --
      Have a nice day!
    6. Re:It's all about the shell! by ViolentGreen · · Score: 1

      That, or the fact that all the slashes go the wrong way in DOS/Windows because MS decided to use "/" as a switch rather than a directory separator.

      Just because it's not the *nix way doesn't mean it's the wrong way. It's a different OS. They don't have to do everything the *nix way.

      --
      Not everything is analogous to cars. Car analogies rarely work.
    7. Re:It's all about the shell! by dirtydamo · · Score: 1

      Btw, on 2000 and XP (maybe 9x too), you can assign a shortcut to the command prompt, say Ctrl+Alt+S, so hitting that will get you a command prompt quickly

      Or just install Cygwin and use your favourite Unix shell.


      Or, do both! And get the free program WinKey so you can bind shortcuts to that windows key (yes! it IS useful!).

      Win-S is one key less effort than Ctrl-Alt-S.

      Damien

    8. Re:It's all about the shell! by Anonymous Coward · · Score: 1, Funny

      What? You expect Linux users to tolerated having to type in obscure commands in obscure places? That's just not a realistic expectatoion to put on the users!

    9. Re:It's all about the shell! by jhines0042 · · Score: 2, Informative

      Or just move the darn thing... you're allowed to you know.

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

      --
      42 - So long and thanks for all the fish.
    10. Re:It's all about the shell! by DShard · · Score: 1

      While technically true it follows something called convention. Both systems have legacy roots, *nix just happens to be deeper...

    11. Re:It's all about the shell! by gbjbaanb · · Score: 1

      obviously unix programmers of today need a menu to get to their shell applications....

    12. Re:It's all about the shell! by Zathrus · · Score: 1

      I really wish WinKey came with a 32-bit installer. My work PC (Win2k) has lost the ability to run Win16 programs (WoW just hangs), so even though WinKey is 32-bit I can't install the damn thing.

      Yes, I've searched for solutions. So has tech ops. Nobody, including MS, seems to know why the WoW subsystem just breaks at times.

      My only real bitch with CygWin is that it mangles the hell out of your directory structure, with false roots and whatnot. I understand why it was needed, but it's still ugly. I mostly use it as an X server at home and work anyway. I do most of my work via putty -- only the debugger needs X (neither dbx or gdb work for us, as much as we would like them to).

    13. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      Or place it on the quick launch bar.

    14. Re:It's all about the shell! by gbjbaanb · · Score: 1

      really? MS-DOS grew (partially at least) out of CP/M roots, which was invented in 1977. I guess that's not too far off the beginnings of Unix.

      I wonder if someone's written a 'family tree' of operating systems and they features?

    15. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      Consider that Windows NT has VMS roots. VMS commands use the / char instead of the - char to designate switches.

    16. Re:It's all about the shell! by Anonymous Coward · · Score: 0
      That, or the fact that all the slashes go the wrong way in DOS/Windows because MS decided to use "/" as a switch rather than a directory separator.
      Wrong - this was from CP/M, copied by QDOS, which became MS-DOS. Don't blame MS for every little things, just becuase they get so many big things wrong.
    17. Re:It's all about the shell! by telekon · · Score: 2, Insightful

      No, what makes it wrong is the fact that directory separators are used more frequently than switches, and the positioning of "/" on keyboards is way more consistent than the positioning of "\"

      --

      To understand recursion, you must first understand recursion.

    18. Re:It's all about the shell! by smartfart · · Score: 1

      Or [windows key] + r (does that still work under WinXP?).

    19. Re:It's all about the shell! by Alpha77 · · Score: 1

      The funny thing is that you have to be careful with the name of your shortcut. I did a little, very unscientific and in no way documented experiment under W2K, SP4:

      1. Try to assign a shortcut key to cmd.exe (the command processor). Did not find a way to do this directly, because the online documentation is plain wrong. Had to create a shortcut (on the desktop) to get it to work.
      2. Try it a couple of times: it WORKS!
      3. Now rename the shortcut on the desktop (just for fun and also because I don't want to clutter my desktop with 'Shortcut to' drivel.
      4. Try it again: it DOESN'T WORK anymore!. Just a simple rename will break this....

    20. Re:It's all about the shell! by Anonymous Coward · · Score: 1, Informative

      "1. Try to assign a shortcut key to cmd.exe (the command processor). Did not find a way to do this directly, because the online documentation is plain wrong. Had to create a shortcut (on the desktop) to get it to work."

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

    21. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      >They've buried it even deeper in Windows XP (it's now in Programs...Accessories rather than just Programs).

      Actually, this is true even for Windows 2000 (NT 5.0).

    22. Re:It's all about the shell! by markhb · · Score: 1
      ... the positioning of "/" on keyboards is way more consistent than the positioning of "\"


      Which is presumably why they (or the original creators of QDOS) used the "/" for switches, given that the system as originally spec'd did not allow subdirectories.
      --
      Save Maine's economy: write stuff down. All comments are exclusively my own, not my employer.
    23. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      goody, so i can do less even faster.

      face it you can't do much in windows without a scripting language utilizing the wsh anymore, except do minor network troubleshooting, file structure manipulation, and a few other non-fancy commands).

      Simply like the argument is told. If you want a gui go to windows, if you want command line robustness go to *nix (that's why i'm there, oh yeah plus the stability issue).

    24. Re:It's all about the shell! by budgenator · · Score: 1

      Just because it's not the *nix way doesn't mean it's the wrong way

      Now I know why windows doesn't have millions of line of code stolen from SVR4!

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    25. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      Yes (WinXP Pro at least...)

    26. Re:It's all about the shell! by Anonymous Coward · · Score: 0
      1. It's its not it's.

      2. You obviously have never made love to a dead body.

    27. Re:It's all about the shell! by Lodragandraoidh · · Score: 1

      $p = get/process FileName
      $p[5].ToString()
      foreach ($p) { $p.ToString() }


      This is from the 'monad' page listed in the parent post.

      That looks alot like csh. There is a reason why no one writes csh scripts anymore...

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    28. Re:It's all about the shell! by You're+All+Wrong · · Score: 1

      It doesn't look like csh, it looks more like perl.
      In csh, $p would expand to the value of the scalar variable p.
      Just because it's got an '=' sign doesn't mean it's an assignment.

      > set p=/bin/ls
      > $p = 2 /bin/ls: =: No such file or directory /bin/ls: 2: No such file or directory
      > touch =
      > touch 2
      > set p=/bin/ls
      > $p = 2
      2 =

      There are some very good technical reasons why csh should be avoided, but aesthetics isn't really one of them. Reasons such as a fundamental inability to express certain useful concepts (such as independent piping of stdout and stderr). Similarly, if monad is supposed to be a shell scripting language it too should be avoided
      as the above indicates that it seems funadamentally unable to run a program defined by a variable. That's a far more fundamental flaw than csh's stderr problems. (Yes, there's probably a way round it, but if they'd only stuck to common shell langauge syntactic conventions there wouldn't have been a hole to work around.)

      YAW.

      --
      Your head of state is a corrupt weasel, I hope you're happy.
    29. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      The biggest problem with csh is that for most, its parser is unfathomable. Yet somehow, C doesn't have that same problem. Many of csh's problems are due to its implementation and design, not anything fundamentally wrong with a C-like syntax.

    30. Re:It's all about the shell! by SCHecklerX · · Score: 1

      Yup. Windoze has always had this wrong. OS/2, on the other hand, had a real OOI. If you changed the name to something a 'shortcut' pointed to, nothing ever broke.

    31. Re:It's all about the shell! by gfxguy · · Score: 1

      "...the number of UNIX installations has grown to 10, with more expected..."

      - Dennis Ritchie and Ken Thompson, June 1972

      --
      Stupid sexy Flanders.
    32. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      Yeah, but the NT-VMS relation has nothing to do with that. Both CP/M and VMS were based on earlier DEC shells that used / switches.

      NT's CMD.EXE comes from DOS by way of OS/2 and has nothing to do with VMS.

    33. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      Yeah, but OS/2 implemented it with binary mystery files that sometimes would get corrupted.

      Actually the Windows way of doing the start menu is more "Unixy" because it's file based.

    34. Re:It's all about the shell! by bheer · · Score: 1

      > Similarly, if monad is supposed to be a shell scripting language it too should be avoided

      That was actually a "recollection" of what MONAD scripts look like. Note that Monad scripts can actually be written in pretty much any .NET language, such as C# or JScript.

      Look at this slide 8 of this presentation, for an example of how to write something like a CommandLet like ps in monad.

    35. Re:It's all about the shell! by spitzak · · Score: 1

      Huh? In Windows it works for other programs, I can delete the "shortcut to" and the shortcut still works. But, lo and behold, I tried just what the posters said, and renaming a link to a terminal program breaks!

      This is unbelievable!

      To be honest, I thought a lot of the insults of Windows were overblown, but that has got to be some of the worst software engineering I have ever seen! A bug like this is just stunning in it's idiocity.

    36. Re:It's all about the shell! by infochuck · · Score: 0

      Or Start --> Run, CMD, enter.

      Hardly call that buried.


      Right... because 'cmd' is so intuitive, and because it's always been 'command'. /SARCASM

      Idiot.

    37. Re:It's all about the shell! by vrt3 · · Score: 1

      Hey, a had he same problem 4-5 years ago in NT 4. Refused to run any 16-bit application. Very inconvenient, since a *lot* of installers were 16 bit at the time. Nobody knew how to solve the problem; fortunately it was magically solved when a new service pack came out and I installed it.

      --
      This sig under construction. Please check back later.
    38. Re:It's all about the shell! by You're+All+Wrong · · Score: 1

      "Note that Monad scripts can actually be written in pretty much any .NET language, such as C# or JScript."

      In that case it's not a scripting language at all, it's simply an API and/or compatability layers for such an API?

      ".ppt"

      The information is so important that they want to hide it in fluff, eh? However, I found what I believe to be the same pressentation here: http://www.vikk.org/ms_cli/chuba79_slideshow/ and if so - it's an abomination. The quantity of boilerplate means that noone in their right mind will every use it.

      YAW.

      --
      Your head of state is a corrupt weasel, I hope you're happy.
    39. Re:It's all about the shell! by dohcvtec · · Score: 1

      They've buried it even deeper in Windows XP (it's now in Programs...Accessories rather than just Programs).

      How about the fact that Windows Explorer is also buried there. They apparently seem to think that everyone goes to "My Computer" to manage files, because My Computer is in the root of the Start menu.

      --
      -- Never hit a man with glasses. Hit him with a baseball bat.
    40. Re:It's all about the shell! by bheer · · Score: 1

      > The information is so important that they want to hide it in fluff, eh?

      No, it was shown of at the PDC, where a presentation (believe it or not) makes sense. If you want to actually get your hands on Monad, get the Longhorn DVD and then get Monad from betaplace.

    41. Re:It's all about the shell! by KingDaveRa · · Score: 1

      I said it was buried; I said nothing about intuitiveness.

      Idiot.

    42. Re:It's all about the shell! by mixmasta · · Score: 1

      Try installing it on another machine, then transfering the files and settings over.

      Usually works unless they have done something wacky.

      --
      #6495ED - cornflower blue
    43. Re:It's all about the shell! by Darth_Burrito · · Score: 1

      There's still a pretty good amount of functionality in the windows command line, especially if you have the reskit. Besides, the first thing I do on any windows workstation I get is to install cygwin and add the binaries to the path. Then you've got the best of both worlds.

    44. Re:It's all about the shell! by Darth_Burrito · · Score: 1

      It's been cmd going back to NT. "command" will still get you a shell, you just won't like it very much. Also, not trying to flame or anything, but in terms of names, cmd's not all that much worse than csh, ksh, bash, etc....

    45. Re:It's all about the shell! by BdosError · · Score: 1

      If you want a good, powerful, well-supported (you can get your questions answered) shell for Windows right now, check out JP Software's 4NT and Take Command replacement shells.

      Control structures, many built in functions (string and file manipulation, some internet communications, ...) and more, with 99% compatibility with CMD.exe, just in case.

      I started using it just for nice command history back in 1991 and have stayed with it ever since.

      --
      Complexity is Easy. Simplicity is Hard.
    46. Re:It's all about the shell! by Anonymous Coward · · Score: 0

      You can move it's arms or put a smile on it's face but it just isn't the real thing.

      And that's where the similarity ends, because making love to a dead body can actually put a smile on YOUR face.

      Hell, you can even put ITS smile on your face.

    47. Re:It's all about the shell! by jpop32 · · Score: 1

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

      I find it more convenient to just assign a hotkey to it. That way, whatever I do, shell is just an Alt-F8 away, no mouse action necessary.

    48. Re:It's all about the shell! by Tukla · · Score: 1

      Like spewing config options all over the Registry.

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

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

    1. Re:Does the story start with... by aanand · · Score: 1

      "we all love and work and sing and die"

      Yeah, but where are the Windows users going afterwards?

    2. Re:Does the story start with... by Anonymous Coward · · Score: 0

      No, but it does start with a father fucking the earth and eating his children.

    3. Re:Does the story start with... by mattjb0010 · · Score: 1

      Yeah, but where are the Windows users going afterwards?

      Don't you listen to Cake? "Sheep go to heaven, goats go to hell". So Windows users are going to heaven, I'm going to roast in hell, thankyou very much.

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

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

      --
      One line blog. I hear that they're called Twitters now.
    5. Re:Does the story start with... by Anonymous Coward · · Score: 0

      Unix users go to Mandos... It is not known where Windows users go.

    6. Re:Does the story start with... by Theatetus · · Score: 1

      ...and to the Windows users, Eru gave strange gifts...

      --
      All's true that is mistrusted
    7. Re:Does the story start with... by sharkey · · Score: 1
      Didn't Milton write something

      Most likely. Don't write this down, but I find Milton probably as boring as you find Milton. Mrs. Milton found him boring too.

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
    8. Re:Does the story start with... by elemental23 · · Score: 1

      If the company's logo is any indication, we can guess where Mac users are going to end up.

      --
      I like my women like my coffee... pale and bitter.
    9. Re:Does the story start with... by AndroidCat · · Score: 1
      Will this be on the test?

      And he's probably wrong about the servers. We know where BOFHs come from.

      --
      One line blog. I hear that they're called Twitters now.
    10. Re:Does the story start with... by Anonymous Coward · · Score: 0

      "If the company's logo is any indication, we can guess where Mac users are going to end up."

      Grocery store? I don't get it...

  7. What about KDE/Gnome? by Anonymous Coward · · Score: 0, Offtopic

    They bridge the divide between Windows and Unix. They provide an easy to use GUI, yet still offer the chance to use the commandline stuff. Try SuSE 9 or Mandrake 9.2, its like how Windows 2000 Should of been like.

    1. Re:What about KDE/Gnome? by Anonymous Coward · · Score: 0

      Yeah, permissions in Suse and Mandrake are a breeze.

      I love how logged messages have error codes and urls to more information on the web (of course in ZP there are actual links).

      Not to mention how trivial it is to get a program to go where you want it too in the GUI, windows is such a dog.

      Here's an idea. Use windows and see how far KDE, and especially GNOME have to go.

    2. Re:What about KDE/Gnome? by B'Trey · · Score: 1

      When I can drag and drop programs to the menus rather than having to run a stupid config program to alter them, and when you can get cut-and-paste to work regularly and consistently across all programs, let me know and I'll give you a host of other problems to fix.

      --

      "The legitimate powers of government extend only to such acts as are injurious to others." Thomas Jefferson.

    3. Re:What about KDE/Gnome? by Anonymous Coward · · Score: 0

      Yeah, I really hate how difficult KDE makes it to save files from any application to my web server through FTP. I have to go to "File", click "Save As," click the FTP button I easily created in my common file dialog, and save the file! Surely I need more layers of interaction, like a separate FTP program into which to drag the temporary file on my desktop.

      It's really a shame that terse and uninformative error codes that need me to click on URLs to figure out what happened don't show up in my system logs, and instead I get verbose and descriptive error messages about exactly what went wrong! Imagine that!

      Getting a program to "go where you want it" in the GUI is so easy, Microsoft actually asks me where I want to go today! AOL is so easy to use, no wonder it's #1! Please, continue to make completely ambiguous statements which barely even allude to what they could possibly mean! They make you look extremely intelligent!

      Windows makes it so much easier to reposition my system tray or hide it altogether, I don't know what I've been thinking all these years!

      Grow up. Installation and configuration of Linux needs some work, and arguably some of the software as well, but KDE's GUI is lovely, aside from being too cluttered with options that belong in configuration files somewhere.

      But I will admit, Windows sure makes it easy to infect my computer with random Internet Explorer worms and Word macro viruses!

      I think you're on the wrong website.

    4. Re:What about KDE/Gnome? by Anonymous Coward · · Score: 0

      Hey there's users and groups too. I assume some of the enterprise flavors take care of some of that.

      As for the wrong website, I think you mispelled "Church." HTH.

    5. Re:What about KDE/Gnome? by Khazunga · · Score: 1
      Use Gnome 2. Copy+pasting has been fixed for about four years now, and Gnome 2 menus are regular folders, a-la windows start-menu.

      Before filing any other complaints, please double-check current offerings.

      --
      If at first you don't succeed, skydiving is not for you
    6. Re:What about KDE/Gnome? by Anonymous Coward · · Score: 0
      Didn't you read the article?

      If you had you would know that you should just quit your whining and use Windows. Unix programmers are not programming for you. They are programming for themselves. If you want to use their stuff, you may. But don't bitch if it isn't up to your standards.

    7. Re:What about KDE/Gnome? by B'Trey · · Score: 1

      Copying and pasting has supposed to have been fixed. Sometimes it works, sometimes it doesn't.

      Under Gnome 2, you can open a file manager, and drag and drop things into the folders. I don't believe you can drag and drop on the menus themselves. If so, that may be enough to convince me to switch from KDE.

      I use Windows daily at work and use Mandrake 9.2 at home. As a power user, I frequently find myself frustrated with Windows insistence on getting in the way of doing things and simple inability to handle various things. (What I wouldn't give to have real, usable links in NTFS.) However, as a user, I frequently find myself frustrated by the Linux GUI's lack of polish. I'm not knocking Gnome or KDE, just noting that they aren't there yet.

      --

      "The legitimate powers of government extend only to such acts as are injurious to others." Thomas Jefferson.

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

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

    --
    If you mod me down, I will become more powerful than you can imagine....
    1. Re:windows users are the problem... by Peganthyrus · · Score: 5, Interesting

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

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

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

      --
      egypt urnash minimal art.
    2. Re:windows users are the problem... by Zoop · · Score: 4, Insightful

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

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

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

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

    3. Re:windows users are the problem... by SenseiLeNoir · · Score: 1

      yes. and lets see how long it takes for some kiddie to "tunnel" into your NON-password protected computer.. thought one of the million security holes... and replace your "explorer.exe" with ahem.. somethign that *really* explorers (as opossed to explode)

      --
      Have a nice day!
    4. Re:windows users are the problem... by Monkey-Man2000 · · Score: 1

      It is precisely what Joel is talking about. He just didn't make the connection as explicit. Mod parent up please!

      --
      This post was generated by a Cadre of Uber Monkeys for Monkey-Man2000 (603495).
    5. Re:windows users are the problem... by JanusFury · · Score: 1

      And of course, having a password renders your Windows computer invulnerable to all manner of exploit and security hole.

      --
      using namespace slashdot;
      troll::post();
    6. Re:windows users are the problem... by Anonymous Coward · · Score: 0

      You only say that because you're not like the "Windows programmers, who are, on the whole, solution-oriented and non-ideological."

    7. Re:windows users are the problem... by Peganthyrus · · Score: 1

      OSX. All gates closed by default. *smirk* And this is the security problem - that Aunt Marge has no clue that there are all these open doors on her Windows box. She just wants the damn thing to work, in a consistent and predictable manner.

      --
      egypt urnash minimal art.
    8. Re:windows users are the problem... by op00to · · Score: 1

      Port 427 isn't open by default on your OSX machine?

    9. Re:windows users are the problem... by Anonymous Coward · · Score: 0
      1. Windows programmers care about users, UNIX programmers don't.

      Then why do Windows programs treat user's data with such lack of care?

    10. Re:windows users are the problem... by janbjurstrom · · Score: 1
      I actually think Joel says so too. Towards the end of the article (emphasis mine):
      When Unix was created and when it formed its cultural values, there were no end users. /.../ 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.
      --
      668.5
    11. Re:windows users are the problem... by Anonymous Coward · · Score: 0

      once again people have it wrong. its not the user's fault, its the programmers (well mostly the manager of the programmers). They try to make things so easy that it keeps the user stupid.

    12. Re:windows users are the problem... by goodviking · · Score: 2, Insightful

      But do you trust the janitor? What about the security guard? What about the 16 year old kid who came in to work with Mom and is bored and wandering the halls?

    13. Re:windows users are the problem... by JamesOfTheDesert · · Score: 1
      yes. and lets see how long it takes for some kiddie to "tunnel" into your NON-password protected computer.

      At least two years, as that's how long I've been doing this at home and my Windows box has yet to be owned.

      --

      Java is the blue pill
      Choose the red pill
    14. Re:windows users are the problem... by Anonymous Coward · · Score: 0

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

      Funny... that's exactly what I think about X apps and pretty much any app that was developed on Linux/Un*x and ported to Windows, but I can understand your comment if you come from the Mac world. Also, a funny thing is this one point is one of the most often cited as one of the most annoying (and most needing work) in the OSS world. I've found few OSS apps that have a GUI that doesn't cost me productivity when compared to (equivalent) apps written on, well, just about any other platform. (BTW, I am paid to develop software on Linux.) OSS/Linux/Un*x tools are typically very powerful for a power user but for "Joe Sixpack", they are still a ways from being usable.

      I guess some folks like puzzles and figuring out the GUI scheme of an OSS app is usually a good one to beat. ;)

    15. Re:windows users are the problem... by Anonymous Coward · · Score: 0

      That you know of.

    16. Re:windows users are the problem... by tchuladdiass · · Score: 1

      Well, at least My "home" office doesn't have a janitor (uh, except for me), no security guard either (unless you count the lady that lives down the street, she notices _everything_. Also, since I'm well into my 30's, and the youngest in my family, then Mom no longer has a 16-year old kid wondering the halls.

    17. Re:windows users are the problem... by JamesOfTheDesert · · Score: 1
      That you know of.

      Well, that comment is true of any claim about any security setup. Or pretty much anything else, for that matter, making it pretty much meaningless.

      But thanks for contributing to the discussion.

      --

      Java is the blue pill
      Choose the red pill
    18. Re:windows users are the problem... by Anonymous Coward · · Score: 2, Informative
      Well... why do you need a password to run something on your own computer?

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

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

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

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

    19. Re:windows users are the problem... by Anonymous Coward · · Score: 0

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

      That statement right there is really where the line in the sand is drawn between the two cultures.

      Linux makes the assumption that people want an intimate relationship with their PC - they want to know how their memory's being used, what drivers are up to snuff and what are not, etc. They assume that people will get smarter over time.

      If anything, Microsoft has done the exact opposite - and if the Fisher-Price XP desktop doesn't give it away, nothing will.

      Average users don't care about drivers, RAM.. even security. They just want to know that when they click the little printer button on their spreadsheet, it's gonna print. And when they click on 'Send' in Outlook, it's gonna send.

      Lindows is close. But a pay-for Linux removes the #1 benefit that would motivate most people. So...

      Tell me who or how this is getting fixed, and I'll listen. Until then, I'm going to stare at my Red Hat desktop, and wonder how long it's going to be before someone significant in the Linux camp starts to really figure that out.

    20. Re:windows users are the problem... by pileated · · Score: 1

      Right you are. How can anyone whose been burnt by Windows think that anyone has the user in mind. Though I assume MS isn't really this nefarious it always seems to me like MS products are made to SEEM easy for Aunt Midge or whomever. Only when they've bought the program do they find that's it's only easy until it breaks and then you're SOL. If MS programmers cared about users the Help programs would come off as a Offer of Help not a Plea. Has anyone ever really found the answer to anything in a Windows Help file?? Give me a break. Sorry for the cliche but I just couldn't help myself.

    21. Re:windows users are the problem... by Anonymous Coward · · Score: 0

      Why? One reason is that the experience of running the program while sitting at your computer should be just about the same experience as running the program on your own computer while sitting at someone else's computer. Sadly, in this world of dynamic IP addresses (which are OK because nobody would want to access their computer remotely right? they'd rather just carry around a big collection of CDRs or USB flash disks, right?), accessing your computer remotely is made less convenient than it should be, and the utility is reduced.

      Another reason is Unix is not a single-user computer system. It was invented when computers were too expensive to put one on every desk. People had to share them. These days, things are somewhat different, and Unix hasn't given up the multi-user approach. Which, in my opinion is good, because it means that by default you have some separation between system things and user things. Windows has multiple user accounts these days, but the implementation is so half-hearted that it's almost useless.

    22. Re:windows users are the problem... by Anonymous Coward · · Score: 0

      The first attempt at Offer of Help didn't seem to work ("It looks like you're writing a letter. Would you like help with this?")

      Shudder. The English-friendly Answer Wizard in Office is pretty nice, though.

    23. Re:windows users are the problem... by Dukael_Mikakis · · Score: 0

      I agree, Windows programmers are developing more explicitly for the buyer (to sell the contract, and get the item on the desktop) than for a user. People are overburdening their software with features and flashy (if bloated and memory-consuming) UI gimmicks (I admit, I sometimes enjoy seeing what gimmicks I can create) that we lose sight of the purpose of the software in Windows.

      The company I work at (a small financial software company) is fast doing this by incorporating all sundry features into our code that it becomes burdensome to run. But we do all of it so that no matter what the customer asks for, we can say we have it.

      The silly thing is that the fault is not ours (the boss is just trying to make the deal, of course), but in the clients' poor specifications, in thinking of anything the might want that they don't realize that these features come at a cost. So they ask for everything under the sun, never use half of these demanded features and complain it runs slowly! (Poor coding is also partially at fault, but ...)

      And this is what I think is the big problem with Java. Coders (maybe not programmers) are clients just like this, also, where they want all these features and all these packages and all this functionality that we don't realize how it burdens programming and our systems. This is why I love and I hate Java. Of course, I never have to think of anything, in a sense, because Java has my bases covered. But then it kills me that I lose performance (which we all can tell) because Java has to have every base covered.

      Face it, with Windows and Microsoft and the mass marketing of PCs to all sorts of people (not just computer people) has come the advent of BloatWare, the solution to people who have no idea what they're doing.

    24. Re:windows users are the problem... by Sire+Enaique · · Score: 1

      I helped a friend who got her XP box infected with blaster get rid of a few months ago.

      Having noticed how her user account had admin privileges, I launched into a quick lesson on why this was a Bad Idea and talked her into letting me set up a separate admin account and revert hers to regular user privileges.

      It appeared that many programs she uses all the time expect you to run your computer as admin and require those rights to function properly.

      So the experiment in proper account policy was extremely short-lived.

    25. Re:windows users are the problem... by timmarhy · · Score: 1

      i cannot believe that was modded insightful your talking about physical security while this whole thread is about software security. completely off topic. passwords are used to seperate user's from parts of the system which can be exploited, and anyone who thinks this is not need is well.. to be honest stupid. If you think security experts are being over zealous, you obviously have not experienced the great wave of email viruses that floods the internet regularly. this would not be the case with unix systems as you can't steathly install an smtp engine on a unix system. becuase it would require a password. if anything we are not being zealous ENOUGH.

      --
      If you mod me down, I will become more powerful than you can imagine....
    26. Re:windows users are the problem... by fiontan · · Score: 1

      It's taken at least two years for anyone to "find" your computer... being the only assumption you can realistically make from your statement.

      Once a script kiddie finds the computer, we find the answer to the question of how long to "tunnel" into it.

    27. Re:windows users are the problem... by Tukla · · Score: 1

      Heh. The passwords do come in handy if you're sharing your system with a four-year-old. His desktop -- which has nothing on it except "Dragon Tales" songs -- doesn't have a password, while mine is safe from Kid Destructo and his Mighty Mouse of Doom.

  9. bad reflexes by Janek+Kozicki · · Score: 2, Insightful

    Eric S. Raymond has just written a long book about Unix programming called The Art of UNIX Programming

    oh, he has just written it? How could it be that I was reading this book for over a year now?

    --
    #
    #\ @ ? Colonize Mars
    #
    1. Re:bad reflexes by erlenic · · Score: 5, Funny
      How could it be that I was reading this book for over a year now?

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

    2. Re:bad reflexes by Anonymous Coward · · Score: 0
      Eric S. Raymond has just written a long book about Unix programming called The Art of UNIX Programming
      oh, he has just written it? How could it be that I was reading this book for over a year now?
      Probably because you are an arrogant, condescending prick who enjoys looking down on others while pointing out how much more knowledgable you are than others around you.
    3. Re:bad reflexes by nathanh · · Score: 1
      Don't worry, plenty of slow readers have gone on to lead successful lives.

      Dah, he's from Ca-na-da, so they think he's slow... ehh!

    4. Re:bad reflexes by random_rabbit · · Score: 1

      True, and at least one has become leader of the free world.

    5. Re:bad reflexes by Janek+Kozicki · · Score: 1

      he's from Ca-na-da

      no. I'm from Poland. and it is good when you read this book longer, by this way you learn a lot more from it. I have to read several parts over and over again (you can think that is beacuse I'm too stupid to understand them first time, I don't care).

      --
      #
      #\ @ ? Colonize Mars
      #
    6. Re:bad reflexes by nathanh · · Score: 1

      I don't think you're stupid :-) It's a Simpsons reference. It wasn't supposed to taken seriously.

  10. Re:oh, no! by mattjb0010 · · Score: 1

    raymond's last book? i didn't know he died;-}

    Switching from windows to Unix is like resurrection though, from something worldy to something spiritual ;)

  11. Re:What about..- Grammar [Score -2, offtopic] by Anonymous Coward · · Score: 1, Insightful

    Should of???

    Oh, please.

    Should have!

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

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

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

    1. Re:about cultural divide. by Talthane · · Score: 4, Insightful

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

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

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

      --
      "This is why men never share their feelings; because women always remember." -Just Shoot Me.
    2. Re:about cultural divide. by Hatta · · Score: 2, Insightful

      What is it that microsoft gives you the "freedom" to do that you can't under unix? Besides running 95% of commercially available software. It's ok that you like GUI apps, I use mozilla, gaim, and xchat frequently myself. But linux has a GUI too, and for my purposes at least it's better than windows. Why? Network transparancey.

      But I don't mean to get into a bunch of feature comparison here. We're talking about cultural differences. So here's an example. When I don't know how something works in linux, I can run the program with the -h flag, use 'man' or grep through the config files and figure things out pretty easily. If I can't figure out how something works in windows, I'm presented with a control panel full of dialogs with subdialogs and submenus under that. How do you ever find anything?

      So really, I don't understand why people consider windows so easy to use. But there are two parts to the mantra "simple things should be easy, complex things should be possible" Windows fails on this part too, but mainly because it shuns the command line. Suppose I want a program that will take all the files on a cd, check them against an md5sum file or create one if there isn't one, and burn them all to a new cd. That's just a few lines of bash, but with a gui app you're stuck doing all that manually.
      Is that really the way you want to use your computer?

      --
      Give me Classic Slashdot or give me death!
    3. Re:about cultural divide. by xdroop · · Score: 4, Insightful
      In that sense, Windows offers me greater freedom to do with my computer what I want to.

      Good. Great. Bully for you.

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

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

      --
      you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
    4. Re:about cultural divide. by Anonymous Coward · · Score: 0

      "it's a reflection of your personal preferences, experience and background. It's not remotely cultural."

      When the feeling of being frustrated with a machine that will not do what you need it to is shared by millions of people, its cultural. When millions of people refuse to have to learn hundreds of gibberish commands just to perform simple tasks, its cultural.

      When millions of people choose to use an OS that actually makes them more productive, its cultural.

      Deal with it.

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

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

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

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

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

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

      --
      Those who trade freedom for security will lose both, and deserve neither" -- Ben Franklin
    6. Re:about cultural divide. by Clover_Kicker · · Score: 1

      >I can't make my Windows machines work in the way I like to (mix of
      >command line and GUI)

      I hate 'doze as much as the next guy, but I have to disagree.

      There are lots of bolt-ons command line tools for your windows box (resource kits, Cygwin etc.)

      WSH allows you to script a *lot* of system administration tasks. The syntax sucks, but at least you can do it.

      There's still a lot to hate, but Win32 *has* improved since Win95.

      Most died-in-the-wool Windows people have a gigantic blind spot and won't use these tools, but they exist.

    7. Re:about cultural divide. by minus9 · · Score: 1
      "And yes, that means I prefer GUI over commandline by far and would never touch commandline."

      If you're doing anything more complicated than playing games on Windows then you'll be using the command line part of the time anyway.

    8. Re:about cultural divide. by gorfie · · Score: 1

      What could you do in MySQL that you couldn't do in Access? Both take SQL (although the syntax differs and one may implement something that the other does not).

      Personally, I prefer MySQL after having used both, but I never came across something in Access that couldn't also be done in MySQL. In fact, I found that MySQL lacked some functionality that I wanted (subqueries, but that was fixed in MySQL 4.1 I think).

      And while Perl & PHP might expand on the capabilities of MySQL, the same thing can be said about ASP and Access. The only limitation on Access was the number of connections that could be made to the database.

      As for Excel, it serves its purpose well. A quick/easy way to store/analyze/present small amounts of information.

      In the end, they are all merely tools and each has its own advantages and disadvantages. Just because one meets your needs better than another doesn't necessarily mean it's a bad tool.

    9. Re:about cultural divide. by fingusernames · · Score: 1

      And that is back to the original point. The *nix culture is about technically proficient users being able to interact with the system in a technically rewarding manner. Meaning, with knowledge comes power.

      The Windows culture was traditionally about empowering end-users to be able to use a technically complex device (a general purpose computer) without having to acquire technical proficiency beyond what was needed to complete the task at hand. As Windows has moved beyond that role, and is used by technically proficient users (technical professionals, in server environments, so on) it has adopted more complicated and powerful features, but always strives to hide them. And at the core, it hides everything, either through black-box interfaces/methods, or an incredibly cryptic registry.

      You are not a technically proficient user, in the sense that you don't know too much about how a computer works, and you don't want to. That's not an insult, that's just who you are, along with the vast, vast, vast majority of other people. For you, certainly, Windows is better, because it hides the complexities and makes you feel good about yourself being able to harness the computer to do what you want.

      For me, I very often despise Windows, because I find it so difficult to control the computer when it is designed from the start as a black-box. I've written optimizing compilers, operating systems, shells, memory-management systems, in-memory data normalization for data warehouses, parsers, my own languages, so on, and administered various *nix systems since the late 80s. I know how computers work, fundamentally. And yet, Windows frustrates me to no end at times.

      With Unix, it most definitely takes a lot more techical proficiency, but I am confident that I can control the system, and fix most any problem, with the minimal loss of my data or time. Sometimes Windows just blows up, and there is nothing, absolutely nothing, you can do to save the system other than completely re-install the OS, and then have to completely re-install every last application due to the registry.

      A catastrophic failure in a Unix system generally presents me with the opportunity to attack the problem in numerous ways and through technical means save the system. A failure in a Windows system all too often means I get to put a CD-ROM in the drive and click some buttons while it happily wipes away the system (and that incredibly idiotic damn single-point-of-failure registry). And then more CD-ROMs, and more clicking, for a long time. I find that to be incredibly dis-empowering and frustrating personally.

      Larry

    10. Re:about cultural divide. by Sire+Enaique · · Score: 1

      Millions of people did not choose to use Windows.

      Before the internet boom, people used personal computers in the workplace mostly for word processing and spreadsheets, and also for accessing ERPs.

      It's much easier to train people to use a point-and-click interface to perform those tasks than a purely text-based interface, and once you're into point-and-click it's logical to go the whole way to a true GUI.

      Back in 1990 there were 4 widely available platforms that supported such a full-featured GUI: the Amiga (Workbench), the ST (GEM), the Mac and the PC (Windows 3.0 and OS/2).

      The Amiga and ST were out mostly because Commodore and Atari never actively marketed them towards professional users and therefore lacked both the dealer network and essential apps such as accounting suites.

      That left only Mac and PC. Although the Mac was more user-friendly, PCs were cheaper, could do the job, and in large organisations your mainframe supplier also doubled up as a PC supplier so you could easily use your PCs as mainframe terminals.

      That clinched it. Now the fight could only be between OS/2 and Windows, but OS/2 was marketed by a hardware manufacturer while Windows wasn't, so it was unlikely that Compaq, for instance, would push OS/2 over Windows.

      So if you weren't an IBM customer, from a purchasing manager's point of view the only real option was Wintel. The end user never had much to say about that.

      Apple survived mostly because its GUI was far superior and let it acquire a loyal following in graphics-oriented businesses where nice-looking litterally means money, but everywhere else, where the extra expenditure couldn't be justified there was just Wintel.

  13. Is Eric S. Raymond dead then ? by MosesJones · · Score: 1


    Review of his last book. Didn't realise the chap had died and was now no-longer able to write books. Its a shame to see the demise of such a great OSS proponent pass so un-noticed.

    Very sad....

    Unless of course the word was meant to be "latest" ?

    --
    An Eye for an Eye will make the whole world blind - Gandhi
    1. Re:Is Eric S. Raymond dead then ? by Anonymous Coward · · Score: 0

      could just be that he will not have written any more books for the rest of his life.

      "The biggest problem with time travel is not the time paradoxes, its the grammar" /modified hhgttg

    2. Re:Is Eric S. Raymond dead then ? by Just+Some+Guy · · Score: 1
      chap

      From that word alone, you're probably not an American - we don't really use it. On this side of the pond, "last" has the same connotation as "latest" has for you. "His last book" is idiomatic American English.

      --
      Dewey, what part of this looks like authorities should be involved?
  14. Microsoft's Will to Change by Anonymous Coward · · Score: 1, Interesting

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

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

    1. Re:Microsoft's Will to Change by Anonymous Coward · · Score: 0
      That Microsoft has up and decided it wants to make a secure OS is of no consequence to me.

      [Typical dirty GNU/Hippie arguments]

      I'm never buying soap or shampoo again, ever.
    2. Re:Microsoft's Will to Change by leifm · · Score: 1

      I don't believe network based software will ever catch on beyond a niche market. As things are now people feel like they own their software, even though they don't really. Networked subscription based software will take that feeling of ownership away, and that's why it will fail. If anything changes at all I think it'll be Windows being tied to hardware, so no upgrades without a new machine.

      --

      "Windows Me offers tremendous reliability and stability improvements..." -- Paul Thurott
  15. Re:fuck windows by Anonymous Coward · · Score: 0, Informative

    You are incorrect, sir.

    It is MacOS that is for fags.

    HTH.

  16. windows bigots vs unix bigots by Frubjub · · Score: 3, Insightful
    I've encountered too many Unix programmers who sneer at Windows programming, thinking that Windows is heathen and stupid. Raymond all too frequently falls into the trap of disparaging the values of other cultures without considering where they came from. blah blah blah
    Well, if you've ever encountered a windows zealot, from the point of view of a unix person (I don't consider myself a zealot, I just think unix makes my job easier/possible), you'll know that they are even more zealous than the unix zealots. It seems pretty clear what the author's views are.
    1. Re:windows bigots vs unix bigots by Anonymous Coward · · Score: 0

      So you're a unix zealot zealot becase they're less zealotic?

    2. Re:windows bigots vs unix bigots by Frubjub · · Score: 1

      yeah, something like that. Whatever, I'm just trying to earn a living :-)

    3. Re:windows bigots vs unix bigots by LowFreqDude · · Score: 1

      There is actually a piece of work being undertaken to normalise OS bigotry and zealotry. First iterations seem to point to beard length as a key determinant.

    4. Re:windows bigots vs unix bigots by Anonymous Coward · · Score: 0

      >So you're a unix zealot zealot becase they're less zealotic?

      Zealotic?

      I think you mean "zelous".

    5. Re:windows bigots vs unix bigots by Anonymous Coward · · Score: 0

      Zelous?

      I think you mean "zelos".

    6. Re:windows bigots vs unix bigots by Anonymous Coward · · Score: 0

      No, I meant zoo-less.

      The city closed the damn zoo!

    7. Re:windows bigots vs unix bigots by cerberusss · · Score: 1
      It seems pretty clear what the author's views are.

      I hope you're not trying to tell us that Joel Spolsky is a Windows zealot. You can say about Joel whatever you like, but I think this guy isn't a zealot at all. He is just very pragmatic, which means that he picks the best of both worlds.

      And more than that, he can explain it in a very readable way. You should read his articles. Each and every one of them is clearly written and offers lots of info and background for developers. There's lots of jokes and pictures in his articles, which makes them even more easy to read.

      --
      8 of 13 people found this answer helpful. Did you?
    8. Re:windows bigots vs unix bigots by Frubjub · · Score: 1

      I figured somebody would take me up on that! I almost took it out before I posted, but then I thought a bit of harmless trolling never hurt anyone :-) Agreed, he does seem very reasonable.

    9. Re:windows bigots vs unix bigots by cerberusss · · Score: 1
      but then I thought a bit of harmless trolling never hurt anyone

      It was very subtle, so yes I bited. :-)

      --
      8 of 13 people found this answer helpful. Did you?
  17. The usual "C or Perl" thing, then... by Anonymous Coward · · Score: 4, Informative

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

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

    1. Re:The usual "C or Perl" thing, then... by Anonymous Coward · · Score: 0

      Write your prototype - and then deploy it, because it's already fast and robust enough for everyday use.

      and as a bonus it includes all the source code for other people to rip off ;-)

    2. Re:The usual "C or Perl" thing, then... by Anonymous Coward · · Score: 0

      and as a bonus it includes all the source code for other people to rip off ;-)

      Did you read the post you replied to? He said there are any number of compiled high level languages out there.

    3. Re:The usual "C or Perl" thing, then... by kyz · · Score: 1, Informative

      Write your prototype - and then deploy it, because it's already fast and robust enough for everyday use.

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

      A prototype in software engineering is just that -- a bare bones quickly knocked-out attempt at checking if some assumptions hold up or not. A prototype is something you write in 5 minutes with no thought given to its future reliablility maintainability. After the prototypes, only then do we seriously design the software. We do not give prototypes to customers and say "they you are, it's finished".

      --
      Does my bum look big in this?
    4. Re:The usual "C or Perl" thing, then... by jasenj1 · · Score: 1
      A prototype in software engineering is just that -- a bare bones quickly knocked-out attempt at checking if some assumptions hold up or not. A prototype is something you write in 5 minutes with no thought given to its future reliablility maintainability. After the prototypes, only then do we seriously design the software. We do not give prototypes to customers and say "they you are, it's finished".

      Unfortunately, to many (some?) managers anything that works is sellable/shippable. Only when the bug reports & crash complaints start flowing in do the engineers have the opportunity to go back and clean up the messy prototype code.

      Maybe I've just worked at some bad places, but the pressure to get to market usually outweighs the desire to get things right the first time - that's what maintenance contracts are for!

      - Jasen.

    5. Re:The usual "C or Perl" thing, then... by Polo · · Score: 1
      ESR: "Whenever possible, prototype in an interpreted language before coding C."

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


      Prototyping in the highest-level language possible before optimizing is sound advice.

      I don't buy that Java gives you the convenience or ability to rapidly prototype like perl does.
  18. It's just a test!!! by Ripplet · · Score: 1, Funny

    The whole point of this article is to see how many /. readers actually get to the end of it.
    "slashdot-karma-whoring sectarianism" is tucked way down near the end in the last paragraph. Over 40 posts already and nobody else has spotted it yet!

    --

    Skiing? Check out The Independant Skiers Portal

  19. Re:can this guy actually code? by Mitch++Murray · · Score: 0, Funny

    " ... before ADSL it was a pain in the arse ..." Another thing: Unix guys say "arse". Windows guys say "ass".

  20. Re:How to tell if you are a linux fanatic. by timmarhy · · Score: 4, Interesting

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

    --
    If you mod me down, I will become more powerful than you can imagine....
  21. Re:fuck windows by mo^ · · Score: 1

    i wasn't aware cigarettes had an OS preference

    --
    bah!*@%!
  22. ha ha by koekepeer · · Score: 4, Interesting

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

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

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

  23. Re:The essential difference by TheGrayArea · · Score: 1

    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
    That's an interesting statement. I'd love to hear more details because I'm not sure what that means. Using MSMQ from COM+ is just like using it from anywhere else - the big caveats come when running clusters. Just a guess, but were they clustering MSMQ and also using a COM+ application on the same cluster?
    The reason I ask is that when I was employed at MS I used to support MSMQ and write utils for the MSMQ dev team. Part of me is still curious when I hear things like this and I can't help but to look at them.

    --

    This space for rent.
  24. I sense much fear in you. by Anonymous Coward · · Score: 0

    And that is why you fail.

    A computer isn't a Babage to Ballmer history lesson. It's a tool. A tool for automating mundane tasks. You seem to be confusing this for a tuol that burdens users with more unecessary mundane tasks. You are wrong, practically by definition.

    And for the record, providing a password is an arbitrary convention. For a typical user who's not worried or doesn't care about someone getting into their computer localy automatic login is fine (hence provided for in linux distros), and occasionally, the computer may want reassurance that, for certain tasks, the local user is performing them. Typing a password, or dragging a set of keys icon onto a computer icon with a locked emblem and changing it to an unclocked, or superman emblem would both be a perfectly valid way of doing this.

    Do you run an encrypted file system? I don't. You have locking hard drives in a locking case? I do, but that's more a quirk of fate, so the keys are ties with fishing line to their locks. And don't pretend that if you don't your system isn't any more secure than the guy who automatically logs in.

    Your baseless elitism is a just one symptom of the cancerous idiology that contributes to the User hostility of linux. "It's for geeks, you can't be in our club."

    Until that attitude has the dents taken out and a new polish put on it, it's going to be a while before it's the OS mom and pop are looking for.

    1. Re:I sense much fear in you. by Anonymous Coward · · Score: 0

      Well said!

    2. Re:I sense much fear in you. by Anonymous Coward · · Score: 0

      Until that attitude has the dents taken out and a new polish put on it, it's going to be a while before it's the OS mom and pop are looking for.

      Who cares? It's not like the fine alternatives to the MS monopoly are ever going to go away. Fuck mom and pop in their stupid asses if they want to suffer the indignation of having their lives controlled by a billionaire with a bad haircut.

      For that matter, fuck you in your stupid ass too. Go enjoy whatever you like. Zealous, anonymous defense of a multibillion corporation leads me to believe you draw a paycheck from them. Congratulations on your position. Which one is that, by the way? On your knees, on your back with your ankles behind the head, something else?

    3. Re:I sense much fear in you. by Anonymous Coward · · Score: 0

      Aww. Hit a nerve? You're the moron, and so are the idiots that let their idiology get in the way of usability. Who cares about Mom and Pop, PHB's, secretaries, and the rest, people who want to A) make something people will use, and B) people who want to make a shit load of money off the world beating a path to their door.

      MS didn't win because they're better people, they won because no one else showed up to play the game. It just so happens troglodytes, like yourself, make them look like better people.

      Don't you have an anarchists logo to spray paint somewhere before you go haggle over a dime bag behind Coffee Messiah?

  25. I code in whatever makes me money. by CompWerks · · Score: 1

    I could give a rat's ass which platform it is since unfortunately I don't have the luxury to choose.

    --
    If you can read this sig - the bitch fell off.
  26. Re:Bubbling frustration by jonhuang · · Score: 2, Insightful
    The problem that Mr. Sposky doesn't address is... 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.

    If you read the article, you would notice that the ENTIRE POINT was that there isn't one true way of doing things. The secondary point is that some *nix people are pulled into some sort superiority complex.

  27. One thing MS is good at... by wiredog · · Score: 1

    is wooing developers with lots of good tools and documentation.

    1. Re:One thing MS is good at... by Anonymous Coward · · Score: 0

      Doesn't this contradict the main point of this article that *nix is for programmers and Windows is for Users?

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

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

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

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

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

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

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

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

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

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

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

      That's part of the problem. The beauty of cars is that we're all driving on the same roads. Microsoft, on the other hand, likes to damage interoperability in such a way that to get from your house to 7-Eleven, you have to convert your automatic transmission to a manual transmission and connect your headlights to the top of your car, and then on the way back your car gets infected by the Internet Explorer worm of the month and ends up going the wrong way down a highway at 120 MPH.
    2. Re:reasons behind attitude by TALlama · · Score: 0, Flamebait
      "Where do you want to go today" sold computers, it sold windows and increased his market share. unix needs a "where do you want to go today" why? because no normal computer gives a crap about where the source came from. I propose:
      Unix: Where Windows wants to go tomorrow
      --

      - The Amazina Llama

    3. Re:reasons behind attitude by Anonymous Coward · · Score: 0

      Jesus, you right documentation for a living?!

    4. Re:reasons behind attitude by Anonymous Coward · · Score: 0

      With people like you in the world (free hint: write, not right), we do need technical writers (not righters) to generate the readable, intelligible text that is the foundation for modern formal communications.

    5. Re:reasons behind attitude by demon · · Score: 1

      The true artist loves his tools, and so then do his tools love him back. Saying that "oh, I don't care, whatever tools they give me I'll use" is either (a) a lie, or (b) means you really don't care about the output. My dad, an auto mechanic for many years, prefers certain tools over others - he knows his tools, and chooses them carefully. Not just "right tool for the job", but "who made the tool?" It's the same thing with a development environment. I can't imagine trying to write code on Windows anymore - it's Linux and gvim for me, thanks. It takes time to learn the ins and outs, sure, but once you learn, you're that much more effective at what you do.

      --

      Sam: "That was needlessly cryptic."
      Max: "I'd be peeing my pants if I wore any!"
    6. Re:reasons behind attitude by Anonymous Coward · · Score: 0

      "Why'd i get a mac? because while i'm in the middle of recording a band session i can't turn to the band and say "sorry guys computer crashed i lost the last 3 hours of your work"

      My experience with Macs is that they crash every 3 hours. Windows is rock solid however. Haven't used OSX however.

    7. Re:reasons behind attitude by Anonymous Coward · · Score: 0

      if i got someplace else and sit in a car i should be able to drive it

      Computer/car analogies amuse me for so many reasons. People say "Why can't computers be as standard and easy to use as a car?" Here's the answer: Yanks lose 30,000 people to automobile accidents every year. We Aussies lose around 2,000 each year, due to smaller population and lower distances travelled. Cars are not as simple as people like to think, and people die because of this ignorance.

      Cars aren't all that standard either. They can weigh as little as a few hundred kilos or as much as a few tonnes. 300cc to upwards of ten litres! Front wheel drive, rear wheel drive, all wheel drive (part-time or full-time). Manual transmission or automatic. Left-hand controls or right-hand controls. Petrol, diesel, LPG, electric or some mix. Each of these things can dramatically change the handling and braking characteristics of a motor vehicle, but people just don't care or want to understand.

      People still can't drive, and humans have been doing that for a century now. Why should they expect to be able to use computers, which are vastly more complex?

    8. Re:reasons behind attitude by alexpage · · Score: 1

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

      That's a damn good analogy. Automatic transmission cars are easier to drive, but only if you want to drive the way the manufacturer intended you. If you try to do something a bit out of the ordinary (getting out of mud, towing, unusual gradients) then you hit trouble.

      Manual transmissions aren't that hard to learn, really, especially if you haven't gotten into the bad habit of driving an automatic. They give you more power and control over your driving, and that makes you a better, safer driver. People who learned on automatics IME make the worst drivers. I know a lot of people who drive automatics for convenience, but learned on manuals so they'd be better drivers.

      It's also the case that if you learn on an automatic, you're going to find it hard to learn to drive "properly" on a manual. In the UK at least, if you learn on an automatic then your driving license is invalid for manuals.

      In summary: Automatic drivers can't handle manuals without retraining. People who can drive manuals, whether they're driving manuals or automatics, tend to be better drivers. People drive manuals because they're mechanically simpler and hence more reliable, and because they give you more power and freedom over your own car.

      I've not come across a better Windows vs Linux analogy for some time...

  29. The absolute worst, however, by wiredog · · Score: 1

    are the Mac zealots. They make the most rabid Linux zealot look positively mellow. If you say one bad word about the Mac, regardless of how true it is, they mailbomb you. Which is why you don't see much coverage of Mac in the mainstream computer press. It's too much hassle. Not the Mac, the zealots.

    1. Re:The absolute worst, however, by Frubjub · · Score: 1

      Well, if I'd shelled out that much cash just for a computer, I'd probably also feel a little defensive if somebody questioned the wisdom of my decision :-) I must admit though, Apple does make some very slick products. I just don't have a designer apartment to put one in (you do need a designer apartment don't you? I'm sure the marketeers would like us to think so), so I'll just stick with my beige pc.

    2. Re:The absolute worst, however, by You're+All+Wrong · · Score: 1

      Mac users, sorry, Mac zealots, are _great_! They have a magic instant wind-up button that's sooo easy to press.

      I dearly love the POWER architecture, and so think the G5 is fantastic, and I foolishly boobed when asking a G5-owning friend to compile a Mac version of some of my code so that I could grab a benchmark, and be able to claim even greater portability of my code. My boob - to press the button.

      The _one_ button. Have you worked out which one that is yet?

      He hasn't spoken to me since!

      YAW.

      --
      Your head of state is a corrupt weasel, I hope you're happy.
    3. Re:The absolute worst, however, by zangdesign · · Score: 1

      My iBook looks quite nice on my folding conference table desk next to the pile of buggerall and the AMDWinbox. Designer apartment? Hardly.

      --
      To celebrate the occasion of my 1000th post, I will post no more forever on Slashdot. Goodbye.
    4. Re:The absolute worst, however, by IM6100 · · Score: 1

      WTF is a 'Designer apartment'???

      This isn't Ally McBeal. Why should we mince around being 'fashionable'??

      --
      A Good Intro to NetBS
    5. Re:The absolute worst, however, by kubrick · · Score: 1

      No, no, the worst are the Atari ST zealots.

      Given the number of Linux trolls writing for the trade press, though, you'd think there would be at least a few people prepared to diss the Mac for the ad views alone.

      --
      deus does not exist but if he does
  30. Marketing or not by Ludo.Sanders · · Score: 1

    Seems like things heading in the right direction in creating a more secure OS, and making it more business oriented.

    Lets hope they actually put there money where there mouth is. And not just say this to get some possitive news coverage

    --
    "It is not because no one sees the truth that it becomes a mistake" (Mahatma Gandhi)
  31. Re:can this guy actually code? by SenseiLeNoir · · Score: 1

    Both solutions are still too platform specific for my taste.

    I would complete it as an MVC product, hiring:
    - a competant DB designer to design a decent database
    - contract a DBA in enhance performance of said database
    - hire a competant programmer in the art of developing good business, and tast oriented objects.
    - a decent web designer/graphic designer to create the front end.

    If designed well, you will have a maintainable system, that can be accessed with a web browser, and good potential for easy code maintenance.

    --
    Have a nice day!
  32. Re:Non-ideological? Uh-huh. by djmurdoch · · Score: 1

    ...most Windows people I deal with are ... not willing to learn. God knows I've meant plenty of UNIX bigots ...

    Looks like a Freudian slip to me :-)

  33. Re:can this guy actually code? by radi0man · · Score: 1

    before ADSL it was a pain in the arse and using textual interfaces was fast and convenient.

    I still find I can work a lot faster with textual interface than I can with GUI interface, eventhough I have 2Mbit ADSL at home. A GUI still doesn't respond as fast as I'd like it to. It still feels a bit sluggish. Also, via a text interface I can access more programs faster than via a GUI.

    However, many people prefer GUI's because they have to think less about what they're doing and the availibity of bandwidth certainly improved things for them.

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

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

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

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

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

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

    1. Re:it's a "cultural difference"... by Anonymous Coward · · Score: 0

      "Windows programming is overwhelmingly done by people with little experience and skill" - that's flamebait if I've ever seen it.

    2. Re:it's a "cultural difference"... by Anonymous Coward · · Score: 0
      UNIX is obscure, unforgiving, and takes a long time to master.
      You haven't taken a look at the Windows API, have you?
    3. Re:it's a "cultural difference"... by Anonymous Coward · · Score: 0

      "Windows programming is overwhelmingly done by people with little experience and skill" - that's flamebait if I've ever seen it.

      Oh? You seriously want to argue that the hordes of VC++ and VB programmers are experienced and skilled programmers?

    4. Re:it's a "cultural difference"... by Anonymous Coward · · Score: 0
      You won't hear musicians complain either that a violin or a piano has a user interface that is "too complex"
      No, because modern violins and pianos are the product of hundreds of years of user interface design. Musicians frequently complained that earlier instruments were too complex, or didn't have certain features, and they refined the designs. Go to a museum for once in your life and look at early clarinets, for example. Likewise, UNIX is an early clarinet: complex, obscure, unforgiving and takes a long time to master. Windows is a more modern clarinet: simpler, easier to learn and forgiving without loss of power. MacOS is a flute: kinda the same, but you wouldn't use it in place of a clarinet ;)
    5. Re:it's a "cultural difference"... by Anonymous Coward · · Score: 0

      >Oh? You seriously want to argue that the hordes of VC++ and VB programmers are experienced and skilled programmers?

      Well, many of them are. You on the other hand are just an uninformed biggot.

      I program for Win32, *nix and MVS (z/OS) platforms. I've been a professional developer for 16 years specializing in cross-platform interop.

      So, according to you, when I swap GCC for VC (or yes, even the dreaded VB) then I immediatley become a clueless n00b?

      You moron!

    6. Re:it's a "cultural difference"... by Thomas+Miconi · · Score: 1

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

      Does that mean that Darl McBrag is the reincarnation of John Cage ?

      Thomas Miconi

    7. Re:it's a "cultural difference"... by Darth_Burrito · · Score: 1

      You seriously want to argue that the hordes of VC++ and VB programmers are experienced and skilled programmers?

      My first inclination was yes, but after thinking about it, I figured it wouldn't do any good to argue. Suffice to say, I know many good developers who spend most of their time working with VB/VC++. I used to work for one such chap who had a doctorate from MIT and founded his own company.

    8. Re:it's a "cultural difference"... by Anonymous Coward · · Score: 0
      Windows programming environments are the programming equivalent of prerecorded music, painting by numbers, or ready-to-serve meals.

      If you really believe this, then you simply don't know what you're talking about. While there exist programming environments for Windows that fit your description, there also exist programming environments for Windows that have every bit as much power and flexibility as the best Unix has to offer.

    9. Re:it's a "cultural difference"... by penguin7of9 · · Score: 1

      I used to work for one such chap who had a doctorate from MIT and founded his own company.

      Well, then he probably understand the difference between "all Windows programmers suck", which is what you seem to believe I said, and "Windows programming is overwhelmingly done by people with little experience and skill for people with little experience and skill", which is what I actually said. He would also know that you can't argue against my point by citing a few instances. Too bad that you don't understand the difference.

      VB/VC++'s stated goal is to make programming accessible to large numbers of people with limited skills and experience. And, in fact, all I'm saying is that it succeeded spectacularly in that goal. Now, what's your point?

    10. Re:it's a "cultural difference"... by spectecjr · · Score: 1

      VB/VC++'s stated goal is to make programming accessible to large numbers of people with limited skills and experience. And, in fact, all I'm saying is that it succeeded spectacularly in that goal. Now, what's your point?

      No, that's VB's stated goal. Unless you'd like to provide a reference?

      Being forced to manually edit make files does NOT a good software engineer make, not matter how pumped up and superior all that text editing might make you feel.

      --
      Coming soon - pyrogyra
    11. Re:it's a "cultural difference"... by penguin7of9 · · Score: 1

      No, that's VB's stated goal. Unless you'd like to provide a reference?

      Visual C++ is targeted at "all skill levels". Or are you asserting that Microsoft really is targeting Visual C++ only at advanced developers?

      Being forced to manually edit make files does NOT a good software engineer make

      No, but the ability to do great work with such primitive tools as make and gdb demonstrates that you are a skilled and experienced programmer.

      And if you have never acquired that skill, it strongly suggests that you really don't have that much experience because even in Windows programming, it comes up with regularity.

    12. Re:it's a "cultural difference"... by Darth_Burrito · · Score: 1

      Visual C++ is targeted at "all skill levels".

      The exact sentence is actually, "Developers of all skill levels will enjoy powerful features in Visual C++ .NET 2003." I haven't touched the VC++ stuff under .Net, but doing what little VC++ work I did was hellish compared to anything involving .Net. For example, I remember there being like half a zillion peculiarly named string classes: CComBSTR, BSTR, bstr_t. Having to screw around with safe arrays was equally annoying. The .net framework is much much more intuitive than VC++ ever was. It's a lot more like Java plus a few improvements.

      No, but the ability to do great work with such primitive tools as make and gdb demonstrates that you are a skilled and experienced programmer.

      How?

      And if you have never acquired that skill, it strongly suggests that you really don't have that much experience because even in Windows programming, it comes up with regularity.

      In two years of windows development working in VC++, VB, VBScript, C#, ASP, ASP.net, COM+, .net, I have never had to use make directly. Of course, that's not to say that windows doesn't have some pretty gruesome tools as well for things like dll hell, creating type libraries, idls and such.

    13. Re:it's a "cultural difference"... by spectecjr · · Score: 1

      Visual C++ is targeted at "all skill levels". Or are you asserting that Microsoft really is targeting Visual C++ only at advanced developers?

      Targetted at all skill levels does not mean "makes programming accessible to large numbers of people with limited experience", which was your original claim.

      They don't even claim it's targetted at that. They just say that "developers of all skill levels will [enjoy using it]".

      No, but the ability to do great work with such primitive tools as make and gdb demonstrates that you are a skilled and experienced programmer.


      Funny... I've never used make & gdb.

      I have, however, written programs in machine code, and debugged them by changing a set of bits on a single port to check where in the app it's stalling.

      Your definition of a "skilled" and "experienced" programmer is pretty lame. In fact, given that most 1st year CS students at a Unix-based campus will use Make and GDB to do their initial coding, when they might not have had any prior programming experience whatsoever kind of puts that stupid myth into place.

      Also, the ability to do great work with primitive tools when easier tools to use are available does not make you a 'better' programmer. It makes you the textbook definition of a masochist.

      If it's a choice between using vi, make and gdb vs. using Visual C++ with Visual Assist and drag & drop project file management, I'll take Visual C++ every time. And I've been programming since 1981, on more complicated systems than you. And my reputation as a highly skilled software engineer precedes me in many circles.

      --
      Coming soon - pyrogyra
    14. Re:it's a "cultural difference"... by penguin7of9 · · Score: 1

      The .net framework is much much more intuitive than VC++ ever was. It's a lot more like Java plus a few improvements.

      That's true but completely irrelevant to the point. Programming in VC++ may seem obscure and difficult to you, but it still provides a lot of handholding relative to UNIX-based C/C++ development, handholding that makes it possible for people with pretty limited C++ skills to attempt to tackle pretty complex tasks.

      In two years of windows development working in VC++, VB, VBScript, C#, ASP, ASP.net, COM+, .net, I have never had to use make directly.

      If that represents your entire time programming C++, you are making my point: you are a complete beginner as far as C++ programming is concerned.

    15. Re:it's a "cultural difference"... by penguin7of9 · · Score: 1

      Targetted at all skill levels does not mean "makes programming accessible to large numbers of people with limited experience" [lots more stuff deleted]

      No, but pointing at a product site doesn't mean that a single sentence supports the entire argument.

      In any case, I can assure you from personal experience that VC++ allows people with no understanding of the Windows libraries to put together complex GUI apps: I put together GUI apps in VC++ long before I understood the Windows libraries and toolkits, and so have many other people that I know.

      Also, the ability to do great work with primitive tools when easier tools to use are available does not make you a 'better' programmer. It makes you the textbook definition of a masochist.

      I disagree that VC++ is an "easier tool" in general. What VC++ is good at is handholding and user assistance, and the people who like VC++ and find it useful are people who like handholding and user assistance.

      And my reputation as a highly skilled software engineer precedes me in many circles.

      I'm sure that there are "many circles" in which the developers of Microsoft Word are held in high esteem.

      But let's return to the original point. Spolsky, in effect, claimed that Windows and UNIX are really just variations on a theme. And I'm saying that he is wrong: the differences between the systems are far more fundamental. Windows is a mass-market product, both as far as its users and its programmer community are concerned. UNIX is a specialty product, suitable really only for skilled users and developers. And, frankly, I hope that will not change.

    16. Re:it's a "cultural difference"... by spectecjr · · Score: 1

      In any case, I can assure you from personal experience that VC++ allows people with no understanding of the Windows libraries to put together complex GUI apps: I put together GUI apps in VC++ long before I understood the Windows libraries and toolkits, and so have many other people that I know.

      Were they as bad as your Unix code?

      disagree that VC++ is an "easier tool" in general. What VC++ is good at is handholding and user assistance, and the people who like VC++ and find it useful are people who like handholding and user assistance.

      Funny... the only time I use the wizards are when I need to generate a boilerplate project, or for a small hacky project used to test a specific small piece of functionality in a standalone manner.

      What was the last application you wrote, by the way? Mine controls scientific devices with network throttling, DSP analysis, generates a GUI and performs datalogging all in real-time. None of it was written using a wizard. All of it was written in Visual C++.

      I'm sure that there are "many circles" in which the developers of Microsoft Word are held in high esteem.

      There certainly are. Especially those circles in which people move who have attempted to write their own wordprocessor which handles unicode, bidirectional text, multiple languages, etc.

      Have you written a fully fledged wordprocessor? No? Why not? Surely a programmer with such cajones and amazing make-file editing skills such as yourself could toss one off over a weekend.

      But let's return to the original point.

      Because you're losing this argument? Or do you just fancy a change of pace?

      Spolsky, in effect, claimed that Windows and UNIX are really just variations on a theme. And I'm saying that he is wrong: the differences between the systems are far more fundamental. Windows is a mass-market product, both as far as its users and its programmer community are concerned. UNIX is a specialty product, suitable really only for skilled users and developers. And, frankly, I hope that will not change.

      Remind me to put that in the next Linux advertising campaign.

      "Linux - a speciality product, suitable really only for skilled users and developers".

      I'd actually say that the average Windows developer cares a lot more about their userbase, because they know that their users could be anyone.

      --
      Coming soon - pyrogyra
    17. Re:it's a "cultural difference"... by penguin7of9 · · Score: 1

      Mine controls scientific devices with network throttling, DSP analysis, generates a GUI and performs datalogging all in real-time.

      According to your web site, you are a physics major "with electronics specialization", a journalist, and you are now spending your time making films. There's no evidence on your site that you have done anything interesting in software other than a lot of Visual C++ hacking: no new software ideas, no computer science publications, no new algorithms, nothing.

      Sorry, but to me, you look just like the non-expert software developer that Visual C++ is aimed at. To me, you look like you are so far away from the kind of skill level represented by, say, the Bell Labs UNIX hackers or Microsoft systems researchers that you don't even understand what you are lacking.

      And don't complain that I looked at your background--you brought it up and tried to claim authority based on it.

      Remind me to put that in the next Linux advertising campaign.

      I was writing about UNIX, not Linux. Linux as a whole is trying to dumb itself down to be usable by mainstream folks, although fortunately, it still has a usable UNIX-like core.

      I'd actually say that the average Windows developer cares a lot more about their userbase, because they know that their users could be anyone.

      Yes, and what you don't get is that an application designed for "anyone" is often far from a good application for someone skilled.

  35. Kudos. by Anonymous Coward · · Score: 0

    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.

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

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

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

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

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

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

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

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

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

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

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

    --
    Is the juice worth the sqeeze?
    1. Re:both are, actually... by MegaHamsterX · · Score: 2, Informative

      The computer as a typical consumer uses it today will soon cease to exist. It's all going to be embedded devices, just like toasters, but like toasters they need to work everytime.

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

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

      Linux (or Unix)has never been the problem, it works the way it should, it can be hidden from the consumer completely, the problem has always been X, its inconsistancies are its problems, they will never be fixed, just another kludge added to the rest making it ever more complicated.

    2. Re:both are, actually... by Moraelin · · Score: 1

      Amen, brother. I really wish more people would understand what you say.

      --
      A polar bear is a cartesian bear after a coordinate transform.
    3. Re:both are, actually... by AJWM · · Score: 2, Insightful

      Precisely. Mod parent up.

      Unix's core value of writing programs for other programmers is precisely because, when the software is intended for the end user, the end user should never realize he's running Unix. The user shouldn't have to care what OS is running, it should just work, transparently. TiVo is an excellent example of this. Numerous point-of-sale systems are other examples. MacOS X for another -- although it makes its underlying Unix available to those that want it.

      Way back in the early days of the BIX (BYTE Information Exchange) conferencing system, when Jerry Pournelle would sometimes go off on a rant about how hard Unix was to use, I would gently remind him that he was actually using a Unix system to post that rant and read my response. (That he was later able to use the Windows-based "Galahad" front-end (one of several) to BIX is a testament to the worth of the Unix value of text interfaces. Try slapping a different GUI over top of one you don't like!)

      --
      -- Alastair
  37. Re:can this guy actually code? by Entrope · · Score: 3, Insightful

    I am not sure why people bother reading Joel Sporsky's weblog -- half of what he writes is tripe, and half is heavily biased by his ego. Someone else quoted Joel's jab at how "the Unix world is so full of self-righteous cultural superiority;" apparently he does not realize that he is an exemplar of the Windows version of the same.

    If I wanted to follow his lead and oversimplify the differences between Windows and Unix programmers, I would say that Unix programmers care about code (period) and Windows programmers care about the quick buck. Mr. Sporsky's crass and half-informed self-promotion is an excellent example. (Ever notice how often he plugs his company and software while griping about software development practices?) I have seen the insides and outsides of commercial applications for both Windows and Unix, and the quality under Unix is generally higher than under Windows.

  38. He said whatnow? by azaris · · Score: 1, Funny

    I put it forth that this "review-like article" is competely "domestic bovine excrement"-like.

    Here are some of the best/worst bits:

    ...a program that has done exactly what you told it to do successfully should provide no output whatsoever.

    Huh? What exactly is return code 0, then? Or syslog entries? And how do you distinguish between cases where the program output was correct and cases where the output was incorrect but the program was unable to decide this?

    By contrast, in the Windows culture, you're programming for Aunt Madge

    Funny that. What does Aunt Madge do with all the hundreds of complicated scientific/industrial/financial/simulation software packages that exist for Windows (as well as Unix)?

    Here again, we see that the Unix culture values creating code that is useful to other programmers, something which is rarely a goal in Windows programming.

    Huh? What does reusability and well-documented interfaces between modules have to do with the platform? Did ESR really write this crap or is the "reviewer" making it up as he goes along?

    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.

    I wonder which specific Windows programmer this sentence refers to. Hopefully one that's been fired for incompetence by now.

    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.

    And commercial Unixes are created with what goal again?

    Aunt Marge can't really use Unix

    Can't even keep the lame metaphors consistent.

    That's OK; he's not a Windows programmer; we'll forgive that.

    Huh? If somebody writes a book pretending to be an expert on something they're clearly not, I'd call that bornerline fraudulent and at least take any viewpoints offered with a huge mountain of salt.

    If the actual book is even half as bad as the review makes it out to be, maybe Eric S. Raymond should go back to writing the Nethack Guidebook. It probably has more insight on Windows software development.

  39. Maybe, Maybe not... by djbckr · · Score: 2, Informative
    We may be the exception, but our Windows program is written so that us developers can understand our code. Sure, our product is geared toward the end-user, but without solid code it would just fall apart.

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

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

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

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

    [...]

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

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

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

  41. Confession by telekon · · Score: 1
    OK, I'm a UNIX zealot. And a license bigot. I run Debian more for the "Code free or die" element than for APT. But I don't see the problem. Separating policy from method is smart. It doesn't mean you have to have messy GUIs, it means you have maximum flexibility. What it comes down to, is your vision for computing. Would you like to see everyone compute smarter? Or use computers only within the confines of limits set by Redmond?

    If people want a lowest-common denominator interface, all sorts of appliances are possible that aren't "computers." I built a Linux box for my mom that lets her check her email, surf the web, type stuff up and print it... it auto logs in to a GNOME desktop, pretty much all the apps are GTK2 based, she can even run apt-get to automatically upgrade her apps.

    Unix is just more flexible. Better. Smarter. Anybody who wants to do more than the most basic stuff in Windows has to make an effort to learn something. If the Redmond-software-hegemony wern't in place, I don't see the difficulty in learning Unix rather than Windows. The rewards are certainly far greater.

    --

    To understand recursion, you must first understand recursion.

  42. Crossing the Chasm by gargle · · Score: 4, Informative

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

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

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

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

    1. Re:Crossing the Chasm by swillden · · Score: 2, Funny

      needs complete, fully functional, headache-free solutions for their specific needs

      So they use Windows?????

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  43. Windows culture by Anonymous Coward · · Score: 0

    Windows has culture? Since when?

    1. Re:Windows culture by criscooil · · Score: 0
      Windows has culture?
      Yeah, like the kind they grow in those little glass dishes in the lab.
      --

      My life is an open book ... up to a point.

  44. Re:Binary libraries by DeadSea · · Score: 1
    My only foray into the Windows APIs was trying to write an installer for a printer. The printer could be installed using the add printer wizard but it required the user to browse for the driver, set up a network printer as a local printer connected to a mapped network port, and several other difficult or unintuitive settings (postscript vs pcl) that needed to be chosen correctly. The idea is that we would put an installer on the cd that would require one click to install the printer with the default options.

    The Windows APIs in that area are horrible. There are functions for enumerating installed printers, adding printers, and all the other things you might expect. However, none of the APIs are documented well enough to be usable. I found several instances in which the documentation was actually *wrong*. There were significant differences between the APIs for Win95 and win98 and then ever bigger differences for NT.

    All in all it was a nightmare and I would have killed for the source code for the add printer wizard. Even better if we could have just called the add printer wizard with bunch of command line options that answered all the questions that would have otherwise been asked of the user.

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

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

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

    --
    Causing Chaos Everywhere,
    Nik J.
    The strange world of a loner, in a populous city, drowning in society
    1. Re:Documentation??? by Anonymous Coward · · Score: 1, Insightful

      Give wodehouse some credit, he's been sneaky in his phrasing. MS Developer documents are indeed well written. They also happen to be wrong. My experience matches yours: MS documentation gives you the feeling that it must be your fault that things aren't working, because it's all written down right there! The fact that critical elements are both implicit and left out (typically other functions you must call first), is what makes it so devilish.

    2. Re:Documentation??? by Anonymous Coward · · Score: 1, Insightful

      Funny... it's the opposite for me in my experience. Usually, using 'man' doesn't help at all. Sure, it gives basically what you'd find in a header file function declaration but not anything more than that... like... where does that parameter called 'file_des' come from and how do I get one (just pulling something out of the air) to use. Many times, a simple 5 line snippet of code at the bottom of the man page (something that used to be in many man pages) would explain it all. This is a place where hyperlinks are nice. I usually end up looking in Google Groups and get better help from folks who are struggling like I am who get help from someone who knows. Word of mouth isn't effective documentation.

    3. Re:Documentation??? by KenSeymour · · Score: 1

      Some MS products and APIs have good documentation.
      Some MS products and APIs have bad documentation.

      The thing you are trying to do is to use a primarily visual program (VSS) in a scripted, batch mode way.
      It can be frustrating -- kind of like trying to build large Windows C++ programs using make instead of the IDE.
      It is a cultural divide.

      I and others have found the programmer documentation to be really good.

      In contrast, when using open source libraryies (GTK/GNOME), I often look something up and see "Would someone please write this?"

      Of course, to get the Windows programming documentation, you have to pay the MSDN subscription.
      If you, or your employer don't shell out money for the documentation, it might as well not exist.

      This is a YMMV area.

      --
      "We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
    4. Re:Documentation??? by Sigma+7 · · Score: 1
      Of course, to get the Windows programming documentation, you have to pay the MSDN subscription.


      IIRC, the MSDN documentation library was included in MSVC++ 6.0 - unless Microsoft has unbundled the documentation from their development environment, you can probably expect a copy in MS Studio .Net. (Not sure, so don't count on it.)

    5. Re:Documentation??? by KenSeymour · · Score: 1

      I think you are right. Even if it doesn't come on the CDs, I think Microsoft has been making it available as web pages for a while now.

      I have not programmed C++ against Windows APIs and COM interfaces in a few years, so I am not up to date.

      When you do it everyday, you learn how to sift through the available documentation.
      When you are just coming to Windows programming, it can be daunting to find the documentation.

      But I remember getting into a groove where you generally could find the documentation quickly.

      I was kind of bummed when I spent two years learning web development the Microsoft way only
      to have .NET come out and have all the job ads
      ask for it instead of the older VB/ASP.

      I skipped learning C# or .NET (by the time I got the experience, there would be .NET-PLUS)
      and I hope that doesn't lead to un-employment some day.

      To get back to my original statement, you could pay an MSDN subscription to keep ketting updated versions of the documentation on CD or DVD.
      But maybe you can get the same updated information free on the web.

      That way you can get the latested object methods for the latest ADO or what have you.

      --
      "We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
    6. Re:Documentation??? by Keeper · · Score: 1

      Of course, to get the Windows programming documentation, you have to pay the MSDN subscription.

      No, you don't.

      MSDN can be accessed for free via the web. The Win32 API Reference is probably the Win32 programmer's best friend.

      Though if you have to hunt for something on the site I recommend using Google. The MSDN search blows.

    7. Re:Documentation??? by Fnkmaster · · Score: 1
      My favorite example of this is the DirectX SDK. There's a lot of documentation, which is great, and it's all in one place. The annoying part are the insidious, minor, missing details and caveats that aren't documented, or that turn out to work slightly differently with different DX versions and/or different drivers on different PCs.


      Your observation about the _relationships_ and inter-function and state dependencies that are NOT DOCUMENTED at ALL in the DirectX API is right on target - that's the whole problem. They always tell you what one method does, but not that you can't call it until the system is in a particular state, that you get to by calling some other method, or what the side effects are supposed to be when something isn't supported properly.

  46. Re:to sum it up... mod parent down by Anonymous Coward · · Score: 0

    He's obviously never developed anything under *nix before.

    How can you say that UNIX development is like pig wrestling?

    What kind of development are you talking about? Kernel hacking? GUI development? Or are you referring to the programming tools?

    I hate programming under Windows. It's the worst thing I've ever done, and believe me, I've developed on many platforms, ranging from the Amiga to the Mac, Unix and Windows. The programming laugages (C/C++) are a-ok, but the fact that I have to do almost everything with the mouse drives me mad.

    Or, hey, MAYBE it's just a matter of taste? I'm a console-iac, you like GUI's.

    Don't say that stuff you dislike suck. Dislike but don't give the wrong impression to newbies. I never say that Windows (or windows programming) sucks, I simply say that I hate it because this and that.

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

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

    1. Re:I am clairvoyant, and I predict... by Junta · · Score: 0

      HAH! you were wrong.... that was not distant at all! It was duped in the past before you even posted your comment, so there!

      --
      XML is like violence. If it doesn't solve the problem, use more.
  48. Re:Mirror world by Azghoul · · Score: 1

    Gotta agree with you here. We don't need to go to Japan to get culture-shocked.

    I was in Wales for 6 months. Loved every minute of it. When it was time to go home, I couldn't wait to set foot on the nice wide straight streets, eat cheap burgers and hot dogs, and talk to people who call soccer soccer. :)

    Um, the beer was always better over there though.

  49. The "silence is golden" rule : Spolsky's error by moranar · · Score: 2, Insightful

    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
    1. Re:The "silence is golden" rule : Spolsky's error by Anonymous Coward · · Score: 0

      not to be flamebait, but i will anyway.

      you didn't read the article all the way through did you. The point the author made was that when you see the prompt again and no error you can deduce it completed successfully; hence it is silently completing.

      But like you are pointing out (which the author didn't do), when you do a gui you have to print a confirmation, because model of windows makes it so you don't know if the program crashed because the OS model may not be set up properly to catch the error that happened before the crash out. In this case you have to have a confirmation of successful completion or if the programmer is able to catch the error display that as well.

  50. Re:Binary libraries by jdreed1024 · · Score: 1
    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.

    It's not flamebait, but I don't think it's that true anymore. Several years ago, I would have agreed, but now all the MSDN pages and search engines seem like such a crappy mess that unless you know exactly the function you want, it's damn hard to find documentation for it. And MS' tendency to re-invent the wheel with every Windows release doesn't help people trying to use the APIs.

    --
    There is no sig, there is only Zuul.
  51. Re:can this guy actually code? by h00pla · · Score: 1
    Thanks for saying this. I have had this opinion for a long time. I keep asking myself every time his name is brought up here: How the hell did Joel Spolsky ever get this status he has? The last time everybody was talking about what a genius this guy is because he moved into new offices. Jeesh! Enough already about Joel!

    --
    I've been swashdotted -- Elmer Fudd
  52. UN*X vs. Windows by Anonymous Coward · · Score: 1, Interesting

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

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

    1. Re:UN*X vs. Windows by Anonymous Coward · · Score: 0

      old debate. it really isn't a competition.
      Correction. It is. Linux developers are altruistic and to prove this, they need a bad guy. Too bad Saddam has been captured.

  53. notepad by trick-knee · · Score: 2, Insightful

    > 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 zhenlin · · Score: 1

      It seems reversed. When you put a *nix programmer in front of a Windows machine, he will code using Notepad and invoke the compiler by command line.

      Windows programmers, on the other hand, immediately launch an IDE, pull up countless wizards to write hundreds of lines of (useless) template code and tinker with it from there, invoking the whole compile process with the push of a button.

      I should know. Once upon a time, I felt that an IDE was neccessary to write code. Since the Enlightenment (about a year ago), I write code using non-integrated tools. (Although sometimes, I get frustrated looking for the source file I want to edit... At which point I start using Anjuta, but only to edit.)

  54. Re:Binary libraries by AntiOrganic · · Score: 1

    Therein lies a fundamental part of the problem itself -- Microsoft's APIs are so entirely overcomplicated and nonintuitive that you need all kinds of API documentation. When I'm creating a simple Windows GUI application, I don't want to memorize 32 different properties of a WNDCLASS or WNDCLASSEX, and I don't want to pile half of my application's GUI code into an event loop. I think the UNIX "everything is a file" methodology combined with a self-describing signal/slot mechanism in the GUI toolkits means I shouldn't even need an API reference because I can do everything I need to with only a limited subset of standard C/C++ functions. Third-party libraries are, with few exceptions, equally simple. You can figure out how to do things in SDL, for example, by looking at the headers and function prototypes because they're self-explanatory -- no figuring out needless and cryptic DirectX COM calls and the like. If you remember what the function is called then you can easily recall how to use it. I don't get that ease-of-development on Windows systems, for certain, unless I'm using third-party toolkits like wxWindows.

    I do agree, however, that documentation is much more important than having full access to the source code for a particular API.

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

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

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

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

  56. Re:Non-ideological? Uh-huh. by Frubjub · · Score: 1
    most Windows people I deal with are ignorant of anything that doesn't come from Redmond, and not willing to learn.
    Most of the really rabid windows people I've met are kinda oldish, quite chuffed with having taught themselves all about computers a good couple years ago (when windows 3.1 for workgroups was the latest and greatest) and are now in a comfort zone/mangerial position, with no real motivation to learn anything new. I remember an editorial in an electronics magazine (EW&WW iirc) from about then, rambling on about how unix is a conspiracy on the part of IT departments, 'coz if everybody just used win3.1, you wouldn't need knowledgable unix people to admin all the boxes. Plus ca change, plus c'est la meme chose. (The more it changes, the more it stays the same, for those who can't read french)
  57. Haughtyness by xdroop · · Score: 3, Interesting
    This haughtiness-from-a-position-of-weakness is the biggest flaw of The Art of UNIX Programming (...)

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

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

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

    --
    you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
    1. Re:Haughtyness by Anonymous Coward · · Score: 0

      You might want to dig through his archives, I think he's got something on the decisions behind Registry there. Keep in mind that Word used 'elegant' INI files at one time, and there was some Good Reason(tm) to move to a database approach.

    2. Re:Haughtyness by Anonymous Coward · · Score: 0

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

      You know, I had a similar thought when reading this reply. Mr xdroop brings up a few of the points that Mr Spolski tries to make, but dismisses them out of hand (in his unix-centric view) with the very arrogance that Mr Spolski describes. So we use the Evil Registry instead of Elegant .rc Files because we want to sell millions of copies of our word processor? Why? Because that's the way it's done on the majority of the millions of computers out there so that's the way it's done on those computers. Do it the standard, consistent way to make it easier for the end-users was the point. Clearly not something that he even considered (in his unix-centric view).

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

    3. Re:Haughtyness by xdroop · · Score: 1
      Mr xdroop

      Mr xdroop is my dad.

      Because that's the way it's done on the majority of the millions of computers out there so that's the way it's done on those computers. Do it the standard, consistent way to make it easier for the end-users was the point.

      Brilliant, and conceeded on the face of the argument. However, in detail this argument doesn't wash -- you can't seriously tell me that the storage of configuration options and settings is a serious impediment to construction of user applications. Consistancy where the user is expected to interface with the application is good; unneccesary obfusication of administration-specific data is not, especially when those settings are encapsulated in a data format exposed to corruption.

      Yes, consistancy is good. But simplicity is also good.

      --
      you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
  58. Re:The real reason behind "silence is golden" by Ripplet · · Score: 1
    displaying ... 20 characters (plus the newline) ... would take about a couple of seconds to display, while displaying nothing would be 20 times faster

    Surely displaying nothing takes no time at all, and is therefore *infinitely* faster.
    Hey we finally proved it, Unix is infinitely faster than Windows, yay!

    --

    Skiing? Check out The Independant Skiers Portal

  59. Re:Binary libraries/Documentation by mordejai · · Score: 0

    Even though Microsoft documentation is excellent, I've find LOTS of situations where the behavior isn't clear, and I have to decompile the .NET libraries (using Reflector) to get it right.
    For example: The documentation for CollectionBase.IList.Remove(object) doesn't say what happens if the value isn't in the collection: ignore or throw an exception (it throws an exception; that sucks).

  60. My Conversation with Eric Raymond by Ilan+Volow · · Score: 4, Interesting
    About 9 months ago, Eric Raymond came to speak at my LUG. No matter what else I think of him, he's really intersting and a really good speaker. I wouldn't for a moment knock his entertainment value, no matter what else I might have to say about the guy.

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

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

    His response: "then they're wrong."

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

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

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

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

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

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

      So the better way is to design the GUI first (maybe by stupid marketing people or something) and then try to make the backend that it fits, even if thats going to lock you into crappy concepts for decades because of thinks you didn't think of when writing the GUI? As it happened often enough to M$?

      Or could you maybe give an example what that should be:
      "But what if so much code has already been written that no programmer wants to go back and make all the changes necessary to make it really work?"

      Can't imagine that.

      --
      Unix makes easy tasks hard and hard tasks possible. Windows makes easy tasks easy and hard tasks $29.95.
    2. Re:My Conversation with Eric Raymond by Anonymous Coward · · Score: 0

      It may sound strange to you, but ESR is right even from POV of windows programmer.

      1) at first, you decide what problem you are going to solve (or: what data are you going to process)

      2) then, you decide how the user is going to control your program (how GUI will look like).

      Of course, you do both things before writing a single line of code.

      You do your app design first, so you will know what will the core do and what will the GUI do. If there was some mistake (something you didn't think of) - and there will be mistakes - they should be corrected. If you have to rewrite lot of code, it means you didn't properly define interfaces in your program. You would run into problems anyway and bad GUI would be least of your worries.

    3. Re:My Conversation with Eric Raymond by Daniel · · Score: 3, Insightful

      Or could you maybe give an example what that should be:
      "But what if so much code has already been written that no programmer wants to go back and make all the changes necessary to make it really work?"


      I can give you one. The APT library (the backend to Debian's apt tools) uses a built-in download manager to fetch packages and other files. So far so good.

      Now, say I'm in the middle of a long download, and I decide I changed my mind about some packages. For instance, I want to install some packages I hadn't thought of or cancel some downloads. There is no way to do this in any interface without cancelling the whole download and setting it up again, and that's because the backend library does not support this functionality. You can access the list of individual download jobs, but there's no way to cross-reference between jobs and the packages to which they refer (aside from decoding URIs to guess what the package is).

      I asked the authors about this, and they said (essentially) that they didn't want to go back and make all the changes. This is probably reasonable -- it's a fairly esoteric feature and could be a pain to get working perfectly -- but it is one example of a place where the backend can limit the frontend.

      I do find it amusing, though, that the author of the article just implicitly assumes that the reverse is not true: ie, that designing the frontend first will never result in arbitrary limitations for the backend.

      Daniel

      --
      Hurry up and jump on the individualist bandwagon!
    4. Re:My Conversation with Eric Raymond by Anonymous Coward · · Score: 0

      ESR does not speak for the OSS community as a whole, and no one really can. He is a pretty good programmer, and really eclecticism (he has much code in C, Python, and emacs lisp, that I know of), but he's mostly a toolsmith: he writes tools for programmers, or backend type programs like fetchmail.

      He's also often brusque, opinionated, narrow minded, and downright immature at times. He's a perfectly human geek, that's all. I can't think of anyone in technical professional fields who isn't like that at some time or another. ESR is a command-line programmer, very much "stuck" (and I would say by choice) in the command-line world. It may even be that he's typical of a large population of unix programmers. But I'm not sure you really can say he's a product of unix culture any more than he's just a product of programmer culture who happened to gravitate toward a platform that supported his particular fancies.

    5. Re:My Conversation with Eric Raymond by An+Onerous+Coward · · Score: 1

      It's no surprise that "usability experts" would want everyone to spend all their time designing the GUI. But no amount of GUI makeup is going to cover up a program where the design itself is broken. It also seems likely that a GUI-agnostic design is going to have a much more flexible, extensible, and portable mindset.

      Having said that, there are problems with only thinking about the end user after the heavy lifting has been done. Internationalization support, for example. But all in all, it seems that as long as you're writing with the knowledge that a GUI interface will be bolted onto your application, it's best not to have any preconceptions about what that interface will be like.

      But I'm curious: what sort of HCI problems does this design mindset raise?

      --

      You want the truthiness? You can't handle the truthiness!

    6. Re:My Conversation with Eric Raymond by Anonymous Coward · · Score: 2, Interesting

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

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

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

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

    7. Re:My Conversation with Eric Raymond by Godeke · · Score: 2, Insightful

      This comment is just silly... point #2 is totaly unrelated to his prior comments as many open source projects are *not* command line oriented. If you think FOSS somehow equals command line, you have not explored very far.

      Point #1 may be valid for your speaker, but most of the open source tools I work with are web based PHP projects. Surely you are not claiming that Open Office is "desktopically (making up words is fun!) bankrupt", and the result of "BOFH" mindsets. Or Gnome and KDE exist because all FOSS creaters hate GUIs.

      If you are going to troll by creating a straw man argument, at least attack one that is credible.

      --
      Sig under construction since 1998.
    8. Re:My Conversation with Eric Raymond by GooberToo · · Score: 1

      This is completely off topic. This really boils down to, ensuring you have strong requirements defined before you build anything. Apply your broken analysis to the front end and then you have to redesign the GUI & redesign the backend. It's a matter of ensure you have proper requirements. In your case, seems no one could care less about your desire. I know I sure don't. Seems the developer's couldn't either. Seems, even in hind sight, your desire was still rejected as being a requirement. Damning others because you've come up with a requirement that no one else needs or even wants, hardly hammers your point home.

      Properly done, *REQUIREMENTS* are always the first thing done. After words, you are free to start working on the backend. The front-end doesn't matter. If you finish the front-end and there are problems, that means you messed up on your requirements. That doesn't mean the back-end is wrong. It doesn't mean the front-end is right. It means someone screwed up early into the project where it mattered the most.

    9. Re:My Conversation with Eric Raymond by irix · · Score: 1

      Nice strawman.

      it is unbelievably disturbing that people like this are placed in charge of leading efforts to make alternatives to windows for non-technical users

      ESR isn't in charge of anything of the sort - this is just his opinion on the matter. If anyone is "in charge" of anything, it might be the people running KDE and Gnome. Did you bother to get their opinions on the matter before making your sweeping generalization?

      The concept of freely distributable and modifiable code must be seperated from the concept of The Unix Way

      Go check up on the number of successful open source Windows on sourceforge and get back to me.

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

      Ever heard of model-view-controller? Those mysterious un-named "experts" are wrong. You can and should design the model before the view/controller. Otherwise your GUI will be built on top of junk.

      --

      Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
    10. Re:My Conversation with Eric Raymond by dustman · · Score: 1

      I do find it amusing, though, that the author of the article just implicitly assumes that the reverse is not true: ie, that designing the frontend first will never result in arbitrary limitations for the backend.

      Well, I think that, in most cases at least, this is true. Especially when you consider a good separation between the backend and the frontend.

      Consider your APT example: apt has its command line utilities, and also some gui frontends for these utilities.

      Now, I have not used any of the apt guis. (I use linux machines rather often, and debian is my favorite dist, but I use windows machines for gui workstations)...

      But, a quick look at the apt-get options: I would not be surprised at all to discover that the gui frontends do not support the -c= (read this config file) or -o= (set aribtrary config option) features. Even if the gui tools do support these, there will be some features in the apt tools that gui tools don't support, I bet.

      Now, even if the frontend had been designed first, it would not be a problem to add these features to the backend afterwards.

      I would say that it is very rare that the frontend imposes arbitrary limitiations on the backend. The only conceivable thing I could think of is the app being poorly designed, maybe as a result of considering only what the frontend functionality will be. (But, this is not to say that a frontend impedes the backend).

      The reverse is true, even from your own example: Changing your mind about the package set, while the download is occuring, might make sense in a frontend gui. (In particular, you never want your gui to be "dead" to user input, etc)... But this is something that you really wouldn't consider when designing a command-line interface.

      So in this case, the backend has maybe impeded the frontend.

      (I don't think it's that big an issue, because you can cancel the apt-get, and redo a different package selection, and it will pick up the downloads where it left off)

    11. Re:My Conversation with Eric Raymond by SuiteSisterMary · · Score: 1

      No, the better way is to do an end-user needs analysis, design a GUI that accomplishes what the end users need to do, then go from there.

      Case in point; one of my old companies had a web-based app for phone monkies to use. Simple, elegant, let them get their jobs done. They did a drastic redesign, redid the system in client side java, designed the whole thing based around the back-end database schema. Never asked a single actual user about how they did their jobs.

      Next thing you know, you've got, instead of a perfect 'workflow' model, a crazy Wizard style, multiple possible view, need to pull down menus and jump around just to input a logical progression of 'a', 'b', 'c' style data.

      Call times went from being measured in tens of seconds, to minutes. Strictly because the agents could no longer enter data efficiently.

      --
      Vintage computer games and RPG books available. Email me if you're interested.
    12. Re:My Conversation with Eric Raymond by hlee · · Score: 1

      This problem is not intrinsic to the UNIX community. We're predominantly a Windows shop (but have recently started porting to UNIX) where everything is driven from the backend APIs. I have reams of anecdotal evidence that this sort of process, while it does work, is sub-par. Here's a quote from one of our lead engineers:

      "... I would estimate that we spent several months working on issues that were caused by situations where the underlying [object model] was differnt to the object model that was shown to the user."

      My suggestion to flip the process around (i.e. start from user oriented use-cases like the GUI) was rebuffed - the real reason being that the balance of power would shift to a different set of individuals, not to mention a degree of apathy (its how we've always done it, why change?). I haven't quite given up yet - and hope in the end technical merit and common sense will prevail...

    13. Re:My Conversation with Eric Raymond by Anonymous Coward · · Score: 0

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

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


      Optimally, there shouldn't be any such code. If you don't plan to come back and make changes to your code, no matter what order you write it in, you will have problems.

      So yes, this would present a problem, but the problem has its roots in somewhat inexperienced programmers. If they're willing to go in and fix things anyway, they will gain experience.

    14. Re:My Conversation with Eric Raymond by fiftyfly · · Score: 1

      mmmm - given the choice between broken & hard to use, I'll take hard to use. This only get more true if I can't fix 'broken' - I can always learn. It amazes me that even people who understand the importance of, say, normalized db structures can't seem to grasp the idea of 'normalizing' an interface model.

      --
      "Sanity is not statistical", George Orwell, "1984"
    15. Re:My Conversation with Eric Raymond by Anonymous Coward · · Score: 0

      Properly done, *REQUIREMENTS* are always the first thing done.

      Except in the real world, most of the time the customer doesn't know what he wants until you can show something and have them go "no, no, what it really should do is..."

      Ever-changing requirements are the reason the waterfall model of software development just doesn't work as well as it should.

    16. Re:My Conversation with Eric Raymond by IronTomFlint · · Score: 1
      There's no way you are going to get that sort of business user feedback from a set of class diagrams or commandline switches. It requires some sort of whiteboarding or "prototype".

      But you wouldn't be presenting them a set of command line switches all by itself. You'd be presenting something more like:

      "Here's what you get if you add this switch:"

      blah bleh blih bloh bluh

      So then your user looks at the output and says he needs a way to get output that looks like xyz instead. So instead of looking at a dopey form, he's looking at the data that he's actually interested in when telling you what he needs.

      --
      Arrr!
    17. Re:My Conversation with Eric Raymond by happyDave · · Score: 1

      Agreed, but

      "and it is unbelievably disturbing that people like this are placed in charge of leading efforts..."

      They aren't placed in charge. They assume leadership, either through their own inititative, or by default by being the most active, the most vocal, and, for whatever reason, the most well-known.

    18. Re:My Conversation with Eric Raymond by Anonymous Coward · · Score: 0

      The point is that the user probably won't tell you that My data should look like xyz. But he will tell you that There should be a button that makes my data look like xyz. You probably won't hear that unless you put it terms that the user can conceptualize (a GUI mockup).

      BTW, this is really basic stuff that the industry has been doing for 25 years. Sometimes I think that most programmers are so insulated by layers and layers of Project Managers and Business Analysts that they think requirements come down like manna from heaven or something. Someone, somewhere is translating this stuff for you guys.

    19. Re:My Conversation with Eric Raymond by IronTomFlint · · Score: 1
      The point is that the user probably won't tell you that My data should look like xyz. But he will tell you that There should be a button that makes my data look like xyz.

      Yes, that's fine if you're talking about a GUI app. But you (presumably you, since it was an AC) said the following:

      About 50% of the time the users will say "There should be a button there, and when you press it, [blah blah blah] happens". And it turns out that [blah blah blah] is significant functionality that requires a very different back-end design that I was envisioning.

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

      My response is that if you're developing a CLI app, there's no way on this earth that you'd just present the user a list of switches apart from some demonstration or explanation of what they do. The "prototype" is sample/simulated output that demonstrates what each switch does, and you most certainly can get useful feedback from this.

      You suggest that a GUI mockup is a way to "put it in terms that the user can conceptualize". Fine. But it's not the only way to do it. Seeing sample/simulated *results* likewise puts it in terms the user can understand - and arguably does so much more intelligently than a GUI.

      I'm not challenging the validity of what you're doing. I'm not necessarily even championing the CLI over the GUI. I'm challenging the validity of your statement that you can't get good user feedback when prototyping a command-line app. You can; it's just a question of what you present to them for purposes of obtaining feedback.

      --
      Arrr!
  61. Wanna see Unix on the Desktop? by dacap · · Score: 3, Interesting

    The cultural values approach produces some interesting insights.

    The obvious stuff:

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

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

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

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

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

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

    My conclusions:

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

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

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

    What say you, technical literati?

    --
    English -- gotta love it! / The engineers refuse to refuse the rocket until the refuse is removed from the launch pad.
  62. half right by ciaran_o_riordan · · Score: 1

    Disclaimer: I am certainly not an ESR fan, but this post is factual, not flamebait. If it was flamebait, I'd mention another TLA person :-)

    > ESR, a vocal libertarian

    No. He's a "vocal OpenSource advocate".

    In his words, talk of freedom is "ideological tub-thumping", and OpenSource is simply a superior method for software development.

    (I wish he was a libertarian, but this doesn't make it true.)

    1. Re:half right by LordBodak · · Score: 1

      No, he's a vocal libertarian. Try reading his web page.

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

    *cragen

  64. Re:Bubbling frustration by Anonymous Coward · · Score: 0
    And your point is?

    Everyone who thinks having a pretty GUI is more important than having your data processed correctly deserves the quality he gets behind those green buttons on blue taskbars.

  65. Re:Bubbling frustration by AbbyNormal · · Score: 1

    What if a non-experienced user needs to run your scripts? People are use to GUIs for performing tasks, not the command line.

    --
    Sig it.
  66. Where's the sequel? by biljir · · Score: 3, Interesting

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

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

    1. Re:Where's the sequel? by Anonymous Coward · · Score: 0

      I know exactly where you're coming from.

      I develop a lot of cross-platform stuff on MVS, *nix and Windows.

      Each camp has their own collection of biggots and pragamtists.

      In my experience, the *nix crowd are the biggest biggots by a mile - even though they knowledge base is often very narrow and specialized (e.g. they work on Solaris so HATE the AIX crowd, or they work with Oracle and HATE the DB2 crowd, or they write Perl and HATE the C++ guys).

      There's a lot of unfounded elitism in the *nix world and a lot of HATE that just goes round and around.

      Of course, the IBM and Windows crowd have their share biggots too. It's all so pointless and unproductive.

  67. Re:Binary libraries by Anonymous Coward · · Score: 0

    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.

    The combination of both, well-written API documentation and source code, makes your life even easier. Sure it's much more convinient to write the code when you have a nice API reference handy but when you actually have to make it work, up to date source code is a must.

    All software has bugs -- and every now and then they bite you. When they do, I prefer to have the source available so I can narrow down the problem, fix it (or work around it), and continue working on what I am actually getting paid for instead of waiting for my support request to go through the vendor's support pipeline.

    So, if I have to make a choice between clear API documentation and source code, I always prefer the latter.

  68. Re:Binary libraries by nathanh · · Score: 1
    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 it's easier again if you have both.

    Especially when you're chasing an elusive memory leak. No source code = debugging hell.

  69. such a narrow perspective by markandrew · · Score: 0

    you're missing the point here i think. the relative complexity of programming on each platform is irrelevant to everyone in the entire world, except programmers. people *want* simplicity, and for good reason - the whole reason why ready-to-serve meals sell well is because of convenience, and that's the same reason windows sells. not because it's better or faster or nicer or whatever, it's simply more convenient, and that's what people want. give the customer what they want - ever heard of that?

    and your analogy is misleading: people don't learn to play the violin because playing the violin is complex, they play it because it sounds nice. likewise people use windows not because it's powerful or complex but because it does what they want it to do conveniently. people use *nix because it does what they want it to do, conveniently - even if that is learning about programming or networks or just using the GIMP and OpenOffice.

    The culture difference comes from why these products exist. Windows is a commercial product designed to attract paying customers, and is therefore (perceived as) useful to a mass market, and convenient. Unix was designed as a functional tool to get things done, so it appeals to functional types (ie engineers of various descriptions) and excels in getting things done. As long as those two groups of people don't overlap too much - and i can't see it happening anytime soon - these two products will be dissimilar and the subjects of these debates.

    I use linux and solaris because it does what i want it to do: i can use it to productively manipulate databases, communicate over networks, learn more about programming etc. i dislike windows' instability, unresponsiveness, lack of security and proprietary nature, but i still use it on occasion when i want to do mass-market things, like play games. and i recognise that for it's market, windows is better than unix is for the same market. yes, better. likewise, unix is better for it's own market.

    to use your example, no matter how much you tell me that cooking with fresh ingredients in a good oven will make my meal taste better, if i'm walking past a supermarket and need something i can eat in the next 3 minutes i'm going to buy a sandwich. which one is better depends entirely on the user and their circumstances. and i for one am not sold on bringing linux to the masses as a replacement for windows; if the cooking starts tasting bland and the available ingredients disappear to make it more like a sandwich, and the sandwich suddenly needs cooking in an oven so that you can customise it and make sure it's safe to eat... maybe i'll forget the cooking AND the sandwich and just find an apple tree somewhere. if that pisses off the chefs and the shop-keepers, well tough

    1. Re:such a narrow perspective by penguin7of9 · · Score: 0, Flamebait

      you're missing the point here i think. the relative complexity of programming on each platform is irrelevant to everyone in the entire world, except programmers. people *want* simplicity, and for good reason

      UNIX is complex in the sense a musical instrument is complex: there is a lot you can do with it.

      Windows is complex in the sense that a Rube Goldberg machine is complex: it has lots of strings, wheels, water buckets, and cats.

      the whole reason why ready-to-serve meals sell well is because of convenience, and that's the same reason windows sells. not because it's better or faster or nicer or whatever, it's simply more convenient, and that's what people want. give the customer what they want - ever heard of that?

      Of course. And did I ever say Windows should go away? Just like fast food, I think it's unavoidable that something like Windows exists, and it's good because it makes the masses happy.

      What I disagree with is Spolky's assertion that UNIX and Windows are somehow pretty similar and that they just have some superficial cultural differences.

      and your analogy is misleading: people don't learn to play the violin because playing the violin is complex, they play it because it sounds nice.

      My point exactly: people accept that the violin is hard to learn because, for a skilled musician, the violin is a good instrument, while a CD player isn't.

      if that pisses off the chefs and the shop-keepers, well tough

      The only people who seemed "pissed off" are some Windows developers who apparently can't accept that the really good stuff happens on other platforms and is done by other people. Come on, guys, be happy that you have a job and are making money. Your software equivalent of fast food joints are raking in big bucks. But don't try to pass off Chicken McNuggets as a gourmet meal.

      The UNIX crowd (=chefs), on the other hand, really doesn't care what Windows people think of UNIX because the UNIX crowd already knows what's better and who is more skilled. They don't care, that is, as long as the Windows crowd doesn't insult them by saying that, deep down, Windows and UNIX are really just the same.

    2. Re:such a narrow perspective by Anonymous Coward · · Score: 0
      The only people who seemed "pissed off" are some Windows developers who apparently can't accept that the really good stuff happens on other platforms and is done by other people. Come on, guys, be happy that you have a job and are making money. Your software equivalent of fast food joints are raking in big bucks. But don't try to pass off Chicken McNuggets as a gourmet meal.

      Jeezus! You're one arrogant SOB.

      The very people who cannot accept that anything good happens on other platforms are the UNIX biggots!

      Some of the most useful, productive and sublime applications I have ever used happen to run on Windows (ok, some of them also run on MacOS and even on *nix). "The OS and PLATFORM do not dictate the USEFULNESS of the APPLICATION" And for Chrisakes get a life!

    3. Re:such a narrow perspective by penguin7of9 · · Score: 1

      The very people who cannot accept that anything good happens on other platforms are the UNIX biggots!

      UNIX bigots are happy to admit that there are plenty of other, interesting non-UNIX platforms. Windows just isn't one of them.

      Some of the most useful, productive and sublime applications I have ever used happen to run on Windows

      I have yet to see any application on Windows that was "useful, productive, and sublime" that wasn't a copy of something developed on some other platform. There probably are a few good original applications on Windows (there is a lot of software for it, after all, it's bound to happen occasionally), but they clearly are quite rare and obscure among the junk Windows developers grind out day-to-day.

      "The OS and PLATFORM do not dictate the USEFULNESS of the APPLICATION"

      That attitude sums up one of the key problems with Windows: its developers treat it like a glorified program loader. For UNIX users, the OS is the application.

      Jeezus! You're one arrogant SOB.

      Windows has 90% of the market, and every grandma and child runs it. But you aren't satisfied with commercial, mainstream success, you also want it to be viewed as an elegant and well-designed operating system. Windows is successful because it is mainstream and unimaginative, and that's just as it should be. If you are a Windows developer or Microsoft employee, be satisfied with the commercial success that Windows has and stop trying to claim the entire world as yours. Stop being such a goddamned Borg.

  70. Re:Without realizing it... by Anonymous Coward · · Score: 0

    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

    And what's stopping you doing the same in Windows?

    I would submit that this is actually a trust issue - you place higher trust on things you know. Those who spend more time in *nix trust that more; those who spend more time in Windows trust that more. It is human nature to distrust the unknown, and to be comfortable with the familiar. (Or resigned to it in the case of the BSoD.)

    In the marketing stakes, Microsoft has won (for the time being), bringing with it familiarity to all the users of Windows. To get people to change requires good enough reasons to overturn the status quo and its inertia. (*nix is more secure? Yes, maybe, but Windows patches itself every month to fix things. Windows is susceptible to more viral agents? Yes, maybe, but my antivirus software updates itself. *nix is cheaper? Yes, maybe, but I already know Windows so don't mind paying a little more to get going faster. The latest game I want is only available for Windows? Yes, probably true.)

    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.

    And sadly, some of those are just an indication that the widget, bar or icon is moving, without any reference to or knowledge of what state Windows or the application are actually in.

    [Note: not trolling - just pointing out some perceptions. Mod at will.]

  71. Re:Mirror world by Savage-Rabbit · · Score: 1

    I can understand that, for me the feeling out of place as a European in the USA was walking out of the airport terminal , taking a taxi donwtown, and seeing a bunch of african americans drive by in a big brightly painted pickup with some of the loudest rap music I ever heard blasting out of a couple of 1.5m high speakers in the back. You can walk out of any airport terminal in Europe but you will never see anything that colorful .... except maybe in the Balkans but they use tanks instead of pickups.

    --
    Only to idiots, are orders laws.
    -- Henning von Tresckow
  72. Documentation vs Slim to none by Chanc_Gorkon · · Score: 3, Insightful

    I just had a Windows programmer/sysadmin type tell me that all he does is play with the program in question until he figures out how it works. He told me that help files are useless. I on the other hand live by the documentation and everything better damn well be documented or I ain't trying it.....not on my production system. I don't mean the easy stuff either. the more touchy something is, the more I want to read befor I attempt it. Man pages can and do suck, but everyone I have come across pointed me in the right direction. Windows likes to hide things even from the programmer. I don't think thats a correct way even if your writing a program focusing on the end user. If something goes wrong, how do you track it down?

    The registry would not be as bad as it is if it was better documented. I know I know....if you subscribe to MSDN or some other microsoft money scheme, you can read the documentation. Well, users should have access to that if they so want.

    Things like this is why OS/X does well on both fronts. You don't HAVE to look at the commandline ever if your just using it. If you want to write a little script or automate something, the command line is there if you need it. Microsoft on the other hand went so far as to say that Windows ME had no access to the DOS prompt, yet with in a minute of installing it, I had a DOS prompt.

    I happen also to disagree with this guy that UNIX programmers typically write a command line program first. Some do, but I have seen others which are useless without a GUI program.

    Commandline is valued because you can take different command line programs and pipe it here, append to a file there and have a script or program that does what the original writers of each module never dreamed. There's something to be said for that!

    Just one tiny example where the UNIX way ends up being better for users:

    The gpsd project is a project that takes the gps data collected by a serial port and makes it availble not just to apps running on the local machine, but also across a network. The advantage is that if you have programs wrote to work with gpsd, you can use MULTIPLE map programs at the same time each showing your current position. You don't have to juggle the serial port between 2-3 programs if you use one map program because of one reason and another map program for another reason. This has not even been dreamt of yet on Windows and the only way to accomplish it on Windows is using 2 GPS's each on their own serial port. To make the data available to any application that want/needs it, you just configure the daemon to look at the serial port your GPS is connected to and then other programs can get the data from the daemon instead of the serial port.

    UNIX programmers program to work around limitations in the platform and are able to make the platform do what they want to do. Windows programmers will just say that it's not possible or Microsoft does not support it. UNIX programmers say: Nonsense! You are a programmer right? Then write a program or API that does what you want. Some say that this is a weakness, but I say it's a strength that makes UNIX a tool that actually makes it easy to make it do what you want. Some users don't want or need this kind of power, so they are happy with Windows. The ones that need it turn to Linux or UNIX.

    --

    Gorkman

  73. Re:Non-ideological? Uh-huh. by AbbyNormal · · Score: 0

    Don't really know if that was a troll or not, but eh..Why not.

    In my past two companies, I have work on several R&D projects that exclusively use Windows. When it comes down to money, speed, and effeciency, we are indifferent to what Microsoft says for us to upgrade etc. We use Windows to get the job done, period. I am actually the only Open Source advocate, but I only advocate when I can prove that an Open Source project is faster/more effecient than our current proprietary one. I have worked with several other teams within other companies that have the same ideology.

    --
    Sig it.
  74. Re:Non-ideological? Uh-huh. by Darth_Burrito · · Score: 0, Flamebait

    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.


    People can be solution-oriented and non-ideological without being willing to learn an entirely new set of platforms and skills. Often being solution oriented implies you will be building off of existing knowledge and not starting from scratch in an entirely alien platform. I believe the difference that Sposky is trying to hit upon is that Windows programmers don't hate or belittle Unix programmers whilst the Unix culture tends to be ripe with bigotry. That said, die emacs die. Vi forever. Ah, screw em both, I want an IDE.

  75. Re:Bubbling frustration by WhiteDragon · · Score: 1


    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.

    mod parent up. This is the fundamental core of the cultural divide. It is not even necessarily about stdin and stdout (though usually it is) on Unix, but it is definitely about getting data in, doing something interesting/useful with the data, and sending it on, whether that be to a socket, or stdout, or to a file (of course, the "Everything's a file" paradigm makes this easy from a programmer's standpoint, because all of these are essentially the same thing). And you're right, the GUI seems to be something that has been tacked on afterwards, in the *nix world.
    --
    Did you mount a military-grade, variable-focus MASER on an unlicensed artificial intelligence?
  76. Re:to sum it up... mod parent down by Anonymous Coward · · Score: 0

    Bah!

    You can do Windows programming using vi or emacs if you want to, and compile at the command line.

    If you'd rather do that than use VS then you're insane. Maybe you could wear a hair shirt too, just to enhance the effect.

  77. *nix bears a double burden that MUST be dealt with by DoraLives · · Score: 3, Insightful
    Until some "benevolent dictator" comes along and FORCES ALL *nix's to look and act sufficiently similar to an end user of average or even less than average intelligence, *nix will be going more or less nowhere in the grand scheme of things.

    Is this bad enough news? No.

    Furthermore, until the same "benevolent dictator" FORCES ALL *nix to employ the use of focus groups, user feedback, and other methods of optimising the UI to suit the needs and wants of the AVERAGE JOE, ALL *nix will continue to suffer a host of maladies from merely looking clunky up to and including full incomprehensibility to the guy we're trying to promote this stuff to.

    Apple came a gnat's whisker from pulling this double burden off, but because they run a MORE EXPENSIVE machine that is NOT COMPATABLE with the Great Shoal of Computers, they failed.

    Proceed with the downmodding children, I can take the hit.

    --
    Is it fascism yet?
  78. Bulletin Board Material by mrkurt · · Score: 1

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

    Do Unix/Linux types really feel under siege? Having experienced both "cultures" first hand, I'd say not. I think that most people in the open source community are not so zealous or "sectarian", but are also looking for practical solutions. Myself, I am drawn to open source because it is a better way to better software. The development model is going to prevail over proprietary software, especially for those of us who want to program for the server side. I suppose for those who really are zealots or sectarians, Joel's comment above is bulletin board material, or you are thinking, "I resemble that remark". I don't think the viewpoints of strong open source advocates is something to be dismissed out of hand. I also don't think it's a sin to make a buck or two from one's talents.

    --
    Always look on the briight side of life! (whistle, whistle)
  79. Know Them By Their Injuries by 4of12 · · Score: 4, Funny

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

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

    --
    "Provided by the management for your protection."
    1. Re:Know Them By Their Injuries by Anonymous Coward · · Score: 0

      Which is why vi rules.

    2. Re:Know Them By Their Injuries by yarbo · · Score: 1
  80. Re:The real reason behind "silence is golden" by Anonymous Coward · · Score: 0, Insightful

    No, you still have to display the newline. Hope you're not a programmer...

  81. The real reason for the divide by scorp1us · · Score: 1

    We need to recognise why windows programmers write for end-users and unix programmers write for developers, and it is simple: Only developers are using unix.

    Unix people, after 20 years, are still adding utility to their OS. Windows people get a complete system out of the box. Windows people never had to code up their own OS, it was provided by Microsoft. If it wasn't provided by microsoft though, it was provided as an end-product by someone else (Trumpet Winsock). Adding to non-existent OS self-improvement time was the fact that there were only ever 2 windows "systems" for Windows: Program manager and later, Explorer. No one had to reinvent the wheel for KDE, GNOME, and whatever DE the user might be running. Therefore, the windows coding efforts were more focused.

    I've said it time and time again - we need to drop GNOME or KDE (preferably keeping KDE, IMHO) and just run with that. 2x the developers can do 4x as much work if they aren't duplicating each others work.

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    1. Re:The real reason for the divide by glgraca · · Score: 1

      Windows people get a complete system out of the box

      They get a what??

      Any Linux distribution comes with various compilers, script languages (perl, python, etc), shells, viewers (ps, pdf, images, etc), editors (vi, emacs, pico, etc), mp3 players, lots of networking tools, libraries, wordprocessors, spreadsheets, etc, etc, etc...

      What can you do with only Windows installed??

    2. Re:The real reason for the divide by demon · · Score: 1

      Complete system? Yeah, I suppose... for looking pretty. Or did you mean for getting work done? Because you definitely won't be getting any serious work done on a Windows box without installing (hence, usually _buying_) a whole lot of extra software. That's not my idea of a "complete" system.

      --

      Sam: "That was needlessly cryptic."
      Max: "I'd be peeing my pants if I wore any!"
    3. Re:The real reason for the divide by scorp1us · · Score: 1
      script languages (perl, python, etc), shells, viewers (ps, pdf, images, etc), editors (vi, emacs, pico, etc), mp3 players, lots of networking tools, libraries, wordprocessors, spreadsheets, etc, etc, etc...

      • no one uses develpment tools except developers
      • IE handles most everything, non one uses PS, but PDF you do have point
      • edit, write
      • media player (and it works too!)
      • who needs all those netowrking tools?

        But you missed my main point - I was talking historically. In the past 2 years, yes, Linux distros have pulled ahead in terms of pre-packaged goodies.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
  82. Re:The real reason behind "silence is golden" by bdeclerc · · Score: 1

    Actually, no. You'd have to wait at least the time to receive *one* character, because that would be the only way to know if you received it or not, so 20 times faster is correct here...

  83. Re:Binary libraries by GbrDead · · Score: 3, Insightful

    Three years ago I had to do something very simple with Microsoft's Crypto API. It has two layers: high and low. The high level functions did some common tasks, though totally non-customizable. So I had to use the low level ones. The documentation was vague. Only if they have published the high level functions source, me and the company I worked for would have saved a month. Or maybe I'm mentally retarded. So here is another example: IFS kit. It costs $1000, and it comes with 0/zero/none/not a single line of documentation about writing network file system drivers! Don't get me wrong - I don't like reading Microsoft code (the MSDN "examples" are just enough!) but if I had the source code of the relevant parts of the IFS kit, I would have finished that stupid task a month ago. Now, we're waiting for some preliminary documentation which is to come after 2 months. And 6 years after the first version of the kit... So, poorly documented open-source libraries may suck, but poorly-or-not-documented-at-all Microsoft libraries sick a lot more!

  84. Common Ancestor by Anonymous Coward · · Score: 0

    Actually, Microsoft SQL server is ripped off from the same obscure antique database server that a couple of guys in Sweden disliked sufficiently that they felt motivated to rewrite it from scratch; and, just to make sure that the original company would never see a single crown in royalties for such a lousy product, they made it free {because cheap is good when you are buying software} and open-source {because cheap is good when you're employing people to fix bugs for you}. The rest, as they say, is history {and so will Microsoft be by 2020}.

    So when your boss tells you to install Microsoft SQL Server, install this instead. It's faster, it's more stable, it supports roughly the same deviations from ANSI ..... nobody's ever gonna notice the difference except the poor sod who has to keep fixing it when it packs up and is now out of a job. The only worry is that your boss might find out that it wasn't Microsoft SQL server at all, and try to sack you. However, if they actually install Microsoft SQL Server, it will crash horribly before you can say "Industrial Tribunal", and you should get your old job back. Though, frankly, I'd rather be on the dole than work for a d.h. like that.

  85. Re:Bubbling frustration by basingwerk · · Score: 1

    Write a procedure for user, explain that he must do it the the same way every time, and move on to the next significant problem.

    --
    I stole this .sig
  86. Re:Bubbling frustration by schodackwm · · Score: 1
    "2/3 of the problems addressed with computers today (even so-called personal computers) are data processing problems"

    Accepting (at least for argument sake) that sphealey is dead on, that is NOTNOT the same as saying 2/3rds of users (or "useage") is for dp.

    Just a WAG, but doesn't it seem likely - given the widespread availability and use of 'puter's - that 2/3rds of users are writing a memo/report/letter to their bosses or kin, or browsing the web, or trying to balance their checkbook? If so, we may want to give weight to two Sposky observations:
    • Users do just-in-time manual reading, on a strictly need-to-know basis.
    • ... indeed the hallmark of a good Windows help file is that any single topic can be read by itself by an average reader without assuming knowledge of any other help topic.
    Seems to me, those are tantamount to guidelines for converting M$ victims!
    --
    [this sig has been trunca
  87. It's time for a change. by hey! · · Score: 3, Insightful

    I agree.

    That is not to say however that my home machine doesn't need security, especially as the world becomes more networked.

    Password based security is the most nightmarish of security scenarios: a partial success. Successful enough for people to rely upon, successful enough to impede the adoption of better approaches, but not successful enough to provide the security and convenience people need. Some people do OK with them but they're a tiny minoritt. Upgrading humanity is not an option. Indeed I suspect that the majority of computer "experts" would fail if audited according to strict password management standards.

    The problem is that passwords are an ugly hack that were adopted when the problem was less severe and the stakes were lower. They're a huge Achilles' heel.

    Personally, I think a key like device like an iButton would be much better. It's intrinsically more cryptographically secure than a memorizable password, as well as practically more convenient to manage in a secure manner. In high security apps the key device could be enhanced with biometrics or even password protection, approaches that are insufficient on their own but could thwart casual, opportunistic reuse and buy time for privilege revokation if the hardware key is stolen. The very fact the hardware key must be physically taken away from its users is a huge advantage. Passwords can be "stolen" without their owners knowing.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    1. Re:It's time for a change. by esaloch · · Score: 1

      How about a small device that connects to the line-in jack of a computer and inputs inaudible tones that the computer can then interpret as the correct user

  88. Re:How to tell if you are a linux fanatic. by Anonymous Coward · · Score: 0

    You really are a Lunix zealot. You didn't format your text one bit. It looks like a man page.

    It's like the enter key had been removed from your keyboard and you find it too hard to use CTRL+M to replace it.

    When the book cover looks this bad I don't even bother reading the book.

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

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

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

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

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

    $0.02

    --
    "The first thing to do when you find yourself in a hole is stop digging."
  90. Re:The real reason behind "silence is golden" by Ripplet · · Score: 1

    >No, you still have to display the newline.
    Damn, I knew someone would spot that. But do you have to wait for that to be transmitted, or does the Terminal produce that on its own? I suppose either way, you also need to wait for the prompt to return, which *will* be transmitted. Damn damn, well it was funny while it lasted.

    >Hope you're not a programmer...
    Oh tough break, I am. But guess what, I may not use the same rigour in my slashdot posts as I do when I'm writing code.

    --

    Skiing? Check out The Independant Skiers Portal

  91. Article ~= tiny subset of ESR's book by Medievalist · · Score: 3, Informative


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

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

    The only difference I see is POV, and substitute "mac" for "windows".

  92. Re:Bubbling frustration by sphealey · · Score: 1
    I>Accepting (at least for argument sake) that sphealey is dead on, that is NOTNOT the same as saying 2/3rds of users (or "useage") is for dp.
    Just a WAG, but doesn't it seem likely - given the widespread availability and use of 'puter's - that 2/3rds of users are writing a memo/report/letter to their bosses or kin, or browsing the web, or trying to balance their checkbook? If so, we may want to give weight to two Sposky observations:
    I am aware of what you say. Perhaps my perspective is a bit skewed by working in the corporate business information world, but as much web surfing and letter writing as does go on in the world, it is my intuitive impressions that 2/3 of the total bits being moved on desktop computers are being moved for the purpose of processing one form of data into another, and the vast majority of that in the work arena, not the personal arena. Most office workers have their desktop PC staring them in the face for 8-9 hours, after all, but their home computer for 60-90 minutes at most.

    Arguments to the contrary cheerfully accepted.

    sPh

  93. Peer Review by 110010001000 · · Score: 0

    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?

  94. Re:Documentation vs Slim to none by woodhouse · · Score: 1
    The registry would not be as bad as it is if it was better documented. I know I know....if you subscribe to MSDN or some other microsoft money scheme, you can read the documentation. Well, users should have access to that if they so want.
    msdn.microsoft.com/

    Alternatively, use the MSDN CD that comes with Visual Studio. Microsoft also provided the ISOs for the April '03 edition of MSDN for free, although I've since misplaced the link.

    MSDN provides excellent documentation. Given that you clearly haven't found it, I would say you're not in a position to comment.
  95. Re:Documentation vs Slim to none by Anonymous Coward · · Score: 0

    Yesss!!!!

    Microsoft documentation is not only bad, it is perversely bad!

    You can take any, no matter how conplicated, command line and easily make it into a cute little icon, but it is far harder to take a cute little icon and make it into a command line (at least, with Microsoft documentation!!!). Is Microsoft actually trying to hide "features"?

  96. Re:The real reason behind "silence is golden" by Ripplet · · Score: 1

    However, even if the user started typing again straight away, they probably wouldn't beat the prompt coming back if it took less than 0.1 seconds, whereas they would if it took 2 seconds.
    Now we have the difference between making the user wait 'some' extra time over and above the natural typing pause time, and making the user wait for 'no' extra time.
    So I assert that 'infinitely faster' still holds!

    --

    Skiing? Check out The Independant Skiers Portal

  97. Re:The essential difference by heironymouscoward · · Score: 2, Informative

    Yes, you guessed correctly, it was a clustering environment.

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

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

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

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

    --
    Ceci n'est pas une signature
  98. Crossing coming to a Chasm near you ... by nickco3 · · Score: 1

    You slipped in the proviso "As far as the desktop market is concerned", but if you forgive me mixing my metaphors the Innovators Dilemma tells us that you can cross the chasm in a series of steps.

    Linux has long held the innovators sector, it has just about captured the embedded market, it stands eyeball-to-eyeball with Microsoft in the server space. As it raises its profile on emedded devices home users will become more comfortable with the idea of a Linux desktop. Similarly as corporates become comfortable with Linux in their server racks, more and more of them will consider the possibility of deploying Linux desktops, perhaps starting with places like call-centres where they don't need a fully-fledged Windows rollout.

    The desktop will be the very last sector that Linux captures, this is Microsoft's front-lawn, and only Redmond tanks are permitted to park there, for now.

    However, Linux will eventually win the desktop not because it is technically superior (the best technology rarely wins the mass market) but because it has economics on its side. Open-source software will eventually become the dominant software development method simply because it is more economically efficient for software companies to maintain the software infrastructure collectively. Those companies that recognise this will squeeze out the less efficient ones that decide to maintain all their secret code themselves.

    --
    -- Nick "Hallo this is Beel Gates, und I pronounce weendows as ... WEENdows"
    1. Re:Crossing coming to a Chasm near you ... by gargle · · Score: 2, Interesting

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

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


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

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

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

    2. Re:Crossing coming to a Chasm near you ... by nickco3 · · Score: 1

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

      I disagree. Corporates buy large numbers of desktops, and they are the bridge for Linux out of the server rooms and on to the desktop. First of all into a simple niche like the call centres, from there it can spread into the wider office market. Once people start seeing Linux on their phones, their PDAs, and in their offices then it's only a small step to ask for it when they buy a PC.
      --
      -- Nick "Hallo this is Beel Gates, und I pronounce weendows as ... WEENdows"
    3. Re:Crossing coming to a Chasm near you ... by Anomylous+Howard · · Score: 1

      Once people start seeing Linux on their phones, their PDAs....
      People will not
      Linux, they will only see their phones and PDAs. The lLinux inside will be invisible to the user.
      In there offices, they will see a data-entry terminal so customized and locked down that, if it is identifiable as Linux, it will turn them off.

  99. For once, I agree with Joel by Etyenne · · Score: 1

    Most of the time, I think he is full of shit (I don't read him very often, though) but for once I think he is right on.

    Maybe the same thing is true of Linux: it may never be a desktop operating system because the culture values things which prevent it. OS X is the proof: Apple finally created Unix for Aunt Marge, but only because the engineers and managers at Apple were firmly of the end-user culture (which I've been imperialistically calling "the Windows Culture" even though historically it originated at Apple). They rejected the Unix culture's fundamental norm of programmer-centricity. They even renamed core directories -- heretical! -- to use common English words like "applications" and "library" instead of "bin" and "lib."

    What Joel miss here here is that Apple did not reject Unix; they BUILT upon it ! OS X is the most glaring example of the success of the "provide machanism, not policy" philosophy. Darwin provide the mechanism, Apple provide the policy, everybody is happy. If Darwin would have enforced policy, Apple may not have been able to rename /bin Application, or /lib "Libraries". Imagine if, somehow, Darwin would have forced the use of X Window and Apple could not have used Quartz ...

    You know what ? What he exlained in this paper is exactly the reason why I am a Linux users. I am not Aunt Marge. Unix tools and culture had been built with people like me in mind. I am not your typical 99.999% user; why should I use tools built for the lowest common denominator ? Call me an elitist if you want; that's what I am, and Unix make it good to be one.

    --
    :wq
    1. Re:For once, I agree with Joel by Guy+Harris · · Score: 1
      If Darwin would have enforced policy, Apple may not have been able to rename /bin Application, or /lib "Libraries".

      Apple didn't rename /bin "Application" and didn't rename /lib - or, rather, /usr/lib - "Libraries", or, rather, "/Library". /bin, /usr/bin, /usr/lib, etc. still exist, along with /Applications and /Libraries.

      For that matter, Microsoft didn't rename C:\WINNT\System32....

    2. Re:For once, I agree with Joel by Etyenne · · Score: 1

      Thanks for the clarification ... so IIUC, MacOS use /Libraries, /Applications, etc while the Darwin core still use the traditionnal /usr, /bin, /lib, etc ?

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

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

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

  101. Re:Command line? Hell, how about process? Security by Anonymous Coward · · Score: 0

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

    You hit the hammer on the very top of the nail's head. It's more or less like that attitude about American cars. Slowly, Japanese cars started to gain ground based on money the consumer saved by spending less on maintenance. But then, they came up with tax-exempting laws that benefit SUV makers.

    Probably they don't believe in harsh punishments. Instead, I'd suggest you create some mechanism to fine people who are unprofessional and channel the funds coming from fines to people that don't get any security problems. If there are any legal problems about dealing with peoples' salaries, you can alternatively impose those fines on their departments, thereby reducing money for investments and/or expenditures.

    Windows people like to offer inferior services and boast they're cheaper. Let's see how they fare if they have to pay for the consequences of Windows use. Let's see how they deal with people using other OSes and making money out of their tools' quality.

  102. Re:Bubbling frustration by sphealey · · Score: 3, Insightful
    I think you missed Sposky's point completely, but...
    If you read the article, you would notice that the ENTIRE POINT was that there isn't one true way of doing things. The secondary point is that some *nix people are pulled into some sort superiority complex.
    The cultural schism is so sharp that Unix has never really made any inroads on the desktop. Aunt Marge can't really use Unix, and repeated efforts to make a pretty front end for Unix that Aunt Marge can use have failed, entirely because these efforts were done by programmers who were steeped in the Unix culture.
    Well, I actually did read the article. Although over breakfast, and of course not as deeply as I would have like. Then again, reading deeply is against the Slashdot Code of Posting anyway ;-).

    However, as the snippet from the original article above shows, I don't think my interpretation is entirely (if at all) incorrect. Mr. Sposky seems to me to be saying that the Unix metaphor is "less usable" to "Aunt Minnie" (pretty insulting, BTW: my Aunt Minnie was programming calcuating machines before Mr. Sposky was born, but that's another topic) due to its inherent nature.

    I am observing that the Windows metaphor works great for the first 2-3 years, but then the end user runs into a brick wall where he can't do what he wants, doesn't know why, and has no tools or path at his disposal to move forward. I have seldom seen a person who grew up in the Unix (or VMS, or TOPS-20) metaphor hit that same wall and not be able to figure out a way around it. It was primarly my Unix and VMS background that allowed me to figure out how to make Microsoft LAN Manager 1.1 actually work, for example, when the Microsoft technicians were clueless (another long story).

    sPh

  103. Re:can this guy actually code? by Anonymous Coward · · Score: 0

    Considering the guy did the original implentation of VBA for Excel, I'd say yes he can code. You're missing his point. He implicitly assumes you'll use a break things up between document/view classes to seperate out functionality.

    What he's talking about here is providing an interface for other programmers. While that's a good thing, it's not the first thing that is on a windows programmers mind.

  104. Re:Non-ideological? Uh-huh. by sphealey · · Score: 1
    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.
    In fact, I believe that Bill Gates stated during the 90s that one of his hiring goals at Microsoft was to get very smart people who did not have extensive experience with the systems of the 60s and 70s, so they would have no "preconceptions". And from what I see of Microsoft products (particuarly networking products) he succeeded in that goal, but it turned out to be double-edged sword with two very sharp edges. At least from the end-users' perspective (hard to argue anything against the size of Mr. Gates' wallet).

    sPh

  105. He's on the money, I've done both. by clintp · · Score: 1

    What Spolsky says about the culture differences is right on the money. First some background.

    I spent years as a Unix developer and admin. I've written kernel patches, tinkered in the arcana of NFS, written more Bourne (csh, bash) shell scripts than I care to remember, written a few X apps, learned Perl well enough to write books on it, presented at USENIX, wrote medical and finiancial applications using not much more than libc, programmed Unixes from AT&T SysVR3 to Linux, installed the GNU tools from mag tape in 1988, learned gawk from a wire-bound photocopied manual distributed with that tape, have set up UUCP by hand, and fixed more than my fair share of filesystems with fsdb-like tools. My Unix Wizard hat is dusty, but was honestly earned.

    My later career has taken me to Windows shops. I'm currently earning a living writing C and C# for an almost completely DOS and Windows-based company. I've spent a couple of years spelunking MSDN documentation, Google groups, and 3rd party library API's. To that end, I've created a few applications for database interrogation and updating by end-users, web-based applcations, and plenty of GUI-based throwaway applications. My Windows hat is still just a propeller beanie, but I'm working on that.

    So having a foot planted firmly in both worlds, I gotta tell ya -- he's right.

    When I first approached Windows programming I wrote a lot of things that were used by myself, and that was it. Nobody else wanted to use the software I produced; admins and typical "end-users" alike both ignored them. Honestly, these programs did good things: they were relatively bug free, they scratched an itch that end-users had, sometimes they cured what caused the itch, and were all very Unix-like. Unix like? STDIO based textual interfaces, very easy to plug into other programs, command-line driven, and heavily documented.

    The phrase that makes Spolsky so right is the importance of the end users's experience. They're completely different.

    With Unix I'm fundamentally thinking of "how am I going to write a program to manipulate data X with data Y?", in Windows I'm thinking of "how would a user expect to cause data X to be manipulated with data Y?". True, in Windows I'm faced with two problems: 1. user interface (to meet their expectations of experience) and 2. actually solving the problem at hand. Over the years though I've found that problem #2 is always easy -- it's just bits, it's problem #1 that makes a successful product or a useful tool.

    Once I got used to starting with the user interface (while behind the scenes designing the functionality of the task), my Windows applications really took off. People wanted to play with them, touch them, use them. Sometimes they suffered from the "wrong tool for the job" problem (as many monolithic apps do) but that's okay: they were easy to use, didn't require any explanation, and people just learned to make the tool do what they wanted.

    One of the design creeds of Windows seems to be that people are flexible. They don't want to read, learn, or memorize anything but they're willing to take the few tools at hand and bend it every-which-way to get it to do what they want. Unix takes the toolkit approach (design a specific tool for a specific job, with generalized I/O) which makes people read, learn, and memorize, but often provides them with exactly the right tool for the job.

    It's not so much the culture of the programmers as it is the culture of the consumers.

    --
    Get off my lawn.
  106. Related topic: UNIX and Mac users by ziggyboy · · Score: 2, 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.

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


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

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

    1. Re:Various slashes, a history lesson by Anonymous Coward · · Score: 0

      You're wrong. That directory's "name" is not "/". It's "" -- why should it have a name? That just invites us to imagine that there is another layer of directories undergirding it. It just is. Sure, you could call it "root", but then that's just extra noise at the beginning of every pathname... plus, like I said, it invites one to start imagining that there could be a root2, root3, etc.

      What's unfortunate is the behavior in tools like cd where "cd" (with no argument) takes you to $HOME instead of root. If cd and other tools properly understood a null argument or an empty string in a directory related command to mean the root directory, then there would be no doubt that the root directory actually has no name. As it is, it looks like you're forced to tell those commands you want "/", thus including the otherwise optional directory separator in order to indicate that you actually want the root directory instead of $HOME.

    2. Re:Various slashes, a history lesson by Anonymous Coward · · Score: 0

      This paradigm is there in windows as well. cd \ will get you to the root directory of the drive you are in.

    3. Re:Various slashes, a history lesson by dar · · Score: 1

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

      Hmm. I've been using DOS and Windows from the very beginning, and it's one of the things that annoys me most. Hard to blame them for it when the first machines were two floppy systems, but it still annoys me. I prefer the single root of nixes.

      --
      My other Slashdot ID is much lower.
    4. Re:Various slashes, a history lesson by Medievalist · · Score: 1

      Correct. It's stupid there too. And don't get me started about single-character device names...

    5. Re:Various slashes, a history lesson by Medievalist · · Score: 1


      I like device roots, personally - I don't like the way *nices obscure the hardware. But now that we've got cheap RAID it's a lot harder to argue in favor of knowing which disk pack you're using, so I see your point.

    6. Re:Various slashes, a history lesson by Aidtopia · · Score: 3, Informative
      VAX/VMS system also inherited this syntax

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

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

    7. Re:Various slashes, a history lesson by EvilTwinSkippy · · Score: 1
      Um, if CPM was dominant, I don't what to think about who was the submissive. Oh wait, that's S&M!

      So tell me, when is the last time you have operated a VAX? I remember my last interaction with a VAX was the finance system in a Steel Mill, circa 1996.

      Now, as far as the "stupid" directory system, type dir c:

      On MY system I see:

      Volume in drive C is ~/win
      Volume Serial Number is 1234-0003
      Directory of C:\windows\Desktop

      . <DIR> 12-15-03 2:54p .
      .. <DIR> 12-16-03 2:22p ..
      SHORTC~1 LNK 477 12-15-03 2:43p Shortcut to Mozilla.lnk
      (and so on)

      What is that expression about glass houses and stone throwing?

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    8. Re:Various slashes, a history lesson by pHDNgell · · Score: 2, Insightful

      The slashes go "the wrong way" (hmm, any explicit biases there?)

      In how many programming languages is \ not a special character in strings? MS uses C++ quite a bit, where you can't type stuff like ``/usr/local/etc'' in your apps.

      URLs use /

      / is generally found in the same place and is otherwise typed less frequently.

      Hell, slash is easier to say than backslash.

      Combine those, and you get the confusion I've seen many times of people typing ``http:\\blah'' or trying to read out some large path on a Windows system, usually starting with \\ to access a remote share and having to say ``backslash backslash data backslash stuff'' vs. ``slash slash data slash stuff.''

      That it's even called ``backslash'' should be an indicator. When was the last time you saw a document use backslash as a separator for anything?

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

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

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

      Why was that gauge used?

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

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

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

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

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

      So who built those old rutted roads?

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

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

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

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

      Now an additional irony to the story...

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

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


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

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

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

      --Joe
    11. Re:Various slashes, a history lesson by tenton · · Score: 1

      Except that this story is a bit of a urban legend; some of the reasoning is correct, but it's embellished. http://www.snopes.com/history/american/gauge.htm

    12. Re:Various slashes, a history lesson by dkemist · · Score: 2, Funny

      Thankfully slashdot wasn't spawned from the VAX world.



      Think of colonbracketsemicolondotcom.com

    13. Re:Various slashes, a history lesson by Medievalist · · Score: 1

      Calling something "wrong" because it is unusual is not something that appeals to me.

      That being said, yeah, obviously standardization has its value, especially in an international arena.

      You're making me feel very old, though, - URLs and C++ are pretty newfangled in my world.

  108. sports analogy by know_op · · Score: 1

    Liking to program with Windows is like liking the Yankees, or rooting for the Lakers. People love to jump on the MS bandwagon because they are more prevalent in the media. I teach an IT high school class, and I feel torn because the curriculum says to teach VB and VC++. However, I feel that teaching Python and Java results in a better understanding of how things work. But when I have an advisory committee telling me that everyone uses Windows, and that Windows is the way to go, I get frustrated. I feel that they are just buying into the big market MS hype. Back to the sports analogy, I feel like I'm the manager of a small-market team, full of scrappy, hard working UNIX haxors. But when these students get to the big leagues, I hope they find UNIX jobs, not the MS jobs. Actually, I just hope they find jobs.

  109. Re:Documentation vs Slim to none by Jason+Earl · · Score: 1

    The problem with the registry isn't that it is undocumented. The problem is that there is no inline documentation. The /etc directory may seem like a bit of a mess, but it is generally a trivial exercise to find the configuration files for the daemon you want to configure (/etc/[daemon-name] being a good place to start). Once you have found those configuration files chances are also good that there will be enough inline documentation, in the form of comments, that you won't actually need to read the man page. As far as I am concerned that is the biggest advantage of plain text configuration files. I can actually read the darn things.

  110. Microsoft mis-manages programmers. by Futurepower(R) · · Score: 1


    Spolsky -- In my experience, Spolsky sometimes overvalues his knowledge. He tries to be a leader, rather than writing when he is especially knowledgeable about something.

    Mis-management of programmers -- The problem is not with different philosophies of how to do the job. The problem is that Microsoft mis-manages their programmers. Microsoft allows each programmer to do his own thing. That's why some dialog boxes in Windows accept Control-A to Select All, and others don't. That's why some Microsoft programs can be closed by Control-W, and some can't.

    Releasing products before they are finished -- Another problem with Microsoft mis-management is assigning programmers to a new task before they have finished the last one. Often Microsoft releases programs that only barely work, and have numerous shortcomings that a programmer would eliminate if given time to finish his work. Anyone remember the first version of Microsoft Access? Remember the 63,000 bugs supposedly in Windows 2000? Did we see those bugs? I count 18 critical updates just in Windows 2000 Service Pack 4, and some of those are actually multiple updates. I don't know if there were 63,000 shortcomings, but I do know that some of those are still in Windows XP. For example, Windows XP often re-organizes the desktop icons without asking. Windows XP changes sometimes changes its settings without asking, for example, when doing updates, or when re-installing the OS.

    Insufficient planning, standards, and cooperation. -- At Microsoft, my understanding is that there is little way to assure cooperation between teams. Everything is hurry up and finish, and there is too little planning, or writing of standards. Anyone remember the Windows 3.1 method of accessing a serial port from Windows? It was an interface of amazingly poor quality. There are many examples of sloppy design; that's just one that occurred to me.

    Sloppy documentation -- Microsoft's documentation has the same poor quality. Information about a particular version of Windows is often scattered, jumps from article to article, is often in error, incomplete, and often refers to earlier version of Windows, sometimes seemingly in error.

    Un-fixable problems? -- Microsoft's sloppy management has, over a period of many years, led to a situation in which, apparently, some problems cannot be fixed. That's apparently why there have been more than 60 serious security vulnerabilities found in Internet Explorer in the last two years, and only one or two in Mozilla. Apparently the IE code is a huge mess. Who was using those security vulnerabilities before they were made public? Who uses those security vulnerabilities after they are made public? There's no way to know, but the subject is extremely serious. Certainly if Microsoft were able to fix the security problems in IE, it would do so; the publicity about Microsoft security vulnerabilities is extremely negative and beginning to be known by the non-technical managers of Microsoft's customers.

    What is the fundamental problem? -- Apparently, the fundamental problem is Microsoft's "Money now is everything" culture. Microsoft makes money because they had a monopoly, not because the company is managed well.

    Harry Callahan's excellent comment -- This comment, to the duplicate Slashdot story, fits my experience better than Spolsky's analysis. Because the other, duplicate, story may be eliminated, or not read, I asked the writer to post his comment again in this, the original story, but I don't know if he will do so. So here is a link and a copy of the comment: The essential difference... by HarryCallahan

    [Beginning of Harry Callahan's comment.]

    Is not about th

  111. Re:Bubbling frustration by goodviking · · Score: 1

    "The end app that will be used without piping off to other apps, without having to support connections to 15 other things, whatever. Just what the user needs right then and there."

    I'm sorry, but this is not a feature, it's a flaw. What user X "needs right then and there" is probably not what user Y "needs right then and there". If you design your API's and software to meet X's needs, and ignore Y's, or more appropriately, force user Y to accept that he should be like user X, how is this "end-user focused" in Y's eyes? It's ok to say for X, here's your app, but to then tell Y to shut-up and take it is unacceptable.

    Fundamentally the UNIX models of "layers" and "pipes & filters" are far more powerful. At the end, you can provide a GUI for X, a GUI for Y, you can batch process all of the data, who cares. Fundamentally, your GUI is a thin wrapper of existing, well tested functionality, not a reinvent the wheel, "guess what this does" exercise in futility.

  112. Re:Binary libraries by Jokkey · · Score: 1
    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.

    Library source code can be extremely useful for debugging; you can step through the library to see what exactly causes your library calls to fail, to see if your problems are caused by a bug within the library, and to more easily get a feel for how the library works in general.

    There are also times when you may want to use the APIs in ways never foreseen by even the best documentation. (For example, ever try writing a Linux emulator for Windows?) Library source code can be helpful here too.

  113. Mod parent flamebait! by Anonymous Coward · · Score: 0
    Windows programming is overwhelmingly done by people with little experience and skill for people with little experience and skill. Windows programming environments are the programming equivalent of prerecorded music, painting by numbers, or ready-to-serve meals.

    What a load of inflamatory bullshit.

    All windows applications are then, by your definition, very easy to write, otherwise all these idiot Windows programmers out there wouldn't be able to create them.

    Photoshop would require a genuis to write on *nix but any fool could knock it up on Windows.

    You clown!

    1. Re:Mod parent flamebait! by Anonymous Coward · · Score: 0

      Did he say all? Or did he, perhaps, say overwhelmingly?

  114. X is not the problem by oddtodd · · Score: 2, Informative

    X is a protocol, you are referring to the programs
    written that use X, ie. Gnome/KDE.
    try running fluxbox for a window manager and watch
    your machine r0x!

    --
    I have plenty of common sense, I just choose to ignore it. -- Calvin
    1. Re:X is not the problem by MegaHamsterX · · Score: 1

      I read that first as flushbox window manager(not fluxbox) for some reason, I expected it to say ..... and watch your machine go in the shitter.

      No I am infact referring to the windowing system that has no standards what-so-ever, I understand why people like it, it's like a harley, no one is the same and it's always broken down for some reason.

  115. Re:The real reason behind "silence is golden" by Zigg · · Score: 1

    You most certainly do not. The shell moves you to the next line at the end of your command, and the prompt can appear there.

  116. Mod Insightful by Anonymous Coward · · Score: 0

    That was a very insightful post.

    Sorry I don't have any mod points!

  117. Because, of course, all boxen are networked by krysith · · Score: 3, Insightful

    I don't believe the grandparent post referred to their computer as being attached to a network. It has become a pernicious assumption that all computers are networked these days. I have a non-networked computer, and although it is behind locked doors, I use a password on it just for peace of mind. However, I find the recently common assumption that all computers are networked to be a real pain. Ever tried working on a program where all the documentation is html links? Not easy when you are on an isolated computer. It has become so bad that software boxes have as the computer requirements something like: Pentium 200 Mhz or better, 128MB RAM, at least 1 GB Hard Drive space, etc. but neglect to mention that Internet connectivity is required for use. Not everybody uses their computer as a websurfing device. It is still true that the most secure computer is one which is not attached to a network. You can try to tunnel into the computer I am typing this from, but I dare you to get the data on my other one!

    1. Re:Because, of course, all boxen are networked by Punto · · Score: 1
      I don't believe the grandparent post referred to their computer as being attached to a network.

      I think that was kind of implied since it is, after all, a post on an internet site.

      --

      --
      Stay tuned for some shock and awe coming right up after this messages!

  118. Re:can this guy actually code? by Khazunga · · Score: 3, Insightful
    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.
    That completely misses the point of a textual interface. When Unix people talk about textual interfaces, the important interface isn't the user-interface. It's inter-application interfaces that really matter. Unix applications don't talk to each other via strange, binary, unreadable protocols such as Corba, COM, DCOM, COM+ or whatever MS is selling these days. They talk text. Simple, human readable, text. Stuff that I can probe and poke and dismantle. Stuff I can disassemble and assemble together again. I can pick and match little utilities to process data the way I want to.

    Take cdrecord. cdrecord does the same stuff that the windows cd-rom recording libraries do: write a cd-rom. How do you feed the windows libraries data to write? I don't know. Are they self-documented? Nope. How do you feed cd-record? The most obvious way: give it an image to write via stdin:

    cat image.iso | cdrecord

    If I didn't know this, cdrecord --help tells me what to do. man cdrecord has a longer explanation with examples. I can get the application, usable by end users, and place it inside my backup scripts. Do this with the windows libraries or Nero or some other burning application. Tell me how long do you have to sift through documentation to do this: Find a way to backup a disk partition to a cdrom using the windows libraries. In any unix, this is something like:

    cat /dev/sda1 | cdrecord

    Will a end-user have trouble using command line cdrecord? Naturally. But cdrecord is a core application, which shouldn't be used by end users. That's what the Rule of Separation is about. Grab krecord or something like that, and use it.

    --
    If at first you don't succeed, skydiving is not for you
  119. Re:The real reason behind "silence is golden" by larien · · Score: 1

    That's something I realised very recently while I was thinking about how much faster I am using vi than notepad, reason being that the commands are so terse/concise because they were designed in the days of ~2400 baud. While we no longer need to conserve bandwidth, conserving keypresses makes vi faster for me than any other text editor. Adding fancy features (colour highlighting of source code, for example) makes it even better which is where vim wins out.

  120. Re:to sum it up... mod parent down by Anonymous Coward · · Score: 0

    Yeah. You bring it! Real coders use wizards to generate their buffer overruns!

  121. A password for everything you own by Anonymous Coward · · Score: 0

    Just like they should have a password for their car, their boat, their bicycle, their television, their mixer, their can opener, their ...

  122. hmmm by ciaran_o_riordan · · Score: 1

    > No, he's a vocal libertarian

    oh, ok.
    When he referred to freedom fighters as "ideological tub-thump[ers]", I thought he was implying that he wasn't one.

    Or maybe people are only tub-thumpers when they are fighting for software freedom, but not when they fighting for free speech or the right to own guns.

    (now that's flamebait! ;-p)

    1. Re:hmmm by LordBodak · · Score: 1

      I see ESR supporting software freedom, free speech, AND the right to own guns. I'm not his biggest fan either but his political beliefs lean much more to the libertarian side than most open source advocates, and I see that as a good thing.

      --
      LordBodak's journal.
  123. The problems of meritocracy by mongbot · · Score: 1

    The open source community values people with skill and talent at programming. Unfortunately, the best hackers do not necessarily have the best vision or foresight (although they may well do). ESR dismissing useability experts as "being wrong" shows that you need more than gut instinct to be a good leader.

    Perhaps the open source movement should take some advice from the commercial sector and hire managers who are good at managing, but not necessarily the best hackers. Planning, foresight and vision are more important qualities than having hacked together popular open source programs.

    1. Re:The problems of meritocracy by Anonymous Coward · · Score: 0

      The open source community values people with skill and talent at programming.

      Ironically I think most Slashbots value people with a high sense of self-importance and have little to no actual knowledge of the technical skills of its great leaders. I mean, ESR for example, is no one. The sum total of his contributions are complete garbage. However he has a large mount and he can play the faithful with essays telling them they're superior.

      Now notice I singled out dotters. You people have about jack all to do with developing software. I've known 10 Slashdotters that have contributed more than squat for code.

  124. I can't agree by shis-ka-bob · · Score: 1
    I find that the Microsoft documentation is fine if you want to get the common case of something to work. But if you want to go beyond that, it can be quite frustrating. Visual Basic supports Try... Catch style error handling, but try to find a list of Exceptions that can be thown by a given function. Java does a much better job of documenting this sort of detail.

    My theory about this is that 1) many VB programmers don't bother with error handling, 2) those that are required to have error handling just catch all exceptions, peel off the error message, put it into a Message Box, close the application and check off the 'add error handling' task. I don't mean to attack the VB programmers (as I am one one from time to time), but they are usually not given time to do much more than that by clients that don't want to pay for best practices.

    --
    Think global, act loco
    1. Re:I can't agree by Anonymous Coward · · Score: 0

      Classic VB does not support Try/Catch, so I assume you are talking about .NET, where C# suffers from the same problem.

      I assume MS had a bunch of monkeys writing libraries and they forgot to design a set of exception classes. Therefore the entire environment lacks checked exceptions. This is sold as a "feature".

      (At least for classic VB, error handling is so painful that it's basically only done when you know what the error is going to be.)

  125. Re:can this guy actually code? by Anonymous Coward · · Score: 0
    The next generation of interaction between programs (or lets call them objects) requires a huge leap in complexity. It is this next generation paradigm that many windows programmers would claim to use. But for it to work, the self discovery of those input and output formats and some standard nomenclature to allow them to communicate with each other to make the discovery is required.

    Ever heard of a little technology called XML? Quite popular on UNIX and Windows apparently.

  126. Re:Bubbling frustration by Azghoul · · Score: 1

    Hang on a sec. You are making my point for me. I am saying: Now that all the layers, pipes and filters are built, people are building GUI X, and GUI Y.

    We (the unix community, I include myself even though I suck :)) need people focused on the end-user to create GUI X. GUI X does not ever need to continue the long chain of layers, pipes and filters. It just has to pull all the good shit together, and make it exceedingly easy to use.

    "Windows programmers", to use Spolsky's term, are generally better at the "end-of-the-line" app. It would seem to me that it'd be smart to get more people trained to take existing unix "bits" and make end-user apps out of them...

  127. Joel is off base. by Lodragandraoidh · · Score: 3, Interesting

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

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

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

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

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

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

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

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  128. Re:Bubbling frustration by Anonymous Coward · · Score: 0

    ... which will be finding a new job after you were fired and re-replaced by those 5 VB programmers.

    Just kidding. However, I think your response illustrates the Unix's world traditional disdain for end user interfaces. In some cases telling the user to "Just type 'foo'" is OK, but Unix folks have trouble distingishing that from "Just type 'foo -xp15 > find -q -t `exec --nn {}`' RTFM!" or "What's wrong with you? Just learn emacs".

  129. Programmers & users: what's the difference? by mjh · · Score: 1

    Since everyone who uses a computer does so to control it's behavior (in some fashion) you could make the argument that everyone is a programmer - even Aunt Madge when she's browsing the web. She's instructing the computer to do something specific that she wants. And occasionaly it doesn't do what she expected. She has a bug in her program. The only difference is that here programming is done with a mouse and interpreted by a browser. Where as Linus' programs are done with an editor and interpreted first by a compiler and then by the CPU.

    I think that if you consider that everyone who uses a computer is, to some extent, a programmer. The difference between the windows and unix culture isn't that one appeals to programmers and the other to users. It's that unix assumes that if there's a problem the user is going to figure it out and gives him/her tools to figure it out, but doesn't make assumptions about the users intelligence and lets the user figure it out on his/her own. Where as windows has to make the tacit assumption that users can't figure it out on their own and has to hand hold them through every step of the process.

    In other words, unix assumes it's users are intelligent, and windows assumes it's users are dumb.

    Now don't get me wrong. I'm not saying this is bad. I'm just saying that's the way it is. And if you're intelligent, it's incredibly frustrating to use windows because you don't want a computer operating system that can't think for itself to assume you're dumb. And vice versa, if you're a user who doesn't care that much to learn about how computers work best, you want your hand held.

    The problem of course is this: windows servers. A server should not be managed by someone who's dumb or who doesn't care that much about how computers work. A server should be rock solid and should be configured correctly and should work. Server admins should be hired because they know what they're doing, and they should get it to work. Microsoft tries to sell the idea that any monkey can manage their server. And what do they end up with? Monkeys managing servers who don't care about installing patches. Deployed servers with huge numbers of vulnerabilities because the admin didn't patch them.

    If the culture of windows is supporrts non-computer saavy users and the culture of unix supports computer saavy users, then lets all agree that windows should NOT be in the data center. If you put windows in the data center, then you're already admitting defeat.

    --
    Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
  130. Sounds like malpractice to me by shis-ka-bob · · Score: 1
    Writing code for coders is a Good Idea. Its like making blueprints for engineers and contractors. Writing code for the end user is a good idea. The paying client is more likely to be impressed by the four color photorealistic image of their project, and that image may help the architect and the client come to an agreement. But it is critical that the architect produce a blueprint with the engineers that can be shared with the contractors who have to do the work. This isn't an 'either/or' proposition. You need both: you need to architect to meet the client's needs AND you need to architect to best enginnering practices. In any field other than software engineering, treating these as 'either/or' would amount to malpractice.

    Go to any school of engineering any anounce that you want to design for the client but ignore best practices. The next day, anounce that you have learned from your mistake and that you want to adopt best practices but you don't care if it meets the needs of a paying client. You would quickly learn that you are still mistaken. Engineers must do both. Joel, great software requires that you address users and software engineering practices... these are two sides of a coin, not gulf between communities. Perhaps this is why great software takes ten years ;-)

    --
    Think global, act loco
  131. Save often by tepples · · Score: 1

    I find myself saving more often

    You should find yourself saving often in any interactive program. As far as I know, most interactive applications, even on *n?x, hold the sole copy of the recent changes to your document in volatile memory, and you lose it should the power fail.

  132. Re:Non-ideological? Uh-huh. by Anonymous Coward · · Score: 0

    Hey Kids! I edited the parent post slightly. I think you'll find the result INTERESTING!!!

    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 White peoples, who are, on the whole, solution-oriented and non-ideological."

    Au contraire, Mr. Sposky, most Whites people I deal with are ignorant of anything that doesn't come from European culture, and not willing to learn. God knows I've meant plenty of Black bigots, but at least they know something about White culture - they have to, there's no avoiding it. The same is not true about White 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: Black bigots are not trying to shoulder Whites out of the marketplace - we couldn't, even if we tried. The White culture, however - or its corporate sponsor - is in fact trying actively to extinguish all competition. This is open-mindedness? Give me a break.

  133. Re:Command line? Hell, how about process? Security by markcic · · Score: 2, Funny
    ...(we print checks dammit!)...


    Would you mind sending me your IP? I'll send you a check.
  134. Re:Without realizing it... by Anonymous Coward · · Score: 0

    And what's stopping you doing the same in Windows?

    Experience. The fact that the program did it once is absolutely no guarantee that it will do it every time in Windows. Obviously, the experience in *nix is different. I think that was the point of my original post.

    Those who spend more time in *nix trust that more; those who spend more time in Windows trust that more.

    Let me rephrase that slightly: Those who spend more time in *nix trust the computer more; those who spend more time in Windows trust the computer not at all.

    And sadly, some of those are just an indication that the widget, bar or icon is moving, without any reference to or knowledge of what state Windows or the application are actually in.

    Absolutely no argument here! Having trained users to expect some kind of confirmation that shitty software was actually working, software designers then generalized it to mean that users loooove to see some kinda activity on the screen. They never really understood why this occurred in the first place, did they? Not surprisingly, this kind of useless, stupid waste of CPU cycles is why I hate the Windows XP GUI!

    Now, I have to say that I didn't just dream this up. After working quite a while in both Windows and Linux, I found that I had the very perceptions that I described in my original post; i.e. I hated Windows software that didn't give me some assurance that it was still working and yet the same software behavior in Linux did not bother me at all. It took me a while to figure out why.

    At about the same time I noticed that working in Windows always felt a little more frantic, and it took me a while to figure that one out, too. It was because of the constant saving, checking and just general paranoia that I was gonna lose everything at any minute in Windows. I just didn't feel that it was as necessary in Linux. I didn't consciously adapt these attitudes, they were trained into me by years of experience!

  135. Effort to refactor the back end? by tepples · · Score: 2, Insightful

    "Or what if there's something in the back-end that just doesn't work once you add a GUI?"

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

    I think the point of his response here is that it can be fixed by refactoring the back end and that he finds the effort to refactor the back end not nearly as great as you imagine.

  136. WPA is the clincher for me by freeweed · · Score: 1

    Hear, hear.

    I've been a pretty faithful Windows user for 10 years now, and for the most part, I hate its security, but I love its simplicity. It's still my primary OS today. But I gotta tell you, XP changed all that in one fell swoop. Product activation for the geek consumer (and for anyone, for that matter) is perhaps one of the scariest things ever invented, and I can't believe how the public has just brushed it off.

    I'm still running older machines that can't handle 2000. Huh. Guess that means I'm running an OS on them that is no longer supported. Is that reasonable on Microsoft's part? Sure. They can't cater to my every whim forever, and I don't fault them in the slightest for it. Now imagine trying to use XP in 5 years. Scared the hell out of me when I realized it, because I've always ran older systems that need an oldish OS. What happens if I ever need to reinstall? Or change some hardware? Sure, I could run a cracked version. Break the law, and take the risk some punk ass Romanian teenager has trojaned it. Yippee.

    I look at my folks, still running 98, and probably still going to be for another few years. I look at statistics showing millions of people still on the (now or soon to be unsupported) 9x series. If things don't radically change, where will all of the XP users be in 5-6 years? Praying to god they never have to reinstall their OS, I imagine. I know we've flogged this dead horse on Slashdot, but I still don't see anyone else picking up on this. I'm still trying to explain this to a few clients that are trying to stay on NT 4 for as long as their apps are supported, and they plan on going XP as their next upgrade. They don't understand that they will be living on borrowed time once Microsoft EOL's XP, no matter how hard I try.

    I like Windows. I want to continue using Windows. But it's a real bitch knowing older systems are essentially toast once they EOL their "activated" products. Hard drive failure? Oh, sorry, might as well toss that computer. Is this really where we're going with our software? Anyone know if Microsoft has any sort of information as to what, if anything, they plan to do about XP when its time is up? Because when I extrapolate my use, and the use of a lot of people I know, 10 or 20 years down the road, I see a lot of landfill. Well, or Linux machines :)

    --
    Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
    1. Re:WPA is the clincher for me by bratmobile · · Score: 1

      Awwwwww, poor baby. You can no longer steal someone's software -- and that makes it all bad!

      Whiner. If you bought it, activating it is no problem.

    2. Re:WPA is the clincher for me by LaCosaNostradamus · · Score: 1

      Good points. But you neglected to add that Windows XP is exactly what we needed ... six years ago. Too late, Microsoft, just too late. [shakes head]

      I just bought a PII 400MHz for $100. XP would make it crawl. Slackware 9 will make it run, and my PI 100MHz can now retire. Yes, Intel giveth, and Microsoft taketh away ... but Linux has repatriated our hardware. Thank you, Linus and all you other *nix programmers. I can't thank you enough.

      --
      [You have a stable society when some nut guns down a schoolyard and the law doesn't change.]
    3. Re:WPA is the clincher for me by freeweed · · Score: 1

      Wow. Not reading the article, then not reading the article summary, now not even reading a post, then responding. It's a new Slashdot low.

      For those like yourself that haven't been paying attention, let's elaborate:

      Thanks to product activation, once Microsoft EOLs a product, you CAN'T activate it anymore. The only way to continue using your legally purchased, still-useful software, is to USE A CRACKED (read: illegal) COPY.

      What the hell you were talking about, I have no idea.

      --
      Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
    4. Re:WPA is the clincher for me by westlake · · Score: 1
      Thanks to product activation, once Microsoft EOLs a product, you CAN'T activate it anymore.

      and proof of this can be found where?

    5. Re:WPA is the clincher for me by freeweed · · Score: 1

      Well I'd say common sense, but I'll elaborate instead. Do you really think Microsoft will keep their activation servers running forever, for each and every product they release, until the end of time?

      --
      Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
  137. Re:The real reason for the divide-HAH! by Anonymous Coward · · Score: 0

    thanks for the simultaneous chortle/shudder...Trumpet Winsock...that really says it all about the 'ease of use' that Windoze is known for...thank god i never have to touch that POS again...

  138. Re:can this guy actually code? by mydigitalself · · Score: 1

    i just went and read his personal web site and found two things quite funny

    firsly, he's a vegetarian - never trust a vegetarian! secondly was this:

    "I'm a liberal, bicycling vegetarian Jewish computer geek. I have a boyfriend, Jared, (yeah, mom, he's Jewish!) who makes me really happy (giant smile)."

    now i'm not homophobic or anything - but surely that comment to his mother is just hilarious. surely when you bring home your partner and HES A GUY the fact that he's Jewish isn't exactly what's on your mothers mind!

  139. Re:Binary libraries by IceAgeComing · · Score: 1

    If that's really true, I have a device driver for you to port from linux to Windows that could make you semi-famous. It should be a snap to port; it makes straightforward calls to the linux joystick interface API.

    anyone who reads this and wants to give it a try is welcome to it.

    Click this link to learn more about a cool, cheap, multiplayer joystick driver that would be cool to have working under Windows.

    I've had at least one guy who's used the Windows API for more than ten years tell me that there is no good documentation for writing device drivers using Microsoft's DirectX, even to something as simple as the joystick port. It would be so cool for you to prove him wrong, and people would adore you from afar. :-)

  140. Re:How to tell if you are a linux fanatic. by tepples · · Score: 1

    2. which windows emulator costs $300??

    vmware.

    i plug in my camera's usb... it works perfectly i didn't touch a thing, well except to browse my photos of course. the windows software that came with my camera is utter crap

    On the other hand, SANE doesn't support my Microtek Scanmaker 4850 USB scanner at all.

    but this is hardly the fault of linux distro's as these technologies are held back by patents and copyright holders who don't have a clue.

    Then why has Microsoft been so much more successful in wooing these patent holders and copyright owners to its platform?

  141. Re:Command line? Hell, how about process? Security by KilobyteKnight · · Score: 2, Funny

    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.

    It sounds to me like you are trying to get fired. But, since I am looking for a job at the moment, what company are your working for?

    I'm willing to get paid to sit around letting the system fall apart -- then heaping all the blame on the boss. That works for me... it's a built-in promotion.

    Once the boss is out of the way, I can fix the stuff... built-in raise + respect from upper management.

    Once I have acheived that state, then I can coast to retirement... built-in retirement plan. This part, of course, requires hiring people to do the actual work... and you'll need a job. I could probably talk them into rehiring you.

    --
    When will Windows be ready for the desktop?
  142. Re:can this guy actually code? by Anonymous Coward · · Score: 0

    Yeah, the Windows/Java programmer will happily just use whatever XML libs are available. While the Unix programmer has his own favorite file format and loves writing yet another parser to show off his manly awk skills.

  143. Re:Documentation vs Slim to none by Anonymous Coward · · Score: 0

    > The gpsd project is a project that takes the gps data collected by a serial port and makes it availble not just to apps running on the local machine, but also across a network. The advantage is that if you have programs wrote to work with gpsd, you can use MULTIPLE map programs at the same time each showing your current position. You don't have to juggle the serial port between 2-3 programs if you use one map program because of one reason and another map program for another reason. This has not even been dreamt of yet on Windows and the only way to accomplish it on Windows is using 2 GPS's each on their own serial port.[my emphasis] To make the data available to any application that want/needs it, you just configure the daemon to look at the serial port your GPS is connected to and then other programs can get the data from the daemon instead of the serial port.

    This is such crap. I've seen plenty of service-based apps in Windows that allow exactly the same kind of simultaneous multi-GUI frontends as gpsd, and any competent Windows programmer can write such a service. Geez, you write like services were some great unknown concept in Windowsland.

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

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

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

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

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

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

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

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

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

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

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:Sucky... compared to what? by Zoop · · Score: 1

      Compared to the principles of UI design. Sometimes that means good X apps, sometimes it's Mac OS apps, sometimes it's Be OS apps, sometimes it's a Java app, sometimes even a Windows app. Whenever an app has good UI, it doen't suck.

      I'm not saying that X apps are the be-all of UI design, far from it--just that if Windows is allegedly characterized by user-focus as opposed to programmer-focus, Windows comes up short to its own standard. And I'm talking about Windows apps generally, not just the OS itself or Microsoft apps.

    2. Re:Sucky... compared to what? by Lost2Home · · Score: 1
      He wants that if in Word CTRL+X is "cut", then in every single program it's still "cut". He wants that if F1 is "Help", then by God, it better be "Help" in all programs. And if one program's scrollbars behave in one particular way, then it better be the same way in all programs.

      If you want to make that comparison, stick to menu layouts. Keyboard shortcuts do not remain the same even in MS applications. Try CTRL+F in Word and Outlook and notice the difference. As long as you use the mouse, the Windows UI is very similar across apps. Of course with the "personalized menus" option, the command locations within a specific menu will no longer be consistent across applications either.

    3. Re:Sucky... compared to what? by Anonymous Coward · · Score: 0

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

      Does something have to be compared to something else, just to suck?

      Technically the only guis that make sense are the ones created by specialty outfits for niche markets (photoshop, cubase, et al.). They are the only outfits who know their end-user's needs and care to do anything about it, because their livelihood depends on it.

      MS doesn't have to work to keep their customer base because skilled administrators of other OS's are very hard to find. Most chimpanzees can run a windows box in a DHCP addressed/SMS (or cognet or...) maintained network.

      l8,
      AC

    4. Re:Sucky... compared to what? by Anonymous Coward · · Score: 0

      On Windows, if your program is busy doing something, the display won't get refreshed, even if all you do is minimize it and do something else. The Windows message queue is set up so that if any other events are outstanding, the refresh events don't get sent to your application. The intent is to save CPU time. The effect is that your program is still humming along and working fine, but it isn't until 11 minutes later (when it decides to redraw everything 742 times) that you can tell that it's still alive!

      OK, go ahead and tell me you think this is a good GUI. For my personal tastes, I will gladly learn a different scrollbar idiom for each program just to avoid this one thing. But then, it really drives me crazy. :-)

    5. Re:Sucky... compared to what? by dr.badass · · Score: 1

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

      Oh boy, that's easy : Mac OS X

      --
      Don't become a regular here -- you will become retarded.
    6. Re:Sucky... compared to what? by Ambassador+Kosh · · Score: 1

      Use KDE then.

      I have tried it at lots of dpi settings and every program in it scales correctly since there is a layout manager.

      Shortcuts by default are the same in all kde applications for the same command. You can also change that system wide. If you change cut to be F12 it is F12 in every kde application.

      However KDE also shows a large degree of caring with the kio-slaves. Can you tell me that windows or macosx have EVERY app url transparent to probably 50 or more different protocols. Do you have any idea how much time can be saved in a web app when the client can work with any of the urls transparently? Overall from what I have seen of users using kde they have found it far easier to use then windows and macosx and more productive. Also once you show them how the io slaves work they don't want to go back to anything else because it is so easy.

      As a small example of what has saved customers and other developers a fair bit of time is that kio-slaves work in an html file form control. I have often seen it where you wanted a file on some remote webpage uploaded to a different one. All you do is take the url for the one you want and paste it into the file upload box and when you send the form kde will grab the remote file and send it as part of the form submit. No messing with downloading files locally and then uploading them. Everything just works transparently for you.

      That kind of thinking is for the end user and it helps a lot and gnome is the only system other then kde that has these kinds of features although from what I understand it does not work as well yet but it is progressing rapidly and likely the kde and gnome ones will becoming unified at some point.

      --
      Computer modeling for biotech drug manufacturing is HARD! :)
    7. Re:Sucky... compared to what? by Anonymous Coward · · Score: 0

      "Score:5, Insightful"? This wasn't rated -1, Flamebait?

    8. Re:Sucky... compared to what? by tigga · · Score: 1
      No, seriously? Windows GUIs suck... compared to what?

      Hold your breath. Looks like severe case of lack of attention.

      Parent post says Windows programs have suck sucky UI most of the time.

      Not Windows GUI and not all the time.

    9. Re:Sucky... compared to what? by waveclaw · · Score: 3, Informative

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

      Compared to X? The same X where every single programmer just _has_ to use a different layout, different shortcuts, different menu structure, and for bonus points his own widgets?


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

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

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

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

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

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

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

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

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

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

      --

      "You cannot have a General Will unless you have shared experiences. You cannot be fair to people you don't know."
    10. Re:Sucky... compared to what? by Anonymous Coward · · Score: 0

      Video Game UIs universally suck ass. I'm the sort of dipshit who convinces himself that some key command like shift-leftarrow or home or something just *might* work in a video game text box. Universally, the video game will make an ass out of me.

      Video game UIs only exist because it's impractical to use normal widgets on a 3D screen. Furthermore, they only have a couple trivial settings screens, nothing like a real application would have.

      Quite frankly, if ever piece of software had a "creative" UI like video games or retardo flash applets, I'd just give up computers all togehter. "UI Designers" that think up that stuff should die slowly and painfully.

    11. Re:Sucky... compared to what? by Moraelin · · Score: 1

      No, I'm going to say that what you're describing there is:

      1. An incompetently programmed GUI.

      Any experienced Windows programmer will use a thread if the operation tends to take more than half a second. Better yet, he or she will show you a progress bar, so you know what's happening. Some (e.g., IE), will even show you partial results along the way.

      I.e., oh please, just because you never learned how to use a thread, doesn't mean that everyone else is just as clueless. Pick a book. It will do you more good than trolling along the lines of "Windows sucks because I can't program."

      2. Just trolling anyway.

      For example: if you had actually programmed in Windows (and I mean past the level of a burger-flipper stringing together pre-made components in VB), you'd know that it does _not_ redraw everything 742 times in that situation. Redraw requests are not simply put in the queue one after the other like that, and that has always been the case. (Or at least since Windows 3.0, when I began programming for Windows.)

      You'd also know that it has the concept of a clipping region. I.e., even if your own incompetently programmed application explicitly called itself to repaint 742 times, (A) you can detect a needless update and not do it, and (B) the user wouldn't see 742 updates, because the last 741 ones are just clipped away.

      So again: pick a book before criticizing something.

      --
      A polar bear is a cartesian bear after a coordinate transform.
    12. Re:Sucky... compared to what? by Rich0 · · Score: 1

      Any experienced Windows programmer will use a thread if the operation tends to take more than half a second.

      I guess that doesn't include the folks who wrote Access 97. When I copy and paste 300,000 records into a DB it just freezes up for a minute or two.

      Ditto for running big queries (especially update/append queries).

  145. Windows Ignorance by Anonymous Coward · · Score: 0
    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.
    Amen. Just yesterday I dealt with a Windows-only person who couldn't figure out how to read an ASCII file (Perl script) on a Windows machine. "But it's all garbage in Notepad". Good luck explaining to them why Notepad is garbage and not the file they're trying to read.
    1. Re:Windows Ignorance by vrt3 · · Score: 1

      Hm. I figure many Windows-only persons would think it's all garbage even if their editor of choice could read the file perfectly.

      --
      This sig under construction. Please check back later.
  146. Re:can this guy actually code? by Permission+Denied · · Score: 2, Insightful
    cat image.iso | cdrecord

    cat /dev/sda1 | cdrecord

    UUOC. Instead,

    cdrecord < image.iso
    cdrecord < /dev/sda1
  147. from a former windows nut by 1eyedhive · · Score: 3, Interesting

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

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

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

    --
    Logistical Chaos Officer http://www.slagg.org - LAN Gaming in Sarasota FL,USA
  148. Command economy is always better by amorsen · · Score: 1
    I've said it time and time again - we need to drop GNOME or KDE (preferably keeping KDE, IMHO) and just run with that.

    Yes, we need to stop wasting all that effort duplicating things and instead build the best solution the first time. I propose that we make the LUGs into committees and make a super-committee, the Union of Linux Committees, which will then delegate work. That way our leaders can decide what is most important for the Community, and their wisdom will ensure that we do not stray from the true path. History has shown that letting people influence their own lives only leads to confused running in all directions at once.

    --
    Finally! A year of moderation! Ready for 2019?
  149. Re:can this guy actually code? by You're+All+Wrong · · Score: 1

    Yeah, but if it was game of minesweeper that was being programmed. At least three of your hires are going to be sitting around twiddling their thumbs.

    I'd just hire a Perl/Tk or Tcl/Tk hacker, and feed him enough coke and pizza to last him the single afternoon that it will take him to finish the task.

    You'll be over-budget, and I'll be putting my feet up "testing" the program the next day.

    YAW.

    --
    Your head of state is a corrupt weasel, I hope you're happy.
  150. Re:Bubbling frustration by haystor · · Score: 1

    I'm convinced one of the root causes of this is that Windows people need something to point to when purchasing their solution. This is because they have the mentality that solutions are best purchased so you have someone to point to when it goes bad.

    --
    t
  151. Re:Trannys by Anonymous Coward · · Score: 0

    BTW. There are differences in transmissions. Automatics generally use more power to operate. Although in towing situations an automatic will usually do better. Software decides the optimum shift timing based on load, engine speed etc.

  152. Re:can this guy actually code? by awol · · Score: 1

    Ever heard of a little technology called XML? Quite popular on UNIX and Windows apparently.

    Of course. And if you think that it is anything even remotely close to a solution to the issue I discussed then you have completely missed the point. An XSLT is the nearest thing to useful in this space, but the problem remains, your userid field is my useridentifier field and the writing of that translation is exactly the problem. In this context XML solves nothing, just provides a language in which to implement solutions. Whilst this may be an improvement, it is arguable at best.

    --
    "The first thing to do when you find yourself in a hole is stop digging."
  153. Mod parent up by Anonymous Coward · · Score: 0

    Amen. However, I'll disagree with you that Unix GUIs are bad. Mainly, they're ugly and non-functional from a UI standard point of view, but I think they're just dandy for what Unix geeks actually use them for. Besides, they're a pain to program.

  154. Windows vs. UNIX programming by luwain · · Score: 3, Insightful

    I have extensive experience "programming Windows" and programming "UNIX" [ I live and work "without prejudice"], so I've moved between and am comfortable in both "cultures". Interestingly enough, I find that the cultural divide is much more pronounced now than 20 years ago (20 years ago, did anyone program exclusively for Windows? -- the platform was a joke...). I think that because the Windows SDK is controlled by Microsoft, it's more difficult to do really insightful programming for that platform. So much Unix and Linux stuff is "open", that programmers involved in that culture are exposed to more "inner workings", etc... Where programmers have ONLY used Microsoft's Visual Studio and have ONLY produced end-user, non-programmer apps, their skills I feel are limited. UNIX programmers can certainly produce apps for non-programmers (Open Office, Gimp, KDE etc...), but I think that "Windows Cultured" programmers cannot as easily develop "programmer's tools". I don't think it has as much to do with "culture" as much as "depth and varity of knowledge."

    1. Re:Windows vs. UNIX programming by Darth_Burrito · · Score: 1

      Where programmers have ONLY used Microsoft's Visual Studio and have ONLY produced end-user, non-programmer apps, their skills I feel are limited. UNIX programmers can certainly produce apps for non-programmers (Open Office, Gimp, KDE etc...), but I think that "Windows Cultured" programmers cannot as easily develop "programmer's tools".

      I agree that people who have only produced end user apps will have difficulty producing many kinds of developer tools. However, I have trouble believing that all or even most "Windows Cultured" programmers' experiences are limited to developing end user applications. I know mine aren't.

  155. Re:can this guy actually code? by You're+All+Wrong · · Score: 1

    Hear, hear.
    I've only read a few things of his (typically via slashdot stories), but I've been amazed at the number of times he's promoted Microsoft and their way of doing things even if it's patently obvious to the outsider that either their particular methodology was not the source of their success, or that they didn't actually have any success in the direction he claimed. Usually the latter, or the former where the real reasons were monopolistic business practices.

    Out of Tog, Sporksky, and ESR, only Tog manages to be detached enough to be believable (or instead of 'detached' should I say he's right often enough with what could be considered universal truths, that aren't just Mac specific). However, all three are over-inflated IMHO.
    (Gettys not much better but keeps a lower profile).
    Some 'spokespeople' however, I think do represent their cases very well. Stroustrup and Berners-Lee, for example. But these are even lower-profile.

    YAW.

    --
    Your head of state is a corrupt weasel, I hope you're happy.
  156. Re:The essential difference by Anonymous Coward · · Score: 0

    I'm sorry, but layers, good documentation - in Unix ???? Windows is scarsely better, but be serious. Unix is a massive indecipherable muddle at heart. It ought to have died long, long ago.

    Oh Be why hath you forsaken us.

  157. Re:How to tell if you are a linux fanatic. by Jim_Maryland · · Score: 1

    Not all post here are, strictly speaking, pro Linux. I'll agree that you won't find an OS out there that doesn't have some level of flaws.
    Now for a couple of questions...

    - Why is M$ worried about Linux? Could it be the fear that eventually Linux will mature enough to compete at the desktop level? Linux already competes at the server level, but generally in limited application (server software vendors are developing their applications for Linux platform as well as the various commercial UNIX flavors).

    - As for you comments on emulating Win32, any OS that desires to compete will need to offer interoperability to some level. If you take the "office" products as an example, yes, competing applications develop around the MS file formats. Taking that into consideration then, why did MS develop all the tools to read the other "office" developer file formats? They wanted to compete.

    - Your comment about the average Joe and Linux is probably correct, but then again, the average Joe doesn't care about what makes their computer work. All they want is to be able to read their email, surf the web, and play a few games. I'd guess (sorry, don't know the statistics here) that if you asked an average computer user about the details of their operating system that they'd give a less than complete answer. They'd probably say MS and if they get the version, they actually paid attention to the boot up. Ask them why they chose that OS, and I'm sure they'd say it came with the PC (and they probably didn't have a choice as the mfg includes it as a bundle).

    - As for professional printing capabilities, can't respond to that one in any detail. I've personally only had very minimal exposure to a Linux box. I'd have to guess that Linux, as most UNIX flavors do, supports PostScript formats and the professional printing is limited to the software development side, not the OS.

    - You bring up scripting as being masochistic. I'm sort of partial to the simplicity of scripting in the UNIX environment. If I want something to run at system boot time, I find doing so much simpler to add to the /etc/rc#.d directory (at least that's the format in the UNIX flavors I'm most comfortable with) compared to creating a service on a Win32 system. I do however appreciate some of the ease of GUI generation capabilities found with the Visual Studio IDE, but get pretty P-off'd when the IDE crashes (not frequent, but not exactly rare) when testing code.

    - As for gaming/home entertainment/education, yes, the choices are a bit more limited. This may change over time as the platform becomes more accepted. Applications do exist in most cases, but do not have the publicity afforded to MS or MS platform developers. Most of the Linux developers don't have the cash and must spread via the web.

    - Your quick to point out that Linux people have problems w/ point and click. At the developer level, everyone eventually needs to code. An IDE will help generate framework, but the coding must still be done. Any coding for an end user will benefit from point and click and generally is written as such, even in the UNIX realm.

    - Your comment about MS Media players support for other platforms shows that MS is only willing to interoperate with the ones they develop for. I haven't seen a Media Player for the other UNIX flavors. I also noticed that the Media Player for Solaris is still at version 6.3 (any ideas why they haven't put out a more recent version?).


    Well I don't have time to respond to all of these. Must get back to work, but felt a need to defend a little.
    Last note, I work with Win32 (NT, 2000, XP), Solaris, IRIX, and AIX. Only exposure to Linux was an old box I tried to salvage with a Linux install. I regularly work to integrate applications in a heterogeneous environments and find that Win32 based systems are often less willing to accept that other platforms exist. My preference is UNIX (any flavor) over Win32 for many reasons, partic

  158. Prototypes by solprovider · · Score: 1

    Grandparent:
    Write your prototype - and then deploy it, because it's already fast and robust enough for everyday use.

    Parent:
    And then watch it die ...

    Joke:
    You obviously do not work for MS. Proper marketing can sell anything.

    Real reply:
    If you use a good platform, the prototype develops into the application. Without recreating the prototype. Without leaving excess code behind. Without making the program impossible to maintain.

    My primary platform for business applications is great. I can build the interface or the functionality first. I can expand either at any time, rarely worrying about new stuff interfering with the existing stuff. The datastore automatically expands to include any fields need by the UI or the code. The source code is the programming documentation, although comments are welcome. The integrated debugger walks through the code showing the value of all variables, allowing easy debugging, and making it easy to learn what code does, and making it easy to see all the code that runs, so an obscure function is not missed. I can create backups of the entire application or any piece of functionality before making changes. The most recent version includes check-in/check-out of design elements. The client used to be cross-platform, but I can move the interface to use a web browser in minutes.

    Where I start building an application depends on what it will do. If the interface is very important, then I start with the interface. Then I can get user input into whether all data is being captured. You can call that a protoype, but it is functional for data input, although most of the specifications have not been implemented at that point.

    If how the data is processed is the important function, then I start with the code, then add an interface to allow configuration. Most applications require both, so I build an interface for the data entry, then build code for the functionality, then add to the interface for configuration. Repeat until the application does everything I can imagine (which is usually a superset of everything the users or specifications wanted.) When ready for release (and all fields are specified), redesign the interface for friendliness and productivity (without worrying that something will break because I moved a field.)

    ---
    That is how I work professionally. For fun at home, I use Notepad or vi to write Java. But my home work does not require the easy development/maintenance needed by business applications.

    --
    I spend my life entertaining my brain.
    1. Re:Prototypes by Anonymous Coward · · Score: 0

      Of course, how many times did you need to screw up before you finally figured out your perfect workflow ? Fact of the matter is, you've already done the prototyping. You've done essentially the same application over and over again, and all that's necessary at this point is to adapt what you've already done to each specific business case.

      If you had to write a program which was not your typical business application, then you'd probably need a prototype or two under your belt before getting down to business. I'm not knocking what you're doing, as it's a great way to do things; I'm just pointing out that the parent poster's point isn't invalidated by your own methods.

    2. Re:Prototypes by solprovider · · Score: 1

      [Answering an AC]
      I may be missing your point. You state that I've already done the prototyping because I've done essentially the same application over and over again, and all that's necessary at this point is to adapt what you've already done to each specific business case. All programs have input and output; all business applications require data entry and storage. The platform handles that, as well as security and much of the networking. Yes, I follow certain guidelines that I have developed over time (and will be in my book if I finish it,) but I am paid for experience.

      If I switched to programming games, I would be a newbie, and would need a few minutes to learn the differences. I might even read a book on the subject before deciding the best method to program.

      Or I could find a platform that provides all the basic functionality for the type of game I want to write and work with the platform. When writing a FPS, would you prefer to start with a C compiler, or the latest engine from id Software? The Quake engine provides the input, configuration, graphics output, and networking functionality. If I want to write a FPS, I do not need to rewrite them.

      Same with business applications: The platform provides the input screens, the ability to organize the data, the networking, the ability to sychronize between servers and laptops, a great security system. All I need to do is write the business functionality and the user interface. But it is not about what I've done; it is about what is provided by the platform. Otherwise application development could take weeks or even months! Most businesses should not wait for their applications. They think of something; next week I deliver. Everybody moves on.

      Professionally, I have never had a project go over budget or miss a release date, nevermind have one actually fail. Any mistakes are caught before deployment, so they do not count, right?

      Very few of my applications look like existing applications. I'm on the expensive side, and companies tend to ask their full-timers for a solution first, so I only get the strange ones. Except that a few companies have learned that it is cheaper to ask me first, so I am usually busy, which keeps my price rising, so companies will ask less expensive programmers first.

      --
      I spend my life entertaining my brain.
    3. Re:Prototypes by fizbin · · Score: 1
      My primary platform for business applications is great. I can build the interface or the functionality first. I can expand either at any time, rarely worrying about new stuff interfering with the existing stuff.
      Care to share the name of this system, or at least something more about what it is? Or is it too incredibly hush-hush proprietary to tell us?

      I'm curious because everywhere I look I see the detritus of RAD platforms that weren't and that left us with stuff we still have to clean up after. What have you found that provides both rapid development and easy maintenance after initial development?
    4. Re:Prototypes by kyz · · Score: 1

      The source code is the programming documentation, although comments are welcome.

      You're saying you write no design documentation or user documentation? You're saying that, in order for a new programmer to understand your projects, they would have to read the entire source code of the project, which is mostly code with the occasional comment?

      If the interface is very important, then I start with the interface. [...] If how the data is processed is the important function, then I start with the code,

      When do you do the business case? When do you do the design? When do you validate the design? When do you partition the work? It appears you don't. It appears you are cranking out one day, one person projects.

      I won't denigrate you for writing them. Everybody has to start somewhere. Tying a small UI to a small database with a tool designed for doing just that is not hard work. Consider yourself lucky that you don't have to maintain a billion LOC, 20 year old project that you didn't write.

      --
      Does my bum look big in this?
    5. Re:Prototypes by solprovider · · Score: 1

      I apologize. I was deluded that I had a reputation as a Lotus Notes zealot. In the hands of a trained programmer, it is wonderful. The bad is that I am one of very few real programmers who works with it, and I do not know any of the others.

      Should I add my usual rant about how there are few trained programmers working with the Notes platform? Because it is so easy to create solutions so,
      1. Untrained "developers" can make a living.
      2. Real programmers cannot find the challenge they need.
      Just read my other posts.

      I keep hoping another real programmer will become interested in the Notes platform. It would be nice to converse about my niche with someone who knew what is an algorithm.

      --
      I spend my life entertaining my brain.
    6. Re:Prototypes by solprovider · · Score: 1

      I am guessing you are a PM, so most of this will seem incredibly lax to you. Most of your questions are about non-productive parts of projects used to pad the costs.

      I already admitting to adding comments to the code. With the debugger, it is possible to learn an application just by taking a test document through the process.

      I did not mention design documentation. I usually write a list of the important or tricky elements, and a complete workflow of a record, and store it in the application.

      There is a very junior programmer that regularly adds code to a few of my applications. 4 years ago I taught him a few basic concepts, because the data he was modifying was in the wrong table. The documentation was there (well, actually, the table was named "backup".) Others see my code. No one has had difficulty following it. I would be told because I would provide free support until they were happy. (Standard line from me: "The application is finished when you are smiling." Factually untrue because they usually start smiling when they see the demos, and the application is not finished until rollout.)

      I did not mention user documentation. Read my other posts. I believe assistance should be provided at the point that it is required. Separate user documentation might be nice for off-line training, but I believe that off-line training is a waste of time. I do occasionally write extra documentation (because I get paid as much for writing documentation as for productive work), and I write it very well, but I believe I have failed if it ever gets used.

      Business cases are a waste of time. If there was one, it was used as justification for hiring me, and is now obsolete since I will handle the rest.

      Use cases are usually a waste of time. Again, they are usually done before I am hired. I have referred to them occasionally. I actually read one for information rather than humor.

      For specifications, I usually talk to a group including:
      - a techie manager (for the environment and back-end specifications for integration),
      - a business manager (because its his money) and
      - a user (because I need the example of someone who will use it. They also tell me what the old system did, how they really use it, and what the real process is.)

      I write a document telling them what I heard, clarifying anything weird or complicated. I may explain how I will reengineer the business process (if I am allowed.)
      - Then I design the application. I usually do it in my head, although I may use paper or a text editor to keep notes. If it needs to be broken into pieces, I then discuss what pieces are needed to make it functional, and which should be added later (like next week.)
      - If anything is to be handled by others, I tell/write them about what is needed: sometimes I need professional graphics, sometimes I need the table definitions for a RDBMS.

      Then I create the application. As soon as screens are ready, I demo them to show progress and check the colors. Then I demo the alpha, then beta testing, then rollout.

      I usually do the spec-gathering on TUE, WED, or THU, then demo it on TUE, start beta on WED, and do rollout for MON or TUE. So all applications take about 2 weeks. Most of that time allows my subconcious to notice if I forgot anything or included a bug. If I write code and put it into production the same day, bad things happen. So I prefer to sleep on an application for at least one day before rollout.

      ---
      On to the personal attack:
      It appears you are cranking out one day, one person projects.
      I won't denigrate you for writing them. Everybody has to start somewhere. Tying a small UI to a small database with a tool designed for doing just that is not hard work. Consider yourself lucky that you don't have to maintain a billion LOC, 20 year old project that you didn't write.


      I think of all projects as taking one week, unless something really complicated is involved. (See above, but the second week is the users

      --
      I spend my life entertaining my brain.
  159. Re:Mirror world by imroy · · 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.

    One word: toilets. That was the first culture shock for me and my family when we travelled to the US in 1990. I was 12 at the time and my first reaction at seeing the hotel toilet was the bloody toilet's blocked up! And the toilets were different everywhere we went! All different flushing actions, with ducts and such at the bottom of the bowl to get rid of the waste as exepdiently as possible. And Americans seem to be embaressed of the word "toilet" so they camoflage it by using other terms: "washroom", "restroom", "little boy/girls room", etc. Very odd.

    I haven't been to the UK, but I have been to Germany a few years ago. The toilets there were much more like our Aussie toilets. For me the things that stuck out in deutschland were the dual-axis swinging windows that seemed to be everywhere (at least around Augsburg), the "schwartz musik" ("black music" i.e rap, hip-hop, soul, etc) section in music stores. And in the underground parking lot of a restaurant we found a special parking spot that seemed to be reserved for women drivers, but that might have simply been due to the limited german-language skills of myself and my company at the time.

  160. My estimation of ESR has gone up by Anonymous Coward · · Score: 2, Interesting

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

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

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

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

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

  161. Re:can this guy actually code? by Anonymous Coward · · Score: 0

    what's up with people who think UUOC?

    cat in| filter1 | filter2 > out

    is preferable to *me* after 15+ years of using unix and helping users with unix.

    why?

    filter1 out

    very nice... but what if you want to prepend procedding?

    dosomething | filter1 out

    oops! error. why? oh.. there ... can't have two inputs to the second part of the command... fiter1. ok, now lets say I know of this before hand...

    many times, in unix, commands are "evolved" ... so you do soemthing like:
    cat file
    then you look at the output, ok I need column 5
    so you use history (control-p? up arrow?)
    cat file | awk '{print $5}'
    ah, nice... but now I want that sorted...
    cat file | awk '{print %5}' | sort > out

    sure, I could have started off with something similar to:
    sort +5.0 file > out
    and I do admire those who know the output format
    before it is generated.

    New users in unix always seem to get confused
    with the difference between ... lets
    not even mention > (not even close to
    each other in *their* minds) ... 2>&1 forget it.

    a (new) user will type
    cdrecord > file
    (and be hanging? waiting on input?)
    they might type ^C to break... read...
    later come back -- WHAT!? MY FILE IS GONE.

    cat file | cedrecord

    now they might get some usage... some errors... but their file isn't gone.

    cat file | tr '\015' '\012' | cdrecord

    You want a useless use of cat?
    cat file | cat | cat | cat | cat ...

    othewise, I think people are just fooling themselves.

    next...

  162. Re:can this guy actually code? by Anonymous Coward · · Score: 0

    and to followup on my own post --

    let me clarify... command line unix usage is
    *different* from (shell script) programming.

    I do not advocate "useless use of cat" in programming. I do use ... but that's because the commands have been previously "evolved" and tested, etc. Even when building a command, I will use a redirect in via rather than a cat file.

    On the command line and interactive... 100% different.

  163. Re:Binary libraries by Anonymous Coward · · Score: 0

    Except when the documentation is wrong. If you built the library yourself, or have a reasonable expectation that the source code is the same in at least the function you're trying to debug, then you know the source code is never wrong. Documentation writers aren't perfect, and they can forget/ignore important details that an application programmer might want/need.

  164. What a fucking gasbag you are by Anonymous Coward · · Score: 0

    Reading too much Gibson?

    What a bunch of non-sensical, english-major ramblings.

    It seems you have such little to say, wrapping it in faux-tek speak will make it seem appealing.

    When it is merely tripe.

  165. Re:The essential difference by Anonymous Coward · · Score: 0

    Actually, this is more a matter of software not written in a monopoly environment. When you don't have inside access to change things as you please, then you're forced to abstract and layer things. It's like the difference between running into a problem and instantly moving it into the kernel, and coming up with a carefully-designed interface to accomplish the same task from userland. A Microsoft programmer has the first option, but somebody programming for Linux is probably going to have a hard time convincing the kernel maintainers to include their custom hack to enable, say, threads, without a real and pressing justification.

  166. Re:Non-ideological? Uh-huh. by hawkfish · · Score: 1
    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.

    s/UNIX/Europeans/
    s/Windows/Americans/

    (Ducks!)
    --
    You will not drink with us, but you would taste our steel? - Walter Matthau, The Pirates
  167. Re:Binary libraries by Gwala · · Score: 1

    Try internet explorer's explorer bars section of MSDN, there's about a paragraph of text total. I was programming a remote favourites system in the other day, the only way to get anything is from sample code in the platform sdk. It's hideous. Doing the same thing for mozilla took about 90 minutes, not a full day.

    Lot's of frequently used MS stuff is well documented, but anything off the beaten path is generally impossible.

    -Adam

    --
    #!/bin/csh cat $0
  168. Re:Bubbling frustration by mdielmann · · Score: 1

    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.

    You're right on the first point, but need to try a little harder on the second one. Even Windows programmers know the difference between single-app (I can't remember the right name, but I don't write those), client/server, 3-tier, and n-tier. Programming. Hell, MS has books that talk about it. Of course, you might argue that VB programmers can't read anyway...

    --
    Sure I'm paranoid, but am I paranoid enough?
  169. Re:The real reason behind "silence is golden" by Anonymous Coward · · Score: 0

    One of the reasons for the invention of the dialog box is that GUI programmers don't have anywhere convenient to redirect stdin/stdout/etc.

  170. Re:Binary libraries by spitzak · · Score: 1

    Yes, the code that implements the API is often not very useful. But code that calls the API IS! Usually a huge amount more useful than pages and pages of documentation.

    I have certainly looked up reams of Microsoft Developer Studio pages, and they are seriously lacking in real examples of how to actually use a function. In much less time I was able to write an Xlib interface (and Xlib is FAR worse of an API than Win32!) that did identical work because of the ability to cut & paste from actual working non-toy programs. I may also have been helped in that the source code had not been sanitized by marketing deleting all the "this sucks but you have to do it this way" comments.

    The documentation on Linux sucks, except for the man pages (and RMS seems intent on killing those and turning them all into "info" thus removing the remaining readable documentation!). Yet the fact that programmers seem to be doing better on Linux despite this fact should say something!

    PS: It would help if MSDN had a working "search" function. When I time in a Win32 API call name like PeekMessage I want to see the page that describes how to call that function! Not a hundred pages about Access or VB or developer notes that say "you should use PeekMessage to do this"

  171. Windows Registry by solprovider · · Score: 1

    The Windows Registry is easy to program. You can easily add information. Removing information is a little more difficult. I have worked with it enough that some of the standard MS stuff actually makes sense, causing me to doubt my sanity. I expect whoever invented CLSIDs will be forced to type them in manually for eternity.

    The problem is that if you have a problem with the Registry, your entire computer is useless. This one place (2 files) owns your system, and if anything happens to it, you must reinstall every application that depends on it.

    MS does not have the brains and/or empathy to have implemented regular backups. Back it up every successful boot, and keep at least the last 5. If there is a problem, mark the current one as bad and use the next newest.

    Applications should not depend on the Registry. Program applications so that if the registry disappeared, the program would still function. Use default settings. Then try to create the registry settings again.

    I believe that I should be able to delete any configuration file without causing programs to fail. This should include the registry or any specific setting in it. If the settings is missing, use the default. If the setting is bad, use the default. Easy, and proof against both fools and geniuses.

    ---
    Sorry, currently sensitive on this subject.

    Over Thanksgiving I finished configuring my father's computer. Two weeks later the registry failed. It reverted to the only backup, which was from when the OS was installed over 1 year ago, and before any applications were installed. Almost every program is useless, and most must be reinstalled. Yes, bad programming on the application vendor's part (such as the programmers who wrote MSWord), but very bad programming on the OS vendor's part (such as the programmers who wrote MSWindows.) I already have him using OpenOffice and Mozilla, but I cannot switch him to Linux until I find a replacement for Photoshop. So I must reinstall MSWindows and all the applications once again, and I am really busy launching another start-up this month.

    Yes, he usually uses OpenOffice because it is easier and less crash-prone, but he said there were a couple of things it does not do yet, so he still needs MSWord. He is willing to give them up, (or maybe OO2 will fix them) but he cannot give up Photoshop without a replacement.

    --
    I spend my life entertaining my brain.
    1. Re:Windows Registry by bmyers · · Score: 1
      For a photoshop replacement, try The Gimp

      BTW, the title "Gimp" is not derogatory -- it stands for Gnu Image Manipulation Program.

      --

      #man woman
      segmentation fault - core dumped.
    2. Re:Windows Registry by Chanc_Gorkon · · Score: 1

      That depends. His father would probably be OK with it. For those who need to do CMYK separations for really high quality print jobs, then the GIMP won't do. It works fine for me though and it's what I use. I think I heard the Gimp is supposed to have these in the 2.0 version.

      --

      Gorkman

  172. Re:The essential difference by bratmobile · · Score: 1

    Clean separation? No duplication? In UNIX?!? What are you smoking?

    GNOME, KDE, fvwm, icewm, *wm, etc. The hundreds of Linux distros. There's a HUGE amount of duplication in UNIX! Every third open-source kid thinks its his right, nay, his imperative to duplicate something out there!

    Formal and definite layers? Bwahhahahahhahha! You're lucky if UNIX apps document their command-line arguments.

  173. Re:The essential difference by The+Bungi · · Score: 2, Insightful
    The architecture basically fell apart about 75% through the project.

    Translation: We didn't know what we were doing, so we fucked it up. And now when I remember, I blame it on the vendor. It's so much better that way.

    I guess around the time they stopped making use cases and actually tried to scale the prototypes up to work on their clusters.

    See above. Because I surmise you're concluding that the same group of people with the same design using some CORBA implementation and MQSeries or some other IBM software would have actually managed to finish the project.

    [...] it was an engineer from the bank who finally discovered the real problem, apparently.[...]

    Do you or do you not know what actually happened? "Apparently"? I thought you were talking as a sort of authority on why COM+ and MSMQ couldn't talk to each other.

    The COM+ developers and the MSMQ developers knew their own products very well but were unable to figure out what was happening between the two.

    Statistics are a bitch. Especially when they come in a single data point. You know, because I've successfully designed and implemented extremely complex systems using these two technologies. Yes, using clusters (AC2K) actually. In fact you could say they're my bread and butter. I think you're just like everyone else who has a chip on their shoulder and a dubious anecdote to tell to anyone who will listen. After all, you don't get the code and Microsoft is evil, so ergo whatever technology they produce can be reasonably expected to suck. There's always the very valuable "well I can't see their code so I can't fix mine" argument. Oh and, of course the whole debacle made the company cautious about using any other Microsoft technologies. Classic.

    So I'd suggest that in the future, unless you have some technical backing and cold hard facts to go with it, to just keep this little story to yourself. Not because I fear FUD, but because it simply proves that, if you're an idiot, you won't be able to design decent systems or write good code, no matter what the platform or middleware technologies happen to be. Seems to me that this is quite evident from your case study.

  174. Re:The real reason behind "silence is golden" by po8 · · Score: 2, Insightful

    Spolsky: "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 or a program that produced no output because it misinterpreted your request."

    Except on UNIX, even Aunt Madge will rapidly learn that programs just don't silently fail. If you can trust program failures to produce diagnostics, then you don't need diagnostics for program success.

    IMHO, the biggest divide between the two camps is this: In UNIX, I am surprised when something is broken. In Windows, I am surprised when something works.

  175. Re:to sum it up... mod parent down by j-pimp · · Score: 1

    You can do Windows programming using vi or emacs if you want to, and compile at the command line.

    If you'd rather do that than use VS then you're insane.


    Well, what about Using Vim from within Visual Studio and compiling with VS? Or writing the make file yourself and using :make in GVIM. I'm sure you can do similar with emacs, jsut don't know emacs. Vi and Emacs are both good text editors. GVIM and Emacs can both be extended and used as the frameworks for IDEs. When I want something quick and dirty on windows I fire up OpenWatcom, with GVIM as the text editor. When a project grows in complexity I start writing the makefile my self.

    --
    --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
  176. Re:Bubbling frustration by goodviking · · Score: 1

    Let me clarify a little the point I was trying to make. In the windows world, the bits to connect via pipes and filters just don't exist. It's write from whole cloth, or use the subset of functionionality that comes prepackaged with your IDE every time you want to do a task. Sure the GUIs are pretty, but each GUI represents a complete processing chain. (e.g. trying to get a data stream from a tape drive == !fun)

    OTOH, in the UNIX world, pipes and filters represents the dominant paradigm. Thus each GUI represents a thin layer on top of existing well interfaced components. Much nicer.

    If more GUIs are really what's needed in the UNIX world, then writing them is not a problem. I think as Linux and OSS has become more prevalent, the problem has moved to "which of the 10 or so GUI based things do you want to download from SourceForge that can do your task". Thus the problem is not a lack of GUIs, but a lack of monolithic control of what the GUI will be, and where to get it from.

    I think something that you tend to find in the UNIX world as well is that the end user apps exist, but just within a different context than most people think. I do a lot of scientific computing. We have written and used several GUI driven apps to do much of our work, all on some UNIX variant. We're just focused on a different end-user than Spolsky's.

  177. Re:Command line? Hell, how about process? Security by naelurec · · Score: 1

    I think it comes down to compensation. I have yet to see a compensation methodology for system administrators that encourages the security and reliability minded attributes you are looking for.

    Lets face it .. if a sys admin is truly mindful of these attributes, they can generally avoid the majority of viruses/worms/exploits/etc. Infact, many of the tools that they use for their job can easiy be scriptable, scheduled, etc to the point where they don't really have to do a whole heck of a lot except for monitoring the system.

    However, if they do this, generally they are perceived as "not doing anything", get smaller budgets to work with, less staff, etc.

    So where is the benefit? If security is laxed and the occasional virus hits the systems or computers are less reliable than they should be, then the sys admin is seen as the "hero" for fixing the problems. No problems = out of sight = out of mind.

    The problem is even worse for part-timer/hourly sys admins ... if they are really good at their job, they can usually setup systems, maintain them remotely when necessary and generally not have to worry about them very much. Again, less $$ for them for doing a good job.

    As a sys admin I tend to want to setup systems correctly, maintain high security on critical infrastructure aspects and work in such a way that supports the rest of the organization. However, I have yet to determine a way to properly compensate for a job "well done" ..

    Any thoughts?

  178. Can you actually think? by Anonymous Coward · · Score: 0
    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.

    First, the arrangement you describe still isn't a common one. Second, the ascendancy of the GUI as the average user's way of working with the computer preceded plentiful bandwidth by quite a bit.

  179. Re:Documentation vs Slim to none by bratmobile · · Score: 1

    You don't need to subscribe to MSDN. http://msdn.microsoft.com/. The ENTIRE thing is there. Or do you just want to pretend it doesn't exist?

  180. Re:Non-ideological? Uh-huh. by Bob+Uhl · · Score: 1

    Amusingly, I'd reverse that exactly. After all, Unix is rational and works, and therefor American, while Windows is silly, looks sharp and never really accomplishes much--it's gotta be European:-)

  181. It's called usability testing... by Anonymous Coward · · Score: 0

    "...a good windows programmer will create an object (COM/C# Class) and then write a GUI that will call this object."

    Regardless of what you think of Jakob Nielson (http://www.useit.com) and other usability gurus, writing the GUI as an afterthought is not good Windows programming.

    Running usability tests (e.g., paper prototypes) early on in your development cycle can give you valuable insight into how your users expect to accomplish their tasks. You owe it to yourself to try it out.

  182. Re:The real reason behind "silence is golden" by spitzak · · Score: 0, Troll

    Boy you really don't get it, do you.

    I used both Unix and VMS on 9600 baud video terminals (so no wasted paper, and very little wasted time, in fact I think the Unix machine printed slower because it went through a network and a VMS front end which did not like the character-based Unix interface much). I can tell you that the terseness of Unix was an incredible relief compared to VMS. I could see what I did, it was not buried in tons of boilerplate, and I could easily run other commands that would tell me that information (like "how many files") if I wanted to know it. This (and the simplified filenames where '/' and '\0' are the only reserved characters) was so amazingly liberating and stunning that I was sold.

    In fact part of the reason there is Unix fanatics is that absolutley amazing relief we had when we first encountered it. Part of the livid hatred of Microsoft is that they did not copy Unix, instead reverting to filenames and a command style and CRLF pairs that we knew were obsoleted in 1970, and then having the unmitigated gall to claim they were "innovative". In fact if Microsoft had just made Windows Unix-compatable (and not even do a good job, Xenix would have been good enough) I really doubt anybody would have heard of Linux, and Microsoft would run every single programmable device in the world.

    In fact Microsoft blew it totally, but they refuse to admit this and thus refuse to allow their programmers to do what is necessary (copy as much of Unix as possible, while keeping their own advantages). Instead they keep reinventing things, ignoring standards, and pissing people off endlessly.

    Wake up, Microsoft. You could wipe Linux and everybody off the face of the planet in less than a year, if you would just make Windows Unix-compatable. This means put forward slashes in the filenames, get rid of CRLF (only read needs to use the binary flag), make readdir() work to show all the disks, and a few other really trivial things. And provide a modern shell and tools right now (the code is all available for free from GNU). The problem is you have to swallow your enormous ego and admit that there is nothing wrong with being compatable with the good ideas that came out before you.

  183. Re:Bubbling frustration by peterb · · Score: 5, Insightful

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


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

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

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

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

  184. Re:Try this... by spongman · · Score: 1

    or better still, have an underlying component object model that exposes the functionality of your system and then have a set of GUI and command-line tools that both use these components. oh, and while you're at it, document and expose these components in such a way as they can easily be used from 3rd-party scripts and programs.

  185. Re:The essential difference by heironymouscoward · · Score: 2, Informative

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

    Cold hard facts:

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

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

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

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

    Attacking my credentials is not a response. Showing me the well-defined Microsoft APIs that have been used by Microsoft's own application development teams without compromise... now that would be a worthy response.

    --
    Ceci n'est pas une signature
  186. Re:can this guy actually code? by Anonymous Coward · · Score: 0

    It's impressive how your rant manages to make absolutely no sense. It must be shameful for your family to have a relative so obviously incapable at something they care enough about to wax idiotic on Slashdot. Seriously, I can instantly determine that you've never written something larger than 10kloc just from your post. Sad.

  187. Better comparison. by Anonymous Coward · · Score: 0

    Its more of the OpenSource "Hacker" vs the Closed source Kiddy.

  188. One word by heironymouscoward · · Score: 1

    POSIX

    --
    Ceci n'est pas une signature
    1. Re:One word by Anonymous Coward · · Score: 0

      ...covers only the most basic aspects of an operating system.

  189. GIMP by solprovider · · Score: 1

    Thanks. I have been reading Slashdot for years, and should have known to mention the GIMP. I did try it a while back, and decided I did not want to have to support it when my father calls. I plan to install it during this reinstall session (see previous post) but tell him that if he has any problems, switch back to Photoshop because I cannot answer them.

    That is how I handled the transition to OpenOffice. He had used MSWord for years. I installed both. He tried it, found it easier, stopped losing work, and stayed with it. Except for a few things that either OO cannot do, or are hidden well enough that he could not figure them out. (He reads Help files, but forgets he can web search for help.)

    I am hoping that GIMP2 and OO2 will be ready before I finish reinstalling, but I may do it before EOM/EOY, so I doubt either will.

    --
    I spend my life entertaining my brain.
  190. Re:can this guy actually code? by Anonymous Coward · · Score: 0

    Funny, since CORBA was largely backed by UNIX and both GNOME and KDE are largely built using shared libraries and component architectures. You know, since it follows the Rule of Separation to not couple general code to fixed interfaces.

  191. Re:Binary libraries by isj · · Score: 1

    I prefer documentation over source code. But the microsoft documentation on user/gdi/kernel is incomplete. It covers the trivial cases but leaves out most corner cases. When compared to, say, OS/2 API documentation the microsoft documentation is "thin". IBM knows how to write documentation.
    An example: GDI paths. (selectclippath, beginpath, closefigure, etc). The documentation tells you how to make a string into the outline and use that as a path. It even has an example for doing this. good. Guess what happens if the font you are using is a bitmap font? The documentation does not tell you. Not even a hint. (answer: the path functions does not fail, they just simply wont work).
    The API could also be a lot better especially when dealing with errors. People who have tried using BitBlt or SetDIBits knows the horrors of error 87. One of my other favorites in the documentation is: "If the function succeeds, the return value is 1. If the function fails, the return value is 1."

  192. My Initial *NIX Experience by mdielmann · · Score: 1

    Looong ago, I started using computers. Apple II, Mac's, Windows, more windows, and more windows, and UNIX. So here I am, armed with knowledge from reading the complete DOS 5.0 command reference (summary, do everything you can to stay away from a serious DOS script), and I look at UNIX. I spend 10 minutes trying to figure out how to do anything besides log out before I log out. And off to the store I go to buy UNIX for Dummies. Now I'm sitting at a unix workstation with a Dummies book, thereby being called a loser by both the geeks and the non-geeks, and looking at commands that do exactly what happens in a basic DOS session. And here's what I learned about the commands used in bash (the only shell I bothered to learn at the time)*:

    Take an action you wish to perform, say, see everything in a directory.
    Think of every command you can think of that sounds like it would do this: directory, catalog, list.
    Now, discard any command that has been used for that purpose in another OS. That takes care of directory (DOS) and catalog (Apple II), leaving list.
    Now, remove all the vowels - they're useless anyway. This leaves us with 'lst'.
    Last, use only the first two letters. Ah, there it is: 'ls'. If this conflicts with another possible unix command (or you unwittingly used a command from an interface more obscure than the Apple II command-line), the more common command (surprisingly) gets the abbreviation, and you need to go back to the top with another possible command.

    I may have missed a couple rules, and there might be a couple exceptions, but this handy guide will solve half your problems for figuring out unix commands.

    *I already said that this was long ago, and when I first learned unix, and that it is a general rule, so don't go talking about things like chmod, etc.

    --
    Sure I'm paranoid, but am I paranoid enough?
  193. COSD ? by Anonymous Coward · · Score: 0
    From the last linked article in the news story.

    Window$ Core Operating $ystem Divi$ion (CO$D)

    Considering some translations of this acronym?

    Micro$oft$ Covert SCO Divi$ion. (please note that there is a slight play on the arrangement of the letters on M$ part.

    Or maybe

    Cost Oodles of Serious Dollars (for the license)

    However this is the most likely ;)

    Complete Open Source Domination

  194. Outdated Thinking! by e2d2 · · Score: 1

    I think this type of thinking is outdated. There are programmers like myself who pride themselves in being able to program on both platforms (read: windows and unix like environments). The end user is always the focus of our attention, but that end user might _be_ a developer. We don't care about cultures and alliances. The machine is a tool to be used as such.

  195. Doesn't break on Windows XP. by Anonymous Coward · · Score: 0

    Renaming the Shortcut doesn't break the link. Changed "Shortcut to CMD.EXE" to "Command Prompt", and the shortcut still works fine.

    1. Re:Doesn't break on Windows XP. by spitzak · · Score: 1

      Yes this was on Win2K. I need to try it again, I really suspect I did a typo. It seems hard to believe they could be this stupid. It is possible that their terminal emulator, being built into the system, is choking because the name somehow does not match something it expects, but even that excuse is stunning.

      Unfortunatly I'm busy right now and don't have time to reboot to test it again. You are right it appears to work on XP.

  196. Re:The essential difference by The+Bungi · · Score: 1
    application failed because of incompatibility in MS's own software layers

    This incompatibility you talk about is interesting. All of these products are based on the COM binary format specification. And again, they are designed to work with each other. I don't know how to try and prove this to you - I've been using them for the better part of six years. They have bugs, yes. All software has bugs. But I've never had to cancel a project because I couldn't figure out how to make them work together. Sorry, that's how it is.

    - assistance from Redmond failed to solve problem

    I've had Microsoft support people come on site, solve a particularly nasty problem and then use their laptop to compile a patch in front of me. I don't know what your problem was (and apparently you don't either) but in general Microsoft can identify issues with their software and then issue a fix. I don't know what your support arrangement was, either. But that's my personal experience.

    project eventually deemed unworkable and killed

    This happens on the mainframe as well. It's irrelevant insofar as your other points are dubious at best.

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

    So... you weren't actually there, right? This is hearsay?

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

    Oh, most definitely true. No question about it. If I want to make XP and NT4 talk to each other I normally use the lowest common denominator: TCP/IP. Or a subset of RPC/DCOM. If I want to use the "elegant" vertical tight protocols with lots of flash and bang and transaction support and whatnot, I think it's only fair to assume that my environment should be pretty much homogeneous. Right down to the service pack. But this is true for all platforms that provide anything more advanced than sockets, not just Windows.

    Attacking my credentials is not a response.

    I wasn't attacking your credentials as much as the validity of your anecdote and your point in posting it to begin with. Like I said, I have no problem with people going off like this, but you should expect someone to call you on it. If you were talking about a botched project involving DirectX you wouldn't have gotten a peep from me, because that's a technology I don't understand or otherwise use. But large distributed systems on Windows using COM+/MSMQ/BizTalk/AC2K/HIS2K/etc... well, that's what I do for a living. And when I say they work it's because they do. Whenever I see someone assert how some company cancelled a project and lost a bazillion dollars because these technologies "don't work" I get a bit worked up.

    Actually I've seen projects like these scrapped - but because someone couldn't get some Microsoft technology to work with some Oracle or IBM or PeopleSoft technology. That's where things get dicey, regardless of vendors' claims to the contrary.

    Showing me the well-defined Microsoft APIs that have been used by Microsoft's own application development teams without compromise... now that would be a worthy response

    I'm not sure what you mean. For example, everything in Windows uses COM. From the shell down to the graphics subsystem. COM+ and MSMQ are perfectly interoperable if you know what you're doing. And so on. Just because Windows has a pretty GUI it doesn't mean you can write complex applications using wizards and widgets. It doesn't work that way.

  197. Re:Bubbling frustration by spongman · · Score: 1
    In the windows world, the bits to connect via pipes and filters just don't exist.
    Woah, hold on there a minute. firstly pipes and filters exist on windows just as much as they do on unix (every process has a set stdin/stdout and stderr handles). In fact as well as pipes, there's named-pipes, sockets, mailslots, message queues, RPC, COM and a whole plethora of COM-based communication methodolgies that make stdin/stdout look like the banal 30-year old technology that they are.

    Also, aren't you forgetting the huge 3rd-party windows control market (VB controls, OLE controls, ActiveX controls, .NET controls)? None of these use stdin/stdout for communication, and many of them don't provide any runtime GUI.

    Windows programmers don't read/write to stdin/stdout because they don't have to. They don't have to worry about formatting and parsing messages and sending them across a single, simple channel, they pass data as parameters to method calls on interfaces on objects, the marshaling of data and the message transfer is handled automatically for them by the operating system.

  198. Re:Binary libraries by Jboy_24 · · Score: 1

    My favorite MS API problem was in porting a config application to work with a linux server on a remote machine. This was just a prototype, proof of concept, but it would be shown to upper management, including some that thought we were wasting our time. (Linux isn't supported... its just a fad... it was 1998)

    My coworker, an old VAX Hacker, made the linux software create a file 'CONFIGURING', the pressence of which let me know that the machine was busy (Took around 5 minutes). I simply had to ftp the file down and when I got nothing, I could say the CONFIG was over. An ERROR file would contain any error.

    He had developed a very simple MFC app that made an system exec call to 'ftp.exe' to download the file. I took his code and incorporated it with the more feature rich config app. The problem was that everytime I polled with ftp.exe the Command prompt window would appear and dissapear. Real Ugly, Real Bad. So I decided I'd just use the CInternetConnection classes in MFC to do the polling. My friend said I should write my own, but I repeated off all the traditional MS axioms of "Supported by Microsoft" bla bla bla...

    I whipped it up in less then an hour thinking, cool, Microsoft made this really easy. So I started it, it received the file, so I polled again in 30 seconds and incremented the task bar... everything looked beautiful, it kept polling and recieving the file, incrimient the task bar... and it kept doing this for 10 minutes.

    I telneted to the machine, the file was gone, but my software still was polling. Weird... but wait! I betcha its caching the file! So I checked Temporary Internet files and there it was, so I deleted it. Then I checked the API docs, there was a direct flag I could add when creating the connection called NO_CACHE! The MSDN documentation even stated this would turn off caching. I felt that incredible high when you find a perfect solution to your problems. I enabled the flag and recompiled, 100% sure it would work.

    It still cached!

    WTF! I poured over the documentation and deja news (before google)... Nothing. I should be able to set that flag and it should work. I spent 1 1/2 long hour DAYS trying different things, tempted to go in to the Temporary Interenet files and delete it myself. I COULD not stop it from caching the file!

    So I sighed, told the guy, I'm goign to have to write my own socket layer for this. Oh well, give me a few more days.

    "Wait" he said ... I stopped, expecting to hear how much better VAXes were or how time was wasted on the youth... but instead he asked "What are your IE settings?"

    "What? How can IE override my direct calls to the API? That makes no sense, if anything it should use IE settings as default, but I should be able to override that, which I am. The docuentation doesn't even mention that you get your settings from IE! Besides which, I've spent too long doing this and my friend already told me I'd have to end up writing my own ftp client."

    "Try IT!" he now ordered. "Ok", I turned off IE's caching... and it worked.

    I am still disgusted...

  199. Re:The real reason behind "silence is golden" by frank_adrian314159 · · Score: 1
    ... 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...

    And about 200 dB at a foot from said terminal.

    ...so a program that was too chatty wasted precious bandwidth

    To heck with bandwidth! It wasted hearing!

    --
    That is all.
  200. Re:The essential difference by Grizzlysmit · · Score: 1
    I'm sorry, but layers, good documentation - in Unix ???? Windows is scarsely better, but be serious. Unix is a massive indecipherable muddle at heart. It ought to have died long, long ago.

    Rubbish, *nix have always had great documentation for programmers, for ordinary users it hasn't always been as good, but thats largely been solved for most of the commons stuff.
    --
    in my life God comes first.... but Linux is pretty high after that :-D
    Francis Smit
  201. Hmm. by Anonymous Coward · · Score: 0

    If you are all so smart and think everything and everyone else in the world is stupid and beneath you, why don't you actually innovate something of your own, Oh-So-Wise One.

    (Like you've actually ever made something of interest to us.)

  202. Re:The essential difference by Grizzlysmit · · Score: 1
    Actually, this is more a matter of software not written in a monopoly environment. When you don't have inside access to change things as you please, then you're forced to abstract and layer things. It's like the difference between running into a problem and instantly moving it into the kernel, and coming up with a carefully-designed interface to accomplish the same task from userland. A Microsoft programmer has the first option, but somebody programming for Linux is probably going to have a hard time convincing the kernel maintainers to include their custom hack to enable, say, threads, without a real and pressing justification.

    Ummmm you seem to be muddled up, anyone who is a competent programmer knows not to do it the M$ way, how easy it is to be allowed to do so, is irrelevant, abstraction and layering is just good programming practice.
    --
    in my life God comes first.... but Linux is pretty high after that :-D
    Francis Smit
  203. Re:The essential difference by heironymouscoward · · Score: 1

    Whenever I see someone assert how some company cancelled a project and lost a bazillion dollars because these technologies "don't work" I get a bit worked up.

    This is very true, I have seen numerous large projects fail for many reasons, from unclear business requirements, to sabotage, bad management, over-ambition, stupidity, and so on. But over-complex and untested technical platforms are a recurrent underlying theme. Too often. People take vendors at their word, seek to rely on untested functionality rather than build their own, and it becomes a matter of project faith that such-and-such an architecture can and must work when in fact it's unworkable. I've seen this in perhaps 3/4 of the large failures I've watched happening, over 20 years. It happens shamefully often.

    My business is designing software architectures, and frankly I find Microsoft's view of the world, and the view they sell to developers, to be... I'll be polite... inelegant and inefficient. It may be the result of solving problems by brute force and money rather than through good design, but it is also clear that Microsoft started as a company that placed marketing before technical quality, and this mentality has never really been eliminated.

    There really appears to be a sad but generally accurate rule in IT. When marketing is more important than design, the result is technically poor but the company prospers. When design is more important than marketing, the result can be technically excellent, but the company will eventually die.

    Very, very few businesses get both these right.

    --
    Ceci n'est pas une signature
  204. Re:Binary libraries by jBabel · · Score: 1

    No source code = debugging hell If you say that in C, it's debugging hell allright...

  205. Re:Documentation vs Slim to none by Godstalk · · Score: 1

    Hmm, well, if you read like you say you read, you would realize that Windows ME (which sucked, all things considered, but please get it right as to WHY it sucked) didn't say you had no access to the command line. It said you couldn't BOOT to the commandline instead of booting straight into Windows ME. Which is true... as it was shipped. And have you LOOKED at MSDN without a subscription? Without giving them ANY money, there is a hell of a lot of information up there freely available. You don't even have to sign up for the free access.

  206. Re:Bubbling frustration by CaptnMArk · · Score: 1

    I agree with the cut-paste problem. (It still is).

    But a good gui for unix will NOT be written:
    a) by cloning windows
    b) without changing unix at all

  207. Re:Bubbling frustration by pwtrash · · Score: 1
    I did not perceive that Spolsky's goal was to advocate windows, as most of the hyper-sensitive folks on /. would immediately think.

    I think his point was that the two cultures started out with two very different goals, and the easiest & most concrete way to sum it up is by describing the expected end-user: programmer vs. unskilled novice.

    I did not perceive from his article that he advocated one over the other; rather, I thought he was describing what he considered to be the essential pressure dividing the two cultures. This was a pretty neat point, I thought, and explains some of the frustrations I've experienced working with folks from both cultures.

    Of course, I had to actually read the article all the way through to get the point, so that probably just shows how far behind I am in terms of /. indoctrination.

  208. Re:Bubbling frustration by budgenator · · Score: 1

    What if a non-experienced user needs to run your scripts?

    If there is no GUI you do the test, the test is;

    1. Do I trust the GUI user with my wife, my life?
    2. If the data gets completely hosed, will I get blamed, have to work over-time to fix or find a new job?
    3. Will the GUI-user blab any secrets we show him to his fellow GUI-users?

    So if he's a guy that always;
    1. backs up the data before doing any dangerous stuff,
    2. brings your pistol back both cleaned and unloaded,
    3. buys your wife dinner before sex and makes sure she showered before he drops her off at your house afterwards,
    4. keeps his mouth shut
    then you might consider him for nomination to Command Line Wizard's apprentice entry-class! Otherwise you tell him it can't be done.

    --
    Apocalypse Cancelled, Sorry, No Ticket Refunds
  209. esr oversimplifies a bit by doom · · Score: 3, Insightful
    Okay, a lot of people here seem to be pointing out that Sposky is being too easy on the Windows culture (which he certainly is... the problem isn't just bugs in the APIs, the problem is also intentionally deceptive APIs so that you can pretend you're supporting third party developers and retain the ability to undercut them at will).

    But I haven't seen a lot of people pointing out that esr is also taking it too easy on the Unix culture.

    I started reading the draft of esr's "Art" a while back, and was immediately struck that he was repeating the "do one thing and do it well" slogan as if anyone ever really worked that way. Has he ever seen the man page for "tar"? How about "find"? The Unix Way is more like "do one thing sort-of-okay, and then trick it out with options and modifiers and run command files and embedded scripting languages until you can't tell when it's going to fry eggs or flush the toliet."

    You might want to balance out esr's idealized view with the half-serious ranting of The Unix-Hater's Handbook (pdf).

    I think the chapter on X is one of the better X-windows tutorials around (though unreasonable people may disagree).

  210. Re:The essential difference by Anonymous Coward · · Score: 0
    Keeping little stories to ourselves would kind of ruin the whole point of Slashdot, no?

    The point is that it isn't your story. It's just hearsay.

  211. Re:The real reason behind "silence is golden" by Minna+Kirai · · Score: 1

    (and the simplified filenames where '/' and '\0' are the only reserved characters)

    That's not entirely true. Yes, from the filesystem perspective there are only 2 reserved characters. But looking at Unix as a whole (especially as it was delivered 20 years ago), you really had to treat other characters as revserved.

    Like " ", "*", and especially "-". Many programs and commands that are fine in general will choke up or become randomly destructive when fed names like that. Or at the very least, the user-friendliness of the CLI is destroyed.

    In fact if Microsoft had just made Windows Unix-compatable

    Legally, it already is Unix-compatible, in that Microsoft(tm) achieved POSIX certification for Windows NT.

  212. Re:can this guy actually code? by Khazunga · · Score: 1

    duh!

    --
    If at first you don't succeed, skydiving is not for you
  213. Re:Try this... by geekoid · · Score: 1

    "...cater to BOTH."

    I read that and as thinking:
    Bastard Operator ? Hell.

    what does the t sand for?

    heh.

    Thats said, there is no reason why a GUI couldn't be designed to create an automation procedure.

    Dropdown for the program, text box fr paramteres, checkbaxes for when it need to run, etc...

    Of course, I'm the guy who designed a GUI that the grey hairs use instead of the command line.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  214. You where wrong by geekoid · · Score: 1

    that point wasn't distant at all!

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  215. Re:The real reason behind "silence is golden" by Minna+Kirai · · Score: 1

    You could wipe Linux and everybody off the face of the planet in less than a year, if you would just make Windows Unix-compatable.

    Oh, and that's backwards. It's a classic case: reduced barriers to switching benefits holders of minority marketshare more than their larger competitors. (So in the extreme, a monopolist will never want to encourage compatibility)

    The incompatibility of Microsoft Windows vs Unix-like OSes is helpful to Microsoft. It prevents people from easily switching away to other providers.

    If Microsoft creates effective Unix-like support, then future vendors of Windows applications will use these features. Eventually they might transition to them entirely. (Why would Oracle or Adobe continue to write separate Windows, Mac, and Unix releases of products, when they can just move everything to a Unix-targeted codebase?)

    When that happens- when some major Windows applications are using its Unix API, not the Win32 one, then it will be easier for users to switch away from Microsoft's OS, while keeping their applications intact.

    So, to protect their shareholders, Microsoft should avoid anything that'll help customers switch.

  216. Re:Binary libraries by jnhtx · · Score: 1

    "I polled with ftp.exe the Command prompt window would appear and dissapear. "

    Next time, ask a windows programmer how to execute command lines without showing the command window.

  217. Re:The essential difference by Grizzlysmit · · Score: 1
    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.

    Very true as someone who knows programming, in both OS's very well I can attest to this, also it's just total nonsense to say as this article does that, the difference between the two cultures is:
    "This is an important value in Unix culture because you're programming for other programmers. As Raymond puts it, "Programs that babble don't tend to play well with other programs." By contrast, in the Windows culture, you're programming for Aunt Madge, and 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 or a program that produced no output because it misinterpreted your request."

    This is just plain nonsense, yes there are *nix programs written for other programmers, and some of them use the command line, but this doesn't distinguish the two cultures at all.

    Probably the biggest distinctive is: that M$ uses many really bad coding/design practices and the Windows culture is such that it says: oh M$ does it, it must be good. Whereas if the *nix world where to be confronted with the same thing we'd rightly can the programmers and not use their crappy code.

    Probably the only other major distinctive is that the Widows culture, tends to be overly impressed with one metaphor, namely the GUI, whereas the *nix world uses what ever best suits the task, or often a combination, a GUI interface with good old command line back end. I guess this is sort of understandable (to a degree) as the traditional windows command line interface the dos environment is a total abortion.

    Even so it has to be said that Widows programmers tend to be like the man who only has a hammer, they try to apply the same technique over and over again to each and every problem, never realising that there might be other ways of doing it, this goes way beyond the GUI thing; someone needs to explain to them the concept of using the right tool for the job. It'd be kind of good if they finally discovered screw drivers.

    --
    in my life God comes first.... but Linux is pretty high after that :-D
    Francis Smit
  218. Relevant Adverts by Afty0r · · Score: 1

    Am I the only one who found it amusing that there's an MS ad at the top of this page, advertising "Windows Services for UNIX" - Resources for UNIX professionals who want to use their existing skills to manage the Windows OS and applications?

  219. Re:Without realizing it... by a1englishman · · Score: 2, Insightful

    It doesn't matter what OS I'm using, if I'm word processing I save at every paragraph. If I'm developing, I save before executing. I trust no machine, no OS. They will all let you down some time, for some reason.

    I develop for a living -- yes on and for Windows. I create a variety of applications: Web, desktop GUI, and command-line. It all depends on the audience. End users don't want to remember what list of switches and piping which into what will create the output they need. That's stuff's for techies and background processes. Users need a clean GUI that gives useful feedback.

    Some days I ride in the font of the commuter train. From there, you can watch the engineer and take in the opperation of his interface. It makes all kinds of noises. This is called feedback, and is essential to good user design.

    Sure, you can write a UI that merely displays a wait icon while the application performs the requested action, but that doesn't tell anyone whether anything is really happening. On the other hand, most users don't want to be bombarded with minutia about what the program is doing.

    I think this whole discussion about programming culture is a load of bollocks. If you'd like Joe Blow to use your program, you're going to have to break-down and develop a GUI. This just isn't the day and age of the computer hobbiest anymore.

    When developing a GUI app, you have to take the GUI into consideration, just as much as what the applicaiton's supposed to be doing. If your back end can't support your front end, then you've wasted your time, and your employer's money.

  220. Re:The real reason behind "silence is golden" by oo_waratah · · Score: 1

    I had an application that printed a report after every execution. about 1,000 per night. No-one could find the reports and no-one really checked the output. Changed the application to on non-zeo return code and guess what the bug reports started rolling and we started solving the real problems.

    Chatty is bad, conversely I would acl my harddisk format to confirm and give me a success message. I don't do this 1,000 times a night I do it maybe 1 time a year.

  221. Re:The essential difference by jwsd · · Score: 1

    but it is also clear that Microsoft started as a company that placed marketing before technical quality, and this mentality has never really been eliminated.
    Because there is nothing wrong with it. Just because you are a good software designer doesn't mean elegant design is the most important thing in the world.
    I'm a good software designer too. I used to work my butt off to produce layered, object-oriented, efficient, easily maintained, bug-free code. But after failure of three companies (big and small) and all those hard work turned into meaningless, worthless code, I realized how right Microsoft's mentality is. Having users complain about your software is the most effective way to find out that your software is actually needed. If a piece of software is truly useful, users will tolerate its bugs and other problems. Here I am talking about the business environment where a company simply dies if it can't make enough money quickly to cover its cost. If you have a more secured position where you can show off your geek talents without worrying about running out of money, then you are just lucky. But consider yourself exception instead of the norm in the real world.

  222. Re:Binary libraries by Jboy_24 · · Score: 1

    Still... using ftp.exe was a hack. No control over the connection, no errors, the connection and download procedure was hardcoded as Strings. It was ugly... it needed to go.

  223. Re:Binary libraries by Anonymous Coward · · Score: 0

    http://support.microsoft.com/default.aspx?scid=kb; en-us;189105

    http://support.microsoft.com/default.aspx?scid=k b; en-us;314486

  224. Re:can this guy actually code? by CharlieG · · Score: 1

    No, a BAD VB programmer will do this

    GOOD VB programmers start with the objects, OR the database first (hey, sometime the DB counts for more)

    GOOD VB programmers were even doing something similar to this back in VB2 and VB3 - yep, pre objects in VB - NO code (or as little as possible) went in the UI - they wrote "BAS" modules, and called the functions there - effectively - using the idea of encapulation way back when

    Just because there is a LARGE percentage of VB programmers who DON'T do it right, doesn't mean we don't ALL do it right

    Back when we was interviewing folks during the dotcom boom, a group of us had an expression "Shrink Wrap" - aka, the guys who thought they were programmers because the had taken the shrink wrap off the box

    I WILL admit that part of this problem has actually been caused by Microsoft - their example code (particularly in the "old days") was the EXACT _WRONG_ way to write good, maintainable code

    The problem is, we still have a LOT of VB coders writing "VB3 code" in a "VB6/DotNet" world.

    Ask people who were around "Back when" what happened why Foxpro IV came out. Fox IV was Object Oriented, Fox III was NOT - The product died, because most of the programmers could not make the transition . Microsoft learned form that, and allowed the transition from VB3, to VB4,5,6 to be smooth, and to allow you to still code, "The same old way" - the problem is, people got the "same old problems"

    Part of the problem a LOT of VB programmers have in moving to dotnet is that they never learned the "right way" - then there are the "Others". We had NO problems transitioning

    --
    -- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
  225. Re:Bubbling frustration by CharlieG · · Score: 1

    Your right, and that's why I find the BEST windows programmers either started out on DOS and remember their command line, or some OTHER command line OS

    Batch files - yep, been there, do that (Notice the tense)

    Command line utils - yep, to the point that there is a copy of cygwin on my desk

    Background processes? Do that

    The thing is, I do 2 kinds of programming - the classic stdin>stdout type stuff (what I'm working on today BTW) and the "rich user interface" - stuff where the company has to be able to put an intern that was hired yesterday to work TODAY

    There is a place for both styles, and your best programmers will use whichever style of working to accomplish their goal

    I know I'm gonna sound like an "Old fart" - but when you learn to program on punch cards, where you have to batch things. Thing is, sometimes a GUI makes life easy

    --
    -- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
  226. Re:can this guy actually code? by Minna+Kirai · · Score: 1

    Unix applications don't talk to each other via strange, binary, unreadable protocols such as Corba, COM, DCOM, COM+ or whatever MS is selling these days.

    Corba is a Unix protocol. So is rpc/portmap. So are X11 and DCOP and Bonobo... None of them are something I'd care to read.

    They talk text. Simple, human readable, text.

    Uh huh. So this "cat /dev/sda1" command you mentioned will produce simple, readable text for me, eh? I'd paste the results in here, but Slashdot has filters to prevent raw, ugly, incomprehensible binary.

    The Unix idea of a standard input and output stream for each program was a good idea, but not followed through enough. In particular, from a programming language standpoint, there's something very important missing: type safety. Or even types at all.

    It's ironic that Unix was supposedly tightly related to the C language, and yet C's weak typesystem is stronger than whatever Unix provides. Is the failure of Unix to provide transmission of datatypes more well-defined than an anonymous bytestream that created an opening for a proliferation of overcomplex IPC protocols.

  227. Re:Non-ideological? Uh-huh. by Grishnakh · · Score: 1

    What world are you from? I'm an American, BTW.

    Does the American educational system work? By most accounts, it's one of the worst in the world.

    Does the American healthcare system work? Millions of people would say no.

    Does the American legal system work? For lawyers, yes. For everyone else who isn't rich, no.

    America is a good place to live if you're extremely rich, and can afford to pay for your own healthcare, your own lawyer, and your kids' private schooling. For everyone else, it sucks (compared to other first-world countries of course).

    I'll grant you that a lot of European cars look rather silly (mostly the really small ones), but most American cars are pretty ugly too (just not in a silly way; more of a bloated way). And Europe has way more nice cars (Porsche, Ferrari, etc.) than America (Corvette, umm... Corvette).

    And of course, there's the American fixation on the Imperial system of measurements...

  228. Re:The essential difference by heironymouscoward · · Score: 1

    "geek talents"?

    "geek talents"??

    It is the sign of an amateur to accept to produce second-rate work just to pay the bills.

    The norm is that most of what makes the world tick is the 10% of quality that has survived the brutalities of the "real world", and this slice of quality sustains the remaining 90% of junk.

    It's true in every domain of human activity. We all know that it takes more effort and skill to write a really good song, or cook a really good meal, or design a really good program. But please don't reduce this to: "build junk, let your customers suffer, and pay the bills". That is just sad.

    BTW, I'm not a "good software designer", I'm one of the best programmers ever born (and forgive my immodesty but I've had a long time to come to this conclusion), and part of what makes me so good is that I simply do not comprimise on the quality of the design. If it's not perfect, I stop, start again, and make it so. My products rarely fail, my businesses do not go bankrupt, and we still use and maintain code that we (my team and I) wrote as far back as 15 years ago.

    This is incidental.

    You can comprimise on quality when you're making an accounting system for the corner grocer. You cannot when you are making software that entire industries will rely on.

    This is the basic difference between Unix and Windows. Unix strives to find and select the very best possible solution to every problem faced. Windows strives to provide the maximum functionality without regard for quality or sustainability. No surprise that most Windows developers throw away their work every 2-4 years, while most Unix applications are built on old, reliable, cheap code that is as tough as nails and as solid as hard concrete.

    --
    Ceci n'est pas une signature
  229. Re:Bubbling frustration by fermion · · Score: 1
    A good programmer seperates those questions and then asks each in turn.

    Organization and manipulation of data is a specific problem requiring specific skills. Ideally one will find the optimal process to handle the data quickly and effeciently.

    UI is another issue. It requires a certain skill and tools. The user thinks of data in a certain way, and it may not the best way to work with the data in the computer.

    The problem with Windows programming is that want to combine these two processes into a monolithic program. People raised on visual studio want to hook widgets to databases and call it programming. At no time do they ask if the the solution makes sense.

    The upshot is is the GUI presents a data structure, not a interface. The database is driven by the need to make it understandable to users, not effeciency. Both sides lose in this model.

    --
    "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
  230. Re:Trannys by Grishnakh · · Score: 1

    What the heck are you talking about? Manual transmissions are almost always superior for towing. That's why tractor-trailers only come with them.

    Automatics require extra cooling for towing because the extra load causes the hydraulic fluid to heat up a lot.

    Manuals have simpler designs with less parts, and are easy to scale up in size to meet the requirements for towing 100,000 lbs.

  231. The moral of the story ... by Dukael_Mikakis · · Score: 0

    Windows is for pussies, but "UNIX" is for men who don't have dicks.

  232. What an idiot by Anonymous Coward · · Score: 1, Interesting



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

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

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

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

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

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

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

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

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

  233. Ludicrous nitpick by IronTomFlint · · Score: 1
    If you say

    tar -jxvf dir/

    you see the file.tar.bz2 done, not a "hey, here I am!" message.

    Actually, what you'll see is an error message, since x means you are extracting from a tarball, not creating one, and you specified a directory rather than a tarball as the target. Plus - since you added the v, you'll get extra verbosity. ;-)

    --
    Arrr!
    1. Re:Ludicrous nitpick by moranar · · Score: 1

      Argh! right. just brainfarted on that command. Vixie's comment applies here: "If you "su and say" whatever command just because I ask you to, you have a big security problem, and you should look into it".

      --
      "I think it would be a good idea!"
      Gandhi, about Internet Security
  234. Re:Without realizing it... by grotgrot · · Score: 1
    culture of quality and craft

    What I see is that Windows APIs etc are done through sheer brute force. There are so damn many of them, and they don't particularly make much sense as a whole, but given enough programmers you can implement and use them. Due to the way they are done, usually other components then have to reimplement them in yet another different way to get slightly different behaviour.

    The UNIX world tends to place far more emphasis on elegance and simplicity.

    UNIX was written by two people. Windows was written by hundreds (later becoming thousands). The UNIX windowing system was 4 people, Windows was thousands. Look at how many Windows APIs have to take cbSize parameters, and have Ex versions.

    Unix's fork() and exec() take only the parameters to specify the program. The equivalent Windows API takes 14 parameters.

    Both will do the job, and as an end user I don't care how hard it was for the programmer. But as a programmer I follow the examples around me, and UNIX is full of good ones.

  235. Re:Without realizing it... by Darth_Burrito · · Score: 1

    I do the same when working in unix and am typically fairly unworried while working in windows. I think this has to do with familiarity more than anything.

  236. Re:The essential difference by jwsd · · Score: 1

    You can comprimise on quality when you're making an accounting system for the corner grocer. You cannot when you are making software that entire industries will rely on.
    Are you sure your software is so important when it is used by a big corporation or government? How about those CEO's and board of directors who ran companies into ground? Aren't they more important than your software? Can you tell how many crooked decision makers are out there running the business world and the government? If you can live with them, then don't be so harsh on a few bugs left by your fellow software engineers. Unless you subconciously feel threatened by those software developers who don't do things your way.

  237. Re:Bubbling frustration by Anonymous Coward · · Score: 0

    Actually, this is more of a "management" issue than a Windows or Unix issue.

  238. Re:Bubbling frustration by mpe · · Score: 1

    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.

    In many cases the GUI can be a clumsy way of either doing something or telling the computer what to do. e.g. printing several files under Windows especially if you have to send them to a printer which is not normally the default printer.

  239. Re:Bubbling frustration by kinnell · · Score: 1
    why is it so difficult to accomplish this seeming simple task?

    Because when you write a GUI which must be easy to use, you have to trade off flexibility for useability. The GUI is designed so that the average user finds it easy to use. The problem is a lot of people aren't the average user, so you find that in order to carry out the task you have to navigate through a plethora of menu options, or worse, do something which should be automated manually over and over again. IMHO, this is something fundamentally broken in the whole ease-of-use idea - it's only easy to use if you're doing exactly what the designers want you to do.

    --
    If I seem short sighted, it is because I stand on the shoulders of midgets
  240. Re:Non-ideological? Uh-huh. by hawkfish · · Score: 1

    But I am European (and it looks like you are American), so maybe it should read:

    s/UNIX/Us/
    s/Windows/Them/

    to be more universal!

    --
    You will not drink with us, but you would taste our steel? - Walter Matthau, The Pirates
  241. Re:Bubbling frustration by Anonymous Coward · · Score: 0

    I'm sorry to pick on you, but your post typifies the bullshit that undelies this entire thread. Hello, everyone! Windows does not have a monopoly on GUIs. UNIX and every other operating system out there uses GUIs. And the GUI programmers, for whatever operating system, care as much about the user experience as do Windows programmers.

    UNIX is not limited by stdin, stdout, and stderr, after all.

    Think of UNIX as an onion. The kernel is in the center. Then there're all sorts of other operating system layers up to the shell and user applications. And the GUI is the outermost skin of the onion. To say that UNIX programmers only care about "data processing" or what comes in stdin and goes out stdout is to ignore a good part of the whole system.

    Also, not all Windows programmers are GUI programmers or even care about the user's. So it's not fair for them either.

    But, this post does not further the flamewar and comes from an "Anonymous Coward", so I doubt it will be modded up.

  242. Don't be sorry... by Anonymous Coward · · Score: 0

    ... if you can't see Linux making it big on the desktop. I can see it just fine. what you run on your desktop does not bother me.

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

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

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

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

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

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

  244. Re:Bubbling frustration by mpe · · Score: 1

    I am observing that the Windows metaphor works great for the first 2-3 years, but then the end user runs into a brick wall where he can't do what he wants, doesn't know why, and has no tools or path at his disposal to move forward. I have seldom seen a person who grew up in the Unix (or VMS, or TOPS-20) metaphor hit that same wall and not be able to figure out a way around it.

    IMHO what I suspect is going on is that you can go a fair way with Windows without actually understanding what is actually going on. A learning curve akin to y=x^n. Whereas with other operating you tend to get nowhere unless you know what is going on. A learning curve akin to y=x^(1/n).

    It was primarly my Unix and VMS background that allowed me to figure out how to make Microsoft LAN Manager 1.1 actually work, for example, when the Microsoft technicians were clueless (another long story).

    My experience is also that people "brought up" with Windows tend only to understand Windows. Whereas those "brought up" with Multics, Unix, VMS, TOPS, etc appear to have more easily transferable skills. Usually the difficulty the latter have with Windows is understanding Microsoft Jargon...

  245. Re:The real reason behind "silence is golden" by Rich0 · · Score: 1

    Amen to that...

    I have a VAX at work which churns out about 10 pages of junk when rebooting. Occassionally some background process doesn't startup correctly. I never realize this, becuase the error message is burried in 2000 lines of "this volume mounted successfully" and "that volume mounted successfully".

    Those kinds of messages are great for debugging, but when the system is in production it should only call for help when it is needed!

  246. 2/3rds of problems? Not even close by GCP · · Score: 1

    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.

    I think that 2/3rds data processing figure is wildly inaccurate. On personal computers, what people do is they do their email with an email client, they browse the Web with a Web browsers, they write documents with Word, use Excel for some simple "data processing", prepare presentations with PowerPoint, listen to music with their music player app, and maybe use one or two specialty apps for their field.

    That's about it for 99% of computer users.

    As a programmer with tools like Perl and the Unix command line utilities available to me on all of my platforms (Linux, Mac, Win w/Cygwin), I find myself doing "data processing" tasks all the time. You may be like me, but that doesn't represent the ordinary computer user. The ordinary computer user does the same tasks over and over again using GUI tools that are optimized for those tasks, while you and I get extra value from out machines by going beyond the prepackaged functionality and doing custom "data processing" that isn't easily done with the standard MS Office-type apps.

    Thank goodness their are tools like Linux, Perl, Python, grep, cron, etc., for us, but the Windows/Mac GUI way is a better way for most people.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  247. Re:Try this... by mpe · · Score: 1

    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.

    Actually the time interval dosn't really matter. Repetative tasks are better done by machines than humans.

    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.

    A just as likely senario is that the same task needs to be done once every few months on several machines all within a certain time period. e.g between 2 and 3 am (either local time or GMT) on the first of every month.

  248. Re:Mirror world by Anonymous Coward · · Score: 0
    and talk to people who call soccer soccer

    what's that?

  249. Re:Mirror world by DunbarTheInept · · Score: 1

    In British English, "toilet" often refers to the whole room, and the whole, uhhhm - experience - of taking care of sanitary needs, including not only getting rid of waste, but also the washing up afterward, the sink, the soap, and so on. (So it's closer to the orginal French 'toilet'.) In American English, "toilet" refers to JUST the physical chair-like thing that flushes. It never refers to the room as a whole. Therefore putting the word "toilet" on the door *does not* mean the same thing as "washroom" or "restroom". It's not just a euphamism thing. In American English, putting the word "toilet" on the door is like labelling it, "crapping chair", and has that level of connotation.

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  250. Re:Try this... by mpe · · Score: 1

    or better still, have an underlying component object model that exposes the functionality of your system and then have a set of GUI and command-line tools that both use these components. oh, and while you're at it, document and expose these components in such a way as they can easily be used from 3rd-party scripts and programs.

    This has the side effect of making any component easily replacable. Since all that matters are the (well documented) interface specifications.
    With OSS this is at worst neutral, potentially a huge positive. To a proprietary software company like Microsoft it's a huge negative.

  251. Re:Bubbling frustration by DunbarTheInept · · Score: 1

    So you have to use a different keypress to cut and paste sometimes. BFD. That happens in Windows too. (It's not ALWAYS CTRL-X,C,V, at about the same rate of occurrance as 'middle button' fails to be the right way to paste in a Unix X app.)

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  252. Re:Command line? Hell, how about process? Security by sharkey · · Score: 1
    respect from upper management

    Thanks. That laugh brightened my day.

    --

    --
    "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
  253. Re:Command line? Hell, how about process? Security by Feztaa · · Score: 1

    Any thoughts?

    Simple, take your sweet fucking time.

    If anybody asks why you're such a slowpoke, just say you're making extra careful that everything is perfect, so there aren't any problems.

  254. Re:Binary libraries by sharkey · · Score: 1
    all the MSDN pages and search engines seem like such a crappy mess that unless you know exactly the function you want, it's damn hard to find documentation for it.

    And when you DO know the exact name for it, you'll likely get this result: "Sorry, no results were found."

    You have to know the exact MSDN, TechNet, Knowledge base name for what you want, which usually bears little to no resemblance to the designations in the docs, helpfiles, Event Logs or actual filenames. Of course, sometimes if you search on the same thing several times you'll get a result, but don't rerun a successful search! It gets tired and may come back with no results.

    --

    --
    "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
  255. Re:The real reason behind "silence is golden" by mpe · · Score: 1

    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.

    Best described as "crying wolf"...

  256. Re:can this guy actually code? by Anonymous Coward · · Score: 0
    Of course. And if you think that it is anything even remotely close to a solution to the issue I discussed then you have completely missed the point. An XSLT is the nearest thing to useful in this space, but the problem remains, your userid field is my useridentifier field and the writing of that translation is exactly the problem.

    Sorry, but I think it's you who is missing the point, entirely.

    XML and it's derivatives (XML Schema etc.) will offer all those interface 'discovery' features you talk about.

  257. Re:can this guy actually code? by mixmasta · · Score: 1

    Of course he plugs his company. That is the whole point of the site, to draw people in and get them to notice his wares. Nothing wrong with that.

    People may or may not agree with his commentary, but Joel doesn't claim to be something he's not. I didn't find the article to be very anti-unix either. Really, I enjoy reading his articles, not because I agree with everything he says, but because he is a good writer.

    He is just a geek like the rest of us with all the limits that go with it.

    --
    #6495ED - cornflower blue
  258. Re:Bubbling frustration by Azghoul · · Score: 1

    It's not a broken anything, except that more and more applications must support "it" (the commonly accepted cut/paste method). It's on the application level, really. If you have KDE apps, and Gnome apps, the vast majority of them support and use Ctrl-X/V/C (as if that's somehow intuitive... it's just the commonly accepted use. I, for one, hate that Cut is one key over from Copy. Too easy to miss).

    Right now I copy/paste from Kmail into Gedit all day, every day. Even paste into Jedit quite often from KDE and Gnome apps.

    Where's the issue? Modern apps are already playing nice together, at least from a Windows-style Ctrl-X/C/V perspective.

  259. Re:Binary libraries by jnhtx · · Score: 1

    Isn't running a seperate executable and parsing the output the Unix Way??

    I'm a windows programmer, but a while back I started using seperate processes more and threads less. Joel (citing RMS) made the same suggestion a few weeks ago on his blog.

  260. Re:The real reason behind "silence is golden" by spitzak · · Score: 1

    The idea is that this will make it easier to port programs *to* Microsoft's system. If the program is then modified to use some Microsoft-thing then you have managed to lock them into your platform.

    Yes it's true that non-gui applications will probably be able to be ported back and forth more easily. In my opinion this will *help* Microsoft, as it will remove one of the objections to using their systems in server applications. I do not expect them to copy X11 so there is no problem with all the GUI applications.

    More importantly, Microsoft has to do something to defuse the virilant hatred of them that is caused by their gratuitous ignorance and breaking of long-established standards. This is fueling the success of Linux far more than any technical or "freedom" benifits.

  261. Re:The real reason behind "silence is golden" by spitzak · · Score: 1

    You are wrong. In original Unix almost all programs passed the filenames given to them in argv literally to the system. It was up to the shell to "quote" characters. If you said 'cat "foo bar"' it really sent the 7-letter string "foo bar" to the program and it was easier to send this literally than to actually look at it, so almost all programs did the "right" thing. Also if you typed "\*" it sent "*" to the program so it had no trouble with names like this. This scheme actually works quite well, the main problem is that there is no way around it, so a DOS-like "rename *.a *.b" cannot be implemented.

    You are correct that "-" was a problem. However all programs that choked on that did work if you used "./-". Again simplicity saved the day, they were just checking argv[i][0]=='-' and thus the easier-to-write program also was easy to get to do the right thing.

    Modern programs do choke on unexpected filenames, unfortunately. This is because they accept input and use their own parsers.

    Microsoft's POSIX is absolutely useless, because it cannot open all the files on the system, and non-Posix programs cannot open all the files created by the Posix system.

  262. Re:Sucky... something is. by Anonymous Coward · · Score: 2, Insightful
    What a non-geek user expects is to learn some skills once, and apply those skills again and again. It doesn't matter if you have some cute unique idea. He just doesn't want to have to learn a whole new set of skills for every single program.

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

    Having dealt directly with hundreds of 'non-geek users' in the course of nearly two decades, I can assure you that the consistency you proclaim as valuable goes unnoticed. I've heard the question "You mean that will work here, too?" so many times that I am laughing at your comments, and those who found you insightful.

    In fact, the real evidence supports a totally different conclusion. Consider that all k3w311 web pages have to mangle your precious scroll bars, either eliminate them or at least change the color. If there were comands to make them flip orientation, you could bet that everybody would be using them. Then consider something like winamp. Oooooh, skinable... translate, devoid of all OS supplied consistency. But that isn't a productivity tool, like say, Nero. That one just tries to make the application act like a high-school student's javascript-of-the-week-club web page with pretty clicky buttons instead of using the OS native menus and interface controls.

    'Joe Average' learns to repeat single tasks. That's why he doesn't blink when you tell him to click on "start" to "shutdown" or show him a deeply buried directory at the top of his world and call it his desktop. He will click past the "critical update available" message as routinely as he will click on a virus laden nude celebrity attachment. Sure there are exceptions, but if you want to go for average, that is it. Is Microsoft better that Linux for the average? No, it is simply there.

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

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

    You are operating under the assumption that the prompt printing wasn't included in the characters he was talking about. If the discussion is about unix philosophy in general, then the terseness or verbosity of the shell is still part of the same issue even though it's a seperate program. To tell you the program is done at least SOME character has to be sent to the terminal. The fact that it might be the shell that's actually doing it doesn't change that statement.

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  265. Re:Mirror world by Hanul · · Score: 1

    It's common in Germany to have "Frauenparkplaetze" (parking lots unter video surveillance reserved for women drivers) to prevent women from being robbed or raped in a parking garage at night.

    I never understood why Americans are satisfied with opening only *half* of the window.

  266. Re:How to tell if you are a linux fanatic. by fingusernames · · Score: 2, Insightful

    Where I once worked, all the developers worked in UNIX. HP-UX to be exact. All had either X-terminals to a server, or preferably Linux boxes on their desks. We all also had Windows boxes, because the business used Exchange/Outlook for email. Many of the developers NEVER used the Windows PC for anything other than email. We therefore decided to see about handling our email under Linux or HP-UX, and getting rid of the useless, space-wasting, heat-generating other computer and monitor.

    We could receive the email, no problem. Exchange did IMAP (sort of). But we had issues sending email, as we needed to do SMTP. We spoke with our email system admin, Dan. His official title was something along those lines. Dan knew nothing whatsoever about SMTP. Basically didn't know what it was. He was a Windows person, 100%. So we attempted to educate him a bit. That was a mistake. See, Dan was like a lot of Windows people. Windows and Microsoft enabled him to do his job, without having to know a lot technically. He was, to management, the email expert. We learned that by showing that he is not the expert (only to him and us even, initially), we endangered his view of himself as the email expert, and his role in the organization I suppose. We then became the enemies, because we presented him with something we needed, which he should have been able to provide, but was unable to due to his ignorance.

    Windows has done this for a lot of people, such as the parent's author. It has enabled them. They are able to buy a PC, install software, learn how to click here and there, play games, do all the other cool stuff that comes pre-packaged for them. But when they are confronted by other users, ostensibly the same as them, who are able and willing to use a technically more challenging system such as Linux or other *nix systems, they see that as a challenge to their own view of themselves as a knowledgeable "power user." When the other users then heap scorn on the tool which has empowered them to use a modern computer, they see that in a less than rational way. They see it as a threat. And they respond as the author did. Or as Dan did. Or as countless other users of technology who don't really understand that technology, yet believe they do.

    Sure, there are tons of Linux users who bait the Windows users and make stupid inflamatory comments. And sure, there lots of Windows users who do really understand Windows and computers deeply. But in general, a Linux user is a far more technically proficient person than a Windows user, by necessity, and that is a threat to the Windows "power user" who sees himself as a technically elite person, when he really isn't. And if you are going to bring up exceptions, remember: the exception proves the rule.

    Larry

  267. Re:Documentation vs Slim to none by Chanc_Gorkon · · Score: 1

    Yeah thats a good point. There's no room to add comments to the registry even if the programmer wanted to. I have never really needed a man file to read/edit any /etc/*.conf file as it's documentation is right there. Come to think of it, AIX's ODM also hase that issue, but the layout of the ODM is easy enough to understand once you learn the acronyms. I guess the same can be said about the registry except soem programs can put some pretty wacky stuff in their entry.

    --

    Gorkman

  268. Re:How to tell if you are a linux fanatic. by timmarhy · · Score: 1

    vmware isn't an emulator, it's a virtual machine, you could run anything under your vmware not just windows. and microsoft uses closed source, which patent holders use to protect their oh so orginal ideas. the problem is that the patent system is abused in this way to stifle competetion, and even you must admit that some of the software patents being granted are idiotic. i have no problem with a company patenting some new idea they have spent millions developing, but it must be just that, a new idea/method and it MUST be very specific and must not hamper other companies already working in the same field. one company closing down 5 others is NOT good for anyone.

    --
    If you mod me down, I will become more powerful than you can imagine....
  269. Re:Try this... by ax_42 · · Score: 1

    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.


    Wrong, in this case you need a script.
  270. because... by Nick+Mitchell · · Score: 1

    things done by you or on your behalf may not be as you expected, or intended.

  271. Re:Without realizing it... by spectecjr · · Score: 1

    Unix's fork() and exec() take only the parameters to specify the program. The equivalent Windows API takes 14 parameters ... and most of those have suitable defaults, if you zero out the structure.

    So let's see what CreateProcess lets you do:

    BOOL CreateProcess(
    LPCTSTR lpApplicationName, // name of executable module
    LPTSTR lpCommandLine, // command line string
    LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
    LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
    BOOL bInheritHandles, // handle inheritance option
    DWORD dwCreationFlags, // creation flags
    LPVOID lpEnvironment, // new environment block
    LPCTSTR lpCurrentDirectory, // current directory name
    LPSTARTUPINFO lpStartupInfo, // startup information
    LPPROCESS_INFORMATION lpProcessInformation // process information
    );

    Hmmm... it appears to let you specify the parameters to run the app. In detail. If you leave some out (eg. lpCurrentDirectory), you get a useful default value.

    Now, fork() lets you spawn a duplicate. Great! But it doesn't let you specify anything to do with that duplicate - it just spawns, and you have to take the return code from fork and use that to set up your new processes' parameters.

    How about exec()?

    Welll.... it appears to certainly have plenty of parameters:

    exec man page

    int execl (const char *path, const char *arg0, ..., const char *argn,
    (char *)0);

    int execv (const char *path, char *const *argv);

    int execle (const char *path, const char *arg0, ..., const char *argn,
    (char *)0, const char *envp[]);

    int execve (const char *path, char *const *argv, char *const *envp);

    int execlp (const char *file, const char *arg0, ..., const char *argn,
    (char *)0);

    int execvp (const char *file, char *const *argv);

    but wait... what's this?

    exec, execl, execv, execle, execve, execlp, execvp

    Wow! Look at all of these different exec-style() calls!

    Not so simple now, is it?

    Bitching about CreateProcess being too complicated would appear to mean that you've never had to start up an application in a suspended state so that you can specify the priority it runs at before it starts going. Or you've never had to monitor the processes' completion state by checking its handles. Or you've never wanted it to run with its support libraries and data files in one folder, while using another as its default folder.

    In other words, exec() is great for writing CLI apps that don't do much, and are self-contained. But for anything more complicated, you really have to write a hell of a lot more code.

    --
    Coming soon - pyrogyra
  272. Re:Without realizing it... by grotgrot · · Score: 2, Insightful

    The Windows API designed decided to do EVERYTHING in one call. If they add new features in the future, then there will need to be yet another variant of the call. (As someone who has lived through Win286 to XP, this has been both predictable and the API design inflexible).

    The UNIX approach was to make simple calls, and yes, it does amount to the same thing. You can make up 14 system calls (to set up "security", current directories, handle inheritance etc), and if you leave any out, you get sensible defaults.

    The difference is the UNIX api designers went for simplicity and elegance. The Windows API designer went for a one shot function does all, and if new features appear in the future, you have to make a new API call. The UNIX api for making a new process has not changing since 1970 because it was simple and elegant. The Windows ones constantly change with new Windows features.

    I will certainly grant you that exec* look like a mess, but in reality it is actually all one function with different calling conventions. There is actually only one system call. We certainly won't start on calling conventions :-)

    This doesn't mean that you can't have bad design, good design, simplicity, elegance etc on any platform. My general point was just that Microsoft tends to overcome stuff by brute force. Make more APIs, make more versions of them. The UNIX tendency has been for elegance and simplicity. Neither is perfect.

  273. Re:Command line? Hell, how about process? Security by j+h+woodyatt · · Score: 1

    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.

    Take it from a guy who has been where you are before... when you are brought before the grand jury, you will thank your lucky stars you kept a diary. If you're not keeping a diary now, then start one. Learn by watching other people make mistakes.

    --

    --
    jhw
  274. Oh for god's sake: Not that old chestnut again! by titzandkunt · · Score: 1


    Just point your browser at Snopes , Urban legends or Wikipedia or just about anywhere on the web to find out what utter bullshit this is.

    God, I hate these smug, tedious, sub-"Reader's Digest: It's a funny world", lying little fairy stories.

    T&K.

    --
    Political language ... is designed to make lies sound truthful and murder respectable...
    1. Re:Oh for god's sake: Not that old chestnut again! by rduke15 · · Score: 1

      I wrote "reminds me of that story...". Of course, all stories aren't true :-)

      Thanks for the links anyway.

    2. Re:Oh for god's sake: Not that old chestnut again! by Medievalist · · Score: 1

      You think you're tired of it, I worked at Thiokol right up until Challenger... so I get sent the stupid thing every month or so when some friend or relative stumbles across it on the net.

      It's not really utter bullshit, though, it's just off in several places. Most significantly in the "roman war chariots" nonsense - the grooves were engineered into Roman roads to keep multi-ton oxcarts from brushing against buildings and each other, they weren't "worn" into them by any mythical chariots. The part about the size of the SRMs being restricted by the size of railroad tunnels is actually true.

  275. Re:can this guy actually code? by b.rider · · Score: 1

    a good VB programmer won't do that either.. Windows based on COM and COM allows easy component based applicatoin development ie. data access/business logic/GUI layers etc.. as opposed to monolitic systems. a good programmer always will stick to this style. btw, if you take Mozilla development, it is based on XPCOM, which basically adoptation of Win COM on application level. i think there is no strong separation Unix/Win programmers but Good/Bad programmers. I've seen plenty of bad code for win and for unix/linux...

  276. Re:Bubbling frustration by b.rider · · Score: 1

    "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." hm, have you ever programmed for Win? or for Unix?:))

  277. Re:Without realizing it... by spectecjr · · Score: 1

    I will certainly grant you that exec* look like a mess, but in reality it is actually all one function with different calling conventions. There is actually only one system call. We certainly won't start on calling conventions :-)

    Sounds like the difference between using CreateProcess and using the runtime library exec() functions to me.

    You do know that you can use exec functions under windows, don't you?

    --
    Coming soon - pyrogyra
  278. Re:Documentation vs Slim to none by johnnliu · · Score: 1


    Clearing up some biased points.

    > if you subscribe to MSDN or some other microsoft money scheme, you can read the documentation. Well, users should have access to that if they so want.

    MSDN is free to read online.

    If you want the entire MSDN help files on the user's computer pre-installed, they'd need to take up about 2GB+ additional space.

    Or if you want to save your bandwidth, you can order a DVD pretty cheap.

    > UNIX programmers say: Nonsense! You are a programmer right? Then write a program or API that does what you want.

    You need to consider:
    1. How much is this going to cost.
    2. How much do we really need this.

    If it can't be easily done, and it's going to cost quite a bit, or if we can work around it, is rewriting our own drivers the right thing to do?

    What if management changed their mind tomorrow and decides we don't really need this piece of code anyway.

    Personally, I hardly say something can't be done. But usually something SHOULDN'T be done.

    jliu

  279. Re:Without realizing it... by JudeanPeople'sFront · · Score: 1
    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

    Apparently Mr. Spolsky does not understand one of the principles of Unix programming: The Rule of Repair. "When you must fail, fail noisily and as soon as possible." When an Unix program can not do its job, it lets you know.

    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.

    Irritating, isn't it? Sometimes I see a zero activity on the network connection, yet the browser progress bar keeps crawling! "The download continues, don't worry". It insults my intelligence. And sometimes the machine freezes WITH the blinking and moving gadgets, too...

  280. Re:Command line? Hell, how about process? Security by Spoing · · Score: 1
    Take it from a guy who has been where you are before... when you are brought before the grand jury, you will thank your lucky stars you kept a diary. If you're not keeping a diary now, then start one. Learn by watching other people make mistakes.

    Oh yeah, I'm not just keeping notes I'm sending emails.

    CYA can be subtile (that's the mode I'm in now) though I'm willing to crank it up a bit if the point isn't memorable enough.

    --
    A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
  281. Re:Bubbling frustration by handslikesnakes · · Score: 1

    on the intuitiveness of Ctrl-X/V/C: X looks like scissors V looks like the nipple at the end of a glue bottle C stands for copy I have no idea whether this is coincidence or not, but I found it interesting when I noticed it.

  282. Re:Bubbling frustration by handslikesnakes · · Score: 1

    damn you, html formatting and the lack of an edit option!

  283. Re:Without realizing it... by grotgrot · · Score: 1

    The UNIX ones are the runtime library. The only system call is exec. There is a greater distinction between library vs kernel in UNIX. Windows is a different area completely due to things sort of being kernel and library (eg the GUI) as well as the different subsystems, and the not truly documented actual kernel interface.

    Other areas are also noteworthy. Providing you pick the right function, automatically launching a document works nicely. You can't actually do that in UNIX. There are a smattering of mime type files and random APIs in each windowing environment (KDE & Gnome), mail readers, news readers etc. IMHO there is no excuse for that!

    OTOH things are again inconsistent on Windows. For example I use a help authoring tool. I can invoke it from the command line and ask it to do a complete build and then exit. Amongst other things it invokes the Microsoft Help Compiler. However the help authoring tool then exits. There is no way from the start command to wait on a process and all of its children.

    On UNIX, the default would be to wait for the process and all its children. However child processes could detach themselves, and they would have the best knowledge if that is applicable.

  284. Re:Documentation vs Slim to none by TheRealSlimShady · · Score: 1
    There's no room to add comments to the registry even if the programmer wanted to

    Noone stops you creating a "comment" string in the registry that you could read. You can put whatever you like in there.

  285. Re:Bubbling frustration by Azghoul · · Score: 1

    Well dang, that's about the most useful way I've seen to think about it. :-P

  286. Re:Non-ideological? Uh-huh. by Anonymous Coward · · Score: 0

    You didn't mention the easy availability of guns, and the murder rate that goes with that, or the war on drugs. (although i guess both could be subsumed into the legal area)

  287. Re:Without realizing it... by Anonymous Coward · · Score: 0

    Some days I ride in the font of the commuter train.

    Strangely enough, this just gave me an idea -- I'll cross a font design program and a rollercoaster simulator and become rich!

  288. Re:The essential difference by Anonymous Coward · · Score: 0

    I'm one of the best programmers ever born

    Cool. If you don't think it's beneath you, visit the TopCoder Arena sometime, would you?

  289. Re:Try this... by spongman · · Score: 1

    exactly, so isn't it kinda ironic that most of windows administration (since win2k) is implemented in just this way?

  290. Re:Bubbling frustration by Anonymous Coward · · Score: 0

    > Windows programmers don't read/write to stdin/stdout because they don't have to.

    Actually, if you actually try using stdout on Windows for any significant amount of data, you will find that it is very slow. That's a pretty big discouragement.

  291. Re:How to tell if you are a linux fanatic. by ishmaelflood · · Score: 1

    "They are able to buy a PC, install software, learn how to click here and there, play games, do all the other cool stuff that comes pre-packaged for them"

    We call this /using/ the computer.

    "But when they are confronted by other users, ostensibly the same as them, who are able and willing to use a technically more challenging system such as Linux or other *nix systems, they see that as a challenge to their own view of themselves as a knowledgeable "power user.""

    Possibly. However I would guess that most people using their Windows machines to do productive work on don't actually have any opinion about users of *nix. If you forced them to pay attention to a *nix user they'd just think "Gosh, what an odd way to spend time. Now I'd better get on with doing some productive work"

    You think "power user" is a compliment. They don't even think of it as a meaningful term. Hence your fury with them.

  292. Re:Non-ideological? Uh-huh. by Grishnakh · · Score: 1

    No, but I have to disagree about the availability of guns causing a high murder rate. Michael Moore looked at this in his film "Bowling for Columbine" and found there are other countries with easy access to guns but no correspondingly high murder rate (Canada in the main example here). Personally I think people (at least adults without a criminal record) should have fairly easy access to guns, and as seen with Canada, this isn't an American-only viewpoint.

    However, the high murder rate and the "war on drugs" are definitely good things to criticize America about. But I wouldn't categorize the drug war as being part of the bad legal system which enriches lawyers. Drug offenders usually don't get good lawyers, so I don't see lawyers getting rich off of that. If anything, the "war" helps the growing private prison companies, and it helps the government grow larger and take more tax money while not providing any services in return (except for high crime).

  293. Re:Bubbling frustration by bluGill · · Score: 1

    Control X/C/V were choosen because it was decided that it would be extreemly common to need them, so people would learn whatever was choosen, and on a standard keyboard (which back then did not have 101 keys and two control buttons - IIRC it was a mac with one command button) was near the control key. The idea was to make it faster. Those who rarely cut and past will just use the edit menu, those who do it all the time are going for speed so speed should be given at all costs.

  294. Re:Bubbling frustration by Anonymous Coward · · Score: 0

    Must be pretty lame VB Programmers or you're not telling the whole story. In the windows world you would use a DTS Package to do data transferral which at most will contain a little bit of VBScript.

    But for scheduled tasks that need to be done in a gui and command line and DTS cant cut it most VB developers I know would do something like this.

    Public Class MyDataProcessor
    Public Sub ProcessData()
    ' do data processing
    End Sub
    End Class

    Public Class frmMain
    Inherits System.Windows.Form

    Private Sub btnDoProcess_OnClick(Object sender, e as EventArgs) Handles btnDoProcess.OnClick
    ProcessData()
    End Sub

    Public Sub ProcessData()
    dim dataProcessor as new MyDataProcessor
    dataProcessor.ProcessData()
    End Sub

    End Class

    Public Module Main
    Sub Main(args as String())
    If args.Length<1 then
    dim frm as new frmMain
    frm.Show()
    Else
    '-- Its a command line app launched from NT Task Scheduler frm.ProcessData()
    End If
    End sub
    End Module

  295. Re:can this guy actually code? by rohan.mitchell · · Score: 0

    Give me a GUI and i'll open an eterm :) Rohan

  296. Re:Binary libraries by bluGill · · Score: 1

    Sure, now care to find me ANYWHERE where I can find well written docs? I've worked with a lot of them lately, and not one set, or even all combined explain the important details I need to do. You see I need to know more than how to call foo() correctly, I also need to know when to call foo(), what to call first, and that foo exists so I don't waste my time re-inventing the wheel. (this last is hard because so much already exists that no person can keep track of it all)

  297. Re:The essential difference by bluGill · · Score: 1

    I think you just proved the point without meaning to. Everything is layered. I've used most of the above, with just about every combonation of other layers. xemacs works the same no matter if you are running Alpha/FreeBSD/Xfree86/KDE, PPC/Linux/Xfree86/TWM or Sparc/Solaris/XSUN/OLVWM. IT looks very different, but it still works, and if you find a bug in any layer you can switch it out for a different one.

  298. Re:Without realizing it... by spectecjr · · Score: 1

    OTOH things are again inconsistent on Windows. For example I use a help authoring tool. I can invoke it from the command line and ask it to do a complete build and then exit. Amongst other things it invokes the Microsoft Help Compiler. However the help authoring tool then exits. There is no way from the start command to wait on a process and all of its children.

    It could certainly very easily wait for its children to finish if it was designed to do that.

    It wasn't. That's bad design on the application programmer's part.

    --
    Coming soon - pyrogyra
  299. Re:How to tell if you are a linux fanatic. by fingusernames · · Score: 1

    Didn't I expressly say that I was not insulting them? I have no fury. They are using the computer to do what they like. Perfectly respectable. No issue whatsoever. My clients are people like that, every day, using their computer as a tool to do their job. I'm quite comfortable with them.

    I was referring to those who use Windows and do consider themselves power users, who do consider themselves to be extremely proficient, who are then confronted with another environment in which their seeming expertise and proficiency is utterly useless. Some would see that situation as an opportunity to learn some more and expand their skills. Others, of course, just keep walking and pay no mind. Some, though, have a personality such that they see it as a threat to their concept of themself as a "expert" and then seek to belittle the other.

    There are profound differences between the world of *nix and the world of Windows. I'll use myself as an example. I learned computers back in the 80s. A soldering iron was something you used sometimes. I learned to program 8-bit machines with 4k of RAM. I went to college, and graduated in computer science (at a school where it was still a science). I have written operating systems, compilers, programming languages, database systems, so on. For me, the *nix world is like water is to a fish. The *nix world still revolves around people like me. Specifically, people interested in the science of computing, and who see the computer and the operating system as a tool to learn about that science and expand their skills.

    The Windows world, however, revolves around customers in a consumer model, using products to solve problems, such as writing a letter or whatever else. A Windows user can become an "expert" in their own mind quite easily, without any truly technical understanding of the operating system, how it works, and other fundamentals. They merely install some products, learn how to tweak some of them in the ways permitted by the vendor, perhaps troubleshoot and solve some issues which your average Windows user could never do. That is a rather low bar technically, but as a Windows user is truly a *user,* it is the bar.

    That is not traditionally true in the *nix world. In the *nix world, to be considered an expert by your peers requires a great deal more understanding of fundamentals, more ability to troubleshoot and solve issues than available to the Windows user, some programming skills (whether scripted or compiled), and so on.

    The hobbyist Windows expert confronting the Linux expert is generally a very lopsided match. And as I stated before, some personalities see that as a threat and react as such.

    I have no intent whatsoever to denigrate the users of Windows. Each to their own. Whatever floats your boat. Now, on the other hand, I do find Windows to be wanting in many ways. But if a Windows user finds thoughtful criticism of their OS to be a personal insult, then they have issues. Ditto for Linux users in the same situation.

    Larry

  300. Re:Try this... by Ragica · · Score: 1

    Sounds more than a little like KDE/dcop ... check out this recent article.

  301. Re:can this guy actually code? by Anonymous Coward · · Score: 0
    i would say that textual interfaces were more popular before bandwidth started becoming readily available.

    They're still popular. I took my Mom to the doctor today. The receptionist had a PC running Windows, with some kind of text-mode app (probably a database) maximized. The cash registers at the grocery store also have a text UI. Footage of an office on the TV news shows cubicles and PCs running text-mode apps. The local library replaced their dumb terminals with PCs running Win95, and the only app running on these PCs is a text-mode terminal program to access the card catalog. The last time I visited my insurance agent, it was the same thing: PC running Windows running nothing more than a terminal emulator.

    What a f*cking waste. $1250 PC, 16 or more meg of RAM, fast CPU, money for a Windows seat. All this just to run a text-mode program.

    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.

    Not for me. I live in the country. No cable, no DSL, and dial-up never goes faster than 26,400 baud. I like text. I think others should too, but they're not given the option.

    And no, a program doesn't have to be graphical to be user-friendly. Look up the D-Flat or Turbo Vision text-mode UI libraries.

  302. Bad idea! by Gentle+Troll · · Score: 1

    Imagine: a bunch of OSS developpers hiring a manager to improve their mail client. After a few weeks and a few thousands of $$$, the manager advises them to find a way to execute scripts upon reception on their mail client!

    Heh! This would make a lot of sense from a manager's point of view, of course, but 99% of the slashdotters know it's a bad idea. Linux developers have better uses for their meagher resources.

    What we need is a standard for things like cut-and-paste, configuration, etc. We can have 100 distributions, 10 toolkits, 5 packagings but we need one kernel to rule them all...

    Well 'rule' may not be a happy choice of word for people attached to freedom and progress, but I'm convinced that improving coordination can help a lot.

  303. Text-based interfaces are free-form by Kashif+Shaikh · · Score: 1

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

    This is why I've always hated text-based interfaces - since the first time I had to write a shell based program to do SQL queries on IBM DB2 for my university assignment. The glue between the caller and the program is loosely coupled and not tightly integrated. The input/output is not specific and the front-ends aren't tested to work with all comibinations of stdout output.

    Sure, a text-based interface can have a well-defined interfaced using keyvals for in/out, but most CLI writers don't keep strict output formats. These interfaces are flexible and desirable because it allows them to be used in any program(C,C++, Java, Perl, Python, etc) without special bindings.

    This is why I like C/C++ APIs - they export a well-defined interface. Only if Perl and Python can call C/C++ APIs without writing Perl XS Modules, Python C API modules, or swig glue, it would be perfect. CORBA solves some of these problems but its too complex. Anyone know of a common-interchangeable communication format? (Don't say XML or I'll shoot you).

    Kashif

  304. Re:can this guy actually code? by Anonymous Coward · · Score: 0

    Swallowed a little too much hype, have we?

    XML can't do anything automatically, it has to be told how to permute everything.

    If I create an object that pulls data from a database, how do you use XML to tell a spreadsheet that it can get that data from my object? What if I update my object so that it returns new types of data? The only way XML is useful in situations like that is to try and describe a translation from my object's format to EVERY OTHER kind of format that exists. And we all know how well that works.

    XML is as much a silver bullet as my ass cheeks.

  305. Re:Documentation vs Slim to none by Anonymous Coward · · Score: 0

    For serial devices? For GPS devices???? Didn't think so.

  306. Re:Bubbling frustration by fferreres · · Score: 1

    What are you trying to cut and paste? I can't paste anything usefull underwindows, except images and some other content that will get embedded into another app (which is not even usefull).

    I mean, the power of Cut & Paste is highly overestimated. Linking in PowerPoint or Word from Excel is nice, but how much Cut & Paste does make sense?

    Advanced Cut & Paste under Linux is piping streams. Yes, a nice Cut & Paste could be usefull, and is trivial to implement, but nobody did it. It could be as easy as telling a mime type, kind of a n HTTP header, for data. But if nobody does it, it may be well because it's not so needed.

    In fact, I'm I tended to hate X style coping, but now, having gone BACK to Windows (work mandated, an Windows is quite usefull for many office tasks) I tend to miss simplicity in Cut & Paste. It's not really only CP, but everything. In general, the notion that under Windows, in not on charge. For example, I am using PivotTable reports. And I know SQL and how to tabulate myself, but the pivottable insists on limiting me to the GUI. I can't see the SQL query no matter what. And because of having used the rel thing (SQL), I can know I am not able to perform many needed and simple things. I wouldn't know them otherwise. Not only that, but the tools I have to use are now based on non normaliced tables, because crosstabbing is so easy , and the windows DB guys here don't even notice how ugly and future-limiting everything is.

    Windows forces you unnoticeably into doing things the worng way, and you start to think many things cannot be accomplished...there's no "application for that". But you will never know how most things are if you've never gotten away from theGUI centric view. Playing with Linux for a year can make you view things differently. You will never know what you are missing otherwise.

    --
    unfinished: (adj.)
  307. The flaw in your logic ... by Shadowlore · · Score: 1

    Not quite. You don't get the stability and security, or even the scalability of Unix/Linux. Nor do you get the scriptability.

    Kinda like putting a Corvette steering wheel, along with the emblems and shifter onto a Ford Escort. It's still a Ford Escort.

    Or like putting a giant wing, a fart can, and a bunch of stickers on your little old Civic. it still isn't a sports car.

    --
    My Suburban burns less gasoline than your Prius.
  308. Linux needs everything by poofyhairguy82 · · Score: 1

    but the one thing the parent poster would settle for would be easy to set themes. If a uses wants, then he/her should easily be able to make the programs follow one them based on skins. these can be made by the user so it would be the best.

  309. You're not doing it justice by jesterzog · · Score: 1

    but we also have some efforts that really try to aim at end users, more or less succesfull. allright, it's not as easy as using MacOSX, but it's quite close in many aspects. and quite usable for the novice, especially in the distributions that try to make it simple (xandros, lindows, etc)

    I don't think it's being fair to Unix-based operating systems to imply that they're playing catch-up on the desktop. (I know you haven't said it, but that's how your comment reads to me.) To a certain extent KDE and Gnome are, but they don't cover everything.

    One of the main reasons that I run Linux on my desktop PC is that I don't really like Windows on the desktop. You're effectively locked into Microsoft's idea of a good UI, which for a variety of reasons I don't like. (Both their UI design and their lock-in.)

    By running Linux, I get to choose from a much wider variety of UI's. Personally, I choose WindowMaker.

    From a UI perspective, I tend to think that allowing for too much choice and configuration about how things work is a bad thing. But on the other hand, I'd rather be able to choose than be forced to use somebody else's bad design.

    1. Re:You're not doing it justice by koekepeer · · Score: 1

      you *do* realise that the only valid point made in the article was that you are part of a minority? i love freedom of choice and free software, like you. i like to tinker and tweek with my desktop and have options, like you. because our attitude is not ubiquitous, we should accept that we need to cater the majority, and make a linux desktop which is a (dumbed down) compromise. something xandros, lindows et al are attempting.

      there are/have been niches in the windows world that attempt(ed) to make an alternative to the explorer interface. but they never became a majority, because for most people it just works.

      people who are different from us are the people who make linux on the desktop succeed.

      i recognise some points joel was trying to make from real life, i just disagree with his style of writing. too polarised. just like the community he is making fun of. everyone knows /. isn't exactly the most neutral unbiased piece of journalism in this world ;) he attempts to have more of a journalistic flair with his site however, so it looks more stupid on him when he is biased...

  310. Re:can this guy actually code? by Khazunga · · Score: 1
    Corba isn't an Unix protocol. Your belief is just evidence that Windows developers tend to be Microsoft blinded and impervious to technologies from places other than Redmond.

    X11 is a specific application protocol. For that particular application, a binary protocol make sense. It doesn't belong in this discussion.rpc/portmap has little actual use outside of NFS. I place it into the category of application-specific protocols.

    DCOP and Bonobo (which is just Corba, you know) are current desktop environments' attempts at copying the Microsoft/Apple architectures. They are not proven, and I doubt they get the same kind of interoperability plain text interfaces do.

    Plain text interfaces are at the core of most of the +2000 binaries I have sitting in /usr/bin. The fact of the matter is that all of these are self-documented, and all of these are pieces for me to use as a developer -- even when developing small, one shot, shell commands. This kind of power was never available to Microsoft OS users, and will probably never be.

    PS: And, naturally 'cat /dev/sda1' does not produce text. It could never produce text. When people run out of arguments, they start nitpicking on details...

    --
    If at first you don't succeed, skydiving is not for you
  311. Have you heard about man-months? by kyz · · Score: 1

    Logistics, man. If it can be physically completed by one man in two weeks, it is a small project. No two ways about it. You are doing trivial work, and you've planned your career to do trivial work.

    --
    Does my bum look big in this?
  312. Re:Try this... by Felonious+Ham · · Score: 1

    In short, GUIs are great browsing, when you don't know exactly where you are/want to go, the commandline is better when you know what you want to do.

  313. Re:Mirror world by imroy · · Score: 1

    Ah thankyou for explaining that. Here in Australia we tend to use a mixture of the "proper" British english for mostly historical reasons, plus the perverted US english propogated by their gargantuan media machine. It can be terribly confusing sometimes when dealing with brits or yanks since we're somewhere in the middle.

    For example, in school we used the terms "eraser" and "rubber" almost interchangeably. Only later did we learn the slang meaning of "rubber" to also refer to condoms. And only recently I saw a US stand-up comedian on TV talking about a trip to the UK and what these two words mean in each country. It turns out that "eraser" is the US term, while "rubber" means condom in the US but means eraser in the UK. Ah, you learn something new each day!

  314. Not in the file spec, but in the command syntax by Medievalist · · Score: 1
    I don't recall slashes of either variety in VMS file specifications.
    Right, they aren't. The original poster pointed out that DOS uses backslashes for directory separation because they already used slashes for the switch initiator character. Like as in "dir /p c:\" for example (which can also be written "dir c:\ /p" which is nice). DOS and CPM got the use of slashes for switches from the same place VAX/VMS DCL got it, that is the RSX family of PDP operating systems.

    Since DOS already had used slashes for switches, and the command parse routine was not based on space characters like unix shells are (for example, in DOS you can do cd\ or cd.. which does not work in bash) they had to use a different slash when they implemented hierarchical file storage (aka directory structure). Kapiche?

    As an old DEC hand you'll remember that VAX and PDP commands all used the tparse routine (which was available to user programs too) to parse command lines, and tparse allowed abbreviation and switch position independence while avoiding the more undesireable effects of shell pre-processing.

    But the real advantage of the DEC systems was version numbering. Anyone who ever programmed for any length of time on a VMS system understands how inexpressibly primitive and lame filesystems without version numbers are.
    I recall DEC claims at a DECUS symposium that VMS was the first OS to achieve POSIX compliance, which was quite a feat since it was so non-UNIXy to begin with.
    Yup, I believe that claim is correct. People forget that VMS was much more advanced than unix (though linux is going to surpass it pretty soon) for native english speakers. Linus Torvalds hated it, and I suspect this is because at the time his english really sucked (no longer true).
  315. Here's your innovation, Mr. Coward! by Anonymous Coward · · Score: 0

    I've just made something you might find interesting in the men's room, and I left the toilet unflushed for your dining pleasure.

  316. Huh? by Medievalist · · Score: 1
    I don't understand your point. P'raps I'm as stupid as DOS is :P.
    So tell me, when is the last time you have operated a VAX? I remember my last interaction with a VAX was the finance system in a Steel Mill, circa 1996.
    I have a vax in my basement, but I haven't turned it on recently. It's a salvaged Alpha that I converted from Saint/OSF-1 to VMS (hobbyist edition, which is free for home use). But my VMS skillz are pretty rusty I think, I can't remember all the QIO parms anymore.

    The last time I used a VMS system professionally was in the 90s (unless you count systems that I don't personally admin, in which case it was a week or so ago.)
  317. program portability by Medievalist · · Score: 1

    I see your point, but I'd argue that a well constructed program can be trivially reconfigured to be in a new location.

    For example, I built Infozip's unzip facilities for unix on an HP-UX box yesterday, and I had to change one line in one file (the prefix setting in the makefile) to put it exactly where I wanted it. Took less than five minutes all told (with no prior knowledge of the software) so recompiling it for a new location would be extremely trivial.

    I'm not saying that your statement Fundamentally programs should not care where their physical storage is, only where it is in the namespace. is incorrect, but I think it's more a matter of preference related to the type of programs you write. For a word processor, OK, I see you'd want hardware abstraction. For a program that exercises the hardware to the extremes of its physical limitations (for example, a program to test solid fuel rocket motors) you can't afford the overhead, it's too inefficient to have opaque software layers between you and the circuitry.

    I'd like to be able to write any sort of program, so I prefer exposed structures and I'm willing to do the extra work if I'm going to write an end-user app. Which I almost never do, incidentally, I'm usually a plumber not a painter.

    1. Re:program portability by Mr+Z · · Score: 1

      For compiling software from scratch, it's not so big a deal to handle customizations the first time. If you're reconfiguring a machine, it can become a huge headache quickly. In either case, though, the argument misses the point -- it's not about finding your home in the namespace, but rather that the filesystem namespace shouldn't change radically even if the hard-disks under it do.

      For most applications, the physical layout of disks and partitions on a machine should be irrelevant. It should only matter to diagnostic software whose purpose in life is to access those devices at the lowest levels. The OS should provide APIs or other interfaces for this purpose, and these paths should be separate from the generic file hierarchy that apps see. Witness /dev under *nix. I'm sure Windows has low-level APIs as well.

      Addressing your statement: For a program that exercises the hardware to the extremes of its physical limitations (for example, a program to test solid fuel rocket motors) you can't afford the overhead, it's too inefficient to have opaque software layers between you and the circuitry. Device drivers and filesystem software should talk more directly to devices. (Actually, filesystems should talk to block abstractions that talk to devices, thereby enabling RAID and other such things.) High level apps talk to higher level interfaces, such as filesystems, databases, sockets.

      If you're testing solid fuel rocket motors, then by all means, talk directly to the hardware. In fact, I imagine you're on something a little more controlled than a PC anyway. (Or maybe not -- look at Armadillo Aerospace and their PC-104 stack running Linux.) In contrast, web browsers shouldn't care about the fact that one of your hard drives is SCSI, one is IDE, that your browser cache is on a RAID partition, and that you use an accelerated video card. It shouldn't care if you're using WiFi, dialup, broadband, or TCP/IP over Avian Carrier. The fact that modern OSes insulate apps from these distracting distinctions is a Good Thing (TM).

      Who wants to go back to the bad old days of DOS, where a telnet client had to include its own TCP/IP stack, and you were on your own to find a compatible packet driver for your ethernet card? Or, how about games that may or may not work with your sound card / video card / joystick combination? Who wants the era where each word processor came with its own set of printer drivers? ICK!

      I personally view the traditional "C:\Program Files" to be a travesty -- it requires me to put all my stuff on the same HD as the OS, and to make sure it's big enough. I seem to recall that modern Windows lets you do *nix style mounting to some extent to get away from that issue, so maybe there's some light at the end of the tunnel. Fortunately, I only have to endure Windows at work, and I let Those Who Are Paid To Do So administer my machine.

      --Joe
    2. Re:program portability by Medievalist · · Score: 1

      Again, I see your point, but I think you're trying to state a general rule from specific cases. By choosing my own cases - for example, the static rocket motor testing app I mentioned, and some of the industrial automation projects I did for DuPont - I can compose the opposite rule.

      We agree completely on the need for layered software, though. I don't want to rewrite the networking stack for every app, or the printer drivers either.

      The difference in opinion is that you feel that devices, that is, storage locations, should be invisible to applications and managed only by the filesystem, and I want to specifically know exactly which physical hard drive contains which bytes at all times. I'd also like all media to be removable and hot-pluggable; one of my favorite tricks is to pull half of a mirror set (either a pair of synced disks or a 0+1 RAID array) and attempt a complex software upgrade, then if it doesn't work out I just power down and put the untouched disks in.

    3. Re:program portability by Mr+Z · · Score: 1
      The difference in opinion is that you feel that devices, that is, storage locations, should be invisible to applications and managed only by the filesystem, and I want to specifically know exactly which physical hard drive contains which bytes at all times.

      Well, I kinda want both. I want to personally be able to say, given a file or a tree of files, what disk(s) and machine(s) that data is held on, so that I can move them if that drive starts to fail. I don't want to have to tell the app that just to use the data. I don't want the app to care if the data moves (especially if I had to move it because a drive is failing). I've had drive letters sneak into project files in IDEs under Windows. Moving a project from one computer to another, where the drive mappings are different, is an adventure. I want to avoid this.

      Knowing the physical mapping of files to drives is useful for the reasons you state. Typically, though, the consumers of that information are the system administrator and system administration tools, not applications.

      --Joe
    4. Re:program portability by Medievalist · · Score: 1
      Well, I kinda want both. I want to personally be able to say, given a file or a tree of files, what disk(s) and machine(s) that data is held on, so that I can move them if that drive starts to fail. I don't want to have to tell the app that just to use the data. I don't want the app to care if the data moves (especially if I had to move it because a drive is failing). I've had drive letters sneak into project files in IDEs under Windows. Moving a project from one computer to another, where the drive mappings are different, is an adventure. I want to avoid this.
      Me too. Under VMS it's pretty easy, programmers use logical names instead of drive letters and those logical names can be reassigned as need be. They work like *nix aliases, but in VMS you make symbols that equate to verbs (like, cd=="SET DEFAULT") and names that equate to nouns (like, define App$dir ClusterNode2::UserDisk1:[rootdir.subdir.appdir]). The syntax is a bit clumsy (so's *nix, though - in the blue & white unix bible I think it says "set is a command that does too mnay things") but in practice it works pretty well, and VMS syntax is completely redefinable anyway. I think we can agree that the DOS method sucks for at least five or six reasons that have cropped up in this conversation!

      One defines logicals at program or system startup time, and programs should be written to give useful messages if a name isn't present (typically something like "ERROR: User's mail directory MAIL$DIR is not defined.").

      PS: VMS syntactica above are off the cuff, probably aren't precisely accurate.
  318. Man-months are mythical by solprovider · · Score: 1

    You ARE a PM! Or do you prefer PHB?

    I make businesses better. I do process reengineering and technology implementation. My work has saved companies millions of dollars per month. My work has people finishing their main task in 2 hours instead of 12 hours, so they can be more productive and pick up their children from school rather than just watch them sleep. I have had a positive effect on people and companies, and I plan to continue.

    If you call all that "trivial", I cannot imagine what you consider important.

    ---
    [WARNING: Bragging follows.]

    Now about man-months:
    1 great programmer = 20 good programmers
    1 good programmer = 10 average programmers

    Time required for a project = (Time for one programmer to complete it) ^ (number of programmers assigned)
    - One programmer is more efficient than 2 programmers. With 3 programmers, projects take so long that they may fail. 4 or more almost guarantees failure.

    If a project cannot be completed by one good programmer in 6 months, it is designed wrong.

    I design applications in my head before the business people have decided what they think they want. I write code 3 to 10 times faster than anybody my colleagues know. My code is more efficient (less LOC) so it is easier to test. I unit-test as I go, and reuse proven code, so beta testing is almost a formality. (I do get upset when clients say, "The last 5 applications worked perfectly, so why do we need to test this one?") I work on the best RAD platform ever created for business applications, and I know more about the platform than the people who write it (by their own admisssion.)

    Your typical project:
    2 months specification gathering and approval
    1 week designing major functionality and assigning responsibility
    2 months initial programming
    1 month integration of each person's work
    Oops! Specifications changed | design was bad/unscalable/does not fulfill needs | someone did not write the same API that someone else planned to use | Integration with backends needs rewrite.
    Repeat "design - code - integrate" until project seems to work or the money is gone.

    My typical project:
    "Show me what you do now."
    "Thanks. I'll have something for you to try next week."
    [Then a miracle occurs]
    "So... Can you talk with that smile or is it stuck?"

    (If you want to use the word "trivial", what do you call the corporate application development department that can be replaced by having me work part-time?)

    --
    I spend my life entertaining my brain.
  319. Re:Non-ideological? Uh-huh. by aegilops · · Score: 1

    The same is not true about Windows bigots: they combine their parochialism with a triumphalism that is as infuriating as it is unmerited.
    From the Slashdot grammar police: credit where it's due. Your well crafted, balanced and insightful sentence was much appreciated.

    Now, back to work educating posters about "it's" and "it was done wrongly" etc.
    Aegilops
  320. Re:Bubbling frustration by peterb · · Score: 1

    You are just proving my point. God, I hate this attitude so much.

    USER: "I need to cut and paste."
    SLASHDOT POSTER: "Why do you need to cut and paste? You shouldn't cut and paste. Write a script and pipe your output to stdout."
    USER: "I'm sorry, but I'm going to have to shoot you now." [shoots slashdot poster]

    If you want people to use programs you develop, one of the most important steps is the part where you shut the hell up and actually LISTEN to what people want.

    It's not a part of any reasonable development process to tell the user that they should find a stupider, more complicated way of doing what they want. That, fferreres, is what you are doing.

  321. Ah, a consultant! Everything they say is true! by kyz · · Score: 1

    I really loved your comment. It made me laugh, I've never seen anyone be so blase.

    So you're a consultant. Everything you do is perfect. You never get ill. Your family never gets ill. You're [whoever your next prospective customer is]'s personal saviour. You save billions of dollar every day. You leap tall buildings in a single bound. You promise the world, and always deliver! You're worth every penny you charge. You've never been on a project for more than a couple of weeks. You've never had to integrate it to more than one or two things. You've never had to renovate it because the thing you integrated against changed and broke your app. You can ditch anything you don't like, because it's your way or the highway. Those pesky customers only think they know what they want, but you know best! You've never heard of maintenance. You use a Rapid Application dev tool to crank out Rapid Applications. This tool only does what it was explicitly designed to do for you, other people just couldn't get the tool to do exactly what it was designed for. You know this tool better than the people who wrote it, like a secretary knows MS Word better than Microsoft!

    You've also skim-read The Mythical Man-Month.

    Lotus Notes didn't become what it is today by telling consultants and RAD monkeys how to do their jobs, then giving them whatever one coder could crank out in one week to do it with. The Lotus programmers didn't have an RRD (Rapid RAD Development) toolkit to write 99.999% of Lotus Notes for them. It took them more than 6 months, and it would have taken any team, even a team of great coders or even a single great coder, more than 6 months to write.

    Because you only write trivial apps, you assume that every possible programming task must have a 4th Generation Language to really ramp down the complexity of software. But there isn't. Some things are trivial, some trivial things can be made to seem complex, some things really are complex, and to pretend that they aren't leads only to failure.

    Once you stop writing web/UI frontends to databases and start writing complex software, you realise just how alone you are -- there are very few tools to help you write things. You cling to everything you can get -- libraries, editors, parser-generators, refactoring tools, etc., but there comes a point where what is needed hasn't been written by anyone, ever. You have to write it, and you haven't written anything like it before. You don't have a single line of well-written, well-tested stock of library code to help you.

    If a project cannot be completed by one good programmer in 6 months, it is designed wrong.

    This one I'll have to quote around the office. It's the height of naivety. When you start writing full featured 50Kb implementations of Brazillian ISUP that can handle 40 calls/s volume on a 150MHz 604e, I'll be impressed. I'll be even more impressed when, 6 months after release, you work out that "foo = bar" should have been "foo = baz", when some other vendor's equipment uses different values for bar and baz in their packets, which your own equipment doesn't, then you write a 20 byte binary patch (in machine code) rather than use the patching tool which makes a patch that has to replace the entire 2Kb function.

    Oh, and yes, Brazillian ISUP can easily be done in 6 months. As can any ISUP. But not ALL of them by the SAME people. And that's the point. To write 20 ISUPs from scratch and integrate them all into the same 6 month release, and test them all, that takes an incredible effort. You can't even think bigger than a single sub-component written by a single person in a tool designed to make it easy. That's what I call trivial.

    --
    Does my bum look big in this?
  322. Ah, a PHB! Everything they say is wrong! by solprovider · · Score: 1

    If you rephrased your post to use "consultants" rather than "you", you would have been more accurate. I have seen examples of what you describe. I do not believe that I fit that mold, but I could not live with myself if I believed I was.

    I do try to be humorous. I am glad I was able to make you laugh. PMs often have that attitude. Then they try to hire me full-time so they can continue to receive the benefits of my presence.

    - I promise the world, and always deliver!
    - I'm worth at least three times what is charged for my time.
    - I've been on projects for 4 years. 6 years ago, I did maintenance on a project I had written 7 years earlier.
    - I had to integrate DB2 and SAP and a PBX into one system. I've had to integrate the entire internet into another system.
    - I maintain many of my apps. You can blame the limited time required for this on skill or luck. I tend to make everything configurable.
    - I am forced to work with tons of systems that I do not like, because I am only a consultant and cannot touch anything that was not placed under my responsibility.
    - People rarely know what they want. I deliver apps that solve their issues. Sometimes they require that I stick to specifications, that rarely lasts through the project because either my ideas are really good, or I have mind control abilities and force them to my will. (You pick.)
    - Maintenance is when you get repeat business on the same application. It means that I have failed to anticipate something, usually because to do so would have greatly increased the cost for little benefit during the original development. (Can I charge just in case they change from MSSQL to DB2, and from terminals to a web UI?)
    - I use Lotus Notes to rapidly build business applications. I regularly make it do things that Lotus continues to define as impossible. I do not know if there are any real programmers working in this domain; you can read my rants about how Notes Developers are the most untrained group in the computer world. Lotus tried to hire me because "I know more about every area of the product than anybody except the person who wrote that specific code." IBM has said that my "Notes expertise exceeds ours."
    - I read The Mythical Man-Month, but it was a decade ago. I remember it being very humorous, but it did describe how many PMs think (which I also find humorous.)

    Lotus Notes is a platform. Platforms are not applications. Platforms are very generic to allow applications to be built on top of them. Platforms require planned architecture and tons of integration to be useful. Platforms do not know what data will be stored, so must have a flexible structure. A platform will always take many times the effort as a single application. In easy terms, adding two numbers together takes a moment. Building a calculator that handles input of two numbers and adds them together takes much longer.

    Applications are very specific. I know what back-ends to integrate. I know what data is to be stored. I know what UIs are needed. An application has very limited scope, which makes them much easier to write and test.

    Lotus Notes has become a great platform because they listened when consultants and RAD monkeys told Lotus what they needed to do their job. I believe the initial work was done by a very small team over 2 years.

    I am building a new platform. I have easily put a year's worth of time into it. It stalled because I based it on Lotus Notes, and Lotus Notes has a few major flaws that keep my platform from being production-worthy. Their stated work-arounds will not work for a new platform, although they might work for applications. I will be writing a replacement for the Notes portion next year. I expect it to take me 1 year to be usable, and then I will hire others for expertise in performance-tuning an SQL engine and a few other things.

    Pick your example better. Maybe use a statement like "Word Processors cannot be written by one person working for 6 months," except I

    --
    I spend my life entertaining my brain.
    1. Re:Ah, a PHB! Everything they say is wrong! by kyz · · Score: 1

      It really does humour me. Two different worlds. By the way, I'm not a project manager. I'm a software engineer. I aim to become a software architect one of these days. I normally program in C and C++, occasionally assembler.

      You already have Lotus Notes, the database and the GUI (i.e. Windows) written for you. You buy in graphics rather than draw them yourself. You don't need to write 99.9% of what you actually deliver. That's fine by me, but don't scoff at people who absolutely have to write 50% or even more of what they deliver. And don't scoff at them because they don't cut corners to make themselves look good.

      I did maintenance on a project I had written 7 years earlier.

      Maintaining your own code is easy, because it fits the way your mind works. Writing maintainable code means writing code that other people can maintain.

      --
      Does my bum look big in this?
  323. Re:Bubbling frustration by alexpage · · Score: 1

    DEVELOPER: "Here's our GUI! Enjoy!" USER: "Wow, thanks! This sure is pretty. So, how do I cut and paste?" DEVELOPER: "Select to copy, middle-click to paste" USER: "Oh, that works 99% of the time. Why are there exceptions?" DEVELOPER: "We were trying to make it more like Windows" USER: "Fair enough"

  324. Re:can this guy actually code? by Minna+Kirai · · Score: 1

    cat /dev/sda1 | cdrecord

    You think so, huh?

    % cdrecord -version
    Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jorg Schilling
    % cat /dev/sda1 | cdrecord
    cdrecord: No tracks specified. Need at least one.
    cdrecord: Usage: cdrecord [options] track1...trackn

  325. Re:can this guy actually code? by Minna+Kirai · · Score: 1

    Corba isn't an Unix protocol.

    So 20 years ago, back when Sun was inventing Corba, they weren't a Unix company?

    Your belief is just evidence that Windows developers tend to be Microsoft blinded and impervious to technologies from places other than Redmond.

    Your belief is just evidence that Windows haters tend to be Microsoft blinded and assume every technology they don't approve of came from Redmond.

    And, no belief I might hold could supply you any data about Windows developers.

    X11 is a specific application protocol.

    How can a "specific application protocol" be used by 8,000,000 different applications so far (and rising)?

    For that particular application, a binary protocol make sense. It doesn't belong in this discussion.

    If this was a discussion, it would absolutely belong. You have claimed that text-based interfaces are best for applications. Counter examples are entirely appropriate. (But unnecessary, since the own programs you demonstrated are already counterexamples)

    even when developing small, one shot, shell commands.

    s/even/only

    Plain text interfaces are at the core of most of the +2000 binaries I have sitting in /usr/bin.

    I doubt that's true. A view of the 3151 files in my own /usr/bin contradicts that viewpoint. But let's assume it's true for your personal computer.

    Which Unix applications get the most use?
    Maybe apache, mozilla (or anything using X11), gcc (or any compiler), emacs (or anything using curses), oracle (or anything based on SQL), sshd (or any daemon).

    None of those have "self documenting plain text interfaces" at their core. (Well, emacs does, but not via stdin/stdout)

    This kind of power was never available to Microsoft OS users, and will probably never be.

    Past: Microsoft sold the Xenix OS, which contained a /usr/bin much like your own.
    Present: Microsoft users can download cygwin if they want to. They rarely want to.
    Future: WSH, etc.

    When people run out of arguments, they start nitpicking on details...

    I didn't even bother to argue, since you'd already been contradicting yourself.

  326. Re:can this guy actually code? by Khazunga · · Score: 1
    That should read cat /dev/sda1 | cdrecord -

    Sorry for the typo.

    --
    If at first you don't succeed, skydiving is not for you
  327. Re:can this guy actually code? by Khazunga · · Score: 1
    So 20 years ago, back when Sun was inventing Corba, they weren't a Unix company?
    How did the fact of being invented by a Unix company brand Corba as a Unix protocol? It's implemented and used in both Unix and non-Unix environments, and designed with interoperability in mind. Just the opposite of the family of protocols started by DDE which grew all the way to the current (D)COM(+). May I add just as a note, that I don't like Corba. I think it's overly resource greedy, and difficult to debug -- much like the Microsoft equivalent familiy of protocols.

    I restate that Windows developers tend to blindly follow whatever is dictated by Microsoft and be impervious to other technologies. People working on more mixed environments tend to search and evaluate the best solution for any given job. This dictatorship goes well against my gut feelings (i.e. it smells).

    I also restate that X11 is a specific application protocol. Not in the sense of a final user application, but in the sense of being applied to a single problem -- remotely displaying computer interfaces. It's not a generic glue protocol, like Corba, (D)COM(+) or piped plain text. It does not belong in this discussion.

    Which Unix applications get the most use?
    I'd wager it's the likes of ls, grep, sort, sed, awk, tar or uniq, not Apache, mozilla or any other big application. I don't have any numbers, however.

    And just a note: Some of the apps you mentioned do very usefull work if stuffed in a pipeline via stdin/stdout, namely gcc or emacs (although for this purpose, sed or awk are easier to use), and I very regularly use ssh in a pipeline to do simple backups (e.g. ssh somehost "tar czvf - importantdir" > backup.`date --iso-8601`.tgz ). Your lack of knowledge is probably the reason for the poor evaluation of the importance of common, simple, well documented interfaces on every application. Do yourself a favor. Go and read the book mentioned in the article.

    --
    If at first you don't succeed, skydiving is not for you
  328. Re:can this guy actually code? by Minna+Kirai · · Score: 1

    I'd wager it's the likes of ls, grep, sort, sed, awk, tar or uniq, not Apache, mozilla or any other big application. I don't have any numbers, however.

    You're wagering wrong. Whether counted in total CPU cycles, time the user spends with it, or just overall importance, big apps win big. The only way small commands could win is if you count the number of times they're invoked, which means nothing (indeed, it inverts the refrain that "uptime is good"). The whole reason that Unix has survived for decades is the power of the server daemons it can run. Small commands that pipe together is a convenience for the power user and the script author, but is not what allowed that OS-family to survive.

    How did the fact of being invented by a Unix company brand Corba as a Unix protocol?

    If you can't even figure that out, I'm afraid I can't help you. (Hint: why do you call stdin/stdout/stderr a Unix protocol, when other environments implement it too?)

    I restate that Windows developers tend to blindly follow whatever is dictated by Microsoft and be impervious to other technologies.

    There you go, bringing up Windows(r) developers again. When did Windows have anything to do with it? You seem to be impervious to the idea of IPC mechanisms beyond anonymous pipes (and think only a Microsoftie could want such a thing).

    Your lack of knowledge is probably the reason for the poor evaluation of the importance of common, simple, well documented interfaces on every application.

    This is hilarious. You've somehow decided that I lack knowledge, when I repeatedly point out syntax errors in your own commands. (For example, you forgot not only that cdrecord needs "-" as a filename before it listens to stdin, but also that the dev and speed commandline options are mandatory)

    You're typing at someone who's been a C programmer for 15 years, who hasn't ran a Microsoft OS since 1998, and who runs Linux both at home and work. I would seriously have no idea how to create a CD with xcdroast or WindowsXP explorer, but punch in mkisofs -rJ dir|cdrecord dev=1,0,0 speed=4 - whenever the need arises. I also ran ssh -lmyname host cat files.tar.bz2|tar jxv just the other day.

    I am violently anti-Microsoft and pro-Linux. But far above that, I value the truth.

    Bold pronouncements that are flatly wrong just make you look simpleminded (or closeminded, depending). Mischaracterization of text-based interfaces (both exaggerating it's benefits, and slandering the alternatives) does nothing to promote better software in the future.

  329. Re:Bubbling frustration by fferreres · · Score: 1

    Childs need parent guidance. When you get to grow alder, you can do whatever you want of course. Now, I am not saying I am anyone's parent. But the reality s I have tryed cut & paste under Windows, and then undex X, and found X not to be good. But then, I learned to CONNECT stuff in interested ways that can be automated easily, and everything makes sense. Now I know cut & paste most important feature is good to avoid typing resources, text and images.

    And while I enjoy C&P under Windows, I am unable to do most of the important stuff. I can get something easy done really easy, but something a bit more complex is imposible, or just takes a LOT of C7P that should be automated.

    Now, I don't know, I think you reason differently when you get used to unix likes, and you get to appreaciate C&P is nice but limited and teaches how to do many things the worng way.

    Anyway, keep your ideas and discard other people ones. You'll progress like hell for sure.

    --
    unfinished: (adj.)
  330. Re:Bubbling frustration by basingwerk · · Score: 1

    Thanks for your reply. My view is that, as organisations commit increasing amounts of their business logic to silicon, a kind of Darwin principle kicks in. Those who adapt slowly, badly or expensively to IT issues will not prosper. Windows culture programmers allow a firm to adapt quickly but badly. UNIX culture programmers allow a firm to adapt slowly but well. So it's a trade-off between quality (UNIX) and speed (Windows). If they are weighted equally, there will be a running battle about which is best, and the decision boils down to who is the cheapest. That's the debate - you can do it in Windows or UNIX, so what costs the least? I think that depends on the application somewhat. Where the application is a business system, the cost of failure might mean anything from losing a bag of nails to loosing sales. VB programmers might get this job. Where the application is a air traffic or spacecraft control system, the cost of failure might mean hundreds of lives or billions of dollars. In this case, system quality is the main driver, and VB programmers are not really in the running on these jobs, at least for some of the application space.

    --
    I stole this .sig
  331. Me and you by fm6 · · Score: 1
    That's pretty ironic: you flame Lord Kholdan for thinking only terms of his own needs, and then you insist that you have to be able to use a UI that's only accesible for a few hard-core techies.

    If your choice of a highly customizable UI only affects you, then feel free. But for most of us, user interfaces are not a private thing. We create, test, document, and provide training for software that people use. All of which becomes much more difficult and expensive if we have no UI standards.

    Everybody has to make compromises. I certainly would never use Windows at all if I had an absolutely free choice. But as it is, I use it between 60% and 95% of the time. The desktop I admire the most is Englightenment -- but I never use it, because it simply isn't practical me to make the necessary mental retooling. I could go on, but you get the idea.

    It's a pity you can't always do things precisely the way you want. But none of us can, and it's childish to whine about every compromise you have to make.

    1. Re:Me and you by xdroop · · Score: 1
      Yes yes yes -- choice is bad.

      >/ironic>

      I am not advocating that organizations be required to support every UI under the sun. I am not advocating that programmers ensure that their apps work with every UI under the sun. I am not advocating that all users be extensively trained in the use of every UI under the sun.

      Organizations, programmers, and users all must make decisions as to what they are going to use. If I work for organization X, then the standards of organization X is what I will use. If I need to use application X, then I will use whatever I need to use in order for application X to be happy. Any time I step beyond the bounds of where the application and/or organization has decided the limits are, I am on my own, and I accept that.

      Don't fear my choice.

      Don't remove my choice -- because I bet you won't be held responsible when I cannot do what I want to do in order to get my job done because of that limitation.

      --
      you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
  332. Re:Sucky... something is. by http · · Score: 1
    I've heard the question "You mean that will work here, too?" so many times that I am laughing at your comments, and those who found you insightful.
    Not meaning to be an ass, but how did they come to have that frame of mind? this consistency that you deride, was it the norm in computing two decades ago? how about 25 years ago? computer system understanding changes over time. one of the things that designers have learned over the years is that a consistent interface reduces the time it takes people to learn how to use a system. another is that if people learn a bad interface first, they don't get a proper model in their head of how the system works and then they have a hard time learning a good interface.

    and since your'e AC, mom, go and re-read "A Guide to Usability" by Jenny Preece. the paperback isn't even 150 pages, and it has funny cartoons. </snarky>
    --
    If opportunity came disguised as temptation, one knock would be enough.
    3^2 * 67^1 * 977^1
  333. Please define "software engineer" by solprovider · · Score: 1

    What does a "software engineer" do?
    What do you need to learn to become a "software architect"?


    I have been called many names. The technology-related ones include application design and programming titles such as "business analyst", "visionary", "application designer", "developer", "programmer", "senior programmer", "team leader", and "project manager". I also work on the administration side: originally as "support", then "administrator", now as "architect" of global networks. I prefer titles that suggest technical abilities rather than the ones that suggest managerial abilities, especially since about half the "project managers" I have met have little talent for managing people. Today I just use "technology consultant".

    I loved C, but wished it had a few more capabilities that seemed obvious to me. Then C++ became available and fulfilled my dreams. Then MSWindows3.0 became the platform of choice for clients; I read the awful API specifications and fled the industry. The disadvantage with C and C++ is that the common functions are made to allow damage, so if I do not keep the knowledge current, I will write really bad code. I had the experience; I knew most of the pitfalls; I know they are dangerous, and I do not want to take the time to relearn them. So now I write Java, which does not require worrying about memory leaks in every line of code.

    You already have Lotus Notes, the database and the GUI (i.e. Windows) written for you. You buy in graphics rather than draw them yourself. You don't need to write 99.9% of what you actually deliver.

    That is the good thing! I focus on delivering applications that solve business requirements using interfaces that shift the entire paradigm of the worker and result in magnitudes of productivity improvement. And my apps cost less too!

    Why would any engineer not use all available tools?
    When designing a bridge, do you reinvent geometry and algebra? Or just define what is necessary to efficiently build a structure to handle the volume of traffic that will cross this chasm? Do you expect your builders to build a forge and mine the ore, or do you order steel beams from a company that specializes in making steel beams? Most of the computer platforms are still building with wood, and the programmers are doing a great job with hammers. Meanwhile I am using powertools...
    - And paying a contractor to paint the structure. I do build my own graphics for prototypes. But I know a few incredible graphic artists. They can do in hours what would take me a week, and the result is more professional/impressive. And they charge less than 1/5th my rate. So I pay them to add the professional appearance. Tell me how this is bad business.

    That's fine by me, but don't scoff at people who absolutely have to write 50% or even more of what they deliver. And don't scoff at them because they don't cut corners to make themselves look good.

    I do not mock the programmers who have to rebuild that 99.9% of what is required every time, although I wonder about calling them programmers. Programmers should have the engineering mind and do have the perfect domain for using it. "Build it once and reuse it."

    I do laugh at the business people who are paying those programmers to work on inefficient platforms. They are the ones wasting money when it is their job to protect that money.

    I do not cut corners. I make everything fantastic, and am anal about making code perfect. My applications always have features that were not in the specs. Every one of my applications has some feature where the customer goes "That is great. It seems obvious. Why doesn't everyone do it that way?"

    A PM told me I was stealing, because either the customer paid for more or less than was delivered, and the consulting house was losing business for expanding the application. I prefer "customer loyalty through great products" over "repeat business due to poor design", and none of my projects ever went ove

    --
    I spend my life entertaining my brain.