Saturday, February 11, 2012

Windows 8: Let's get ready to Rumble

Okay, this post is primarily driven by a Google+ stream by SVN. The background of the post is this: Microsoft is planning the launch of the next Windows 8 test release later this month. We do know some of the details that will be changed in the next release compared to the current Developer Preview such as the removal of the Start Button from the Windows 8 interface.

Now, I've been pretty vocal on just how bad the existing Windows 8 Developer Preview is. I've got an installation set up against an Athlon64 X2 @ 2ghz with a RadeonHD 4650 graphics card. Since the preview was released I've shown it to everybody who has come to visit me either for computer help, to pick up baked goods, or just to hang out. Such people have included Mary-Kay consultants, school janitors, retired teachers, car mechanics, restaurant managers, jewelry store managers, and their friends and relatives. The collected response from everybody who has sat down and actually used the Windows 8 developer preview has ranged from "you cannot be serious" to "if this had been on my computer it would have gone into the trash can."

Thing is, I used to have an installation of Ubuntu running their version of Gnome 2.x and I asked people to use it. Most, but not all, of the casual consumers that I showed Gnome 2.x to hated it and had negative reactions. That's one of the reasons I slag on Gnome all the time. The Gnome Human-Interface-Design group's approach for a "Grandma Friendly" desktop is complete and utter horse hockey. Windows 8 is the first time that any Gnome 2.x based Linux has actually been described as an interface that casual consumers would prefer if they were given a choice. That's how bad the Developer Preview is and from the changes Microsoft is making, the upcoming Consumer Beta is going to be WORSE.

As of right now there is a trend towards deliberate design flaws on the part of many Desktop Oriented Linux Distributions. Desktops such as Unity and Gnome 3.x attempt to address non-existent problems such as clutter. The result of such approaches has resulted in user-revolts with Gnome-centric distributions, such as Linux Mint, attempting to add the functionality of Gnome 2.x back into Gnome 3.x.

The good news for Linux distributions is that their consumer-base is largely made up of consumers that are relatively technology-literate, or communicate with people who are technologically-literate. Ergo design blunders like Unity and Gnome 3.x are being countered and the overall negative effects are mitigated.

Windows 8 has no such user-base connections. Most Windows users tend to be technologically-illiterate. This means that the consequences of Microsoft following the footsteps of Unity and Gnome 3.x are going to be far more severe.

One of the core problems Microsoft faces it the attempt to unify the Phone, Tablet, and Desktop operating systems under one single interface. Microsoft has tried such approaches multiple times in the past and those attempts have never worked. Microsoft has been pushing the "tablet" form factor and other mobile solutions for well over a decade, but the ultimate product result is often described as a "solution in search of a problem." Microsoft's previous attempts have tried to shove the existing Windows user-interface architecture into the smaller system form factors. Windows 8 is an inversion of that approach as it tries to scale a small system form factor into something usable on a larger system form factor.

The market realities that Microsoft has itself proven are as follows:

  • An interface that works well for a large-screen monitor will result in ultra-tiny font and near-unusable controls on a small-screen such as those used by a phone.
  • An interface designed for a small-screen such as those used by a phone will look like something designed for children on larger format screens.
  • An interface that is designed for the precise control of a mouse and the multiple inputs of a keyboard will not directly translate to a touch-screen interface; any such translations will require software overhead to provide for keyboard functionality through the user-interface as well as accommodate less precise pointing methods.
  • An interface that is designed to accommodate touch screens with multiple finger-width possibilities will not directly translate to a keyboard and mouse configuration. On-screen Buttons that are sized for a finger to hit will consume an inordinate amount of space for a mouse, and functions that are bound to swipes of the screen and on-screen objects will not be required with other additional input sources.

The Windows 8 Developer preview scraps everything Microsoft has ever learned about user-interface design from their own product releases. Many such mistakes are the very causes of Microsoft's non-factor status in the mobile market.

The mobile revolution as we know it through Android/Linux and IOS/Mach_BSD has largely occurred preciously because Microsoft was not involved. Android/Linux and IOS/Mach_BSD have been successful for many reasons, such as their use of inexpensive and battery efficient ARM hardware. Another reason is that the Android/Linux and IOS/Mach_BSD platforms approached the mobile market with user-interfaces and operating systems that were designed to work within small form factor constrained design limitations.

Android/Linux and IOS/Mach_BSD are not designed to work on large format systems with multiple input methods, and nor is there any real attempt to have either operating system target such systems. Google and Apple maintain completely separate distributions and operating systems to handle traditional desktop tasks; Chromium_OS/Linux and OSX/Mach_BSD.

