JavaRush /Java Blog /Random EN /Java Trends for 2021: Kotlin, Microservices Architecture ...

Java Trends for 2021: Kotlin, Microservices Architecture and Kubernetes

Published in the Random EN group
The world of development is changing very quickly. To keep up with changes, you need to understand what is happening in this world. Knowing the trends allows you to adapt to rapidly changing trends. Artificial intelligence, an increase in the number of integrations, and the Internet of things are only part of the global programming trends. JavaRush asked Java programming specialist and lecturer Andrey Rodionov what will happen to Java in 2021.Java trends in 2021: Kotlin, microservice architecture and Kubernetes - 1

For which areas is Java still the only solution?

Java in the near future will remain one of the main platforms for developing enterprise applications ( that is, corporate applications used by large companies to make money. Such applications have a large code base and high reliability requirements - ed. ) and backend. Java fits well into the microservice architecture, although it is not the only alternative for writing microservices.

What are the prospects for other JVM languages, in particular Kotlin, compared to Java?

After the hype around the Groovy and Scala languages, Kotlin is currently the leading JVM language . It has already become a standard for Android development, but in the world of Java enterprise it has yet to win its place. Many popular frameworks ( Spring , Vert.x , gRPC , RSocket ) also rely on it, allowing it to be used within themselves.

Kotlin is a statically typed, object-oriented programming language that runs on top of the Java Virtual Machine and is developed by JetBrains. Also compiles to JavaScript and to executable code on a number of platforms via the LLVM infrastructure.

Kotlin features: compiles to JVM bytecode or JavaScript, open source, easy to read syntax, Kotlin programs can use existing Java frameworks and libraries.

Will there be a drop in Java quality due to shorter release intervals?

It won’t: just innovations in the language will be released as they are ready, instead of waiting several years until the next release, as was the case before. Some releases will go unnoticed by developers, since they will not bring any super popular innovations.

Spring framework: will it continue to expand its ecosystem to suit diverse needs?

The Spring ecosystem continues to actively develop, and I periodically discover another of its subprojects, which I had never heard of before. It is also noteworthy that Project Reactor and r2dbc, which emerged as subprojects of Spring, can now be said to have become standards for the reactive approach.

Project Reactor is a Java 8 library that implements the reactive programming model. It is built on top of the Reactive Streams specification, a standard for building reactive applications.

R2DBC (Reactive Relational Database Connectivity) is an open source project dedicated to reactive programming for SQL.

What are the trends in the development of cloud infrastructures IaaS, SaaS, PaaS? How does the cloud make infrastructure easier to develop, deploy, maintain, and scale?

The main trend here continues to be Kubernetes and the infrastructure around it in the form of a Service mesh. Every self-respecting Cloud provider provides the opportunity to use a Kubernetes cluster. And if an application is written to run on Kubernetes, it makes it much easier to deploy and scale.

Kubernetes (K8s) is open source software for automating the deployment, scaling, and management of containerized applications.

Kubernetes groups the containers that make up an application into logical units for easier management and discovery.

Kubernetes manages and runs containers across a large number of hosts, and enables co-location and replication of large numbers of containers. The project was started by Google and is now supported by many companies, including Microsoft, RedHat, IBM and Docker.

What other development trends are worth paying attention to in 2021?

One of the interesting trends that is still on the rise is GraalVM Native Image, which allows you to turn a traditional Java application into a binary one that will not require the JVM and related libraries to operate. Such a binary file fits very well into the microservice architecture and serverless approach, as it allows you to very quickly start a new instance of the application and does not require “warming up” the JVM.

Have the requirements for young developers changed recently due to the development of Java?

Most projects still include Java 8 innovations, even if developers are using newer versions of Java. Therefore, the main requirement is knowledge of the Stream API and functional programming elements . It is also good to have an understanding of microservice architecture , Docker and Kubernetes , since in a modern project a novice developer will immediately have to deal with this.

The Stream API is a new way to work with data structures in a functional style. A Stream API (a description of the ways in which one computer program can communicate with another program) is, at its core, a stream of data.

With the advent of Java 8, the Stream API allowed programmers to write much more briefly what previously took many lines of code, namely, to simplify work with data sets, in particular, to simplify filtering, sorting and other data manipulation operations. If you don’t have intermediate operations, you can and should often do without a stream, otherwise the code will be more complicated than without a stream.

Docker is software for automating the deployment and management of applications in containerized environments.

Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION