JavaRush /Java Blog /Random EN /Java Trends in 2021: Kotlin, Microservice Architecture an...

Java Trends in 2021: Kotlin, Microservice Architecture and Kubernetes

Published in the Random EN group
The development world is changing very quickly. To keep up with the changes, you need to understand what is happening in this world. Knowing trends allows you to adapt to rapidly changing trends. Artificial intelligence, an increase in the number of integrations, the Internet of Things are just some of the global programming trends. CodeGym asked Java programming expert and lecturer Andrey Rodionov what will happen to Java in 2021.Java Trends in 2021: Kotlin, Microservice Architecture and Kubernetes - 1

For what 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 uncontested for writing microservices.

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

After the past hype around the Groovy and Scala languages, Kotlin is currently the leader among the JVM languages . It has already become the standard for Android development, but in the world of the Java enterprise, it has yet to carve out a place for itself. 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. It also compiles to JavaScript and to executable code on a number of platforms via the LLVM framework.

Kotlin features: compiles to JVM bytecode or JavaScript, open source code, 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 before the next release, as it was before. Some releases will go unnoticed by developers, as they will not carry any super-requested innovations.

Spring framework: will it continue to multiply its ecosystem for diverse needs?

The Spring ecosystem continues to develop actively, and from time to time I discover another of its subprojects that I have not heard anything about before. It is also noteworthy that Project Reactor and r2dbc, which originated as subprojects of Spring, can now be said to have become standards for a 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 do clouds make development, infrastructure deployment, support, and scaling easier?

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 ability to use a Kubernetes cluster. And if an application is written with Kubernetes in mind, 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 on a large number of hosts, and co-hosts and replicates a large number 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 interesting trend that is still on the rise is GraalVM Native Image, which allows you to turn a traditional Java application into a binary one that does not require the JVM and related libraries to run. Such a binary file fits very well into the microservice architecture and serverless approach, as it allows you to start a new application instance very quickly and does not require JVM to “warm up”.

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

Most projects still include the Java 8 innovations, even if the developers are using newer versions of Java. Therefore, the main requirement is knowledge of the Stream API and elements of functional programming . It is also good to have an idea about 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 way. Stream API (a description of the ways in which one computer program can interact 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 shorter what used to take many lines of code, namely, to simplify work with data sets, in particular, to simplify filtering, sorting, and other data manipulation operations. If you have no intermediate operations, you can often and should 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