The best way to prove somebody incompetent is to make up stuff and then point out that it’s idiotic


One way to show that somebody is incompetent is to tell them that something they’re doing is stupid, even when it’s not what they’re doing. Take for example this comment saying that it’s stupid for copy and paste to use data objects which can allow code to execute. Um, we were talking about drag and drop, not copy and paste. And in fact, the copy and paste functionality of console windows hasn’t changed. You can still copy and paste with impunity.

Second example: “And yet, the feature I really want is never implemented: Rearranging the taskbar.” Except it isn’t true. Windows 7 implemented it.

Third example: “Or we could sideline the cmd.exe stuff and restart with a bash style interpreter.” I thought we did that and called it PowerShell.

Fourth example: “If the OS had its own thread and stack for displaying application errors which worked for _any_ application error (stack overflow included), then nobody would have to even think about writing such hacks.” Windows Vista already implemented your suggestion.

Fifth example: “There should be an API which will hide the registry accesses. I’m talking about things like registering a file extension.” Oh, you mean the Default Programs API?

Actually, my examples sort of morphed into people asking for features which already exist. Oh well, I guess it wasn’t a very good rant, then.

Comments (51)
  1. RobIII says:

    Although I generally like your blog I must say that sometimes you have a tendency to express yourself a little harsh. Sometimes people just don't know about feature X or Y. Calling them "incompetent" is a little harsh; uneducated: maybe :-)

  2. Wizou says:

    Comment linking still don't work with the new blog system… It goes to the page but the comments anchors must be missing…

  3. Dan Bugglin says:

    Hmm that "console windows not themed" article needs a mini-sequel about how Windows 7 manages to theme the scrollbar now.

    I'm guessing the mysterious new "conhost.exe" process that runs for every console window handles console windows now and runs as a normal user process?

  4. RobIII says:

    @Dan Bugglin:

    You could've used Google (my bad; Bing) to stop guessing/assuming and educate yourself ;)

    http://www.google.com

    http://www.bing.com/search

  5. steven says:

    "Actually, my examples sort of morphed into people asking for features which already exist."

    No doubt, this very post will end up the same way. Here's mine, though I'm pretty sure it doesn't, in fact, exist yet: having a taskbar on every monitor with the tasks for that monitor. There's a 3rd-party solution for it that does a pretty good though not perfect job of it, UltraMon (feel free to remove that name if you think it's inappropriate), but with every new version of Windows, I keep checking the added-feature-list to see if native support for it has been implemented. Most of the people I know who work with multiple monitors find it indispensable and your statement that multiple monitors are popular at MS is no doubt true, so I find it rather surprising that this hasn't shown up on the feature list yet. Oh well, maybe in Windows 8.

    [Oh, it's on the list. -Raymond]
  6. Peter da Silva says:

    Powershell is not bash. It's not even bash-like. What makes the UNIX shell so very powerful is that all the rest of the stuff in /bin and /usr/bin was designed from the ground up to work with it… and that stuff is a pretty small amount of code, these days. All of Interix is pretty small. Why not just bundle it with ALL versions of Windows, so it's always there?

    Look, Powershell is probably a pretty damn good re-implementation of DCL, but there's a reason that running the UNIX shell on VMS was always a hell of a lot more popular than running the VMS shell on UNIX. Yes, someone really did a DCL port to UNIX. Does that sound weird to you, too? Then why would you write something like "I thought we did that and called it PowerShell?"

  7. w says:

    @Peter da Silva:

    Really? Do you REALLY think stuff under /bin and /usr/bin was "designed" well to work together?

  8. GSerg says:

    Alas, the way taskbar rearranging was implemented means it wasn't implemented for me, after all. You can only move groups of icons, not icons themselves. When I have five Explorer windows opened, I cannot rearrange them. I can only drag the five icons as a whole which I never want to do. So the complaining person might be correct after all…

  9. Marquess says:

    Where bash has /usr/bin et al., PowerShell has the .NET Framework (and any executable that might be lying around). I would say that's an improvement over bash.

  10. Erzengel says:

    In my defense, my comment about rearranging the task bar was before Windows 7 came out, and so it was before I had access to it. And also for the record, I did search before posting it.

    So, get a time machine and let me know that Windows 7 will have rearranging the task bar before I post that message. I was informed afterwards, and was happy to hear about it.

  11. Peter da Silva says:

    @w: yes, I do. And yes, it does.

  12. Peter da Silva says:

    @Marquess: That's why it takes 30-40 lines of PowerShell code to duplicate a typical UNIX one-liner?

  13. Jon Forrest says:

    "One way to show that somebody is incompetent is to tell them that something they're doing is stupid, even when it's not what they're doing."

    Taking this one step further, one way to show that somebody is incompetent is give an incorrect example when they say "[fill in the above statement]". Powershell might be very nice, but to say that it's "bash style" shows a serious misunderstanding of bash, and Unix shells (e.g. bash, tcsh, zsh, ksh) in general. Powershell is nowhere near any of the Unix shells when it comes to interactive use. This is semi-understandable since the fast majority of Windows users don't use the command-line. But, those of us who do are immediately aware of Powershell's inferiority as an interactive command interpreter.

  14. Marquess says:

    I can write one-liners, too, if the average command name is 2 characters long …

  15. steven says:

    "[Oh, it's on the list. -Raymond]"

    Hardly surprising and I'm sure it's oft-requested, but at least it's not one of the features that already exists :) I think it'd be pretty interesting to see that list. It must by now have near-mythical status.

  16. Dusty says:

    @Erzengel

    What? So now you want to be in one of those "windows 7 was my idea" commercials too?

  17. jeffdav says:

    The only bad rant is one left unwritten.

  18. Gabe says:

    If all the stuff in /bin and /usr/bin was designed to work together, why does ps have 18 pages of options (unixhelp.ed.ac.uk/…/man-cgi) when grep, sort, and cut should do everything you need?

    Also, I'd like to see a typical UNIX one-liner that requires 30-40 lines of Powershell code to duplicate.

  19. Teil Nehmer says:

    The rearranging of the taskbar that you speak of is only half the story. Take a Windows 7 taskbar that is set to "Never combine" taskbar buttons, open 3 folders in Explorer, try rearranging those 3 items in the taskbar within the group. In case I am mistaken and that IS indeed possible, please, someone enlighten me.

    Also, IIRC the taskbar was introduced in Windows 95 and your response is "Well, we (kinda) implemented it 15 years later. Stop complaining!".

  20. Feroze says:

    To all you guys complaining about how Powershell is not like the Unix shells you know and love – well, it is not a Unix shell! Powershell's did not have it as a goal to make Unix hackers job easier on Windows – it was to make Windows more manageable and administrable. And you can alias any existing commandlet in powershell and give it a two letter name to make your muscle memory work.

    On that note, I am interested to hear what you mean when you say that it is not interactive?

  21. MS says:

    @Peter de Silva

    A Unix one-liner, brilliant stuff.  I too can write a one-line gem of a perl command, but good luck understanding it ever again.  And you're not exaggerating one bit when you say its 30 lines to replicate that.  The idea that the utils work together is a fantasy, realy, but thats entirely subjective.  I mean, heck, I find that writing batch scripts isn't so bad, so I must be some kind of crazy.

  22. Bryan says:

    Re: The whole "PowerShell isn't bash because it isn't bash" argument, I think this Stackoverflow Question is awesome:

    stackoverflow.com/…/powershell-vs-unix-shells

    I dunno if it's ok to link Stackoverflow; if not, sorry!

  23. Marty M. says:

    I think you should use this to should start off a "Don't let the fact that you don't know what you're talking about stop you from talking." series.  I would like the next installment to be a rant called "The best way to prove that you are competent is to assert that your approach has loose coupling and separation of concerns, even when it doesn't".  Maybe then "It makes more sense when you call it a 'pattern'."  Anyway, I kinda feel your pain.

    • bitter
  24. David Walkef says:

    Isn't this what in politics and debate is called a "straw man" argument?  "Some people on the other side (from me) think we should do such-and-such.  This is stupid, and here's why".  Or "My opponent advocates killing babies".  You set up a straw man (that doesn't really exist) and then knock him down.  Maybe this isn't exactly the same thing…

  25. Yuhong Bao says:

    "Second example: "And yet, the feature I really want is never implemented: Rearranging the taskbar." Except it isn't true. Windows 7 implemented it. "

    That one was from July 2009, before Win7 was released.

    [Windows 7 had gone RTM and was publically available in beta form for quite some time before that. I sort of assume people here stay on top of this sort of thing. -Raymond]
  26. Marquess says:

    People don't need cygwin for Windows development because it has those cool shells, but because it can run ./configure. Why do you need to do that? Because nobody bothered to include the necessary files for Visual Studio development, since that would be, like, work. Boring work. And we can't have that, now can we?

  27. Marquess says:

    People don't need cygwin for Windows development because it has those cool shells, but because it can run ./configure. Why do you need to do that? Because nobody bothered to include the necessary files for Visual Studio development, since that would be, like, work. Boring work. And we can't have that, now can we?

    In unrelated news: It would be smashing if posting a comment would either work or at least give out an error.

  28. Teo says:

    So, what exactly is your problem? Your coelagues at Microsoft are as guilty as everyone else. How many MS products use undocumented Windows APIs *instead of* the documented ones, which are there since Server 2003? Let's start with the main offenders: Office, SQL Server, Hyper-V.

    [Office definitely shouldn't be calling undocumented APIs; if they are let me know and I will go beat up somebody. I think SQL Server lives on the application side of the fence as well. Not sure about Hyper-V. -Raymond]
  29. art.the.nerd says:

    @Teo:

    > How many MS products use undocumented Windows APIs *instead of* the documented ones, which are there since Server 2003? Let's start with the main offenders: Office, SQL Server, Hyper-V.

    Okay, I give up; how many?  What are these undocumented APIs and how do you know about them?  And what does Server 2003 have to do with it; are you saying they were introduced in that OS?

  30. CodeOrDie says:

    This rant about your niece was not very good.

  31. Nish says:

    Yeah, your rants are getting rather tame. What this blog needs now is a 'niece' post. *grin*

  32. James Schend says:

    Peter da Silva: @Marquess: That's why it takes 30-40 lines of PowerShell code to duplicate a typical UNIX one-liner?

    Maybe you could tell us what the 30-40 lines of PowerShell (and the UNIX one-liner) *are*, and we can point out how awfully-written your PowerShell is. Just a suggestion.

    The real reason UNIX is "more powerful" is: habit. You're used to working with it, and *nix users hate, hate, *hate* learning anything new. So if it's old and barely functional, you love it to death, and if it's new and significantly more powerful, you hate it.

    For example, PowerShell can do things like, say, pipe non-text data around. That's extremely powerful, but if you talk to a *nix person, they'll just claim, "yeah but nobody ever does that!" (Hm, do you think they don't do that because their tool sucks for it?)

    I'm stereotyping here, of course. But so far it's been true of every *nix user I've talked to for more than a few minutes. Sorry if it seems like a flame.

    That all said, to say that the /bin tools were *designed* to work together… well, that's pretty delusional. They manage to most of the time, and some small groups of them were designed to work with others, but mostly it's hit-and-miss.

  33. Tom says:

    I'm with Peter da Silva and Jon Forrest.  If you think Powershell is an answer to UNIX shells, then you're completely out of touch with today's UNIX-based developer community.

    PowerShell is the prime example of Microsoft falling into "Not Invented Here" syndrome.  PowerShell is, in fact, better than many of the UNIX shells at scripting.  But for interactive use, its primary problem is that it *isn't* a UNIX shell.

    The very existence of Cygwin should tell you something about how desperately people were hungering for a usable UNIX environment with a polished GUI.  That need could've been fulfilled by Windows.  Instead, it ended up being fulfilled by Mac OS X.

    Go to any web developer conference.  75% Macs.  Go to an academic Computer Science conference.  50% Macs.  These are not people who use Macs because they can't figure out how to use two mouse buttons.  Microsoft is losing the war for "developers, developers, developers."  In the world of PHP, Ruby on Rails, Django, UNIX is king, and Mac OS is queen.

    Meanwhile, Interix was buried by the geniuses at Microsoft marketing ("product management").  First it was made available only for Windows Server.  Then it was made available only for Vista Ultimate/Enterprise.  Even in Windows 7 days, it's *still* restricted to the top two SKUs.  Interix isn't a translation layer to Win32 — it is a full-fledged UNIX subsystem for NT.

    There is, however, *one* division at Microsoft that still seems to be reaching out to the wider developer community,  That's DevDiv.  DLR, IronPython, IronRuby, F# (adapted from ML, a programming language popular in the academic PL community), JQuery Intellisense, making friends with the Mono project, etc.  Some of these have been more successful than others — but at least they're still trying to broaden their appeal.

  34. Neil (SM) says:

    RobIII wrote: >>Although I generally like your blog I must say that sometimes you have a tendency to express yourself a little harsh. Sometimes people just don't know about feature X or Y. Calling them "incompetent" is a little harsh; uneducated: maybe :-)<<

    You didn't parse that quite correctly.  Raymond did not call anyone incompetent.  Raymond is saying that the complainers are calling MS incompetent, and "proving it" with false claims.

  35. Anonymous Coward says:

    Er, Raymond, setting up straw men when you're accusing others of setting up straw men is not very classy. It reflects badly upon your character.

  36. RobIII says:

    @Neil (SM): Crap. Seems I had a bad day yesterday. You're right! My bad.

  37. jalf says:

    Sixth example:

    So people are going to be called out and all but called incompetent if they ask for a feature that Microsoft had implemented that RTM'ed a week before (and months before general availability, of course)

    Seventh example: pretending that PowerShell "restarted" anything. It's still very much an optional extra, not sidelining, but sidelined by, cmd.exe. And it's hardly Bash style. One of the biggest strengths of *nix shells is that they're so ubiquitous. They're not an additional tool that's hidden somewhere in a dark dusty corner of the OS, where only people who are specifically looking for it will ever find it. Unlike PowerShell.

    @Neil: That depends on how you read it. Yes, Raymond is saying others accused MS of being incompetent. but he's also setting up a bit of an equivalence between "accusing of incompetence" and "telling people that what they're doing is stupid, even when it's not what they're doing".

    And then he's claiming that a lot of people are "telling people that what they're doing is stupid, even when it's not what they're doing". Doesn't he imply that they're incompetent then?

    (No, mathematically speaking he doesn't, of course, because => and <=> aren't quite the same thing. But if we relax our definitions a little bit, I don't think it's so far off. Point is that Raymond is guilty of whatever it is he's accusing these commenters of. Call it incompetence, ignorance, arrogance or just having a bad day)

  38. Neil says:

    For those of us still enjoying Windows XP, it really annoys me that Explorer is quite happy to shuffle the icons around of its own accord, yet I need to use an application such as Taskbar Shuffle to put them back…

    Nice auto-expanding text area, by the way.

  39. Steve says:

    @jalf – Can I borrow your time machine? How does something get to be ubiquitous, particularly when it is added long after the product was introduced into the marketplace? For PowerShell to be as ubiquitous as the *nix shells it would have to have been introduced 30+ years ago, after all bash was released in 1978!

    If you look closely you will see that PowerShell is starting to be a requirement for many Microsoft server products, see SharePoint 2010, SQL 2008 and Exchange 2007, etc. This will drive it's ubiquity, at least on server platforms. As for the client, PowerShell is shipped as part of Windows 7.

    So, let's have this conversation again in 10, 20 even 30 years from now and evaluate the ubiquity of PowerShell.

  40. Maurits says:

    You can only move groups of icons, not icons themselves.

    +1. Even if you set the "never combine" preference there are tasks that can only be moved in association with other tasks (e.g., the task for the main Outlook window and the tasks for open emails)

  41. Yuhong Bao says:

    "I'm guessing the mysterious new "conhost.exe" process that runs for every console window handles console windows now and runs as a normal user process?"

    Yes, exactly.

  42. dr_ says:

    "Second example: "And yet, the feature I really want is never implemented: Rearranging the taskbar." Except it isn't true. Windows 7 implemented it."

    It boggles the mind as to why this is in the post as some kind of 'debunk' or positive that you're relishing in. Taking 14 years to pick up that feature is NOT a good thing

  43. Arnshea says:

    With all the directly identifiable incompetence out there it takes real dedication to get to the kind of incompetence that deserves this level of indirection :)

  44. Dave says:

    PowerShell last I used it was nice as a cmd.exe replacement, apart from when I had to use cmd.exe anyway does things stupidly. Seriously who made the assumption that anything coming through standard output would be text (let alone Unicode text), if you try to redirect it to files it just mangles it.

    I'm sure PowerShell will be great in an environment where everything is designed to work with it, but I doubt this will ever be the case. So maybe it'd be nice if it also played nice with standard command line programs.

  45. Ens says:

    @dr_

    You're moving goalposts.  Apparently your version of the original post was "any competent person between 1995 and Windows 7 would have instantly realized that rearranging the taskbar was of the utmost importance and made it their top priority".

    The actual original post complained that Windows 7 did not implement rearranging the taskbar, when it was publically known and verifiable that Windows 7 did allow rearranging the taskbar.  If he didn't feel like verifying it, he shouldn't have said anything.  Instead, he made stuff up to complain about.

  46. Drak says:

    @dr_

    The fact that 3rd party apps were available to rearrange the taskbar should make you happy. Look MS is not monopolizing the moving of task bar items.

    Bah.. Everyone complains when Microsoft adds a free browser to Windows, and then complains when Microsoft doesn't add a free 'do-something-i-specifically-want-and-can-get-a-3rd-party-tool-for' program to Windows.

  47. Anonymous says:

    But you really shouldn't have removed IColumnProvider. Lots of developers used it and lots of users used apps that used it without realising it. Can its replacement, the Property System show columsn for dynamic properties such as size and *for all file system objects* instead of just by particular file class/file type? Please please please bring back IColumnProvider.

  48. Georg Rottensteiner says:

    Neat :)

    I was referred to with my comment regarding registering file extensions. I didn't know about that API but to my excuse that API is only available with Vista. Good to know, still doesn't help me with Windows' up to XP ;)

    Thanks though! Looks like a lot of new APIs got introduced with Vista. I reckon there's no chance of having a compatibility to older Windows linking that functions statically?

  49. Duke of New York says:

    All of your examples pale in comparison to the accusations, right up until the Windows XP release, that Windows was a wrapper for DOS and didn't have preemptive multitasking.

  50. 640k says:

    I think SQL Server lives on the application side of the fence as well.

    MS sql server have been proven in court to use undocumented kernel apis.

  51. Klimax says:

    640k: Any refference or proof?

    Unproven accusations should kick accusers…

Comments are closed.