Reflections on Microsoft PDC 2010

I’m in Seattle airport waiting to head home – so here are some quick reflections on Microsoft’s Professional Developers Conference 2010.

Let’s start with the content. There was a clear focus on two things: Windows Azure, and Windows Phone 7.

On the Azure front, the cloud platform, Microsoft impressed. Features are being added rapidly, and it looks solid and interesting. The announcements at PDC mean that Azure provides pretty much the complete Windows Server platform, should you want it. You will get elevated privileges for complete control over a server instance; and full IIS functionality including support for multiple web sites and the ability to install modules. You will also be able to remote desktop into your Azure servers, which is going to make Windows admins feel more comfortable with Azure.

The new virtual machine role is also a big deal, even though in some ways it goes against the multi-tenanted philosophy by leaving the customer responsible for patches and updates. Businesses with existing virtual servers can simply move them to Azure if they no longer wish to run their own hardware. There are also existing tools for migrating physical servers to virtual.

I asked Bob Muglia, president of server and tools at Microsoft, whether having all these VMs maintained by customers and potentially compromised with malware posed a security threat to the platform. He assured me that they are fully isolated, and that the main danger is to the customer who might consume unexpected amounts of bandwidth.

Simply running on an Azure VM does not take full advantage of the platform though. It makes more sense to hook into Azure services such as SQL Azure, or the non-relational storage services, and deploy to Azure web or worker roles where Microsoft take care of maintenance. There is also a range of middleware services called AppFabric; see here for a few notes on these.

If there was one gap in the Azure story at PDC, it was a lack of partner announcements. Microsoft says there are more than 20,000 applications running on Azure, but we did not hear much about them, or about notable large customers embracing Azure. There is still a lot of resistance to the cloud among customers. I asked some attendees at lunch whether they expect to use Azure; the answer was “no, we have our own datacenter”.

I think the partner announcements will come. Microsoft is firmly behind Azure now, and it makes sense for its customers. I expect Azure to succeed; but whether it will do well enough to counter-balance the cost to Microsoft of migration away from on-premise servers is an open question.

Alongside Azure, though hardly mentioned at PDC, is the hosted application business originally called BPOS and now called Office 365. This is not currently hosted on Azure, though Muglia told me that most of it will in time move there. There are some potential synergies here, for example in Azure workflow applications that handle SharePoint forms or documents.

Microsoft’s business is primarily based on partners selling Windows hardware and licenses for on-premise or client software. Another open question is how easily the company can re-orient itself to be a cloud platform and services company. It is a massive shift.

What about Windows Phone? Microsoft has some problems here, and they are not primarily to do with the phone itself, which is decent. There are a few issues over the design of the launch devices, and features that are lacking initially. Further, while the Silverlight and XNA SDK forms a strong development platform, there is a need for a native code SDK and I expect this will follow at some point.

The key issue though is that outside the Microsoft bubble there is not much interest in the phone. Google Android meets the needs of the OEM hardware and operator partners, being open and easily customised. Apple owns the market for high-end devices with the design quality and ease of use that comes from single-vendor control of the whole stack. The momentum behind these platforms is such that it will not be easy for Microsoft to grab much market share, or attention from third-party app developers. It deserves to do well; but I will not be surprised if it under-performs relative to its quality.

There was also some good material to be found on the PDC sidelines, as it were. Andes Hejlsberg presented on new asynchronous features coming in C# 5.0, which look like a breakthrough in making concurrent programming safer and easier. He also showed a bit of Microsoft’s work on compiler as a service, which has huge potential. Patrick Smaccia has an enthusiastic report on the C# presentation. Herb Sutter gave a brilliant talk on lambdas.

The PDC site lets you stream pretty much all the sessions and seems to work very well. The player application is written in Silverlight. Note that there are twice as many sessions as appear in the schedule, since many were pre-recorded and only show in the full session list.

Why did Microsoft run such a small event, with only around 1000 attendees? I asked a couple of people about this; the answer seems to be partly as a cost-saving measure – it is much cheaper to run an event on the Microsoft campus than to hire an external venue and pay transport and expenses for all the speakers and staff – and partly to emphasise the virtual aspect of PDC, with a global audience tuning in.

This does not altogether make sense to me. Microsoft is still generating a ton of cash, as we heard in the earnings call at the event, and PDC is a key opportunity to market its platform to developers and influencers, so it should not worry too much about the cost. Second, you can do virtual as well as physical; they are not alternatives. You get more engagement from people who are actually present.

