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
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.
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.
- Real-Time Application-Centric Operations Visibility with NetScout's Approach to Service Delivery Management This ENTERPRISE MANAGEMENT ASSOCIATES whitepaper examines the move towards application/service performance visibility within IT operations
- Architects lead the next generation of data-driven applications Read this whitepaper to find out how application architects can quickly and confidently deliver long-lasting applications that minimize cost, complexity, and risk while...
- Gartner 2013 ALM Magic Quadrant Report This Gartner Group report is a must-read to gain a better understanding of the automated software quality assurance market today.
- Finding agility in the age of applications This white paper reveals how to extend Agile throughout the enterprise and make your business more nimble.
- Top 4 Digital Signage Fails Join RMG Networks for a look at four of the most common reasons digital signage fails in corporate businesses. Learn about strategies to...
- Mastering the Art of Mobile Content Management Mobile device usage in the enterprise has skyrocketed in recent years, and it continues to escalate. All App Development White Papers | Webcasts
Computerworld has launched its annual search for outstanding IT leaders who align technology with business goals. Nominate a top IT executive for the 2015 Premier 100 IT Leaders awards now through July 18.