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.
- Ten Factors Shaping the Future of Application Delivery Download this research report conducted by Enterprise Management Associates (EMA) to learn how those that are seeking to accelerate application delivery are leveraging...
- Using Continuous Delivery to Improve Software Delivery Learn more about the challenges impacting organizations and how continuous delivery processes can be a key success factor in accelerating software delivery.
- Global Bank Improves Quality of Application Development Read how this financial institution centralized build assets, cut development time in half and added additional security controls.
- HTTP Status Code Cheat Sheet Look at the Graph, Find the Code and Boom - You're Solving Problems. Identifying and understanding common HTTP status codes can go a...
- Cloud BI in Action: Recorded Webinar of Customer, Kony, Inc. See how Kony, Inc., a leading enterprise mobility company, is using TIBCO Jaspersoft for Amazon Web Services and Redshift to achieve embedded analytics...
- Cloud BI Overview: Jaspersoft for AWS Check out this overview of Jaspersoft for AWS, to easily and affordably build business intelligence solutions as well as embed visualizations and analytics... All App Development White Papers | Webcasts