One of the features of the player is that you see how many are currently streaming the content. I tuned into Mark Russinovich’s excellent session on Azure – he says he has “drunk the cloud kool-aid” – while it was being streamed live, and was surprised to see only around 300 virtual attendees. If that figure is accurate, it is disappointing, though I am sure there will be thousands of further views after the event.

Finally, what about all the IE9/HTML 5 vs Silverlight discussion generated at PDC? Clearly Microsoft’s messaging went badly awry here, and frankly the company has only itself to blame. It cannot be surprised if after making a huge noise about how IE9 forms a great client for web applications, standards-based and integrated with Windows, that people question what sort of role is envisaged for Silverlight. It did not help that a planned session on Silverlight futures was apparently cancelled, probably for innocent reasons such as not being quite ready to show, but increasing speculation that Silverlight is now getting downplayed.

Microsoft chose to say nothing on the subject, other than some remarks by Bob Muglia to freelance journalist Mary-Jo Foley which seem to confirm that yes, Silverlight is no longer Microsoft’s key technology for cross-platform web applications.

If that was not quite the message Microsoft intended, then why not clarify the matter to press, myself included, as we sat in the press room on Microsoft’s campus?

My take is that while Silverlight is by no means dead, it seems destined for a lesser role than was once envisaged – a shame, as it is an excellent cross-platform .NET client.

Microsoft’s Silverlight dream is over

Remember “WPF Everywhere”? Microsoft’s strategy was to create a small cross-platform runtime that would run .NET applications on every popular platform, as well as forming a powerful multimedia player. Initially just a browser plug-in, Silverlight 3 and 4 took it to the next level, supporting out of browser applications that integrate with the desktop.

The pace of Silverlight development was unusually fast, from version 1.0 in 2007 to version 4.0 in April 2010, and Microsoft bragged about how many developer requests it satisfied with the latest version.

Silverlight has many strong features, performs well, and to me is the lightweight .NET client Microsoft should have done much earlier. That said, there have always been holes in the Silverlight story. One is Linux support, where Microsoft partnered with Novell’s open source Mono project but without conviction. More important, device support has been lacking. Silverlight never appeared for Windows Mobile; there is a Symbian port that nobody talks about; a version for Intel’s Moblin/Meego was promised but has gone quiet – though it may yet turn up – and there is no sign of a port for Android. Silverlight is no more welcome on Apple’s iOS (iPhone and iPad), of course, than Adobe’s Flash; but whereas Adobe has fought hard to get Flash content onto iOS one way or another, such as through its native code packager, Microsoft has shown no sign of even trying.

In the early days of Silverlight, simply supporting Windows and Mac accounted for most of what people wanted from a cross-platform client. That is no longer the case.

Further, despite a few isolated wins, Silverlight has done nothing to dent the position of Adobe Flash as a cross-platform multimedia and now application runtime. Silverlight has advantages, such as the ability to code in C# rather than ActionScript, but the Flash runtime has the reach and the partners. At the recent MAX conference RIM talked up Flash on the Blackberry tablet, the Playbook, and Google talked up Flash on Google TV. I have not heard similar partner announcements for Silverlight.

Why has not Microsoft done more to support Silverlight? It does look as if reports of internal factions were correct. Why continue the uphill struggle with Silverlight, when a fast HTML 5 browser, in the form of IE9, meets many of the same needs and will work across the Apple and Google platforms without needing a non-standard runtime?

Here at PDC Microsoft has been conspicuously quiet about Silverlight, other than in the context of Windows Phone 7 development. IE9 man Dean Hachamovitch remarked that “accelerating only pieces of the browser holds back the web”, and last night Microsoft watcher Mary-Jo Foley got Server and Tools president Bob Muglia to admit that “our strategy has shifted” away from Silverlight and towards HTML 5 as the cross-platform client runtime, noting that this was a route to running on Apple’s mobile devices.

The Silverlight cross-platform dream is over, it seems, but let me add that Silverlight, like Microsoft itself, is not dead yet. Microsoft is proud of its virtual PDC streaming application, which is built in Silverlight. The new portal for Windows Azure development and management is Silverlight. The forthcoming Visual Studio Lightswitch generates Silverlight apps. And to repeat, Silverlight is the development platform for Windows Phone 7, about which we have heard a lot at PDC.

