On Unnecessary Namespacing

Is it really necessary to qualify everything in Windows Vista with the "Windows" namespace?


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2006/09/on-unnecessary-namespacing.html

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.
microsoft.office2003.excel.exe

Then they could track trademark infringement more easily. :wink:

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.