Welcome!

.NET Authors: Elizabeth White, Kevin Benedict, Tim Hinds, Jayaram Krishnaswamy, Pat Romanski

Related Topics: iPhone, Wireless, .NET, AJAX & REA, Web 2.0

iPhone: Article

A Comparison: Microsoft Surface and iPad 4

The Microsoft Surface and the iPad 4 now join the iPad 2 and the RIM Playbook 2 as impressive HTML5 tablet platforms

This week, we've been putting both the iPad 4 and the Microsoft Surface tablet through their paces. In our testing, we're happy to say that both tablets are very solid HTML5 platforms. Internet Explorer 10 on the Surface has a broad, well implemented HTML5 feature set that mostly meets and occasionally exceeds mobile Safari's. On the performance front, the iPad 4 leads in raw JavaScript and Canvas performance while the Surface has a faster SVG implementation. Having comprehensive, high performance HTML5 support is now a "must-have" feature for new mobile devices. For end users, both these devices promise great user experiences from well-designed HTML5 apps.

Going into our testing, we were bringing expectations set by the iPad 3 and our developer hardware for Windows 8. When we reviewed the iPad 3 in the Spring, we were disappointed with iPad performance. Ordinary web pages as well as HTML5 apps had stutter and visible tiling. Raw JavaScript performance was actually lower on the iPad 3 than the iPad 2. In our opinion, it was an underpowered device, so we were not entirely surprised to see the iPad 4 arrive with vastly improved hardware specs so quickly.  On the Microsoft front, when we took our first look at the IE10 preview last Fall, we were very impressed with its HTML5 feature list, but wondered if performance would hold up on tablet-grade hardware. Read on to see what we found.

The Microsoft Surface
Since there are already plenty of reviews of the Surface tablet for the regular user, we won't spend much time on its general features except to say that

  • The integrated (and very sturdy) kickstand should become a standard tablet feature,
  • The mixed keyboard/touch interface that Windows 8 pioneers is a winner
  • Bezel gestures to activate control and navigation become natural quickly and are vastly superior than repeatedly jamming the iPad home button
  • IE's browser tab management is far superior to mobile Safari.

We'll also note that if you plan to evaluate the Surface yourself, it's *essential* to upgrade the pre-installed Office Preview to the release version. Before upgrading, entering text was absurdly and unpredictably laggy not just in Office, but also in browser-based input fields.

If you're looking for Surface traffic, its user agent is: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)

The Surface supports multi-touch, with up to 5 separately tracked simultaneous touches. Its JavaScript timer resolution is the Windows standard 16ms (or 64 times per second) when on battery power. When plugged in, the timer jumps to what appears to be a 4ms resolution (the same as iOS and Chrome for Android), but the timer became so noisy at this resolution that it was hard to judge. As we've noted before, JavaScript animations that use a setTimeout of zero to pace their progress will now run faster or slower depending on whether the Surface is plugged in or not. Using explicit time or requestAnimationFrame for JavaScript animation is once again highly recommended.

IE10 has a new collection of CSS properties and events to control touch event handling. Many HTML5 apps will want to use the ms-touch-action: none, to suppress OS pre-emption of touch events within their app. WebKit style touchstart, touchend etc. are not available. Instead we have Microsoft's new pointerEvents, which unifies mouse and touch events under one roof. The Surface has a rock-solid implementation of position: fixed, and even makes a college try of supporting background-attachment: fixed - which Mobile Safari still ignores.

HTML5 feature coverage
We tested HTML5 feature presence using Modernizr. IE10 on the Surface has a long list of HTML5 features. This includes indexedDB, CSS animations, 2D and 3D transforms, gradients, transitions, workers, websockets, video and audio playback, and file API. Leapfrogging the iPad 4, IE10 even has a *-implementation of CSS Regions and Exclusions - which we think is a first for a shipping mobile HTML5 browser. Grid layout - which looks to be a permanent IE-only feature is also supported.

There are some notable omissions and deficiencies compared to the iPad 4. There is no support for the input tag for camera or video capture (introduced in iOS 6), the flexbox implementation is the older, superseded version. There is no border-image support (admittedly the border-image support in mobile Safari is not completely correct either.)