Considering that Google and Apple have succeeded where Microsoft has unilaterally failed one would think that Microsoft would take some notes. Indeed Microsoft has taken notes on the successes of products from Google and Apple. Windows 8 is indeed supporting the ARM architecture.

So let's get this out of the way first of all. BORING.

For those who don't understand why I say this is boring, I'm just going to give you one link:

The Official release version of the Debian Operating System supports 9 Different Processor Architectures with the Linux kernel. In addition the official release supports 2 of those processor architectures using the kfreebsd kernel.

Unofficial and/or discontinued releases of the Debian Operating System include an additional 9 Different Processor Architectures. Unofficial and/or discontinued versions also include support for two more kernels, Hurd and netbsd.

In comparison Microsoft supporting a single new architecture is downright laughable. Microsoft's attempts at Metro program compatibility is also laughable. When Microsoft covers as many platforms as Debian does with the program support that Debian manages, then we can have a talk about how incredible Microsoft's engineering team is. Till then, Microsoft is still the amateur chump talking big with absolutely nothing to back up the boasting. Sorry if this is a bit too blunt for the people who thought Windows 8 was somehow doing something new... Debian's been doing this multiple architecture / multiple program release thing for over a decade.

Now then. Obviously I am not impressed by Microsoft's support of ARM. I think Microsoft's new position is a knee-jerk reaction to try and shore up the assault on the commercial industries reliance on Microsoft branded products. If nothing else the sales of Android/Linux and IOS/Mach_BSD products have gotten consumers to realize that they don't need Microsoft products on their computing devices.

I also think that Microsoft's design direction taken with Windows 8 is likewise derived from a knee-jerk reaction. Microsoft does not understand where the computing market is going on what amounts to fundamental levels. Microsoft sees Android/Linux and IOS/Mach_BSD as direct competitors and has designed the Windows 8 user-interface to compete against those platforms.

The problem is those platforms are not Microsoft's Competitor. This is:

If I was a Microsoft employee KDE is what would keep me up at night sweating bullets. The KDE 4.x release already incorporates several interesting technologies that make it a more attractive and productive choice for both business and consumer customers. Long time tech writer Bruce Byfield has even gone so far as to state:

However, now that software like KDE development is outpacing proprietary choices like Windows, these basic advantages are more compelling than they have ever been. Increasingly, we are now in an era in which free-licensed software like KDE is not only an ethical choice, but a pragmatic one as well.

Among the interesting technologies KDE offers is it's Activities. Don't worry if KDE Activities are confusing at first, Bruce Byfield has a very good post on the technology at work. To simply state what Activities can do, they create different desktop interfaces that can handle completely different layouts of the user-interface elements.

Recent updates have extended the base functionality of the Activities technology. For example KDE 4.8 attached power-management settings to the KRandR and Activities function. I highly suggest reading drfav's wordpress post on some of the implications of this particular update, as well as the accompanying video. With KDE 4.8 it is now possible to setup different activities to have different power profiles, and those power settings change by just swapping Activities.

So, let's through a little bit fuel onto this fire. KDE currently has 3 different interface configurations. The default configuration is called Plasma Desktop and offers a traditionally oriented desktop design configured for high resolution monitors. There also is a configuration referred to as Plasma Netbook which is optimized for low resolution screens and low-resource hardware. The last is KDE Contour, an interface designed around touch-screen interfaces. The KDE Plasma-Active project also adds a UI layout and design guideline for touch-interface designed applications referred to as Active-Apps. For the most part KDE is capable of switching between each of these different interface configurations while programs remain open and running. KDE achieves this capability by decoupling system functionality from the user-interface.

Okay, as of right now I do not think it is possible to use Activities to change through the Workspace interfaces. Nor do I think it is possible yet for applications to automatically be reskinned on an Activity Switch. For example, if you switch from Plasma-Desktop to Plasma-Contour while Amarok is running, Amarok will still be presented with the keyboard and mouse interface rather than an Active App interface.

Imagine for a second when KDE does gain these abilities and what this could mean for hardware vendors. Sony, for example, could offer a Playstation Tablet backed by KDE. Sony implements the XMB as a Activity bound Workspace interface atop KDE and the user has a Sony Tablet experience while in tablet mode. When the user sits down and attaches their tablet to an external monitor KDE detects the monitor and switches to an Activity with a Plasma-Desktop interface and cranks the clockspeeds up for a desktop computer experience, all without interrupting any running applications.

