Java, not Swift, will be the universal language for cross-platform mobile app development
A year ago, I wrote about how excited we were about the potential of using Swift to write multi-platform mobile apps. Many of our clients launch apps that are on Android and iOS — and I saw potential in the simplicity of Swift to serve as the base language for these multi-platform releases. We even built a proof-of-concept Android calculator app by creating a compiler that could take Swift code and transform it into raw Java code.
A lot has happened since then. Apple announced that Swift 2 is going to be open source. And this week, Xamarin, the leading cross-platform developer tools vendor, announced it is buying RoboVM — a technology that enables app developers to write apps in Java and deploy them to iOS and Android simultaneously. This is really huge.
We’re already big fans of Xamarin — as its solutions make it simple for developers to write code once using the Windows standard C# language. And with Xamarin’s own application framework, based on .NET, it’s fairly simple to deploy the code across multiple platforms. With one recent project, we estimated it saved us 35 percent in development time using Xamarin for Android and iOS apps.
RoboVM is similar, but based on Java and a Java framework — the other powerhouse cross-platform language used by programmers to power Android, the web, and many other types of software.
So now, Xamarin has cross-platform offerings for the two largest developer groups. By some estimates, there are over 6 million C# developers — and another 9 million Java developers. This acquisition more than doubles Xamarin’s potential developer footprint. The Xamarin IDEs (the C# one and the newly acquired Java version), together with the Xamarin Insights analytics and crash reporting tools, and Xamarin Test Cloud for automated testing, are positioning Xamarin to be a one-stop shop for multi-platform mobile app developers.
I talked earlier this week with InfoWorld veteran editor Paul Krill about the potential of Swift for Android development. Swift, as I told him, is a huge improvement over Objective-C for Apple. I also mentioned that the language, though, was only part of what you need to really enable cross-platform development. In fact, the language is the easy part.
The framework — the part of the code-base that does everything from making HTTP connections to drawing buttons and toolbars on screen — is the hard part. Even with Apple’s plan to open source Swift, there was no mention of whether they’d open source the iOS frameworks that Swift relies upon. Same goes for Java. But Xamarin already has a cross-platform framework called Mono (or now, simply, the Xamarin Platform), which is based on .NET. With RoboVM, Xamarin now has another cross-platform framework to offer as well. (Though, in my opinion, it may actually be better to make the Xamarin Mono Platform accessible from Java, rather than supporting two different frameworks.) In talking with Krill, I mentioned that Xamarin might be in position to build support into its platform for different languages, including Swift or Java.
And the very day after the InfoWorld article was published, Xamarin placed its bet on Java by acquiring RoboVM. Given the maturity of Java and the massive universe of skilled Java developers, I’d say that was a pretty smart bet (and some prescient prediction on my part).
Swift may be the sexy new language for Apple developers. But thanks in no small part to Xamarin, Java is on its way to becoming the universal language for cross-platform mobile app development.[icegram campaigns=”6561″]