Neither platform supports WebGL, but Microsoft has previously said that it won't support it. Nor were the more esoteric HTML5 inputs like color supported. Notifications and server sent events were likewise absent from both platforms.

JavaScript Performance
We ran both the iPad 4 and the Surface through Sunspider and Google's V8 benchmark. Although Sunspider is an imperfect test, it has great historical comparability. The figure below shows the performance of the Surface and iPad 4 indexed to the iPad 2 (1.0). As can be seen, raw JavaScript performance on both platforms is roughly 2x the iPad 2. The iPad 4 has a performance advantage with an average 20% performance edge over than the Surface. On version 7 of the V8 benchmark, the performance difference was more stark. The iPad 4 clocked in at 1565 vs. 775 for the Surface (higher is better), a 2x advantage for the iPad.

SVG Support & Performance
Since IE10 has a hardware-accelerated SVG implementation, we decided to dig into performance for SVG. First, we ran David Dailey's decahedra demo which combines rotating and overlapping shapes with SVG gradient animations. The Surface comfortably handled an entire screenful of 50 shapes with solid performance. In comparison, the iPad 4 started to show visible frame transitions at around 15 shapes. A more dynamic pseudo 3D corridor navigation game, reached approximately 18 fps on the Surface vs. 12 fps on the iPad 4.

The SVG implementation in IE10 on the Surface is rich with a full complement of SVG features.  It's fantastic, for example, to see broad support for SVG filter effects like color channel manipulation. We did notice a few minor blemishes. The performance of the lighting effects we tried was very poor (10s+) and the feSpotlight primitive was not supported. Lighting effects were noticeably darker than the reference SVG test images. And although Modernizr reported SMIL support, we were unable to get any declarative SVG animation to run successfully. SVG Filter effects are also imperfect on Mobile Safari, and anyone looking to use them should expect vigorous testing and cross-browser normalization.

Canvas Performance
Raw canvas benchmarks like this one from mindcat showed the iPad 4 with about a 2x advantage over the Surface. In our benchmark, the iPad 4 scored 1.81 vs. the Surface's 0.904. However, in a variety of real world canvas apps we saw perfectly acceptable performance from the Surface. This included canvas color cycling (once guaranteed to bring a mobile browser to its knees) as well as a variety of Impactjs-based games.

Microsoft's own fishbowl demo was also a good stress test of real world canvas use. This demo composites multiple separate canvas contexts together on top of a background video, with sound effects in a separate audio element. There are also CSS transforms and CSS opacities present. With all effects disabled except basic sprite animation, the Surface managed about 110 concurrent sprite animations at 60fps, while the iPad 4 managed about 135. Strikingly, when we enabled more effects (masks, background, shadows and more.), the iPad 4 held up well while the Surface struggled. With all effects enabled except the background water video, shadow effect and audio, the iPad 4 could support about 100 concurrent sprite animations at 60fps, whereas the Surface was able to support only 10. Canvas compositing appears to be a particularly challenging graphics operation for the Surface vs the iPad.

CSS Performance
Early mobile platforms had issues with CSS performance, but we saw good CSS performance with transition and animation effects. Gradients on both platforms were smooth and free of banding.

An Embarrassment of Tablet Riches
The Microsoft Surface and the iPad 4 now join the iPad 2 and the RIM Playbook 2 as impressive HTML5 tablet platforms. Both are a big performance improvement over the iPad 2 - the previous best tablet for HTML5 apps. It's also very encouraging to see Microsoft stepping up to the plate and delivering an HTML5 implementation that's relatively comprehensive with solid performance. There's still work remaining of course. It would be nice to see an SVG from both companies with Flash-quality performance in their next generation tablet. And getting camera and video access from a web page is a notable item on the Surface's to-do list. We're looking forward to reviewing the Surface Pro tablets due early next year with higher powered Intel processors.

More Stories By Michael Mullany

Michael Mullany is CEO of Sencha. He has held product and executive marketing roles at influential Silicon Valley startups Netscape, Loudcloud and VMware. At virtualization leader VMware, he served as the vice president of worldwide marketing during its break-out into server computing. He holds an MBA from Stanford University and a BA in economics from Harvard College.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.