Saltar al contenido principal

Introducción a JARU

JARUDinámicoIoTESP32Beta
Estado del proyecto

JARU está en versión beta. Esto significa que:

  • El lenguaje es funcional y utilizable para crear programas reales
  • Pueden existir errores (bugs) aún no detectados
  • La API puede cambiar entre versiones menores sin previo aviso
  • Algunas funcionalidades pueden estar incompletas o comportarse de forma inesperada
  • La documentación puede no reflejar el estado actual del código

Revisa el changelog antes de actualizar y reporta cualquier problema que encuentres.

JARU es un lenguaje de programación de tipado dinámico diseñado para ofrecer control total del stack: el lenguaje, la máquina virtual y las herramientas que lo rodean.

Se ejecuta sobre una VM propia, compacta y eficiente, creada para ser predecible, extensible y fácil de integrar, tanto en sistemas de escritorio como en entornos con recursos limitados como microcontroladores ESP32 o arquitecturas RISC-V (SiFive).

JARU prioriza una sintaxis clara y legible, con estructuras explícitas y sin dependencias innecesarias, lo que facilita la lectura, el mantenimiento y la depuración del código incluso en sistemas complejos.

Más que un lenguaje aislado, JARU está pensado como la base de un ecosistema completo, donde el runtime, el depurador y el IDE comparten una visión común, permitiendo un nivel de control y coherencia difícil de alcanzar con lenguajes generalistas tradicionales.

JARU Hero

Productividad

La VM incluye garbage collector y librerías estándar para acelerar el desarrollo: Math, String, Display, System, GPIO, WiFi, MQTT etc.

Características principales

  • Tipos dinámicos — no necesitas declarar el tipo antes de asignar un valor.
  • Sintaxis limpia — menos ruido, más intención.
  • GC integrado — gestión automática de memoria.
  • Multiplataforma — desarrolla en Windows y despliega en ESP32, SiFive.
  • Librería estándar para IoT — módulos listos para hardware común.

Punto y coma (;)

El punto y coma al final de una instrucción es opcional. Úsalo para separar sentencias cuando escribes varias en la misma línea.

semicolon.aru
print("Hola"); print("mundo");
println("!")

Comentarios

  • Una línea: // ...
  • Varias líneas: /* ... */
comments.aru
// Esto es un comentario de una línea

/*
Esto es un
comentario multilínea
*/

Identación

Usa espacios o tabs (elige uno y sé consistente). Recomendado: 2 espacios.

Identificadores

Los identificadores nombran variables, funciones, clases, objetos, propiedades y métodos.
Deben empezar por letra o _, y no ser palabras reservadas. JARU distingue mayúsculas/minúsculas.

VálidosInválidosMotivo
nombre_persona1numberNo puede iniciar por número
_preciomi identificadorEspacios no permitidos
miClaseclassPalabra reservada
VAR_1#valorSímbolo no alfanumérico

¡Hola Mundo! (y algo más)

hello.aru
print("Hello World!");

// print no añade salto de línea; println sí
print("Hello"); print(", ");
println("World");

  • print() no añade salto de línea.
  • println() añade salto de línea.
print-vs-println.aru
print("Hello"); print(", "); println("World");

¿Te resultó útil esta página? Continúa con Tipos de datos y Variables y constantes.