Vista Notes: the Gadget Sidebar

Okay, so where I work we've been putting off Vista uptake, waiting for the service packs to come out. I was hoping to wait for SP2, but definitely I didn't want to touch the thing until SP1 (which just arrived).

But after June, there is to be no more OEM XP, and no more retail XP either. Meaning, any computers we replace after that point, if they need to be Windows (which our library automation software requires on staff workstations, unless we want to use the ILS through remote desktop, which most of the staff probably don't want) will probably be Vista. In preparation for this... I, as TCG, need to have at least some familiarity with this turkey.

So late last week a new computer arrived, containing Vista. Which I am currently using as I type this. I've been taking notes, and I feel the need to vent, so I will be documenting some aspects of my experience here.

The first thing I want to talk about is the gadget sidebar. This was for me one of the most exciting features of Vista.

It's something Gnome and KDE have had for aeons, of course. (I know for sure that Gnome had already had it for a while the first time I saw Gnome, in RedHat 6.0. That was Gnome 0.x. I didn't see KDE until a while later (circa Mandrake 7.1), but when I did it did already have this feature. And we're still talking twentieth century here, back when the default web browser for both of said environments was Netscape 4.x. Konqueror didn't exist, and the Mozilla project releases up to that point had version numbers starting with "M" for "milestone". So yeah, it's been a while, and panel applets in Gnome and KDE weren't really a new feature even then.)

