Windows

Windows 8: A developer's first impressions

Justin James highlights the major changes in Windows 8 that developers need to know, and explains why he thinks Microsoft strategy might backfire.

My take

I think that the new Metro-style apps look fantastic. I haven't gone into the details about WinRT at a technical level yet, because there are few details available.

When looking at the number of code examples, it stood out that: Microsoft is really pushing JavaScript (147), C# did well (74), C++ had a surprising number too (72), but VB.NET had only one example. While I wouldn't call that proof of anything, it is not a good sign to VB.NET developers that Microsoft is in no rush to put sample code out there for them.

A number of people have asked, "what about phone and Xbox?" It's a good question, and right now, there are no answers. Microsoft isn't saying if WP7 (or WP8) is going to merge with Windows 8, or if it will remain separate.

WinForms, Silverlight, and WPF are still supported by VS11. I am surprised Microsoft isn't saying that WinForms devs are officially obsolete and need to stick to VS2010 or earlier, but there is still time for that to end. If you are writing an application now, it will still work with Windows 8. If you want to write an application that takes advantage of the touch interface functionality really well, and works great on a tablet (and possibly a phone or game console), Metro/WinRT will be the way to go. I see the big problem for legacy (non-Metro/WinRT) devs is that the experience of using these apps is currently quite poor; hopefully, Microsoft can improve that between now and the final version. For the time being, it feels very clunky to go to a Windows 7-style desktop that lacks much of its functionality (like a "Start" menu).

For developers who want to write Metro/WinRT applications, the transition is going to be rough, unless you have already been working in Silverlight or WPF. Even if you have used WPF, that will give you the XAML and application model concepts but not the UI paradigms. The UI model that Metro/WinRT uses is straight from WP7. In the demo apps, there is no easy way to exit. I assume that Microsoft uses a WP7-like tombstoning/multithreading model, because the only way to break out of them is CTRL+ESC. Likewise, in WP7 apps, there is no "legal" (as in, "will get past the App Hub testing process") way to deliberately exit the app. Don't like it? Neither do I, and neither do a lot of other developers. It makes sense for a phone and probably a tablet but not a desktop OS.

I realize that it is early in the development cycle of Windows 8 -- the release isn't even mature enough to be called a beta, and there is roughly a year before it hits gold status by most estimates. Microsoft has been slammed by a ton of analysts, industry observers, and reporters about its habit of announcing things like this in public well in advance of the actual release. Those folks are only seeing the PR side of things; for us developers, who are the lifeblood of Microsoft's ability to maintain or grow Microsoft's market share, we needed to see this now. The Metro/WinRT apps are a major change, and Microsoft needs us on board now so the company can launch with a full slate of quality titles. Think "new game console" style launch, not a traditional "new OS" launch. The problem is that unless Microsoft makes the experience of using legacy apps a lot better, Windows 8 will be a very unpleasant experience overall. And the new Metro-style apps are not mapping well to the keyboard/mouse; for instance, things that on a touch screen require a simple finger swipe now require the user to hunt down a scroll bar and use it. Metro works great on my WP7 phone and I love it there, but just as the Windows UI was a mess when translated to Windows CE and Windows Mobile, the Metro UI is a wreck on a desktop PC.

At this point (in other words, if nothing changes on these items between now and final release), I think this is a good time to decide if you can transition your applications to Web apps. Metro/WinRT is lousy for apps that do complex work. Meanwhile, IE10 is very invasive throughout Windows 8. While I often dislike Web apps, I think that for sophisticated tasks, they are better than Metro/WinRT from what I've seen, and the legacy app experience is so bad that not many developers will want to use it if they can avoid it, and new apps will feel very dated.

Regardless of what shakes out in the final project, it is clear that Microsoft is signaling that sophisticated desktop applications are a relative rarity, Web apps are much more common, and for the things that use local resources, users prefer simple apps on the phone/tablet level of complexity, not applications like we see now. I think Microsoft's strategy may backfire, as developers choose to write Web apps (possibly with non-Microsoft technologies) instead of trying to make their applications work in the very unique, non-backwards-compatible Metro/WinRT style, or having their applications using the clunky legacy desktop.

J.Ja

More about Windows 8

About

Justin James is the Lead Architect for Conigent.

