JavaRush /Java Blog /Random-IT /Tendenze Java per il 2021: Kotlin, architettura a microse...

Tendenze Java per il 2021: Kotlin, architettura a microservizi e Kubernetes

Pubblicato nel gruppo Random-IT
Il mondo dello sviluppo sta cambiando molto rapidamente. Per stare al passo con i cambiamenti, devi capire cosa sta succedendo in questo mondo. Conoscere le tendenze consente di adattarsi alle tendenze in rapido cambiamento. L’intelligenza artificiale, l’aumento del numero delle integrazioni e l’Internet delle cose sono solo una parte delle tendenze della programmazione globale. JavaRush ha chiesto allo specialista di programmazione Java e docente Andrey Rodionov cosa accadrà a Java nel 2021.Tendenze Java nel 2021: Kotlin, architettura a microservizi e Kubernetes - 1

Per quali ambiti Java è ancora l'unica soluzione?

Java rimarrà nel prossimo futuro una delle principali piattaforme per lo sviluppo di applicazioni aziendali ( ovvero applicazioni aziendali utilizzate dalle grandi aziende per fare soldi. Tali applicazioni hanno una base di codice ampia e requisiti di elevata affidabilità - ndr) e backend. Java si adatta bene all'architettura dei microservizi, sebbene non sia l'unica alternativa per scrivere microservizi.

Quali sono le prospettive per gli altri linguaggi JVM, in particolare Kotlin, rispetto a Java?

Dopo il clamore attorno ai linguaggi Groovy e Scala, Kotlin è attualmente il principale linguaggio JVM . È già diventato uno standard per lo sviluppo Android, ma nel mondo delle imprese Java deve ancora conquistare il suo posto. Anche molti framework popolari ( Spring , Vert.x , gRPC , RSocket ) si basano su di esso, consentendone l'utilizzo al proprio interno.

Kotlin è un linguaggio di programmazione orientato agli oggetti tipizzato staticamente che funziona su Java Virtual Machine ed è sviluppato da JetBrains. Compila anche in JavaScript e in codice eseguibile su numerose piattaforme tramite l'infrastruttura LLVM.

Funzionalità di Kotlin: compila in bytecode JVM o JavaScript, open source, sintassi di facile lettura, i programmi Kotlin possono utilizzare framework e librerie Java esistenti.

Ci sarà un calo della qualità Java a causa degli intervalli di rilascio più brevi?

Non sarà così: le innovazioni nel linguaggio verranno rilasciate non appena saranno pronte, invece di aspettare diversi anni fino al rilascio successivo, come avveniva prima. Alcune versioni passeranno inosservate agli sviluppatori, poiché non porteranno innovazioni super popolari.

Quadro di primavera: continuerà ad espandere il proprio ecosistema per soddisfare le diverse esigenze?

L'ecosistema Spring continua a svilupparsi attivamente e periodicamente scopro un altro dei suoi sottoprogetti, di cui non avevo mai sentito parlare prima. È anche degno di nota il fatto che Project Reactor e r2dbc, emersi come sottoprogetti di Spring, possono ora dirsi diventati standard per l'approccio reattivo.

Project Reactor è una libreria Java 8 che implementa il modello di programmazione reattiva. Si basa sulla specifica Reactive Streams, uno standard per la creazione di applicazioni reattive.

R2DBC (Reactive Relational Database Connectivity) è un progetto open source dedicato alla programmazione reattiva per SQL.

Quali sono i trend nello sviluppo delle infrastrutture cloud IaaS, SaaS, PaaS? In che modo il cloud semplifica lo sviluppo, l'implementazione, la manutenzione e la scalabilità dell'infrastruttura?

La tendenza principale continua ad essere Kubernetes e l'infrastruttura che lo circonda sotto forma di Service Mesh. Ogni Cloud provider che si rispetti offre la possibilità di utilizzare un cluster Kubernetes. E se un'applicazione è scritta per essere eseguita su Kubernetes, ne risulta molto più semplice la distribuzione e la scalabilità.

Kubernetes (K8s) è un software open source per automatizzare la distribuzione, il dimensionamento e la gestione delle applicazioni containerizzate.

Kubernetes raggruppa i contenitori che compongono un'applicazione in unità logiche per una gestione e un rilevamento più semplici.

Kubernetes gestisce ed esegue contenitori su un gran numero di host e consente la co-ubicazione e la replica di un gran numero di contenitori. Il progetto è stato avviato da Google ed è ora supportato da molte aziende, tra cui Microsoft, RedHat, IBM e Docker.

A quali altri trend di sviluppo vale la pena prestare attenzione nel 2021?

Una delle tendenze interessanti ancora in crescita è GraalVM Native Image, che consente di trasformare un'applicazione Java tradizionale in un'applicazione binaria che non richiederà la JVM e le relative librerie per funzionare. Un file binario di questo tipo si adatta molto bene all'architettura dei microservizi e all'approccio serverless, poiché consente di avviare molto rapidamente una nuova istanza dell'applicazione e non richiede il "riscaldamento" della JVM.

I requisiti per i giovani sviluppatori sono cambiati recentemente a causa dello sviluppo di Java?

La maggior parte dei progetti include ancora le innovazioni di Java 8, anche se gli sviluppatori utilizzano versioni più recenti di Java. Pertanto, il requisito principale è la conoscenza delle Stream API e degli elementi di programmazione funzionale . È anche utile conoscere l' architettura dei microservizi , Docker e Kubernetes , poiché in un progetto moderno uno sviluppatore alle prime armi dovrà immediatamente occuparsi di questo.

L'API Stream è un nuovo modo di lavorare con le strutture dati in uno stile funzionale. Un'API Stream (una descrizione dei modi in cui un programma per computer può comunicare con un altro programma) è, essenzialmente, un flusso di dati.

Con l'avvento di Java 8, l'API Stream ha consentito ai programmatori di scrivere molto più brevemente ciò che in precedenza richiedeva molte righe di codice, vale a dire semplificare il lavoro con i set di dati, in particolare, per semplificare le operazioni di filtraggio, ordinamento e altre operazioni di manipolazione dei dati. Se non disponi di operazioni intermedie, puoi e dovresti spesso fare a meno dello stream, altrimenti il ​​codice sarà più complicato che senza stream.

Docker è un software per automatizzare la distribuzione e la gestione di applicazioni in ambienti containerizzati.

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