On this day in 1995 Java was officially announced by John Gage and Marc Andreessen. 24 years later the language has gone a long way and evolved into one of the most widely used programming languages. To find out how Java has changed over the years we’ve asked our colleague and Java expert Grozdan Grozev, who has nearly 20 years of experience with the programming language.
When did you start using Java?
My first touch with Java was in the summer of 2000. I started as a trainee in a company that was building general enterprise solution with SAP application server using Enterprise Java Beans.
What was the first thing you built in Java?
Well, besides the things that a developer creates at work, which are often just parts of a bigger project, the first thing I built with Java was a small client server application for a university project.
What are you currently working on?
Right now, I am part of a Java backend team that develops systems responsible for the software updates in the vehicles of a very popular car manufacturer. We are a customer-oriented team and we support and build new components mostly requested by the customer. The project is based on OSGI and currently uses Java8. It runs well both on OracleJDK and OpenJDK.
In your opinion how has Java evolved over the years?
Java has gone a very long way since its appearance in the middle of the 90s. At first, it was unstable. And because Java code runs in a virtual machine there were problems with the garbage collection and memory management, threading mechanism was also hard to manage. But the important thing is that Java was and still is architecture-independent. It has adopted some good mechanisms, mostly from C++, such as templates. And after so many years it evolved to a very sophisticated object-oriented language.
The other notable change is related to the different implementations of the Java virtual machine. Through the years all of them have changed and fixed the drawbacks that existed in the beginning. Now the language provides development mechanisms that are common and widely accepted such as thread pools, lambdas, single inheritance has been changed to resemble multiple inheritances, modularity appeared in Java9, etc.
Furthermore, Java has a very huge community. There are countless projects that were built to solve specific problems. Almost everything is standardized. As a result, now the majority of the contemporary enterprise systems are built on Java, and not only enterprise! In the past the software world needed the application servers, now they are constantly replaced by micro-services and Java can handle well both of these “worlds”. We can think also of the object-relational mapping frameworks written in Java or of the powerful Spring. Java even powers the Android world.
What are the main advantages of the language?
Java is platform-independent. It is robust and fully object-oriented language. Among its advantages are the automatic memory management and proven multi-threaded solution. It is broadly accepted for building enterprise systems, but is also good for desktop GUI applications. Some of the embedded systems also run on Java. The language is both secure and simple. Moreover, it is easy to learn and a developer can effortlessly write clean and reusable code.
Are you passionate about Java and looking for new opportunities? Check out our vacancies and join us to explore together what would Java bring in the future.