When it comes to mobile development mind share, JavaScript, HTML, Objective-C, and Java reign supreme. But developers seeking a cost-effective approach to multiplatform mobile development may find an ace in the hole in an old friend: C++.
C++ can be leveraged for building native applications for Google Android, Apple iOS, Windows Phone and RT, and RIM BlackBerry 10, says John Thomas, director of product management at Embarcadero Technologies. Developers, he says, are "starting to realize that this approach of having to use the native tools for each of those environments is very expensive, and they're looking for a solution."
But can C++ grow beyond its game development niche? According to Thomas, business apps could also be a strong fit.
"C++ seems to be best suited for business applications that require sophisticated user interfaces and high performance client side calculations/algorithms," Thomas says. "A good example would be teleconferencing applications that need custom codes to run on the device."
Brought to life in 1979 by Bjarne Stroustrup as part of an experiment in distributed computing, C++ does indeed surface as a mobile development option for top platforms:
- The Android NDK enables parts of an application to be built using native-code languages like C++ and C. Candidates for the NDK, Google says, are "self-contained, CPU-intensive operations that don't allocate much memory, such as signal processing, physics simulation, and so on."
- While Objective-C remains Apple's language of choice for iOS, Apple cites iOS and Mac as sharing Objective-C and C++ compilers. LLVM compiler technology powering the Xcode 4 toolset lists C++ as a supported language. Embarcadero in 2013 plans to support C++ development for iOS and Android devices.
- RIM's BlackBerry 10 Native SDK includes the Cascades framework, enabling UI development in C++.
- Microsoft's Windows Phone 8 has full C and C++ support. C++ also supports Windows RT application development.
But can C++ be a multiplatform mobile player in the enterprise? IDC analyst Al Hilwa has his doubts.
The popularity of C++ in the mobile space is due to games development and the consumer space, Hilwa says. "Very few enterprises use C++ as most enterprise development has shifted toward the Java and Microsoft ecosystem of programming languages and more recently in the Web ecosystems."
That said, the language remains popular. The November Tiobe Programming Community Index, which ranks languages by popularity, has C++ in the fourth spot, trailing C, Java, and Objective-C.
C++ is not alone on the fringe of the big four mobile development languages. Scala, also initially positioned as a language for distributed systems, has been cited as a language suited for mobile apps.
Both Scala and C++ can serve to get developers aboard the mobile train with skills they already have. Still, it looks like Embarcadero will have its work cut out for it when it comes to pitching C++ as an enterprise apps solution. For mobile developers, the added choice could prove fruitful if proven.
This article, "And the winner for cross-platform mobile app dev is ... C++?," was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest business technology news, follow InfoWorld.com on Twitter.