Editorials

Metro? What Is Behind It All?

SSWUGtv – SQL Server 2012
With Stephen Wynkoop
In todays edition Steve interviews Gareth Swanepoel. Gareth talks about SQL Server 2012, extended events wizard and interface – how to performance tune, and more.
Watch the Show

Metro – What Is Behind It All?
I’d like to wrap up my concerns about the Metro design principles with another epistle from David Ellis. David brings out a number of guesses as to what would cause Microsoft to go down a potentially hazardous route. Sure, Microsoft has enough marketshare to dictate what we will like…even if we don’t like it. But that is self defeating in the end game.

At the core of the issue, to me, is what is going to become the predominant user interface with computers? Until a computer can be a connection to a human brain, I don’t see any single method that is going to be efficient in all situations. Voice recognition is too loud to be used in an office environment. Mouse and Keyboard are efficient in certain situations, but not readily transportable. Touch screens are great, but not good for data entry. Shucks, I still use the 10 key numeric pad for certain kinds of work.

Here is an example of a badly designed user interface. Have you ever used the SQL Server job utility, wanting to go through multiple steps of a job and set a property for each one? Basically, you click on the advanced button to get the properties dialog, make your configuration change, then have to click to go back to the original dialog in order to click on the next/previous step button to then repeat the above steps. It is completely painful. Any job with enough steps I am likely to script out, modify in a query window, and re-apply the job (hopefully it will work and I don’t lose the whole thing).

That is an example of someone creating a user interface that doesn’t have to do real world work using it. In fact, the SQL Server GUI job scheduler hasn’t changed for decades (I haven’t taken the time to look at SQL Server 2012 yet).
Based on the look and feel of Metro it appears to be designed to compete with the Android operating system popular on portable devices. I don’t see Apply making their Macintosh OS look and feel like an iPhone. Why does Microsoft feel they have to have a one fits all kind of look and feel? Enough of my rant…and I promise not to come back to this for a long time.

Here’s some thoughts from David:
Pure opinion and speculation ahead! (Also, Outlook just ate my response, so I’m retyping this in a much more condensed form…)

This is my view on what Microsoft’s actual strategy is, though it’s not being executed that well because I think they want to keep it secret and they didn’t come up with a good alternate explanation. I’ll note that my opinion is shaped by me being an Android fan, and that I now use an Asus Transformer Prime for all of my content creation and consumption (it’s a tablet with a dock to turn it into a netbook with keyboard touchpad, mouse support, and 10-15 hour battery life — I RDP or VNC into Windows or Linux machines for the few tasks that don’t have native Android apps, yet [surprisingly few, already]). Microsoft wants something *like* the Asus Transfor Prime, but not quite the same.

I assume you know about the love-hate relationship that is Wintel. The "hate" side of the relationship seems to be flaring up more now that Windows 8 will be available on ARM processors and Intel has just started a test run of an Intel Atom-based smartphone in India: http://newsroom.intel.com/community/intel_newsroom/blog/2012/04/18/xolo-x900-first-smartphone-with-intel-inside-launches-in-india-market (This smartphone, I’ve read in a review online that I can’t find now, said that the experience was completely transparent to "normal" ARM Android phones if you’re not playing a game. Games that use the native C/C++ API have to be recompiled, but this isn’t as bad as it sounds since nVidia Tegra-based native games need to be recompiled for TI or Qualcomm because of running different versions of the ARM architecture and having different GPUs.)

Another technology that Intel has been working on that you may not be aware of is "WiDi" Wireless HDMI: http://www.intel.com/content/www/us/en/architecture-and-technology/intel-wireless-display.html

Consider for a moment what Android 4.0 is actually *capable* of: Your applications’ interfaces are defined in an XML-based format (like XAML for .NET) that *also* implements a functionality similar to CSS media queries: You specify different layouts depending on whether the application is being viewed in portrait or landscape mode, but also depending on the resolution of the device, so the same application can run well on tablets or smartphones.

Combine this with WiDi and a sprinking of imagination: rather than have a smartphone, tablet, laptop, and desktop, why not take your smartphone and "dock" it with a WiDi-enabled display and a bluetooth mouse and keyboard. Android 4.0 supports both touch-based and mouse-and-keyboard based input (I use the former for games, movies, books, web pages, the latter for productivity apps like IDEs, email, Google Docs for Android, etc on my Transformer).

