Java's success in remaining relevant on the ever-changing landscape of software development has been its relative simplicity.
On Wednesday, Oracle celebrated the 20-year anniversary of the birth of the Java programming language with a blitz of marketing. Certainly the largely pre-Internet IT landscape was far different when the language was introduced by Sun Microsystems (which was purchased by Oracle in 2010). Yet Java has remained on the development workbench when many other widely used languages of the 1990s, such as Delphi or Perl, have been pushed to the side or used only for a select set of duties.
"The core values of the language, and the platform, are readability and simplicity," said Mark Reinhold, Oracle's chief architect for the company's Java platform group.
Today, you'd be hard-pressed to find programming languages in as many corners of the computer industry as Java. It routinely tops, or is near the top of, surveys of the most widely used programming languages. Oracle estimates that the language is used by over 9 million developers and powers more than 7 billion devices.
It acts as the engine for both very small devices and the largest cloud computing systems. Google uses the language as the basis for programs that run on Android-based mobile devices. On the other end of the spectrum, the Map/Reduce framework for the Hadoop processing platform requires Java code to crunch petabytes of data.
Programmers like Java because, among other things, it is a very readable language, compared to the thickets of dense code often produced using languages such as C++ or Perl. "It is pretty easy to read Java code and figure out what it means. There aren't a lot of obscure gotchas in the language," Reinhold said.
Readability is a particularly valuable trait for a programming language, especially one used for writing enterprise software, Reinhold explained. With complex software, programmers must be able to understand code that may have been written months, or even years earlier.
"Most of the cost of maintaining any body of code over time is in maintenance, not in initial creation," Reinhold said.
Other characteristics also have worked in Java's favor, Reinhold added. One is Java's long-touted "write once, run anywhere," capability. Because the code runs on the cross-platform Java Virtual Machine, developers can write a Java program on a Windows laptop, then run it on a Linux or Solaris server without recompiling the code for the new platform.
Oracle, and Sun before it, were also mindful about long-term compatibility, which helps keep perfectly serviceable software running for as long as possible. "Every time we do an update release, or a major release, we, and the entire ecosystem, are strongly committed that old applications will continue to work," Reinhold said.
For Al Hilwa, who covers software development for IDC, this long-term support, along with the "methodical evolution" of the language, is what gives Java its staying power.
"Using Java in Android was definitely something that has extended its life as a valuable skill-set and good Oracle governance in recent years has been helpful," Hilwa wrote in an e-mail. "The maturity of the technology ... should not be underestimated, especially when compared with the many dynamic languages that have become popular in recent years, though have not been able to exceed Java's adoption rate."
Oracle continues to move the language forward with these goals in mind. For the next major version of the language, Java 9, due in September 2016, the language's designers are reorganizing Java into a modular architecture.
The idea is to make Java more suitable for smaller devices, such as the expected wave of Internet of Things devices. "We want to subdivide it into modules so you can choose what you can use for your application," Reinhold said.
Such work may be instrumental in keeping Java vital for the next 20 years of computing.