Skip the navigation

QCon: Application development faces seismic shift

Java overtook C++ in popularity because it was better suited for the Web, argues Oracle's chief of development

By Joab Jackson
June 19, 2012 04:05 PM ET

IDG News Service - In much the same way that Java replaced C++ 15 years ago as the dominant programming language for enterprise software, Web development technologies such as HTML5, JavaScript and others might supplant traditional programming languages today, according to an Oracle software executive.

The reason for the shift is that new Web development technologies better fit today's mobile platforms, said Cameron Purdy, vice president of development for Oracle, at the QCon software conference in New York on Tuesday.

"HTML5 and JavaScript together are becoming a programming platform onto themselves," Purdy said. "We haven't seen this magnitude of change in 15 years, since the Web came into public existence," Purdy said. Their growing popularity may be "quite analogous to what we saw with Java in 1996."

To boost his argument, Purdy examined the reasons behind Java's rise in popularity in the mid-1990s, when C++ was then the dominant programming language for building enterprise applications.

Many have attributed the rapid success of Java to the efforts of the company that created it, Sun Microsystems, but this wasn't strictly the case, Purdy argued. "Java wasn't big because it was well-marketed ... Sun couldn't market its way out of a paper bag," he said. (Oracle now owns the trademarks to Java.) Rather, Java grew in popularity because it best fit the needs of the developers at the time. "There were real technical reasons that Java was important," he said.

At the time, Java simplified programming in a number of ways. It automated garbage collection, the act of freeing up memory that is no longer used. Writing code to free memory in C++ programs can be burdensome to programmers. Also, by automating garbage collections, Java was able to pave the way for the greater use of frameworks, or sets of libraries that automated various routine tasks. Also, Java was better suited for running across multiple platforms, a capability C++ offered in theory though was difficult to implement.

C++ does have some upsides, Purdy admitted. It is faster, thanks to how the code is compiled directly against a specific hardware platform. Also, Java's garbage collection routine can slow the operation of a program at inopportune times, even with careful scheduling. Another upside: A C++ program does not take up as much memory as a Java program, because it does not need as many supporting files and is written for the specific architecture it is being run upon.

But these advantages weren't of high importance for programmers when the Web was just emerging. Memory wasn't a huge issue, because Java applications tended to be run from a server, which tended to have a generous supply of memory. Nor was speed a critical issue. Most of the long start-up times that are associated with Java programs come from times needed to start a Java Virtual Machine (JVM) to run the program. But the application server software typically keeps the JVM running continuously, meaning that Java applications could be just as speedy as their C++ counterparts. "How often do you start your Web application? Once a day? Once a month?" Purdy asked.

Reprinted with permission from Story copyright 2014 International Data Group. All rights reserved.
Our Commenting Policies