Kotlin (lenguaje de programación)

De Wikipedia, la enciclopedia libre
Kotlin
Desarrollador(es)
JetBrains
https://kotlinlang.org/
Información general
Extensiones comunes .kt, .kts, .ktm
Paradigma Multiparadigma: orientado a objetos, funcional, imperativo, estructurado en bloques, declarativo, genérico, reflexivo, concurrente
Apareció en 2016
Diseñado por JetBrains
Última versión estable 1.9.22 (21 de diciembre de 2023[1]​)
Sistema de tipos estático
Influido por Java, Scala, Groovy, C#, Gosu
Sistema operativo Multiplataforma: Cualquiera que soporte la JVM o tenga un intérprete de Javascript
Licencia Apache 2

Kotlin[2]​ es un lenguaje de programación multiplataforma, estáticamente tipado, de alto nivel y propósito general con inferencia de tipos. Kotlin está diseñado para ser totalmente interoperable con Java, y la versión JVM de la biblioteca estándar de Kotlin depende de la Java Class Library,[3]​ pero la inferencia de tipos permite que su sintaxis sea más concisa. Kotlin se dirige principalmente a la JVM, pero también compila a JavaScript (por ejemplo, para aplicaciones web front-end que utilizan React[4]​) o código nativo a través de LLVM (por ejemplo, para aplicaciones nativas de iOS que comparten lógica de negocio con aplicaciones Android.)[5]​ Los costes de desarrollo del lenguaje corren a cargo de JetBrains, mientras que la Fundación Kotlin protege la marca comercial Kotlin.[1]

El 7 de mayo de 2019, Google anunció que el lenguaje de programación Kotlin es ahora el lenguaje preferido para los desarrolladores de apps Android,[6]​ y desde el lanzamiento de Android Studio 3.0 en octubre de 2017, Kotlin se ha incluido como alternativa al compilador Java estándar. El compilador Kotlin de Android produce bytecode Java 8 por defecto (que se ejecuta en cualquier JVM posterior), pero permite al programador elegir como objetivo Java 9 a 18 para su optimización,[7]​ o permite más características; tiene soporte para la interoperabilidad bidireccional de clases de registro para la JVM, introducida en Java 16, considerada estable a partir de Kotlin 1.5.

Kotlin tiene soporte para la web; compilando a JavaScript (es decir, Kotlin/JS con el backend clásico, declarado estable a partir de la versión 1.3), mientras que el más nuevo Kotlin/JS (basado en Lenguaje Intermedio) está en beta a partir de la versión 1.5.30. Kotlin/Native (por ejemplo, para compatibilidad de Apple Silicon) está en beta desde la versión 1.3[8][9]​.

Historia[editar]

En julio de 2011 JetBrains reveló el Proyecto Kotlin, un nuevo lenguaje para la JVM, el cual había estado bajo desarrollo por un año.[10]​ El líder de JetBrains, Dmitry Jemerov, dijo que la mayoría de lenguajes no tienen las características que buscaban, con la excepción de Scala. Sin embargo, citó el lento tiempo de compilación de Scala como una deficiencia obvia.[10]​ Uno de los objetivos establecidos de Kotlin es el de compilar tan rápido como Java. En febrero de 2012, JetBrains liberó el código fuente del proyecto bajo la Licencia Apache 2.[11]​ Jetbrains espera que el nuevo lenguaje impulsará las ventas de IntelliJ IDEA.[12]​ En 2017, recibe un importante impulso al ser nombrado por Google como lenguaje oficial para Android al mismo nivel que Java.[13]

Filosofía[editar]

El líder de desarrollo Andrey Breslav ha dicho que Kotlin está diseñado para ser un lenguaje de programación orientado a objetos de calidad industrial, y para ser un lenguaje mejor que Java pero todavía ser plenamente interoperable con código Java, permitiendo a las compañías hacer una migración gradual de Java a Kotlin.[14]

Sintaxis[editar]

Al igual que Pascal, Haxe, PL/SQL, F#, Rust, Go y Scala —y a diferencia de C y sus derivados como C++, Java, C#, y D— la declaración de variables y listas de parámetros en Kotlin tienen el tipo de dato después del identificador y un separador de dos puntos. Igual que en otros lenguajes modernos como Scala y Groovy, los puntos y comas son opcionales como final de sentencia; en muchos casos un salto de línea es suficiente para que el compilador pueda deducir que la declaración terminó.[15]

Semántica[editar]

Además de clases y métodos (en Kotlin se llaman funciones miembro) clásicos de la programación orientada a objetos, Kotlin también soporta programación por procedimientos y el uso de funciones.[16]​ Igual que en C y C++, el punto de entrada a un programa Kotlin es una función llamada "main", que recibe un array que contiene los argumentos pasados desde la línea de comandos. Soporta la interpolación de variables dentro de cadenas de texto al estilo de los shell scripts de Perl y Unix/Linux. La inferencia de tipos es otra de las características de Kotlin.

Ejemplo ¡Hola, mundo![editar]

fun main() {
  val scope = "mundo"
  println("Hola, $scope!")
}

