Kotlin es un nuevo lenguaje de programación de código abierto de JetBrains. Apareció por primera vez en 2011 cuando JetBrains presentó su proyecto llamado «Kotlin». Básicamente, como Java, C y C++, Kotlin también es un «lenguaje de programación tipificado estáticamente» (lenguajes en los que no es necesario definir las variables antes de usarlas).
La tipificación estática no significa que tengamos que declarar todas las variables antes de usarlas. Las variables se pueden inicializar en cualquier parte del programa cuando sea necesario.
Considere el siguiente ejemplo:
/* Java Code */ static int num1, num2; //explicit declaration num1 = 20; //use the variables anywhere num2 = 30; /* Kotlin Code*/ val a: Int val b: Int a = 5 b = 10
El soporte de Kotlin es una oportunidad de usar un lenguaje moderno y poderoso, resolviendo dolores de cabeza comunes como las excepciones de tiempo de ejecución y la verbosidad del código fuente. Es fácil comenzar con Kotlin y se puede introducir gradualmente en proyectos existentes, lo que significa que se conservan sus habilidades existentes y sus inversiones en tecnología.
Características del lenguaje Kotlin:
- Kotlin evita la excepción de puntero nulo , es decir, si intentamos asignar o devolver nulo a una variable o función respectivamente, no se compilará. Para compilarlo tenemos que agregar «?» después del tipo de variable.
Considere el siguiente ejemploval name: String? =
null
//assigned null and it will compile also.
fun getName() : String? =
null
//returned null and it will compile too.
/* won’t compile */
val name: String? =
null
val len = name.length
/* correct way */
val name: String? =
null
val len = name?.length
- Versátil
Comparación con Java
- Seguridad nula : como ya se mencionó, Kotlin evita la excepción de puntero nulo, es decir, falla en tiempo de compilación cada vez que se produce una excepción de puntero nulo.
- Clases de datos : en Kotlin, hay clases de datos que conducen a la generación automática de repeticiones como equals, hashCode, toString, getters/setters y mucho más.
Considere el siguiente ejemplo:/* Java Code */
class
Book {
private
String title;
private
Author author;
public
String getTitle() {
return
title;
}
public
void
setTitle(String title) {
this
.title = title;
}
public
Author getAuthor() {
return
author;
}
public
void
setAuthor(Author author) {
this
.author = author;
}
}
Pero en Kotlin, la misma clase anterior puede definirse de manera concisa en una línea:
/* Kotlin Code */ data class Book(var title:String,var author:Author)
- Inferencia de tipo : en Kotlin, hay una gran cosa que no tiene que especificar el tipo de cada variable explícitamente (de manera clara y detallada). Pero si desea definir un tipo de datos explícitamente, también puede hacerlo.
Considere el siguiente ejemplo:/* not explicitly defined */ fun main(args: Array) { val text = 10 println(text) } /* explicitly defined */ fun main(args: Array) { val text: Int = 10 println(text) }
- Programación funcional : Kotlin consta de muchos métodos útiles que incluyen funciones de orden superior, expresiones lambda, sobrecarga de operadores, evaluación diferida, sobrecarga de operadores y mucho más.
La programación funcional hace que Kotlin sea mucho más práctico cuando se trata de colecciones:fun main(args: Array) { val numbers = arrayListOf(15, -5, 11, -39) val nonNegativeNumbers = numbers.filter { it >= 0 } println(nonNegativeNumbers) }
Producción:
15,11
- Smart Casts : cuando se trata de casts, el compilador de Kotlin es realmente inteligente. En muchos casos, no es necesario utilizar operadores de conversión explícitos, pero en Kotlin hay «comprobaciones is» para valores inmutables e inserta conversiones automáticamente cuando es necesario.
fun demo(x:Any){ if(x is String){ print(x.length) // x is automatically cast to string } }
Beneficios del lenguaje Kotlin:
- Kotlin compila en código de bytes JVM o JavaScript similar a Java. Bytecode significa código de programación que, una vez compilado, se ejecuta a través de una máquina virtual en lugar del procesador de la computadora. Al usar este enfoque, el código fuente se puede ejecutar en cualquier plataforma una vez que se haya compilado y ejecutado a través de la máquina virtual. Una vez que un programa kotlin se ha convertido a código de bytes, puede transferirse a través de una red y ejecutarse mediante JVM (Java Virtual Machine).
- Los programas de Kotlin pueden usar todos los marcos y bibliotecas de Java existentes.
- Kotlin se puede aprender fácilmente y es accesible. Se puede aprender fácilmente simplemente leyendo la referencia del idioma. La sintaxis es clara y fácil de usar y comprender.
- Kotlin es de código abierto y no cuesta nada adoptarlo.
- La seguridad nula de Kotlin es excelente. Este tipo de sistema nos ayuda a evitar las excepciones de puntero nulo al negarse a compilar código que intenta asignar o devolver un valor nulo.
val name: String = null // tries to assign null, won’t compile. fun getName() : String = null // tries to return null, won’t compile.
- Kotlin se centra mucho más en la sintaxis legible, por lo que las revisiones de código no son un problema.
Algunos datos sobre Kotlin:
- La versión actualmente lanzada es 1.1.3-2 publicada el 4 de julio de 2017.
- Kotlin es gratis, ha sido gratis y seguirá siendo gratis. Está desarrollado bajo la licencia Apache 2.0 y el código fuente está disponible en GitHub.
- Kotlin es más conciso en comparación con Java y es 100% interoperable con él.
- Kotlin es compatible como lenguaje de primera clase en Android, aunque se puede usar para cualquier tipo de desarrollo, ya sea web del lado del servidor o del lado del cliente.
- Kotlin es compatible con todos los principales IDE de Java, incluidos IntelliJ IDEA, Android Studio, Eclipse y NetBeans.
Algunos enlaces útiles:
Este artículo es una contribución de Aakash Pal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA