Kotlin es un lenguaje dependiente de la Máquina Virtual Java (JVM); empresas como Google han adoptado este lenguaje porque promete ofrecer compatibilidad e interoperabilidad con proyectos hechos con le lenguaje Java.
Kotlin es muy similar a otros lenguajes de programación como Scala y Go (e incluso Typescript). Al igual que Java posee tipos clase (
Byte, Short, Int, Float, Double, Boolean, Char). Además podemos importar librerías de Java sin ningún problema. Para declarar una variable modificable usamos
var, para declarar una variable no modificable usamos
val (similar a Scala).
¿Tipado estático?
El tipado estático puede parecer engorroso a algunos programadores, pero tener que definir el tipo de variables a usar tiene la ventaja de que a la hora de la compilación verificará si existe algún problema. (Supongamos que en un lenguaje dinámico donde no es necesario declarar el tipo de variable a usar necesitamos listar, en una llamada a un método especial, cadenas de texto ("strings") y le pasamos una lista con datos tipo Boolean, etc. y nos provoca un error).
Un programa escrito en Kotlin debe llevar la extensión *.kt
main.kt
package com.codemonkey
fun main() {
println("Programando en Kotlin!!!")
}
Tipos de variables
main.kt
//Enteros:
var byte:Byte = 0;
var short:Short = 120;
var int:Int = 40;
var long:Long = 12000000;
//Reales
var float:Float = 2.30f;
var double:Double = 12.654;
//Booleano
var verdadero:Boolean = true;
//Caracter
var character:Char = '\u0000';
//Cadenas
var cadenaStr:String = "Codemonkey Junior";
//Array
var numeros:Array<Int> = arrayOf(0,9,8,7,6,5);
//Lista
var miLista:List<String> =listOf("java","kotlin","ceylon","groovy","scala");
Imprimimos los datos a pantalla:
//Imprimimos los valores:
println("Tipos de datos:");
println("byte:${byte}");
println("short:${short}");
println("int:${int}");
println("long:${long}");
println("float:${float}");
println("double:${double}");
println("boolean:${verdadero}");
println("char:${character}");
println("String:${cadenaStr}");
Compilamos y creamos el jar:
$ kotlinc main.kt -include-runtime -d main.jar
Ejecutamos:
$ java -jar main.jar
También existe la manera de crear y compilar proyectos Kotlin usando Gradle. Para eso debemos definir nuestro archivo gradle.build
gradle.build
buildscript {
ext.kotlin_version = '1.3.10'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'kotlin'
apply plugin: 'application'
mainClassName = "com.codemonkey.Main"
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
Modificamos nuestro código:
package com.codemonkey
object Main {
@JvmStatic
fun main(args:Array<String>){
//Enteros:
var byte:Byte = 0;
var short:Short = 120;
var int:Int = 40;
var long:Long = 12000000;
//Reales
var float:Float = 2.30f;
var double:Double = 12.654;
//Booleano
var verdadero:Boolean = true;
//Caracter
var character:Char = '\u0000';
//Cadenas
var cadenaStr:String = "Codemonkey Junior";
//Arrays
var numeros:Array<Int> = arrayOf(0,9,8,7,6,5);
//Lista
var miLista:List<String> =listOf("java","kotlin","ceylon","groovy","scala");
//Imprimimos los valores:
println("Tipos de datos:");
println("byte:${byte}");
println("short:${short}");
println("int:${int}");
println("long:${long}");
println("float:${float}");
println("double:${double}");
println("boolean:${verdadero}");
println("char:${character}");
println("String:${cadenaStr}");
}
}
Listar Arrays
println();
for(numero in numeros){
println(" "+numero);
}
println();
for(elemento in miLista){
println("${elemento}")
}
Para compilar, construir nuestro proyecto tecleamos:
$ gradle build
Para listar las tareas disponibles usamos:
$ gradle -q task
Usaremos run para correr el proyecto:
$ gradle run
Links de interés
https://codemonkeyjunior.wordpress.com/2018/11/18/gradle-kotlin/
https://hackernoon.com/top-5-kotlin-programming-courses-for-java-and-android-programmers-49e842b8af1a
https://rubentejera.com/por-que-usar-kotlin/
https://emanuelpeg.blogspot.com/2019/01/propiedades-y-campos-en-kotlin.html
Poner código en blogger
http://hilite.me/