sábado, 5 de septiembre de 2026

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai.

Se trata de un lenguaje de programación que está desarrollando Jonathan Blow. El objetivo declarado del lenguaje es superar a C++ en el ámbito de la programación de videojuegos; sin embargo, en realidad se trata de una alternativa de propósito general a C++ con las siguientes metas:

  • Alto rendimiento.
  • Disfrute al programar.
  • Simplicidad. 
  • Baja fricción. 
  • Diseñado para buenos programadores (sic).

Para quienes han programado en C sabrán que su descendiente directo, C++, es considerado más difícil de aprender y mucho más complejo de usar en proyectos reales.

Con C, el programador:

  • Debe cuidar las variables que usará. Un tipo int no puede tener valores que no sean números entero, etc. 
  • Deberá cuidar el uso de memoria, lenguajes como Java o Rust (más moderno) ayudan al programador con esto. 
  • Tener un mejor control de sus estructuras de datos. 
  • Saber cómo y cuándo usar punteros para agilizar la programación, sí para eso y más se usan.

Con C++, deberás ser mucho más cuidadoso, aún más. Es más complejo y relativamente más seguro.

Jai se une a una lista de lenguajes de programación que afirman ser el sucesor verdadero de C++, y esa lista crece exponencialmente.

Rust, Zig, V lang, Carbon, etc. no son los únicos autoproclamados "asesinos de C++". Jai también quiere formar parte de ese grupo.

Introducción a Jai

El lenguaje está en etapa de desarrollo. Aún no existe una versión definitiva, final.

Tomando esta declaración del blog de James Oswald:

"Jai se basa en la lista de quejas de Johnathan Blow sobre C++, escrita durante su etapa como desarrollador de juegos y motores de C++. Si bien Blow concibió Jai principalmente como un lenguaje para el desarrollo de videojuegos, no ha ocultado su opinión de que podría tener una aplicación más amplia fuera de este nicho".

Y continúa:

"Jai busca maximizar la alegría manteniendo el mismo rendimiento que C/C++. Si bien la discusión sobre la velocidad de compilación y la filosofía de Jai al respecto merece una publicación aparte, mencionaré brevemente que Jai supera con creces las velocidades de compilación actuales de C/C++ y probablemente seguirá haciéndolo (consulte esta publicación para un análisis aproximado de líneas/segundo de C/C++ en compiladores populares; el objetivo de Jai antes del lanzamiento es de 1 millón de líneas/segundo). Personalmente, tengo que compilar grandes aplicaciones de C/C++ desde cero con regularidad, así que soy un gran admirador".

¿Por qué existe?

Jai viene de la frustración de programar en C++.

Quienes hayan desarrollado en ese lenguaje (C++) sabrán que un proyecto real te puede llevar toda una vida no solo desarrollarlo sino también darle mantenimiento y actualización.

Lo que te puede llevar minutos hacer en lenguajes como Python u Go en C++ te llevará más tiempo. En pocas palabras, quiere hacer de la programación algo más sencillo sin la complejidad de C++ pero inspirándose
en el.


Enfoque

Jai es un lenguaje de más bajo nivel que Java o C# y no está orientado a objetos; un lenguaje compilado *ahead-of-time* (AOT) que cuenta con un sólido soporte para metaprogramación y ejecución de código en tiempo de compilación.

Características principales

  • Una sintaxis sencilla y coherente, junto con una gran capacidad expresiva, que se traducen en una mayor productividad para el desarrollador y en más disfrute y diversión al programar. 
  • Un compilador de altísima velocidad para hacer que el ciclo de desarrollo sea más productivo y agradable. ¡Se acabaron las pausas para el café mientras esperas a que termine la compilación! 
  • Un rendimiento excelente, a la altura de C++ o incluso de C. 
  • Seguridad en la ejecución y mensajes de error del compilador útiles, lo que reduce la necesidad de depuración.

Hola, mundo en Jai

holamundo.jai

#import "Basic";

main :: () {
   print("Hola, mundo desde Jai!");
}

#run main();

Un programa en este lenguaje no podría tener otra extensión que la de *.jai.

Para compilarlo se usa la herramienta de compilación (obvio):

$ jai holamundo.jai

Salida:

Hola, mundo desde Jai!

Si quieres saber más del lenguaje, consulta la guía: https://github.com/Ivo-Balbaert/The_Way_to_Jai

Jai se une a la larga lista de lenguajes que proeten ser los sucesores de C/C++. Con una compilación mucho más rápida y eficiente, tomando lo mejor de su(s) ancestro(s) y olvidando lo peor.

El lenguaje esta relativamente terminado y liberado para empezar a usarlo. Su enfoque es el desarrollo de videojuegos y hasta sistemas completos.

Seguiremos hablando de este y otros lenguajes de programación en siguientes entregas.

Enlaces:

https://jaiprogramming.com/
https://jamesoswald.dev/posts/jai-1/
https://inductive.no/jai/
https://programming-motherfucker.com/
Jonathan Blow on his programming language jai!
https://github.com/Ivo-Balbaert/The_Way_to_Jai

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog