Kotlin (linguaggio di programmazione)

Kotlin è un linguaggio di programmazione general purpose, multipiattaforma, multi-paradigma, open source sviluppato dall'azienda di software JetBrains.

Kotlin è un linguaggio di programmazione general purpose, multipiattaforma, multi-paradigma, open source sviluppato dall'azienda di software JetBrains.

Kotlin gira sulla macchina virtuale Java (JVM) ed è ispirato ad altri linguaggi di programmazione tra i quali Scala e lo stesso Java, con cui è designato per essere intercompatible, mentre ulteriori spunti sintattici sono stati presi da linguaggi classici, come il Pascal, e moderni, come Go o F#. Kotlin viene utilizzato principalmente con la JVM, ma permette di compilare anche codice JavaScript (per esempio nel caso di applicazioni front-end in React) o persino codice macchina via LLVM (utilizzato, per esempio, per il codice nativo di iOS quando si vuole condividere la logica di business con un'app Android).

Lo sviluppo è iniziato nel 2011 mentre una prima versione pubblica del compilatore, in versione 0.1, è stata pubblicata a gennaio 2012. Kotlin è un linguaggio a tipizzazione statica e forte, ed è particolarmente orientato verso la programmazione a oggetti permettendo peraltro un pieno uso dell'approccio funzionale.

Il 7 maggio 2019 Google ha designato Kotlin come il linguaggio standard per lo sviluppo di applicazioni Android, sostituendo Java. A partire dal 2017 con Android Studio 3.0 Google ha incluso compiler per entrambi i linguaggi di programmazione. Questo sostegno da parte di Google ha significativamente incrementato la popolarità e l'adozione di Kotlin nell'ambito industriale.

I costi di sviluppo del linguaggio sono sostenuti da JetBrains, mentre la Kotlin Foundation protegge il marchio Kotlin.

Il linguaggio prende il nome dall'omonima isola vicino a San Pietroburgo.

Piattaforme supportate

Il 7 maggio 2019, Google ha annunciato che Kotlin è ora il linguaggio preferito per lo sviluppo di app per Android. Dalla pubblicazione di Android Studio 3.0 nell'ottobre 2017, Kotlin è stato incluso come alternativa al compilatore Java standard. Il compilatore Kotlin di Android produce bytecode di Java 8 di default (che gira quindi in una qualsiasi JVM pari o superiore), ma permette al programmatore di targetizzare Java 9 fino alla versione 17, per ottimizzazione, o per avere più funzionalità; ha un tipo di record bidirezionale per supportare l'interoperabilità con la JVM, introdotto in Java 16 e considerato stabile da Kotlin 1.5 in poi.

Kotlin supporta la compilazione diretta in JavaScript (per esempio, la classica per il back-end) ed è considerato stabile dalla versione 1.3, mentre il nuovo Kotlin/JS(IR) è in beta dalla versione 1.5.30. La nuova implementazione ottimizzata di Kotlin/JVM(IR) e Kotlin/JS è stata introdotta dalla versione 1.4. Kotlin/JVM(IR) è considerato stabile e abilitato di default dalla versione 1.5.

Basi teoriche

Il leader del progetto, lo sviluppatore russo Andrey Breslav, ha affermato che Kotlin è stato progettato per essere pienamente operativo con l'ambiente Java e tutto il suo enorme ecosistema, superando però le limitazioni e le criticità del linguaggio Java stesso. In questo modo non si sarebbe perso il background culturale esistente favorendo la migrazione al nuovo strumento. Tra le caratteristiche distintive ricercate, la capacità di evitare alcune classi di errore, come gli accessi a puntatori nulli.

Hello, World

Il seguente esempio propone il classico "Hello, World!":

Qui invece l'esempio precedente viene esteso recuperando un parametro dalla riga di comando (nello specifico la stringa "world"), si può anche notare la facilità di interpolazione delle variabili all'interno delle stringhe:

Kotlin per Android

Il linguaggio Kotlin è stato adottato e integrato nell'ambiente di sviluppo Android Studio a partire dalla versione 3.0. Kotlin introduce tutti i vantaggi di un moderno linguaggio di programmazione senza introdurre nessuna nuova restrizione. È totalmente compatibile con JDK 6, fornendo delle prestazioni pari, e in alcuni casi superiori a Java. Viene garantita l'interoperabilità con Java al 100%. Il passaggio da Java a Kotlin per un programmatore è reso molto semplice per l'affinità dei due linguaggi e degli strumenti di conversione resi disponibili.

Dal 7 maggio 2019, Kotlin è il linguaggio consigliato da Google per lo sviluppo di applicazioni Android. Appare infatti come prima opzione nell'IDE Android Studio.

Versioni

Il ciclo release di Kotlin prevede tre distinti tipi di release:

Feature release (1.x) che apportano modifiche importanti al linguaggio.

Incremental release (1.x.y) che includono aggiornamenti del tooling, miglioramento delle prestazioni e correzioni di bug.

Bug fixes (1.x.yz) che di solito non includono nessuna nuova funzionalità ma solo correzione di bug.

Di seguito vengono elencate solo le versioni maggiori, omettendo le sottoversioni.

Servizi correlati

Altre voci

S

Sviluppo software

Lo sviluppo software, in informatica e nell'ambito dell'ingegneria del software, indica la serie di passi o percorso da svolgere per ottenere risultati di alta qualità e in tempi prefissati nello sviluppo di un prodotto o sistema software attraverso il relativo progetto.

Leggi la voce →
U

Unit testing

In ingegneria del software, per unit testing, test unitario o collaudo unitario, si intende l'attività di collaudo di singole unità di un software. Per unità si intende normalmente il minimo componente di un programma dotato di funzionamento autonomo; a seconda del paradigma di programmazione o…

Leggi la voce →
P

Programmazione modulare

In informatica la programmazione modulare è un paradigma di programmazione che consiste nella realizzazione di programmi suddivisi in moduli, ognuno dei quali svolge precise funzioni.

Leggi la voce →
I

IntelliJ IDEA

IntelliJ IDEA è un ambiente di sviluppo integrato (IDE) per il linguaggio di programmazione Java.

Leggi la voce →
Applicazione (informatica)A

Applicazione (informatica)

Una applicazione, in informatica, è un software (installato oppure erogato in SaaS) o una serie di software, in fase di esecuzione, che ha lo scopo e il risultato di rendere possibili funzionalità, servizi o strumenti utili e selezionabili su richiesta dall'utente tramite interfaccia utente,…

Leggi la voce →
R

Record (database)

Un record (in italiano anche registrazione), in informatica, è un oggetto o una struttura di dati eterogenei fatta da dati compositi, contenente cioè un insieme di campi o elementi, ciascuno dei quali identificato da un nome univoco e da un tipo di dato, il cui valore è detto attributo (ad…

Leggi la voce →