Ir al contenido principal

Lenguajes JVM: Kotlin y Scala

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

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...