Kotlin hace una distinción entre tipos nullables y no-nullables (aquellos que pueden o no tener un valor nulo). Todos los objetos nullables tienen que ser declarados con un "?" sufijo después del nombre de tipo. Las operaciones con objetos nullables necesitan cuidado especial de los desarrolladores: una verificación de valor null debe ser realizado antes de utilizar el valor. Kotlin proporciona operadores seguros de nulidad para ayudar a los desarrolladores:

  • ?. (Operador de navegación segura) puede ser usado para acceder de forma seguras a un método o propiedad de un posible objeto nulo. Si el objeto es nulo, el método no se invocará y la expresión evalúa a null.
  • ?: (operador de coalescencia nula) a menudo referido a como el operador Elvis:
fun decirHola(talVez : String?, jamasNulo : Int) {
   // Uso del operador Elvis
   val nombre : String = talVez ?: "extraño"
   println("Hola, $nombre")
}

Un ejemplo del uso del operador de navegación segura:

/* Devuelve null si foo es null, o bar() devuelve null, o baz() devuelve null */
foo ?. bar() ?. baz()

Herramientas[editar]

  • IntelliJ IDEA tiene un plugin de soporte para Kotlin.[17]​ IntelliJ IDEA 15 es la primera versión que incluye el plugin Kotlin en el Instalador IntelliJ y proporcionar soporte desde el comienzo.[18]
  • JetBrains también tiene un plugin para Eclipse.[19]
  • Plugin Apache Maven.[20]
  • Tarea para Apache Ant.[20]
  • Plugin Gradle.[20]
  • Android Studio soporta Kotlin desde la versión 3.0.
  • NetBeans también incluye un plugin para Kotlin.


Libros en castellano[editar]

  • 2017.- Aprende a programar con KOTLIN, José Dimas LUJÁN CASTILLO, ISBN-13:978-8494717024
  • 2018.- APRENDIENDO A PROGRAMAR EN Kotlin, Luis Antonio Peco Martínez, ISBN-13:978-1728690261
  • 2018.- Iniciación a Android en Kotlin. Casos prácticos, Arístides Guimerá Orozco, ISBN-13:978-84283409221
  • 2020.- Desarrollo de aplicaciones móviles en Kotlin: Introducción a la programación móvil, Javier Carrasco Navarro, ISBN-13:979-8612170549
  • 2021.- CURSO DE PROGRAMACION: ANDROID CON KOTLIN (MANUALES IMPRESCINDIBLES), Antonio Javier Gallego Sánchez y Miguel Ángel Lozano Ortega, ISBN-13:978-8441543270, Editorial ANAYA MULTIMEDIA
  • 2023.- EL GRAN LIBRO DE KOTLIN PARA PROGRAMADORES DE BACK END, Luis Criado Fernández, ISBN-13:978-8426735430, Editorial MARCOMBO

Véase también[editar]

Hay otros lenguajes que intentan ser mejores que Java para la JVM:[21]

Referencias[editar]

  1. GitHub JetBrains/Kotlin https://github.com/JetBrains/kotlin/releases/latest JetBrains/Kotlin |url= sin título (ayuda). 
  2. «What is the correct English pronunciation of Kotlin?». Kotlin Discussions (en inglés). 19 de octubre de 2016. Consultado el 15 de marzo de 2023. 
  3. «kotlin-stdlib - Kotlin Programming Language». Kotlin (en inglés). Consultado el 15 de marzo de 2023. 
  4. «Kotlin for JavaScript | Kotlin». Kotlin Help (en inglés estadounidense). Consultado el 15 de marzo de 2023. 
  5. «Kotlin Multiplatform for Cross-Platform Mobile Development». Kotlin Multiplatform Mobile (en inglés). Consultado el 15 de marzo de 2023. 
  6. Lardinois, Frederic (7 de mayo de 2019). «Kotlin is now Google's preferred language for Android app development». TechCrunch (en inglés estadounidense). Consultado el 15 de marzo de 2023. 
  7. «FAQ | Kotlin». Kotlin Help (en inglés estadounidense). Consultado el 15 de marzo de 2023. 
  8. «Stability of Kotlin components | Kotlin». Kotlin Help (en inglés estadounidense). Consultado el 15 de marzo de 2023. 
  9. «Kotlin 1.5.0 – the First Big Release of 2021 | The Kotlin Blog». The JetBrains Blog (en inglés estadounidense). Consultado el 15 de marzo de 2023. 
  10. a b Krill, Paul (22 de julio de 2011). «JetBrains readies JVM language Kotlin». infoworld.com. InfoWorld. Consultado el 2 de febrero de 2014. 
  11. Waters, John (22 de febrero de 2012). «Kotlin Goes Open Source». ADTmag.com/. 1105 Enterprise Computing Group. Consultado el 2 de febrero de 2014. 
  12. «Why JetBrains needs Kotlin». «we expect Kotlin to drive the sales of IntelliJ IDEA». 
  13. Shafirov, Maxim (17 de mayo de 2017). «Kotlin on Android. Now official». «Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin.» 
  14. RebelLabs (22 de abril de 2013). «JVM Languages Report extended interview with Kotlin creator Andrey Breslav». http://zeroturnaround.com/. Consultado el 2 de febrero de 2014. 
  15. «Semicolons». jetbrains.com. Consultado el 8 de febrero de 2014. 
  16. «functions». jetbrains.com. Consultado el 8 de febrero de 2014. 
  17. «Jetbrains Plugin Repository:Kotlin». 
  18. https://www.jetbrains.com/idea/whatsnew/
  19. «Kotlin for Eclipse». 
  20. a b c «Kotlin Build Tools». 
  21. Kotlin and the search for a better Java, Stephen Colebourne, 2011-07-21.

Enlaces externos[editar]