Embarcadero Technologies has entered the discussion of HTML5 vs. native code for mobile application development with its release last week of RAD Studio XE4. The release allows developers to abandon their HTML5 tools in favor of true native code, according to David Intersimone, chief evangelist at the application and database development solution provider. HTML5 may deliver better time-to-market, he said, but native code delivers better application performance and user experience.

Intersimone said HTML5 tools can help developers create apps that look like an Android app, for example, but that’s where the similarity ends. “It looks like a native Android app, but it doesn’t necessarily behave at the highest performance of those,” he said. “People are realizing if they’re building a simple interface app, maybe they can use a scripting language. But whenever they want to have a fuller-featured app with lots of interactions by the user, they’re rewriting those in what we call true native code.”

He pointed out that some people will use the term “native,” but they won’t say “native code.” They will use “native” to mean the look and the feel of the application, or that the way the user interacts with the program is native on the platform. “But it’s a big difference for developers—not only in what they can do with the hardware and the operating system on each platform, but the performance and the memory utilization,” he said. “Developers have the control [with true native code]. I mean, other than if the processor executes a bad instruction, like the old floating point error from Intel many years ago.”

By true native code, Intersimone meant that the programming language that developers use is compiled to the binary code of the processor. “In our world, we talk about true native code, meaning binary code: the machine code, the object code, the things that make the CPU and the GPU work,” he said. “It’s just as if you were programming in Assembler or C.”

Intersimone said that Embarcadero is using the Delphi language and compilers. “With us, you write it once, you compile it, and it just runs true native on each of the devices,” he said. “We use the term ‘device’ to also mean Windows machines and Macintosh machines because all these Windows and Mac devices have location, orientation and maybe light sensors. So the migration of things you see in a device is moving back into the traditional notebooks.”
Developers are expecting that they can write it once, with the full power of true native code, and have it work on all these different supported devices, he said. “And that’s what we’re doing with Windows 32, Windows 64, Macintosh OS X and iOS with Delphi: one language, one product, one codebase, one compile, on all the platforms,” he said. “We’re also working on our C++ compiler for the future to give the C++ developers the exact same capability.”

Intersimone said that other systems like PhoneGap use HTML or JavaScript. “Then what they do is, they package all the code up with a JavaScript engine or an HTML engine,” he said. “They then wrap around that some native code that lets you launch a ‘native application’ with that kind of look and feel.”

But, ultimately, the program code that you write in JavaScript and the markup that you do in HTML5 is being interpreted by those runtime engines, Intersimone said. “The other systems use a virtual machine that sits between you and the hardware, between you and the operating system, between you and the user,” he said. “And then you write some code in whatever language that passes this bytecode or whatever to an intermediate machine. So they’re either relying on some other kind of runtime like, for example, C# running with .NET. There’s a .NET runtime, and C# generates this kind of intermediate code.”

According to Intersimone, Embarcadero is the only provider offering a true native-code, cross-platform tool. “Microsoft does it for Windows and their Windows phone, with C# and C++,” he said. “But they’re Windows only. There’s no one doing true native code, compilers, and one-codebase project development on Windows, Mac and iOS. Our next stop is Android later this year.”

Name: RAD Studio XE4 suite
Launch date: April 22, 2013
Components: The Delphi, C++Builder and HTML5 Builder development environments
Description: Multi-device, native application development platform. The company said it gives developers a multi-device native framework, compiled language, and single-source codebase across all devices.
Purpose: Developers can use RAD Studio XE4 to create applications for PCs, tablets and smartphones, giving users an experience that the company said is equal to applications created with the platform SDKs.
Key features:
• Full application framework for iOS, Windows and Mac OS X, with support for Android coming soon.
• Full visual designer for iOS, Mac and Windows user interfaces with multiple device types, resolutions and orientations.
• iOS native-styled user interface controls and native services such as motion and camera sensors, geolocation, sharesheet, and notification services.
• Local database support for SQLite, IB-Lite and InterBase Embedded ToGo.
• Built-in multi-tier enterprise connectivity for Oracle, Sybase, IBM DB2, InterBase, MySQL, Microsoft SQL Server, Microsoft Azure, Amazon Web Services, and SOAP and REST services.