Java License Snafu May Explain Lack of Native Android for Windows 10
Perhaps one of the most interesting announcements Microsoft made at its Build conference in San Francisco six weeks ago was the ability for developers to bridge their Android and iOS applications to the new Universal Windows Platform (UWP). Making it easier for developers to port their existing mobile apps, as well as new ones, to UWP could be critical to making Windows 10 an appealing OS.
However, there's a somewhat different approach developers must take when building their UWP apps for Android versus iOS. Developers looking to port their apps from iOS to the new Windows 10 OS may find it easier than doing so with Android. That's because Microsoft EVP Terry Myerson -- who, in addition to overseeing Windows, is also now responsible for devices -- said in his Build keynote that developers can compile the same Objective-C code used to build iOS apps for iPhones and iPads within Visual Studio on Windows, "enabling you to leverage that code and use capabilities only found on [the] Windows platform." When doing so with Android apps, there isn't a comparable native approach.
That isn't sitting well with at least some Android developers. During the Q&A segment of a one-day Build roadshow stop in New York last month (the show is currently on a worldwide tour), an attendee asked if Microsoft has any plans to do for Android the equivalent of what it has done for iOS and allow native Java development in Visual Studio. Kevin Gallo, who is Microsoft's partner director for the Developer Ecosystem and Platform organization and who gave the day's keynote, responded: "I would love to do that. The challenge we have is there's a company that is currently the steward of Java who doesn't make that easy. For Objective-C it was possible. So we went that route. We see it as a great way of integrating with the application, where you can start with the codebase you've got and just use that language to build."
Implicitly, Gallo was saying Apple didn't stand in Microsoft's way.
The preferred language for native Android is Java. "Java is a very popular language. There are challenges in the Java space," Gallo said. "We're evaluating what we can do there. It's something we definitely are considering." The audience member asked if the issue lies with Oracle. "They're the steward," Gallo said. "They call it a steward for a reason."
The response was followed by laughter, and that was the end of that discussion.
Yet that brief exchange quickly reminded me of the feud Microsoft had in the late 1990s with the original steward of Java, Sun Microsystems, which Oracle acquired in 2010 for $7.4 billion. Sun revoked Microsoft's Java Virtual Machine license in Internet Explorer after accusing Microsoft of violating its terms. The dispute resulted in a lawsuit between the two companies. Concerns that Oracle would be able to engage in anti-competitive behavior also came up among critics of its bid to acquire Sun before the deal was approved by regulators. In more recent years, relations between Microsoft and Oracle have improved and the two announced a broad cloud compatibility pact two years ago.
To what extent Microsoft attempted to gain access to those Java components for UWP isn't exactly clear, but it doesn't look as though a contentious dispute -- if it is even contentious at all -- is rising to the levels of yesteryear.
IDC analyst Al Hilwa said the issue appears to be more of a licensing matter than a technical barrier. "I actually think that it would be a big win for Oracle to be involved more directly with an Android development platform on Windows and potentially elsewhere," Hilwa said. "In theory, vendors like Microsoft can do a parallel implementation of Java, much like Google did, but the legal exposure here is still open because of the Oracle/Google case."
Oracle said it's not commenting. A Microsoft spokesperson pointed to the company's new Project Astoria, the tooling announced at Build, which lets developers bring code from their Android apps to Windows while working within their current IDE. "It uses an Android subsystem to run code from your app in a highly efficient, Windows-optimized way," the spokesperson said.
For iOS, Microsoft's Project Islandwood, also announced at Build, imports iOS apps to the Windows ecosystem. "Via a Visual Studio extension, Islandwood takes a project-based approach -- translating your existing Xcode project into a Visual Studio solution, providing native support for Objective-C and its runtime, and providing a strong subset of the APIs you'll find on iOS, which makes it easy to bring your code across without significant modification," the spokesperson said. "Once it's in Visual Studio, it's a regular Universal Windows app app that happens to be written in Objective-C and uses some APIs from another ecosystem."
IDC's Hilwa said he believes most Java developers should find the bridging approach suitable. "The feedback I hear from developers and app owners is that they are more likely to use the Android 'bridge' approach to bring an app to Windows 10," he said. "It promises to be quicker, though admittedly less strategic in terms of commitment to the platform. But, as long as the services being used are Microsoft's services, then essentially Microsoft gets what it wants out of the exercise."
Forrester analyst John Rymer said that to his knowledge, Microsoft doesn't have a Java license but "it relies on Oracle and Azul for the Java VMs that run on Azure." Azul and Microsoft partnered two years ago on a Windows distribution build of the OpenJDK that will run on Microsoft's Azure cloud platform.
"Underscoring all this, of course, is the assumption that Android and iOS developers will have any interest in Astoria and Islandwood in the first place," wrote Ars Technica's Sean Gallagher last month in a deep look at Microsoft's push to incent Android and iOS developers to port their apps to UWP. "With its broader reach, Islandwood may be the easier sell, but none of this is automatic. There are plenty of developers today using Xamarin to write apps for Android and iOS using C# and .NET. These apps should be easily portable to Windows 8 and Windows Phone -- but often those developers aren't bothering."
Either way, for those wondering why Microsoft is offering native iOS support for UWP but not for Android, that's presumably why. Regarding the question of whether Microsoft will offer native Java support on Project Astoria, the spokesperson said Microsoft has no immediate plans but recommended an alternative in the form of a plug-in available in the Visual Studio Gallery.
Posted by Jeffrey Schwartz on 06/19/2015 at 12:53 PM