En una entrega anterior vimos un breve vistazo a Ballerina, un lenguaje de programación dependiente de la JVM. Diseñado por WSO2 para programadores de aplicaciones de la era de la nube.
Lanzado en 2017, con versión estable en 2022, Ballerina aún es joven y no tiene la misma comunidad que Java o Go.
Empresas como WSO2, MOSIP y RAAPID.AI usan Ballerina principalmente para integración de sistemas, microservicios y manejo de datos sensibles en entornos distribuidos. Su enfoque está en la orquestación de APIs, seguridad en comunicaciones y procesamiento de datos en la nube.
| Empresa / Proyecto | Uso principal de Ballerina | Beneficio clave |
|---|---|---|
| WSO2 | Integración de sistemas empresariales y orquestación de APIs | Resuelve el “integration gap” entre microservicios y productos de integración |
| MOSIP | Integración dirigida por eventos con WebSubHub | Manejo eficiente de eventos y flujos de datos en sistemas de identidad nacional |
| RAAPID.AI | Integración de datos clínicos | Interoperabilidad y unificación de datos médicos dispersos |
| Localazy Hub | Aplicaciones en red y microservicios | Seguridad integrada (TLS/SSL) y soporte nativo para Docker/Kubernetes |
¿Por qué Ballerina?
- Diseñado para integración: A diferencia de lenguajes genéricos, Ballerina entiende protocolos, formatos y conectores desde el núcleo.
- Microservicios y APIs: Ideal para arquitecturas distribuidas, con soporte nativo para REST, gRPC y mensajería.
- Seguridad embebida: TLS/SSL y políticas de seguridad por diseño.
- Cloud-native: Integración directa con Docker y Kubernetes, lo que lo hace atractivo para DevOps y despliegues modernos.
Consideraciones y retos
- Adopción limitada: Aunque potente, Ballerina aún es joven (lanzado en 2017, con versión estable en 2022) y no tiene la misma comunidad que Java o Go.
- Nicho de integración: Su mayor valor está en proyectos donde la orquestación de servicios y APIs es crítica; fuera de ese ámbito, otros lenguajes pueden ser más prácticos.
- Curva de aprendizaje: Su enfoque visual (diagramas de secuencia y flujos) puede ser novedoso pero requiere adaptación.
Creando un proyecto sencillo con Ballerina
Para esto requerimos instalar Ballerina:
https://ballerina.io/downloads/1. Una vez instalado comprobamos la versión instalada:
$ bal version
2. Creamos el proyecto:
$ bal new hello_world $ cd hello_world
3. Editamos el archivo main.bal:
import ballerina/io; public function main() { io:println("Hola, mundo"); }
4. Ejecutamos el código:
$ bal run
Salida:
Hola, mundo
Revisemos la estructura del proyecto:
- Ballerina.toml: Metadatos del paquete (nombre, versión).
- hello_world/main.bal: Punto de entrada (main) del programa.
- target/ (se crea al compilar): Artefactos y compilados.
- Module.md: Documentación del módulo.
También tenemos la opción de crear un ejecutable (como los JARS):
$ bal build
Y ejecutarlo:
$ bal run target/bin/hello_world.jar
Y si preguntan ¿Por qué se crea un JAR? Es porque Ballerina es un lenguaje dependiente de la JVM.
Ahora veamos algo más interesante: crear un servicio HTTP.
Editemos el archivo main.bal:
import ballerina/http; service / on new http:Listener(8080) { resource function get hello() returns string { return "Hola, mundo"; } }
Ejecutemos:
$ bal run
Abrimos el navegador en la ruta: http://localhost:8080/hello
Salida:
Hola, mundo
Como se puede observar, Ballerina tiene mucho que ofrecer para los desarrolladores. Desde los que vienen de C, C++, PHP, Python, Java, C#, Go y Rust.
Enlaces:
https://alquimistadecodigo.blogspot.com/2022/09/ballerina-en-un-vistazo.html

No hay comentarios:
Publicar un comentario