11 comments
eye4bear
eye4bear

I have it set up as a dual boot on my PC and find that I must keep booting back to WIN 7 to really get anything done, it's like using Linix more, with that same steep learning curve, than a Windows upgrade. Besides, is MS crazy? Look at all the holdouts using XP still, if that many users will not update to Win 7, do they really think that users will switch to an even more radical OS.

IT.vgomez
IT.vgomez

Thanks you for this arcticle. Much fun..

nwallette
nwallette

And not all apps can be converted to ASP/PHP. If all I wanted to do was read CNN, look at pictures, and rent TV episodes from Netflix, I'd replace my desktops and laptops with iPads. I love the concept as a NEW platform... But in what world is the entire computing industry ready to replace all their existing software and input devices with a touchscreen? Has anyone even considered what you would do for an input device with a projector? Hack a Wii-mote? Nonetheless, I appreciate the detailed back-stage look, Justin. Excellent work.

Vulpinemac
Vulpinemac

So at least one professional seems to agree with my initial assessment that this changeover looks more damaging than helpful to the Windows environment--at least for now. One thing I do see is Microsoft actually trying to drive existing developers over to Metro so they can shut down legacy Windows as soon as possible. If they're successful, then perhaps the transition will be a lot smoother than I anticipate, but it will be costly for the end users who have to upgrade not only their Windows but nearly all of their applications to the new paradigm en-masse. That's an expensive prospect but one I believe is necessary if Microsoft wants to remain relevant in the computer OS business and the enterprise wants to continue using Windows. Legacy apps will end up hurting productivity as the typical three-year hardware replacement cycle won't necessarily drive the transition. Just as many businesses are still using WinXP and even Win2K, it may be a decade before they transition out of Win7 to a touch-based Windows. And that, I think, is the thing Microsoft needs to drive more than anything; they need to make the touch adoption intuitive and desirable. This writer's opinion indicates that they're not succeeding. WP7 with Metro has yet to make any impact in the mobile world while Android and iOS are strongly driving users in another direction. If the transition to Win8 isn't relatively seamless, customers will be pushed away by the changes rather than attracted.

CharlieSpencer
CharlieSpencer

those last three paragraphs on the second page are good insight for anyone who will be supporting W8, developer or not. That's exactly the type of feedback I've been looking for. As always, thanks.

daboochmeister
daboochmeister

Chrome OS coming to it from the "newbie", all-web-all-the-time side of a UI, WinRT growing out of an established full-featured OS base. (But of course, it was an absolutely stupid idea, in Chrome OS, according to many).

richcobrien
richcobrien

Thanks Justin for the overview. It difficult to get through all the relevant videos and docs to actually get to a decision point. We do like that Microsoft appears to making progress in the leadership aspect and doing 'something' bout it.

grillomalta
grillomalta

Am I wrong in thinking that Microsoft like the way the uncluttered simple lines of iOS integrate into the whole experience? I use Windows7 at home and at work, but rely heavily on my iPad when travelling or for outside work. Up to now I have not had any significant problems with iOS .... after all what is flash good for except for ads?

CharlieSpencer
CharlieSpencer

and probably won't be able to for years after it's released. Appx. 20% of my 230 systems still have CRTs. I can't see us replacing otherwise functional hardware to gain touch interfaces. At least, not until there's a 'killer app' on the order of Lotus 1-2-3. As I've noted most other places, I haven't seen it yet. What little I know makes me question the decision to use a single interface across all platforms, but that's the only opinion I've formed so far.

Justin James
Justin James

It's not just the lines, there's an overall workflow in the Metro UI (at least on WP7 devices) that actively reduces the number of gestures needed to get things done, at least compared to Android. Metro on a phone rocks... after 6 months with a WP7 phone, I'd rather go back to a "feature phone" than use Android again! I think Metro on a tablet will also be awesome. Metro for keyboard + mouse? I'm not sold yet. J.Ja

grayknight
grayknight

I think they can make some improvements for mouse and keyboard in Metro (ways to do the "touch" with a mouse or keyboard). I agree on WP7. I enjoy using it and keep finding easier ways to do things on it. I think the Metro and desktop will get to a better point of working together more fluidly and with mouse and keyboard. The existence of touch mice point to ways this could work.