Kotlin (lenguaje de programación)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Kotlin
Kotlin-logo.png
Desarrollador(es)
JetBrains
kotlinlang.org
Información general
Extensiones comunes .kt
Paradigma Orientado a objetos
Apareció en 2012
Diseñado por JetBrains
Última versión estable Kotlin 1.0.5 (8 de noviembre de 2016 (11 meses y 10 días)[1]​)
Última versión en pruebas Kotlin 1.1 M03 (24 de noviembre de 2016 (10 meses y 24 días)[2]​)
Sistema de tipos estático
Influido por Java, Scala, Groovy, C#, Gosu
Sistema operativo cualquiera que soporte la JVM o tenga un intérprete de Javascript
Licencia Apache 2
[editar datos en Wikidata]

Kotlin es un lenguaje de programación de tipado estático que corre sobre la Máquina Virtual de Java y que también puede ser compilado a código fuente de Javascript. Su desarrollo primario es de un equipo de programadores de JetBrains con base en San Petersburgo, Rusia (el nombre proviene de la Isla de Kotlin, cerca de San Petersburgo).[3]​ Kotlin fue nombrado Lenguaje del Mes en la edición de enero de 2012 de la revista Dr. Dobb.[4]​ Aunque no tiene una sintaxis compatible con Java, Kotlin está diseñado para interoperar con código Java y es dependiente de código Java de la Biblioteca de Clases Java existente, tal como el Collections Framework.

Historia[editar]

En julio de 2011 JetBrains reveló el Proyecto  Kotlin, un nuevo lenguaje la JVM, el cual había estado bajo desarrollo por un año.[5]​ 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.[5]​ Uno de los objetivos establecidos de Kotlin es el de compilar tan deprisa como Java. En febrero de 2012, JetBrains liberó el código fuente del proyecto bajo la Licencia Apache 2.[6]​ Jetbrains espera que el nuevo lenguaje impulsará las ventas de IntelliJ IDEA.[7]

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.[8]

Sintaxis[editar]

Al igual que Pascal, Haxe, PL/SQL, F#, 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ó.[9]

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.[10]​ 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(args : Array<String>) {
  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.[11]​ IntelliJ IDEA 15 es la primera versión que incluye el plugin Kotlin en el Instalador IntelliJ y proporcionar soporte desde el comienzo.[12]
  • JetBrains también tiene un plugin para Eclipse.[13]
  • Plugin Apache Maven.[14]
  • Tarea para Apache Ant.[14]
  • Plugin Gradle.[14]

Véase también[editar]

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

Referencias[editar]

  1. https://blog.jetbrains.com/kotlin/2016/11/kotlin-1-0-5-is-here/
  2. https://blog.jetbrains.com/kotlin/2016/11/kotlin-1-1-m03-is-here/
  3. Heiss, Janice (April 2013). «The Advent of Kotlin: A Conversation with JetBrains' Andrey Breslav». oracle.com. Oracle Technology Network. Consultado el 2 de febrero de 2014. 
  4. Breslav, Andrey (20 de enero de 2012). «Language of the Month: Kotlin». drdobbs.com. Consultado el 2 de febrero de 2014. 
  5. a b Krill, Paul (Jul 22, 2011). «JetBrains readies JVM language Kotlin». infoworld.com. InfoWorld. Consultado el 2 de febrero de 2014. 
  6. Waters, John (22 de febrero de 2012). «Kotlin Goes Open Source». ADTmag.com/. 1105 Enterprise Computing Group. Consultado el 2 de febrero de 2014. 
  7. «Why JetBrains needs Kotlin». «we expect Kotlin to drive the sales of IntelliJ IDEA». 
  8. 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. 
  9. «Semicolons». jetbrains.com. Consultado el 8 de febrero de 2014. 
  10. «functions». jetbrains.com. Consultado el 8 de febrero de 2014. 
  11. «Jetbrains Plugin Repository:Kotlin». 
  12. https://www.jetbrains.com/idea/whatsnew/
  13. «Kotlin for Eclipse». 
  14. a b c «Kotlin Build Tools». 
  15. Kotlin and the search for a better Java, Stephen Colebourne, 2011-07-21.

Enlaces externos[editar]