One of the more confusing aspects of the upcoming Windows 8 release is what is happening with ARM devices. Many developers I’ve talked to about Windows 8 see this as an important thing to know, because the Windows 8 legacy desktop experience is not so wonderful, and because ARM devices have become an important part of the computing landscape. Some of Microsoft’s recent announcements have made things a little confusing, due to their lack of direct statements on some topics, and fine nuances in terminology in other statements. Here are the facts based strictly on things Microsoft has said, as well as some of my speculations and thoughts about the topic.
Windows 8 will come in two main flavors: x86/x64 and Windows on ARM (WOA). The primary difference between the two is that WOA will not run third-party applications in the legacy desktop. WOA will run Microsoft applications (think Notepad, Calculator, and system utilities like regedit and Windows Explorer). Microsoft announced that Office will run in WOA, but it seems to be a version of Office limited to Word, Excel, PowerPoint, and OneNote. It remains uncertain if these will be ports of the current x86/x64 versions, new versions made for the desktop but built from the ground up, or Metro rewrites (or even ports of the WP7 versions). They may even just be Web versions of the apps designed explicitly to work within Windows 8’s version of Internet Explorer 10.
Speaking of Internet Explorer 10, when it runs in the Metro UI, it will not allow any third-party plugins, so that means no Flash or Active X controls. Third-party plugins will run under the legacy desktop. At the same time, with the WOA version not allowing third-party apps in the legacy desktop, it is highly unlikely that third-party plugins or Active X controls will be running under WOA. This means that if you have an application running Active X controls, Flash, etc., you need to rewrite or replace those applications, or you will be locked out of Windows 8 running on ARM devices.
So far, this is all fairly bad news for developers. The good news is that writing Metro-style apps on top of the WinRT API will give you cross-platform compatibility across x86/x64 and ARM platforms, as long as you do not use any native C/C++ code; if you do, a simple recompile to create a second version should do the trick. If you are a Silverlight or WPF developer, the transition to Metro/WinRT is fairly smooth (more so for Silverlight than WPF developers, since they are already reduced to the tight sandbox and reduced feature set), particularly if you are already using the MVVM design pattern.
At the end of the day, WOA is the start of a new era for Windows developers. Unless WOA is a total failure (and it could be), developers are going to have to start looking past the current desktop model. My best recommendation is to start moving as much logic as possible into Web services and write thin native shells around them, so you can reach not only WOA easily, but iOS, Android, RIM, and WP7. If you cannot do that, then Web applications are the way to go. Even if WOA is not a success, the pressure from non-Windows desktop environments will only get stronger, so shifting your development to fit this model is a smart move.
Keep your engineering skills up to date by signing up for TechRepublic’s free Software Engineer newsletter, delivered each Tuesday.