Implications of an Open Sourced WinJS

The big news (to me) out of Microsoft’s Build conference was that Microsoft is open sourcing WinJS. I think it is the impetus for the other big announcement about “universal apps” running all the way from phones to Xboxes.

WinJS was introduced a couple of years ago as a library to develop native Windows 8 apps using typical front-end web tools. I’ve talked about it here and there on my blog, and in further detail during my recent SXSW talk about developing responsively for Windows 8.

The main weak point of WinJS was that you could only use it on Windows 8 and 8.1. Not Windows Phone and not in the browser. Releasing on multiple platforms and prototyping functionality quickly in the browser were out of the question. This open sourcing, in theory, changes that. Now a single codebase should be able to work well across devices and even platforms.

Adaptive Input

I make no secret that I am a web developer, not a Microsoft developer. The fact that they are reaching out to web developers is fantastic. Their vision for Windows across platforms is right in line with what I love about the web.

As a web developer, we can make no assumptions about how a person views our content. For a brief time it was common practice to assume “small screen” and “touch” were equivalent. Or that “mobile” meant “320px.” We’re smarter than that, and with Windows 8.1 plus these upcoming changes, Microsoft makes sure we assume nothing. Windows 8.1 already has great handling of touch, stylus, and mouse… abstracting out what can be and allowing for specific gestures when possible. Keeping an adaptive input approach (as discussed by Jason Grigsby) in mind is key to a successful app across the myriad of devices available. Throwing speech and Kinect gestures to the forefront of Windows, too… well it admittedly makes it more difficult to develop yet, if done well, more satisfying for the user.

I feel like we are at a point where handling screen size is the easy part of successful web development. Making it look great everywhere is one thing. Making it work great everywhere is the challenge… and the fun.