Kotlin è un linguaggio di programmazione sintetico, altamente espressivo, potente, dominato da una mentalità moderna. Nasce ad opera di JetBrains, azienda praghese che ha partorito alcuni dei migliori IDE del mondo come WebStorm, IntelliJ (progenitore di Android Studio), PyCharm e Rider.
Kotlin deriva da Java pertanto può essere usato in maniera produttiva in alternativa a questo linguaggio, praticamente in ogni contesto. Inoltre, Kotlin è oggi uno dei linguaggi ufficiali per lo sviluppo di app Android da quando il suo supporto è stato integrato in Android Studio 3.
Come programmare in Kotlin
Kotlin è incluso nell'IDE IntelliJ IDEA, scaricabile dalla pagina ufficiale in versione community (gratuita) o commerciale (a pagamento). L'uso di questo strumento è uno dei modi più rapidi per iniziare a lavorare in Kotlin. Esistono altresì ulteriori modalità per il suo utilizzo, come l'integrazione di un plugin in Eclipse o il compilatore da riga di comando, su cui però non ci dilungheremo in questa sede.
Primo esempio in Kotlin
Iniziamo con il primo esempio in Kotlin, notando subito che, a differenza del linguaggio Java, non è necessario creare una classe per contenere il main
del programma. Se si utilizza IntelliJ IDEA, si deve creare:
- un nuovo progetto, seguendo la voce di menu New > Project..., selezionando quindi Kotlin come piattaforma di sviluppo;
- un nuovo file, selezionando la voce di menu New > Kotlin File/Class.
Questo il codice che produrrà la stampa del messaggio "Ciao mondo!":
fun main(args : Array<String>) {
println("Ciao mondo!")
}
Con la parola chiave fun
definiamo una nuova funzione. Le assegniamo un nome (main
in questo caso) e forniamo tra parentesi tonde un parametro formale. Quest'ultimo serve ad introdurre un array di stringhe per ospitare eventuali parametri passati da riga di comando. Il formato in cui viene specificato il parametro formale mostra come si dichiarino - di base - le variabili in Kotlin: nome della variabile e tipo di dato separati dai due punti. Inoltre, notiamo che l'array (solo una delle tante strutture dati che Kotlin offre) non è specificato con le parentesi quadre in stile Java, bensì in forma parametrica usando le parentesi angolari per indicare il tipo di dato.
L'output viene prodotto con l'invocazione della funzione println
in maniera più sintetica rispetto al System.out.println
richiesto da Java.
Altro aspetto che differenzia Kotlin da molti linguaggi (che tuttavia può passare inosservato in un esempio così semplice) è l'assenza di punti e virgola al termine della riga. Essendo all'insegna della semplicità, Kotlin non richiede questa notazione piuttosto ridondante, che molti linguaggi moderni (come Python o Swift) tendono ad evitare.
È possibile utilizzare anche la funzione print
per visualizzare una stringa sulla console. A differenza della precedente, però, questa notazione non genererà una nuova riga, non andando quindi a capo.
Commenti
In Kotlin è possibile riportare dei commenti per introdurre annotazioni in linguaggio naturale a vario scopo (promemoria, documentazione, eccetera),
che non verranno prese in considerazione dal compilatore. Il loro formato è identico a quello del linguaggio Java:
- multilinea: inserendone il testo tra i caratteri /* e */;
- a riga singola: introdotti dalla notazione //.
Ecco come potremmo inserirli nel codice:
/*
* Il seguente programma in Kotlin si occupa di:
* - acquisire dati
* - elaborare
* - stampare il risultato
*/
fun main(args : Array<String>) {
// sviluppo del programma
}
Input utente
Esiste anche una funzione per l'immissione rapida di input da parte dell'utente: readLine
. Una volta invocata, essa non fa altro che attendere l'immissione di testo per poterlo restituire come stringa:
fun main(args: Array<String>) {
print("Come ti chiami? ")
val nome = readLine()
println("Benvenuto, $nome")
}
Nel precedente snippet, viene richiesta l'immissione del nome dell'utente per poterlo incamerare nella variabile nome
. La parola chiave val
serve per creare una variabile immutabile dopo la sua prima assegnazione, ma il suo utilizzo verrà ampiamente illustrato nelle prossime lezioni. L'output dell'esempio precedente è il seguente:
Come ti chiami? Nicola
Benvenuto, Nicola
Dopo la stampa della frase "Come ti chiami?", la console è rimasta in attesa di un input, che è consistito nella stringa "Nicola". Una volta immesso, il messaggio è quindi stampato tramite println
. In quest'ultima istruzione vediamo come Kotlin permetta di
includere una stringa in un'altra: il simbolo $ in "Benvenuto, $nome" inietta il contenuto della variabile nome all'interno della stringa. In alternativa a ciò, avremmo potuto utilizzare l'operatore +
in stile Java ("Benvenuto, "+nome) ma ciò avrebbe prodotto una sintassi meno comoda, soprattutto in caso di concatenazione di un numero maggiore di stringhe.