Not only do you get the "full" desktop experience when docked, but when you undock and go to lunch, your apps are still there, but with a phone-optimized display, and you can show your progress, say, to a colleague over lunch in portrait mode, then you can go to a presentation after lunch, WiDi "dock" your phone with the projector to present a presentation, and change slides with a finger swipe (remember, no cables in the "dock", so you can walk around with it) or highlight key portions with a tap and see the relevant portion light up, then you go home and "dock" your phone to your TV and watch netflix, using the smartphone as a remote, then dock it to your personal "dumb terminal" of a touchscreen display, mouse and keyboard to check email, browse the web, play a first-person shooter, or whatnot.

In Android, you don’t worry about application management — the application adjusts to the orientation and screen size, available input devices, and they all have an auto-save functionality since an Android application can be killed at any time since Android’s task scheduler frees out running applications not in use when another one needs more resources ("background" processes like listening to Pandora are considered to still be running, web browsers are not and have to restore all of your previously opened pages when restarted).

Since Android and iOS can’t count on the mouse-and-keyboard, their interfaces have to be designed for the lowest-common-denominator, but work under a "progressive enhancement" situation where having a physical bluetooth keyboard means the on-screen keyboard doesn’t appear when you click/touch a textbox, for instance. Microsoft Office for Metro follows this principle: the interface now has ways of doing pretty much *anything* with the touchscreen, albeit not as well, but still has the keyboard shortcuts when one is available to make things faster for that case, but the interface can’t *assume* it’s there, or will remain there.

And that starts to delve into Microsoft’s plan: assuming Microsoft also understands this user-friendly future I described where application state is preserved across application restarts, and applications automatically adapt to changing input and output formats as you go from home to work to wherever and can at least *access* your data whenever, and using the same applications (albeit with adapted interfaces) wherever.

Windows currently can’t do that, so they took Metro from Windows Phone 7 and adapted it to handle this scenario. But Microsoft understands the network effects of application marketshare — currently their Windows Phone marketshare is abysmal because they don’t have the apps users have on Android or iOS.

Intel’s experiments with Atom in smartphones could bring back the "love" in the Wintel love-hate relationship: A smartphone that can do everything Android 4.0 can do as described above (adaptive interface, never lose your data by application state tracking, etc), *and* when you "dock" with a display, mouse, and keyboard, you can use the "classic" tile to run Windows 7 and earlier applications and have access to the huge catalog current Windows applications.

But why is Microsoft so "pushy" with Metro? Because they know that if they don’t start growing their catalog of Metro apps that have all of these features, and only have the Windows 7-style applications that can’t be used on the smartphone screen, TV, or projector without a mouse and keyboard also docked, then even if they gain marketshare with Windows 8 phones temporarily, they will lose it to Android as new development ceases for Windows and legacy enterprise apps are accessed by RDP (like I do with my Android tablet).

