Current Java Trends
Tags: java, kotlin, scala
Published: 2022-01-28 12:19:04

What do you hear about Java on the internet? Probably, something like: "Is it wise to learn Java nowadays?", "Can I use Java to solve problem X?", "Java is dead?". The answer to all these questions is **YES**.

Not so many people know about new things that are going on behind the curtains of [OpenJDK](https://openjdk.java.net/) repo. You need to subscribe to their newsletter via email groups or you can monitor their [bug tracker](https://bugs.openjdk.java.net/) to be in sync with new stuff. Neither way is convenient so most Java enthusiasts choose to follow [blogs](https://t.me/java_tech_news) with digests. Don't stay in the darkness of ignorance where developers compare languages by "hello world" examples.

## Java is Agile

Unpopular opinion I would say. Still, the agility can be seen in many aspects of the language: platform agility, language extensibility, the richness of libraries, realms of use. All these aspects help Java to be at the top for many years, totally not because Java is everywhere in the enterprise so all developers are obliged to support it.  

The agility of Java lies in the JVM (Java Virtual Machine) itself, an intermediate layer between the carefree world of programming and the cruel world of system commands and memory management. Kotlin, Groovy, Scala - these languages are all using JVM bytecode compilation. They were created to solve different problems than Java, they emerged out of it. 

Some of us started our Java journey while there was only object-oriented programming with design patterns and coding best practices. Throughout the time, the language has embraced other paradigms as well: functional, reactive thus giving more implementation options without losing the readability. Projects like [Loom](https://openjdk.java.net/projects/loom/), [Graal](https://openjdk.java.net/projects/graal/), [Amber](https://openjdk.java.net/projects/amber/), and dozens of other projects are consistently moving the language towards the future. They adapt the language to new real-world requirements of zero-latency communication, 99.999 application uptime, containerization, Clouds.

## Can I use Java to solve problem X?

There is no industry that hasn’t tried to use Java, it's everywhere: from manufacturing and medicine to games and enterprise. You can use it to automate your daily tasks or create a smart house. Check out, for example, [this extensive list](https://github.com/akullpp/awesome-java) of different libraries and frameworks that are using Java and have become successful in the field.

![java-meme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ylz4ilqxte6dsek1ghzi.png)
<figcaption>Image is taken from t.me/java_tech_news.</figcaption>

However, if you can put Java everywhere doesn't mean you should do it. There is a reason for language diversity in the programming world - each language has its own niche where it fits the most. Current Java trends are hanging around high-load cloud computations. JVM applications can grow very big and complex when the toolset wasn't right from the start. I advise you to keep woke in Java news and don't follow your technical leaders mindlessly towards the project collapse or you will [lose your faith](https://javahippie.net/software/business/2021/08/30/enterprise-software-killed-the-developer.html) in software development at all. 

## Java is DEAD

...for those who are not passionate about it. Most companies are not, that's true. Does it mean Java soon will be lost in history? I doubt it. The cycle of history is a real deal in our world, people tend to be bored of things that they were used to have/do for a long period of time. To reduce this boredom we're searching for a new passion, and that new passion most of the time is a well overlooked old.

The same logic can be applied to programming languages: they can't ignore the increasing amount of computational power in desktops, servers, portable devices, embedded devices; the need for programmers to easily collaborate on the same project; the increasing amount of abstractions between bare metal and the code. Languages are adapting in their own way every day but the final choice is [fully yours](https://evrone.com/james-gosling-interview).