Following our review of the 2018 Java technologies in demand, we inspect Java trends of 2019.25 February 2019
Latest Java Technologies and Trends of 2018
It’s amazing how Java keeps being among the top development languages and platforms for so long. Hey, it’s probably older than some of the developers that are using it. All thanks to the Java technologies innovation. The platform is evolving to meet the needs of the community and the global industry trends. Java keeps up with the serverless architecture, data science, IoT and reactive programming. The Symphony Solutions Java team has analyzed the latest Java technologies and worldwide software development trends that influence the platform. Here’s their selection. Enjoy.
Java 10 and Java 11
Let’s start the list of latest Java technologies with, well, Java. If you haven’t been living under a rock for the past year, you probably know that Java switched to releasing new versions every six months instead of three years. Fast releases mean more innovation. They also mean fewer differences between versions and a more complicated Long-Term Support (LTS). That’s why Oracle decided to provide LTS once every six releases or three years. Unfortunately, though, this only concerns the commercial support contract from Oracle. Public updates and other releases will only be updated for six months – until the next version comes out.
Java 9 was the first incremental release, and we expect two more in 2018: Java 10 and Java 11. Java 10 will introduce the local variable type inference and a new garbage collector interface. These features are supposed to simplify writing Java applications. But Java technologies innovation doesn’t stop there. Java 10 has an improved JVM which is going to make it easier to use Docker containers. Java 11 will have all the features mentioned above plus it’s going to be the first LTS support version since Java 8. The next LTS version will be released in September 2021.
The Rise of Kotlin
Kotlin who, you say? Yes, it might not be the most popular of programming languages (not even in the top 20) and a new player among the top Java technologies, but its vigorous rise to fame put Kotlin on our list. According to RedMonk’s biannual review of the most popular programming languages, Kotlin has jumped from number 65 to number 27 in less than a year. This is certainly impressive but not surprising.
First of all, the language was designed to be loved by Java developers. It’s 100% interoperable with Java code, so much so that classes written in Kotlin can be mixed up with classes in Java and the solution will work seamlessly. Seriously, any Java library can be used within Kotlin. And since a lot of gigantic enterprise systems and Android applications use Java, a new and lightweight Kotlin is a gift to Java developers.
Second, while you may think it’s just another Java Virtual Machine language, Kotlin was designed by JetBrains, a company that knows a thing or two about the perfect Java IDE. Developed with the gaps of other JVM languages in mind, Kotlin is an expressive language (read: less error-prone) that’s not as verbose as Java. Its data classes and list operations reduce boilerplate code, and, not to brag, but Kotlin offers nullability-safe extension functions and higher-order functions all Android developers will appreciate.
But most importantly, Kotlin is now the first-level language for Android app development. Google’s appreciation for the language and the commitment to support Kotlin means a lot for its future growth and popularity.
Reactive programming is nothing new, but it’s become more relevant than ever. The volumes of data are skyrocketing; the computational power is increasing. Users demand software integrity, fast updates, and non-stop synchronization. Processing numerous events becomes a pain in the back(end) for Android. It’s time to switch to a programming paradigm where you define the source of data and the consumer of that data.
RxJava is one of the latest Java technologies. It is the reactive extension (API for implementing reactive programming) for the JVM. When you connect the consumer to the source of data, RxJava pushes the data to the consumer. This library can help developers build asynchronous, concurrent and resilient Java applications. It also makes the code look less bulky and more elegant.
From Microservices to Serverless
One of the most significant global trends in software design is the shift from microservices to the serverless architecture, and the current Java technologies also couldn’t resist it. Let us refresh your memory. The microservices architecture means that the system is modular and all of its components can be changed or replaced independently without harming the system.
The serverless architecture means that you can build and deploy the code without having to configure the underlying servers. But the best part about serverless computing is that it breaks modules down into parts smaller than microservices. This allows almost infinite scaling. Also, that level of modularity gives developers a chance to visualize complex processes going on in their software, so it’s much easier to improve performance, reduce bottlenecks and even make architectural decisions. To sum up, the serverless approach gives you granular control over the architecture of a solution and simple horizontal scalability.
So, how do you go serverless with Java? Two words: AWS Lambda, a serverless computing platform. All you have to do is create an AWS Lambda Function and implement a predefined interface.
If you want something smarter, though, look up Service Bloks. They are cloud-native apps that combine the advantages of microservices with the scalability of serverless functions. A basic service block consists of a Service Core and Functions. A service core is a Spring Boot application, and it’s responsible for communication and dispatching events to serverless functions inside a block.
Data Science with Java
You can use Java pretty much anywhere, and data processing is no exception. The fact that Java is a high-performance, general purpose, compiled language just proves the point. No matter what popular framework you choose, Hadoop or Apache Spark, there’s a well-supported Java client or implementation to work with. Not to mention clients for all sorts of SQL and NoSQL databases.
Thanks to a big community, there are many libraries for data processing and cloud computing as well as machine learning. Keeping your ETL production code, data processing, and machine learning in the same ecosystem is obviously a good idea.
Of course, Java is not perfect. Because it is a wordy programming language, Java isn’t the best fit for R&D or statistical applications. That’s why data scientists choose dynamically typed languages like R and Python instead. Competing with R is especially hard since it was created for statistics and research. Despite that, Java is successfully being used in Data Science thanks to its ubiquity, performance and seamless integration of the data science code into an existing solution.
Although no fundamentally new Java technologies are going to be delivered anytime soon, the platform is flourishing and has no intention to stop. The latest Java technologies follow global trends in software design and development. This includes reactive development, serverless architecture, and data science. The platform manages to balance between stability and innovation and does it beautifully.
There are numerous reasons why Java keeps landing among the top technologies for business and web. It’s the combination of simplicity and robustness, the popularity of Android and web applications, and, of course, an enormous, friendly community. 10 million developers can’t be wrong.