This year marks the 20th anniversary of one of the most widely-used programming languages in computing: Java. Given how prolific it continues to be, Java has undoubtedly revolutionized IT and has permeated computing to the point where despite its age, it is still one of the most relevant and highly applicable languages available. To properly understand the impact of Java on computing and its future, it's important to understand where Java came from, and how (and why) it was conceived of in the first place.
Java was born in the early 1990s out of a frustration with Sun Microsystems's C++ and C application programming interfaces (APIs), and the desire to build a functional alternative to C++ and C programming languages. Three primary objectives underscored the creation of Java: 1) to replace C and C++ (languages from which Java derived much of its syntax) with a more functional, robust design, 2) to enable the building and deployment of apps for the Internet, and 3) to be lightweight, portable, and able to function in distributed environments.
Java, which has been owned and curated by Oracle Corporation since 2010, was developed at a time when the Internet was just beginning to gain traction with the masses. It was fundamentally designed to operate and usher in a new era of internet-based programming and the pre-eminence of the World Wide Web. (In 2015, Oracle offers a fistful of Java certifications, and is currently offering an anniversary discount of 20 percent off the cost of exams.)
The fact that Java is such a well-founded programming language has given it time to mature and find several specific facets of programming in which it remains unmatched. Despite the fact that two decades have passed since its original conception, Java is still one of the most popular, widely-used programming languages because it successfully solved many of the problems that plagued programmers in the early 1990s - and continues to solve these problems today.
Advantages of Java
Mild Learning Curve: One of the primary advantages of Java is its relatively mild learning curve. This stems largely from the fact that much of its syntax is derived from various C-based programming languages that programmers and developers are already amply proficient in. Java was designed specifically with ease of use in mind, making it significantly easier to learn, write, compile and debug than other programming languages.
Platform Independence: As was previously mentioned, portability was such a key feature that Java's original creators wanted to underscore every aspect of it. A major reason for Java's sustained popularity is its platform independence at both the source and binary levels, meaning that Java programs can be run on many different types of computers. As long as the computer in question has a Java Runtime Environment (JRE) installed, virtually any computer can run Java applications whether it's a cell phone, a Windows PC, an Apple computer, or a Linux/Unix platform.
Object-orientation: Java's programming syntax is object-oriented, meaning that its programs consist of elements referred to as objects. Object-oriented languages liked Java allow users to write reusable code and create modular programs and applications.
Distribution: Java was designed specifically to be distributed, meaning that Java contains an easy-to-use, robust platform that allows two or more computers to work on a network. Users and proponents of Java have repeatedly cited the unmatched ease of writing networking programs in Java as one of its principal advantages when compared to other programming languages.
Despite its obvious advantages over other programming languages, recent years have exposed significant security issues inherent to Java that make many industry experts question its long-term viability as a widely-used computing language.
Java contains several security vulnerabilities that make it especially prone to malicious attacks from hackers and other undesirable third-parties. Specifically, significant weaknesses in Java's sandboxing mechanism allow skilled hackers to bypass security restrictions imposed by the security manager. Additionally, the Java class library contains several vulnerabilities that hackers can easily exploit.
Traditionally, Java applications employed either testing-based or network-based security programs, neither of which has proven successful in fixing Java's substantial security issues. Network-based approaches have proven clumsy at best, as they rely on loose security standards to ensure that authorized traffic is not improperly categorized as unauthorized and blocked accordingly. Testing-based security programs on the other hand often generate far too many frivolous security holes and as a result, make it difficult for developers to prioritize key security issues and focus their efforts mostly on them.
It is worth noting that a substantial portion of Java's security problems stem from the fact that less than one percent of enterprises were running the latest version of Java according to a 2013 survey conducted by Bit9 that analyzed roughly 1 million endpoints at hundreds of enterprises across the globe. This stems largely from the fact that patching Java is a particularly tedious and time-consuming process.
The Future of Java
While certainly far from perfect, Java contains several integral features and characteristics that continue to drive its popularity and, as such, it is likely that Java will continue to be a popular and widely-trusted programming language for years to come. While some of this sustained popularity is undoubtedly inertia and derivative of the fact that so many large organizations and enterprises already use Java, the success of Android (which uses Java extensively) demonstrates that the programming language can certainly adapt to changing trends in technology and the marketplace.
Java is seeing especially prominent rates of adoption in Big Data and The Internet of Things (IoT). In recent years, the amount of data that we produce (and subsequently analyze) has grown exponentially, and Java has rapidly evolved to become the developers' language of choice for Big Data analysis and the IoT. Programmers cite the adoption of Java by industry giants such as Facebook, Java's extensive and exceptional collection of open source libraries, and the fact that it is already as widespread as the major reasons why Java will sustain the future of Big Data and the IoT for the foreseeable future.
Despite its security flaws and its age, Java has reshaped the world of programming and will likely continue to do so for years to come. 2015 marks the marks its twentieth anniversary and given Java's remarkable ability to stay relevant despite massive and constant changes in technology over the past twenty years, it is likely that we will be celebrating the language's 25th anniversary in 2020.