Let’s not forget that IE9 is still a preview, and HTML 5 is not a realistic cross-platform application runtime yet, if you need broad reach.

Muglia’s remarks, along with others here at PDC, are still significant. They suggest that Microsoft’s investment in Silverlight is now slowing. Further, if Microsoft itself is downplaying Silverlight’s role, it will tend to push developers towards Adobe Flash. Alternatively, if developers do migrate towards HTML 5, they will not necessarily focus on IE9. Browsers like Google Chrome are available now, and will probably stay ahead of IE in respect of HTML 5 support.

I hope these latest reports will trigger further clarification of Microsoft’s plans for Silverlight. I’d also guess that if Windows Phone 7 is a big success, then Silverlight on the Web will also get a boost – though judging from the early days in the UK, the new phone is making a quiet start.

Finally, if Microsoft is really betting on HTML 5, expect news on tools and libraries to support this new enthusiasm – maybe at the Mix conference scheduled for April 2011.

AppFabric – Microsoft’s new middleware

I took the opportunity here at Microsoft PDC to find out what Microsoft means by AppFabric. Is it a product? a brand? a platform?

The explanation I was given is that AppFabric is Microsoft’s middleware brand. You will normally see the work in conjunction with something more specific, as in “AppFabric Caching” (once known as Project Velocity) or “AppFabric Composition Runtime” (once known as Project Dublin. The chart below was shown at a PDC AppFabric session:

image

Of course if you add in the Windows Azure prefix you get a typical Microsoft mouthful such as “Windows Azure AppFabric Access Control Service.”

Various AppFabric pieces run on Microsoft’s on-premise servers, though the emphasis here at PDC is on AppFabric as part of the Windows Azure cloud platform. On the AppFabric stand in the PDC exhibition room, I was told that AppFabric in Azure is now likely to get new features ahead of the on-premise versions. The interesting reflection is that cloud customers may be getting a stronger and more up-to-date platform than those on traditional on-premise servers.

Microsoft PDC big on Azure, quiet on Silverlight

I’m at Microsoft PDC in Seattle. The keynote, introduced by CEO Steve Ballmer, started with a recap of the company’s success with Windows 7 – 240 million sold, we were told, and adoption plans among 88% of businesses – and showing off Windows Phone 7 (all attendees will receive a device) and Internet Explorer 9.

IE9 guy Dean Hachamovitch demonstrated the new browser’s hardware acceleration, and made an intriguing comment. When highlighting IE9’s embrace of web standards, he noted that “accelerating only pieces of the browser holds back the web.” It sounded like a jab at plug-ins, but what about Microsoft’s own plug-in, Silverlight? A good question. You could put this together with Ballmer’s comment that “We’ve tried to make web the feel more like native applications” as evidence that Microsoft sees HTML 5 rather than Silverlight as its primary web application platform.

Then again you can argue that it just happens Microsoft had nothing to say about Silverlight, other than in the context of Windows Phone 7 development, and that its turn will come. The new Azure portal is actually built in Silverlight.

The messaging is tricky, and I found it intriguing, especially coming after the Adobe MAX conference where there were public sessions on Flash vs HTML and a focus in the day two keynote emphasising the importance of both. All of which shows that Adobe has a tricky messaging problem as well; but it is at least addressing it, whereas Microsoft so far is not.

The keynote moved on to Windows Azure, and this is where the real news was centered. Bob Muglia, president of the Server and Tools business, gave a host of announcements on the subject. Azure is getting a Virtual Machine role, which will allow you to upload server images to run on Microsoft’s cloud platform, and to create new virtual machines with full control over how they are configured. Server 2008 R2 is the only supported OS initially, but Server 2003 will follow.

Remote Desktop is also coming to Azure, which will mean instant familiarity for Windows admins and developers.

Another key announcement was Windows Azure Marketplace, where third parties will be able to sell “building block components training, services, and finished services and applications.” This includes DataMarket, the new name for the Dallas project, which is for delivering live data as a service using the odata protocol. An odata library has been added to the Windows Phone 7 SDK, making the two a natural fit.

Microsoft is also migrating Team Foundation Server (TFS) to Azure, interesting both as a case study in moving a complex application, and as a future option for development teams who would rather not wrestle with the complexities of deploying this product.

Next came Windows Azure AppFabric Access Control, which despite its boring name has huge potential. This is about federated identity – both with Active Directory and other identity services. In the example we saw, Facebook was used as an identity provider alongside Microsoft’s own Active Directory, and users got different access rights according to the login they used.

In another guide Azure AppFabric – among the most confusing Microsoft product names ever – is a platform for hosting composite workflow applications.

Java support is improving and Microsoft says that you will be able to run the Java environment of your choice from 2011.

Finally, there is a new “Extra small” option for Azure instances, aimed at developers, priced at $0.05 per compute hour. This is meant to make the platform more affordable for small developers, though if you calculate the cost over a year it still amounts to over $400; not too much perhaps, but still significant.

Attendees were left in no doubt about Microsoft’s commitment to Azure. As for Silverlight, watch this space.

Lessons from Evernote’s flight from .NET

Evernote has released version 4.0 of its excellent note-taking product. Software developers have taken particular interest in the blog post announcing its release, because of what it says about .NET, in this case the Windows Presentation Foundation, versus native code:

Evernote 4 is a major departure from Evernote 3.5 in every way. While 3.5 added tons of great new features, there were some problems we simply couldn’t fix: the blurry fonts, slow startup times, large memory footprint, and poor support for certain graphics cards were all issues that the technology behind 3.5 (Windows .net and WPF) was incapable of resolving. As a result, we ended up chasing down platform bugs rather than adding the great features our users wanted.

So we decided to start over from scratch, with fast, native C++ that we knew we could rely on. As you’ll see, the results are amazing. This new version will set a foundation for rapid improvement.

Evernote 4 is designed to give you a great experience on any computer that you use, whether you’re on a netbook, a five year old Windows XP machine or a super fast top-of-the-line Windows 7 computer.

On our test hardware, Evernote 4 starts five times faster, and uses half the memory of Evernote 3.5.

A bit of background. WPF was introduced in Windows Vista and was originally intended to be the main GUI API for Windows, until the notorious reset midway through the Vista development cycle which marked a retreat from managed code back to native code in the operating system. I’d guess that the issues faced by the Evernote team were not so different from those faced back then by the Windows team at Microsoft.

WPF is not only based on .NET. It also uses DirectX and hardware acceleration under the covers, enabling rich multimedia effects. The layout language of WPF is XAML, giving freedom from scaling issues which cause hassles in the native API.

So what are the lessons here? Is WPF no good?

It is not so simple. WPF is brilliant in many ways, offering the productivity of .NET coding and a powerful layout framework. However it was a technology which Microsoft itself hardly used in its key products, Windows and Office – a warning sign.

When Microsoft built Visual Studio 2010 and .NET 4.0, the development team used WPF for the Visual Studio shell. This move by an internal team to create such a complex product in WPF was good for the framework itself. The font issue was addressed, performance improved. Evernote might not have found all its issues fixed in version 4.0, but it would likely have been better.

After I tweeted about Evernote’s experience, a couple of Microsoft folk contacted me to make this point. The trouble is, even version 3.5 of WPF was not the first version, and it never sounds altogether convincing if, when a customer complains about your product, you tell them everything is fine in the latest and greatest build. Why did Microsoft not get this right before?

That said, I am sure the latest WPF is better than before, though it is still heavyweight relative to native code. Factors that might suggest a WPF solution include:

  • The application only needs to run on Windows
  • There is no need to support older machines
  • The application makes use of data visualisation or other multimedia effects
  • The development team lacks the resources to build equivalent functionality in native code

The last point is important. Maybe a hotshot team of C/C++ developers could make a better job, but if you don’t have such a team or the money to hire it, it is not so relevant.

There is another possible approach, without abandoning .NET. Silverlight has many of the features of WPF, is lightweight, and runs on the Mac as well as Windows.

Sneak peeks at Adobe Max 2010

I’m at Adobe Max 2010 where Star Trek actor William Shatner is presenting the “sneak peeks” for this year’s conference. These are demos of Adobe research which may or may not make it into a product.

image

1. Rik Cabanier showed a tool called “Wallaby” which exported a Flash animation to HTML 5. We also saw an individual animated graphic extracted from the exported HTML and added to a web page. Finally, he showed the demonstration running on an iPad.

I would be glad to see Adobe work further on this concept.

2. Kevin Goldsmith demonstrated Pixel Bender 3D, generating animated 3D images using an extension of Pixel Bender shading, and running on the new “Molehill” 3D API in Flash Player. Pixel Bender is an existing Adobe shader technology. Even more impressive: the Pixel Bender 3D compiler has been converted to ActionScript so you can do this dynamically in Flash applications.

3. Anirudh Sasiikumar showed live Flex design and development. This is a live view in Flash Builder which compiles and runs code changed on the fly, reminiscent of Edit and Continue in Microsoft’s Visual Studio, though this looks even more seamless.

4. Dan Goldman showed Video Tapestry for finding a location within a video. The idea is that even showing selected frames does not give enough information, particularly if there is a lot of action. The video tapestry shows a continuous tapestry-like sequence, with the ability to zoom in and out, and pop-up key frames. This strikes me as both fun and useful.

image

5. Sebastian Lans and Lalit Balchandani showed a tool for performance testing a .swf, a Flash movie file. You can see performance metrics frame by frame making it easier to find the cause of performance issues.

6. Shilpi Khariwal demonstrated ColdFusion doing dynamic adaption according to the client being used, and using location data from a mobile device. Not the most spectacular of demos but useful.

7. Sylvain Paris showed a Photoshop tool that applies the style and optionally the colours from one image to another. The tool is also able to fix camera shake to some extent.

8. David Durkee showed the Typography of Code.  The ides is that programmer’s editors do not take advantage of all ways you can use typography to make text easier to follow. Not sure about this one, though Durkee is correct: programmers generally put up with ugly layouts, and “pretty” generally just means getting the spacing, line breaks and indentation consistent. Would more advanced typography improve productivity, or just get in the way?

image

9. Hartmut Warncke demonstrated Noise to Meaning, analysis of an audio file to identify audio events – not text to speech, but “phone ringing”, “man speaking”, for example.

10. Tinic Uro showed Stage Video, which improves performance by extracting video to a separate layer than can be executed on the GPU. The consequence is much lower CPU usage. This will apparently come to all versions of the Flash Player, not just mobile.

There was some compelling stuff on show here, though some of the presentations, which are necessarily short, did not fully convey their significance.

Flash to get 3D acceleration with “Molehill”

One of the demos here at Adobe Max was a 3D racing game, running in Flash with 3D acceleration. It was enabled by a new set of GPU-accelerated APIs codenamed Molehill. Adobe CTO Kevin Lynch remarked that with GPU-accelerated 3D, Flash games could come closer to console games in the experience they offer. Lynch also demonstrated using a game controller with a Flash game.

There are no precise dates for availability, but Adobe expects to offer a public beta in the first half of 2011. The APIs will be available in a future version of the Flash Player. Under the covers, the 3D APIs will user DirectX 9 on Windows and OpenGL 1.3 on MacOS and Linux. If no supported 3D API is found on a particular platform, Flash will fall back to software rendering.

One interesting aspect is that Molehill will also work on mobile devices, where it will use OpenGL ES 2.0. Apparently GPUs will be common on mobile devices because they enable longer battery life than relying on the CPU for all processing. I heard similar remarks at the NVIDIA GPU conference last month.

This will be a significant development, especially when put in the context of Flash appearing in the living room, built into a TV or on Google TV.

Adobe: no AIR planned for Windows Phone 7

I’m at the Adobe MAX conference in Los Angeles, and last night attended a couple of the “Meet the team” events where a bunch of Adobe engineers, product managers and others field questions about the products they are working on.

One of the events was on Adobe AIR, where an attendee asked whether we will see the AIR runtime on Microsoft’s Windows Phone 7. It is an interesting question, particularly at an event where mobile AIR has been highlighted. There is much talk of AIR for Android, and at the conference we have also discovered that the forthcoming Blackberry Tablet, the Playbook, uses AIR extensively for its user interface. AIR does not run on Apple’s iOS for iPhone and iPad, but Adobe has come up with a packager that compiles AIR apps to native code.

I have asked Adobe spokespersons before about AIR for Windows Phone 7 and have even been told that it will come, but it is a delicate matter. In fact, when I discussed this in a pre-MAX briefing with Adobe, I was informed was that Adobe would like to do it but that Microsoft will not permit it, though I doubt this is the whole story. The Flash runtime is known to be making its way to the device, though I have yet to see a date announced.

Last night the “Meet the team” presenter was clear. Adobe has no plans to deliver AIR for Windows Phone 7. We were told that Adobe sees Windows Phone 7 as a .NET device. The spokesperson (whose name I missed unfortunately – I’ll update if someone can tell me who it was) added mysteriously his belief that “it wouldn’t be the most successful endeavour for us.”

I would not assume from this that AIR will never appear on this platform; but it seems safe to say that it will not be soon.

The tension here is that supporting AIR would immediately increase app availability on Windows Phone 7, which would be to Microsoft’s advantage; but would also drive developers towards Adobe’s platform and away from Silverlight and .NET. The attraction of a cross-platform runtime is that you can develop once and deploy on a variety of devices, though there are always compromises involved.

Adobe may also have mixed feelings about supporting Windows Phone 7. Android is being heavily promoted here at MAX, even to the extent of handing a free Motorola Droid 2 to all attendees. If Windows Phone 7 becomes popular, Adobe will want its stuff to run there; but it might suit the company even better if it turns out to be a niche device.

Adobe aims to fill mobile vacuum with AIR

Today is day one of the Adobe MAX conference in Los Angeles. In this morning’s keynote CTO Kevin Lynch focused firmly on devices – both mobile devices and living room devices including Google TV. There was a nod to HTML 5 in the opening demo, a prototype of a new product called Edge which is a motion designer that extends JQuery, but the Flash player remains the heart of Adobe’s platform. The proliferation of incompatible devices is an opportunity for cross-platform runtimes, and Adobe intends to take advantage with Flash and AIR – the Adobe Integrated Runtime, for local applications that fun on Flash.

Released today in public preview, the Flex “Hero” SDK includes support for mobile development, among other things, and is backed by an updated Flash Builder code-named Burrito.

Right now the only mobile platform which is supported is Google Android, but others are promised. In particular, we heard a lot in the keynote about the Blackberry Playbook,  the forthcoming tablet from RIM, including an appearance from RIM boss Mike Lazaridis.

An interesting aspect of the Playbook is that the user interface of the device itself is built in part with AIR. As a RIM exec observed in a later Q&A, it makes sense for the OS to use the same framework as that used by third party apps, so that any issues are sorted early.

AIR popped up again in a a different context, as Lynch described Adobe’s Digital Publishing Suite. This suite targets magazine publishers creating publications for the Apple iPad, such as publisher Condé Nast, also represented at the keynote, which is adopting the platform for many of its publications from Wired to the New Yorker.

The Digital Publishing Suite exports publications from Adobe InDesign to a dedicated format with a .issue extension, played on the iPad by Adobe Content Viewer. Adobe will now implement the content viewer on AIR, so that digital publications will render on the new wave of Android tablets, Blackberry tablets, and others in future.

Also worth noting is that Adobe plans to insert itself into the distribution process beyond just providing the authoring tools and the runtime. The Digital Publishing Suite includes Adobe hosting for the content. More broadly, the Melrose project, now called Adobe InMarket, is a service where you host your application on Adobe’s servers and Adobe handles deployment to the various App Stores out there as well as credit card processing.

Of course Apple is working, it seems, to undermine Flash. The runtime is not allowed on iOS, Apple’s mobile platform. Apple is not including Flash by default in the latest Macs, and the forthcoming Mac App Store will not allow AIR (or for that matter Java) applications. You will still be able to install Flash and AIR on a Mac, but Apple will no doubt be encouraging users to go the App Store route.

It is a fascinating tension, particularly since Apple’s devices fit so well with other aspects of Adobe’s strategy.

Despite Steve Jobs, Lynch announced today that the number of Flash platform developers has grown by 50% over the last year, which is huge. I also wonder whether the Java turmoil, especially on the Mac, could work in Adobe’s favour as it builds support for its Flash runtime.

An honest assessment of Windows Phone 7

I’ve been using Windows Phone 7 for a week and a half now, in the shape of an HTC Mozart on Orange. So what do I think?

I am not going to go blow-by-blow through the features – others have done that, and while it is important to do, it does not convey well what the phone is like to use. Instead, this is my first impression of the phone together with some thoughts on its future.

image

First, it is a decent smartphone. Take no notice of comments about the ugliness of the user interface. Although it looks a little boxy in pictures, in practice it is fun to use.

Some things take a bit of learning. For example, There is a camera button on the phone, and a full press on this activates the camera from almost anywhere. Within the camera, a full press takes a picture, but a half press or a press and hold activates autofocus. I did not find this behaviour immediately intuitive, but it is something you get used to.

There is plenty to like about the phone. This includes the dynamically updating tiles; the picture hub and the ability to auto-upload pictures to Skydrive, Microsoft’s free cloud storage; and neat touches such as the music controls which appear over the lock screen when you activate the screen during playback; or the Find your Phone feature which can ring your phone loudly even if it is set to silent, or lock the phone and add an if found message.

The People hub is fabulous if you use Facebook. I don’t use Facebook much, but even with my limited use, I noticed that as soon as I linked with Facebook, the phone felt deeply personalised to me, with little pictures of people I know in the People tile. The ability to link two profiles to one contact is good.

I also like the Office hub which includes Sharepoint workspace mobile – useful for synching content. Microsoft should push this hard, especially as Office 365, which includes hosted Exchange and Sharepoint, gains users.

There are some excellent design touches. For example, many apps have a menu bar with icons at the foot of the screen. There are no captions, which saves space, but by tapping a three-dot icon you can temporarily display captions. In time you learn them and no longer need to.

The pros and cons of hubs

Microsoft has addressed what is a significant issue in other smartphones: how to declutter the user interface. Windows Phone 7 hubs collect several related apps and features (between which there is no sharp difference) into a multi-page view. There are really six hubs:

  • People
  • Pictures (includes the camera)
  • Music and videos
  • Marketplace
  • Office
  • Games

I like the hubs in general; but there are a few issues. Of the hubs listed above, four of them work well: People, Pictures, Music/Videos, and Games. Marketplace is not really a hub any more than “phone” is a hub – it is just a way to access a single feature. Office is handy but it is not a hub gathering all the apps that address a particular area; it is a Microsoft brand. If I made a word processor app I could not add it to the Office hub.

Further, operators and OEMs can add their own hubs, but will most likely make bad decisions. There is a pointless HTC hub on my device which combines weather and featured apps. It also features a dizzying start-up animation which soon gets tired. I have no idea what the HTC hub is meant to do, other than to promote the HTC brand.

Speaking of brands, I have deliberately left the home screen on my Mozart as supplied by Orange. As you can see from the picture above, Orange decided we would rather see four Orange apps occupy 50% of the home screen (before you scroll down), than other features such as web browsing, music and video, pictures and so on. Why isn’t Orange a hub so that at least all this stuff is in one place?

The user can modify the home screen easily enough, and largely remove the Orange branding. But to get back to my point about hubs: it is not clear to me what a hub is meant to be. It is not really a category, because you cannot create hubs or add and remove apps from them, and because of the special privileges given to OEMs we get nonsense like the HTC hub, alongside works of art like the Pictures hub.

There is still more good than bad in the hub concept, but it need work.

Not enough features?

I have no complaint about lack of features in this first release of Windows Phone 7. Yes, I would like tethering. Yes, I would like the ability to copy an URL from the web browser to the Twitter client. But I am happy with the argument that Microsoft was more concerned with getting the foundation right, than with supplying every possible feature in version one.

I am less happy with the notion that Microsoft can afford for the initial devices to be a bit hopeless, and fix it up in later versions. I am not sure how much time the company has, before the world at large just presumes it cannot match iPhone or Android and forgets Microsoft as a smartphone company.

Is it a bit hopeless, or very good at what it does? I am still not sure, mainly because I seem to have had more odd behaviour than some other early adopters. Example: licence error after downloading from marketplace; apps that don’t open or which give an error and inform me that they have to close; black screens. A few times I’ve had to restart; once I had to remove the battery – thank you HTC Notes, which has been updated and now does not work at all. It is possible that there is some issue with my review device, such as faulty RAM, or maybe the amount of memory in a Mozart is inadequate. I am going to assume the former, but await other reports with interest.

The one area where Windows Phone 7 is weak is in app availability. I would like a WordPress app, for example. Clearly this will fix itself if the device is popular, though there are some issues facing third-party developers which will impede this somewhat.

App Development and the Marketplace

The development platform for third parties is meant to be Silverlight and XNA, two frameworks based on .NET which address general apps and games respectively. These are strong platforms, backed up by Visual Studio and the C# programming language, so not a bad development story as far as it goes.

That said, there are a couple of significant issues here. One is that third-party apps do not have access to all the features of the phone and cannot multi-task. Switch away from an app and it dies. This can result in a terrible user experience. For example, I fire up the impressive game The Harvest. Good though it is, it takes a while to load. Finally it loads and play resumes from where I got to last time. I’m just wondering what to tap, when the lock screen kicks in – since I have not tapped anything for a bit (because the game was loading), the device has decided to lock. I flick back the lock. Unfortunately the game has been killed, and starts over with resume and a long loading process.

The other area of uncertainly relates to native code development. C/C++ and native code is popular for mobile apps. It is efficient, which is good for devices with constrained resources; and while native code is by definition not cross-platform, large chunks of the code for one platform will likely port OK to another.

Third party developers cannot do native code development for Windows Phone 7. Or can they? Frankly, I have heard conflicting reports on this from Microsoft, from developers, and even from other journalists.

At the beginning, when the Windows Phone 7 development platform was announced at the Mix conference last year, it was stated that the only third-party developers allowed to use native code were Adobe, because Microsoft wants Flash on the device, operators and OEM hardware vendors. At the UK reviewer’s workshop, I was assured by a Microsoft spokesperson that this is still the case, and that no other third parties have been given special privileges.

I am sceptical though. I expect important third parties like Spotify will use native code for their apps, and/or get access to additional APIs. If you have a good enough relationship with Microsoft, or an important enough app, it will be negotiable.

In fact, I hope this is the case; and I also expect that there will be an official, public native code SDK for the device within a year or two.

As it is, the situation is unsatisfactory. I dislike the idea that only operators and OEMs can use native code – especially as this group does not have the best track record for creating innovative and useful apps. I have more confidence in third party developers to come up with compelling apps than operators or hardware vendors – who all too often just want to plug their brand.

I also think the Marketplace needs work. If I search marketplace, I want it filtered to apps only by default, but for some reason the search covers music and video as well, so If I search for a twitter client, I get results including a song called Hit me up on Twitter. That’s nonsense.

I wonder if the submission process is a too lax at the moment, because of Microsoft is so anxious to fill Marketplace with apps. I suppose there will always be too many lousy apps in there, on this and other platforms. Still, while nobody likes arbitrary rejections, I suspect Microsoft would win support if it were more rigorous about enforcing standards in areas like how well apps resume after they are killed by the operating system, and in their handling of the back button, two areas which seem lacking at the moment.

Complaints and annoyances

One persistent annoyance with the HTC Mozart is the proximity of menu bar which appears at the bottom of many apps, with the with “hardware” buttons for back, start, and search which are compulsory on all Windows Phone 7 devices. The problem is that on the Mozart, these buttons are the same as app buttons, triggered by a light touch. So I accidentally hit back, start or search instead of one of the menu buttons. I have similar issues with the onscreen keyboard. I’m learning to be very very careful where I tap in that region, which makes using the device less enjoyable.

Another annoyance is the unpredictability of the back button. I am often unsure whether this is going to navigate me back within an app, or kick me out of the app.

Some of the apps are poor or not quite done. This will sort itself presuming the phone is not a complete flop. For example, in Twozaic, when typing a tweet, the post button is almost entirely hidden by the keyboard. I would like an Android style close keyboard button (update: though the back button should do this consistently).

I have already mentioned problems with bugs and crashes, which I am hoping are specific to my device.

It seems to me that Microsoft has taken a look at Apple’s extraordinarily profitable approach to devices and thought “We want some of that.” The device is equally as locked down as an iPhone – except that in Apple’s case there are no OEMs to disrupt the user experience with half-baked apps, and operators are also prevented from interfering. With Windows Phone we kind-of have the worst of both worlds: operators and OEMs can spoil the phone’s usability – though this is constrained in that clued-up users can get rid of what they do not want – but we are still restricted from doing things like attaching the phone as USB storage.

Still not completely fixed – the OEM problem

My final reflection (for now) is that Windows Phone 7 still reflects Microsoft’s OEM problem. This device matters more to Microsoft than it does either to the operators or the OEM hardware vendors – who have plenty to be getting on with other mobile operating systems. In consequence, the launch devices do not do justice to the capabilities of Windows Phone 7, and in some cases let it does badly. I do not much like the HTC Mozart, and suspect that HTC just has not given the phone the attention that it needed.

One solution would be for Microsoft to make its own device. Another would be for some hardware vendor to come up with a superb device that would make us re-evaluate the platform. Those with long memories will recall that HTC did this for Windows CE, with the original iPAQ, the first devices using that operating system which performed satisfactorily.

HTC could do it again, but has not delivered with the Mozart, or I suspect with its other launch devices.

I have also noted issues with way Orange has customised my device, which is another part of the same overall issue.

Despite Microsoft’s moves to mitigate its OEM problem, by enforcing consistency of hardware and by (mostly) retaining control over the user interface, it is still an area of concern.