Ir al contenido principal

Ballerina en un vistazo (10): comparativa con C++

En este post haremos una comparativa entre Ballerina y C++.

Ballerina fue creado por WSO2 para aplicaciones distribuidas y cloud‑native, mientras que C++ (de Bjarne Stroustrup) es un lenguaje clásico de propósito general, orientado a alto rendimiento y sistemas críticos.

Ambos lenguajes, Ballerina y C++, representan dos filosofías muy distintas.

Quien haya programado en C no nos dejará mentir: C++ no solo es su evolución directa natural, si no es su versión "hard". C++ no solo comparte las características que hicieron a C un lenguaje poderoso (punteros, asignación dinámica de memoria, etc.) sino que los expande con sus propias peculiaridades.

Aqul que use C++ debe ser cuidadoso si no quiere otro colapso como el de Crowdstrike.

Ballerina por su parte no es tan utilizado en la industria. Muy pocas empresas se atreven a usar lenguajes como este o cualquier otro como Go, Rust, Kotlin, etc. El nicho del mercado esta enfocado en lenguajes como Java, C#, C/C++, Python y Javascript.

Observemos la siguiente tabla comparativa:

Tabla comparativa entre Ballerina y C++

Aspecto Ballerina C++
Paradigma Imperativo, orientado a servicios, con soporte para concurrencia y estructural. Multiparadigma: imperativo, orientado a objetos, genérico y funcional.
Creador WSO2 Bjarne Stroustrup (1985)
Tipado Estático y fuerte, con sistema estructural y soporte para uniones/opcionales. Estático y fuerte, tipado nominal clásico y soporte para plantillas.
Compilación jBallerina → bytecode JVM; nBallerina → LLVM binarios nativos. Compilación directa a código máquina (GCC, Clang, MSVC).
Interoperabilidad Con Java (jBallerina) y C vía FFI (nBallerina). Con C de forma nativa; bindings para múltiples lenguajes.
Tipos de datos JSON, XML, tablas, registros, errores, streams. Primitivos (int, char, float), punteros, estructuras, clases, plantillas.
Ecosistema Microservicios y APIs; integración con Docker/Kubernetes; soporte HTTP, gRPC, GraphQL. Amplio y maduro: Qt, Boost, Unreal Engine, bibliotecas científicas y de sistemas.
Casos de uso Microservicios, APIs REST/gRPC, aplicaciones cloud-native, integración distribuida. Sistemas operativos, videojuegos, software financiero/científico, embebidos y tiempo real.

Comparativa Ballerina y C++

Comparemos ambos lenguajes con sencillos programas.

El clásico "Hola, mundo"

holamundo.bal

import ballerina/io;

public function main(string... args) {
    io:println("\t Hola, mundo en Ballerina");
}

Ejecución:

$ bal run holamundo.bal

holamundo.cpp

#include<iostream>
#include<string>
using namespace std;

int main(){
  cout << "Hola, mundo en C++";
  return 0;
}

Compilación y ejecución:

$ g++ holamundo.cpp -o holamundo
$ .\holamundo

El clásico programa del "Hola, mundo" no debe faltar.

Ambos lenguajes, Ballerina y C++, son compilados. A.

Ahora hagamos otro ejemplo.

Declaración de variables

Ambos lenguajes, Ballerina y C++, son de tipado estático.

variables.bal

import ballerina/io;


const float PI = 3.1415;

public function main() {
    int a = 9;
    int b = a;
    int temp = b;
    a = temp;

    string nombre = "John Walker.";
    float flotante = 342.0;
    boolean bandera = true;

    // Imprimir valores para verificar
    io:println("a: ", a);
    io:println("b: ", b);
    io:println("temp: ", temp);
    io:println("nombre: ", nombre);
    io:println("flotante: ", flotante);
    io:println("PI: ", PI);
    io:println("bandera: ", bandera);
}

variables.cpp

#include<iostream>
#include<string>
using namespace std;

int main(){
  int a,b, temp;
  a = 9;
  b = a;
  temp = b;
  a = temp;
  std::string nombre= "John Walker.";
  float flotante = 342.0f;
  const double PI = 3.1415;
  bool bandera = true;

  // ...
  return 0;
}

Como nota: Ballerina obliga al programador a usar todas las importaciones y declaraciones de variables.

Curva de aprendizaje

Ballerina tiene una comunidad relativamente nueva.

C++ tiene una gran comunidad, aunque la curva de aprendizaje podría ser mayor; C++ sigue siendo muy usado aunque para ciertos desarrollos, como el desarrollo web, no es el ideal.

Ballerina es un lenguaje moderno que facilita el desarrollo y es ideal para microservicios en la nube.

Continuaremos con esta serie de entrgas comparando más lenguajes.

Enlaces:

https://alquimistadecodigo.blogspot.com/2026/05/ballerina-en-un-vistazo-9-comparativa.html
https://codemonkeyjunior.blogspot.com/2025/12/ballerina-una-comparativa-con-rust.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...