Why Microsoft Developers Need a Style Guide 262
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.'"
Obviously it is... (Score:4, Funny)
You silly open source GIMP developers...
Art of programming (Score:5, Insightful)
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.
When loading a kernel module... (Score:5, Funny)
Cancel, or "pimp this bitch"
Re:When loading a kernel module... (Score:5, Funny)
I have an idea for the style guide (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!
Re:I have an idea for the style guide (Score:5, Funny)
I don't know, I found the chapter on EnterpriseInterfaceThunkClassEnterpriseGeneratorCOMParameterInterfaceThunk32 COM_Enterprise_Enterprize_ENTERPRISE very illuminating.
Re: (Score:3)
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.
Re:I have an idea for the style guide (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.
Re: (Score:3, Informative)
Re: (Score:3, Informative)
Re:I have an idea for the style guide (Score:4, 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.
Re:I have an idea for the style guide (Score:4, Insightful)
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.
Re:I have an idea for the style guide (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.
Re: (Score:3)
Re: (Score:3)
-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.
Re:I have an idea for the style guide (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.
Re: (Score:2)
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!
Re:I have an idea for the style guide (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?
Re: (Score:3)
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 poin
Re: (Score:3)
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.
Re: (Score:3)
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".
Re:I have an idea for the style guide (Score:5, 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, [joelonsoftware.com] 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.
Re: (Score:3)
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.
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:3)
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
Re: (Score:3)
Re:I have an idea for the style guide (Score:4, Interesting)
Rude words (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.
Re:Rude words (Score:5, Funny)
What if you are actually writing software for a pimp or dog breeding?
Re: (Score:3)
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. :)
Re:Rude words (Score:5, Funny)
Re: (Score:3)
What if you are actually writing software for a pimp or dog breeding?
Use string variables.
They are bad at naming things. (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.
Re: (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 [xkcd.com].
Re:They are bad at naming things. (Score:5, Funny)
Re: (Score:2)
Re: (Score:2)
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."
Re: (Score:2)
Re:They are bad at naming things. (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.
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re:They are bad at naming things. (Score:5, 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.
Re: (Score:3)
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.
Bad title (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.
Re:Bad title (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.
Re: (Score:2)
Wouldn't that be why it's for sale, instead of remaining, say, a Microsoft internal document?
Re: (Score:2)
I believe the parent was wondering why they are offering it for a price, rather than for free.
Re: (Score:3)
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.
Re:Bad title (Score:5, Funny)
Re:Bad title (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.
Re:Bad title (Score:5, 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 [microsoft.com]? Or Windows XP [microsoft.com]? Or this tome for Windows 98, 2000 and XP [microsoft.com] (which was also available in book format [amazon.com])? And I have this one for Windows 95 [amazon.com] 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).
Re:Bad title (Score:4, 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.
Master/slave (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 [snopes.com]. Are you really a tech writer?
Sincerely,
Suspicious
Re:Master/slave (Score:5, 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
Re: (Score:3)
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?
Re: (Score:2)
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".
Re: (Score:2)
Re:Master/slave (Score:5, 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 [wikipedia.org] seems to support my recollection of the timing.
The naming was certainly a promotional stunt, though.
Re: (Score:2)
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?
Re: (Score:2)
Considering it is still utilized in USB specification ( http://en.wikipedia.org/wiki/USB_On-The-Go [wikipedia.org] ), 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.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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 :)
Re: (Score:2)
Re: (Score:2)
That terminology originally comes from disk drive buses
He's obviously not disputing that, you're quite clearly missing the point.
Re:Master/slave (Score:4, Informative)
It's much older than that [historyoftechnology.org].
Re:Master/slave (Score:4, 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?
Re: (Score:2)
Dear Suspicious,
The first thing I'm going to do is dispense with this pseudo-formal fake letter writin
You may scoff, but style is everything (Score:5, 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.
If it's in the Style Guide, it actually happened.. (Score:5, 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"
Re:If it's in the Style Guide, it actually happene (Score:4, Interesting)
Re: (Score:2)
"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.
Re:If it's in the Style Guide, it actually happene (Score:4, Interesting)
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".
Re: (Score:2)
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?
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:3)
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.
Re: (Score:3)
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/"
McAllister's an ID10T (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.
Design patterns: alternate names (Score:5, Funny)
You may be familiar with design patterns [wikipedia.org]. Those in the know sometimes give them nonstandard names, such as:
There is a good reason for this... (Score:5, 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.
Dolt (Score:2)
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 [folklore.org]
Well.. If you were writing software... (Score:2)
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!
No other platform has a style guide? (Score:5, Informative)
https://developer.apple.com/library/IOs/#documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html [apple.com] ...
https://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/Intro/Intro.html [apple.com]
http://developer.android.com/design/index.html [android.com]
http://developer.gnome.org/hig-book/ [gnome.org]
http://docs.blackberry.com/en/developers/deliverables/36511/index.jsp?name=UI+Guidelines+-+BlackBerry+SmartphonesBlackBerry+Smartphones7.1&language=English&userType=21&category=BlackBerry+UI+Guidelines&subCategory= [blackberry.com]
http://docs.blackberry.com/en/developers/deliverables/27299/index.jsp?name=UI+Guidelines+-+BlackBerry+PlayBook+TabletBlackBerry+PlayBook+Tablet1.0&language=English&userType=21&category=BlackBerry+UI+Guidelines&subCategory= [blackberry.com]
http://wiki.eclipse.org/User_Interface_Guidelines [eclipse.org]
Yeah, its hilarious an unusual that Microsoft publishes a design guide for their OS because obviously the author didn't spend 5 minutes on Google...
Has McAllister met any programmers? (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.'
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.
Re: (Score:2)
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.
The Hungarian Notation/System Notation Fail (Score:2)
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.
Re: (Score:2)
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.
It's simple really... 2 rules, 2 things to avoid. (Score:5, 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.
Re: (Score:3)
2) Software is a servant, not an equal or a master.
Can we talk about this, Dave?
Too late (Score:2)
They already have one, but it doesn't really go beyond them trying to cram that ribbon bar into everything.
Death by Rules (Score:2)
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 ru
Ob. scenario: (Score:3, 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!"
Mozilla Firefox "Well, this is embarassing." (Score:3)
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.
Re: (Score:2)
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.....
Re: (Score:3, 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 nee
Re:Nobody is happy (Score:5, 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...
Re:Nobody is happy (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
Re:Nobody is happy (Score:4, 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:
Make sense?