Largely unaware, virtually everyone may have interacted with Java on a daily basis. Making online banking transactions, buying airline or train tickets, using streaming services, and even playing Minecraft (well, of course, in its 鈥淛ava Edition鈥) often unknowingly exploit the potential of the programming language, which will be 30 years old in May 2025. This milestone will be highlighted and celebrated in full force at Voxxed Days Ticino 2025, scheduled for January 16 and 17 in Lugano. It will be an opportunity to look back on three decades of programming history, which officially began with the announcement of its release on May 23, 1995 by Sun Microsystems, a California-based company acquired in 2010 by Oracle Corporation for $7.4 billion.
The history of Java goes back a few years, when a group of developers led by James Gosling created the Oak language , which later became Java for copyright reasons. There are various versions of how the name came about. The most credited ones refer to an Indonesian coffee variety or to the name of the caf茅 where Gosling and his colleagues discussed the project and where that type of coffee was likely served (hence the logo with the steaming cup).
Anecdotes that also testify to a certain affection for a programming language that for a long time was the most popular among developers. The reasons for its success and the profound changes introduced by Java in the world of programming are explained to us by Tiziano Leidi, director of the Institute of Information Systems and Networking (ISIN) at 精东影业 and member of the organizing committee of .
Tiziano Leidi, director of the Institute of Information Systems and Networking at 精东影业. On the screen is the logo of Java.
What new features did Java bring 30 years ago?
鈥淭o get a general idea, it is appropriate to paraphrase the definition that was given at the time: Java is an object-oriented programming language that is simple, robust, secure, portable, and designed to be platform independent. Certainly Java presented itself as a language that succeeded in consolidating concepts that until that time had not found a pure and widely used form, but were rather embryonic and niche solutions or extensions of existing languages. I am mainly referring to object-oriented programming.鈥
Let's spend a few words on object-oriented programming.
鈥淐ompared to procedural programming, in object-oriented programming you structure your program into modules, called 'objects,' which conceptually reflect an object in the real world. Typically, each object is defined in its main characteristics. Each is associated with methods, which specify its behavior. The program is composed of these objects interacting in various ways with each other. Its development comes very close to human thinking, making it easier for the developer: it is a solution that allows for fewer mistakes, but more importantly, it allows for faster speed, thanks to the reuse of pre-existing codes.鈥
鈥淧art of Java's success also came from tools such as the garbage collector and the virtual machine , which greatly simplified the work of developers. The former automatically identifies and destroys unused objects that are created in the execution of a program, freeing up memory. Without it, one would have to sift through the code and eliminate them extensively. In addition, Java was one of the first languages to execute code with a virtual machine: the source code is compiled into a second code - bytecode - which is interpreted in turn. This allows the execution of a program to be isolated from the operating system. In other words: if I write a program for Windows, thanks to the virtual machine it can also run on Linux. Without the virtual machine it would have to be at least partially rewritten and compiled in a form specifically for the target operating system. It is no coincidence that one of the mottos of Java is 'Write once, run anywhere.' These tools have allowed Java to carve out an important space among developers.鈥
Having said technical aspects, in what ways was it disruptive?
鈥淧erhaps the most relevant aspect was that Java made effective production solutions more accessible. We could compare it to an automobile: Java is not so much the race car that goes around a circuit, or a 4x4 that can climb mountain trails. It is a comfortable car, a transversal tool that can take on many challenges with quite a bit of ease. Java has had the virtue of continuously innovating, carving out a relevant space for itself in the development of large computer systems. In the banking sector, it has become the flagship environment for programming and program management in distributed environments: the classic web environments with very large structure that must support the execution of complex transactions, but also have capacity to support increased load in response to increased users.鈥
鈥淎nother important element is the community of developers that has grown up around Java. Although large companies such as Oracle have always kept it under their wing, contributing markedly to its development, Java has remained open source, giving the community the opportunity to contribute to its constant updating. This has allowed it to gain in popularity, entering universities by establishing itself as a learning language that is easier to learn than others. It must be said, however, that its success was not immediate: early versions were underperforming, especially in the user interface, and improvements had to be made quickly to make them effective.鈥
Where can it be found today? What is a typical example of its use?
鈥淢ost of the time we ignore that there is Java behind the scenes. A good part of the systems we access, from multimedia services, to banking services, through booking platforms or marketplaces, makes use of this language to some extent. When there is a significant server part and numerous users connecting at the same time, they are likely to do so to a framework developed in Java. It is often referred to as server-side development. It is not the only language used for these operations, but it remains a preferred solution precisely because it provides a very comforting robustness for those who have to keep large portals active, who have to provide continuity and who cannot suffer from disruptions. It should also not be forgotten that Java was the first officially supported programming language for Android application development, although today it is preferred by Kotlin.鈥
Do you feel your 30 years and competition from other languages? Lately one hears a lot about Python.
鈥淭hey are two different languages with different applications. Java is strong typed: for each variable its type must be defined. For example: if I talk about a number I have to specify that I am talking about a number. This obviously makes programming a bit more cumbersome than Python, which, being more flexible in writing, is less verbose than Java. On the other hand, the need to define every variable does not allow for errors. The absence of type checking in Python makes the introduction of hard-to-find bugs more likely. Finally, Java is much more elegant in object-oriented programming.鈥
鈥淭he real challenge for all programming languages is related to Large Language Models (LLMs) beginning to have source code programming capabilities. It is possible that in the future we will have extremely flexible tools that will allow for much more declarative development, that is, without the need to specify every operation, but simply telling the LLM what the program should do. We're not there yet, but that's likely to be the direction.鈥
Voxxed Days began as a Java event, what will you do to celebrate its anniversary?
鈥淚n fact since its inception has had a strong identity related to Java and its community, but it is clear that over the years the event has welcomed contributions on other languages. It reflects the programming world: today's developers are polyglots. In Ticino it is always a much appreciated moment and has allowed the network to widen and contributions to be proposed that have brought new looks at this world. On January 17, a few months in advance, we will take the opportunity to look back and remember what Java has represented for software development. It goes without saying that we will also look to its future, questioning how there can be continuity in terms of innovation.鈥
鈥淲e already sense quite a buzz. We have received more than two hundred proposals for contributions, a record! It will not be easy to choose, as there are only about thirty moments available for speeches. The developer community always responds 'present' and is eager to learn about the latest developments. Among the hot topics are the use of Java for the integration of Large Language Models and Virtual Threads, introduced in Java 19.鈥
But how do you celebrate a programming language? Will you symbolically make a toast with a cup of Indonesian coffee?
鈥淎t the end of Voxxed Days there is always one last collective toast. Certainly this year we will dedicate it to Java and the opportunities it has created over the years, with the hope that it will remain a reference language for a long time to come. We are thinking of other symbolic moments and in general we want it to be a memorable Voxxed Days, with outstanding speakers and content that will not leave people indifferent.鈥