What does the future hold for Java? What direction should the language develop in to avoid falling into oblivion? Is there something, that will guarantee its continuous popularity? We asked 11 Spartez engineers to share their thoughts on this topic, here's what they said.
Wojciech Stolarz Started with Java 1.4, 8+ years of experience as a front/back-end developer. Worked in the telecom field, where high reliability is required. Most recently a Reliability Engineer (SRE) in Jira Cloud.
Java started as the language of TV stands, and then, thanks to applets, the language of the Internet. But it soon became the back-end language for complex business systems. Today, next to Android, it's one of its foundations. But JVM is no longer just Java, but also Kotlin, Scala, Clojure etc. Each of these languages is finding its niche at Java’s expense.
For me, the future is microservices in the cloud, IoT, big data and artificial intelligence. In most cases, Java is not the first choice. But it will remain a long-time leader when it comes to enterprise systems. If not Java itself, then one of the JVM languages. It will most likely become the COBOL of the XXIst century.
Łukasz Gosiewski Ambitious by nature, a perfectionist when it comes to code. Actively searching for things that need fixing or improving. Loves learning and growing new skills, hates rules that are set in stone. Prefers logical thinking and decisions based on data rather than intuition.
The future of Java is probably already determined. I think that the language will be the victim of its own success. It's become too big and it's used on a scale that makes it difficult to update it and impossible to run risky experiments. That's why it's already behind smaller (when it comes to the community and popularity) and more agile languages. Slowly and gradually, Java will lose its position as the leader in favour of other languages, which is not a unheard of in IT. What sets Java apart is its scale. It's commonly used in many places. That's why its journey towards retirement will take longer. And the last stage of its life is likely to be longer because of the need to maintain all the apps already written. I wouldn't expect the process to suddenly speed up or be complete within the next few or even 10+ years. I think it'll happen slowly and extend over decades.
Summing up, although we're already seeing the first symptoms of old age (fewer systems written in Java, few improvements), we still have a long way to go and we're not in for a revolution any time soon.
The rumours about Java's imminent death are, in my opinion, strongly exaggerated. The virtual machine is a mature, refined, and well-known environment that's continuously developed. Although the platform has a lot of competitors like NodeJS, Go, or recently Rust, I'm confident about its future. The biggest challenge at the moment is cloud, and I think Java has ready to face it – GraalVM, new garbage collectors or new thread implementation (the Loom project). Combined with the availability of experienced developers and best developer tools on the market, the future of Java looks bright.
Piotr Suwała A software developer since he was a kid. Has gone all the way from microcontrollers and drivers to object modelling to the holy functional paradigm. He's active in Gdansk-based organizations like fablab and hackerspace. As a developer at Spartez, he believes in quality and team communication.
Java loses a lot on enriching its logic with layers of reflection and proxy. This makes it difficult to understand how frameworks like Hibernate or Spring work under its hood. I think this difficulty will cause languages like Python or Typescript to take over the market that so far belonged to Java. It's much easier to understand the tool you're using in these languages, which means a wider availability of developers and potentially higher quality of the code.
Marek Tokarski A Java developer. Likes to take problems apart to find solutions. Just for fun, he checked what the binary representation of OpenJDK objects looked like and described the elements of the object's header.
Java is still among the most popular programming languages. This popularity, combined with a comprehensive and mature ecosystem are factors that are bound to keep the status quo in the next few years. In the long run, there might be other languages that are a better fit for the new reality. But Java is not helpless – the current version release system every six months allows for quicker delivery of new features. Projects introducing "data classes", "sealed classes" or "pattern matching" (https://cr.openjdk.java.net/~briangoetz/amber/datum.html) can change how code is written, leading to a new view on Java in the developer community.
Artur Faruga Working as a Software Developer for the past eight years. Started working at a startup in Wrocław, then worked in Cracow at IBM, Luxoft and IG. For the past year, he's been happy living in Gdansk and working as a Senior Developer at Spartez.
Will Java age like good wine? The older, the better? I'm sure everyone agrees that the language itself is not very concise or distinct. But it's perfect for long-term, mature projects run by many clients where developer, architect and product manager rotation is a common thing, in which the tech debt and lack of documentation are no surprise to anyone. That's where Java, with its complex syntax, a comprehensive ecosystem, community and continuously developed frameworks and libraries, has all it takes to solve complicated problems. A nice alternate combination of Java and Kotlin, its younger brother, is like a cherry on top and makes the Java toolbox complete like no other, with JVM at its core, connecting older and younger generations.
Java is the present and future, and the people behind it build and grow tools around it, which is necessary for the quick evolution of software.
Jan Majkutewicz Java Developer who took on his job at Spartez while still at university – and stayed on. A new-tech enthusiast who loves to know how everything works on the inside. Enjoys sailing, science fiction, and artificial intelligence.
The next Java releases will bring many smaller improvements like text blocks or simplified instance of syntax, which will help easily assign a projected object to a variable (Pattern Matching for instanceof). A significant change will be record classes that make it easy to store immutable data. In the long run, follow projects like Loom and Valhalla. The goal of the former is to improve asynchronous programming by creating a light and highly efficient concurrent programming model and adding things like virtual threads. The Valhalla project aims at introducing a new, flattened data type to make better use of what today's hardware has to offer, especially the CPU cache. These projects can result in breakthrough changes in Java in the future.
Paweł Cegła Java developer with 15 years of experience and a 5-year Scala episode.
I believe the future looks bright for Java. I mean both the language itself and the virtual machine, the creation process and the whole giant ecosystem of programs, tools, libraries and frameworks. We get new versions every six months with lots of new stuff, including in the language itself. We can test new solutions like pattern matching and JDK 14 records. The Java EE standard was passed on to the Eclipse foundation and is developed as the open-source Jakarta EE. I don't agree that "Java is dead". Long live Java!
Tomasz Patrzykąt Currently an SRE, previously a Software Engineer with multiple years of experience, mostly in the Java world. Delivered and implemented many solutions for clients all over the globe. Focused on problem-solving, always thinking about production use and applicable scale.
In recent years, Java's been trying to be more cloud-friendly, e.g. through modularization or more frequent releases. I think Java will remain popular while creating solutions to enterprise-class problems due to its maturity, popularity and accessibility. When it comes to web development, Java has strong foundations and the support of its frameworks and the community (Spring, Micronaut, Quarkus), although the competitors like NodeJs are pushing. On Android devices, Java loses to Kotlin, ReactNative is increasingly popular, so in this segment, I expect that Java will be left behind in favour of other technologies. The challenge faced by the Java ecosystem is adjusting to the serverless architecture.Here it loses because of factors like the time needed for a cold start. Java will surely have to fight some battles, and its future will depend on the results, but it will continue to be a popular and commonly used technology.
Marcin Waleriańczyk Java Developer at Spartez. Part Geek, volleyball, board games and CS:GO when the kids are asleep.
It's 2030, for the past ten years Oracle Ltd. has kept investing in Java development. The community can't keep up with the JSR implementation. This has caused two separate programming languages to emerge. Because of its high price, the number of Java adepts falls, and it's becoming a niche programming language.
It's 2050; a job ad says: "We're looking for a Java developer". A junior developer sees it and asks a senior at his company if he's ever heard of Java. "Yes, I remember, there were also other languages like COBOL, but don't bother your head with them, mate".
Artur Pawelczyk From an early age driven by the irrepressible desire to understand how comouters work. Started writing his first computer programs in primary school, after completing a Pascal course. In 2013 his passion developed into a professional career.
We only know the short-term plans for Java and can't predict the distant future. Will there be the next garbage collector? What ideas from other languages will we see? How many old classes will disappear? One thing's for sure: future generations will come in contact with the technology, even if unwillingly. It's important they remember us – Java developers – well.
This article has originally been published in Polish on JustGeek.IT