Slashdot Mirror


Why Microsoft Developers Need a Style Guide

snydeq writes "What your interface communicates to users can be just as important as what your software does, writes Fatal Exception's Neil McAllister in discussing the latest edition of the 'Microsoft Manual of Style', a style guide aimed at designers and developers who create Microsoft software, as well as those who write about it. 'The gist of much of Microsoft's advice is that a user's relationship with computer software is a unique one, and it's important to craft the language of software UIs accordingly,' McAllister writes. 'Occasionally, Microsoft's recommendations verge on the absurd. For example, you might not think it necessary to admonish developers to "not use slang that may be considered profane or derogatory, such as 'pimp' or 'bitch,'" but apparently it is.'"

262 comments

  1. Obviously it is... by Anonymous Coward · · Score: 4, Funny

    You silly open source GIMP developers...

    1. Re:Obviously it is... by maxwell+demon · · Score: 0, Offtopic

      I don't know what problems you have with a narrow ornamental fabric or braid of silk, wool, or cotton, often stiffened with metallic wire or coarse cord running through it, used as trimming for dresses, curtains, furniture, etc.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Obviously it is... by Anonymous Coward · · Score: 0, Troll

      writes Fatal Exception's Neil McAllister in discussing the latest edition of the 'Microsoft Manual of Style', a style guide aimed at designers and developers who create Microsoft software

      So if you don't work at Redmond for Microsoft Inc. then none of this matters to you?

      Oh wait, they meant to say Windows software. Just more shitty Slashdot editing.

    3. Re:Obviously it is... by Anonymous Coward · · Score: 0

      What about Xbox software?

    4. Re:Obviously it is... by mcswell · · Score: 1

      Well, I also have a problem with Windows 7's list of appetizers. Nowhere near as easy to customize as the one in WinXP.

  2. Nobody is happy by Anonymous Coward · · Score: 0, Funny

    The only intuitive interface is the anus, and even people like goatse mess it up.

    1. Re:Nobody is happy by cp.tar · · Score: 0, Offtopic

      Offtopic?

      I no longer recall who said the only intuitive interface was the nipple, but I found the parent post pretty funny.

      --
      Ignore this signature. By order.
    2. Re:Nobody is happy by worip · · Score: 1

      So long as an API sticks to Init(), Get/Set/Execute/Calculate() and Deinit() it doesn't really matter, people will learn it sooner or later. What *does* matter, however, is that an API does not break "unwritten" conventions like always returning true even when the operation was unsuccessful (yes, I am looking at you Microsoft for that awful Windows Media Player COM interface - that was just evil!)

      --
      A picture is worth exactly 1024 words.
    3. Re:Nobody is happy by TheRaven64 · · Score: 4, Funny

      is that an API does not break "unwritten" conventions like always returning true even when the operation was unsuccessful

      Most POSIX APIs return true on error and false on failure. The idea is that this lets you write if (something()) { error_handler(); }. I've no idea why they thought this made more sense than if (!something()), but judging by the rest of UNIX I suspect that they had to type their code in morse with one hand while fighting a tiger with the other, so every character saved could mean the difference between life and death...

      --
      I am TheRaven on Soylent News
    4. Re:Nobody is happy by sorak · · Score: 1

      is that an API does not break "unwritten" conventions like always returning true even when the operation was unsuccessful

      Most POSIX APIs return true on error and false on failure. The idea is that this lets you write if (something()) { error_handler(); }. I've no idea why they thought this made more sense than if (!something()), but judging by the rest of UNIX I suspect that they had to type their code in morse with one hand while fighting a tiger with the other, so every character saved could mean the difference between life and death...

      I was under the impression that this was so that you could return an error code on error. It makes sense in that there are few values that evaluate false, just as there are few necessary variations on "function executed successfully", but there are many ways to screw something up.

    5. Re:Nobody is happy by 19thNervousBreakdown · · Score: 5, Insightful

      Because that way there's only one success, and many failures.

      0(false) = success
      1(true) = failure
      2(true) = different failure
      3(true) = yet another failure

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    6. Re:Nobody is happy by rezalas · · Score: 1

      On that tiger filled image alone you deserve every mod point available.

    7. Re:Nobody is happy by UnknownSoldier · · Score: 3, Informative

      > Most POSIX APIs return true on error and false on success.

      You were being funny but it comes down to granularity.

      * For success you only need to know that it passed.
      * If the function fails you want more details.

      Here is an example:

      enum Result
      {
          PASS
        , FAIL_OUT_OF_MEMORY
        , FAIL_INVALID_HANDLE
        , FAIL_BAD_PATH
      };
       
      Result ReadFile( const char * filename, void * buffer );
       
      void Foo( const char * filename, void * buffer )
      {
        Result result;
        if (result = ReadFile( filename, buffer ))
        {
      /* handle error */
        }

      Make sense?

    8. Re:Nobody is happy by Anonymous Coward · · Score: 0

      The true zeroes realize that the true True is zero and the true False is not zero...
      i am one, .... er... i mean.. zero.

    9. Re:Nobody is happy by TheRaven64 · · Score: 1

      Except that your example is actually really bad. The read() function in POSIX returns the number of bytes read on success, or -1 on failure and then sets errno to the value of the error.

      --
      I am TheRaven on Soylent News
  3. When loading a kernel module... by Anonymous Coward · · Score: 5, Funny

    Cancel, or "pimp this bitch"

    1. Re:When loading a kernel module... by flyingsquid · · Score: 5, Funny

      "It looks like you're trying to write a letter expressing your dissatisfaction with an escort service. Would you like help trying to bitch out this pimp?"

    2. Re:When loading a kernel module... by Anonymous Coward · · Score: 0
  4. I have an idea for the style guide by Anonymous Coward · · Score: 5, Insightful

    How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

    And then later let's change the types in the API but keep the unmatching old names for compatibility!

    1. Re:I have an idea for the style guide by skids · · Score: 5, Funny

      I don't know, I found the chapter on EnterpriseInterfaceThunkClassEnterpriseGeneratorCOMParameterInterfaceThunk32 COM_Enterprise_Enterprize_ENTERPRISE very illuminating.

    2. Re:I have an idea for the style guide by exomondo · · Score: 2

      How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

      Hungarian notation isn't about using the typename at all.

    3. Re:I have an idea for the style guide by hobarrera · · Score: 1

      I find this is only useful for weak-typed languages, and not-tiny project.
      If your project is tiny, then it's easy to follow variables (I mean, small almost-script sort of things).
      If it's stronly typed, there's no sense it adding this to the variable name: use a better IDE if you don't know what a variable is at a certain point.

    4. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0

      Static variable types are so 1995.

    5. Re:I have an idea for the style guide by maxwell+demon · · Score: 5, Insightful

      How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

      Hungarian notation isn't about using the typename at all.

      Please tell that to Microsoft.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    6. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0

      How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

      Hungarian notation isn't about using the typename at all.

      Please tell that to Microsoft.

      When reading through this you misconstrued references to the word 'type' mean 'typename'?

    7. Re:I have an idea for the style guide by jedwidz · · Score: 1

      Static variable types are so 2025.

      FTFY

    8. Re:I have an idea for the style guide by Anonymous Coward · · Score: 1

      Please cite an API released by Microsoft in the last 5 years that uses Hungarian notation.

      You must be one of those people who are trapped in 1995, and make jokes about Windows giving a BSOD.

    9. Re:I have an idea for the style guide by exomondo · · Score: 2

      If it's stronly typed, there's no sense it adding this to the variable name: use a better IDE if you don't know what a variable is at a certain point.

      No, there would be no sense adding it if it were the typename, but it isn't. For example a long representing the column width isn't lColWidth or lWidth it would be colWidth because it's the 'kind' (since people often interpret 'type' in this context to mean 'typename') of thing being represented, not the way it is being represented.

    10. Re:I have an idea for the style guide by TheRealMindChild · · Score: 2, Informative

      As an old classic Visual Basic programmer, there was a good reason to use hungarian notation. You had a sorted dropdown list of the classes/types, from which after choosing one, could then choose the method/property to implement in an adjacent dropdown list. Point being, your textboxes were grouped together and your enums were grouped together, and so on. It made managing the code easier.

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    11. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0

      Damnit. Your witty comment caused my computer to BSOD

    12. Re:I have an idea for the style guide by Rinikusu · · Score: 5, Informative

      There were a lot of who went through college in the early-mid 90s where Hungarian notation was considered proper software development and scores were marked down in various programming classes if you didn't adhere to it. It was the late-90s/early-2000s when people apparently discovered that it was a very, very bad idea especially as we refactored 5-10 year old code. Now it seems we're happy if you just use camel-case.

      --
      If you were me, you'd be good lookin'. - six string samurai
    13. Re:I have an idea for the style guide by Lehk228 · · Score: 1

      I find this is only useful for weak-typed languages, and not-tiny project.

      still utterly useless to stick type into the variable name, for example look at python.

      if you don't know what type a variable is you probably don't know what it's actually doing or actually representing and you should not be screwing with it until you do.

      --
      Snowden and Manning are heroes.
    14. Re:I have an idea for the style guide by jd2112 · · Score: 2

      How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

      Hungarian notation isn't about using the typename at all.

      Please tell that to Microsoft.

      Even Microsoft has given up on Hungarian Notation.

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    15. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0

      You must be one of those people who are trapped in 1995, and make jokes about Windows giving a BSOD.

      I used Windows from 1995 until 2006. The only time I ever experienced BSOD was in XP, for a little while in early 2004.

    16. Re:I have an idea for the style guide by Nemyst · · Score: 1

      Yeah, now you just need to put a lowercase letter in front of every variable and it doesn't matter if it doesn't mean anything!

    17. Re:I have an idea for the style guide by NevarMore · · Score: 5, Insightful

      I was (am?) the generation who learned to code in the mid-90s. I hate to sound lazy, but once we got over that hungarian nonsense, every team I've worked on just agreed (or had dictated) an autoformatter for our IDE and just made sure to run it before we committed. Hell one team had it setup as a pre-commit hook in SVN. It mooted many of the style arguments and let us focus on solving real problems.

      Hell the more modern IDEs like Eclipse, IntelliJ, and VisualStudio even suggest variable names and hint for proper case. As programmers and software engineers should we not use software tools to do tedious and mundane work for us?

    18. Re:I have an idea for the style guide by LambdaWolf · · Score: 4, Informative

      How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

      Hungarian notation isn't about using the typename at all.

      Indeed. Here is some good reading on the actual purpose of Hungarian notation, although of course it's used wrong far more often than not. I've never used it myself, correctly or otherwise, but I acknowledge that the original intent was at least sensible.

      --
      "This algorithm runs in constant time. Come on, 2,147,483,648 is a constant..."
    19. Re:I have an idea for the style guide by SplashMyBandit · · Score: 2, Informative

      That may be a good reason. The real reason for the rise of Hungarian Notation is that the Microsoft C compiler didn't do type checking for some time after other C compilers had it. If you wanted to have a clue what type you were using you adopted Charles Simonyi's notation (which was used by FORTRAN devs at the time). The problem is, that awful practice of using 'warts' as a prefix stuck around. It even lingers in C# where interfaces are traditionally prefixed with "I". Fortunately this is something that Java conventions avoid - and if you decide to change an interface into a concrete class during development you don't have to go around and rename everything (plus, such prefixes are unnecessary in the modern age, the compiler helps you when you mistake an interface for a concrete class, so the 'wart' has no upside while having the refactoring downside).

    20. Re:I have an idea for the style guide by SplashMyBandit · · Score: 1

      The C# standard library uses the prefix "I" for interface classes. This is something you don't see in Java (despite C# being derived directly from Java via the intermediate research language "Cool"). So yeah, a stake has not yet been put through the heart of Hungarian Notation yet.

    21. Re:I have an idea for the style guide by cavreader · · Score: 2

      Using "I" and the other naming conventions enforced in C# is a good way to provide consistency on multi-developer projects. Variable and class names should be consistent so any follow-up developers can get up to speed faster. With more companies using short term contractors these days is a very useful. I don't advocate any particular naming convention but whatever you use should be consistent. Variable names, class names, method names, and name spaces are just a few ways you can organize the code base and make it easier on the developers.

    22. Re:I have an idea for the style guide by mysidia · · Score: 1

      Now it seems we're happy if you just use camel-case.

      I'm not happy with that fscked up naming scheme. The one right way to do it is to put an underscore in between each word.

      int the_ultimate_answer = 42;

      At least, until programming languages evolve further, spaces can be used in variable names, and those variable names are case-insensitive as they should be.

      As in...
      PROCEDURE [Get The Answer] IS
      [Question] : Integer
      DECLARE
      [Answer] : Integer;
      BEGIN
      If [Question] = [The Ultimate Question] then
      Answer := 42
      Else
      raise [The Answer is Unknown]
      End
      END

    23. Re:I have an idea for the style guide by SplashMyBandit · · Score: 2

      This is an old-style way of looking at it. I also used to think they would be helpful but now consider them obscuring, you are still thinking in the solution domain rather than trying to get to the problem domain (so that the code reads more like natural language). These days your IDE can tell you the type without you having to pollute your code with these 'warts'. This is why many languages have moved away from such styles. The reason C# has it is that the developers are unable to shake the legacy modes of thought. It turns out that rather than use these artificial constructs to make it easier for following developers it is generally better to aim to make your language simpler. For example, Java is often panned by .NET developers for not having certain constructs but it is a deliberate decision by the Java architects to *keep* the language simple. As a result there are far fewer deprecated constructs and styles in the language. This has a far greater impact on improving code readability for people joining or maintaining a project than using kinda crufty old-style constructs to do this. But yes, I agree with you that consistency is important.

    24. Re:I have an idea for the style guide by BlueScreenO'Life · · Score: 1

      That practice originates at the earliest with Delphi, not with anything Microsoft, and was brought to .NET by Anders Hejlsberg.

    25. Re:I have an idea for the style guide by BlueScreenO'Life · · Score: 1

      ... at the latest with Delphi... I meant

    26. Re:I have an idea for the style guide by DarwinSurvivor · · Score: 1

      Please cite an API released by Microsoft in the last 5 years that uses Hungarian notation.

      You must be one of those people who are trapped in 1995, and make jokes about Windows giving a RSOD.

      There, happy?

    27. Re:I have an idea for the style guide by swillden · · Score: 3, Informative

      The real reason for the rise of Hungarian Notation is that the Microsoft C compiler didn't do type checking for some time after other C compilers had it. If you wanted to have a clue what type you were using you adopted Charles Simonyi's notation (which was used by FORTRAN devs at the time).

      Cite? The early Microsoft C compiler was Lattice C, which was an ANSI C compiler. It had to have typechecking.

      Also, everything I read says Simonyi invented his notation, or at least the rudiments of it, in the 70s while working for Xerox PARC. So it couldn't have been a reaction to a deficient MS compiler that didn't yet exist.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    28. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0
      Yeah, fuck that. If God wanted underscores, then he should have put it in a better place. CamelCase is fine, and it doesn't require awkward hand positions. Deal with it.

      At least, until programming languages evolve further, spaces can be used in variable names, and those variable names are case-insensitive as they should be.

      Oh fuck, please be joking.

    29. Re:I have an idea for the style guide by Anonymous Coward · · Score: 1

      Don't forget to put all the 64 bit DLLs in System32 and the 32 bit DLLS in syswow64

    30. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0

      I HATE underscores. They are just ugly and horrible, and I want them removed from all of my code. I enforce this rule strictly when I run my own projects. The only places underscores are acceptable is in macro definitions, but (HINT) I also ban macro definitions. Don't even get me started on putting fscking underscores BEFORE or AFTER words, that's even more horrible!

    31. Re:I have an idea for the style guide by Coriolis · · Score: 3, Interesting

      As a huge fan of fluent code, but also as someone who prefers to see the distinction between a promise and a concrete implementation to be at a glance of the class definition, I have to disagree. Of course you should be using a language derived from your problem domain, but if your problem domain contained all you needed for the solution, then it itself would be the computer program. At some level, you have to use the language of the solution domain, you can't wish it away. I would also say that, these days, having to chance the name from ISomething to plain Something is no big deal, due to built-in refactoring support. Finally, what are the deprecated constructs and styles in C#? Can't think of any of the top of my head.

      --
      Rgasuya aata! : I have been coding Perl and cannot tell where my fingers are now!
    32. Re:I have an idea for the style guide by mbkennel · · Score: 2

      Style guide to Microsoft: don't use words in a way such the lexical representation of "type", commonly called its name, means something entirely different from "typename".

    33. Re:I have an idea for the style guide by maxwell+demon · · Score: 0

      So you don't have include guards on your header files?

      --
      The Tao of math: The numbers you can count are not the real numbers.
    34. Re:I have an idea for the style guide by flyingfsck · · Score: 1

      You mean hUngarian nOtation.

      --
      Excuse me, but please get off my Pennisetum Clandestinum, eh!
    35. Re:I have an idea for the style guide by MadKeithV · · Score: 1

      Yeah, fuck that. If God wanted underscores, then he should have put it in a better place. CamelCase is fine, and it doesn't require awkward hand positions. Deal with it.

      Some of us have to deal with even more absurd keyboard layouts every day, you insensitive clod.

    36. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0

      It's just there to make it easier to express yourself:

      IReallyHateThisHack

      IPeeFreely

    37. Re:I have an idea for the style guide by DrXym · · Score: 3, Insightful
      Microsoft used hungarian notation most likely because it seemed like a good idea at the time. Various BASIC dialects were untyped or only loosely typed ($, % etc.) and C/C++ development environments weren't (and still aren't) very good at reflection / refactoring. So it was a useful hint to the programmer to save them hunting around to find the declaration. Microsoft's book series, e.g. Code Complete also pushed the idea onto external developers.

      Nowadays I think the reasons for hungarian have largely disappeared. Modern IDEs for Java or .NET provide enough assistance that you can find out the type of something by hovering over it. You'll get the type and any documentation. And ctrl clicking the type takes you to the definition. There is no need to decorate the type because it just adds noise. Personally I don't even like scoping which some Java devs seem to do with _ on the front of member variables because it usually confuses the IDE.

      It may still have some use in JavaScript or Perl or other polymorphic environments where the editor / IDE and the runtime is pretty useless at assisting developers though it should probably be done in a limited way, e.g. s for string, n for number, a for array etc.

    38. Re:I have an idea for the style guide by spongman · · Score: 1

      that would be notationHungarian.

    39. Re:I have an idea for the style guide by DrXym · · Score: 1

      "#pragma once" gets around the need for that

    40. Re:I have an idea for the style guide by Pembers · · Score: 1

      ALGOL 68 allowed whitespace in identifiers. There's a reason most later languages don't...

    41. Re:I have an idea for the style guide by TheRaven64 · · Score: 5, Informative

      The third explanation in this thread, and not the correct one either.

      Originally, Hungarian notation was used by the Apps group in Microsoft. It was used to indicate things that were not expressed in the C type system. For example, an integer referring to a column number in a spreadsheet would be colsFoo, while another referring to a row would be rowsFoo. If you wrote something like if (rowCurrent When the Systems group adopted the convention, they started using it for the variable type, not its meaning. This completely defeated the point, but the Systems group version was the one that caught on due to their greater influence within the company.

      C is one of the few Algol-family languages where this is actually necessary. In most others, you can create a columns type and a rows type that are both integers but can not be implicitly cast to the other.

      --
      I am TheRaven on Soylent News
    42. Re:I have an idea for the style guide by Anonymous Coward · · Score: 1

      Actually, the I-prefix thing started with COM, which predates Delphi by a couple of years.

    43. Re:I have an idea for the style guide by dropadrop · · Score: 1

      Hell the more modern IDEs like Eclipse, IntelliJ, and VisualStudio even suggest variable names and hint for proper case. As programmers and software engineers should we not use software tools to do tedious and mundane work for us?

      No we should not. Programmers and software engineers should only use Vi or Emacs (Notepad if you are forced to use Windows).

    44. Re:I have an idea for the style guide by TuringTest · · Score: 2

      -1 Troll.

      As long as you are creating software artifacts that can execute automated behavior, you are programming. You may not be using a general purpose programming language, but it's giving instructions to a computer nevertheless.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    45. Re:I have an idea for the style guide by The+Jynx · · Score: 1, Insightful

      No we should not. Programmers and software engineers should only use Vi or Emacs (Notepad if you are forced to use Windows).

      Hint: It's useful to justify your arguments, not just disagree with the last poster because it makes you feel elite.

      If you're writing anything more taxing than a shell script in a text editor, not only are you incredibly unproductive, you're also probably in denial about many aspects of development because you believe you're 'better' than all the other 'lazy' developers.

      IDEs are there to help make development faster and of a higher quality. Using bolt ons to help with testing, style and source control make the IDEs even more powerful. Look it up, you might learn something.

    46. Re:I have an idea for the style guide by dropadrop · · Score: 1

      No we should not. Programmers and software engineers should only use Vi or Emacs (Notepad if you are forced to use Windows).

      Hint: It's useful to justify your arguments, not just disagree with the last poster because it makes you feel elite. If you're writing anything more taxing than a shell script in a text editor, not only are you incredibly unproductive, you're also probably in denial about many aspects of development because you believe you're 'better' than all the other 'lazy' developers. IDEs are there to help make development faster and of a higher quality. Using bolt ons to help with testing, style and source control make the IDEs even more powerful. Look it up, you might learn something.

      Sorry, next time I promise I'll add sarcasm tags, I honestly thought it was obvious enough...

    47. Re:I have an idea for the style guide by 19thNervousBreakdown · · Score: 1

      You must be one of those people who holds strong convictions about things they have absolutely no clue about and parrots things they've never investigated, because there's no way anyone familiar with the Windows API could believe they've stopped using Hungarian notation:

      GetFileAttributesTransacted, first released with Windows Vista. I think you can figure out how close to 1995 that was. Look at the argument names. This isn't unique, almost API function (including newly released, maybe they'll break with it with WinRT) still uses Hungarian.

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    48. Re:I have an idea for the style guide by marcosdumay · · Score: 1

      Sorry, you failed to notice that emacs can do all those things as well. (I don't know about vi, it probably also can.)

      Anyway, if your IDE can make better decisions than you can, the language you are writting on needs too many decisions. If some piece of software can make decisions about it, decide it on the compiler, and stop nagging the programers.

    49. Re:I have an idea for the style guide by hey · · Score: 1

      Seems handy when you have multiple variables with the same(ish) value:

      double dSomething = 123.4;
      int iSomething = dSomething;
      char szSomething[100];
      snprintf(szSomething, sizeof(szSomething), "%d", iSomething);

    50. Re:I have an idea for the style guide by rezalas · · Score: 1

      Around here, nothing is obvious, especially when it comes to people professing the greatness of vi or emacs. You must have momentarily forgotten, but this is /.

    51. Re:I have an idea for the style guide by bondsbw · · Score: 1

      As a huge fan of fluent code

      And to note, every stable release of C# (the latest being 4.0) has enabled more and better fluent syntax.

      • C# 1 allowed standard method chaining and the "using" clause.
      • C# 2 provided generics and generic parameter type inference, enabling type-safe interfaces without the intrusive generic type parameter.
      • C# 3 added lambdas and expression syntax (used well for fluent syntax in Rhino Mocks).
      • C# 4 added named and optional parameters, which can be used to create a fluent syntax akin to Smalltalk.

      I think the upcoming C# 5 is the first new release that doesn't really add anything useful for fluent syntax.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    52. Re:I have an idea for the style guide by Gr8Apes · · Score: 1

      Sounds more like a failure to properly encapsulate your code to me.

      Hungarian Notation was a bad idea after the first code with it was written and needed modification.

      --
      The cesspool just got a check and balance.
    53. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0

      The C language existed long before the ANSI standard was drafted. In K&R C, there were implicit conversion rules for many types, so a naive programmer might have thought there was no type checking. This was because C was based on BCPL, which has only one data type, the machine word. When the ANSI standard finally came in 1989 as a draft and 1990 as the first standard, it took a while until it was adopted and conformity enabled by default. K&R C had a different source code layout for function parameter declarations, so the ANSI standard brought a big change which many companies were hesitant to adopt. IIRC, the Microsoft C compiler used K&R by default, and in later editions supported ANSI. When Microsoft released its Visual C compiler, it came with ANSI C support right away. Microsoft C was based on a Lattice C version from 1983. I used Lattice C on the Amiga, and it was a very different compiler (and later became SAS/C). SAS C++ was pretty nice btw, it supported AT&T 2.0 and 3.0 "standards". This was before templates were adopted in C++ compilers. :D

    54. Re:I have an idea for the style guide by Gr8Apes · · Score: 1

      There were a lot of who went through college in the early-mid 90s where Hungarian notation was considered proper software development...

      Good grief! I predate your classes significantly, and we already knew that Hungarian Notation was a bad idea. Of course, we were refactoring code from the 60s and 70s, which some pieces had some of the aspects of hungarian notation on it, and it was quickly resolved that it was a "bad idea" [Tm] to encode type or any other information into a variable name that wasn't a part of its functional description.

      Then again, Microsoft was always a decade or more behind the curve (I'm assuming you were learning MS programming at that time) so I don't know why this revelation should surprise me.

      --
      The cesspool just got a check and balance.
    55. Re:I have an idea for the style guide by dzfoo · · Score: 1

      Mark, is that you?

              -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    56. Re:I have an idea for the style guide by hey! · · Score: 2

      Well, I think the problems with how people used HN are much more complicated than Hungarian Notation == Bad. They have to do with an inappropriate style of HN being adopted by C programmers for historical reasons.

      Pointers are something the vast majority of non-C programmers never deal with these days. In the days of 16 bit Intel compatible software the most efficient pointer was a 16 bit integer(ish) value. Such a pointer could only address a 64K space, and so the programmer had to keep straight which pointers where "NEAR" pointers like these, which were 20 bit "FAR" pointers that could address half-again more than the 640K of RAM nobody would ever need, and "HUGE" pointers which could address the same address space as "FAR", but were *normalized so that you could do pointer arithmetic on them*. Clearly having a distinctive naming convention for FAR and HUGE pointers made a lot of sense, because you had to keep track of that to use the variable correctly.

      Now set this stuff aside for a second and consider a programmer working in a much higher level language that abstracts all that implementation detail. Suppose he's working on a geographic information systems program where a city's geography is sometimes represented by a point (as it would in a nation-wide map), a polygon (as it would in a metro region map), and a polygon with topological information about its neighbors (as might be used in some sophisticated GIS analysis). If he chose a convention whereby the variables of each type were named "ptCity", "polyCity", and "topoCity", it wouldn't strike us as unreasonable. But if he chose the variable names "shpPtCity", "shpPolyCity", and "covPolyCity" to represent that the first two values come from a shapefile and the third comes from a coverage file (a format with topology), we'd probably say it's *stupid*. Unless this were something like a module that generated shapefiles from coverages, there'd be no reason to burden the maintainer with that detail, or to restrict the semantics of the data.

      In this example, the stupid and sensible variable naming conventions are just different styles of "Hungarian Notation".

      When you program "close to the iron", say writing device drivers, the *semantics* of a variable and the way it is stored and manipulated by the CPU are one and the same thing. But in the days of segmented memory in Windows those machine oriented details bled through into application programming. So programmers adopted the low-level HN style across the board, which was just dumb, instead of for just pointers, which was sensible. An OS or driver programmer might do some kinds of type casts, say from a pointer to byte array to a pointer to integer array, where remembering the exact type of the variable might remind him to deal with memory alignment and byte-order issues. If an app programmer does something like that you should send him back to his cave so he can bang the rocks together a little longer.

      As for university CS professors back in the day insisting on a style of HN that simply regurgitates what the compiler already knows about a variable, that goes to show that most CS professors don't know all that much about programming.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    57. Re:I have an idea for the style guide by ILongForDarkness · · Score: 1

      For interfaces to me it makes sense. It is nice to know that when you are sending something in to say a TextReader that it doesn't care that it is a filestream, memory stream, etc just that it wants something that implements a particular interface. Kind of a poorman's contractual programming. Give me something that implements interface X, I don't care what you call the widget it it has four wheels and a stearing wheel I'll figure it out.

    58. Re:I have an idea for the style guide by SplashMyBandit · · Score: 1

      I think you miss the point. The point is that prepending a class or variable name is no longer necessary. You're just so used to it that you can't see how hideous prepending interfaces with "I" is. One day you'll move away from the habit and laugh at how silly a style it all was (just as you probably laugh now at C-type Hungarian Notation).

    59. Re:I have an idea for the style guide by SplashMyBandit · · Score: 1

      Yes, and soon C# will be as "easy" as C++ :) I'm not saying progress is bad, but it has to be weighed against complexity. Personally I'd rather write a few more lines of blindingly clear explicit code that less skilled developers can easily follow than using more fewer lines of implicit code. Just because we're smart enough to deal with complex code doesn't mean everyone is - on large projects you just can't get enough devs that are as skilled as you and I. Anyone can write few lines of "obfuscated C", the wise realise that it is not the number of lines that matter, it is complexity, implicitness and in-obviousness that makes maintenance hard. To repeat a famous mis-quote of Einstein, things should be "as simple as possible, but no simpler". Java has this goal in mind, it is pretty clear that C# does not.

    60. Re:I have an idea for the style guide by SplashMyBandit · · Score: 1

      Thanks for the clarification. Some folks forget that K&R C was around for a while before ANSI.

    61. Re:I have an idea for the style guide by Fujisawa+Sensei · · Score: 1

      Forget notepad, for Windows use GVim.

      --
      If someone is passing you on the right, you are an asshole for driving in the wrong lane.
    62. Re:I have an idea for the style guide by Anonymous Coward · · Score: 0

      It looks like you just reinvented BASIC.

    63. Re:I have an idea for the style guide by swillden · · Score: 1

      The C language existed long before the ANSI standard was drafted. In K&R C, there were implicit conversion rules for many types, so a naive programmer might have thought there was no type checking.

      Yes, I'm familiar with (and used!) K&R. And I don't believe ANSI changed the implicit conversion rules, though it did add function prototypes and therefore parameter typechecking which didn't exist in K&R. Of course, using Hungarian System notation wouldn't have helped very much with the lack of argument typechecking anyway.

      When the ANSI standard finally came in 1989 as a draft and 1990 as the first standard

      Ah, I misremembered the age of the ANSI standard, though. I could have sworn I used an MS C compiler in the late 80s that had prototypes... I may be wrong about that, though.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    64. Re:I have an idea for the style guide by SplashMyBandit · · Score: 2

      Yes, it is nice to work with interfaces. No, you shouldn't care whether you are dealing with an interface or a concrete class. Hence, prepending "I" to interfaces is a bad idea. For example, the Java equivalent for writing (internationalized) text streams is "Writer", you don't care if it is a "FileWriter", "StringWriter", "OutputStreamWriter" etc. Note that it is called "Writer" (a word that makes perfect sense) and not "IWriter" (made up computer jargon). So my argument was not against using interfaces, it was against naming those interfaces in an artificial, and these days unnecessary, manner.

    65. Re:I have an idea for the style guide by ILongForDarkness · · Score: 1

      Hmm perhaps breaking with hiding of implementation details but having a way to tell someone that a thing is an interface (abstract base class) not a specific class seems nice. For example when I found out that the C# TextWriter needed a specific type of writer to construct it lead me to look for other things to use besides streamWriter. While it is an implementation detail letting the developer know that the actual class has to be something different since the class is abstract helps stear the search towards the options available to use rather than to one specific derived class and not even know for example that StringWriter exists because the first example you land on uses a different class.

    66. Re:I have an idea for the style guide by maxwell+demon · · Score: 1

      #pragma once is non-standard.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    67. Re:I have an idea for the style guide by maxwell+demon · · Score: 2

      Hmm perhaps breaking with hiding of implementation details but having a way to tell someone that a thing is an interface (abstract base class) not a specific class seems nice.

      Yeah, that's what documentation is for. :-)

      --
      The Tao of math: The numbers you can count are not the real numbers.
    68. Re:I have an idea for the style guide by maxwell+demon · · Score: 1

      So what can an IDE provide which Emacs can't?
      (Hint: It can do source highlighting, automatic indentation, search of definitions, compiling, debugging, version control, ...)

      --
      The Tao of math: The numbers you can count are not the real numbers.
    69. Re:I have an idea for the style guide by ILongForDarkness · · Score: 1

      Oh for mod points. I enjoy your sarcasm, seems like someone else thought it was trolling or something :-(. True documentation is good. However, when your coding away and having code completion popuping up suggestions it is nice if that little one line is enough to hint you in the right direction. When using a serial port class for example and see that there is a "Handshake" member, I'm pretty sure I"m not the only one that does this, it is pretty easy to assume you have a rough idea what that thing should do. So documentation tends to get consulted when the expected behaviour isn't what happens. Member names, conventions like iEnumerable where the i tells you that it is an interface, etc is helpful. You can than thing, hey do I really need to get a list here or would the base class be specific enough to supply me with the methods I need? Encourages you to accept the least specific class that is required.

    70. Re:I have an idea for the style guide by DrXym · · Score: 1

      It's a non standard which is still supported by virtually every mainstream compiler - gcc, msvc, clang, icc etc.

    71. Re:I have an idea for the style guide by SplashMyBandit · · Score: 1

      That works for 'coarse' level stuff. Where documentation is *essential* is when you are trying to write correct and robust software.

      In that case you need to consult the documentation to determine what a method's preconditions are, what it'll throw if they're not met (documentation is much better for describing runtime exception than an exception qualifier on the method signature, especially as this doesn't force you to cope with the exception, but the documentation says what gets thrown and more importantly, why). You cannot be a good developer if you are not always thinking about what can go wrong with the software you are using or writing. Not documenting it for your maintainers (including yourself in a few years) is not the mark of a professional (although many devs that consider themselves "pros" haven't yet grokked just how important writing quality docs is - and with things like JavaDoc is is easy to keep consistent as you code).

      You also need to consult documentation when you need to consider different units of measure. Is your time in milliseconds? seconds? years? is it UTC? local time? NTP time? what about your masses? lengths? currency units? I know that it never enters the heads of most developers to think about the units they are using, and they also never think that it is worth documenting. But if you want reliable software you need to document it (if you don't want to start using horrible classes that carry around units with them - although that is possible it is very inconvenient for most cases). Units matter, you'll lose your Mars probe if you screw it up (Google it), or calculate the wrong interest amount, or place objects on the wrong place on the map, or schedule a meeting after it has happened, etc.

      Documentation (and units!) matter. Unfortunately, as I said, many people think they are excellent coders but they can't be bother to write, read, or maintain useful in-code documentation. I hate using their code and are never surprised when it fails (since they haven't said how to use it correctly or what can kill it).

    72. Re:I have an idea for the style guide by Xest · · Score: 1

      "Java has this goal in mind, it is pretty clear that C# does not."

      Sorry, but that's FUD. Java is implementing most the things C# already has, and C# is pretty flexible in how you express yourself with some of the new features. You do not have to use the LINQ query syntax if you do not want, you can use the method syntax which is incredibly readable- far more so than the equivalent code in Java would currently be, but whilst still providing the power that Java simply does not.

      Other features the GP mentioned like the using clause (and the lock clause for that matter) greatly simplify code and aren't in any way about making it more complex, it is these sorts of simplifications that Java commonly lacks.

      It pains me to see you so rabidly attack C# and so rabidly defend Java all the time because you otherwise give the impression of having a lot of potential as a developer, but your inability to see past Java's faults and recognise that all tools have pros and cons, betrays that potential. Java is a wonderful language and the JVM is a wonderfully battle hardened and tried and tested platform that has proven itself through and through, but as languages go Java without a doubt has fallen behind C# in recent years in terms of it's ability to allow developers to express themselves with readable, maintainable code that can be built rapidly.

      God only knows, I've defended Java many times here against the hoardes of C programmers who still think everything should be written in C, and who spread the FUD that Java doesn't perform well but it's so tiresome seeing you pretend it's also some flawless magical language that's better than any other language ever - yes that's hyperbole from me, but that's the impression your constant posts on the topic give of your belief in the language. I'm not even saying C# is perfect, god only knows as someone whose done a fair bit of a mathematical programming I get pissed off at having to type Math.Pow instead of just using ^ for powers for example, but it does have some advantages and many recent advancements are pretty neat and are, for good reason, things that Java has thus ended up deciding to try and emulate.

      The fact is, in this case that you are wrong, and clearly so because you just haven't given C# the time or chance to properly see what Microsoft have done with it to improve it in these areas, and it's sad because you're clearly an otherwise intelligent guy. Less of the fanboyism and a bit more rationality, less of the insistence that your way is unquestionably the best way, and that there's no truth in the idea that different methods have different merits depending on the facts of the task at hand, a bit more willingness to be open minded about other languages and other concepts and I'd wager that'd be enough to push you from being a top 20% developer where I suspect you are now, to being a top 2% developer.

    73. Re:I have an idea for the style guide by SplashMyBandit · · Score: 1

      Thanks for your post. I'll take your points on board.

      C# certainly is a nice language and has its merits for sure. However, my apparent fanboyism comes from me repeatedly trying to point out what the pro.NET crowd apparently fail to grok. My apologies if this irritates you personally, that was certainly not my intention.

      What I do try an point out that many of the supposed tactical advantages of C# over Java are not actually advantages once you take a strategic perspective. Just as the power of C is that fact they kept the language simple and put the power in the libraries, the same is true of Java. For example, LINQ is nice, but IMHO JPA is better and simpler in some regards. Also in this case rather than pollute 'Java the language' with constructs ala LINQ instead a nice standardized library has been provided instead (known as JPA, which has an implementation called Hibernate EntitieManager). By not putting database constructs in the Java language itself it means that if you are developing tiny embedded systems (as I have done) you can compile Java down to virtually nothing (using something like GCJ). Using standardized libraries to extend itself, not additional language constructs, makes more sense as a general solution, IMHO. In addition, you can (and I have) use Java on a huge *heterogenous* network of however many thousand machines you have available. This would be useful for your mathematical work (just as it was useful when I was doing astrophysics research). This is something that .NET cannot match (work flawlessly in a heterogenous environment). Yet the best argument I hear for C# is that some feature makes up for these strategic shortcomings of the .NET platform (please don't mention Mono, I've taken a hard look at it and its library coverage has severe shortcomings). I have also done enough .NET development to know that it is excellent if you are (only) developing Windows desktop applications or webapps hosted by Windows. However, if you choose Java not only can you do a good job developing for the platforms .NET covers (with the deliberate exception of the XBox - 'thanks' Ballmer) you also have the strategic flexibility to move your code (which is an investment in time and money) elsewhere as the computing universe changes (and hasn't it been changing *a lot* lately?). Therefore, I try to point out these issues in this forum - unfortunately given the semi-anonymous nature of the forums it means the same crap gets repeated both ways.

      I can see definite advantages in the C# language - I don't deny it has some. What I do try to point out is that some of these advantages are actually illusory when you are designing (aka 'architecting' - although is a non-word) for the very big, very small or even medium scale systems. IMHO if you are only looking at language/keyword advantages then you are unfortunately not looking at the both the big picture and the future (that is, the things that actually matter) - which is all too common among developers unfortunataly. That'll put you well past the "2%" of developers. So when I hear someone think that because I like simplicity over more complexity and therefore I must be an unskilled developer I have a chuckle - to me it means the person talking to me is not thoroughly considering a great deal of factors that are outside the actual keystrokes used to build a system with a particular technology (I'm sure this sounds arrogant, it is not meant to be, it is just meant to be an observation from past dealings). Oh, and one more thing, in some ways C# does produce smaller and cleaner code than Java (but IMHO that is kinda countered by non-standard project .NET structures where stuff is squirreled all over the place; what seems like a straightjacket in Java is actually the only way to keep a multi-thousand class project sane) but how I've actually seen it used in practice they are both on-par in how ordinary devs produce awful code.

      I'd be very interested to

    74. Re:I have an idea for the style guide by Xest · · Score: 1

      I completely agree that Java's strengths really come to fruition when you're developing for heterogeneous systems and that's actually the purpose for which I really really like it and definitely advocate it over those who suggest you should resort to C++ and just compile multiple binaries for each system.

      The problem is though many - I'm certain the vast majority of business actually just use Windows systems and in this circumstance it becomes harder to justify Java - C#'s advantage come to the forefront, even more so if the firm in question is fully invested in the Microsoft route - i.e. using SQL server as their database system, and Active Directory for account management. But ignoring that set of scenarios and looking at a system built on a Windows only network even if it doesn't need to work with AD or SQL Server (and this isn't an uncommon scenario) then that's the situation in which it really comes down to language vs. language much more.

      Many of the new C# keywords like lock, using, and the LINQ constructs are actually shorthand for standard method style syntax and actually just get converted to exactly that by the compiler anyway. LINQ works based on extension methods, just in case you're not aware of them, very briefly, extension methods are methods that can be defined to act on existing types without modifying the code definition for that type. LINQ to objects for example works by adding methods like OrderBy onto the IEnumerable (which would have been better named IIterable IMO) interface such that it can be used to order any iterable collection. The following demonstrates an example LINQ query:

      var query = from c in Cars
      where c.Name.Contains("Focus")
      orderby c.Name
      select c;

      This really just translates to:

      var query = Cars .Where(c => c.Name.Contains("foo") .OrderBy(c => c.Name);

      Effectively the methods just return a result of the same type (IEnumerable) and so you can just chain the extension methods onto each other. All LINQ does is convert it's syntax into this anyway. You don't even have to use the lambda syntax for parameters if you don't want either, you can equally use the anonymous method syntax.

      Some C# programmers frankly prefer to avoid the LINQ syntax altogether and just use the extension methods, and there's actually good reason to do this too - if you want to extend the range of extension methods available then LINQ wont recognise that and so you'll end up with a mix of LINQ and extension methods anyway.

      The lock keyword i.e. lock(x) { ... } to lock a variable in a multithreaded environment is really just shorthand for using the Monitor pattern:

      Monitor.Enter(x);
      try { ...
      }
      finally {
      Monitor.Exit(x);
      }

      The using statement is just shorthand for previously prevalent IDisposable code, so using(var x = new x()) { ... } becomes:

      var x = new x();
      try {
      statement;
      }
      finally {
      if (resource != null) { (IDisposable)resource).Dispose(); }
      }

      So you can see a lot of the new syntax really needn't muddy your code if you're not keen on it, it's really just there to cut the amount of code you need to write, and in the case of LINQ may not even achieve that and you may resort to extension methods anyway.

      If you're going to be building for heterogeneous systems then you've really no reason to give up on Java, but for me if I'm building a Windows only system then I use C#, and the reasons are that I genuinely find that the combination of Visual Studio + C# features let me do what I want to do faster. Some of this is down to the fact the .NET libraries are focussed towards that platform and so have that inherent advantage, but part of it is down to the language too. You touch upon the point of looking at the bigger pic

    75. Re:I have an idea for the style guide by Coriolis · · Score: 1

      No naming convention is necessary, but some are useful. I find it useful to differentiate interfaces from classes at a glance, you do not. We disagree, and that's fine, but my reasoning for my preference makes sense to me in C#. I don't do the same thing in other languages, because they don't have the same distinction. I'm highly unlikely to change my opinion on this, because I can identify the benefits I gain from the practice on a day-to-day basis.

      --
      Rgasuya aata! : I have been coding Perl and cannot tell where my fingers are now!
    76. Re:I have an idea for the style guide by SplashMyBandit · · Score: 1
      > The problem is though many - I'm certain the vast majority of business actually just use Windows systems and in this circumstance it becomes harder to justify Java

      Businesses certainly use Windows on the desktop. However, very few of them develop Windows applications anymore (they used to, but that has decreased somewhat). Most (by number of projects) *new* development is targeted for the Web - at least for the government departments and multi-nationals I get to develop for. There are a few exceptions to this for specialized applications, but these are hardly ever for Windows only (some hardware controlling embedded systems, some multi-platform apps). In this case the servers may or may not be Windows (the largest outfits have all kinds of hardware, with the larger server farms generally being non-Windows since the economics is against it when you have a lot of servers).

      So while I understand the things in C# that make you like it out in the real world it is the Web that is taking over. In this case the Google Web Toolkit is pretty much best of breed at the moment (Microsoft's Project Volta seems to be stalled) - yep, doing raw Javascript (even with JQuery) or PHP is an insane way to develop, I completely agree with you there. For mobile apps Android (which is Java on Linux) is making inroads - although contract work for that is still reasonably rare. Enjoy the C#, but make sure you also get a lot of experience in Java too. Like I said, the world is moving to being more heterogenous rather than less and getting pigeonholed gives you less power to negotiate your contract rate.

    77. Re:I have an idea for the style guide by Xest · · Score: 1

      Perhaps it's a regional thing but I still see .NET as far and away the most prominent development environment here in the UK outside London (and arguably even inside London judging by the languages requested in job adverts). You're right things are more web focussed now but it still seems to generally be ASP.NET with a hefty focus on ASP.NET MVC nowadays outside London, Java takes a bigger share of the pie in London, whilst PHP holds second place behind .NET outside London.

      I suspect it's this regionality that is where much disagreement about language popularity comes from, in the story about iOS being one of the biggest new languages the other day I pointed out that hardly anyone is recruiting for iOS devs around here (though perhaps somewhat ironically, we are!) - I suspect in somewhere like San Francisco though where there's an absolute ton of new startups in the mobile arena that the iOS market is absolutely thriving in contrast though. As I say you see it here in the UK too with London - particularly in the North of England Java jobs are probably every 1 in 10 or 1 in 20, yet in London every other job advertised seems to be Java.

      We do a lot of mobile work, so we're one of those places that does actually look for Android devs (in fact we're recruiting for one right now). It depends on the amount the client is paying and so forth, but for more low budget stuff we tend to use HTML5 + jQuery + PhoneGap rather than ObjectiveC and Java. Part of the ballache in the mobile world right now is the fact that you have Windows Phone which is C# only, Android which is Java and C/C++, and iOS which is ObjectiveC and C/C++. For writing cross platform native apps there's no single solution that fits all, we can write C++ libraries that'll cover common stuff in iOS and Android then just build the front ends natively, but that still leaves Windows Phone out the bag. As such we've actually been ignoring it to this point, but if we do get more request for Windows Phone stuff then we're going to have to look at buying in or even building our own Java-esque environment whereby we have a VM for each machine, that executes bytecode we can use commonly across that. Whether we can do this with Java I'm not sure, and I know Apple don't like that, but afaik it's the way things like Unity get away with it so it's going to be the only choice. In an ideal world you'd build a custom UI for each device anyway so you can adhere to the standards for that platform but most clients aren't willing to foot the bill for that.

      We have some fairly big clients like BP, Swiss Re, the MoD, GM and so forth, and most requests we get for C# work tend to be either ASP.NET backend stuff, or Sharepoint stuff. We get a lot of HTML/Javascript work, and we get the afformentioned mobile work. We did have one potential tender for some Java work last year, but it was a pretty big Java project and we just couldn't get 5 additional talented Java devs at the time so we had to turn it away. As I say, personally, I'd actually like to get some more Java work which is why I want to put some effort into training our new interns on it when we hire them - I'd love nothing more than an upsurge in Java work, especially if it meant throwing out the shitty PHP contracts instead ;) It's certainly what I've been pushing for for some time to actively seek more Java work because if nothing else I believe there's much more money in it than the PHP and HTML/Javascript stuff at least. The beauty of Java/.NET is that when you sell a system like that you're selling a "proper" system that's solid, and maintainable and can hence charge proper money from it, which isn't the case with devalued tools like HTML, and to a lesser extent, PHP that any monkey can hack together in a half-arsed manner but where clients aren't willing to pay a reasonable markup to have it done properly making it for the most part, much more low profit stuff. Some clients value having things done properly, some don't, but those that do are willing to pay more to have it done properly, and those that do want it done properly are also the ones asking for Java/.NET stuff, and arguably even C++ for that matter hence why I want to chase them more.

    78. Re:I have an idea for the style guide by SplashMyBandit · · Score: 1

      Wow. Thanks for the very detailed reply. It's very interesting to hear how it is in the north of England (I'm in New Zealand, about as far away as you can get - this is a Microsoft country too, but not were the big outfits are concerned - including clients from England, lol). Best of luck unifying your mobile development environments, and growing your company. Based on market trends I wouldn't worry about Windows Phone too much for now :)

  5. AFD.SYS by Anonymous Coward · · Score: 0

    AFD.SYS does not mean "Ancillary Function Driver"... but you didn't hear that from me.

  6. Rude words by madprof · · Score: 5, Informative

    Obviously they do have to put in the bit about not using words that some might find offensive in case someone, having a bad day, put it in and they had no come back.
    It's quite incredible what some developers, at any size of company, will do sometimes.

    1. Re:Rude words by nschubach · · Score: 5, Funny

      What if you are actually writing software for a pimp or dog breeding?

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    2. Re:Rude words by madprof · · Score: 2

      Then it would be in context and no one would find it offensive.

      Oh hang on I'm supposed to come up with a witty reply, not a dull one. :)

    3. Re:Rude words by Samantha+Wright · · Score: 5, Funny

      Then you use neutral terminology, like 'executive-level sex worker' and 'that one secretary who talks too much.'

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    4. Re:Rude words by Sulphur · · Score: 2

      What if you are actually writing software for a pimp or dog breeding?

      Use string variables.

    5. Re:Rude words by Anonymous Coward · · Score: 0

      So, Leftists do everything possible to cajole corporations into being as soul-crushing as possible, and then complain that corporations are soul-crushing and work in contemporary America is boring. Brilliant.

      nah, that's your (usually conservative) PTA mothers, etc. Reading dirty words written by the sinner programmers gets them all up in arms. Just to make sure nice Johnny Appleseed doesn't hear such horrible cursing, Microsoft took an extra step towards keeping him safe and out of trouble!

    6. Re:Rude words by Nicknamename · · Score: 0

      And then they mod you down if you dare point it out.

      --
      Hitler hates pedophiles.
    7. Re:Rude words by Nicknamename · · Score: 1

      I take it that this is sarcasm, although having long lost faith in humanity, I am no longer sure.

      --
      Hitler hates pedophiles.
    8. Re:Rude words by Yogs · · Score: 1

      If I'm forced to do something in the source code that makes me ill, I grouse about it openly, give the detailed reasons behind it being where it is for now, and the TODO for the (hopefully near) future. I feel like if I don't and the code shows up on a blame as mine, it's my DUTY to the next developer to leave them some clue about {ahem} what occured.

      I don't use curse words so I've only been taken to task once for doing it in 10+ years. But I LIKE seeing cursing. Part of that is a little vicarious thrill... I've got three kids and can't afford to take stupid chances. But seriously, some of the stuff you encounter deserves it so richly. Hearing the echo of the prior developer cursing gives me a little emotional validation and a little helpful context while I'm detangling the mess.

    9. Re:Rude words by CAIMLAS · · Score: 1

      With variables like that, you must write Java for a living.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    10. Re:Rude words by Samantha+Wright · · Score: 1

      I did spend last summer like that. Happily, I am now back to being a penniless student, and I can write in any language I want.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
  7. There goes my DirectX game... by Anonymous Coward · · Score: 0

    'Pimp the Bitch'

  8. They are bad at naming things. by Anonymous Coward · · Score: 5, Funny

    Take the 'Malicious Software Removal Tool' for one example. Sounds to me like a malicious program that goes and removes software from your computer. They should have called it the 'Tool for Removing Malicious Software'. I look at such ambiguity with a laugh. I recently had a dialogue box on my computer saying something along the lines of "Problem Reporting _____". (I forget the exact text.) Does that mean that the system is reporting a problem, or having a problem reporting? Considering that most users of the software are not experts, they should try harder to make things less confusing.

    1. Re:They are bad at naming things. by Anonymous Coward · · Score: 2, Funny

      >Take the 'Malicious Software Removal Tool' for one example. Sounds to me like a malicious program that goes and removes software from your computer

      Thank you for your bad ass-insight.

    2. Re:They are bad at naming things. by adjuster · · Score: 5, Funny

      Reminds me of the short-lived Critical Update Notification Tool Microsoft released back in the early 2000's. (Yeah-- they really named it that, though they _quickly_ backpedaled on the name...)

      --
      The Attitude Adjuster, I hate me, you can too.
    3. Re:They are bad at naming things. by maxwell+demon · · Score: 1

      Maybe that's when they added the part about offensive names into their guidelines.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    4. Re:They are bad at naming things. by bsims · · Score: 2

      And who can forget Microsoft Services for Unix... with the offical abbriviation of SFU

    5. Re:They are bad at naming things. by nbauman · · Score: 1

      I wonder what reason they gave in the memo announcing the change.

      I remember how an electrical wholesaling industry association set up their first computerized order system which they called the Direct Order Entry Processing System.

      In the memo they said they changed it because it was "too hard to pronounce."

    6. Re:They are bad at naming things. by clarkn0va · · Score: 1

      Considering that a fair number of MS coders are apparently not experts, I always assumed the ambiguity was intentional, or at least the best they could muster.

      --
      I am literally 3000 tokens away from the chaotic crossbow --Stephen
    7. Re:They are bad at naming things. by 140Mandak262Jamuna · · Score: 4, Funny

      Take the 'Malicious Software Removal Tool' for one example. Sounds to me like a malicious program that goes and removes software from your computer.

      The name accurately describes what the software does and how. Your explanation that it is a malicious tool that removes software is correct. Your mistake is to assume it is a tool to remove malicious software.

      --
      sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    8. Re:They are bad at naming things. by Rashkae · · Score: 1

      I just had to deal with Microsoft Security essentials, i it's default settings, deleting an entire Thunderbird Inbox when it detected a virus attachment. (not quarantined, mind you, deleted, with no warning or message other than a little note in history log.) As far as I'm concerned, your first impression is not too far off the mark.

    9. Re:They are bad at naming things. by jackbird · · Score: 1

      Got a link for more info? Not only have I never encountered a false positive from that tool, I've never seen it have any effect at all, even on obviously infected machines.

    10. Re:They are bad at naming things. by VortexCortex · · Score: 4, Funny

      They should have called it the 'Tool for Removing Malicious Software'

      I'm sorry, you'll have to take up your grievance with Richard Stallman; Apparently GPLv3 is the only license allowed for derivatives acronyms such as TRMS.

    11. Re:They are bad at naming things. by Anonymous Coward · · Score: 0

      When you translate it back to Telugu or Bengali, that makes much more sense.

    12. Re:They are bad at naming things. by Anonymous Coward · · Score: 1

      And who can forget Microsoft Services for Unix... with the offical abbriviation of SFU

      What, like Simon Fraser University?

    13. Re:They are bad at naming things. by Johann+Lau · · Score: 2

      Oh I know: "Tool to remove software that is malicious in ways other than those which we have come up with for you today." or in short, TTRSTIMIWOTTWWHCUWFYT.

    14. Re:They are bad at naming things. by DarwinSurvivor · · Score: 1

      Simon Frase University?

    15. Re:They are bad at naming things. by DarwinSurvivor · · Score: 1

      NoNoNoNo, The problem is submitting a report. Kind of useful when you think about it!

    16. Re:They are bad at naming things. by MadKeithV · · Score: 1

      That instantly makes me think of UMIST. Okay, not offensive, but the source of many a lame joke.

    17. Re:They are bad at naming things. by TheRaven64 · · Score: 1

      If there's a tool for removing RMS, please share it!

      --
      I am TheRaven on Soylent News
    18. Re:They are bad at naming things. by ifrag · · Score: 1

      Got a link for more info? Not only have I never encountered a false positive from that tool, I've never seen it have any effect at all, even on obviously infected machines.

      That tool is only designed to target a few very specific pieces of malware (ones known to be spreading that for some reason Microsoft has more interest in stopping). So unless you just happen to be infected with one of those, the normal effect it would have is nothing. It's not in any way intended to be a replacement for anti-virus software or anything like that.

      --
      Fear is the mind killer.
    19. Re:They are bad at naming things. by omnichad · · Score: 1

      UNBELIEVABLE! I don't know which to be more angry about - Security Essentials deleting an entire mailbox or Thunderbird still using mbox instead of one message per file. If you've ever had a dying hard drive, you'd be thankful for individual message files.

    20. Re:They are bad at naming things. by Rashkae · · Score: 1

      If you've ever had to search the body of e-mails in a large maibox, you would be happy not to have to open/read 100,000 files smaller than 1k

    21. Re:They are bad at naming things. by omnichad · · Score: 1

      That's what the full-text index is for, which Thunderbird has.

    22. Re:They are bad at naming things. by badkarmadayaccount · · Score: 1

      Inefficiency at its' best.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    23. Re:They are bad at naming things. by omnichad · · Score: 1

      A full-text index is inefficiency? It's certainly faster than reading all the text on the disk. Are you talking about the extra step taken in advance to save time in the future? Yes, overall there's more processing involved if you only search once in your life. If you search every day, you'd appreciate the near-instant results.

    24. Re:They are bad at naming things. by badkarmadayaccount · · Score: 1

      You raping your filesystem, even if it's only spacewise, unless you are using ReiserFS.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  9. Bad title by PCM2 · · Score: 5, Informative

    I just want to go on record as saying I hate this headline. I didn't pick it. Furthermore, I don't think there's anything in particular about Microsoft developers that makes them "need a style guide" more than anybody else, and that notion had absolutely nothing to do with my column. I just thought it was interesting that a Microsoft style guide exists, that it's available for sale, and that it has some interesting stuff in it about writing for software UIs that a lot of developers probably don't think about. That's about it.

    --
    Breakfast served all day!
    1. Re:Bad title by davester666 · · Score: 4, Insightful

      Why is this for sale? You'd think they would want more well-designed software for their platform, especially with Metro just around the corner.

      --
      Sleep your way to a whiter smile...date a dentist!
    2. Re:Bad title by Anonymous Coward · · Score: 0

      Welcome to Slashdot. A wasteland of bigotry and ugliness. Anything to get the hits. But what else can you expect out of a Wall Street held company?

    3. Re:Bad title by Anonymous Coward · · Score: 1

      Microsoft's had a style guide forever. Motif had a style guide. 15 years ago when a was writing GUI application every serious publisher of GUI-based OS or API had a style guide. It's the best way to encourage consistency across applications and the accompanying documentation. Does that not happen anymore? I'd have thought Microsoft or Apple NOT having a style guide would be news-worthy, but this is like mentioning the sky is blue.

    4. Re:Bad title by gbjbaanb · · Score: 5, Insightful

      It's the best way to encourage consistency across applications and the accompanying documentation. Does that not happen anymore?

      no, it doesn't happen anymore. The original style guide was good - it said how much space to leave around the edges of dialogs, how big to make buttons and where to put the ok/cancel buttons. the end result was an overall look and feel that made sense no matter which application you used, and that meant TCO was reduced as users knew how to use it.

      Fast forward to the XAML/WPF/C# era and all that went out the window in favour of "rich" UIs where you have a stupid coloured orb that everyone thinks is decoration until you realise it's the main system menu, and every application has a different set of awful skins.

      I would hope (haven't read it) that this redresses the balance.

    5. Re:Bad title by Chris+Mattern · · Score: 1

      Wouldn't that be why it's for sale, instead of remaining, say, a Microsoft internal document?

    6. Re:Bad title by Cinder6 · · Score: 1

      I believe the parent was wondering why they are offering it for a price, rather than for free.

      --
      If you can't convince them, convict them.
    7. Re:Bad title by Anonymous Coward · · Score: 0

      Oh, in that case - it is because people only value something with a price. For example, if a new Hollywood movie was released with a price of FREE nobody (well almost nobody) would want it. If it was released with a price of $19.99, lots of people want it. Some buy it, some pirate it - but they want it. For this thing, probably nobody cares if you just pirate the guide. The price is just to make sure you want it.

    8. Re:Bad title by Anonymous Coward · · Score: 0

      ... So if someone in Hollywood suddenly goes crazy and releases Next Big Blockbuster free, noone will watch it.

      Also, that explains why there's no free (as in beer) software whatsoever - nobody wants it, as there is no price.

      Free and pay-whatever-you-want e-books and other artistic works are also non-existant.

    9. Re:Bad title by Altus · · Score: 2

      I think the implication here is that you should give away your style guide for free to give every developer access to it, hopefully leading to a more cohesive platform experience.

      --

      "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

    10. Re:Bad title by Anonymous Coward · · Score: 1

      I just thought it was interesting that a Microsoft style guide exists, that it's available for sale

      Believe it or not, the style guide has been around since Windows 3.1 days. We used it as the basis of our GUI design back then (essentially it described what would eventually become the "Windows Classic" theme).

      These days I work with Java (*shudder*). We Java Dev's don't need a style guide - because there are too many other fricken problems to worry about to have time to waste on "Style". (Like Why The F#$# did my form just become 3km wide?)

    11. Re:Bad title by Gadget_Guy · · Score: 4, Informative

      no, it doesn't happen anymore. The original style guide was good...

      Which one was the original one? Was it the one for Vista and Windows 7? Or Windows XP? Or this tome for Windows 98, 2000 and XP (which was also available in book format)? And I have this one for Windows 95 on my bookshelf.

      I am sure that Windows 3.x had them too. For all the faults of Microsoft, you can't say that they don't like publishing books on how to program their operating systems.

      Fast forward to the XAML/WPF/C# era and all that went out the window in favour of "rich" UIs where you have a stupid coloured orb that everyone thinks is decoration until you realise it's the main system menu, and every application has a different set of awful skins.

      I agree with you on rise of flashy, non-standard user interfaces, but if you want to adhere to an official style guide now you can still use the ones written for each Windows platform (see my first link).

    12. Re:Bad title by SplashMyBandit · · Score: 3, Interesting

      Yeah, the "understated" UIs look great but are actually poorly designed from a usability perspective.

      Example: Last week I bought an iPhone 4S and couldn't figure out how to make a call. I went to "Phone" where I had contacts and was presented with buttons for doing Face Time, sending messages, sharing contacts, and adding a contact to favorites, but there was no button to make a call. I mean, given that choosing the Phone app means you will want to make a call on a selected contact about 95% of the time you would think there would be a massive "Call" icon, since that is the most common thing you'd like to do. It turns out you have to tap on the phone number to make the call - even though there is absolutely nothing to indicate that tapping the number would make a call (my expectation was that tapping the number would edit it). Now that I know that all the interface elements are clickable "buttons" *even if they don't look like the buttons shown elsewhere* things are much easier (and this is coming from a long-time user of Macs). While many of the UI features of Apple are excellent I consider their minimalist approach has gone so far as to present too little information. My point here is that while we are decrying Microsoft for their UI designs we can also do the same for Apple. Mostly less is more, but sometimes less really is less. One of my hats is a trained technical writer and from that point-of-view I consider some elements of Apple's style to be very, very bad - but that is not a particularly fashionable point of view at the moment.

    13. Re:Bad title by Froboz23 · · Score: 4, Funny

      I agree that this document should be free rather than for sale. For more details on why I think this document should be free, please refer to my Kindle eBook "Why I think the Microsoft Style Guide Should Be Free", available for download from Amazon for only 99 cents.

      --
      Take off every Sig. For great justice.
    14. Re:Bad title by gbjbaanb · · Score: 1

      I guess that once you know the number is the thing to call - it's intuitive and easy. Phones have little screen space so it makes sense to tuck shortcuts everywhere, and the 'long/short touch this' paradigm is well established.

      On Android, I can do exactly the same - but I also have a big green call button, so nyayanayaa :)

    15. Re:Bad title by s_p_oneil · · Score: 1

      "Example: Last week I bought an iPhone 4S and couldn't figure out how to make a call."

      Isn't that why they created Siri?

    16. Re:Bad title by SplashMyBandit · · Score: 1

      If only Siri worked as advertised. It's not as reliable as you would think - often mangling requests (at least, with my kiwi accent).

  10. Master/slave by Samantha+Wright · · Score: 5, Informative

    Similarly, the relationship between USB peripherals could be described as "master/slave," but these terms could also be considered offensive. (The "Microsoft Manual of Style" says such language is prohibited in "at least one U.S. municipality.")

    Dear Neil McAllister,

    That terminology originally comes from disk drive buses, and the municipality is Los Angeles. Are you really a tech writer?

    Sincerely,

    Suspicious

    --
    Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    1. Re:Master/slave by Samantha+Wright · · Score: 4, Informative

      Addendum:

      Huh?

      Dear Neil McAllister,

      Netscape named their implementation of ECMAScript as 'JavaScript' as the result of a cross-promotional stunt with Sun. Netscape was bought by AOL. AOL merged with Time-Warner. This merger was the largest acquisition in business history. I can't believe you don't know this.

      Sincerely,

      Thinking You Were Born Yesterday, Or Perhaps Last Week At The Earliest

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    2. Re:Master/slave by Samantha+Wright · · Score: 2
      Missing context that Slashdot ate:

      This howler stuck out, in particular: "JScript is the Microsoft implementation of the ECMAScript scripting language specification, an open standard. Do not refer to it as 'JavaScript,' which is the corresponding implementation by Time Warner." Huh?

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    3. Re:Master/slave by XiaoMing · · Score: 1

      Considering it is still utilized in USB specification ( http://en.wikipedia.org/wiki/USB_On-The-Go ), and that Master/Slave annoyances that all of us have lived with from disk (disc? ;) drives have thankfully been obsoleted with SATA, I'd say Author of TFA is doing a fine job of drawing on currently relevant subject matter, rather than trying to relate content in Microsoft's latest style manual to someone who's stuck in the days of IDE.

    4. Re:Master/slave by viperidaenz · · Score: 1

      Please explain how the wording and research of a the content of a quote is the writers fault?

    5. Re:Master/slave by Samantha+Wright · · Score: 1

      That's a fair criticism, but the prohibition was originally about IDE, and it was pretty widely known when it happened. One should always hesitate and do research before publishing a suggestion that something is absurd or outlandish.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    6. Re:Master/slave by 93+Escort+Wagon · · Score: 4, Informative

      Netscape named their implementation of ECMAScript as 'JavaScript' as the result of a cross-promotional stunt with Sun.

      Except I seem to recall JavaScript pre-dated ECMAScript - and the ECMAScript Wikpedia page seems to support my recollection of the timing.

      The naming was certainly a promotional stunt, though.

      --
      #DeleteChrome
    7. Re:Master/slave by interval1066 · · Score: 1

      Master/slave terminology is still in vogue to describe field bus topology in the industrial automation industry. Apparently those old modbus guys didn't get the memo. And Crenshaw Blvd. has yet to be offended by those old engineers.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    8. Re:Master/slave by luis_a_espinal · · Score: 1

      Please explain how the wording and research of a the content of a quote is the writers fault?

      It isn't, but it makes one hell of a fallacious attack :)

    9. Re:Master/slave by exomondo · · Score: 1

      That terminology originally comes from disk drive buses

      He's obviously not disputing that, you're quite clearly missing the point.

    10. Re:Master/slave by exomondo · · Score: 1

      Netscape named their implementation of ECMAScript as 'JavaScript' as the result of a cross-promotional stunt with Sun. Netscape was bought by AOL. AOL merged with Time-Warner. This merger was the largest acquisition in business history. I can't believe you don't know this.

      Maybe he was pointing out that the AOL/Time Warner acquisition happened after Netscape's JavaScript was released?

    11. Re:Master/slave by Anonymous Coward · · Score: 0

      from disk (disc? ;)

      FYI, it's "disk" if it's a hard drive and "disc" if it's a CD or a DVD.

    12. Re:Master/slave by Zontar+The+Mindless · · Score: 1

      I would also say, "Huh?"

      Yes, I'm *quite* aware of the history, thanks very much, and I still say "Huh?", a fish-and-bicycles sort of "Huh?" to be more precise.

      "Ownership of a few leftovers of corporate leftovers long after the fact" != "originate" or "develop" or "maintain".

      --
      Il n'y a pas de Planet B.
    13. Re:Master/slave by Samantha+Wright · · Score: 1

      That's legalese for you.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    14. Re:Master/slave by NoMaster · · Score: 3, Informative

      That terminology originally comes from disk drive buses

      It's much older than that.

      --
      What part of "a well regulated militia" do you not understand?
    15. Re:Master/slave by Anonymous Coward · · Score: 0

      Nothing in his article implied he didn't know this - it seemed like a reasonably "huh"-worthy example of a bizarre item in the style guide.

      Oh, and Oracle now owns the Javascript trademark. Since you didn't mention that, I assume you didn't know this, and therefore you must have been born yesterday as well?

      Or maybe not every post on /. needs to somehow put someone in their place or insult them.

    16. Re:Master/slave by PPH · · Score: 3, Funny

      Similarly, the relationship between USB peripherals could be described as "master/slave," but these terms could also be considered offensive. (The "Microsoft Manual of Style" says such language is prohibited in "at least one U.S. municipality.")

      Damn! I just finished changing all master/slave references to pimp/bitch. And now they tell me that this won't do either?

      How about top/bottom?

      Domme/sub?

      --
      Have gnu, will travel.
    17. Re:Master/slave by Anonymous Coward · · Score: 0

      I'm with Neil on this. Microsoft's guideline is literally correct, but it ignores all the conventions - everyone, then and now, referred to the language in question as "JavaScript" and not ECMAScript or JScript or Time Warner Script.

      They were just being obfuscators. This all came from the personality of their CEO at the time, that was so like Bill he could've written the paragraph himself.

    18. Re:Master/slave by Wannabe+Code+Monkey · · Score: 1

      Similarly, the relationship between USB peripherals could be described as "master/slave," but these terms could also be considered offensive. (The "Microsoft Manual of Style" says such language is prohibited in "at least one U.S. municipality.")

      Dear Neil McAllister,

      That terminology originally comes from disk drive buses, and the municipality is Los Angeles. Are you really a tech writer?

      Sincerely,

      Suspicious

      Dear Suspicious,

      The first thing I'm going to do is dispense with this pseudo-formal fake letter writing style you've for some reason chosen for an internet message board.

      I really don't understand your problem with this part of the article. The terminology can apply to disk drives buses, USB, and many other technologies. Does he have to mention every single technology where this terminology exists in order for you to take him seriously as a tech writer? And he was quoting directly from the manual of style when he said "at least one U.S. municipality." Why are you trying to take him down a peg for that?

      --
      We always knew Comcast was corrupt, here's the proof: http://tech.slashdot.org/comments.pl?sid=1909890&cid=34545432
    19. Re:Master/slave by Anonymous Coward · · Score: 0

      JavaScript technology was licensed from Netscape, therefore it would naturally be Time Warner or AOL Time Warner. This was probably an edit done by the legal department. Questioning the clarity of the statement is one thing, and reasonable. Calling anything a "howler" unless you are absolutely sure they are completely off their rocker or it is a glaring error means that you're just another idiot journalist... and yes, that is redundant.

    20. Re:Master/slave by Samantha+Wright · · Score: 1

      The offence stems from drawing attention to something that should be obvious and well-known to a person of his profession. For example, in Indiana, it is (technically) illegal for a server to bring alcohol into a restaurant. This sounds somewhat less absurd when you know that the full text of the law is supposed to be about patrons, but doesn't actually specify who is prohibited from doing so. If you were operating a restaurant in Indiana, this is something you would obviously have to know. McAllister and his audience should both be versed in the story that LA had banned the master/slave terminology, and it's deeply disappointing that he took the chance to exploit it for a chance to rib Microsoft instead of doing the applicable research—or at least being more cautious about it.

      Sincerely,

      Writing To An Imaginary Newspaper Advice Column

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    21. Re:Master/slave by Wannabe+Code+Monkey · · Score: 1

      The offence stems from drawing attention to something that should be obvious and well-known to a person of his profession... and it's deeply disappointing that he took the chance to exploit it for a chance to rib Microsoft

      I don't believe he was ribbing Microsoft at all. Here's some more context of the quote:

      Especially treacherous are those words that have become part of the standard computing jargon but that may carry negative associations for some English speakers... Similarly, the relationship between USB peripherals could be described as "master/slave," but these terms could also be considered offensive.

      The author's saying these words are treacherous and this guideline is a good point to think about. There was nothing negative towards Microsoft in any of this. Also that story coming out of LA caused a minor stir in the tech world for a limited amount of time. As it happens I do remember the controversy, but if you weren't paying attention to the news for a few weeks you may have completely missed it. And what of developers just graduating college right now? They would have been 12 in 2003 when this happened. I wouldn't expect them to be well versed in the story. Plus, I don't believe McAllister's audience is necessarily the type that would have heard about the original controversy.

      --
      We always knew Comcast was corrupt, here's the proof: http://tech.slashdot.org/comments.pl?sid=1909890&cid=34545432
    22. Re:Master/slave by Samantha+Wright · · Score: 1

      Funny story: I'm graduating college now, I was fourteen at the time, and I remember the controversy clearly. He passed up an opportunity to illuminate and gave no indication that he had bothered to look into it. If I were publishing on a news site, I would have looked that sort of thing up before mentioning it, and I somewhat suspect you might too. I guess it's just too much to ask tech journalists to remember anything they don't have to, unless it's about the flavour of Kool-Aid. (Or, for that matter, as anyone who's anyone in the world of pedantry knows, Flavor Aid.)

      ...although, you have me on the context. I swear that 'Some tips are better than others' was one paragraph further up. Oh well. Have a good evening.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    23. Re:Master/slave by TheRaven64 · · Score: 1

      It's actually more complicated than that. JavaScript is not an implementation of ECMAScript, it is a dialect of ECMAScript. There are JavaScript specifications published independently of ECMA. After a new ECMAScript release, the new features usually contain some things that were already in JavaScript, and the next JavaScript specification usually includes the things that were introduced in ECMAScript.

      --
      I am TheRaven on Soylent News
    24. Re:Master/slave by Anonymous Coward · · Score: 0

      Netscape named their implementation of ECMAScript as 'JavaScript' as the result of a cross-promotional stunt with Sun.

      Except I seem to recall JavaScript pre-dated ECMAScript - and the ECMAScript Wikpedia page seems to support my recollection of the timing.

      The naming was certainly a promotional stunt, though.

      The original name for it was ActionScript. Then the promotion stunt happened. Then the language core spec was handed over to ECMA.

    25. Re:Master/slave by s_p_oneil · · Score: 1

      ""master/slave," but these terms could also be considered offensive"

      That's probably when they decided to switch to pimp/bitch. I mean, you have to come up with names that get the point across.

  11. You may scoff, but style is everything by phonewebcam · · Score: 4, Funny

    Choose the single leg double-hand overarm for distance.
    Or, if you want maximum impact, and hence noise when the chair lands, go for height: a full seat grab upper thrust is your best option.
    Then there's the full intimidator, often accompanied with shrieks alluding to colorfully burying someone whilst holding it by two legs high above your head - this move requires two full laps of the office before deployment.

  12. Shorter version by Anonymous Coward · · Score: 1

    Why MS devs need a style guide: they thought the ribbon was a good idea. 'Nuff said.

    1. Re:Shorter version by Gadget_Guy · · Score: 2, Interesting

      Why MS devs need a style guide: they thought the ribbon was a good idea.

      Quite frankly, it was. I did have some problems, like the icon that turned out to be a menu (how many people had problems with that?) and Microsoft's refusal to repeat any function on two different tabs (so if something is on the home tab then it cannot appear elsewhere even if it should logically be on that other tab). However, if you watch ordinary people using Office 2003 (or below) then you will notice that they tend to hunt around the toolbars for functions rather than use the menus where you don't need to hover the mouse to read what a button does. The ribbon is perfect for those people. It is also good for tablet users.

      The biggest problem people had with the ribbon was that it changed an existing user interface that had not changed substantially since the Windows 3.1 days. All of a sudden, they had to re-learn the package again. That is a pain in the proverbials. However, new users to Office 2007 and 2010 must surely be scratching their heads and wondering what all the fuss was about.

  13. If it's in the Style Guide, it actually happened.. by DontScotty · · Score: 4, Interesting

    And - people can not avoid or fix mistakes which they do not know about.

    Silence on an issue = consent. So, if MSFT had not mentioned avoiding "'pimp' or 'bitch"; someone raised in an environment where that was ok - (looking at you, teens and young twenty-somethings who grew up saying "That's Gay" when you meant wrong, bad, or odd) may not fully realize the problem with borderline and unacceptable language.

    Example: Error Message = "What a bitch! Just dumped a debug file in my program folder" or in the HELP>ABOUT saying "Hey, if you want additional functionality, allow me to pimp the ENHANCED version @ paymemorecash.local"

  14. My embarrassment by Anonymous Coward · · Score: 0

    Once when discussing hard drives and controllers, I asked my co-workers, "It is primary/secondary and off of those master/slave or the other way around? I don't do hardware enough to remember those things."

    One of my co-workers was African American and after that came out of my white mouth, I regretted it: not because I'm PC or anything but because I truly respected him and admired his skill as an engineer.

    My African American co-worker being an uber-geek-professional and without missing a beat answered it.

    I really hate the whole race relations in America.

    Say what you will about Obama and his polices, but having a black President has really helped us as a people in the States and I hope it has added to the healing.

  15. McAllister's an ID10T by Anonymous Coward · · Score: 2, Insightful

    'Occasionally, Microsoft's recommendations verge on the absurd. For example, you might not think it necessary to admonish developers to "not use slang that may be considered profane or derogatory, such as 'pimp' or 'bitch,'" but apparently it is.'

    Spoken like someone who's never written, read, or worked with any kind of code whatsoever. It's not uncommon for comments to contain language others outside the team will find offensive - developers get comfortable, and start writing for each other instead of the world at large. Since MS releases their code to outside parties, they feel the necessity to remind their coders to remember they're not the only ones reading the source.

    Twit.

  16. Design patterns: alternate names by Anonymous Coward · · Score: 5, Funny

    You may be familiar with design patterns. Those in the know sometimes give them nonstandard names, such as:

    • pimp - Define an object that encapsulates how a set of objects interact. Promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.
    • bitch - Attach additional responsibilities to an object dynamically keeping the same interface.
    • pms - Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.
    • company bathroom - Ensure a class has only one instance, and provide a global point of access to it.
    • strapon - Convert the interface of a class into another interface clients expect. An adapter lets classes work together that could not otherwise because of incompatible interfaces.
    • player - Use sharing to support large numbers of similar objects efficiently.
    • dating - Allows concurrent read access to an object, but requires exclusive access for write operations.
    • screw - Represent an operation to be performed on the elements of an object structure.
    • orgy - Combining multiple observers to force properties in different objects to be synchronized or coordinated in some way.
    • "let's not put it on, baby" - Reduce the overhead of acquiring a lock by first testing the locking criterion (the 'lock hint') in an unsafe manner; only if that succeeds does the actual lock proceed. Can be unsafe when implemented in some language/hardware combinations.
    • "I love you" - Manages operations that require both a lock to be acquired and a precondition to be satisfied before the operation can be executed.
    • divorce - Addresses problems with the asynchronous pattern that occur in multithreaded programs
    • alimony - asynchronous interface to resources that must be handled synchronously.
    1. Re:Design patterns: alternate names by Tastecicles · · Score: 1

      who the hell modded this offtopic!? It's not only hilarious but also very much on topic!

      --
      Operation Guillotine is in effect.
  17. There is a good reason for this... by wbr1 · · Score: 4, Funny

    ...admonish developers to "not use slang that may be considered profane or derogatory, such as 'pimp' or 'bitch,'" but apparently it is.'"

    Microsoft does not want their true relationship with their customers to become widely known.

    --
    Silence is a state of mime.
  18. Dolt by Osgeld · · Score: 1

    Back in the design days of the original macintosh they used Do It instead of OK, apparently a guy got frustrated and in anger asked "I'm not a dolt, why is the software calling me a dolt?"

    http://www.folklore.org/StoryView.py?project=Macintosh&story=Do_It.txt&sortOrder=Sort%20by%20Date&detail=medium&search=do%20it

  19. Re:If it's in the Style Guide, it actually happene by bloodhawk · · Score: 3, Interesting

    while the derogatory terms etc may seem obvious, there are plenty of less obvious mistakes that people fall into. For instance we used naming conventions on errors in on of our production applications that referred to greek mythology and specifically the underworld. It came as quite a shock when we received official complaints from religious nutcases that said they were offended by our blasphemy. Since then we have had to rewrite a lot of that to use far more boring errors.

  20. Re:If it's in the Style Guide, it actually happene by DontScotty · · Score: 1

    "came as quite a shock"

    Probably better said than what I wrote. When you are generating something for mass consumption, you have to guard the sensibilities of the most sensitive persons.

    Of course, one could go on their own rebellious way, and have a small but loyal cult following - however I believe most of the code written for programs is destined to be seen by more than the general three-close-friends.

  21. Well.. If you were writing software... by Mitsoid · · Score: 1

    Well, if you were writing software for say... a dog tracker & Information application such as for breeding dogs..

    You probably would not want to use the wording "Pictures of Studs" and "Pictures of Bitches" as a link to the gallery of the dogs' photos... Even if it's legitimate and correct usage!

  22. MMOS 4th edition by paddbear · · Score: 1

    It was written for technical writers and editors, not for developers.

  23. No other platform has a style guide? by TheSkepticalOptimist · · Score: 4, Informative
    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
    1. Re:No other platform has a style guide? by Anonymous Coward · · Score: 0, Redundant

      No, you don't.

      https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html

      Don't go spreading FUD about the iOS developer agreement, it has nothing to do with documentation access.

    2. Re:No other platform has a style guide? by wvmarle · · Score: 1

      It seems the hilarious and unusual part of this is that Microsoft apparently until now didn't even have one.

    3. Re:No other platform has a style guide? by dotancohen · · Score: 1

      It seems the hilarious and unusual part of this is that Microsoft apparently until now didn't even have one.

      Posted an hour before your post, and highly rated at that time:
      http://developers.slashdot.org/comments.pl?sid=2667465&cid=39015509

      --
      It is dangerous to be right when the government is wrong.
  24. Call me crazy, but I digress. by idbeholda · · Score: 0

    I couldn't care less about the "style" of coding (aka comments), as long as it works. More importantly, that the code is efficient as possible. Focusing on style before functionality detracts the overall effectiveness of a program, imho.

    1. Re:Call me crazy, but I digress. by Anonymous Coward · · Score: 0

      You must be the "hit it and quit it" type of programmer. Perl must be your favorite thing in the world.

    2. Re:Call me crazy, but I digress. by Maclir · · Score: 1

      You clearly have never had to work in a programming team environment, when you have to take some piece of shit code written by some half-arse educated script monkey, and actually make it work.....

    3. Re:Call me crazy, but I digress. by Anonymous Coward · · Score: 0

      Let's just say, I would never hire you. Functionality should be completely mapped out before you even sit down to code. If it's a small project, you may not need an requirements or design spec, but you should at least have a goal. Larger projects need the functionality spec'ed out well before coding starts.

      As I've had to suffer revisiting some of my earlier code, I can tell you good style goes a long way in creating maintainable code. Some of my code has been in the field for over 15 years, well beyond what I thought the life-cycle of the code would be. I'll tell you, variable names, comments, architecture; they all matter. I've also suffered looking at many other people's code that has been in the field for close to 40 years.

      Just cause crap code can work today, doesn't mean it will have all the functionality it needs tomorrow. If you don't plan it out, it likely won't work tomorrow. If you don't have a good style, you won't keep a job at any reputable coding house. Maintenance is king; if you didn't learn that in school, go back. Expandability seems to also be important for all the managers that don't understand feature-creep.

    4. Re:Call me crazy, but I digress. by idbeholda · · Score: 1

      Don't get pissed with me because you don't completely understand code that someone else writes. Like I said, for me, functionality comes first, and documentation comes second. And yes, I have worked in a team environment. My biggest pet peeve is inefficient code. Really, it's not that difficult of a concept to understand.

    5. Re:Call me crazy, but I digress. by idbeholda · · Score: 1

      "Focusing on style before functionality detracts the overall effectiveness of a program."
      "Let's just say, I would never hire you. Functionality should be completely mapped out before you even sit down to code."

      So you're saying that you wouldn't hire me based on the "counterargument" that functionality should indeed come first, which is what I said to begin with. Reasoning like that only comes from someone who happens to be a complete retard. You speak briefly of management and years of experience, yet fail to even begin your post in a cohesive, non-contradictory manner. That alone invalidates whatever point(s) you're trying to make. As such, I would either find a different company to work for, or I would go about finding a way to replace you before your apparent incompetence ruins the actual development process.

      My point is, functionality comes first. If the code doesn't work, you can go ahead and comment/document it all you want, but that's not going to magically make it functional. Feel free to prove me wrong in that, but I doubt I'll be hearing from you again.

    6. Re:Call me crazy, but I digress. by idbeholda · · Score: 0

      That's quite the lovely shade of bitch you're wearing today. Did you get your degree at Assmad University?

    7. Re:Call me crazy, but I digress. by Chrisq · · Score: 1

      "Focusing on style before functionality detracts the overall effectiveness of a program." "Let's just say, I would never hire you. Functionality should be completely mapped out before you even sit down to code." So you're saying that you wouldn't hire me based on the "counterargument" that functionality should indeed come first, which is what I said to begin with. Reasoning like that only comes from someone who happens to be a complete retard. You speak briefly of management and years of experience, yet fail to even begin your post in a cohesive, non-contradictory manner.

      I wouldn't work for him. Years ago I worked for a manager who asked you to do specific things based on his understanding of what the company wanted (and he wouldn't give you the full picture), then when it turned out to be wrong berate you for doing what he said. Sounds a lot like this guy. Never again.

    8. Re:Call me crazy, but I digress. by idbeholda · · Score: 1

      I wouldn't work for him either. Hell, if a manager isn't willing to give the development team a clear picture of everything that is needed, then they don't need to be a manager in the first place. Instead, they should be sending faxes and remedial officework. Unfortunately, in any industry, people tend to rise to level of their own incompetence.

  25. The emperor has no clothes by Anonymous Coward · · Score: 0

    Why would anyone adopt the "style" that was used to create the Ribbon Interface? Total absurdity!!

  26. Fair enough by jedwidz · · Score: 1

    Erm, so the argument is that something that is considered poor style shouldn't be mentioned in a style guide? Doesn't hold water I'm afraid.

    Whether or not it's obvious isn't even relevant. The point of the style guide is to prescribe good style. It's obvious you shouldn't drive your car on the sidewalk, so why have a law against it?

    What's more, the question of how best to refer to the user really is of interest to developers who weren't itching to type 'bitch'. Some likely options:

    • you
    • me (as in 'My Computer', thx M$)
    • user
    • dear user
    • don't - always use an imperative with 'Please'
    • by name
  27. Has McAllister met any programmers? by jsac · · Score: 1, Insightful

    'Occasionally, Microsoft's recommendations verge on the absurd. For example, you might not think it necessary to admonish developers to "not use slang that may be considered profane or derogatory, such as 'pimp' or 'bitch,'" but apparently it is.'

    IT skews dramatically male, and those men skew dramatically towards the socially inept. Making explicit rules about not using profane or derogatory slang in your UI is completely appropriate.

    --
    "The urge to fly from modern systems, instead of moving through them to even greater, fairer things is, I think, an indi
    1. Re:Has McAllister met any programmers? by bussdriver · · Score: 1

      It is not likely 'pimp' would be used; however, my disagreement is not literally those words but that the ones that best convey meaning to the users who actually use the software may not be mainstream. A niche product with a specific demographic may use different metaphors than the mainstream or that of the developer.

    2. Re:Has McAllister met any programmers? by Anonymous Coward · · Score: 0

      This is about a style guide for software engineers not IT. If there are engineers that have to be told to keep profane language out of a UI, there is something wrong with the engineering department -- or maybe management if the engineers are so upset.

  28. Re:If it's in the Style Guide, it actually happene by evilviper · · Score: 0

    So, if MSFT had not mentioned avoiding "'pimp' or 'bitch"; someone raised in an environment where that was ok - (looking at you, teens and young twenty-somethings who grew up saying "That's Gay" when you meant wrong, bad, or odd) may not fully realize the problem with borderline and unacceptable language.

    That's retarded... You and your Political Correctness police can go to hell.

    If you want language guidelines, the proper thing to do is just state that ALL SLANG IS VERBOTTEN in business environments. Problem solved.

    The other problem is non-native speakers. You can only do so much to protect them from themselves. Now if you'll excuse me, I've got to go do the needful...

    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  29. As it happens... by Anonymous Coward · · Score: 0

    I'm doing some .Net code for one of Australia's main agricultural shows and when working on the dog judging reports I regularly write code like GetBitches(int showYear, int sectionID)....
    Don't tell Redmond

  30. 101 by scurvyj · · Score: 0

    Nah, MS progs just need a copy of Programming Basics 101, then they might finally make something secure, fast, and that doesnt need 3 gig of ram just to produce a gui. Style guides are for *advanced* programmers, not beginners.

  31. With good reason by Anonymous Coward · · Score: 0

    Sadly sometimes you do need to remind people not to use certain terms in their programs or documentation. I recall one fellow submitting material in which he displayed the text "like an acid trip". When I pointed out that might not be an appropriate description to put in he agreed and made the edit. It's a good idea to have these policies on hand just for those moments when people get carried away.

  32. Re:If it's in the Style Guide, it actually happene by DontScotty · · Score: 2

    It's not MY political correctness police.

    These have become social norms. Norms, that you are FREE to violate. However, violation may come at a cost.

    If you are self-employed, you may lose customers.
    If you are an employee, you may lose your employment.

    I've LOST positions due to language issues/barriers. I'm pretty sure other people have as well.

    Much the same way as "http://hothardware.com/News/Tweet-Your-Way-to-Losing-a-Job-Offer/"

  33. The Hungarian Notation/System Notation Fail by GodfatherofSoul · · Score: 1

    Hungarian notation is this ingenious little recommendation for naming your variables to describe the expected contents of that variable when the type won't do. So, if you have a std::string field containing a hex version of a GUID, you might name it guidAsHexChars. Microsoft took Hungarian notation literally to mean naming it after the type. So, you've got a lot of redundantly named variables like guidString.

    --
    I swear to God...I swear to God! That is NOT how you treat your human!
    1. Re:The Hungarian Notation/System Notation Fail by Livius · · Score: 1

      Hungarian notation made sense in the context of its original purpose, which was consistent naming in code that mixed assember and C.

      Of course, it's a horrible brain-damaging handicap everywhere else.

    2. Re:The Hungarian Notation/System Notation Fail by Anonymous Coward · · Score: 0

      Might be important to note that the term "Hungarian notation" was developed by a particular developer of Hungarian descent as he worked at Microsoft, Charles Simonyi, and was used quite extensively in the development of Word and Excel. It was later adapted by the Windows team to also apply to specific forms of data types that were more general purpose but still semantically different, e.g. "h" for HANDLE and "dw" for DWORD despite both being aliases to the same underlying data type. Seems it got to stupid when it made it back around to the languages teams who took Systems Hungarian and applied it to compilers where it didn't make sense, particularly Visual Basic and Visual FoxPro. Microsoft has long since dropped "System Hungarian" notation in their naming guidelines except in particular cases such as "I" for interface and "p" for pointer and uses Polish Notation in many other scenarios such as Something Exception or Something Button.

    3. Re:The Hungarian Notation/System Notation Fail by Anonymous Coward · · Score: 0

      The original idea was to present the type of the content, not the type of the variable. Like, if you are writing a word processor, you'll be dealing with X and Y coordinates all the time. The idea was that rather than calling these X and Y, they should be called scrX, winX, docX, pagX and so on. This is called "Applications Hungarian".

      When the application group at Microsoft sent out a memo about this idea, the systems group misunderstood the word "type" to mean the type of the variable. This is called "Systems Hungarian".

  34. It's simple really... 2 rules, 2 things to avoid. by gestalt_n_pepper · · Score: 4, Insightful

    1) Software is a conversation. Be polite.

    2) Software is a servant, not an equal or a master. Software is the waiter. Don't put behavior in your software that you wouldn't accept in a restaurant.

    The most aggravating and common user interface fails to avoid are:

    1) Interruptions (e.g. Microsoft dialogs telling you updates have been installed, as if you give a rat's ass, refreshing a window or dialog that doesn't appear to need to be refreshed, being too helpful and hovering like Clippy).

    2) Being ignored (Clicking or typing on screen and watching nothing happen).

    There are, of course, many other transgressions, but most of them can be addressed by thinking through a restaurant example. If the waiter came and rearranged your dishes and silverware in the middle of your meal, you'd be furious. If the OS comes in and rearranges your screen while you're working, taking away your focus, you'll be furious. If the waiter keeps ignoring you or is slow, you get angry. If the OS keeps ignoring you, or gets slow, you get angry.

    There are thousands of things you can do to improve an interface, but miss this stuff and you fail.

    --
    Please do not read this sig. Thank you.
  35. Re:If it's in the Style Guide, it actually happene by smellotron · · Score: 2

    (looking at you, teens and young twenty-somethings who grew up saying "That's Gay" when you meant wrong, bad, or odd)

    Hey, that's me! I kicked the habit cold-turkey when a gay coworker hired on. I still occasionally have trouble with "retarded", and South Park certainly doesn't make it easier.

  36. Re:If it's in the Style Guide, it actually happene by russotto · · Score: 3, Interesting

    while the derogatory terms etc may seem obvious, there are plenty of less obvious mistakes that people fall into.

    And sometimes not-mistakes. As some of the executives of a company I once worked for had to explain away (to a female user working for a major customer, naturally) an error box written by an ex-employee by claiming it was simply an unfortunate typo for "count error".

  37. Re:If it's in the Style Guide, it actually happene by NevarMore · · Score: 1

    Since then we have had to rewrite a lot of that to use far more boring errors.

    Why didn't you rewrite the code to not produce the errors in the first place?

  38. Re:If it's in the Style Guide, it actually happene by R3d+M3rcury · · Score: 1

    Reminds me of a story from way way way back. Supposedly, part of the copy-protection scheme for Lotus 1-2-3 for DOS contained an invisible file named SATAN.666. Again, an invisible file that no one would ever see.

    When PC Week or some other magazine mentioned this in an article, various churches who used the product were quite upset. I believe Lotus sent the complainers new versions of the software with the file removed.

    I know, personally, I had one of those dialog boxes that a user should never see which had a "Shit" button. The only user that I ever heard of seeing it, unfortunately, was Jean Louis Gassee when we were doing a demo at Apple.

  39. Re:If it's in the Style Guide, it actually happene by bloodhawk · · Score: 1

    ahhhh I see, so rather than show an error when the WAN link has become unavailable or the remote link to an external organisation that we don't control isn't working or even when a server has failed we should rewrite the code to just... do nothing?

  40. Too late by lennier1 · · Score: 1

    They already have one, but it doesn't really go beyond them trying to cram that ribbon bar into everything.

  41. Death by Rules by Rich0 · · Score: 1

    I've seen similar things on a FOSS development mailing list. People who program computers by defining algorithms try to program people by doing the same thing. The result is:

    1. Millions of crazy rules that are obvious.
    2. Nobody can keep track of the rules and as a result they get broken a lot leading to flames.
    3. Tons of effort gets diverted towards rule-maintenance and enforcing relatively unimportant rules.
    4. When somebody does something dumb people flock to their defense if it didn't violate the rules.

    The same problem creeps into organizations that are run by lawyers - the legal system is like one big computer that tries to churn through rules.

    Small innovative companies survive by having strong founders who aren't afraid to ignore the rules. If somebody working for them messes up they get called for it or booted - and since they probably don't have deep pockets yet they can often get away with it.

    So, if you wonder why MS has a rule about not using 4-letter-words in UI elements, chances are some idiot stuck one in, and then when their boss tried to ream them out for it they quoted the rulebook and pointed out that they didn't violate anything. So, now we have a rule.

    No matter how much you idiot-proof a system, somebody will design a better idiot...

  42. Re:If it's in the Style Guide, it actually happene by wvmarle · · Score: 1

    You never know what may offend someone. It's unpredictable. Like Arthur Dent who accidentally caused an intergalactic war with the words "I wouldn't want to go anywhere without my wonderful towel".

  43. Hear this all the time by Anonymous Coward · · Score: 0

    I work with a team of .Net developers who seem to spend all of their time arguing about naming conventions, what namespace to use, whether something is a noun or a verb, etc. I'm not a "software engineer," but I have written my share of software without this ever being the majority of my time. I think this problem may be more common with people who are writing code for the sake of writing code rather than making software that solves a user's problem. I think it's a defense mechanism so they can avoid admitting that they don't understand what they've been asked to do. If my suspicion is accurate, these guys are doing the profession a disservice and should consider a new line of work.

  44. Ob. scenario: by Tastecicles · · Score: 2, Funny

    Clippy: "It looks like you're trying to pimp your presentation. Would you like some help with this?"

    Options: "Yes. Show me how to pimp my document!"
      "No, fuck off you annoying little shit!"
      "If I have to turn you off in the options again I'm gonna bitchslap my laptop!"

    --
    Operation Guillotine is in effect.
    1. Re:Ob. scenario: by MadKeithV · · Score: 1

      Actually, changing clippy into a scantily clad young lady crawling around on the hood of an expensive powerful car while doing absolutely nothing useful would:
      a) Not actually change the functionality of clippy.
      b) Probably appeal to quite a lot of the younger "R&B" demographic. Including girls. Though I can't for the life of me understand why.
      Now get off my lawn.

  45. Improving the Microsoft Experience by manual_tranny · · Score: 1

    Indeed, I did not expect "pimp" or "bitch" from Microsoft developers. I guess they're getting the best and the brightest, these days. #sarcasm On the other hand, Windows 7 is pretty boring and it feels like I paid an awful lot for an OS that is no better than Windows 2000. If only it came with some entertainment... a "pimp" or "bitch" button would really help me feel connected to my computer.

  46. Obligatory Dynamite Hack reference by Anonymous Coward · · Score: 0

    So "(Pimp)this.reachBack().slap(this.theHoe);" is not an appropriate statement?

    An homage to "Boyz in the Hood." See the Dynamite Hack interpretation of the original. ;-)

  47. Liverpool playing at home by Hognoxious · · Score: 1

    What you say is true but irrelevant. IDE is largely obsolete so USB is an example more familiar to the target audience. In addition, the precise details of the incident are outside the scope of the document - which, may I remind you, is about UI guidelines and not the history of technology and its influence on the civil rights movement. It was mentioned just to illustrate a principle.

    Got the painters in, have you?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  48. I guess my ebonics version of clippy is out then by Chrisq · · Score: 1

    I guess my ebonics version of clippy is out then:

    "Hey bro, youse seems to be trying to slap some bitchin' screed"

  49. Re:It's simple really... 2 rules, 2 things to avoi by Chrisq · · Score: 2

    2) Software is a servant, not an equal or a master.

    Can we talk about this, Dave?

  50. A Guide to Microsoft UI Design by Patchw0rk+F0g · · Score: 1

    Step 1: Offer a new software function.
    Step 2: Wait for two new generations of the software to be released, and the function mainstreamed.
    Step 3: Remove the function.
    Step 4: See how many bitch.
    Step 5: Don't reinistate the function. The little geeks will just work up a kludge on their own.

    --
    When the going gets weird, the weird turn pro. ~~ Hunter S. Thompson
  51. Art of programming by jellomizer · · Score: 4, Insightful

    Software development is a form of art where Math/Logic/Science/Engineering are our mediums to work with. Being an art form the software developer feels the need to express themselves in their program, in one way or an other.
    However much like real artists in order to make a living they need to do a buch of commissioned work where you need to make what the boss wants and your personal style is limited. And as you get more artists on a project you need a style guide to make sure the project is consistent.
    GNU projects often lose a good UI compared to their closed source counterpart because each artist is making their own statement in the program. I find that the GIMP does this. Now this isn't a flaw in the GNU but a good GNU project needs the same oversite and rules a good closed source solution needs, and often much earlier in the process because open source you get a lot of people doing a little bit of code, while closed source you get a few people doing the bulk.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  52. Re:If it's in the Style Guide, it actually happene by TheRaven64 · · Score: 1

    There are even more subtle examples. I'm not sure if it's still there, but one of the examples from the old Mac HIGs was the owl. In most European cultures, it is associated with wisdom, so it makes a good icon for a help system. This, however, is not universal and in some places owls are associated with the occult and with evil. People in these locales generally won't expect to click on an owl when they want help, unless it's to curse the idiot who designed the UI that is confusing them.

    --
    I am TheRaven on Soylent News
  53. Mozilla Firefox "Well, this is embarassing." by Blaskowicz · · Score: 2

    I remember being infuriated by this message, it's meaningless and too casual. It doesn't provide any information as to the cause of the error nor does say "unkown error". It makes me wonder whom is it embarassing for. Me? Mozilla? Firefox itself? Does it mean "we're sorry for you using such crappy software"?

    I wonder about how this message is perceived in company/corporate settings. It's an exemple of bad writing style to me. You've crashed, don't try to be familiar or funny about it.

    1. Re:Mozilla Firefox "Well, this is embarassing." by Anonymous Coward · · Score: 0

      I remember being infuriated by this message, it's meaningless and too casual. It doesn't provide any information as to the cause of the error nor does say "unkown error". It makes me wonder whom is it embarassing for. Me? Mozilla? Firefox itself? Does it mean "we're sorry for you using such crappy software"?

      I wonder about how this message is perceived in company/corporate settings. It's an exemple of bad writing style to me. You've crashed, don't try to be familiar or funny about it.

      You may need to lighten up a bit. Or a lot.

    2. Re:Mozilla Firefox "Well, this is embarassing." by pr0fessor · · Score: 1

      "Something very bad happened!" I've seen avg throw that error when one of the settings files became corrupt and it was unable to read or write to it.

    3. Re:Mozilla Firefox "Well, this is embarassing." by Anonymous Coward · · Score: 0

      But it does not necessarily mean that Firefox crashed, however. The same message, appears, for example, if your computer suddenly loses power, or the operating system crashes due to something entirely unrelated. I only see that message rarely, and it's usually not Firefox itself that unexpectedly halted, it's the environment it's in.

      For these reasons, it's impossible to say anything more specific than "uknown error". Execution halted, but whether that was because

      • the browser crashed
      • the OS crashed
      • the computer shut down unexpectedly
      • a user manually sent a non-graceful "end process" signal
      • some other software sent a non-graceful "end process" signal

      is something Firefox simply cannot know.

  54. Re:If it's in the Style Guide, it actually happene by marcosdumay · · Score: 1

    That's the way everything seems to behave on windows.

  55. Microsoft isn't the only one who needs help by smooth+wombat · · Score: 1

    Just found out today that you have to enable javascript to be able to see your account settings. In the past, this worked perfectly to change the threshold of posts if you have mod points.

    Now, either a programmer or web designer, or both, was allowed to futz with the design of a web site when they had no reason to do so, a violation of Rules 1 and 2 of IT That Should Never Be Broken.

    The continuing downgrading of functionality of this site is getting bad. Simplicity is the key. There was no reason to add bells and whistles. There was no reason to make things more inconvenient for the user.

    This is why programmers and web designers should never be allowed to design applications or web sites. They should be told what to do and not left to their own thoughts as to how things should be done.

    --
    We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
  56. So instead of a BSOD ... by Anonymous Coward · · Score: 0

    Microsoft style will show you the 'Windows is rebooting to install updates" screen instead ?

  57. Re:If it's in the Style Guide, it actually happene by Anonymous Coward · · Score: 0

    You never know what may offend someone. It's unpredictable. Like Arthur Dent who accidentally caused an intergalactic war with the words "I wouldn't want to go anywhere without my wonderful towel".

    No no no no no!

    If you are going to quote Arthur Dent and HHGTTG on /. you need to get it right.

    "I seem to be having tremendous difficulty with my lifestyle." is the correct quote that started an intergalactic war.

    Sheesh!

  58. style guide by Anonymous Coward · · Score: 0

    Yeah. What Microsoft needs to do first is to STOP making absurdly complex, undocumentable Rube Goldberg machines like WPF and XAML.

    Then we can talk about a "style guide".

  59. Re:It's simple really... 2 rules, 2 things to avoi by TuringTest · · Score: 1

    Where are the mod points when you really need them?

    --
    Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  60. "asss" isn't "asdf" - it's called Legal department by Anonymous Coward · · Score: 0

    Having once used "asss" as some dummy text in a project for a multinational client ( it randomly fit well into the copy and was mistakenly presented to the VP ) - I can tell you it causes a lot of headaches for the people who aren't developers and have to explain it.

    The "silly" parts of style guides (having worked with them many times) tend to be those written by the legal departments. They're silly because big companies are targets and they have to be careful of what they do. I think everyone on this site thinks copyright laws often are silly when it comes to technology and Microsoft is a big target.

    The rest of the points are just like any style guide: in coding/development they're called "best practices" or "design patterns" and it's not a bad thing. Read Knuth again - 1/4 of it is a style guide.

  61. Re:If it's in the Style Guide, it actually happene by maestroX · · Score: 1

    error box written by an "ex-employee" by claiming it was simply an unfortunate typo for "count error".

    That's not unfortunate, you're j-j-j-just h-h-h-handi-capable... very much