The problem is he went a bit far in his solution, and it's a common "bit too far". In fact, it's exactly what Apple keeps doing as a conscious effort.
In the pursuit of getting choices out of your face, he makes it impossible to make choices.
Let's look at two examples:
If you've spoken to a non-geek recently, you may have noticed that they have no idea what the difference is between "sleep" and "hibernate." They could be trivially merged. One option down.
Why do you want the power off? If you're concerned about power usage, let the power management software worry about that. It's smarter than you are.
This is a great example of where the user is forced to make a choice because of system inadequatacies. What's the inadequatacy? That the battery doesn't last forever.
He's right on....almost. I have a laptop that can "sleep" for an entire weekend -- in normal cases I'd be quite happy for it to silently convert to "hibernate" after, say, 30 minutes.
Except if I'm in one of those all day conferences. Then I quite happily put my computer to sleep and want it to stay there for hours . You see, the problem is I want it to wake up immediately and hibernation is a bit slow.
Once again, another inadequacy -- the system doesn't come back from hibernate quickly. Fix all that and I won't care.
And while most geeks don't know the difference, ask any salesman who gives presentation on their laptop and I'll be they do .
Restart can be eliminated. 95% of the time you need this it's because of an installation which prompted you to restart, anyway. For the other cases, you can just turn the power off and then turn it on again. Another option goes away. Less choice, less pain.
This is an example of a fundamental choice rather than a system inadequacy.
He's got a good point: most users don't need to restart.
I, on the other hand, rarely actually shut off my computer so as far as I'm concerned I don't need "Shutdown", just "Restart" would be quite fine.
In fact, for that computer I used to manage remotely that was on the other side of the building and behind a locked door to which I didn't even have they key, not having "restart" would be a ROYAL PAIN IN THE...
(Ever noticed that many things Windows are like this? Perhaps that's because their history is a Desktop, not a server, and their mental model is that reaching the power button is "no big deal".)
So, the problem is that one users annoying choice is another users required feature. This isn't a matter of "Making Everybody Happy" -- it's a matter of making it usable for everybody. You can take away choices and some users will never notice, for the vast majority it's overall better even though they could actually use those choices but for a few it's a Really Big Deal. The problem is that Really Big Deal features aren't confined to one small set -- they're different for everyone.
The Linux operating system tends to handle this these days by having different "distros" -- basically, you can get a different version of Linux optimized for what you want to do with it. Microsoft, being a closed source shop, really can't deal with that method.
Surely there's way to keep people from having to make choices they consider needless while allowing others to make choices they consider necessary.
WARNING: Severe geekdom herein
As mentioned on NewIdeas , I've changed the way this site is managed. No more will the pages be turned into XML by a markdown or emacs-wiki regular expression script, there to be converted using XSL into actual web pages. (Yes, I did do that.)
But now I have this "sitegen" thingy. Sitegen uses a real syntax driven parser to parse emacs-wiki and markdown syntax into an HTML model parse tree, then does interesting things to that tree, including apply templates, which is how that nifty site navigation tool shows up so consistently on the left on all these pages.
It also allows me to write nifty things like "%%categoryList(category='bliki')" have that expand to a list of all pages who are tagged with the category "bliki", which I'm using (surprisingly enough) to do my new WebLog type thing (Actually, it's a bliki . More on that later.)
I'm not posting the script just yet. Aside from it being horrendously undocument, there are a few sytax quirks that I want to clean up and a hack or two I want to remove from the syntax. I wouldn't mind someone else using it but I wouldn't want to inflict it on some poor innocent who thinks the language won't change.
Also, I intend to shortly parse actual HTML files and be able to apply all my nifty tricks to them, so a release should probably wait until that point.
Yes, I might at some point just use TWiki but I wanted to play around with the PERL recursive descent parser generator and syntax tree rewriting anyway.
(Of course, the biggest reason I might use someone else's software for thi site is so I don't have to figure out and deal with the differences between IE and Firefox.)