This technology gap between KDE and any other interface is the stuff of nightmares for companies like Microsoft. KDE is the defining model of how the user-interface problems between hardware devices should have been approached to begin with. In the light of what KDE is doing? Metro isn't just pathetic, it's a complete and utter joke.

I can also make the problem even worse for Microsoft with just 5 words: KDE. Is. Operating. System. Neutral.

I can also turn this into a full on Cthulhu class nightmare with just two more words: Android. Compatibility.

Let me explain. The KDE Software Compilation is primarily designed as desktop environment that runs atop GNU/Linux. It is also an open source project and can theoretically be adapted to any operating system. On paper this means that it should be possible to run the KDE interface atop operating systems built against Android/Linux or WebOS/Linux. This alone could be significant as Android/Linux vendors such as Amazon are already creating and maintaining their own interfaces atop the Android Operating System. The downside here is that getting KDE up and running as an User Interface Environment on Android/Linux or WebOS/Linux would require large amounts of new code, and the KDE developers have been pretty clear that they have no desire to do that work.

The flip side is that Android itself is also an open-source project and the structure of Android/Linux applications are well documented. Arstechnica actually has a pretty article on this subject already. It is fully possible for Operating Systems that are NOT running Android/Linux to provide binary compatibility for Android/Linux applications. Where getting the KDE interfaces to operate atop a non GNU/Linux operating system and kernel would be very difficult, getting Android/Linux applications running atop a KDE/GNU/Linux distribution is incredibly easy.

If you thought this was a bonfire already, let me add some fuel, say, something like: Hypertransport

Imagine for a second buying an ARM tablet loaded with KDE/GNU/Linux. You wander around town doing the normal tablet things with Android Applications. You get home and you plug your tablet into a docking station. This docking station just happens to have a couple of hypertransport links that now connects your tablet to say, an AMD Piledriver processor and a RadeonHD class graphics card. As your tablet shifts from the tablet display to your external monitor the tablet syncs the data you've changed while in tablet mode to say, a larger drive. Other programs, such as Valve's GNU+Android/Linux Steam client and Sony's Playstation Suite synch with data stored on the larger internal-hard-drive, such as a list of installed games.

As the system finishes reconfiguring, the tablet goes from running atop an extremely power-efficient ARM processor and a limited graphics processor, to running with an x86 processor with a gaming class graphics card. From the users perspective they haven't done anything but plugged their tablet into a dock and wait a few seconds, and now they still have everything they were doing running on screen, but a much more powerful computer with far more capabilities.

The kicker? Aside from ARM not running on a Hypertransport bus and KDE not having this software switch functionality yet, and the need for somebody to write a synchronization package to actually perform the data-sync, the rest is already possible today. Hypertransport already supports central processor hotplugging. In addition GNU/Linux running atop multiple processor architectures is also a reality. Technologies such as OpenCL also remove some of the limitations of switching processor architectures.

Imagine for a second the market implications these types of technology advances have for companies like HP, Dell, or Sony. This is stuff that is not 5 or 10 years down the line. This is stuff that could be on the market in less than a years time.

To reiterate what I said earlier. Android/Linux and IOS/Mach_BSD are indeed headaches for Microsoft. They've cracked the ribs of hardware vendors who have spent decades relying on Microsoft. Consumers are now more open to concept of buying computing products that don't carry that magic Microsoft Badge.

For what KDE represents, and what it is doing NOW, it's the competitor that Microsoft should be paying attention to.

Now, will hardware vendors realize the possibilities that a KDE/GNU/Linux system offers them? Will hardware vendors leverage those possibilities in products and make stuff that consumers actually want to buy?

My suspicion is yes. As of right now the real-consumer backlash on Windows 8 is going to make the Vista backlash look like a drop in the bucket. Hardware vendors are likely going to be left scrambling to come up with answers... and KDE will be there waiting to help.

* * *

Update: I received this response from Aseigo

great blog entry; and thanks for the support. it's great to know others "get" what we're trying to achieve here .. and with the growing number of people and companies that are rallying around the technology and the ideas, i think we have a very good chance to be extremely successful in the coming years.. 



Unknown said...

Having installed Windows 8 Beta preview in a VM, I am in accord with your comments. I think it is awful. It may play better on a touch screen but I am not sure of that. I cannot help but think they have made compromises to accommodate both touch screens and traditional desktops that have rendered the system not user friendly.
Thank you for the incisive blog post.


m_pav said...

Now that was a worthy blog read. Lots of blogs simply spew forth garbage without any form of backing, but your in depth knowledge and insight, attention to detail and glaringly obvious thoughtful process makes this blog post one of the best I have read on the current direction of software.

Mike P