Nonetheless, it's a feature that OS X does not have, and it's an incredibly useful feature, at least potentially. Now, I already knew that Vista's implementation would not be as flexible as that in Gnome and KDE. Among other things, I knew that the traditional taskbar elements would not be reimplemented as gadgets and so would not be able to be positioned anywhere. As before, they're still locked in place. Similarly, the new gadgets cannot be positioned on the taskbar, only on the sidebar. And you can only have one sidebar. And it has to go on the side, not top or bottom. (From long experience using side panels on other systems, I can tell you that you will probably want it on the left, rather than the right.) All this I knew. (How did I know all this stuff? I've been acquainted with Windows since it ran on DOS, so by now I'm somewhat familiar with how Microsoft does things. Also I'd seen screenshots.) But despite these caveats I was still looking forward to the sidebar, because it's still a big step forward from what Windows XP provided in this area, (namely, squat), and it's still potentially very useful.

Of course, the first thing I wanted to do to the sidebar is resize it. The default size is preposterously exaggeratedly large, the size you would want it to be for a tradeshow demo so people can see it clearly as they approach your booth from across the room. For daily use, this is terribly impractical, because it consumes way too much screen space. In Gnome you can make any panel any size, down to like 12 pixels if you want (though in practice it's not very useful below about 24px on a modern display resolution). So I wanted to resize the sidebar. I suspect everyone who uses Vista will at one point or another want to resize the sidebar.

Only, it doesn't do that. Well, there's a third-party Sidebar Styler you can get that, among other things, is supposed to let you resize the sidebar. And it does, after a fashion. Specifically, it lets you resize the panel itself, i.e., the background. But the gadgets do not change size. At all.

Now, Gnome has a couple of badly-behaved gadgets that will not resize to fit a narrow side panel. (The RSS reader is one example of this.) Of course, in Gnome, you can put those applets on a top or bottom panel, where more width is available. And they're not really the most useful applets anyway, so even if you *only* use a side panel, you can pretty much live without those badly-behaved applets.

But on Vista, *all* the gadgets -- not just all the default bundled ones, but *all* the ones I managed to find -- do not resize. At all. (Well, some of them do expand and become even more preposterously huge if you undock them. Determining the practical usefulness of that particular "feature" is left as an exercise.)

So I can either let the sidebar consume some hundred and fifty pixels off the side of my screen, or I can turn off the sidebar. I suppose if I had the budget for a round of thirty-inch monitors for every workstation, capable of 2560x2048 or higher resolution, then this might not be such a big deal. As it stands a lot of our systems here at the library aren't even up to 1600x1200 yet, so the sidebar, if we want to use it, will consume 12% of the screen, or even 15% (at 1024x768, which is all some of the older LCDs can handle; no, we do not generally replace the display when we buy a PC; we replace it when the display dies). This realization was the first of several significant disappointments regarding the sidebar.

The second thing I noticed about the sidebar is no big deal, and in fact I rather expected it: the bundled gadgets are junk. I don't think there's a single one of them I would ever use. The clock is not only analog-only, but also takes up far more space than you would ever want to devote to something that basically just shows you the time. Its options are limited to one of about six skins, showing the second hand or not, and timezone. The calendar is even more underwhelming. It has no options whatsoever, it's orange, and like the clock it takes up FAR more space than it should. If you want both the time and date, with the default gadgets, you've used up almost 300 pixels of your sidebar's height right there, just for the time and date. The CPU meter looks cool for about fifteen seconds until you realize you can't actually tell whether your system is loaded or not by looking at it. And so on.

So the bundled gadgets are junk. As I said, I expected this. The purpose of the bundled gadgets is pretty much just to demonstrate the concept, and what you're really going to do is download gadgets that will actually be useful. I was pleased to discover that there's a readily accessible "Get more" link, which takes you to some kind of Microsoft-hosted gallery. This is not altogether dissimilar to the "Get Extensions" link in Firefox, a system that works *reasonably* well. In a few minutes I was able to find some extensions I would actually use: A CPU/memory meter that can actually be read at a glance, a digital clock, a current-date gadget that doesn't take up a fifth of the sidebar and isn't orange... I later replaced both of those with a single gadget that shows the date and the time, plus weather, in less than the space the bundled weather gadget consumes, much less the clock or date, much less all three.

Most importantly, I found something called App Launcher, which is exactly what you would hope it would be: a way to put launchers on the sidebar. Gnome and KDE treat launchers as first-class citizens on the panels, so you don't need a special applet to have the capability. But that's a detail. The important thing here is that I can now have launchers on the sidebar. This brings it much closer to parity with KDE's panels. (Gnome, of course, has drawers, which increase the usefuless of the panel to another level, but that's another discussion. And nothing's stopping a third-party developer from creating a drawers gadget for the Windows sidebar, though I didn't see one on my first trip through the gallery.)

Now, granted, the taskbar has had QuickLaunch since 1998. But the taskbar is so cramped for space that you can't really afford to put very many launchers in the QuickLaunch. Five or six is about all most people want in there, because every three of them consumes the space of one window on the task list, and the Windows task list already has way too strong a tendency to run out of space and start doing grouping and/or scrolling, which pretty much chucks convenience right out the window. Gnome and KDE let you put the menu and the notification area ("system tray" in Windows parlance) and the launchers all on a different panel from the task list, so that the task list has the full width of the screen. Well, now with Windows you can at least put the launchers on a different panel, namely the sidebar. The menu and system tray are still stuck on the taskbar, on either side of the task list, but at least the task list no longer has to compete for space with QuickLaunch as well.

So anyway, putting app launchers on the sidebar means you can easily have a couple of dozen launchers readily accessible. Which means you don't need to get to the desktop all the $#@! time. Which means you don't have to compulsively minimize everything constantly. This is a big usability win. Real big, in my estimation.

The next thing I noticed about the sidebar is that the much-hyped transparency in Vista is of quite limited utility. (This actually applies to more than just the sidebar -- the transparent window title bars, if you use Aero, have the same issues. But for the moment I'm talking about the sidebar.) On the one hand, making the gadgets mostly transparent does make them stand out less, which is nice, because it lets you focus on what you're doing and only look at the gadgets when you need them. Good. On the other hand, the main purpose of transparency in other contexts typically is to let you see through to what's behind, but the transparency in Vista does not really allow for this, because of the inherent blur. If someone knows of a way to turn the blur off so that the transparency can be actually useful, please tell me about it.

Also, the sidebar does not have a hide button. It can be turned off, and you can put windows in front of it, and a hotkey will bring it to the front... but to my knowledge there's no way to just quickly hide (and subsequently unhide) the sidebar. (This is particularly unfortunate in combination with the fact that Windows Explorer does not seem to be smart enough to avoid putting desktop icons behind the sidebar by default, although as I noted earlier with the App Launcher gadget installed the desktop icons are much less important than they used to be.) Also, maximizing a window causes it to cover up the sidebar. Given the non-configurable large size of the Windows Sidebar, that's probably for the best, but it's sure not ideal.

I should point out too that you can't position the applets where you want them. Well, you can arrange their order, but they always start at the top and work their way down, leaving the bottom blank if you haven't filled the bar. This is somewhat unfortunate, since there are certain kinds of gadgets one might specifically want to position at the bottom (e.g., directly above the Start button). This is not a big deal, though, and it's something that could be fixed in a later version without requiring gadgets to be updated. It is also worth noting that the sidebar fills the whole side even if you don't have it full. This is a good default, but there ideally should be an option to let it end where it runs out of gadgets. Again, though, this is functionality that could be added in a later version without requiring gadgets to be updated.

Despite the disappointments, I still feel that the gadget sidebar is one of the most exciting new features in Vista -- perhaps the most exciting one of all from a user's perspective.

I have more to say about Vista -- much more -- but I'll leave the rest for another post.

Seven Dates

In light of a couple of recent items in the news (see also slashdot coverage), I'm going to say a few words again about the Windows Seven Development Timeline, as previously discussed here.

First, let's get that story about the XPHE extension out of the way. This is actually official info, but it's nonetheless irrelevant to my timeline. Because of the way it only applies to special (ultra-portable) hardware, this extension would mean nothing for mainstream computers even if it included the pro edition, which it doesn't. Id est, this is not a story about Microsoft changing its operating system plans. Like most systems, the latest version of Windows requires beefier hardware than a several-year-old version. That's normal, and because hardware continuously improves it's mostly no big deal, though of course people whine about it a lot. (Remember DOS? It can run comfortably on a system with a single-digit-megahertz processor and RAM measured in kilobytes. XP isn't quite that old and lean, but it's older and leaner than Vista.) So this is just about ultra-portable hardware not being up to the specs of a modern desktop.

Now, on to the more interesting stuff: dates.

The soundbyte you keep hearing is "Sometime in the next year or so we will have a new version." That's from the horse's mouth, but the words "or so" are, IMO, rather telling. Microsoft presumably wants you to think, or at least hope, that "or so" means something like "plus or minus a couple of months", i.e., that the new version would be out sometime in 2009. But the words "or so" could just as easily mean "or two, or three, or more... you know, schedules change as things progress". Which IMO is probably what it will eventually turn out to mean.

CNET was told (by a MS representative, they say, and I have no particular reason to disbelieve that) "roughly three years from Vista's January 2007 debut". That would be 2010Q1, closer to two years than one from now -- and again, "roughly" is an important word. The person who's saying this knows, or at least suspects, that that date will slip (as all release dates tend to do, and not just at Microsoft).

So then, looking at my Windows Seven Development Timeline, there are a couple of different places this announcment might fit, though none are a very good fit. The 2011 Q2 announcement (predicting a release in early 2012) seems too close (that's a clear less than a year prediction, and this is more like 1-2 years). The 2008 Q2 prediction is a little far out, and in any case we really already had that one, over a year ago (yes, it was ahead of my schedule). So I think the current prediction identifies most closely with the 2009 Q4 prediction (second half of 2011), which is more specific than this one, but seems to be of the right general duration.

As best I can figure, that places Microsoft about six quarters ahead of my timeline, give or take (depending on how you interpret the technical announcements, and whether Dev Corvin has actual information or is just making stuff up). That's a year and a half! If this progress keeps up, Seven could have a shorter (real) dev timeframe than Vista did, which would bring my predictions up short (not that that would be a bad thing).

So now we're looking for some non-date announcements: something about security, something for developers, and something related to the internet. (Actually, all that talk about Live could potentially qualify for the last.) Those are listed for 2010 on my timeframe, so if they come in the next few months we'll definitely be ahead of schedule.

But let me be perfectly clear here: if Seven is actually available to customers in 2010, I will be absolutely flabbergasted. There's a reason my timeline shows the date being pushed back repeatedly. Six quarters ahead of my cynical schedule would ultimately mean release in mid-2015, and if they keep gaining quarters at that rate (six quarters off my timeframe for every five that pass) they could potentially make 2012. If they short-circuit the last couple years of my timeline entirely they could maybe even make 2011. But that's wildly optimistic. 2010 would mean they were meeting their own estimates, which as far as I'm aware has never happened in their entire history as a company.

Dropping Binary Compatibility With Previous Versions

Apple did this in 2000. At the same time, they also completely scrapped their old codebase, a move that was long overdue. The old Mac OS didn't have real multitasking, a sane framework for non-GUI programs, memory protection, ... in short, it was in much worse shape than Windows, technically speaking. Apple had concentrated totally on the UI, and that was not sustainable. UI is important, but you have to have a strong foundation to build it on.

Anyway, my point is, while Apple needed to make huge changes, and Microsoft can probably get away with smaller changes, dropping binary backward compatibility with old system libraries is something every OS has to do periodically. Only, until now, Microsoft has only done it gradually, piecemeal, and by accident. (If you try to run software designed for a long-dead version of Windows you'll discover what I mean. Little things will just not quite work right.)

As this article notes, the attempt to retain binary backward compatibility across multiple versions costs something. Now Microsoft wants to free itself from those costs, as Apple did with the release of OS X.

Most Unix systems don't incur these costs in the first place, at least not in the same way, because they don't worry so much about binary compatibility. They don't need to, because they have source compatibility. In an enviroment where you have the source code for everything anyway, you can just recompile as necessary when you upgrade to a new version of the core system. (Take this philosophy to its logical extreme and you get Gentoo, or the BSD ports system, where the user's system recompiles everything from scratch, locally, every time they upgrade anything. But the distributor can also pre-compile the software for each major version of the OS and make pre-compiled versions available, which is what most distributors do, because it makes upgrades faster for the user.)

But Apple and Microsoft both rely heavily on proprietary third-party software, for which source code is not available, except to the ISVs who produce the software -- and they cannot always be relied upon to do any porting, especially not punctually; Apple had significant trouble getting Adobe to finally support the new version, and they still haven't moved to Cocoa, most of a decade later. Microsoft doesn't rely as heavily on any single ISV as Apple does on Adobe, but that's only because the stuff they rely on is spread out over a larger number of ISVs. So they have to think about this issue.

The logical solution is to do what Apple did: supply an emulated old-version environment for running old-version software, with all the performance penalties that implies. Software that is updated promptly can be run natively, with the advantages that go along with that. I don't think they can afford to do this every major version, but at this point they're well overdue for it.

Whether they'll actually do it is an open question. I don't know whether Dev Corvin actually has any significant inside information, and of course it's so early in the Windows Seven development timeframe at this point that any decision that's made can potentially be changed several times before release. Nonetheless, it's an interesting point.

Whether (and how) this figures on my timeline is also another question. Assuming it's a for-real announcement originating from Microsoft, it would be a fairly sweeping technical announcement of the general type that my timeline has slated for 2010. But it's not related to security, and there was only one sentence about how this sort of thing is good for developers, and it's not clear that even that sentence necessarily means third-party developers. So I'm not sure there's a specific timeline entry to pin this on.