Write Once Run Anywhere, a pipe dream or reality for developers?

Posted on May 15, 2015


The holy grail for a modern developer to be able to write their application once and run it on ALL devices, from a PC to a tablet and on mobile phones. We have heard it from Sun Microsystems in the age of JAVA and more than a few times in Microsoft vernacular of smoke and mirrors.

JAVA now part of the Oracle stable (or should I say ‘unstable’, pun) of products never quiet achieved its goals, falling foul of the user interface (UI) challenge across devices amongst other runtime inconsistencies. Whilst widely adopted and available on all sizes of devices it never really achieved ‘Write Once run Anywhere’. In fact it has become better known in later years for being one of the biggest security risks for organisations and has lost significant traction as a result, see my earlier blog on this theme ‘Oracle puts JAVA users at risk‘.

The main player to deliver in the ‘Write Once run Anywhere’ space is Microsoft. Their dominant desktop market share being a valuable spring board into taking the same slice of the tablet and phone application market pie. The logic goes that if developers could write their windows applications for any one of the platforms and reach across the others then the compelling attraction of the Windows Desktop audience would pull market share into the Phone and Tablet class of Windows devices. Well that’s the theory. Much to do in the execution, as the many iterations and market hype of past attempts from Redmond has shown.
Now we have the latest challenger for the crown in the Windows 10 Universal Application Platform . Don’t you just love the Microsoft naming conventions, how to really cause confusion when discussing a subject, use a similar name as something else that aspired to the same goal but did not quiet achieve it. I am talking about Windows 8 Universal App’s (UA) and Windows 10 Universal Apps Platform (UAP). OK the Redmond imagination extended to suffixing ‘Platform’, which means you will have to pay attention to the acronyms as UA = Windows 8 generation and UAP = Windows 10. Got it?

The Windows 8 UA model is based on Project Class Libraries to share code across devices conforming to a subset version of the .NET Framework supported by the target windows device. This means that the business logic was shared but did not allow for the user Interface to be shared. So the Microsoft marketers could pump a cross platform story without actually having the goods to back it up.

Windows 10 Universal App Platform (UAP) is similar but goes the final mile. The main difference is that in the Windows 8 UA model it was about sharing no-visual code, the Windows 10 UAP extends into the user interface.

Windows 10 UAP introduces the Adaptive UX. A set of controls and libraries that allows developers to design once and run on many devices. Well at least in principle. Adaptive UX uses the familiar XAML based presentation language which Microsoft previous implemented inconsistently across Silverlight, Windows 8 and Phone. The Windows 10 UAP addresses this and endeavours to use the same XAML implementation everywhere.

One exception to the consolidated implementation of XAML is the Windows Presentation Framework (WPF) for desktop only applications which continues on its own unique path. There is logic in this, and it’s not a Microsoft fudge. The traditional WPF path is retained to preserve the traditional Window’s Operating System user experience (UX) for apps developed JUST for the desktop and no other device. If you look at applications written using the new Windows 10 UAP XAML implementation you will see a distinct change to the window styles and behaviours in line with the ‘Modern App’ themes. I guess this is an inevitability of the blending of these presentation styles across all devices.

Key to this of course is the device Operating System consolidated on Window’s 10. So there you have it, to play in the new wonderful world your target audiences need to be on the latest and greatest, no surprise really Microsoft are a profit focused business. In past years this has been a long hard slog getting the new Operating System platform adopted. This time Microsoft is taking some unique steps which should see the target platforms appear at an unprecedented rate, and drive the new UAP apps:

  1. Any users with a legitimate licensed version of Windows 7 or 8 will be able to upgrade FREE to Windows 10. This excludes Enterprise editions as this is a business class of license.
  2. Microsoft are taking back control of the upgrading of Windows 10 Mobile and no longer leaving it to the whim of the Mobile Phone manufacturers or carriers. This should ensure a more consistent target phone platform and contain fragmentation supporting a more consistent and reliable end user experience. Also consistent builds for developer apps to land on.
  3. Windows 10 mobile will run on many Windows Mobile 8 platforms AND Microsoft has been testing Widows 10 Mobile on some Android devices which could be a game changer if users can upgrade from Android to Windows 10 mobile at the handset level. See ‘Windows 10 Mobile running on an Android handset

As we should be getting used to by now everything Microsoft does has a Cloud component which will encourage greater adoption of their Windows Azure Cloud platform.

Microsoft is introducing a new class off application, the Hosted Web App. For a more detail watch the ‘Hosted web apps and web platform innovations video from the Microsoft Edge Web Summit last month. These are deployed in just the same way as any other Windows 10 UAP app i.e.: through the store or direct, but they can be served from the internet via an internet based application server.

Sound familiar? Well yes it is, Microsoft is injecting more naming confusion by adopting a much used generic term ‘Hosted Web App’ for its own new class of application. We have for many years enjoyed the use of rich applications in our Web browsers. But this has come at a cost AND with significant security implications as these are delivered through websites and publicly visible URL’s (even those you may try and hide) which as we all should know by now are not secure.

So what’s the difference? The power is the UAP Hosted Web Apps allow for greater desktop integration and eliminates the confinement of Browsers as interfaces. The UAP Hosted Web Apps have full access to the Windows Runtime API’s direct from script hosted on a remote server. An example of this are the Microsoft Office Web Apps, a first generation example. This allows for the convenient adaptation of browser based applications into rich Windows 10 UAP’s and eliminating the security risk that comes inherent with Browser based applications. That is not to say the new UAP Hosted Web App model is 100% security hardened, as with any application it is down to developer diligence, but the architecture does allow for a more robust delivery of end user functionality with all the benefits of a traditional web based application eliminating many of the security exposures. For more head over to the Microsoft Developer Network resources.

What about support for other vendors Operating Systems I hear you say? Well you are right, the aforementioned is dependent on developing for a Windows 10 family of Operating System BUT there are two initiatives that could open up the Windows UAP to iOS and Android apps. Microsoft is being truly inclusive in its vision albeit providing a slipstream for Android and iOS developers onto the Windows platform with two initiatives:

  1. Project Islandwood – A work in progress initiatives by Microsoft to allow iOS developers to Extend their apps to take advantage of Universal Windows Platform features with minimal changes to their iOS / Object C code.
  2. Project Astoria –  Is a Universal Windows Platform Bridge toolkit that enables Android Developers to build Windows apps for Windows phones with minimal changes to their Android code. (Also known as Project ‘A’, to avoid confusion I suspect with an earlier 2007 ‘Project Astoria‘ related to web data interaction services, the 3rd time in just this one blog I have identified Microsofts ineptitude when it comes to naming, which I covered in an earlier blog ‘Microsoft OneDrive, What’s in a  name?’)

Time and use will tell as developers start pushing the new Windows 10 UAP as to how it actually scales across all devices, but on the face of what we have heard from Microsoft we could be turning a corner into an inclusive ‘Write once Run Anywhere’ Microsoft centric ecosystem. Yes this is a one way flow of apps onto the Windows Platform based devices, but to have one of the world’s many OS platforms delivering an ‘Inclusive’ Universal Application capability has to be a milestone in technology terms.