September 15, 2006
Is it really necessary to qualify everything in Windows Vista with the "Windows" namespace?
Hey, guess what operating system this is!
At least the Vista start menu lets me do a containing search, so if I start typing 'fax', the menu dynamically filters itself to show only items containing what I typed. The revamped Start menu is one of my favorite Vista features; it directly addresses XP's abysmal start menu user experience.
But still-- what's with all the Windows noise? Wouldn't that list be so much easier to navigate if we deleted the words "Microsoft" and "Windows" from each entry?
I'm sure the very suggestion of dropping those key branding words will drive the marketing weasels apoplectic. But who's more important? The users, or your marketing weasels?* Repeated words, if they're repeated often enough, are just babbling noise.
I have a similar problem with the add reference dialog in Visual Studio.
Unfortunately this dialog does not support containing search-- only "starts with" search-- so it's a royal pain to find what I need. This is a concrete example of how unnecessary namespacing hurts usability. Thank goodness the System namespace is actually named System and not "Microsoft.Windows.dotNet.System".
* a rhetorical question.
Posted by Jeff Atwood
Maybe there's a registry hack you could apply to change these names?
Maybe search a given node for %Windows% and %Microsoft% and replace them with "" ... just a thought.
I agree that the "Windows" and "Microsoft" everywhere is messy and looks pretty bad when you're trying to sift through the menu, but I also agree with [ICR] who points out that you need some way of differentiating the "Windows" Calendar with any other calendar that you download.
The generic name "Calendar" would be pretty ambiguous if you have more than one Calendar program installed. The same way "The Internet" refers the default browser on XP, whether it's IE or Firefox, "Calendar" should point the default Calendar program, whether it's Windows Calendar or something like Mozilla Sunbird.
Or maybe the start menu should only contain generic entries like "Calendar", "The Internet" or "E-Mail".
Other than that, the only way to differentiate the Windows brand of application from any other is to come up with a non-generic term for all those apps, exactly like Apple's done with "iCal" and "iDVD" and "iTunes".
Can't you just right-click each name and rename them without the Microsoft/Windows banding, if it bothers you so much?
"Can't you just right-click each name and rename them without the Microsoft/Windows banding, if it bothers you so much?"
That's all well and good (but annoying) in Windows, Jim, but doesn't help us at all for references in Visual Studio.
But "containing search" definitely helps in Vista -- a definite MUST for future VS releases.
+1 to Skrud.
Perhaps the lack of a unique name hints at the severe lack of value-added for any of the applications?
Then again, this nomenclature might be useful. If one fires up the "Calculator" app, be it on windows, mac, or *nix, the expected functionality should be straight forward and bare-bones. So too should the "Calendar", "Email", "DVD Player" be strictly no-fluff applications. Then, the value-added shiny things can be packaged in with the better named applications.
Office 2003 has been like that since it came out. You go into Microsoft Office and you see Microsoft Word 2003, Microsoft Excel 2003. You already pointed out the .NET assemblies. It's been coming for a while with the way the namespace works. Most companies with many applications have a tendancy to do this for suites of products.
If they ever figure out a way to get the applications to come up on short keywords then they will rename the filenames too.
Then they could track trademark infringement more easily. ;)
The theory goes that if they didn't stick the company name in everywhere, you'd never know that Word was made by Microsoft. There might be some truth in this, as you note that both WordStar and WordPerfect renamed themselves after their products after a while. This was one of Steve Ballmer's ideas, so don't expect it to change.
Whose idea it was to put WPF in 'System', the same top-level namespace as the BCL, I don't know. Idiots. Same idiots who think it's a good idea to call WPF+WCF+Workflow '.NET 3.0'. There's already plenty of confusion on the message boards. 'I won't switch to .NET 2.0 now, I'll wait for .NET 3.0'. Doh!
Actually, Office 2003 is worse. Every installation I've seen prefaces its Start Menu shortcuts with Microsoft Office -- so you have Microsoft Office Word, Microsoft Office Excel, Microsoft Office Outlook, etc. You have to skip over 17 characters before you hit one that tells you anything about the application you are about to run.
Flamebait. Obviously Microsoft is not the only one with a product called "Update". The additional keywords are necessary to distiguish built-in features from 3rd party apps.
I've got to agree with [ICR] and Skrud. It's annoying, but it serves the purpose of disambiguating the bundled apps from anything else out there with similar naming.
The Apple iFoo model Skrud suggested might work, although it would probably be about 8 seconds before a third party released some app that followed the naming convention, leading people to think it was an MS app and blame any foibles on MS, whereas nobody else can legally use Microsoft or Windows in their names.
I think it also provides valuable disambiguation for assembly naming. Let's say you took off the Microsoft, and then you're left with an assembly called "Build.Tasks". Well, what program is that from? NAnt? Visual Studio? Eclipse? Some architecture software I've never heard of? Presumably everyone else would retain the company prefix for disambiguation, so maybe it's an assembly called "Tasks" from a company called "Build"? Gee, that's really confusing, I ought to complain to Microsoft about their confusing naming practices!
Sorry Jeff, MS got it right this time.
youngin: when I look for a pad of paper, I look for a pad of paper, not a Mead 5 Star. When I want a hammer, I generally want a hammer, not a Stanley Antivibe Clawhammer. There _are_ occasions that I look for those particulars, but I tend to think in generalities when it comes to my tools.
The one thing XP got right was the setting of default applications on the start menu, so you can direct a user to "Email" or "Internet" at the top of the menu (although "Internet" is a terribly poor naming choice for web browser--email is on the 'net too).
Anyways, I don't think it's necessary for applications to be so over the top with their entire names. For many people I help support I encourage them to rename the shortcuts to things they can easily remember, based on what the tool actually does (weren't icons supposed to solve that issue?).
"(weren't icons supposed to solve that issue?)" From way back when I wrote code for the first mac I remember an anecdote reported by a mag reviewer: during a demo he was confused by an icon and the developer said, "yeah, that's the tools icon and we haven't fouund a good graphic, can you suggest one?" whereupon the reviewer printed on paper "TOOLS!"
Words light up the pictures already in your head and in the case of the start menu I suspect the lawyers at least had the picture of standing before the anti-trust judge trying to explain why their Calculator didn't have to be the only Calculator.
"I think it also provides valuable disambiguation for assembly naming. Let's say you took off the Microsoft, and then you're left with an assembly called "Build.Tasks". Well, what program is that from? NAnt? Visual Studio? Eclipse? Some architecture software I've never heard of? Presumably everyone else would retain the company prefix for disambiguation, so maybe it's an assembly called "Tasks" from a company called "Build"? Gee, that's really confusing, I ought to complain to Microsoft about their confusing naming practices!"
The naming isn't the problem. The inability to find anything quickly is. You'll notice that's what Jeff complained about, the naming only highlights and exacerbates the problem. (Besides full-text search, heigharchial click-through, similar to how ebay does it, would help.)
Jeff, have you tried renaming them?
Open source has the same problem -- it really annoys me how just about every app written for KDE starts with 'k'. KOffice, kmail, konqueror make my eyes bug out when I'm trying to find the app I'm looking for. Apple is sort-of guilty with their 'i' apps, but at least they reserve the 'i' designation for their consumer-grade apps and don't do it for their "pro" apps like Final Cut and Aperture.
Not only does Microsoft do the already mentioned "Microsoft Office Xyz" naming convention, but they also make all of the Office icons look almost exactly the same -- a square with something round in it. If you have small icons set on your start menu, or use the "New " right click menu on the desktop, you really need to squint to know which app you are choosing.
It is important to know that it is the windows version of microsoft paint you are running, could be a linux/mac ve.. ehh wait, nevermind.
I've always found the lack of searching for namespaces a real problem. And I guess one argument for the Windows branding is that they've chosen quite generic names, so what seperates "Calander" from another "Calander", but "Windows Calander" and "FooBar Calander" are obviously different.
I totally agree.
Usually, user can type the first letter of the item he wants to select in that same kind of "ListView". Unfortunately, it is not possible in the .NET Assemblies dialog, except by typing "M" as many time as needed.
For the same reasons, I think twice before naming any variable with a prefix to make sure Intellisense wont bother me later the same way.
Have you passed on this information to MS?
While Vista is still in beta you might have a (slim) chance of having it fixed.
I agree with the whole start menu thing. I didn't know that was coming with Vista, but I found myself wishing XP had something similar yesterday only yesterday.
On the subject of namespaces, I'm okay with the Micro$oft prefix, as it does allow one to not sorry so much about competing for classnames.
@Ian T: MS knows, they don't care.
Maybe the reasoning behind the Windows prefix is so that people who own Macs and Windows boxes won't get confused when they see apps like Calendar and Mail and think they are in OS X instead of Windows? ;)
Well, once they load up an old application and their entire UI is jarred into "Classic" mode, they'll remember soon enough.
The first thing I'll do is trying to remove all those unnecessary Windows applications, for most of them there's a better alternative anyway.
Well, at least they didn't prefix it with "Microsoft Windows Vista..."
Hang on, excessive branding like in the start menu is one thing, but on the namespaces of the libraries - that means something. It separates 'Microsoft.IO' from 'My.IO'.
Totally agree about the start menu, though.
Windows Update is a good example, particularly since Microsoft now has a combined Windows/Office Updater named "Microsoft Update."
Now, as for names, there's a flip side right on the example picture: "Catalyst Install Manager."
Is that a manager for installing Cisco Catalyst, ATI Catalyst, or the Catalyst web framework? Or something else entirely?
This reminds me of a place I used to work. Not only did they use Hungarian notation (developing in VB .NET), but even for Hungarian, it was excessive. An object was prefixed "obj"; but a collection (being an object itself) was prefixed "objcol". Then they had the "m" for class-level variables. So in Intellisense you got a long list of crap starting with "mobjcol", and you had to type all those characters before you got to anything that actually _meant_ something.
(Pointless prefixing was, said to say, the _least_ of their problems.)
Like what pjabbptt said about KDE.
The K's in KDE are even more annoying as I'm attempting quite hard to just 'focus' and with the 'K' prefix it's hard to mentally search for an application you're looking for.
Type "readme" or "manual" after installing a bunch of programs and you'll quickly understand why the "search everything" model isn't working very well.
How would you know what document belongs to what program ?
I think this method is actually a step back, it's a nice feature but the old fashioned XP folding out program menu should be there as well, right now in Vista we have the "new" scrolling menu which is impossible to find anything in and then the classic menu which is really ugly on Vista.
Typing to find documents and applications reminds me a lot of old commandline based systems, in a way this is a step backwards and not forward, it's a good side feature but should not be the main way of finding stuff.
The example linked to is typical of the 'let everything fall where it may' attitude, but it's like complaining that a house is badly designed because you didn't tidy your bedroom and left junk all over the floor.
You can tidy and redesign your Start Menu to suit your pattern of thinking and workflow in any way you please, and when you do it works just fine.
My Start Menu in XP is elegant, to the point, and simple to use, and can be navigated much faster than the Vista Start Menu.
I have full development suites for Office, SQL Server and .NET, a recording/mixing suite, a photographic suite, and a 3D graphics suite with all the bells and whistles and key utilities. Yet, it is not anything like the mess depicted in the linked article.
But, I agree, for the beginner who hasn't yet learned how to customise the Start Menu, the naming convention in use is horrible.
Regarding the Start menu: I agree with deleting the "Windows" noise everywhere except maybe Windows Update--it's useful there, as the program actually updates Windows.
As for namespaces, there's no good way to shorten them. It's an unfortunate fact of life in the Java world too, where package names (the Java equivalent of namespaces), by convention, are supposed to start with the company's domain name, in reverse, e.g., com.microsoft.system... Makes for some very long namespaces.
I think the best that can be done is to offer good search (as-you-type, full string) wherever a huge list stuff appears in a UI.
Yeah, like they always put "ms" before every possible dll file. e.g. mscoree.dll
Yes!!! Namespaces are evil!
Let's use 'global' namespace for everything.
Yes!!! Classes are evil!
Let's put everything in one class.
'Jeff Atwood' had a baaaad day...
I'd be interested in seeing what benifits in finding the app you want in several formats: The normal Vista format, without the "Windows" words, "(Windows)" appended, and all of the above without icons.
Whilst it's almost impossible to navigate a list like that based on icons (most people think in terms of the name of the program they are finding, it takes a lot of training to think in terms of the icon) the icons help as a secondary clue. With the "Windows" prefix, the list of names you are actualy looking down is further from the icon and thus the icon seems to have less of an influence. Also looking at it with "(Windows)" appended, and maybe even a shorter prefix, helps determin how much is positioning and how much is visual noise. Doing it without icons helps tell the same.
he revamped Start menu is one of my favorite Vista features
I cannot say the same (I don't like the new menu).
Maybe because I hated the XP Start menu and never used it (and, in general, the first thing I do in XP is switch to "Classic mode" :-)
Whine, whine, whine...
Did you forget the 'good ole days' when we had a black screen with green letters and $ or or a _ or a ! or a ] staring at us?
When you 'HAD' to type everything into it and hope that it was spelled or misspelled correctly?
How soon we forget...
As far as coding namespaces, at least Java confines most system stuff to ttjava.*/tt and ttjavax.*/tt. ttcom.sun.*/tt names are thankfully few and far between.
Microsoft definitely wins the narcissism contest
I think John's right on the money in his assessment.
Personally, I also agree with Jeff's rhetorical implication that it's the market-mousketeers who are to blame for the eventual babbling noise we have to endure. Yes I can change the text myself, but I don't think this particular matter should be a question of personal taste...let the marketers change *their* menus to add their own names to the front if they want.
As far as namespace disambiguation...that's a tough one. Perhaps including the vendor/author name as a component of the assembly name (a bit like version and culture, though optional)?
[tongue_in_cheek]And stop picking on the command line! At least learn how to use the Tab key...it may not support synonyms, but it goes a long way toward preventing carpal-tunnel syndrome...[/tongue_in_cheek]
Although this article wasnt really about the new menu let me continue the argument I made earlier.
These are the main issues as I see it:
o Hard to find specific documents or applications that are using the same name. I guess this might be solved in the future by some meta data that the search picks up but it will take a long time until everything uses that.
o You have to type the language the program name is in. This may not sound like a problem but think about it, someone with a chineese keyboard has to write "ThisApp" with latin characters because that's the name the guy that wrote it gave the program, with a shortcut on the menu all they have to do is click on it.
o You have to know what you have installed, while on a folding programs menu you can see it directly.
o You have to spell correctly, this may change in the final release but as far as I could see it did not correct spelling misstakes.
As I said, it's a nice added feature but to remove the folding xp menu and replace it with a scrolling programs menu because you think everyone will search instead is stupid, a lot of people have ordered program menus and can find stuff in half a second, now I have to type to find it or scroll in a useless list.
I don't know what the thinking is with this, I really hope MS throws in the XP folding program menu as an option in the remaining months up to release, it wouldn't be hard and it would make it much easier for people to switch.
I would much prefer to have "DVD Maker" rather than "Windows DVD Maker", but it wasn't my choice.
On the namespace side, the reason everything is in "Microsoft" or "System" is to lessen the possibilities of collision. That allows customers to have namespaces named "System" if they wish.
Another thing about vs and Windows in general... when will Microsoft discover resizable windows. I use the run dialog alot and C:\documents and settings\user\my documents\visual studio 2008\projects\blah doesnt fit in that stupid little window.
Windows has lots of usability problems, were all just too used to them to notice. I think the namespace selection thing should have been a searchable tree view, that way you can seperate your third party libs from your normal .net ones, web from winforms etc...
the windows is in front of them to keep them grouped together.
YOU CAN CHANGE THE NAME IF YOU WANT.
I'm not sure if it's really fair of some commenters to be comparing the search in Vista's start menu (or any search) to the old-style command line.
The problem with command lines is that they aren't intelligent, they don't understand synonyms, they can't detect a typo, and you have to get the grammar absolutely correct. And if you're typing a really long command and screw it up, you often have to retype the whole thing or hit the arrow keys 56 times.
Search is not the same thing. Think about Google. It corrects your typos. It doesn't care about grammar. You don't have to retype your query if you screwed up. It's not very good at context or synonyms yet, but then again neither is a menu.
I think that a lot of UI nuts are stuck on stupid. Not to say that they are stupid, but they're obsessed with the stupidest possible user, the lowest common denominator, the great-grandma who types with one finger, squints at 640x480 resolution, still looks for the "any" key, can't figure out the filesystem, and would give up in exasperation if they had to use a command line.
Fine, we still have those users, but they're a dying breed. We can't make any technological progress by designing everything for people who we think are afraid to type "cal" to look for the calendar. WIMP is great, but as information density grows, it just doesn't scale, as the XP Start Menu clearly proved.
Some tools like Launchy are actually very smart and can figure out that when you typed "msw" you were actually searching for "Microsoft Office Word 2003", or that "ps" is "Adobe Photoshop CS2". Does the Vista Start Menu search do this? Personally I think that's critical.
It seems to me the ability to disambiguate between a slew of generic applications Microsoft provides with the OS, and some particular one I choose to use is useful. May we can make the assumption that those icons all refer to microsoft programs if we haven't otherwise installed and configured other programs, but who knows...maybe they launch the configured "system default" application. There probably needs to be some continium of information...maybe through a popup or simply in a light grey postfix, derived from the executable's company/author metadata. I think getting rid of all branding could possibly be counter-intuitive. For example, I really do want to know which mail client is Microsoft's so that i can be sure to stay away from it.