HTML5, Cloud and Mobile Create 'Perfect Storm' for Major App Dev Shift

The advent of HTML5 along with the move to mobile and cloud computing are conspiring to cause a major shift in the application development landscape akin to when Java displaced C++ as the major enterprise programming language 15 years ago, according to a top Oracle development executive.

NEW YORK €” The application development landscape is in the midst of a major era shift based on the "perfect storm" provided by the emergence of cloud, mobile and HTML5 as dominant themes in modern systems, said a top Oracle development executive.

Indeed, the shift from hard-core object-oriented languages to more Web-oriented development platforms is, in effect, much like the way Java moved in on C++ more than 15 years ago, said Cameron Purdy, vice president of development for Oracle€™s application server group.

Speaking at the QCon New York 2012 event here, Purdy said, €œChange for our industry is opportunity; I haven€™t seen anything like this in 15-plus years.€

€œCloud, HTML5 and mobile€”these three things will conspire to be a perfect storm for our industry,€ Purdy said. €œThe combination of HTML 5, mobile devices and the cloud is a rogue wave.€

Moreover, Purdy argued that with the shift to mobile development, €œHTML5 and JavaScript together are becoming a development platform unto themselves.€

Mobility is at the heart of that charge, as mobile devices are not always connected to the back-end servers that do the major processing work. This means some of that capability must be offloaded to mobile devices so they can be used in a disconnected mode. HTML5 and JavaScript enable this, Purdy said.

The app development world is swiftly moving from a Web-server-centric model to a thin server model, he said. Disruptions or discontinuities are driving this move. Disconnected device capability will lead to "disconnectable" applications, Purdy said. Disconnectable applications plus smart clients bring about the Thin Server Architecture. Meanwhile, cloud€”with both infrastructure as a service (IaaS) and platform as a service (PaaS) models€”continues to catch on and drive reinvestment as we see elastic scale-out, global data centers and capital-free computing emerge, he said.

However, the biggest unknown in this shift is the extent of JavaScript as a platform, Purdy said. He noted that with JavaScript as the new €œbyte code€ or platform, JavaScript Object Notation (JSON) becomes the new lingua franca of data, taking over from XML. The emergence of JavaScript is still ongoing, as JavaScript is showing up on the server. €œBut the downside is, it€™s single-threaded,€ Purdy said.

Of course, Oracle is not sitting idly by watching this wave. Oracle has recently announced its cloud strategy and has been reworking its products for the mobile world. And although Purdy did not make his talk into an Oracle commercial by any means, he did mention that Oracle has an ongoing effort named Project Avatar that the company announced at JavaOne 2011. Oracle has described Project Avatar as its €œhybrid programming model for dynamic rich clients, integrating HTML 5 on the browser as the UI, with Java applications as the controller and the model, and then Java EE 7 in the Cloud at the back end€”unifying Java ME, Java SE and Java EE.€

Purdy also mentioned Java€™s Project Nashorn, which is an effort to deliver a JavaScript engine fully developed in Java for the Java Virtual Machine (JVM) using the InvokeDynamic API. However, that effort is a ways off as it is slated to be part of Java 8.

Meanwhile, Purdy discussed the factors at work in the industry that led to Java supplanting C++ and how similar changes are at work today as the development platform shifts anew. When Java emerged ahead of C++, it was a very different era. It was the era of the Internet, the World Wide Web and the HTML browser, which required no client-side software per application, no installation and no configuration. This eliminated the startup time, memory footprint and native integration benefits of C++. Applications required fast, iterative development, better class libraries, modularity, long running capability, no memory leaks, multi-threading support and safety on the server. Java provided all these things above C++.

And where Java left holes, scripting languages such as Ruby, Python, Perl and PHP have been around to fill the void. The scripting languages provided density and startup speed that Java lacked, and possessed other benefits. They include the following:

  • its design for shared hosting;
  • much lower initial memory footprint;
  • stateless processes that are easy to scale and cycle;
  • simplicity and approachability;
  • hooks up to databases;
  • manages state on behalf of the user;
  • produces HTML;
  • rapid application development;
  • no object-oriented architectural requirements; and
  • no compile step, save and refresh.

Scripting languages will maintain a place in the new world of app development, Purdy said.