Morons Building Software
October 6th, 2009 . by Andy (TANcast's #1 Ear-Rapist)Andy’s October of Suckage: Day 6
A bit over 4 years ago, Microsoft announced that they would be including a new document layout file format, later named the “XML Paper Specification“, with the release of Windows that would eventually be called Windows Vista.
The XPS format was intended to both compete with Adobe’s Portable Document Format in the field of a document layout (and for some hardware, the printer interface itself) and in some ways to replace the extremely long-in-tooth Windows Metafile/Enhanced Metafile format. Ars Technica has a trio of writeups on this battle, if you care to read more.
Microsoft did ship Windows Vista with XPS support, but they also included it in the .NET Framework version 3.0 for Windows XP users. This was a smart move, given that Windows XP users didn’t exactly flock to Vista (in fact, many people counted as “Vista owners” aren’t).
The easiest way to make .XPS files is with the “Microsoft XPS Document Writer”, which acts as a standard Windows printer and allows you to create .XPS files from any application that can print. Instead of spitting out a dead tree, you get a file that keeps your text and images exactly like you like and which can be taken to another computer/office/planet/plane of existence. Very handy.
As you can almost certainly surmise from this post’s title, it goes downhill from there…
The program Microsoft provides to open .XPS files is called, unsurprisingly, the “XPS Viewer”. This Viewer does not stand on its own; it requires Internet Explorer to host it and handle mundane things like rendering the page, scrolling, printing, and so forth.
The big bag of fail is that the XPS Viewer does not load IE when it starts: It loads your default browser and passes it the .XPS file to open.
If your default browser is not IE (and kudos if it isn’t), the browser will invariably ask you what the hell an .XPS file is and what you expect to do with it. Smarter browsers, like recent Firefox releases, will detect that .XPS files are associated with the XPS Viewer and prompt you to open the file in that program. When you do, the XPS Viewer will again try to pass the file to your default browser. Your browser will open a new tab or window for the incoming file, realize it doesn’t handle the .XPS extension, and again ask you what to do.
This will continue, ad infinitum, ad nauseam, until you do one of the following:
- give up on viewing the file
- run out of system resources because too many browser tabs/windows are open
- kill yourself in desperation
- stop trying to use the XPS Viewer and open the file in IE (which actually launches the XPS Viewer correctly)
It gets even better if you tell your browser “Don’t ask about these files, always open them with the XPS Viewer.” You will trigger an infinite version of the loop above until you manage to kill the browser.
Microsoft’s designers and testers apparently couldn’t imagine a machine that didn’t use IE. This is what happens when otherwise intelligent people act like morons.
There is an easy fix: forget the piece of shit XPS Viewer and get the stand-alone XPS Essentials.
Either that or else wait for Microsoft to stop assuming everyone uses Internet Explorer.
Thanks for reading the latest in a long line, continuing in the proud footsteps of Noah’s twin rants regarding Windows’ constant need to nag you and how software makers need to work on consistency, as well as my own rather onerous screed (posted to my old personal “journal”, copied here after we started TANcast) on what I think of Internet Explorer 6.
Before anyone wonders what pipe I was smoking, please note that the last link needs to be read in context. It was originally posted:
- almost 3 years after IE 6 was released
- over 1 year after Microsoft announced they had no interest in releasing further browser updates except with updated Windows releases (after they “cut off Netscape’s air supply” so effectively)
- over 1 month before Windows XP Service Pack 2 was released, which improved the ActiveX security model a little and added some ability to see what “helpers” were installed
- about 8 months before Microsoft announced IE 7, after they figured out what abandoning their users was costing them (in May 2003 they competed primarily with Mozilla Suite 1.3 which had 2.3% total market share; in February 2005 they had to contend with Mozilla Suite 1.7 and Firefox 1.0 which had combined market share almost 4 times higher and rising rapidly)
- almost 2.5 years before the promised IE 7 was finally released