Yet another JVM Language

20 Juil

Encore un autre langage qui tourne sur la Jvm : Kotlin.  Lancé par JetBrains, les mecs de l’ide sympa IntelliJidea. Après Groovy, Scala et Ceylon, vient kotlin que je le trouve principalement intéressant dans sa globalité :

– Tout d’abord, il faut l’avouer, il est très proche de Scala dans sa syntaxe mais, il est encore plus facile à apprendre, à prendre en main et il est pour les funs de l’OO.

– Il est plus concise que Java tout comme Scala,car il supporte : l’inférence de type (typage statique), les closures et les fonctions d’extension.

– Compatible java (bien sur sinon je n’écrivais pas ce billet) dans le deux sens et pas comme Scala.

– et le best-of: Le support natif dans IntelliJ IDEA

Pus de détails:

– Le cast automatique (absent chez Java)

if (x is String) { print(x.length) // x is automatically
                                   //cast to String
}

– Le pattern matching (présent chez Scala)

when (x) {
is Int => print(x)
is List<Int> => print(x.sum())
!is Number => print("Not even a number")
else => print("can't do anything")
}

–  La NullPointerException: Kotlin vous permet de mieux éviter cette exception à travers une technique simple de prévention.

var b : String? = "abc"
b = null // ok

ensuite un safe-call

b?.length()  //No more Exception car cette ligne
             //est safe et ne retourne rien.

– L’absence de fameux “new”

class Example(param : Int) {}
val e = Example(10)

– Les singletons: de la meme manière de Scala

object DataProviderManager {
fun registerDataProvider(provider : DataProvider) { // ... }
}

– L’inférence des types

var number = 10
var str = “Hello!!!”

– Une autre sorte de généricité : le contrôle sur les typse se fait au runtime, cela permet de mieux vérifier les types d’un objet (pas comme Java).

A mon avis, j’ai appris cette nouvelle (la sortie de kotlin) ce matin à travers Twitter. J’ai commencé directement de creuser un peu dans les docs et je trouve que ce langage est prometteur. Je pense que je vais arrêter l’apprentissage de Scala pour le moment surtout que je galère avec le temps de compilation lorsque je code pour play!-scala.

Je vous conseille de jeter un oeil, c’est trop simple et trop facile à apprendre.

Réf: Kotlin (code source et features)

Laisser un commentaire