Ballerina es un lenguaje de programación de código abierto para la nube que facilita el uso, la combinación y la creación de servicios de red. A primera vista recuerda a lenguajes como Java y o Typescript. Ballerinta maneja tipos básicos como in, float, string, boolean, etc. La síntaxis de estructuras de control secuencial e iterativa son similares a Java. La extensión de un programa es *.bal
En post anteriores hemos hablado sobre
Docker. En este post usaremos una imagen de Ballerina y la descargaremos con Docker.
$ docker pull ballerina/ballerina
$ docker images
Para compilar y ejecutar un programa escribimos este script bash:
ejecuta.sh
#!/bin/bash
# Mostramos el nombre del programa a compilar y ejecutar
echo "Ejecutamos $1"
docker run -v `pwd`:/home/ballerina -it ballerina/ballerina:1.0.2 ballerina build $1
docker run -v `pwd`:/home/ballerina -it ballerina/ballerina:1.0.2 ballerina run $1
Para usar el script es necesario darle permiso de ejecución y pasar el nombre del programa como argumento de entrada:
$ sudo chmod +x ejecuta.sh
$ ./ejecuta.sh programa.bal
Comencemos con algunos ejemplos.
Ejemplo. El clásico programa de "Hola, mundo".
holamundo.bal
import ballerina/io;
public function main(string... args) {
io:println("Hola en Ballerina!!");
}
Compilamos y ejecutamos:
$ ./ejecuta.sh holamundo.bal
Ejemplo. Obtener el mayor de tres número enteros.
mayor_tres_numeros.bal
import ballerina/io;
public function main(string... args) {
int a = 4;
int b = -32;
int c = 1;
int mayor = a;
io:println("Numeros:\na:",a,",b:",b,",c:",c);
if(mayor < b){
mayor = b;
}
if(mayor < c){
mayor = c;
}
io:println("mayor:",mayor);
}
Compilamos y ejecutamos:
$ ./ejecuta.sh mayor_tres_numeros.bal
Ejemplo. Crear dos funciones, una para sumar y otra para multiplicar dos números enteros.
funciones.bal
import ballerina/io;
public function sumar(int a, int b) returns int {
return a + b;
}
public function multiplicar(int a, int b) returns int {
return a * b;
}
public function main(string... args) {
int a=7;
int b=5;
io:println("Suma de 5 y 7 es: ",sumar(a,b));
io:println("Producto de 5 y 7 es: ",multiplicar(a,b));
}
Compilamos y ejecutamos:
$ ./ejecuta.sh funciones.bal
¿Qué podemos analizar con estos ejemplos?
io:println("Hola en Ballerina!!");
Con esta instrucción imprimimos a pantalla.
int entero = 34;
io:println("Entero: ",entero);
Las instrucciones deben terminar con ;
Además se debe respetar el tipo de dato (esto no es Javasript u otro lenguaje de tipado dinámico). Las funciones pueden o no devolver valores, si devuelven deben llevar la palabra returns en la cabecera indicando el tipo a devolver y return para devolver el valor calculado.
Ejemplo. Crear un programa que haga uso de sentencias iterativas con for y while.
bucles.bal
import ballerina/io;
public function main(string... args) {
io:println("Elemento 0: ",numeros[0]);//1
io:println("Elemento 5: ",numeros[5]);//6
io:println("Tamaño: ",numeros.length());//8
foreach var num in numeros{
io:println("Elemento: ",num);
}
io:println("======================================");
foreach var i in 0...9 {
io:println("Numero: ",i);
}
io:println("======================================");
int cont=0;
while (cont < 10) {
io:println("Cont: ",cont);
cont = cont + 1;
}
}
Compilamos y ejecutamos:
Como se puede ver la síntaxis es casi idéntica a la de Java y/o C#. Para quienes tienen cierta experiencia programando en lenguajes similares se les facilitará aprenderlo.
En próximos post veremos más ejemplos.
Enlaces:
https://alquimistadecodigo.blogspot.com/2020/09/docker-instalando-ballerina.html
https://ballerina.io/