They’re willing to cripple their free version of Visual Studio ( http://developers.slashdot.org/story/12/05/26/0123226/free-desktop-software-development-dead-in-windows-8 ) specifically because this really could be the end of Windows’ dominance on computing. Microsoft recognizes early-90’s computing history repeating, specifically the Apple-IBM-Microsoft OS war that ended with IBM out *entirely*, Apple releated to a niche, and Microsoft the most important computing company in the world — this time, though, they’re playing IBM with Google in their place, because Google is using their old playbook: cheaper than the competition (free, now) and "good enough" (has the new, desirable features Apple originally pioneered with a minor twist of their own, and has the support of multiple hardware vendors [now carriers are included in that list, too]).

I don’t think their strategy is going to work, though:

  1. If the developers knew, they *might* get more Metro applications developed faster, but they might also get Linux and Mac developers more interested in boosting the competition, and they’ve burned many of their own developers with their constantly shifting .NET story, so many may callously say, "Why should I help you?"
  2. Their strategy of suing manufacturers to gain patent license deals on Android does help in one way (make Android non-free and therefore more expensive, possibly even beyond the price of Windows Phone 7), but it hurts their relationship with the manufacturers.
  3. Their strategy of "colonizing" Nokia will help them try to squeeze into Apple’s position in the three-way war, but further hampers their relationships with the other manufacturers, which isolates them further and perhaps make them more significantly like IBM since they haven’t really been the innovation leader in consumer products for the past 5 years at least. (when did the Xbox launch?)

Long-winded reply full of opinion and conjecture, but I think a preponderance of evidence shows it’s at least a likely candidate for why Microsoft is behaving like they are, and explains why Office Metro puts more emphasis on touch, but leaves the keyboard functionality intact, if not as easily discoverable.

Android 4.0 shows how a unified experience could work fairly well across all interface dimensions and types, but it requires a complete rethinking of how applications are designed and developed. Windows 8’s Metro (different from Windows Phone 7’s Metro in technology and some key pieces, but designed to look similar) is Microsoft’s answer to that, and the classic Wintel marriage just may survive the recent bruising if Microsoft’s plan is to have a Windows 8 smartphone that can run classic Windows 7 apps when docked, while pushing for the new era of computing where applications don’t lose state and work on any screen size to maintain Windows’ dominant marketshare in traditional, productivity-oriented computing.

The alternative is a slow death to Android as it grows up and takes over more and more of what Windows could once do while not sacrificing the new things it can do, itself.

There is one last sliver of evidence towards this narrative that I couldn’t figure out how to fit above: Windows 8 is going to refuse Metro apps from being able to generate executable code — which means the death of non-IE browsers in Metro mode. Why is this significant? The wildcard in all of this that could still sway things in Android’s favor even if Microsoft plays all of its other cards right is WebGL. WebGL promises no-install-needed gaming through the browser on any platform of your choice. There is a significant contingent of gamers who stick with Windows for games, normally written to Microsoft’s DirectX API on desktops. But on phones, Android and iOS both use OpenGL ES (which is what WebGL is based on). If WebGL can run in a Metro browser, then it could run at full screen on the smartphone screen or TV without fuss, and a major lure for a segment of Windows consumer users would disappear, as developers would decide to use an OpenGL-based game engine that compiles to iOS, Android, and WebGL.

Not only would the games no longer be Windows-exclusive, they would have the performance penalty of being interpretted versus native. By elminating program-generated code, web browser JITs aren’t possible, so the game interpretation would be too slow to tolerate, even if it could run (it couldn’t because the browser couldn’t compile the OpenGL code to pass to the GPU, since each video card has a different assembly and must be compiled for each, so the WebGL standard, just like the Javascript standard, assume the browsers will properly interpret the raw source code provided).

In this way, Microsoft is forcing game dev studios to choose between DirectX and OpenGL, and they hope the story from before plays out again, and game support Windows 8 / Xbox rather than iOS/Android/WebGL since most gamers have the former than the latter.

James:
I started computing for a job in 1978. Used paper tape (1968) and card decks after that. I digress. I used SuperCalc and VisiCalc before 1985. I started with Word Star. MS Word and Excel was very slow in the 1980’s. It used fonts and pixels to paint the letters. Word perfect was the faster word processor because it used the text of the computer. For the power uses of any computer application the key functions and key combinations are preferred because you do not have to take your hand off of the key board to control your text. To “bold” or “underline” you did not have to move your hand to the mouse twice (start and stop), just use the keyboard where your hands are kept. There are still some actions where you have to use the mouse. It is the speed and power uses that know the key board combinations

I have been a Database Engineer / Database Administrator since 1980 and am now currently working on 5 different DBMS’s and believe all new DBA / DBE should learn the command line before the GUI. Learn how things work and what drives the GUI. That way when your database goes to hell in a hand basket you know more about what make it tick and how to fix it. Mice are good for some functions but not all. I can still do some things faster on a command line but / and can sometimes get more information out of the GUI. Depends.

Well, if you made it to the end of this newsletter you should go take a coffee break. Tell your boss I said you earned it. Tomorrow I’m going to look at the things about Metro I do like, and there is a lot. Send an email to btaylor@sswug.org if you would like to get into the conversation.

Cheers,

Ben

$$SWYNK$$

Featured White Paper(s)
Encryption & Key Management for Microsoft SQL Server 2008
Written by Townsend Security

Simplify encryption and key management on … (read more)

Featured Script
SetTbColValues
This stored procedure can be used to search and replace text in the char, nchar, varchar and nvarchar columns in all tables … (read more)