Kotlin y Scala son lenguajes de programación muy similares. Ambos son dependientes de la JVM, orientados a objetos y a la programación funcional. Poseen sus propias características(Type Inference, Pattern Matching, Concurrency...) además de tener sus propias comunidades. Toman lo mejor de Java y lo expanden.
Como se puede observar en los siguientes programas, difieren de Java, pero no tan bruscamente. Después del difunto Ceylon, eran la opción más concreta para tratar de sustituir a Java (cosa que es muy difícil de hacer realidad).
HolaTest.kt
package main fun main() { val nombre:String = "Alquimista de Código" println("${nombre}") }
Compilación y ejecución
# Compilar kotlinc HolaTest.kt -include-runtime -d hola.jar # Ejecutar java -jar hola.jar
HolaTest.scala
package main @main def holmundo()=println("Un ejemplo en Scala")
Compilación y ejecución
# Compilar scalac HolaTest.scala # Ejecutar scala HolaTest
Solo ejecutar:
# Solo ejecutar
scala HolaTest.scala
Los tipos de datos son los mismos que Java, con la diferencia que en vez de usar Integer se usa Int.
Variables
val numero:Int = 89 val car:Char='\u0434' val nombre:String = "Montana" val flotante:Float=23.0f val real:Double=0.07575757575 var verdad:Boolean = 34<100 println(numero) println(car) println(nombre) println(flotante) println(real) println(verdad)
La declaración de variables en ambos lenguajes es similar, por no decir idéntica. Si ejecutamos esto en Kotlin y Scala funcionarán sin problema. Hay que notar que se usa `val` para valores constantes y `var` para valores variables. Veamos más ejemplos:
Ciclos
// Scala val numeros = Seq(1,2,3) for (n <- numeros) println(n)
// Scala val letras= List( "A", "B", "C", "D" ) for (letra <- letras) println(letra)
// Kotlin for (i in 1..3) { print(" $i") }
// Kotlin for (i in 6 downTo 0 step 2) { println(i) }
Condicionales
// Scala val a:Int = 3 val b = 5 val minValue = if (a < b) a else b println(s"minValue")
// Kotlin var a:Int = 4 var b = 2 var max = a if (a < b) max = b println("$max") if (a > b) { max = a } else { max = b } max = if (a > b) a else b println("$max")
// Scala var a:Int = 4 var b = 2 var max = a if (max > b) { println(s"max") } else if (max < b) { println(s"b") } else { println("Ningun caso") }
Clases
// Kotlin fun main() { val obj:KotlinClass = KotlinClass("Alquimista de Codigo") obj.imprimir() } class KotlinClass(val nombre:String){ fun imprimir(){ println("Hola, $nombre") } }
// Scala object TestScala{ def main(){ val obj:ScalaClass = ScalaClass("Alquimista") obj.imprimir() } } class ScalaClass(nombre:String){ def imprimir():Unit=println("Hola, "s"nombre") }
En próximos posts se hablará más de éstos lenguajes.
Enlaces:
https://kotlinlang.org/https://www.scala-lang.org/
http://alquimistadecodigo.blogspot.com/2023/06/lenguajes-jvm-kotlin-un-java.html
Comentarios
Publicar un comentario